diff options
Diffstat (limited to 'contrib/qemu/include/monitor/readline.h')
| -rw-r--r-- | contrib/qemu/include/monitor/readline.h | 55 | 
1 files changed, 55 insertions, 0 deletions
diff --git a/contrib/qemu/include/monitor/readline.h b/contrib/qemu/include/monitor/readline.h new file mode 100644 index 000000000..fc9806ecf --- /dev/null +++ b/contrib/qemu/include/monitor/readline.h @@ -0,0 +1,55 @@ +#ifndef READLINE_H +#define READLINE_H + +#include "qemu-common.h" + +#define READLINE_CMD_BUF_SIZE 4095 +#define READLINE_MAX_CMDS 64 +#define READLINE_MAX_COMPLETIONS 256 + +typedef void ReadLineFunc(Monitor *mon, const char *str, void *opaque); +typedef void ReadLineCompletionFunc(const char *cmdline); + +typedef struct ReadLineState { +    char cmd_buf[READLINE_CMD_BUF_SIZE + 1]; +    int cmd_buf_index; +    int cmd_buf_size; + +    char last_cmd_buf[READLINE_CMD_BUF_SIZE + 1]; +    int last_cmd_buf_index; +    int last_cmd_buf_size; + +    int esc_state; +    int esc_param; + +    char *history[READLINE_MAX_CMDS]; +    int hist_entry; + +    ReadLineCompletionFunc *completion_finder; +    char *completions[READLINE_MAX_COMPLETIONS]; +    int nb_completions; +    int completion_index; + +    ReadLineFunc *readline_func; +    void *readline_opaque; +    int read_password; +    char prompt[256]; +    Monitor *mon; +} ReadLineState; + +void readline_add_completion(ReadLineState *rs, const char *str); +void readline_set_completion_index(ReadLineState *rs, int completion_index); + +const char *readline_get_history(ReadLineState *rs, unsigned int index); + +void readline_handle_byte(ReadLineState *rs, int ch); + +void readline_start(ReadLineState *rs, const char *prompt, int read_password, +                    ReadLineFunc *readline_func, void *opaque); +void readline_restart(ReadLineState *rs); +void readline_show_prompt(ReadLineState *rs); + +ReadLineState *readline_init(Monitor *mon, +                             ReadLineCompletionFunc *completion_finder); + +#endif /* !READLINE_H */  | 
