X-Git-Url: https://git.cryptolib.org/?p=avr-crypto-lib.git;a=blobdiff_plain;f=test_src%2Fcli.h;h=15937a1bad5b96dfe230d6a4bad01e2d544157c0;hp=bf92b186ce3aef37b75e38d763840e482bd570bd;hb=4b5da1dc27a791b5c448274a3db09cd035b33493;hpb=17332291e15183d71d88ed868275e3cb53917180 diff --git a/test_src/cli.h b/test_src/cli.h index bf92b18..15937a1 100644 --- a/test_src/cli.h +++ b/test_src/cli.h @@ -1,7 +1,7 @@ /* cli.h */ /* - This file is part of the This file is part of the AVR-Crypto-Lib. - Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de) + This file is part of the AVR-Crypto-Lib. + Copyright (C) 2006-2015 Daniel Otte (bg@nerilex.org) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,16 +16,59 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ + #ifndef CLI_H_ #define CLI_H_ #include #include +#ifndef VOID_FPT +#define VOID_FPT typedef void(*void_fpt)(void); +#endif +typedef char (*cli_rx_fpt)(void); +typedef void (*cli_tx_fpt)(char); + +#define CLI_BUFFER_BS 20 +#define CMDLIST_ENTRY_SIZE 8 + +typedef struct { + 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; +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, size_t n); +uint8_t cli_getsn_cecho(char *s, uint16_t n); +void cli_putstr(const char *s); +void cli_putstr_P(PGM_P s); +void cli_hexdump_byte(uint8_t byte); +void cli_hexdump(const void *data, size_t length); +void cli_hexdump_rev(const void *data, size_t length); +void cli_hexdump2(const void *data, size_t length); +void cli_hexdump_block(const void *data, size_t length, uint8_t indent, uint8_t width); + +void echo_ctrl(char *s); +int8_t cmd_interface(PGM_VOID_P cmd_desc); -int16_t findstring_d0(const char* str, const char* v); -int16_t findstring_d0_P(const char* str, PGM_P v); -int16_t execcommand_d0_P(const char* str, PGM_P v, void(*fpt[])(void) ); #endif /*CLI_H_*/