#include #include #include #include "bluesim_kernel_api.h" #include "kernel.h" #include "plusargs.h" void clear_plusargs(tSimStateHdl simHdl) { for (std::vector::iterator n = simHdl->plus_args.begin(); n != simHdl->plus_args.end(); ++n) { free(const_cast(*n)); } simHdl->plus_args.clear(); } void bk_append_argument(tSimStateHdl simHdl, const char* arg) { if (arg != NULL) simHdl->plus_args.push_back(strdup(arg)); } const char* bk_match_argument(tSimStateHdl simHdl, const char* name) { if (name == NULL) return NULL; for (std::vector::iterator n = simHdl->plus_args.begin(); n != simHdl->plus_args.end(); ++n) { const char* arg = *n; unsigned int len = strlen(name); if (!strncmp(name, arg, len)) return arg + len; // return trailing portion } return NULL; // no match }