#include #include /* #include "common.h" #include "cmds/help.h" #include "cmds/scan.h" #include "cmds/list_probes.h" #include "cmds/exit.h" #include "cmds/select_probe.h" // Table des commandes internes Command commands[] = { {"help", cmd_help, NULL}, {"list_probes", cmd_list_probes, cmd_list_probes_help}, {"scan", cmd_scan, cmd_scan_help}, {"select_probe", cmd_select_probe, cmd_select_probe_help}, {"exit", cmd_exit, cmd_exit_help}, {NULL, NULL}}; */ #include #include #include #include "jtag_core/jtag_core.h" #include "config/version.h" #include "script/env.h" #include "script/script.h" #include "config/config_script.h" void jprint(jtag_core *jc, const char *msg) { printf(msg); } int script_print(script_ctx *sctx, enum MSGTYPE typ, char *string, ...) { int ret = 0; char msg[64] = {0}; va_list args; switch (typ) { case MSG_DEBUG: strcpy(msg, "DEBUG :"); break; case MSG_INFO_1: strcpy(msg, "INFO :"); break; case MSG_WARNING: strcpy(msg, "WARNING :"); break; case MSG_ERROR: strcpy(msg, "ERROR :"); break; case MSG_INFO_0: default: strcpy(msg, ""); break; } va_start(args, string); ret = printf(msg); ret += vprintf(string, args); va_end(args); return ret; } void bsexp_init(jtag_core **jc, script_ctx **sctx) { // JTAG core initialization *jc = jtagcore_init(); if (NULL == *jc) goto end; // Environment initialization (*jc)->envvar = (void *)initEnv(NULL, NULL); if (NULL == (*jc)->envvar) { jtagcore_deinit(*jc); *jc = NULL; goto end; } jtagcore_setEnvVar(*jc, "VERSION", "v" APP_VER_STR(APP_VER)); // Scripts initialization *sctx = jtagcore_initScript(*jc); if (NULL == *sctx) { deinitEnv((*jc)->envvar); jtagcore_deinit(*jc); *jc = NULL; goto end; } setOutputFunc_script(*sctx, script_print); execute_ram_script(*sctx, config_script, config_script_len); execute_file_script(*sctx, "config.script"); /* Log printing callback */ if (jtagcore_set_logs_callback(*jc, jprint) < 0) { printf("Impossible to define the logs callback!\n"); } else { if (jtagcore_getEnvVar(*jc, "LOG_MESSAGES_FILTER_LEVEL", NULL)) { jtagcore_set_logs_level(*jc, jtagcore_getEnvVarValue(*jc, "LOG_MESSAGES_FILTER_LEVEL")); } if (jtagcore_getEnvVar(*jc, "LOG_MESSAGES_FILE_OUTPUT", NULL)) { jtagcore_set_logs_file(*jc, jtagcore_getEnvVar(*jc, "LOG_MESSAGES_FILE_OUTPUT", NULL)); } } end: return; } void bsexp_deinit(jtag_core *jc, script_ctx *sctx) { envvar_entry *env = NULL; if (NULL != jc) { deinit_script(sctx); } if (NULL != jc) { env = jc->envvar; deinitEnv(env); jtagcore_deinit(jc); } }