
Hi Schrempf,
On Tue, 10 Dec 2019 at 08:47, Schrempf Frieder frieder.schrempf@kontron.de wrote:
From: Frieder Schrempf frieder.schrempf@kontron.de
In order to iterate over the menu entries and match for a specific name in the pxe boot, we need to properly export the needed structs and functions.
Signed-off-by: Frieder Schrempf frieder.schrempf@kontron.de
common/menu.c | 31 +------------------------------ include/menu.h | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 31 deletions(-)
diff --git a/common/menu.c b/common/menu.c index 7b66d199a9..82b03f17f7 100644 --- a/common/menu.c +++ b/common/menu.c @@ -12,36 +12,7 @@
#include "menu.h"
-/*
- Internally, each item in a menu is represented by a struct menu_item.
- These items will be alloc'd and initialized by menu_item_add and destroyed
- by menu_item_destroy, and the consumer of the interface never sees that
- this struct is used at all.
- */
-struct menu_item {
char *key;
void *data;
struct list_head list;
-};
-/*
- The menu is composed of a list of items along with settings and callbacks
- provided by the user. An incomplete definition of this struct is available
- in menu.h, but the full definition is here to prevent consumers from
- relying on its contents.
- */
-struct menu {
struct menu_item *default_item;
int timeout;
char *title;
int prompt;
void (*item_data_print)(void *);
char *(*item_choice)(void *);
void *item_choice_data;
struct list_head items;
int item_cnt;
-};
/*
- An iterator function for menu items. callback will be called for each item
@@ -51,7 +22,7 @@ struct menu {
- used for search type operations. It is also safe for callback to remove the
- item from the list of items.
*/ -static inline void *menu_items_iter(struct menu *m, +inline void *menu_items_iter(struct menu *m, void *(*callback)(struct menu *, struct menu_item *, void *), void *extra) { diff --git a/include/menu.h b/include/menu.h index 2d227c20bd..b3f8db87e4 100644 --- a/include/menu.h +++ b/include/menu.h @@ -6,8 +6,40 @@ #ifndef __MENU_H__ #define __MENU_H__
-struct menu; +/*
- Internally, each item in a menu is represented by a struct menu_item.
- These items will be alloc'd and initialized by menu_item_add and destroyed
- by menu_item_destroy, and the consumer of the interface never sees that
- this struct is used at all.
- */
+struct menu_item {
char *key;
void *data;
struct list_head list;
+};
+/*
- The menu is composed of a list of items along with settings and callbacks
- provided by the user. An incomplete definition of this struct is available
- in menu.h, but the full definition is here to prevent consumers from
- relying on its contents.
This comment doesn't seem to be true anymore.
Is it possible to add a function to get the info you need from the menu?
- */
+struct menu {
struct menu_item *default_item;
int timeout;
char *title;
int prompt;
void (*item_data_print)(void *);
char *(*item_choice)(void *);
void *item_choice_data;
struct list_head items;
int item_cnt;
+};
+void *menu_items_iter(struct menu *m,
void *(*callback)(struct menu *, struct menu_item *, void *),
void *extra);
struct menu *menu_create(char *title, int timeout, int prompt, void (*item_data_print)(void *), char *(*item_choice)(void *), -- 2.17.1
Regards, Simon