1/*
2 * Copyright 2004, Axel D��rfler, axeld@pinc-software.de.
3 * All rights reserved. Distributed under the terms of the MIT License.
4 */
5
6
7#include <boot/platform.h>
8#include <boot/menu.h>
9#include <boot/platform/generic/text_menu.h>
10#include <platform/openfirmware/openfirmware.h>
11
12
13static bool
14of_exit_hook(Menu *menu, MenuItem *item)
15{
16	of_exit();
17	return true;
18}
19
20
21void
22platform_add_menus(Menu *menu)
23{
24	MenuItem* item;
25
26	switch (menu->Type()) {
27		case MAIN_MENU:
28			item = new(std::nothrow) MenuItem("Exit to OpenFirmware");
29			if (item != NULL) {
30				menu->AddItem(item);
31				item->SetTarget(of_exit_hook);
32				item->SetShortcut('q');
33			}
34			break;
35		case SAFE_MODE_MENU:
36			break;
37		default:
38			break;
39	}
40}
41
42
43void
44platform_update_menu_item(Menu *menu, MenuItem *item)
45{
46	platform_generic_update_text_menu_item(menu, item);
47}
48
49
50void
51platform_run_menu(Menu *menu)
52{
53	platform_generic_run_text_menu(menu);
54}
55
56
57size_t
58platform_get_user_input_text(Menu *menu, MenuItem *item, char *buffer,
59	size_t bufferSize)
60{
61	return platform_generic_get_user_input_text(menu, item, buffer,
62		bufferSize);
63}
64