#ifndef CMD_PARSER_H #define CMD_PARSER_H #include #ifdef __cplusplus extern "C" { #endif #define CMD_PARSER_MAX_CMDS 32 #define CMD_PARSER_NAME_LEN 20 #define CMD_PARSER_MAX_ARGS 16 typedef int (*cmd_handler_t)(void *ctx, int argc, char **argv); typedef struct { struct { char name[CMD_PARSER_NAME_LEN]; cmd_handler_t handler; } entries[CMD_PARSER_MAX_CMDS]; int count; } cmd_parser_t; void cmd_parser_init(cmd_parser_t *parser); int cmd_parser_register(cmd_parser_t *parser, const char *name, cmd_handler_t handler); int cmd_parser_dispatch(cmd_parser_t *parser, char *buf, void *ctx); #ifdef __cplusplus } #endif #endif