void cmd_parse(char *cmd) { U8 argc, i = 0; char *argv[30]; fflush(stdout); argv[i] = strtok(cmd, " "); do { argv[++i] = strtok(NULL, " "); } while ((i < 30) && (argv[i] != NULL)); argc = i; for (i=0; cmd_tbl[i].cmd != NULL; i++) { if (!strcmp(argv[0], cmd_tbl[i].cmd)) { cmd_tbl[i].func(argc, argv); cmd_menu(); return; } } printf_P("CMD: Command not recognized: "); printf_P(cmd); printf_P("\n"); cmd_menu(); }
static bool cmd_list_action(menu_type *m, const ui_event *event, int oid) { if (event->type == EVT_SELECT) return cmd_menu(&cmds_all[oid], menu_priv(m)); else return FALSE; }
/*------------------------------------------------------------------------------ Preconditions: Postconditions: *----------------------------------------------------------------------------*/ void kbd_atca_cmds( void ) /*----------------------------------------------------------------------------*/ { int user_input; while( 1 ) { printf( "\n" " ATCA COMMANDS MENU \n" " =====================================\n" ); current_settings(); cmd_menu( atca_str ); scanf( "%d", &user_input ); fflush( stdin ); switch( user_input ) { case ATCA_CMD_GET_PICMG_PROPERTIES: atca_cmd_get_picmg_properties(); break; case ATCA_CMD_GET_ADDRESS_INFO: case ATCA_CMD_GET_SHELF_ADDRESS_INFO: case ATCA_CMD_SET_SHELF_ADDRESS_INFO: case ATCA_CMD_FRU_CONTROL: case ATCA_CMD_GET_FRU_LED_PROPERTIES: case ATCA_CMD_GET_LED_COLOR: case ATCA_CMD_SET_FRU_LED_STATE: case ATCA_CMD_GET_FRU_LED_STATE: case ATCA_CMD_SET_IPMB_STATE: case ATCA_CMD_SET_FRU_ACTIVATION_POLICY: case ATCA_CMD_GET_FRU_ACTIVATION_POLICY: case ATCA_CMD_SET_FRU_ACTIVATION: case ATCA_CMD_GET_DEVICE_LOCATOR_REC_ID: case ATCA_CMD_SET_PORT_STATE: case ATCA_CMD_GET_PORT_STATE: case ATCA_CMD_COMPUTE_POWER_PROPERTIES: case ATCA_CMD_SET_POWER_LEVEL: case ATCA_CMD_GET_POWER_LEVEL: case ATCA_CMD_RENEGOTIATE_POWER: case ATCA_CMD_GET_FAN_SPEED_PROPERTIES: case ATCA_CMD_SET_FAN_LEVEL: case ATCA_CMD_GET_FAN_LEVEL: case ATCA_CMD_BUSED_RESOURCE_CONTROL: case ATCA_CMD_GET_IPMB_LINK_INFO: break; case KBD_QUIT: return; default: printf( "Invalid Entry\n" ); } ws_process_work_list(); } }
/*------------------------------------------------------------------------------ Preconditions: Postconditions: *----------------------------------------------------------------------------*/ void kbd_app_cmds( void ) /*----------------------------------------------------------------------------*/ { int user_input; while( 1 ) { printf( "\n" " APP COMMANDS MENU \n" " =====================================\n" ); current_settings(); cmd_menu( app_str ); scanf( "%d", &user_input ); fflush( stdin ); switch( user_input ) { case IPMI_CMD_GET_DEVICE_ID: app_cmd_get_device_id(); break; case IPMI_CMD_GET_SELF_TEST_RESULTS: app_cmd_get_self_test_results(); break; case IPMI_CMD_RESET_WATCHDOG_TIMER: app_cmd_reset_watchdog_timer(); break; case IPMI_CMD_SET_WATCHDOG_TIMER: case IPMI_CMD_GET_WATCHDOG_TIMER: case IPMI_CMD_SEND_MESSAGE: break; case KBD_SETTINGS: kbd_settings(); break; case KBD_QUIT: return; default: printf( "Invalid Entry\n" ); } ws_process_work_list(); } }
/*------------------------------------------------------------------------------ Preconditions: Postconditions: *----------------------------------------------------------------------------*/ void kbd_media_specific_cmds( void ) /*----------------------------------------------------------------------------*/ { int user_input; printf( "\n" " MEDIA SPECIFIC COMMANDS MENU \n" " =====================================\n" ); while( 1 ) { current_settings(); cmd_menu( media_specific_str ); scanf( "%d", &user_input ); fflush( stdin ); switch( user_input ) { case KBD_QUIT: return; default: printf( "Invalid Entry\n" ); } } }
/*------------------------------------------------------------------------------ Preconditions: Postconditions: *----------------------------------------------------------------------------*/ void kbd_nvstore_cmds( void ) /*----------------------------------------------------------------------------*/ { int user_input; printf( "\n" " NVSTORE COMMANDS MENU \n" " =====================================\n" ); while( 1 ) { current_settings(); cmd_menu( nvstore_str ); scanf( "%d", &user_input ); fflush( stdin ); switch( user_input ) { case KBD_QUIT: return; default: printf( "Invalid Entry\n" ); } } }