blob: d8200eee8375a1bc72d5567bcbb3f57aaf9c72be [file] [log] [blame]
Jason Hobbsb69bf522011-08-23 11:06:49 +00001/*
2 * Copyright 2010-2011 Calxeda, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the Free
6 * Software Foundation; either version 2 of the License, or (at your option)
7 * any later version.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef __MENU_H__
19#define __MENU_H__
20
21struct menu;
22
Jason Hobbsb41bc5a2011-08-23 11:06:50 +000023struct menu *menu_create(char *title, int timeout, int prompt,
Pali Rohárfc9d64f2013-03-23 14:50:40 +000024 void (*item_data_print)(void *),
25 char *(*item_choice)(void *),
26 void *item_choice_data);
Jason Hobbsb69bf522011-08-23 11:06:49 +000027int menu_default_set(struct menu *m, char *item_key);
28int menu_get_choice(struct menu *m, void **choice);
29int menu_item_add(struct menu *m, char *item_key, void *item_data);
30int menu_destroy(struct menu *m);
Heiko Schochere0611dd2012-01-16 21:13:20 +000031void menu_display_statusline(struct menu *m);
Anatolij Gustschin6a3439f2013-03-23 14:52:04 +000032int menu_default_choice(struct menu *m, void **choice);
Jason Hobbsb69bf522011-08-23 11:06:49 +000033
Heiko Schocher317d6c52012-01-16 21:13:35 +000034#if defined(CONFIG_MENU_SHOW)
35int menu_show(int bootdelay);
36#endif
Jason Hobbsb69bf522011-08-23 11:06:49 +000037#endif /* __MENU_H__ */