iPXE
dynui.h
Go to the documentation of this file.
1 #ifndef _IPXE_DYNUI_H
2 #define _IPXE_DYNUI_H
3 
4 /** @file
5  *
6  * Dynamic user interfaces
7  *
8  */
9 
10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11 FILE_SECBOOT ( PERMITTED );
12 
13 #include <ipxe/list.h>
14 
15 /** A dynamic user interface */
16 struct dynamic_ui {
17  /** List of dynamic user interfaces */
18  struct list_head list;
19  /** Name */
20  const char *name;
21  /** Title */
22  const char *title;
23  /** Dynamic user interface items */
24  struct list_head items;
25  /** Number of user interface items */
26  unsigned int count;
27 };
28 
29 /** A dynamic user interface item */
30 struct dynamic_item {
31  /** List of dynamic user interface items */
32  struct list_head list;
33  /** Name */
34  const char *name;
35  /** Text */
36  const char *text;
37  /** Index */
38  unsigned int index;
39  /** Flags */
40  unsigned int flags;
41  /** Shortcut key */
42  int shortcut;
43 };
44 
45 /** Dynamic user interface item is default selection */
46 #define DYNUI_DEFAULT 0x0001
47 
48 /** Dynamic user interface item represents a secret */
49 #define DYNUI_SECRET 0x0002
50 
51 extern struct dynamic_ui * create_dynui ( const char *name, const char *title );
52 extern struct dynamic_item * add_dynui_item ( struct dynamic_ui *dynui,
53  const char *name,
54  const char *text,
55  unsigned int flags,
56  int shortcut );
57 extern void destroy_dynui ( struct dynamic_ui *dynui );
58 extern struct dynamic_ui * find_dynui ( const char *name );
59 extern struct dynamic_item * dynui_item ( struct dynamic_ui *dynui,
60  unsigned int index );
61 extern struct dynamic_item * dynui_shortcut ( struct dynamic_ui *dynui,
62  int key );
63 extern int show_menu ( struct dynamic_ui *dynui, unsigned long timeout,
64  unsigned long retimeout, const char *select,
65  struct dynamic_item **selected );
66 extern int show_form ( struct dynamic_ui *dynui );
67 
68 #endif /* _IPXE_DYNUI_H */
const char * title
Title.
Definition: dynui.h:22
const char * name
Definition: ath9k_hw.c:1986
A dynamic user interface item.
Definition: dynui.h:30
struct dynamic_item * add_dynui_item(struct dynamic_ui *dynui, const char *name, const char *text, unsigned int flags, int shortcut)
Add dynamic user interface item.
Definition: dynui.c:104
void destroy_dynui(struct dynamic_ui *dynui)
Destroy dynamic user interface.
Definition: dynui.c:150
long index
Definition: bigint.h:65
struct dynamic_ui * find_dynui(const char *name)
Find dynamic user interface.
Definition: dynui.c:173
unsigned int count
Number of user interface items.
Definition: dynui.h:26
struct dynamic_ui * create_dynui(const char *name, const char *title)
Create dynamic user interface.
Definition: dynui.c:49
int show_menu(struct dynamic_ui *dynui, unsigned long timeout, unsigned long retimeout, const char *select, struct dynamic_item **selected)
Show menu.
Definition: menu_ui.c:252
A doubly-linked list entry (or list head)
Definition: list.h:19
struct dynamic_item * dynui_item(struct dynamic_ui *dynui, unsigned int index)
Find dynamic user interface item by index.
Definition: dynui.c:193
struct dynamic_item * dynui_shortcut(struct dynamic_ui *dynui, int key)
Find dynamic user interface item by shortcut key.
Definition: dynui.c:212
struct list_head items
Dynamic user interface items.
Definition: dynui.h:24
const char * name
Name.
Definition: dynui.h:34
Linked lists.
uint8_t flags
Flags.
Definition: ena.h:18
int select(fd_set *readfds, int wait)
Check file descriptors for readiness.
Definition: posix_io.c:229
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
int show_form(struct dynamic_ui *dynui)
Show form.
Definition: form_ui.c:508
A dynamic user interface.
Definition: dynui.h:16
int shortcut
Shortcut key.
Definition: dynui.h:42
const char * text
Text.
Definition: dynui.h:36
FILE_SECBOOT(PERMITTED)
struct list_head list
List of dynamic user interfaces.
Definition: dynui.h:18
const char * name
Name.
Definition: dynui.h:20
void timeout(int)
unsigned int flags
Flags.
Definition: dynui.h:40
unsigned int index
Index.
Definition: dynui.h:38
struct list_head list
List of dynamic user interface items.
Definition: dynui.h:32
union @391 key
Sense key.
Definition: scsi.h:18