Statistics
| Branch: | Revision:

root / include / qemu / readline.h @ 13401ba0

History | View | Annotate | Download (1.9 kB)

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