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
10FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11FILE_SECBOOT ( PERMITTED );
12
13#include <ipxe/list.h>
14
15/** A dynamic user interface */
16struct dynamic_ui {
17 /** List of dynamic user interfaces */
19 /** Name */
20 const char *name;
21 /** Title */
22 const char *title;
23 /** Dynamic user interface items */
25 /** Number of user interface items */
26 unsigned int count;
27};
28
29/** A dynamic user interface item */
31 /** List of dynamic user interface items */
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 */
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
51extern struct dynamic_ui * create_dynui ( const char *name, const char *title );
52extern 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 );
57extern void destroy_dynui ( struct dynamic_ui *dynui );
58extern struct dynamic_ui * find_dynui ( const char *name );
59extern struct dynamic_item * dynui_item ( struct dynamic_ui *dynui,
60 unsigned int index );
61extern struct dynamic_item * dynui_shortcut ( struct dynamic_ui *dynui,
62 int key );
63extern int show_menu ( struct dynamic_ui *dynui, unsigned long timeout,
64 unsigned long retimeout, const char *select,
65 struct dynamic_item **selected );
66extern int show_form ( struct dynamic_ui *dynui );
67
68#endif /* _IPXE_DYNUI_H */
union @162305117151260234136356364136041353210355154177 key
Sense key.
Definition scsi.h:3
long index
Definition bigint.h:65
const char * name
Definition ath9k_hw.c:1986
void timeout(int)
struct dynamic_ui * find_dynui(const char *name)
Find dynamic user interface.
Definition dynui.c:173
void destroy_dynui(struct dynamic_ui *dynui)
Destroy dynamic user interface.
Definition dynui.c:150
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
struct dynamic_item * dynui_item(struct dynamic_ui *dynui, unsigned int index)
Find dynamic user interface item by index.
Definition dynui.c:193
int show_form(struct dynamic_ui *dynui)
Show form.
Definition form_ui.c:508
struct dynamic_item * dynui_shortcut(struct dynamic_ui *dynui, int key)
Find dynamic user interface item by shortcut key.
Definition dynui.c:212
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
uint8_t flags
Flags.
Definition ena.h:7
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
Linked lists.
int select(fd_set *readfds, int wait)
Check file descriptors for readiness.
Definition posix_io.c:229
A dynamic user interface item.
Definition dynui.h:30
struct list_head list
List of dynamic user interface items.
Definition dynui.h:32
int shortcut
Shortcut key.
Definition dynui.h:42
unsigned int index
Index.
Definition dynui.h:38
const char * text
Text.
Definition dynui.h:36
unsigned int flags
Flags.
Definition dynui.h:40
const char * name
Name.
Definition dynui.h:34
A dynamic user interface.
Definition dynui.h:16
const char * title
Title.
Definition dynui.h:22
struct list_head list
List of dynamic user interfaces.
Definition dynui.h:18
const char * name
Name.
Definition dynui.h:20
unsigned int count
Number of user interface items.
Definition dynui.h:26
struct list_head items
Dynamic user interface items.
Definition dynui.h:24
A doubly-linked list entry (or list head)
Definition list.h:19