#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 */