Index: base/setup/usetup/bootsup.c =================================================================== --- base/setup/usetup/bootsup.c (revision 52239) +++ base/setup/usetup/bootsup.c (working copy) @@ -494,18 +494,15 @@ L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS"); #if DBG - /* ReactOS_KdSerial */ - CreateFreeLoaderEntry(IniCache, IniSection, - L"ReactOS_KdSerial", L"\"ReactOS (RosDbg)\"", - L"Windows2003", ArcPath, - L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /KDSERIAL"); + if (IsUnattendedSetup) + { + /* ReactOS_KdSerial */ + CreateFreeLoaderEntry(IniCache, IniSection, + L"ReactOS_KdSerial", L"\"ReactOS (RosDbg)\"", + L"Windows2003", ArcPath, + L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /KDSERIAL"); + } - /* ReactOS_LogFile */ - CreateFreeLoaderEntry(IniCache, IniSection, - L"ReactOS_LogFile", L"\"ReactOS (Log file)\"", - L"Windows2003", ArcPath, - L"/DEBUG /DEBUGPORT=FILE /SOS"); - /* ReactOS_Ram */ CreateFreeLoaderEntry(IniCache, IniSection, L"ReactOS_Ram", L"\"ReactOS (RAM Disk)\"", @@ -519,12 +516,6 @@ L"ReactOS", ArcPath, L""); - /* ReactOS_Debug_old */ - CreateFreeLoaderEntry(IniCache, IniSection, - L"ReactOS_Debug_old", L"\"ReactOS (Debug, old boot method)\"", - L"ReactOS", ArcPath, - L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS"); - /* Save the ini file */ IniCacheSave(IniCache, IniPath); IniCacheDestroy(IniCache); Index: boot/freeldr/freeldr/options.c =================================================================== --- boot/freeldr/freeldr/options.c (revision 52239) +++ boot/freeldr/freeldr/options.c (working copy) @@ -31,10 +31,16 @@ "Enable VGA Mode", "Last Known Good Configuration", "Directory Services Restore Mode", - "Debugging Mode", "SEPARATOR", + "Debugging to serial port", + "Debugging to file", + "Debugging to screen", + "Debugging to kdserial", + + "SEPARATOR", + #ifdef HAS_OPTION_MENU_CUSTOM_BOOT "Custom Boot", #endif @@ -45,44 +51,41 @@ enum OptionMenuItems { - SAFE_MODE = 0, - SAFE_MODE_WITH_NETWORKING = 1, - SAFE_MODE_WITH_COMMAND_PROMPT = 2, + SAFE_MODE, + SAFE_MODE_WITH_NETWORKING, + SAFE_MODE_WITH_COMMAND_PROMPT, - SEPARATOR1 = 3, + SEPARATOR1, - ENABLE_BOOT_LOGGING = 4, - ENABLE_VGA_MODE = 5, - LAST_KNOWN_GOOD_CONFIGURATION = 6, - DIRECTORY_SERVICES_RESTORE_MODE = 7, - DEBUGGING_MODE = 8, + ENABLE_BOOT_LOGGING, + ENABLE_VGA_MODE, + LAST_KNOWN_GOOD_CONFIGURATION, + DIRECTORY_SERVICES_RESTORE_MODE, - SEPARATOR2 = 9, + SEPARATOR2, + DEBUGGING_TO_SERIAL, + DEBUGGING_TO_FILE, + DEBUGGING_TO_SCREEN, + DEBUGGING_TO_KDSERIAL, + + SEPARATOR3, + #ifdef HAS_OPTION_MENU_CUSTOM_BOOT - CUSTOM_BOOT = 10, + CUSTOM_BOOT, #endif #ifdef HAS_OPTION_MENU_REBOOT - REBOOT = 11, + REBOOT, #endif + OPTIONS_COUNT }; -ULONG OptionsMenuItemCount = sizeof(OptionsMenuList) / sizeof(OptionsMenuList[0]); - -BOOLEAN SafeMode = FALSE; -BOOLEAN SafeModeWithNetworking = FALSE; -BOOLEAN SafeModeWithCommandPrompt = FALSE; -BOOLEAN BootLogging = FALSE; -BOOLEAN VgaMode = FALSE; -BOOLEAN LastKnownGoodConfiguration = FALSE; -BOOLEAN DirectoryServicesRepairMode = FALSE; -BOOLEAN DebuggingMode = FALSE; - +BOOLEAN SelectedOptions[OPTIONS_COUNT]; VOID DoOptionsMenu(VOID) { ULONG SelectedMenuItem; - if (!UiDisplayMenu(OptionsMenuList, OptionsMenuItemCount, 0, -1, &SelectedMenuItem, TRUE, NULL)) + if (!UiDisplayMenu(OptionsMenuList, OPTIONS_COUNT, 0, -1, &SelectedMenuItem, TRUE, NULL)) { // The user pressed ESC return; @@ -93,37 +96,6 @@ switch (SelectedMenuItem) { - case SAFE_MODE: - SafeMode = TRUE; - BootLogging = TRUE; - break; - case SAFE_MODE_WITH_NETWORKING: - SafeModeWithNetworking = TRUE; - BootLogging = TRUE; - break; - case SAFE_MODE_WITH_COMMAND_PROMPT: - SafeModeWithCommandPrompt = TRUE; - BootLogging = TRUE; - break; - //case SEPARATOR1: - // break; - case ENABLE_BOOT_LOGGING: - BootLogging = TRUE; - break; - case ENABLE_VGA_MODE: - VgaMode = TRUE; - break; - case LAST_KNOWN_GOOD_CONFIGURATION: - LastKnownGoodConfiguration = TRUE; - break; - case DIRECTORY_SERVICES_RESTORE_MODE: - DirectoryServicesRepairMode = TRUE; - break; - case DEBUGGING_MODE: - DebuggingMode = TRUE; - break; - //case SEPARATOR2: - // break; #ifdef HAS_OPTION_MENU_CUSTOM_BOOT case CUSTOM_BOOT: OptionMenuCustomBoot(); @@ -134,32 +106,44 @@ OptionMenuReboot(); break; #endif + default: + SelectedOptions[SelectedMenuItem] = TRUE; } } VOID AppendBootTimeOptions(PCHAR BootOptions) { - if (SafeMode) - strcat(BootOptions, " /SAFEBOOT:MINIMAL /SOS"); //FIXME: NOGUIBOOT should also be specified + if(SelectedOptions[SAFE_MODE]) + strcat(BootOptions, " /BOOTLOG /SAFEBOOT:MINIMAL /SOS"); //FIXME: NOGUIBOOT should also be specified - if (SafeModeWithNetworking) - strcat(BootOptions, " /SAFEBOOT:NETWORK /SOS"); //FIXME: NOGUIBOOT should also be specified + if(SelectedOptions[SAFE_MODE_WITH_NETWORKING]) + strcat(BootOptions, " /BOOTLOG /SAFEBOOT:NETWORK /SOS"); //FIXME: NOGUIBOOT should also be specified - if (SafeModeWithCommandPrompt) - strcat(BootOptions, " /SAFEBOOT:MINIMAL(ALTERNATESHELL) /SOS"); //FIXME: NOGUIBOOT should also be specified + if(SelectedOptions[SAFE_MODE_WITH_COMMAND_PROMPT]) + strcat(BootOptions, " /BOOTLOG /SAFEBOOT:MINIMAL(ALTERNATESHELL) /SOS"); //FIXME: NOGUIBOOT should also be specified - if (BootLogging) + if(SelectedOptions[ENABLE_BOOT_LOGGING]) strcat(BootOptions, " /BOOTLOG"); - if (VgaMode) + if(SelectedOptions[ENABLE_VGA_MODE]) strcat(BootOptions, " /BASEVIDEO"); - if (LastKnownGoodConfiguration) + if(SelectedOptions[LAST_KNOWN_GOOD_CONFIGURATION]) DbgPrint("Last known good configuration is not supported yet!\n"); - if (DirectoryServicesRepairMode) + if(SelectedOptions[DIRECTORY_SERVICES_RESTORE_MODE]) strcat(BootOptions, " /SAFEBOOT:DSREPAIR /SOS"); - if (DebuggingMode) - strcat(BootOptions, " /DEBUG"); + if(SelectedOptions[DEBUGGING_TO_SERIAL]) + strcat(BootOptions, "/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS"); + + if(SelectedOptions[DEBUGGING_TO_FILE]) + strcat(BootOptions, "/DEBUG /DEBUGPORT=FILE /SOS"); + + if(SelectedOptions[DEBUGGING_TO_SCREEN]) + strcat(BootOptions, "/DEBUG /DEBUGPORT=SCREEN /SOS"); + + if(SelectedOptions[DEBUGGING_TO_KDSERIAL]) + strcat(BootOptions, "/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /KDSERIAL"); + }