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,9 +31,15 @@ "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", @@ -45,43 +51,39 @@ 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, + + DEBUGGING_TO_SERIAL, + DEBUGGING_TO_FILE, + DEBUGGING_TO_SCREEN, + DEBUGGING_TO_KDSERIAL, + + SEPARATOR3, - SEPARATOR2 = 9, - #ifdef HAS_OPTION_MENU_CUSTOM_BOOT - CUSTOM_BOOT = 10, + CUSTOM_BOOT, #endif #ifdef HAS_OPTION_MENU_REBOOT - REBOOT = 11, + REBOOT, #endif }; -ULONG OptionsMenuItemCount = sizeof(OptionsMenuList) / sizeof(OptionsMenuList[0]); +ULONG OptionsMenuItemCount = sizeof(OptionsMenuList) / sizeof(OptionsMenuList[0]); +ULONG SelectedMenuItem; -BOOLEAN SafeMode = FALSE; -BOOLEAN SafeModeWithNetworking = FALSE; -BOOLEAN SafeModeWithCommandPrompt = FALSE; -BOOLEAN BootLogging = FALSE; -BOOLEAN VgaMode = FALSE; -BOOLEAN LastKnownGoodConfiguration = FALSE; -BOOLEAN DirectoryServicesRepairMode = FALSE; -BOOLEAN DebuggingMode = FALSE; - VOID DoOptionsMenu(VOID) { - ULONG SelectedMenuItem; - if (!UiDisplayMenu(OptionsMenuList, OptionsMenuItemCount, 0, -1, &SelectedMenuItem, TRUE, NULL)) { // The user pressed ESC @@ -93,73 +95,62 @@ switch (SelectedMenuItem) { +#ifdef HAS_OPTION_MENU_CUSTOM_BOOT + case CUSTOM_BOOT: + OptionMenuCustomBoot(); + break; +#endif +#ifdef HAS_OPTION_MENU_REBOOT + case REBOOT: + OptionMenuReboot(); + break; +#endif + } +} + +VOID AppendBootTimeOptions(PCHAR BootOptions) +{ + char* AdditionalOption = NULL; + + switch(SelectedMenuItem) + { case SAFE_MODE: - SafeMode = TRUE; - BootLogging = TRUE; + AdditionalOption = " /BOOTLOG /SAFEBOOT:MINIMAL /SOS"; //FIXME: NOGUIBOOT should also be specified break; case SAFE_MODE_WITH_NETWORKING: - SafeModeWithNetworking = TRUE; - BootLogging = TRUE; + AdditionalOption = " /BOOTLOG /SAFEBOOT:NETWORK /SOS"; //FIXME: NOGUIBOOT should also be specified break; case SAFE_MODE_WITH_COMMAND_PROMPT: - SafeModeWithCommandPrompt = TRUE; - BootLogging = TRUE; + AdditionalOption = " /BOOTLOG /SAFEBOOT:MINIMAL(ALTERNATESHELL) /SOS"; //FIXME: NOGUIBOOT should also be specified break; - //case SEPARATOR1: - // break; case ENABLE_BOOT_LOGGING: - BootLogging = TRUE; + AdditionalOption = " /BOOTLOG"; break; case ENABLE_VGA_MODE: - VgaMode = TRUE; + AdditionalOption = " /BASEVIDEO"; break; case LAST_KNOWN_GOOD_CONFIGURATION: - LastKnownGoodConfiguration = TRUE; + DbgPrint("Last known good configuration is not supported yet!\n"); break; case DIRECTORY_SERVICES_RESTORE_MODE: - DirectoryServicesRepairMode = TRUE; + AdditionalOption = " /SAFEBOOT:DSREPAIR /SOS"; break; - case DEBUGGING_MODE: - DebuggingMode = TRUE; + case DEBUGGING_TO_SERIAL: + AdditionalOption = "/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS"; break; - //case SEPARATOR2: - // break; -#ifdef HAS_OPTION_MENU_CUSTOM_BOOT - case CUSTOM_BOOT: - OptionMenuCustomBoot(); + case DEBUGGING_TO_FILE: + AdditionalOption = "/DEBUG /DEBUGPORT=FILE /SOS"; break; -#endif -#ifdef HAS_OPTION_MENU_REBOOT - case REBOOT: - OptionMenuReboot(); + case DEBUGGING_TO_SCREEN: + AdditionalOption = "/DEBUG /DEBUGPORT=SCREEN /SOS"; break; -#endif + case DEBUGGING_TO_KDSERIAL: + AdditionalOption = "/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /KDSERIAL"; + break; } + + if(AdditionalOption != NULL) + { + strcat(BootOptions,AdditionalOption); + } } - -VOID AppendBootTimeOptions(PCHAR BootOptions) -{ - if (SafeMode) - strcat(BootOptions, " /SAFEBOOT:MINIMAL /SOS"); //FIXME: NOGUIBOOT should also be specified - - if (SafeModeWithNetworking) - strcat(BootOptions, " /SAFEBOOT:NETWORK /SOS"); //FIXME: NOGUIBOOT should also be specified - - if (SafeModeWithCommandPrompt) - strcat(BootOptions, " /SAFEBOOT:MINIMAL(ALTERNATESHELL) /SOS"); //FIXME: NOGUIBOOT should also be specified - - if (BootLogging) - strcat(BootOptions, " /BOOTLOG"); - - if (VgaMode) - strcat(BootOptions, " /BASEVIDEO"); - - if (LastKnownGoodConfiguration) - DbgPrint("Last known good configuration is not supported yet!\n"); - - if (DirectoryServicesRepairMode) - strcat(BootOptions, " /SAFEBOOT:DSREPAIR /SOS"); - - if (DebuggingMode) - strcat(BootOptions, " /DEBUG"); -}