Merge 15334:15712 from trunk (but don't activate xmlbuild)
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/hardware.c
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/xboxcons.c
Modified: branches/xen/reactos/boot/freeldr/freeldr/freeldr.c
Added: branches/xen/reactos/boot/freeldr/freeldr/freeldr.xml
Added: branches/xen/reactos/boot/freeldr/freeldr/freeldr_base.xml
Added: branches/xen/reactos/boot/freeldr/freeldr/freeldr_base64k.xml
Added: branches/xen/reactos/boot/freeldr/freeldr/freeldr_main.xml
Added: branches/xen/reactos/boot/freeldr/freeldr/freeldr_startup.xml
Modified: branches/xen/reactos/boot/freeldr/freeldr/mm/mm.c
Modified: branches/xen/reactos/boot/freeldr/freeldr/reactos/reactos.c
Modified: branches/xen/reactos/boot/freeldr/freeldr/reactos/setupldr.c
Added: branches/xen/reactos/boot/freeldr/freeldr/setupldr.xml
Added: branches/xen/reactos/boot/freeldr/freeldr/setupldr_main.xml
Modified: branches/xen/reactos/boot/freeldr/freeldr/ui/ui.c
Property changes on: branches/xen/reactos/boot/freeldr/freeldr
___________________________________________________________________
Name: lastmerge
- 15334
+ 15712
_____
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/hardware.c
--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/hardware.c
2005-06-01 01:59:05 UTC (rev 15712)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/hardware.c
2005-06-01 16:27:21 UTC (rev 15713)
@@ -1715,7 +1715,7 @@
/* Set 'Identifier' value */
strcpy(Buffer,
"PCAT_ENHANCED");
- Error = RegSetValue(ControllerKey,
+ Error = RegSetValue(PeripheralKey,
"Identifier",
REG_SZ,
Buffer,
_____
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/xboxcons.c
--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/xboxcons.c
2005-06-01 01:59:05 UTC (rev 15712)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/xboxcons.c
2005-06-01 16:27:21 UTC (rev 15713)
@@ -73,6 +73,8 @@
{
;
}
+
+ return 0;
}
/* EOF */
_____
Modified: branches/xen/reactos/boot/freeldr/freeldr/freeldr.c
--- branches/xen/reactos/boot/freeldr/freeldr/freeldr.c 2005-06-01
01:59:05 UTC (rev 15712)
+++ branches/xen/reactos/boot/freeldr/freeldr/freeldr.c 2005-06-01
16:27:21 UTC (rev 15713)
@@ -35,7 +35,7 @@
DebugInit();
- DbgPrint((DPRINT_WARNING, "BootMain() called. BootDrive = 0x%x
BootPartition = %d\n", BootDrive, BootPartition));
+ DbgPrint((DPRINT_WARNING, "BootMain() called.\n"));
if (!MmInitializeMemoryManager())
{
_____
Copied: branches/xen/reactos/boot/freeldr/freeldr/freeldr.xml (from rev
15712, trunk/reactos/boot/freeldr/freeldr/freeldr.xml)
_____
Copied: branches/xen/reactos/boot/freeldr/freeldr/freeldr_base.xml (from
rev 15712, trunk/reactos/boot/freeldr/freeldr/freeldr_base.xml)
_____
Copied: branches/xen/reactos/boot/freeldr/freeldr/freeldr_base64k.xml
(from rev 15712, trunk/reactos/boot/freeldr/freeldr/freeldr_base64k.xml)
_____
Copied: branches/xen/reactos/boot/freeldr/freeldr/freeldr_main.xml (from
rev 15712, trunk/reactos/boot/freeldr/freeldr/freeldr_main.xml)
_____
Copied: branches/xen/reactos/boot/freeldr/freeldr/freeldr_startup.xml
(from rev 15712, trunk/reactos/boot/freeldr/freeldr/freeldr_startup.xml)
_____
Modified: branches/xen/reactos/boot/freeldr/freeldr/mm/mm.c
--- branches/xen/reactos/boot/freeldr/freeldr/mm/mm.c 2005-06-01
01:59:05 UTC (rev 15712)
+++ branches/xen/reactos/boot/freeldr/freeldr/mm/mm.c 2005-06-01
16:27:21 UTC (rev 15713)
@@ -36,10 +36,30 @@
VOID MemAllocTest(VOID);
#endif // DEBUG
+/*
+ * Hack alert
+ * Normally, we allocate whole pages. This is ofcourse wastefull for
small
+ * allocations (a few bytes). So, for small allocations (smaller than a
page)
+ * we sub-allocate. When the first small allocation is done, a page is
+ * requested. We keep a pointer to that page in SubAllocationPage. The
alloc
+ * is satisfied by returning a pointer to the beginning of the page. We
also
+ * keep track of how many bytes are still available in the page in
SubAllocationRest.
+ * When the next small request comes in, we try to allocate it just
after the
+ * memory previously allocated. If it won't fit, we allocate a new page
and
+ * the whole process starts again.
+ * Note that suballocations are done back-to-back, there's no
bookkeeping at all.
+ * That also means that we cannot really free suballocations. So, when
a free is
+ * done and it is determined that this might be a free of a
sub-allocation, we
+ * just no-op the free.
+ * Perhaps we should use the heap routines from ntdll here.
+ */
+static PVOID SubAllocationPage = NULL;
+static unsigned SubAllocationRest = 0;
+
PVOID MmAllocateMemory(ULONG MemorySize)
{
- ULONG PagesNeeded;
- ULONG FirstFreePageFromEnd;
+ ULONG PagesNeeded;
+ ULONG FirstFreePageFromEnd;
PVOID MemPointer;
if (MemorySize == 0)
@@ -49,6 +69,14 @@
return NULL;
}
+ MemorySize = ROUND_UP(MemorySize, 4);
+ if (MemorySize <= SubAllocationRest)
+ {
+ MemPointer = SubAllocationPage + MM_PAGE_SIZE -
SubAllocationRest;
+ SubAllocationRest -= MemorySize;
+ return MemPointer;
+ }
+
// Find out how many blocks it will take to
// satisfy this allocation
PagesNeeded = ROUND_UP(MemorySize, MM_PAGE_SIZE) / MM_PAGE_SIZE;
@@ -76,6 +104,13 @@
FreePagesInLookupTable -= PagesNeeded;
MemPointer = (PVOID)(FirstFreePageFromEnd * MM_PAGE_SIZE);
+ if (MemorySize < MM_PAGE_SIZE)
+ {
+ SubAllocationPage = MemPointer;
+ SubAllocationRest = MM_PAGE_SIZE - MemorySize;
+ }
+
+
#ifdef DEBUG
IncrementAllocationCount();
DbgPrint((DPRINT_MEMORY, "Allocated %d bytes (%d pages) of
memory starting at page %d. AllocCount: %d\n", MemorySize, PagesNeeded,
FirstFreePageFromEnd, AllocationCount));
@@ -235,6 +270,13 @@
#endif
+ /* If this allocation is only a single page, it could be a
sub-allocated page.
+ * Just don't free it */
+ if (1 == PageCount)
+ {
+ return;
+ }
+
// Loop through our array and mark all the
// blocks as free
for (Idx=PageNumber; Idx<(PageNumber + PageCount); Idx++)
_____
Modified: branches/xen/reactos/boot/freeldr/freeldr/reactos/reactos.c
--- branches/xen/reactos/boot/freeldr/freeldr/reactos/reactos.c
2005-06-01 01:59:05 UTC (rev 15712)
+++ branches/xen/reactos/boot/freeldr/freeldr/reactos/reactos.c
2005-06-01 16:27:21 UTC (rev 15713)
@@ -760,6 +760,16 @@
if (!FrLdrLoadDriver(szHalName, 10))
return;
+#if 0
+ /* Load bootvid */
+ strcpy(value, "INBV.DLL");
+ strcpy(szHalName, szBootPath);
+ strcat(szHalName, "SYSTEM32\\");
+ strcat(szHalName, value);
+
+ if (!FrLdrLoadDriver(szHalName, 10))
+ return;
+#endif
/*
* Load the System hive from disk
*/
_____
Modified: branches/xen/reactos/boot/freeldr/freeldr/reactos/setupldr.c
--- branches/xen/reactos/boot/freeldr/freeldr/reactos/setupldr.c
2005-06-01 01:59:05 UTC (rev 15712)
+++ branches/xen/reactos/boot/freeldr/freeldr/reactos/setupldr.c
2005-06-01 16:27:21 UTC (rev 15713)
@@ -34,7 +34,7 @@
#include "registry.h"
-//#define USE_UI
+#define USE_UI
static BOOL
@@ -88,7 +88,7 @@
* Update the status bar with the current file
*/
#ifdef USE_UI
- sprintf(szBuffer, "Reading %s", szShortName);
+ sprintf(szBuffer, "Setup is loading files (%s)", szShortName);
UiDrawStatusText(szBuffer);
#else
printf("Reading %s\n", szShortName);
@@ -155,7 +155,7 @@
* Update the status bar with the current file
*/
#ifdef USE_UI
- sprintf(szBuffer, "Reading %s", szShortName);
+ sprintf(szBuffer, "Setup is loading files (%s)", szShortName);
UiDrawStatusText(szBuffer);
#else
printf("Reading %s\n", szShortName);
@@ -220,7 +220,7 @@
* Update the status bar with the current file
*/
#ifdef USE_UI
- sprintf(szBuffer, "Reading %s", szShortName);
+ sprintf(szBuffer, "Setup is loading files (%s)", szShortName);
UiDrawStatusText(szBuffer);
#else
printf("Reading %s\n", szShortName);
@@ -232,6 +232,7 @@
return(TRUE);
}
+BOOL SetupUiInitialize(VOID);
VOID RunLoader(VOID)
{
@@ -294,7 +295,7 @@
#endif
#ifdef USE_UI
- UiInitialize();
+ SetupUiInitialize();
UiDrawStatusText("");
#endif
_____
Copied: branches/xen/reactos/boot/freeldr/freeldr/setupldr.xml (from rev
15712, trunk/reactos/boot/freeldr/freeldr/setupldr.xml)
_____
Copied: branches/xen/reactos/boot/freeldr/freeldr/setupldr_main.xml
(from rev 15712, trunk/reactos/boot/freeldr/freeldr/setupldr_main.xml)
_____
Modified: branches/xen/reactos/boot/freeldr/freeldr/ui/ui.c
--- branches/xen/reactos/boot/freeldr/freeldr/ui/ui.c 2005-06-01
01:59:05 UTC (rev 15712)
+++ branches/xen/reactos/boot/freeldr/freeldr/ui/ui.c 2005-06-01
16:27:21 UTC (rev 15713)
@@ -27,6 +27,7 @@
#include <inifile.h>
#include <version.h>
#include <video.h>
+#include <reactos/buildno.h>
ULONG UiScreenWidth = 80;
// Screen Width
ULONG UiScreenHeight = 25;
// Screen Height
@@ -197,7 +198,40 @@
UserInterfaceUp = TRUE;
DbgPrint((DPRINT_UI, "UiInitialize() returning TRUE.\n"));
+ return TRUE;
+}
+BOOL SetupUiInitialize(VOID)
+{
+
+ CHAR DisplayModeText[260];
+ ULONG Depth;
+
+
+ DisplayModeText[0] = '\0';
+
+
+ UiDisplayMode = MachVideoSetDisplayMode(DisplayModeText, TRUE);
+ MachVideoGetDisplaySize(&UiScreenWidth, &UiScreenHeight,
&Depth);
+
+ TuiInitialize();
+
+ // Draw the backdrop and fade it in if special effects are
enabled
+ TuiFillArea(0,
+ 0,
+ UiScreenWidth - 1,
+ UiScreenHeight - 2,
+ 0,
+ ATTR(UiBackdropFgColor, UiBackdropBgColor));
+
+ UiStatusBarBgColor = 7;
+ UserInterfaceUp = TRUE;
+
+ TuiDrawText(4, 1, "ReactOS " KERNEL_VERSION_STR " Setup",
ATTR(COLOR_GRAY, UiBackdropBgColor));
+ TuiDrawText(3, 2,
"\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xC
D\xCD\xCD\xCD\xCD\xCD\xCD", ATTR(COLOR_GRAY, UiBackdropBgColor));
+
+ DbgPrint((DPRINT_UI, "UiInitialize() returning TRUE.\n"));
+
return TRUE;
}