X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=test_src%2Fcli.h;h=58c3bfc657b4c67c83c4727daad039fc9a64cbcb;hb=ba4ac1b4a8020026fb6f1a45a1e04e16017262f7;hp=3fbe8a7949ef1055d26f23a324512cd8088bdaf1;hpb=e5a49deb52521f019e37779d6e9d81ec4f02aba4;p=avr-crypto-lib.git diff --git a/test_src/cli.h b/test_src/cli.h index 3fbe8a7..58c3bfc 100644 --- a/test_src/cli.h +++ b/test_src/cli.h @@ -33,10 +33,18 @@ typedef void (*cli_tx_fpt)(char); #define CMDLIST_ENTRY_SIZE 8 typedef struct { - PGM_P cmd_name; /* string containing the function name */ - PGM_P cmd_param_str; /* param descriptor string */ - void_fpt cmd_function; /* function pointer */ - void_fpt options; + uint16_t option_flags; + PGM_VOID_P options[]; +} cmdoption_t; + +#define CLI_OPTION_DESC 0x01 +#define CLI_OPTION_MANP 0x02 + +typedef struct { + PGM_P cmd_name; /* string containing the function name */ + PGM_P cmd_param_str; /* param descriptor string */ + void_fpt cmd_function; /* function pointer */ + cmdoption_t* options; } cmdlist_entry_t; extern cli_rx_fpt cli_rx; @@ -44,13 +52,18 @@ extern cli_tx_fpt cli_tx; extern uint8_t cli_echo; + void cli_putc(char c); uint16_t cli_getc(void); uint16_t cli_getc_cecho(void); +uint8_t cli_getsn(char* s, uint16_t n); void cli_putstr(char* s); void cli_putstr_P(PGM_P s); void cli_hexdump(void* data, uint16_t length); +void cli_hexdump_rev(void* data, uint16_t length); void cli_hexdump2(void* data, uint16_t length); +void cli_hexdump_block(void* data, uint16_t length, uint8_t indent, uint8_t width); + void echo_ctrl(char* s); int8_t cmd_interface(PGM_VOID_P cmd_desc);