Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / ipxe / src / include / readline / readline.h
1 #ifndef _READLINE_H
2 #define _READLINE_H
3
4 /** @file
5  *
6  * Minmal readline
7  *
8  */
9
10 FILE_LICENCE ( GPL2_OR_LATER );
11
12 /** A readline history entry */
13 struct readline_history_entry {
14         /** Persistent copy of string */
15         char *string;
16         /** Temporary copy of string
17          *
18          * The temporary copy exists only during the call to
19          * readline().
20          */
21         char *temp;
22 };
23
24 /** Maximum depth of a readline history buffer
25  *
26  * Must be one less than a power of two.
27  */
28 #define READLINE_HISTORY_MAX_DEPTH ( ( 1 << 3 ) - 1 )
29
30 /** A readline history buffer */
31 struct readline_history {
32         /** History entries
33          *
34          * This is a circular buffer, with entries in chronological
35          * order.  The "next" entry is always empty except during a
36          * call to readline().
37          */
38         struct readline_history_entry entries[READLINE_HISTORY_MAX_DEPTH + 1];
39         /** Position of next entry within buffer
40          *
41          * This is incremented monotonically each time an entry is
42          * added to the buffer.
43          */
44         unsigned int next;
45         /** Current depth within history buffer
46          *
47          * This is valid only during the call to readline()
48          */
49         unsigned int depth;
50 };
51
52 extern void history_free ( struct readline_history *history );
53 extern int readline_history ( const char *prompt, const char *prefill,
54                               struct readline_history *history, char **line );
55 extern char * __malloc readline ( const char *prompt );
56
57 #endif /* _READLINE_H */