1 #ifndef READLINE_H 2 #define READLINE_H 3 4 #include "qemu-common.h" 5 6 #define READLINE_CMD_BUF_SIZE 4095 7 #define READLINE_MAX_CMDS 64 8 #define READLINE_MAX_COMPLETIONS 256 9 10 typedef void ReadLineFunc(Monitor *mon, const char *str, void *opaque); 11 typedef void ReadLineCompletionFunc(const char *cmdline); 12 13 typedef struct ReadLineState { 14 char cmd_buf[READLINE_CMD_BUF_SIZE + 1]; 15 int cmd_buf_index; 16 int cmd_buf_size; 17 18 char last_cmd_buf[READLINE_CMD_BUF_SIZE + 1]; 19 int last_cmd_buf_index; 20 int last_cmd_buf_size; 21 22 int esc_state; 23 int esc_param; 24 25 char *history[READLINE_MAX_CMDS]; 26 int hist_entry; 27 28 ReadLineCompletionFunc *completion_finder; 29 char *completions[READLINE_MAX_COMPLETIONS]; 30 int nb_completions; 31 int completion_index; 32 33 ReadLineFunc *readline_func; 34 void *readline_opaque; 35 int read_password; 36 char prompt[256]; 37 Monitor *mon; 38 } ReadLineState; 39 40 void readline_add_completion(ReadLineState *rs, const char *str); 41 void readline_set_completion_index(ReadLineState *rs, int completion_index); 42 43 const char *readline_get_history(ReadLineState *rs, unsigned int index); 44 45 void readline_handle_byte(ReadLineState *rs, int ch); 46 47 void readline_start(ReadLineState *rs, const char *prompt, int read_password, 48 ReadLineFunc *readline_func, void *opaque); 49 void readline_restart(ReadLineState *rs); 50 void readline_show_prompt(ReadLineState *rs); 51 52 ReadLineState *readline_init(Monitor *mon, 53 ReadLineCompletionFunc *completion_finder); 54 55 void readline_free(ReadLineState *rs); 56 57 #endif /* !READLINE_H */ 58