sc8-gat-stand/gat_stand_fw/user/console/console.h

65 lines
1.2 KiB
C

/*
* console.h
*/
#ifndef USER_SHELL_CONSOLE_H_
#define USER_SHELL_CONSOLE_H_
#include <stdint.h>
#include <string.h>
// pirate tools
#include "ntshell/core/ntshell.h"
#include "ntshell/util/ntstdio.h"
#include "ntshell/util/ntopt.h"
#define CONS_PROMPT_DEFAULT "\r\ngat> "
#define CONS_PRINT(s) console_write(s, strlen(s), 0)
/* struct */
typedef struct {
char *cmd;
char *usage;
char *desc;
uint8_t flags;
void (*go)(int argc, char **argv);
void (*help)(void);
} command_table_t;
/* extern variables */
extern ntshell_t ntshell;
extern ntshell_t hijack;
extern command_table_t *ctbl;
extern command_table_t *ctbl_prev;
extern char console_line[256];
/* console prototypes */
void console_init();
void console_set_puts(int (*puts)(char *buf, int cnt));
void console_set_gets(int (*gets)(char *buf, int cnt));
void console_start();
void console_stop();
void console_process();
void console_wait();
int console_write(const char *buf, int cnt, void *extobj);
/* hijack the console for per-line input handling */
void console_hijack(int (*cb)(const char *text, void *extobj));
#endif /* USER_SHELL_CONSOLE_H_ */