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