int end_mode (char **args) { args = args; set_prompt (""); set_curr_mode (USER_EXEC_MODE); return 0; }
int change_config_mode (char **args) { args = args; set_prompt ("(config)"); set_curr_mode (GLOBAL_CONFIG_MODE); return 0; }
int start_cli_task (void) { set_curr_mode (USER_EXEC_MODE); /*finally kick-start the shell thread*/ spawn_cli_thread (0); return 0; }
int change_to_interface_mode (char **args) { char prmpt[MAX_PMP_LEN]; int port = 0; memset (prmpt, 0, sizeof (prmpt)); if (args) { port = atoi (args[0]); cli_set_port (atoi(args[0])); } else { port = cli_get_port (); } sprintf (prmpt, "%s%d%s","(config-if-",port, ")"); set_prompt (prmpt); set_curr_mode (INTERFACE_MODE); return 0; }
int change_vlan_mode (char **args) { char prmpt[MAX_PMP_LEN]; int vlan_id = 0; memset (prmpt, 0, sizeof (prmpt)); if (args) { vlan_id = atoi (args[0]); cli_set_vlan_id (atoi(args[0])); } else { vlan_id = cli_get_vlan_id (); } sprintf (prmpt, "%s%d%s","(config-vlan-",vlan_id, ")"); set_prompt (prmpt); set_curr_mode (VLAN_CONFIG_MODE); return 0; }
static BOOL arm_stack_walk(struct cpu_stack_walk* csw, LPSTACKFRAME64 frame, CONTEXT* context) { unsigned deltapc = curr_count <= 1 ? 0 : 4; /* sanity check */ if (curr_mode >= stm_done) return FALSE; TRACE("Enter: PC=%s Frame=%s Return=%s Stack=%s Mode=%s Count=%s\n", wine_dbgstr_addr(&frame->AddrPC), wine_dbgstr_addr(&frame->AddrFrame), wine_dbgstr_addr(&frame->AddrReturn), wine_dbgstr_addr(&frame->AddrStack), curr_mode == stm_start ? "start" : "ARM", wine_dbgstr_longlong(curr_count)); if (curr_mode == stm_start) { if ((frame->AddrPC.Mode == AddrModeFlat) && (frame->AddrFrame.Mode != AddrModeFlat)) { WARN("Bad AddrPC.Mode / AddrFrame.Mode combination\n"); goto done_err; } /* Init done */ set_curr_mode(stm_arm); frame->AddrReturn.Mode = frame->AddrStack.Mode = AddrModeFlat; /* don't set up AddrStack on first call. Either the caller has set it up, or * we will get it in the next frame */ memset(&frame->AddrBStore, 0, sizeof(frame->AddrBStore)); } else { if (context->Sp != frame->AddrStack.Offset) FIXME("inconsistent Stack Pointer\n"); if (context->Pc != frame->AddrPC.Offset) FIXME("inconsistent Program Counter\n"); if (frame->AddrReturn.Offset == 0) goto done_err; if (!fetch_next_frame(csw, context, frame->AddrPC.Offset - deltapc)) goto done_err; } memset(&frame->Params, 0, sizeof(frame->Params)); /* set frame information */ frame->AddrStack.Offset = context->Sp; frame->AddrReturn.Offset = context->Lr; frame->AddrFrame.Offset = context->Fp; frame->AddrPC.Offset = context->Pc; frame->Far = TRUE; frame->Virtual = TRUE; inc_curr_count(); TRACE("Leave: PC=%s Frame=%s Return=%s Stack=%s Mode=%s Count=%s FuncTable=%p\n", wine_dbgstr_addr(&frame->AddrPC), wine_dbgstr_addr(&frame->AddrFrame), wine_dbgstr_addr(&frame->AddrReturn), wine_dbgstr_addr(&frame->AddrStack), curr_mode == stm_start ? "start" : "ARM", wine_dbgstr_longlong(curr_count), frame->FuncTableEntry); return TRUE; done_err: set_curr_mode(stm_done); return FALSE; }