WINLDR: Finally, set Windows boot style as default
[reactos.git] / reactos / base / setup / usetup / bootsup.c
index 8540e0e..1897cbc 100644 (file)
@@ -43,7 +43,7 @@ CreateCommonFreeLoaderSections(PINICACHE IniCache)
   IniSection = IniCacheAppendSection(IniCache,
                                     L"FREELOADER");
 
-#ifdef DBG
+#if DBG
   if (IsUnattendedSetup)
   {
     /* DefaultOS=ReactOS */
@@ -51,7 +51,7 @@ CreateCommonFreeLoaderSections(PINICACHE IniCache)
                    NULL,
                    INSERT_LAST,
                    L"DefaultOS",
-                   L"ReactOS_Debug");
+                   L"ReactOS_KdSerial");
   }
   else
 #endif
@@ -64,7 +64,7 @@ CreateCommonFreeLoaderSections(PINICACHE IniCache)
                    L"ReactOS");
   }
 
-#ifdef DBG
+#if DBG
   if (IsUnattendedSetup)
 #endif
   {
@@ -75,7 +75,7 @@ CreateCommonFreeLoaderSections(PINICACHE IniCache)
                    L"TimeOut",
                    L"0");
   }
-#ifdef DBG
+#if DBG
   else
   {
     /* Timeout=0 or 10 */
@@ -305,12 +305,12 @@ CreateFreeLoaderIniForDos(PWCHAR IniPath,
                    L"SystemPath",
                    ArcPath);
 
-  /* Options=/DEBUGPORT=SCREEN /NOGUIBOOT /SOS*/
+  /* Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS*/
   IniCacheInsertKey(IniSection,
                    NULL,
                    INSERT_LAST,
                    L"Options",
-                   L"/DEBUGPORT=SCREEN /SOS");
+                   L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS");
 
   /* Create "DOS" section */
   IniSection = IniCacheAppendSection(IniCache,
@@ -351,6 +351,52 @@ CreateFreeLoaderIniForDos(PWCHAR IniPath,
 }
 
 
+NTSTATUS
+CreateFreeLoaderEntry(
+    PINICACHE IniCache,
+    PINICACHESECTION OSSection,
+    PWCHAR Section,
+    PWCHAR Description,
+    PWCHAR BootType,
+    PWCHAR ArcPath,
+    PWCHAR Options)
+{
+    PINICACHESECTION IniSection;
+
+    /* Insert entry into "Operating Systems" section */
+    IniCacheInsertKey(OSSection,
+        NULL,
+        INSERT_LAST,
+        Section,
+        Description);
+
+    /* Create new section */
+    IniSection = IniCacheAppendSection(IniCache, Section);
+
+    /* BootType= */
+    IniCacheInsertKey(IniSection,
+        NULL,
+        INSERT_LAST,
+        L"BootType",
+        BootType);
+
+    /* SystemPath= */
+    IniCacheInsertKey(IniSection,
+        NULL,
+        INSERT_LAST,
+        L"SystemPath",
+        ArcPath);
+
+    /* Options=*/
+    IniCacheInsertKey(IniSection,
+        NULL,
+        INSERT_LAST,
+        L"Options",
+        Options);
+
+    return STATUS_SUCCESS;
+}
+
 NTSTATUS
 CreateFreeLoaderIniForReactos(PWCHAR IniPath,
                              PWCHAR ArcPath)
@@ -366,69 +412,43 @@ CreateFreeLoaderIniForReactos(PWCHAR IniPath,
   IniSection = IniCacheAppendSection(IniCache,
                                     L"Operating Systems");
 
-  /* ReactOS="ReactOS" */
-  IniCacheInsertKey(IniSection,
-                   NULL,
-                   INSERT_LAST,
-                   L"ReactOS",
-                   L"\"ReactOS\"");
-
-  /* ReactOS_Debug="ReactOS (Debug)" */
-  IniCacheInsertKey(IniSection,
-                   NULL,
-                   INSERT_LAST,
-                   L"ReactOS_Debug",
-                   L"\"ReactOS (Debug)\"");
-
-  /* Create "ReactOS" section */
-  IniSection = IniCacheAppendSection(IniCache,
-                                    L"ReactOS");
-
-  /* BootType=ReactOS */
-  IniCacheInsertKey(IniSection,
-                   NULL,
-                   INSERT_LAST,
-                   L"BootType",
-                   L"ReactOS");
-
-  /* SystemPath=<ArcPath> */
-  IniCacheInsertKey(IniSection,
-                   NULL,
-                   INSERT_LAST,
-                   L"SystemPath",
-                   ArcPath);
-
-  /* Options=/SOS*/
-  IniCacheInsertKey(IniSection,
-                   NULL,
-                   INSERT_LAST,
-                   L"Options",
-                   L"/SOS");
-
-  /* Create "ReactOS_Debug" section */
-  IniSection = IniCacheAppendSection(IniCache,
-                                    L"ReactOS_Debug");
-
-  /* BootType=ReactOS */
-  IniCacheInsertKey(IniSection,
-                   NULL,
-                   INSERT_LAST,
-                   L"BootType",
-                   L"ReactOS");
+    /* ReactOS */
+    CreateFreeLoaderEntry(IniCache, IniSection,
+        L"ReactOS", L"\"ReactOS\"",
+        L"Windows2003", ArcPath,
+        L"");
+
+    /* ReactOS_Debug */
+    CreateFreeLoaderEntry(IniCache, IniSection,
+        L"ReactOS_Debug", L"\"ReactOS (Debug)\"",
+        L"Windows2003", ArcPath,
+        L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS");
+
+#if DBG
+    /* ReactOS_KdSerial */
+    CreateFreeLoaderEntry(IniCache, IniSection,
+        L"ReactOS_KdSerial", L"\"ReactOS (RosDbg)\"",
+        L"ReactOS", ArcPath,
+        L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /KDSERIAL");
+
+    /* ReactOS_Ram */
+    CreateFreeLoaderEntry(IniCache, IniSection,
+        L"ReactOS_Ram", L"\"ReactOS (RAM Disk)\"",
+        L"ReactOS", L"ramdisk(0)\\ReactOS",
+        L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /RDIMAGEPATH=reactos.img /RDIMAGEOFFSET=32256");
+#endif
 
-  /* SystemPath=<ArcPath> */
-  IniCacheInsertKey(IniSection,
-                   NULL,
-                   INSERT_LAST,
-                   L"SystemPath",
-                   ArcPath);
+    /* ReactOS_old */
+    CreateFreeLoaderEntry(IniCache, IniSection,
+        L"ReactOS_old", L"\"ReactOS (old boot method)\"",
+        L"ReactOS", ArcPath,
+        L"");
 
-  /* Options=/DEBUGPORT=COM1 /NOGUIBOOT /SOS*/
-  IniCacheInsertKey(IniSection,
-                   NULL,
-                   INSERT_LAST,
-                   L"Options",
-                   L"/DEBUGPORT=COM1 /SOS");
+    /* 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);
@@ -911,7 +931,6 @@ InstallFat32BootCodeToFile(PWSTR SrcPath,
   NtClose(FileHandle);
   if (!NT_SUCCESS(Status))
   {
-CHECKPOINT1;
     RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
     return(Status);
   }
@@ -1826,7 +1845,7 @@ InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath,
        NTSTATUS Status;
 
        /* FAT or FAT32 partition */
-       DPRINT1("System path: '%wZ'\n", SystemRootPath);
+       DPRINT("System path: '%wZ'\n", SystemRootPath);
 
        if (DoesFileExist(SystemRootPath->Buffer, L"ntldr") == TRUE ||
                DoesFileExist(SystemRootPath->Buffer, L"boot.ini") == TRUE)
@@ -2040,7 +2059,7 @@ InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath,
                wcscpy(DstPath, SystemRootPath->Buffer);
                wcscat(DstPath, L"\\freeldr.sys");
 
-               DPRINT1("Copy: %S ==> %S\n", SrcPath, DstPath);
+               DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
                Status = SetupCopyFile(SrcPath, DstPath);
                if (!NT_SUCCESS(Status))
                {
@@ -2055,7 +2074,7 @@ InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath,
                        wcscpy(DstPath, SystemRootPath->Buffer);
                        wcscat(DstPath, L"\\freeldr.ini");
 
-                       DPRINT1("Copy: %S ==> %S\n", SrcPath, DstPath);
+                       DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
                        Status = CreateFreeLoaderIniForReactos(DstPath,
                                DestinationArcPath->Buffer);
                        if (!NT_SUCCESS(Status))
@@ -2069,7 +2088,7 @@ InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath,
                        wcscpy(DstPath, SystemRootPath->Buffer);
                        wcscat(DstPath, L"\\bootsect.old");
 
-                       DPRINT1("Save bootsector: %S ==> %S\n", SrcPath, DstPath);
+                       DPRINT("Save bootsector: %S ==> %S\n", SrcPath, DstPath);
                        Status = SaveCurrentBootSector(SrcPath,
                                DstPath);
                        if (!NT_SUCCESS(Status))