X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=doc%2FREADME.menu;h=ad520ab3aad9ccf9f47fa4925301feeb1d83e68f;hb=6d61a4d1ca9d88dcdf2c70e344d18e94685a1fa9;hp=f55eb801b9a6862dc68fe28066cb7bb976eb531c;hpb=b69bf52dfe34b9d7b2a20845c8a7e7e5978c2d2f;p=karo-tx-uboot.git diff --git a/doc/README.menu b/doc/README.menu index f55eb801b9..ad520ab3aa 100644 --- a/doc/README.menu +++ b/doc/README.menu @@ -1,18 +1,7 @@ /* * 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 . + * SPDX-License-Identifier: GPL-2.0+ */ U-boot provides a set of interfaces for creating and using simple, text @@ -25,6 +14,11 @@ the interfaces should be available. Menus are composed of items. Each item has a key used to identify it in the menu, and an opaque pointer to data controlled by the consumer. +If you want to show a menu, instead starting the shell, define +CONFIG_MENU_SHOW. You have to code the int menu_show(int bootdelay) +function, which handle your menu. This function returns the remaining +bootdelay. + Interfaces ---------- #include "menu.h" @@ -45,8 +39,10 @@ struct menu; /* * menu_create() - Creates a menu handle with default settings */ -struct menu *menu_create(char *title, int prompt, - void (*item_data_print)(void *)); +struct menu *menu_create(char *title, int timeout, int prompt, + void (*item_data_print)(void *), + char *(*item_choice)(void *), + void *item_choice_data); /* * menu_item_add() - Adds or replaces a menu item @@ -58,9 +54,14 @@ int menu_item_add(struct menu *m, char *item_key, void *item_data); */ int menu_default_set(struct menu *m, char *item_key); +/* + * menu_default_choice() - Set *choice to point to the default item's data + */ +int menu_default_choice(struct menu *m, void **choice); + /* * menu_get_choice() - Returns the user's selected menu entry, or the - * default if the menu is set to not prompt. + * default if the menu is set to not prompt or the timeout expires. */ int menu_get_choice(struct menu *m, void **choice); @@ -69,6 +70,11 @@ int menu_get_choice(struct menu *m, void **choice); */ int menu_destroy(struct menu *m); +/* + * menu_display_statusline(struct menu *m); + * shows a statusline for every menu_display call. + */ +void menu_display_statusline(struct menu *m); Example Code ------------ @@ -90,14 +96,14 @@ char *pick_a_tool(void) int i; char *tool = NULL; - m = menu_create("Tools", 1, NULL); + m = menu_create("Tools", 0, 1, NULL); for(i = 0; tools[i]; i++) { if (menu_item_add(m, tools[i], tools[i]) != 1) { printf("failed to add item!"); menu_destroy(m); return NULL; - } + } } if (menu_get_choice(m, (void **)&tool) != 1)