#ifndef __OSP_SHELL_H__ #define __OSP_SHELL_H__ #include "spu_sw_queue.h" #define NAME_LEN 12 #define UCP4008_OSP_SHELL_REG 0x16 #define SHELL_NELEMENTS(x) ((sizeof(x)/sizeof((x)[0]))) #define UCP4008_OSP_SHELL 12 /* Shell消息 */ #define MAX_CMD_LEN (48) /* the max length of a shell command */ #define MAX_EXT_CMD_NUM 30 #define STDOUT_FILENO 0 #define KEY_BACKSPACE '\b' // back space #define KEY_ENTER 13 // enter #define MAX_CMD_HISTORY 8 #define SHELL_MAX_LEN_OF_PKG 512 typedef int (*shell_cmd_routine)(int argc ,char **argv); typedef unsigned long (*OSP_FUNCPTR)(); typedef struct tagOspCmdRtn { char cmd[12]; OSP_FUNCPTR wrapper; OSP_FUNCPTR routine; /*char descption[128];*/ uint32_t argnum; }OSP_CMD_RTN; typedef struct tagOspCmdExt { char cmd[12]; uint32_t argnum; uint32_t num; }OSP_CMD_EXT; typedef enum { WKS_WAIT, WKS_RECV1B, WKS_UDLR, WKS_DEL, }T_WaitKeyState; void spu_shell_task(void); void spu_shellinfo_to_arm(char* pbuf, int ulLen, uint8_t u8PktType); void spu_insert_cmd_ext(char *name, OSP_FUNCPTR pfunc, char *desc, uint32_t argnum); void spu_shell_task(void); void spu_shell_proc(spu_sw_msg_info_t *pMsg); void spu_set_log_level(uint8_t ucLevel); void spu_csu_int_cnt(void); void spu_csu_stop_cfg(uint8_t ucstop, uint8_t ucadvance); int spu_shell_init(void); int spu_shell_wrapper(char **arg, int len, OSP_FUNCPTR func); void spu_reget_cmd(); extern int32_t get_core_id(); extern void osp_show_task_info(void); #endif