static void _ibprof_conf_init(void) { char *env; env = getenv("IBPROF_MODE"); if (env) _ibprof_conf_mode(env); env = getenv("IBPROF_TEST_MASK"); if (env) *(uint32_t *) enviroment[IBPROF_TEST_MASK] = sys_strtol(env, NULL, 0); env = getenv("IBPROF_OUTPUT_PREFIX"); if (env) *(int *) enviroment[IBPROF_OUTPUT_PREFIX] = sys_strtol(env, NULL, 0); env = getenv("IBPROF_WARMUP_NUMBER"); if (env) *(int *) enviroment[IBPROF_WARMUP_NUMBER] = sys_strtol(env, NULL, 0); env = getenv("IBPROF_DUMP_FILE"); if (env) _ibprof_conf_dump_file(env); env = getenv("IBPROF_FORMAT"); if (env) enviroment[IBPROF_FORMAT] = (void *) env; env = getenv("IBPROF_ERR_PERCENT"); if (env) *(int *) enviroment[IBPROF_ERR_PERCENT] = sys_strtol(env, NULL, 0); env = getenv("IBPROF_ERR_SEED"); if (env) { *(int *) enviroment[IBPROF_ERR_SEED] = sys_strtol(env, NULL, 0); srand(*(int *) enviroment[IBPROF_ERR_SEED]); } env = getenv("IBPROF_TIME_UNITS"); if (env) { uint8_t val = sys_strtol(env, NULL, 0); if (val < IBPROF_TIME_UNITS_LAST) *(int *) enviroment[IBPROF_TIME_UNITS] = val; } }
static int __parse_opt( const TE_NODE *node, int argc, const char *argv[] ) { OSH_ERROR status = OSH_ERR_NONE; const AOPT_OBJECT* self_opt_obj = NULL; /* Load supported option and create option objects */ { int temp_argc = 0; temp_argc = argc; self_opt_obj = aopt_init(&temp_argc, (const char **)argv, self_opt_desc); } /* Parse specific options */ if (!status && self_opt_obj) { if ( !status && aopt_check(self_opt_obj, 'm') ) { const char* optarg = aopt_value(self_opt_obj, 'm'); if (optarg) { errno = 0; long value = sys_strtol(optarg, NULL, 0); if ( !errno && (value > 0) ) { __max_buffer_size = (int)value; } else { status = OSH_ERR_BAD_ARGUMENT; } } else { status = OSH_ERR_BAD_ARGUMENT; } } if ( !status && aopt_check(self_opt_obj, 'c') ) { const char* optarg = aopt_value(self_opt_obj, 'c'); if (optarg) { errno = 0; long value = sys_strtol(optarg, NULL, 0); if ( !errno && (value > 0) ) { __cycle_count = (int)value; } else { status = OSH_ERR_BAD_ARGUMENT; } } else { status = OSH_ERR_BAD_ARGUMENT; } } } if (status) { /* Display help information */ const char* help_str = NULL; char temp_buf[30]; log_help("%s: %s\n", display_opt(node, temp_buf, sizeof(temp_buf)), node->note); log_help("\n"); log_help("Options:\n"); help_str = aopt_help(self_opt_desc); if (help_str) { log_help("%s\n", help_str); sys_free((void*)help_str); } } aopt_exit((AOPT_OBJECT*)self_opt_obj); return status; }
static int __parse_common_opt( const AOPT_OBJECT* opt_obj ) { OSH_ERROR status = OSH_ERR_NONE; if (opt_obj) { if ( !status && aopt_check(opt_obj, 'o') ) { const char* optarg = aopt_value(opt_obj, 'o'); long value = -1; if (optarg) { errno = 0; value = sys_strtol(optarg, NULL, 0); if ( !errno && (value >= LOG_NONE) ) { osh_config.exec_mode.out_level = (int)value; } } if ( value == -1 ) { status = OSH_ERR_BAD_ARGUMENT; } } if ( !status && aopt_check(opt_obj, 'd') ) { const char* optarg = aopt_value(opt_obj, 'd'); long value = -1; if (optarg) { errno = 0; value = sys_strtol(optarg, NULL, 0); if ( !errno && (value >= LOG_NONE) ) { osh_config.exec_mode.log_level = (int)value; } } if ( value == -1 ) { status = OSH_ERR_BAD_ARGUMENT; } } if ( !status && aopt_check(opt_obj, 'l') ) { const char * optarg = aopt_value(opt_obj, 'l'); char* value = NULL; if (optarg) { value = sys_strdup(optarg); if ( value ) { if (osh_config.exec_mode.log_file_name) { sys_free(osh_config.exec_mode.log_file_name); } osh_config.exec_mode.log_file_name = value; } } if ( !value ) { status = OSH_ERR_BAD_ARGUMENT; } } if ( !status && aopt_check(opt_obj, 'p') ) { const char* optarg = aopt_value(opt_obj, 'p'); unsigned long long value = 0; if (optarg) { if (!sys_strcmp(optarg, "all")) { value = INVALID_PE; } else { value = set_pe_list(optarg); } osh_config.exec_mode.log_pe_list = value; } if ( !value ) { status = OSH_ERR_BAD_ARGUMENT; } } } return status; }