2023-11-22 15:34:19 +08:00

82 lines
1.8 KiB
C

#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 keyword{
char key_name[NAME_LEN];
shell_cmd_routine command;
}key_word_t;
typedef struct shell_word
{
int key_index;
key_word_t keyword_unit[60];
}osp_shell_t;
typedef struct tagOspCmdRtn
{
char cmd[64];
OSP_FUNCPTR wrapper;
OSP_FUNCPTR routine;
/*char descption[128];*/
uint32_t argnum;
}OSP_CMD_RTN;
typedef struct tagOspCmdExt
{
char cmd[32];
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);
extern void osp_putc(char ch);
extern int osp_getcnew(void);
#endif