1147072Sbrooks/*
2147072Sbrooks * Copyright 2004-2007, Axel D��rfler, axeld@pinc-software.de. All rights reserved.
3147072Sbrooks * Distributed under the terms of the MIT License.
4147072Sbrooks */
5147072Sbrooks
6147072Sbrooks
7147072Sbrooks#include "smp.h"
8147072Sbrooks#include "video.h"
9147072Sbrooks
10147072Sbrooks#include <boot/menu.h>
11147072Sbrooks#include <boot/platform/generic/text_menu.h>
12147072Sbrooks#include <safemode.h>
13147072Sbrooks
14147072Sbrooks
15147072Sbrooksvoid
16147072Sbrooksplatform_add_menus(Menu *menu)
17147072Sbrooks{
18147072Sbrooks	MenuItem *item;
19147072Sbrooks
20147072Sbrooks	/*switch (menu->Type()) {
21147072Sbrooks		case MAIN_MENU:
22147072Sbrooks			menu->AddItem(item = new(nothrow) MenuItem("Select fail-safe video mode", video_mode_menu()));
23147072Sbrooks			item->SetTarget(video_mode_hook);
24147072Sbrooks			break;
25147072Sbrooks		case SAFE_MODE_MENU:
26147072Sbrooks			menu->AddItem(item = new(nothrow) MenuItem("Use fail-safe video mode"));
27147072Sbrooks			item->SetType(MENU_ITEM_MARKABLE);
28147072Sbrooks			item->SetData(B_SAFEMODE_FAIL_SAFE_VIDEO_MODE);
29147072Sbrooks			item->SetHelpText("The system will use VESA mode "
30147072Sbrooks				"and won't try to use any video graphics drivers.");
31147072Sbrooks
32147072Sbrooks			smp_add_safemode_menus(menu);
33147072Sbrooks
34147072Sbrooks			menu->AddItem(item = new(nothrow) MenuItem("Don't call the BIOS"));
35147072Sbrooks			item->SetHelpText("Stops the system from calling BIOS functions.");
36147072Sbrooks			item->SetType(MENU_ITEM_MARKABLE);
37147072Sbrooks
38147072Sbrooks			menu->AddItem(item = new(nothrow) MenuItem("Disable APM"));
39147072Sbrooks			item->SetType(MENU_ITEM_MARKABLE);
40147072Sbrooks			item->SetData(B_SAFEMODE_DISABLE_APM);
41147072Sbrooks			item->SetHelpText("Disables Advanced Power Management hardware support, "
42147072Sbrooks				"overriding the APM setting in the kernel settings file.");
43149399Sbrooks
44149399Sbrooks			menu->AddItem(item = new(nothrow) MenuItem("Disable ACPI"));
45149399Sbrooks			item->SetType(MENU_ITEM_MARKABLE);
46147072Sbrooks			item->SetData(B_SAFEMODE_DISABLE_ACPI);
47147072Sbrooks			item->SetHelpText("Disables Advanced Configuration and Power "
48147072Sbrooks				"Interface hardware support, overriding the ACPI setting "
49147072Sbrooks				"in the kernel settings file.");
50147072Sbrooks
51147072Sbrooks			menu->AddItem(item = new(nothrow) MenuItem("Disable IO-APIC"));
52147072Sbrooks			item->SetType(MENU_ITEM_MARKABLE);
53147072Sbrooks			item->SetData(B_SAFEMODE_DISABLE_IOAPIC);
54147072Sbrooks			item->SetHelpText("Disables using the IO APIC for interrupt handling, "
55147072Sbrooks				"forcing instead the use of the PIC.");
56147072Sbrooks			break;
57147072Sbrooks		default:
58147072Sbrooks			break;
59147072Sbrooks	}*/
60147072Sbrooks}
61147072Sbrooks
62147072Sbrooks
63147072Sbrooksvoid
64147072Sbrooksplatform_update_menu_item(Menu *menu, MenuItem *item)
65147072Sbrooks{
66147072Sbrooks	platform_generic_update_text_menu_item(menu, item);
67147072Sbrooks}
68147072Sbrooks
69147072Sbrooks
70147072Sbrooksvoid
71147072Sbrooksplatform_run_menu(Menu *menu)
72147072Sbrooks{
73147072Sbrooks	platform_generic_run_text_menu(menu);
74147072Sbrooks}
75147072Sbrooks
76147072Sbrooks
77147072Sbrooksvoid
78147072Sbrooksplatform_get_user_input_text(Menu *menu, MenuItem *item, char *buffer,
79147072Sbrooks	size_t bufferSize)
80147072Sbrooks{
81147072Sbrooks	platform_generic_get_user_input_text(menu, item, buffer, bufferSize);
82147072Sbrooks}
83147072Sbrooks