diff options
Diffstat (limited to 'src/include/ipxe/menu.h')
| -rw-r--r-- | src/include/ipxe/menu.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/include/ipxe/menu.h b/src/include/ipxe/menu.h new file mode 100644 index 000000000..943aa57a9 --- /dev/null +++ b/src/include/ipxe/menu.h @@ -0,0 +1,47 @@ +#ifndef _IPXE_MENU_H +#define _IPXE_MENU_H + +/** @file + * + * Menu selection + * + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +#include <ipxe/list.h> + +/** A menu */ +struct menu { + /** List of menus */ + struct list_head list; + /** Name */ + const char *name; + /** Title */ + const char *title; + /** Menu items */ + struct list_head items; +}; + +/** A menu item */ +struct menu_item { + /** List of menu items */ + struct list_head list; + /** Label */ + const char *label; + /** Text */ + const char *text; + /** Shortcut key */ + int shortcut; + /** Is default item */ + int is_default; +}; + +extern struct menu * create_menu ( const char *name, const char *title ); +extern struct menu_item * add_menu_item ( struct menu *menu, const char *label, + const char *text, int shortcut, + int is_default ); +extern void destroy_menu ( struct menu *menu ); +extern struct menu * find_menu ( const char *name ); + +#endif /* _IPXE_MENU_H */ |
