summaryrefslogtreecommitdiffstats
path: root/common/menu.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2010-08-21 18:49:55 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2010-08-30 20:57:20 +0200
commitf50d2063cbcd4a5ebd474445f9d9395918d342a1 (patch)
tree0e98189adca049bd2ba9764cfb059599c6fd848c /common/menu.c
parent417e2d45fed238ed3f71e6c771bb84dbfc02c790 (diff)
downloadbarebox-f50d2063cbcd4a5ebd474445f9d9395918d342a1.tar.gz
barebox-f50d2063cbcd4a5ebd474445f9d9395918d342a1.tar.xz
menu: use an initialized struct list as menu list
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common/menu.c')
-rw-r--r--common/menu.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/common/menu.c b/common/menu.c
index 3596e215fd..6e6637addf 100644
--- a/common/menu.c
+++ b/common/menu.c
@@ -30,11 +30,14 @@
#include <errno.h>
#include <readkey.h>
-static struct menu menus;
+static LIST_HEAD(menus);
struct menu* menu_get_menus(void)
{
- return &menus;
+ if (list_empty(&menus))
+ return NULL;
+
+ return list_entry(&menus, struct menu, list);
}
void menu_free(struct menu *m)
@@ -60,7 +63,7 @@ int menu_add(struct menu *m)
if (menu_get_by_name(m->name))
return -EEXIST;
- list_add_tail(&m->list, &menus.list);
+ list_add_tail(&m->list, &menus);
return 0;
}
@@ -112,7 +115,7 @@ struct menu* menu_get_by_name(char *name)
if (!name)
return NULL;
- list_for_each_entry(m, &menus.list, list) {
+ list_for_each_entry(m, &menus, list) {
if(strcmp(m->name, name) == 0)
return m;
}
@@ -291,11 +294,3 @@ void menu_action_show(struct menu *m, struct menu_entry *me)
menu_show(sm);
}
-
-static int menu_init(void)
-{
- INIT_LIST_HEAD(&menus.list);
-
- return 0;
-}
-postcore_initcall(menu_init);