This patch fixes unresolved svace issues.
Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
#include <stdint.h>
#include <typedef.h>
+#include <assert.h>
/* size of metadata */
-#define NPUBIN_META_SIZE (4096) /* unit size of metadata (minimal size) */
-#define NPUBIN_META_EXTRA(magiccode) ((uint64_t)(((magiccode) >> 8) & 0xFFULL)) /* number of extra metadata */
-#define NPUBIN_META_EXTRA_SIZE(magiccode) (NPUBIN_META_EXTRA(magiccode) * NPUBIN_META_SIZE)
-#define NPUBIN_META_TOTAL_SIZE(magiccode) (NPUBIN_META_SIZE + NPUBIN_META_EXTRA_SIZE(magiccode))
+
+/* unit size of metadata (minimal size) */
+#define NPUBIN_META_SIZE (4096)
+/* number of extra metadata */
+#define NPUBIN_META_EXTRA(magiccode) (((magiccode) >> 8) & 0xFFULL)
+
+/* @brief return extra metadata size of npu binary */
+static inline uint64_t NPUBIN_META_EXTRA_SIZE (uint64_t magiccode) {
+ uint64_t num_extra = NPUBIN_META_EXTRA (magiccode);
+ assert (num_extra <= UINT8_MAX); /** sanity check for svace */
+ return num_extra * NPUBIN_META_SIZE;
+}
+
+/* @brief return total metadata size of npu binary, including extra data */
+static inline uint64_t NPUBIN_META_TOTAL_SIZE (uint64_t magiccode) {
+ uint64_t size_extra = NPUBIN_META_EXTRA_SIZE (magiccode);
+ assert (size_extra <= UINT8_MAX * NPUBIN_META_SIZE); /** sanity check for svace */
+ return size_extra + NPUBIN_META_SIZE;
+}
/* tensor data constrains */
#define MAX_TENSORS (16)
/** @brief host handler constructor */
HostHandler::HostHandler (Device *device)
- : device_(device)
+ : device_(device),
+ /* ignored as we don't use double buffering anymore, but for backward-compatibility */
+ async_mode_ (NPUASYNC_WAIT)
{
}
public:
static std::unique_ptr<Metadata> extractMetadata (void *data);
- Metadata (npubin_meta *meta) : meta_(meta) {}
+ Metadata (npubin_meta *meta) : meta_(meta), version_(0) {}
virtual ~Metadata () {};
virtual uint32_t getInputNum () const = 0;
/** load default configurations */
Conf & conf = Conf::getInstance ();
- /** make dummy .ini file */
- FILE *fp = fopen ("dummy.ini", "w");
- const char *ini_str = "[main]\n"
- "resv_mem_size=asdf\n"
- "num_threads=-1\n";
-
- /** from .ini file */
- ASSERT_NE (fp, nullptr);
- ASSERT_EQ (fwrite (ini_str, strlen(ini_str), 1, fp), 1);
- ASSERT_EQ (fclose (fp), 0);
+ /** make dummy .ini file (with invalid values) */
+ std::ofstream ofs ("dummy.ini");
+ ASSERT_EQ (ofs.good(), true);
+
+ ofs << "[main]\n";
+ ofs << "resv_mem_size=asdr\n";
+ ofs << "num_threads=-1\n";
+
+ ofs.close();
conf = Conf::getInstance ("dummy.ini");