X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fmenu.h;h=702aacb170c64a219f645be86eaee8b0fe320694;hb=c56289ddafce3d1ec442fb18064f136c2c47d0bb;hp=f4dd5af165f10b2d9c0988762f14bfbbdae61c72;hpb=fc9d64ffcd94c1e22675830eae13956cc4fd822d;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/menu.h b/include/menu.h index f4dd5af..702aacb 100644 --- a/include/menu.h +++ b/include/menu.h @@ -1,18 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright 2010-2011 Calxeda, Inc. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program. If not, see . */ #ifndef __MENU_H__ @@ -21,6 +9,7 @@ struct menu; struct menu *menu_create(char *title, int timeout, int prompt, + void (*display_statusline)(struct menu *), void (*item_data_print)(void *), char *(*item_choice)(void *), void *item_choice_data); @@ -28,9 +17,45 @@ int menu_default_set(struct menu *m, char *item_key); int menu_get_choice(struct menu *m, void **choice); int menu_item_add(struct menu *m, char *item_key, void *item_data); int menu_destroy(struct menu *m); -void menu_display_statusline(struct menu *m); +int menu_default_choice(struct menu *m, void **choice); -#if defined(CONFIG_MENU_SHOW) +/** + * menu_show() Show a boot menu + * + * This shows a menu and lets the user select an option. The menu is defined by + * environment variables (see README.bootmenu). + * + * This function doesn't normally return, but if the users requests the command + * problem, it will. + * + * @bootdelay: Delay to wait before running the default menu option (0 to run + * the entry immediately) + * Return: If it returns, it always returns -1 to indicate that the boot should + * be aborted and the command prompt should be provided + */ int menu_show(int bootdelay); -#endif + +struct bootmenu_data { + int delay; /* delay for autoboot */ + int active; /* active menu entry */ + int count; /* total count of menu entries */ + struct bootmenu_entry *first; /* first menu entry */ +}; + +enum bootmenu_key { + KEY_NONE = 0, + KEY_UP, + KEY_DOWN, + KEY_SELECT, + KEY_QUIT, + KEY_PLUS, + KEY_MINUS, + KEY_SPACE, +}; + +void bootmenu_autoboot_loop(struct bootmenu_data *menu, + enum bootmenu_key *key, int *esc); +void bootmenu_loop(struct bootmenu_data *menu, + enum bootmenu_key *key, int *esc); + #endif /* __MENU_H__ */