1 /*
2 * Copyright 2004-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7 #include "smp.h"
8 #include "video.h"
9
10 #include <boot/menu.h>
11 #include <boot/platform/generic/text_menu.h>
12 #include <safemode.h>
13
14
15 void
platform_add_menus(Menu * menu)16 platform_add_menus(Menu *menu)
17 {
18 MenuItem *item;
19
20 /*switch (menu->Type()) {
21 case MAIN_MENU:
22 menu->AddItem(item = new(nothrow) MenuItem("Select fail-safe video mode", video_mode_menu()));
23 item->SetTarget(video_mode_hook);
24 break;
25 case SAFE_MODE_MENU:
26 menu->AddItem(item = new(nothrow) MenuItem("Use fail-safe video mode"));
27 item->SetType(MENU_ITEM_MARKABLE);
28 item->SetData(B_SAFEMODE_FAIL_SAFE_VIDEO_MODE);
29 item->SetHelpText("The system will use VESA mode "
30 "and won't try to use any video graphics drivers.");
31
32 smp_add_safemode_menus(menu);
33
34 menu->AddItem(item = new(nothrow) MenuItem("Don't call the BIOS"));
35 item->SetHelpText("Stops the system from calling BIOS functions.");
36 item->SetType(MENU_ITEM_MARKABLE);
37
38 menu->AddItem(item = new(nothrow) MenuItem("Disable APM"));
39 item->SetType(MENU_ITEM_MARKABLE);
40 item->SetData(B_SAFEMODE_DISABLE_APM);
41 item->SetHelpText("Disables Advanced Power Management hardware support, "
42 "overriding the APM setting in the kernel settings file.");
43
44 menu->AddItem(item = new(nothrow) MenuItem("Disable ACPI"));
45 item->SetType(MENU_ITEM_MARKABLE);
46 item->SetData(B_SAFEMODE_DISABLE_ACPI);
47 item->SetHelpText("Disables Advanced Configuration and Power "
48 "Interface hardware support, overriding the ACPI setting "
49 "in the kernel settings file.");
50
51 menu->AddItem(item = new(nothrow) MenuItem("Disable IO-APIC"));
52 item->SetType(MENU_ITEM_MARKABLE);
53 item->SetData(B_SAFEMODE_DISABLE_IOAPIC);
54 item->SetHelpText("Disables using the IO APIC for interrupt handling, "
55 "forcing instead the use of the PIC.");
56 break;
57 default:
58 break;
59 }*/
60 }
61
62
63 void
platform_update_menu_item(Menu * menu,MenuItem * item)64 platform_update_menu_item(Menu *menu, MenuItem *item)
65 {
66 platform_generic_update_text_menu_item(menu, item);
67 }
68
69
70 void
platform_run_menu(Menu * menu)71 platform_run_menu(Menu *menu)
72 {
73 platform_generic_run_text_menu(menu);
74 }
75
76
77 void
platform_get_user_input_text(Menu * menu,MenuItem * item,char * buffer,size_t bufferSize)78 platform_get_user_input_text(Menu *menu, MenuItem *item, char *buffer,
79 size_t bufferSize)
80 {
81 platform_generic_get_user_input_text(menu, item, buffer, bufferSize);
82 }
83