void shell_register_default_module(const char *name) { int result = set_default_module(name); if (result != -1) { printk("\n%s", default_module_prompt); } }
static int select_module(int argc, char *argv[]) { if (argc == 1) { default_module = -1; return 0; } return set_default_module(argv[1]); }
int main(int argc, const char **argv) { int i; unsigned int pname; const char *params[NUM_PARAMS]; memset(params, '\0', sizeof(params)); /* first of all check whether debugging should be enabled */ for (i = 0; i < argc; i++) if (strcmp("debug", argv[i]) == 0) { set_debug_level(1); } for (i = 1; i < argc; i++) { for (pname = 0; pname < NUM_PARAMS; pname++) { if (param_names[pname][pn_sizes[pname]-2] == '=') { if (strncmp(argv[i], param_names[pname], pn_sizes[pname]-1) == 0) { params[pname] = argv[i] + pn_sizes[pname] - 1; } else if (strncmp(argv[i], param_names[pname], pn_sizes[pname]-2) == 0 && argv[i][pn_sizes[pname]-2] == '\0') { params[pname] = (void *)1; } } else { if (strcmp(argv[i], param_names[pname]) == 0) { params[pname] = (void *)1; } } } } for (pname = 0; pname < NUM_PARAMS; pname++) { if (params[pname] != NULL) break; } if (pname == NUM_PARAMS) { DBG("No correct parameter specified"); printf("usage: pkcs11_setup [list_modules] [use_module[=<module_name>]]\n" " [ins_action[=<executable,executable,...>]]\n" " [rm_action[=<executable,executable,...>]]\n"); } if (params[LIST_MODULES] != NULL) { DBG("List modules:"); return list_modules(); } else { if (params[USE_MODULE] == (void *)1) { DBG("Print default module:"); if ((i=print_default_module()) != 0) { ERR1("Print default module failed with: %d", i); return i; } return 0; } else if (params[USE_MODULE] != NULL) { DBG1("Set default module: %s", params[USE_MODULE]); if ((i=set_default_module(params[USE_MODULE])) != 0) { ERR1("Set default module failed with: %d", i); return i; } } if (params[INS_ACTION] == (void *)1) { DBG("Print card insert action:"); if ((i=print_card_insert_action()) != 0) { ERR1("Print card insert action failed with: %d", i); return i; } return 0; } else if (params[INS_ACTION] != NULL) { DBG1("Set card insert action: %s", params[INS_ACTION]); if ((i=set_card_insert_action(params[INS_ACTION])) != 0) { ERR1("Set card insert action failed with: %d", i); return i; } } if (params[RM_ACTION] == (void *)1) { DBG("Print card remove action:"); if ((i=print_card_remove_action()) != 0) { ERR1("Set card remove action failed with: %d", i); return i; } return 0; } else if (params[RM_ACTION] != NULL) { DBG1("Set card remove action: %s", params[RM_ACTION]); if ((i=set_card_remove_action(params[RM_ACTION])) != 0) { ERR1("Set card remove action failed with: %d", i); return i; } } } DBG("Process completed"); return 0; }