<html>
<head>
<style>
<!--
body { background-color:#ffffff }
.file { border:1px solid #eeeeee; margin-top:1em; margin-bottom:1em }
.pathname { font-family:monospace; float:right }
.fileheader { margin-bottom:.5em }
.diff { margin:0 }
.tasklist { padding:4px; border:1px dashed #000000; margin-top:1em }
.tasklist ul { margin-top:0; margin-bottom:0 }
tr.alt { background-color:#eeeeee }
#added { background-color:#ddffdd }
#addedchars { background-color:#99ff99; font-weight:bolder }
tr.alt #added { background-color:#ccf7cc }
#removed { background-color:#ffdddd }
#removedchars { background-color:#ff9999; font-weight:bolder }
tr.alt #removed { background-color:#f7cccc }
#info { color:#888888 }
#context { background-color:#eeeeee }
td {padding-left:.3em; padding-right:.3em }
tr.head { border-bottom-width:1px; border-bottom-style:solid }
tr.head td { padding:0; padding-top:.2em }
.task { background-color:#ffff00 }
.comment { padding:4px; border:1px dashed #000000; background-color:#ffffdd }
.error { color:red }
hr { border-width:0px; height:2px; background:black }
-->
</style>
</head>
<body>
<pre class="comment">Build freeldr as elf executable, initial Xen support</pre><pre class="diff" id="context">Modified: branches/xen/reactos/boot/freeldr/freeldr/Makefile
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/arch.S
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/archmach.c
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/boot.S
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/drvmap.S
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386cpu.S
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386pnp.S
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386trap.S
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/int386.S
Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/linux.S
</pre><pre class="diff" id="added">Added: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.c
Added: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.h
</pre><pre class="diff" id="context">Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/mb.S
</pre><pre class="diff" id="added">Added: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/xencons.c
</pre><pre class="diff" id="context">Modified: branches/xen/reactos/boot/freeldr/freeldr/fs/ntfs.c
Modified: branches/xen/reactos/boot/freeldr/freeldr/include/rtl.h
Modified: branches/xen/reactos/boot/freeldr/freeldr/reactos/reactos.c
</pre><pre class="diff" id="added">Added: branches/xen/reactos/include/xen3/
Added: branches/xen/reactos/include/xen3/private/
Added: branches/xen/reactos/include/xen3/private/ctrl_if.h
Added: branches/xen/reactos/include/xen3/private/evtchn.h
Added: branches/xen/reactos/include/xen3/private/hypervisor.h
Added: branches/xen/reactos/include/xen3/private/page.h
Added: branches/xen/reactos/include/xen3/private/pgtable.h
Added: branches/xen/reactos/include/xen3/public/
Added: branches/xen/reactos/include/xen3/public/COPYING
Added: branches/xen/reactos/include/xen3/public/arch-ia64.h
Added: branches/xen/reactos/include/xen3/public/arch-x86_32.h
Added: branches/xen/reactos/include/xen3/public/arch-x86_64.h
Added: branches/xen/reactos/include/xen3/public/dom0_ops.h
Added: branches/xen/reactos/include/xen3/public/event_channel.h
Added: branches/xen/reactos/include/xen3/public/grant_table.h
Added: branches/xen/reactos/include/xen3/public/io/
Added: branches/xen/reactos/include/xen3/public/io/blkif.h
Added: branches/xen/reactos/include/xen3/public/io/domain_controller.h
Added: branches/xen/reactos/include/xen3/public/io/ioreq.h
Added: branches/xen/reactos/include/xen3/public/io/netif.h
Added: branches/xen/reactos/include/xen3/public/io/ring.h
Added: branches/xen/reactos/include/xen3/public/io/usbif.h
Added: branches/xen/reactos/include/xen3/public/physdev.h
Added: branches/xen/reactos/include/xen3/public/sched_ctl.h
Added: branches/xen/reactos/include/xen3/public/trace.h
Added: branches/xen/reactos/include/xen3/public/xen.h
Added: branches/xen/reactos/include/xen3/rosxen.h
</pre><hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/Makefile</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/Makefile        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/Makefile        2005-03-24 15:53:13 UTC (rev 14302)
@@ -21,6 +21,9 @@
</small></pre><pre class="diff" id="context">
include ../rules.mak
</pre><pre class="diff" id="added">+CC = gcc
+LD = ld
+
</pre><pre class="diff" id="context"> TARGET = i386
ifeq ($(DEBUG),)
# Debugging information on (bigger binary)
@@ -95,7 +98,13 @@
</pre><pre class="diff" id="context">
COMPILER_DEFINES = -D__$(TARGET)__ $(COMPILER_DEBUG_DEFINES)
</pre><pre class="diff" id="removed">-COMPILER_INCLUDES<span id="removedchars">        =        -I$(SRCDIR)/include -I$(PATH_TO_TOP)/w32api/include -I$(PATH_TO_TOP)/include -I$(PATH_TO_TOP)/ntoskrnl/include</span>
</pre><pre class="diff" id="added">+COMPILER_INCLUDES<span id="addedchars"> = -I$(SRCDIR)/include \</span>
+ -I$(PATH_TO_TOP)/w32api/include \
+ -I$(PATH_TO_TOP)/include \
+ -I$(PATH_TO_TOP)/ntoskrnl/include \
+ -I$(PATH_TO_TOP)/include/xen3 \
+ -I$(PATH_TO_TOP)/include/xen3/public \
+ -I$(PATH_TO_TOP)/include/xen3/private
</pre><pre class="diff" id="context">
CFLAGS = $(COMPILER_OPTIONS) \
$(COMPILER_DEFINES) \
@@ -106,7 +115,7 @@
</pre><pre class="diff" id="context"> LFLAGS        =        $(LINKER_OPTIONS)
ifeq ($(HOST),mingw32-linux)
</pre><pre class="diff" id="removed">- NASMFLAGS        =        -f <span id="removedchars">win32</span>
</pre><pre class="diff" id="added">+ NASMFLAGS        =        -f <span id="addedchars">elf</span>
</pre><pre class="diff" id="context"> else
NASMFLAGS        =        -f elf
endif
@@ -136,6 +145,7 @@
</pre><pre class="diff" id="context"> archmach.o \
machpc.o \
machxbox.o \
</pre><pre class="diff" id="added">+ machxen.o \
</pre><pre class="diff" id="context"> pccons.o \
pcdisk.o \
pcmem.o \
@@ -148,6 +158,7 @@
</pre><pre class="diff" id="context"> xboxmem.o        \
xboxrtc.o        \
xboxvideo.o        \
</pre><pre class="diff" id="added">+ xencons.o \
</pre><pre class="diff" id="context"> _alloca.o # For Mingw32 builds
ARCH_OBJS        = $(addprefix i386/,$(ARCH_I386_OBJS))
@@ -264,13 +275,13 @@
</pre><pre class="diff" id="context">
freeldr.sys : $(ALL_OBJS) $(PATH_TO_TOP)/dk/w32/lib/librossym.a
        @echo freeldr: LINKING $@
</pre><pre class="diff" id="removed">-        @$(LD) $(LFLAGS) -o freeldr.e<span id="removedchars">xe</span> $(F_OBJS) $(PATH_TO_TOP)/dk/w32/lib/librossym.a
</pre><pre class="diff" id="added">+        @$(LD) $(LFLAGS) -o freeldr.e<span id="addedchars">lf</span> $(F_OBJS) $(PATH_TO_TOP)/dk/w32/lib/librossym.a
</pre><pre class="diff" id="context"> ifeq ($(FULL_MAP),yes)
</pre><pre class="diff" id="removed">-        @$(OBJDUMP) -d -S freeldr.e<span id="removedchars">xe</span> > freeldr.map
</pre><pre class="diff" id="added">+        @$(OBJDUMP) -d -S freeldr.e<span id="addedchars">lf</span> > freeldr.map
</pre><pre class="diff" id="context"> else
</pre><pre class="diff" id="removed">-        @$(NM) --numeric-sort freeldr.e<span id="removedchars">xe</span> > freeldr.map
</pre><pre class="diff" id="added">+        @$(NM) --numeric-sort freeldr.e<span id="addedchars">lf</span> > freeldr.map
</pre><pre class="diff" id="context"> endif
</pre><pre class="diff" id="removed">-        @$(OBJCOPY) -O binary freeldr.e<span id="removedchars">xe</span> freeldr.sys
</pre><pre class="diff" id="added">+        @$(OBJCOPY) -O binary freeldr.e<span id="addedchars">lf</span> freeldr.sys
</pre><pre class="diff" id="context">
setupldr.sys : $(ALL_OBJS)
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/arch.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/arch.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/arch.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -47,15 +47,15 @@
</small></pre><pre class="diff" id="context">         .code32
        /* Store the boot drive */
</pre><pre class="diff" id="removed">-        movb        %dl,(<span id="removedchars">_</span>BootDrive)
</pre><pre class="diff" id="added">+        movb        %dl,(BootDrive)
</pre><pre class="diff" id="context">
        /* Store the boot partition */
</pre><pre class="diff" id="removed">-        movb        %dh,(<span id="removedchars">_</span>BootPartition)
</pre><pre class="diff" id="added">+        movb        %dh,(BootPartition)
</pre><pre class="diff" id="context">
        /* GO! */
        xorl        %eax,%eax
        pushl        %eax
</pre><pre class="diff" id="removed">-        call        <span id="removedchars">_</span>BootMain
</pre><pre class="diff" id="added">+        call        BootMain
</pre><pre class="diff" id="context">
        call        switch_to_real
        .code16
@@ -222,7 +222,7 @@
</pre><pre class="diff" id="context">         /*
         * Enable the A20 address line (to allow access to over 1mb)
         */
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>EnableA20)
</pre><pre class="diff" id="added">+EXTERN(EnableA20)
</pre><pre class="diff" id="context">         .code32
        pushal
@@ -247,7 +247,7 @@
</pre><pre class="diff" id="context">         /*
         * Disable the A20 address line
         */
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>DisableA20)
</pre><pre class="diff" id="added">+EXTERN(DisableA20)
</pre><pre class="diff" id="context">         .code32
        pushal
@@ -304,12 +304,14 @@
</pre><pre class="diff" id="context">         .long INITIAL_BASE + MultibootHeader - FREELDR_BASE
        /* load_addr */
        .long INITIAL_BASE
</pre><pre class="diff" id="added">+#ifdef TODO
</pre><pre class="diff" id="context">         /* load_end_addr */
        .long INITIAL_BASE + __bss_start__ - FREELDR_BASE
        /* bss_end_addr */
        .long INITIAL_BASE + __bss_end__ - FREELDR_BASE
        /* entry_addr */
        .long INITIAL_BASE + MultibootEntry - FREELDR_BASE
</pre><pre class="diff" id="added">+#endif
</pre><pre class="diff" id="context">
MultibootEntry:
        cli                /* Even after setting up the our IDT below we are
@@ -331,7 +333,9 @@
</pre><pre class="diff" id="context">         /* Copy to low mem */
        movl        $INITIAL_BASE,%esi
        movl        $FREELDR_BASE,%edi
</pre><pre class="diff" id="added">+#ifdef TODO
</pre><pre class="diff" id="context">         movl        $(__bss_end__ - FREELDR_BASE),%ecx
</pre><pre class="diff" id="added">+#endif
</pre><pre class="diff" id="context">         addl        $3,%ecx
        shrl        $2,%ecx
        rep movsl
@@ -365,12 +369,12 @@
</pre><pre class="diff" id="context">         movl        MB_INFO_BOOT_DEVICE_OFFSET(%ebx),%eax
        shrl        $16,%eax
        incb        %al
</pre><pre class="diff" id="removed">-        movb        %al,_BootPartition
-        movb        %a<span id="removedchars">h,_BootDrive</span>
</pre><pre class="diff" id="added">+        movb        %a<span id="addedchars">l,BootPartition</span>
+        movb        %ah,BootDrive
</pre><pre class="diff" id="context">         jmp        mb4
mb3:        /* No boot device known, assume first partition of first harddisk */
</pre><pre class="diff" id="removed">-        movb        $0x80,_BootDrive
-        movb        $<span id="removedchars">1,_BootPartition</span>
</pre><pre class="diff" id="added">+        movb        $<span id="addedchars">0x80,BootDrive</span>
+        movb        $1,BootPartition
</pre><pre class="diff" id="context"> mb4:
        /* Check for a command line */
@@ -389,7 +393,7 @@
</pre><pre class="diff" id="context">
        /* GO! */
        pushl        %eax        
</pre><pre class="diff" id="removed">-        call        <span id="removedchars">_</span>BootMain
</pre><pre class="diff" id="added">+        call        BootMain
</pre><pre class="diff" id="context">
mbfail:        call        switch_to_real
        .code16
@@ -462,8 +466,8 @@
</pre><pre class="diff" id="context">         .word        0x3ff                /* Limit */
        .long        0                        /* Base Address */
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>BootDrive)
</pre><pre class="diff" id="added">+EXTERN(BootDrive)
</pre><pre class="diff" id="context">         .long        0
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>BootPartition)
</pre><pre class="diff" id="added">+EXTERN(BootPartition)
</pre><pre class="diff" id="context">         .long        0
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/archmach.c</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/archmach.c        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/archmach.c        2005-03-24 15:53:13 UTC (rev 14302)
@@ -22,6 +22,7 @@
</small></pre><pre class="diff" id="context"> #include "machine.h"
#include "machpc.h"
#include "machxbox.h"
</pre><pre class="diff" id="added">+#include "machxen.h"
</pre><pre class="diff" id="context"> #include "portio.h"
#include "hardware.h"
#include "rtl.h"
@@ -33,20 +34,28 @@
</pre><pre class="diff" id="context">
memset(&MachVtbl, 0, sizeof(MACHVTBL));
</pre><pre class="diff" id="removed">- /* Check for Xbox by identifying device at PCI 0:0:0, if it's
- * 0x10de/0x02a5 then we're running on an Xbox */
- WRITE_PORT_ULONG((ULONG*) 0xcf8, CONFIG_CMD(0, 0, 0));
- PciId = READ_PORT_ULONG((ULONG*) 0xcfc);
- <span id="removedchars">if (0x02a510de == PciId)</span>
</pre><pre class="diff" id="added">+ <span id="addedchars">/* First check if we were launched by Xen */</span>
+ if (XenActive)
</pre><pre class="diff" id="context"> {
</pre><pre class="diff" id="removed">- X<span id="removedchars">box</span>MachInit();
</pre><pre class="diff" id="added">+ X<span id="addedchars">en</span>MachInit();
</pre><pre class="diff" id="context"> }
else
{
</pre><pre class="diff" id="removed">- <span id="removedchars"> PcMachInit();</span>
</pre><pre class="diff" id="added">+ <span id="addedchars">/* Check for Xbox by identifying device at PCI 0:0:0, if it's</span>
+ * 0x10de/0x02a5 then we're running on an Xbox */
+ WRITE_PORT_ULONG((ULONG*) 0xcf8, CONFIG_CMD(0, 0, 0));
+ PciId = READ_PORT_ULONG((ULONG*) 0xcfc);
+ if (0x02a510de == PciId)
+ {
+ XboxMachInit();
+ }
+ else
+ {
+ PcMachInit();
+ }
</pre><pre class="diff" id="context"> }
</pre><pre class="diff" id="removed">-<span id="removedchars"> </span> HalpCalibrateStallExecution();
</pre><pre class="diff" id="added">+<span id="addedchars">// </span> HalpCalibrateStallExecution();
</pre><pre class="diff" id="context"> }
/* EOF */
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/boot.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/boot.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/boot.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -24,14 +24,14 @@
</small></pre><pre class="diff" id="context"> #include <arch.h>
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>ChainLoadBiosBootSectorCode)
</pre><pre class="diff" id="added">+EXTERN(ChainLoadBiosBootSectorCode)
</pre><pre class="diff" id="context">         .code32
        call        switch_to_real
        .code16
        /* Set the boot drive */
</pre><pre class="diff" id="removed">-        movb        (<span id="removedchars">_</span>BootDrive),%dl
</pre><pre class="diff" id="added">+        movb        (BootDrive),%dl
</pre><pre class="diff" id="context">
        /* Load segment registers */
        cli
@@ -45,7 +45,7 @@
</pre><pre class="diff" id="context">
        ljmpl        $0x0000,$0x7C00
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>SoftReboot)
</pre><pre class="diff" id="added">+EXTERN(SoftReboot)
</pre><pre class="diff" id="context">         .code32
        call        switch_to_real
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/drvmap.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/drvmap.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/drvmap.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -24,7 +24,7 @@
</small></pre><pre class="diff" id="context"> #include <arch.h>
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>DriveMapInt13HandlerStart)
</pre><pre class="diff" id="added">+EXTERN(DriveMapInt13HandlerStart)
</pre><pre class="diff" id="context"> Int13Handler:
        pushw        %bp
@@ -82,7 +82,7 @@
</pre><pre class="diff" id="context">
        /* Call old int 13h handler with new drive number */
        .byte        0x9a /* lcall */
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>DriveMapOldInt13HandlerAddress)
</pre><pre class="diff" id="added">+EXTERN(DriveMapOldInt13HandlerAddress)
</pre><pre class="diff" id="context">         .word        0
        .word        0
@@ -105,7 +105,7 @@
</pre><pre class="diff" id="context"> PassedInDriveNumber:
        .byte        0
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>DriveMapInt13HandlerMapList)
</pre><pre class="diff" id="added">+EXTERN(DriveMapInt13HandlerMapList)
</pre><pre class="diff" id="context"> Int13HandlerMapCount:
        .byte        0
@@ -129,4 +129,4 @@
</pre><pre class="diff" id="context"> Int13HandlerDriveNew4:
        .byte        0
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>DriveMapInt13HandlerEnd)
</pre><pre class="diff" id="added">+EXTERN(DriveMapInt13HandlerEnd)
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386cpu.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386cpu.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386cpu.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -33,7 +33,7 @@
</small></pre><pre class="diff" id="context"> * 0x00000400: Found 80486 CPU without CPUID support
*/
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>CpuidSupported)
</pre><pre class="diff" id="added">+EXTERN(CpuidSupported)
</pre><pre class="diff" id="context">         .code32
        pushl        %ecx                        /* save ECX */
@@ -80,7 +80,7 @@
</pre><pre class="diff" id="context"> * VOID GetCpuid(U32 Level, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx);
*/
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>GetCpuid)
</pre><pre class="diff" id="added">+EXTERN(GetCpuid)
</pre><pre class="diff" id="context">         .code32
        pushl        %ebp
@@ -123,7 +123,7 @@
</pre><pre class="diff" id="context"> * U64 RDTSC(VOID);
*/
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>RDTSC)
</pre><pre class="diff" id="added">+EXTERN(RDTSC)
</pre><pre class="diff" id="context">         .code32
        rdtsc
        ret
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386pnp.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386pnp.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386pnp.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -35,7 +35,7 @@
</small></pre><pre class="diff" id="context"> _pnp_bios_data_segment:
        .word        0
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>PnpBiosSupported)
</pre><pre class="diff" id="added">+EXTERN(PnpBiosSupported)
</pre><pre class="diff" id="context">         .code32
        pushl        %edi
@@ -113,7 +113,7 @@
</pre><pre class="diff" id="context"> _pnp_node_count:
        .word        0
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>PnpBiosGetDeviceNodeCount)
</pre><pre class="diff" id="added">+EXTERN(PnpBiosGetDeviceNodeCount)
</pre><pre class="diff" id="context">         .code32
        pushl        %ebp
@@ -182,7 +182,7 @@
</pre><pre class="diff" id="context"> _pnp_node_number:
        .byte        0
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>PnpBiosGetDeviceNode)
</pre><pre class="diff" id="added">+EXTERN(PnpBiosGetDeviceNode)
</pre><pre class="diff" id="context">         .code32
        pushl        %ebp
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386trap.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386trap.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/i386trap.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -273,7 +273,7 @@
</small></pre><pre class="diff" id="context">         SAVE_CPU_REGS
        pushl        $SCREEN_ATTR
</pre><pre class="diff" id="removed">-        call        <span id="removedchars">_</span>MachVideoClearScreen
</pre><pre class="diff" id="added">+        call        MachVideoClearScreen
</pre><pre class="diff" id="context">         add        $4,%esp
        movl        $i386ExceptionHandlerText,%esi
@@ -485,7 +485,7 @@
</pre><pre class="diff" id="context">         pushl        $SCREEN_ATTR
        andl        $0xff,%eax
        pushl        %eax
</pre><pre class="diff" id="removed">-        call        <span id="removedchars">_</span>MachVideoPutChar
</pre><pre class="diff" id="added">+        call        MachVideoPutChar
</pre><pre class="diff" id="context">         addl        $16,%esp
        ret
@@ -737,7 +737,7 @@
</pre><pre class="diff" id="context"> /************************************************************************
* DEBUGGING SUPPORT FUNCTIONS
************************************************************************/
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>INSTRUCTION_BREAKPOINT1)
</pre><pre class="diff" id="added">+EXTERN(INSTRUCTION_BREAKPOINT1)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -754,7 +754,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>MEMORY_READWRITE_BREAKPOINT1)
</pre><pre class="diff" id="added">+EXTERN(MEMORY_READWRITE_BREAKPOINT1)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -771,7 +771,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>MEMORY_WRITE_BREAKPOINT1)
</pre><pre class="diff" id="added">+EXTERN(MEMORY_WRITE_BREAKPOINT1)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -788,7 +788,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>INSTRUCTION_BREAKPOINT2)
</pre><pre class="diff" id="added">+EXTERN(INSTRUCTION_BREAKPOINT2)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -805,7 +805,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>MEMORY_READWRITE_BREAKPOINT2)
</pre><pre class="diff" id="added">+EXTERN(MEMORY_READWRITE_BREAKPOINT2)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -822,7 +822,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>MEMORY_WRITE_BREAKPOINT2)
</pre><pre class="diff" id="added">+EXTERN(MEMORY_WRITE_BREAKPOINT2)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -839,7 +839,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>INSTRUCTION_BREAKPOINT3)
</pre><pre class="diff" id="added">+EXTERN(INSTRUCTION_BREAKPOINT3)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -856,7 +856,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>MEMORY_READWRITE_BREAKPOINT3)
</pre><pre class="diff" id="added">+EXTERN(MEMORY_READWRITE_BREAKPOINT3)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -873,7 +873,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>MEMORY_WRITE_BREAKPOINT3)
</pre><pre class="diff" id="added">+EXTERN(MEMORY_WRITE_BREAKPOINT3)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -890,7 +890,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>INSTRUCTION_BREAKPOINT4)
</pre><pre class="diff" id="added">+EXTERN(INSTRUCTION_BREAKPOINT4)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -907,7 +907,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>MEMORY_READWRITE_BREAKPOINT4)
</pre><pre class="diff" id="added">+EXTERN(MEMORY_READWRITE_BREAKPOINT4)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
@@ -924,7 +924,7 @@
</pre><pre class="diff" id="context">
        ret
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>MEMORY_WRITE_BREAKPOINT4)
</pre><pre class="diff" id="added">+EXTERN(MEMORY_WRITE_BREAKPOINT4)
</pre><pre class="diff" id="context">         .code32
        pushl        %eax
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/int386.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/int386.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/int386.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -62,7 +62,7 @@
</small></pre><pre class="diff" id="context"> /*
* int Int386(int ivec, REGS* in, REGS* out);
*/
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>Int386)
</pre><pre class="diff" id="added">+EXTERN(Int386)
</pre><pre class="diff" id="context">         .code32
        /* Get the function parameters */
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/linux.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/linux.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/linux.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -25,12 +25,12 @@
</small></pre><pre class="diff" id="context">
        .code32
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>BootNewLinuxKernel)
</pre><pre class="diff" id="added">+EXTERN(BootNewLinuxKernel)
</pre><pre class="diff" id="context">         call        switch_to_real
        .code16
        /* Set the boot drive */
</pre><pre class="diff" id="removed">-        movb        (<span id="removedchars">_</span>BootDrive),%dl
</pre><pre class="diff" id="added">+        movb        (BootDrive),%dl
</pre><pre class="diff" id="context">
        /* Load segment registers */
        cli
@@ -49,7 +49,7 @@
</pre><pre class="diff" id="context"> /*
* VOID BootOldLinuxKernel(ULONG KernelSize);
*/
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>BootOldLinuxKernel)
</pre><pre class="diff" id="added">+EXTERN(BootOldLinuxKernel)
</pre><pre class="diff" id="context">
        /* First we have to copy the kernel down from 0x100000 to 0x10000 */
        /* The reason we can overwrite low memory is because this code */
@@ -66,7 +66,7 @@
</pre><pre class="diff" id="context">         .code16
        /* Set the boot drive */
</pre><pre class="diff" id="removed">-        movb        (<span id="removedchars">_</span>BootDrive),%dl
</pre><pre class="diff" id="added">+        movb        (BootDrive),%dl
</pre><pre class="diff" id="context">
        /* Load segment registers */
        cli
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.c</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.c        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.c        2005-03-24 15:53:13 UTC (rev 14302)
@@ -0,0 +1,296 @@
</small></pre><pre class="diff" id="added">+/* $Id: machpc.c 12672 2005-01-01 00:42:18Z chorns $
+ *
+ * FreeLoader
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Based on code posted by David Becker <becker@cs.duke.edu> to the
+ * xen-devel mailing list.
+ */
+
+#include "freeldr.h"
+#include "machxen.h"
+
+#include <rosxen.h>
+#include <xen.h>
+#include <hypervisor.h>
+#include <page.h>
+#include <pgtable.h>
+
+BOOL XenActive = FALSE;
+ctrl_front_ring_t XenCtrlIfTxRing;
+ctrl_back_ring_t XenCtrlIfRxRing;
+int XenCtrlIfEvtchn;
+
+VOID
+XenMachInit(VOID)
+{
+ /* Setup vtbl */
+ MachVtbl.ConsPutChar = XenConsPutChar;
+ MachVtbl.ConsKbHit = XenConsKbHit;
+ MachVtbl.ConsGetCh = XenConsGetCh;
+ MachVtbl.VideoClearScreen = XenVideoClearScreen;
+ MachVtbl.VideoSetDisplayMode = XenVideoSetDisplayMode;
+ MachVtbl.VideoGetDisplaySize = XenVideoGetDisplaySize;
+ MachVtbl.VideoGetBufferSize = XenVideoGetBufferSize;
+ MachVtbl.VideoSetTextCursorPosition = XenVideoSetTextCursorPosition;
+ MachVtbl.VideoSetTextCursorPosition = XenVideoSetTextCursorPosition;
+ MachVtbl.VideoHideShowTextCursor = XenVideoHideShowTextCursor;
+ MachVtbl.VideoPutChar = XenVideoPutChar;
+ MachVtbl.VideoCopyOffScreenBufferToVRAM = XenVideoCopyOffScreenBufferToVRAM;
+ MachVtbl.VideoIsPaletteFixed = XenVideoIsPaletteFixed;
+ MachVtbl.VideoSetPaletteColor = XenVideoSetPaletteColor;
+ MachVtbl.VideoGetPaletteColor = XenVideoGetPaletteColor;
+ MachVtbl.VideoSync = XenVideoSync;
+ MachVtbl.VideoPrepareForReactOS = XenVideoPrepareForReactOS;
+ MachVtbl.GetMemoryMap = XenMemGetMemoryMap;
+ MachVtbl.DiskReadLogicalSectors = XenDiskReadLogicalSectors;
+ MachVtbl.DiskGetPartitionEntry = XenDiskGetPartitionEntry;
+ MachVtbl.DiskGetDriveGeometry = XenDiskGetDriveGeometry;
+ MachVtbl.DiskGetCacheableBlockCount = XenDiskGetCacheableBlockCount;
+ MachVtbl.RTCGetCurrentDateTime = XenRTCGetCurrentDateTime;
+ MachVtbl.HwDetect = XenHwDetect;
+}
+
+start_info_t *HYPERVISOR_start_info;
+extern char shared_info[PAGE_SIZE];
+
+/* _start is the default name ld will use as the entry point. When xen
+ * loads the domain, it will start execution at the elf entry point. */
+
+void _start()
+{
+ pgd_t *pgd;
+ int ptetab_ma;
+ int idx;
+ int pte_ma;
+ mmu_update_t req;
+ control_if_t *CtrlIf;
+
+ /*
+ * Grab start_info
+ */
+ /* The linux build setup_guest() put a start_info_t* into %esi.
+ * =S is inline asm code for get output from reg %esi.
+ */
+ asm("":"=S" (HYPERVISOR_start_info));
+
+ /* To write to the xen virtual console, we need to map in the
+ * shared page used by the the domain controller interface. The
+ * HYPERVISOR_start_info struct identifies the page table and
+ * shared_info pages.
+ *
+ * The following code maps the shared_info mfn (machine frame number)
+ * into this domains address space over the shared_info[] page.
+ */
+
+
+ /*
+ * map shared_info page
+ */
+ /* The pgd page (page global directory - level 2 page table) is
+ * constructed by setup_guest() in tools/libxc/xc_linux_build.c
+ * Lookup the machine address of ptetab in pgd to construct the
+ * machine address of the pte entry for shared_info,
+ * and then call mmu_update to change mapping.
+ */
+ pgd = (pgd_t*)HYPERVISOR_start_info->pt_base;
+ ptetab_ma = pgd_val(pgd[pgd_index((unsigned long)shared_info)])
+ & (PAGE_MASK);
+ idx = pte_index((unsigned long)shared_info);
+ pte_ma = ptetab_ma + (idx*sizeof(pte_t));
+
+ req.ptr = pte_ma;
+ req.val = HYPERVISOR_start_info->shared_info|7;
+ HYPERVISOR_mmu_update(&req, 1, NULL);
+
+ /*
+ * Setup control interface
+ */
+ XenCtrlIfEvtchn = HYPERVISOR_start_info->domain_controller_evtchn;
+ CtrlIf = ((control_if_t *)((char *)shared_info + 2048));
+
+ /* Sync up with shared indexes. */
+ FRONT_RING_ATTACH(&XenCtrlIfTxRing, &CtrlIf->tx_ring);
+ BACK_RING_ATTACH(&XenCtrlIfRxRing, &CtrlIf->rx_ring);
+
+ /* Start freeldr */
+ XenActive = TRUE;
+ BootMain(NULL);
+}
+
+#define XEN_UNIMPLEMENTED(routine) \
+ printf(routine " unimplemented. Shutting down\n"); \
+ HYPERVISOR_shutdown()
+
+BOOL
+XenConsKbHit()
+ {
+ XEN_UNIMPLEMENTED("XenConsKbHit");
+ return FALSE;
+ }
+
+int
+XenConsGetCh()
+ {
+ XEN_UNIMPLEMENTED("XenConsGetCh");
+ return 0;
+ }
+
+VOID
+XenVideoClearScreen(UCHAR Attr)
+ {
+ XEN_UNIMPLEMENTED("XenVideoClearScreen");
+ }
+
+VIDEODISPLAYMODE
+XenVideoSetDisplayMode(char *DisplayMode, BOOL Init)
+ {
+ XEN_UNIMPLEMENTED("XenVideoSetDisplayMode");
+ return VideoTextMode;
+ }
+
+VOID
+XenVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth)
+ {
+ XEN_UNIMPLEMENTED("XenVideoGetDisplaySize");
+ }
+
+ULONG
+XenVideoGetBufferSize(VOID)
+ {
+ XEN_UNIMPLEMENTED("XenVideoGetBufferSize");
+ return 0;
+ }
+
+VOID
+XenVideoSetTextCursorPosition(ULONG X, ULONG Y)
+ {
+ XEN_UNIMPLEMENTED("XenVideoSetTextCursorPosition");
+ }
+
+VOID
+XenVideoHideShowTextCursor(BOOL Show)
+ {
+ XEN_UNIMPLEMENTED("XenVideoHideShowTextCursor");
+ }
+
+VOID
+XenVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
+ {
+ XEN_UNIMPLEMENTED("XenVideoPutChar");
+ }
+
+VOID
+XenVideoCopyOffScreenBufferToVRAM(PVOID Buffer)
+ {
+ XEN_UNIMPLEMENTED("XenVideoCopyOffScreenBufferToVRAM");
+ }
+
+BOOL
+XenVideoIsPaletteFixed(VOID)
+ {
+ XEN_UNIMPLEMENTED("XenVideoIsPaletteFixed");
+ return TRUE;
+ }
+
+VOID
+XenVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
+ {
+ XEN_UNIMPLEMENTED("XenVideoSetPaletteColor");
+ }
+
+VOID
+XenVideoGetPaletteColor(UCHAR Color, UCHAR* Red, UCHAR* Green, UCHAR* Blue)
+ {
+ XEN_UNIMPLEMENTED("XenVideoGetPaletteColor");
+ }
+
+VOID
+XenVideoSync(VOID)
+ {
+ XEN_UNIMPLEMENTED("XenVideoSync");
+ }
+
+VOID
+XenVideoPrepareForReactOS(VOID)
+ {
+ XEN_UNIMPLEMENTED("XenVideoPrepareForReactOS");
+ }
+
+ULONG
+XenMemGetMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, ULONG MaxMemoryMapSize)
+ {
+ XEN_UNIMPLEMENTED("XenMemGetMemoryMap");
+ return 0;
+ }
+
+BOOL
+XenDiskReadLogicalSectors(ULONG DriveNumber, ULONGLONG SectorNumber,
+ ULONG SectorCount, PVOID Buffer)
+ {
+ XEN_UNIMPLEMENTED("XenDiskReadLogicalSectors");
+ return FALSE;
+ }
+
+BOOL
+XenDiskGetPartitionEntry(ULONG DriveNumber, ULONG PartitionNumber,
+ PPARTITION_TABLE_ENTRY PartitionTableEntry)
+ {
+ XEN_UNIMPLEMENTED("XenDiskGetPartitionEntry");
+ return FALSE;
+ }
+
+BOOL
+XenDiskGetDriveGeometry(ULONG DriveNumber, PGEOMETRY DriveGeometry)
+ {
+ XEN_UNIMPLEMENTED("XenDiskGetDriveGeometry");
+ return FALSE;
+ }
+
+ULONG
+XenDiskGetCacheableBlockCount(ULONG DriveNumber)
+ {
+ XEN_UNIMPLEMENTED("XenDiskGetCacheableBlockCount");
+ return FALSE;
+ }
+
+VOID
+XenRTCGetCurrentDateTime(PULONG Year, PULONG Month, PULONG Day,
+ PULONG Hour, PULONG Minute, PULONG Second)
+ {
+ XEN_UNIMPLEMENTED("XenRTCGetCurrentDateTime");
+ }
+
+VOID
+XenHwDetect(VOID)
+ {
+ XEN_UNIMPLEMENTED("XenHwDetect");
+ }
+
+/* Create shared_info page. This page is mapped over by the real shared
+ * info page
+ */
+asm(".align 0x1000; shared_info:;.skip 0x1000;");
+
+
+/* emit the elf segment Xen builder expects in kernel image */ asm(".section __xen_guest;"
+ ".ascii \"GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0x00008000\";"
+ ".ascii \",LOADER=generic\";"
+ ".ascii \",PT_MODE_WRITABLE\";"
+ ".byte 0;"
+ );
+
+/* EOF */
</pre><pre class="diff" id="context">Property changes on: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.c
___________________________________________________________________
Name: svn:eol-style
+ native
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Added: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.h</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.h        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.h        2005-03-24 15:53:13 UTC (rev 14302)
@@ -0,0 +1,70 @@
</small></pre><pre class="diff" id="added">+/*
+ * FreeLoader
+ *
+ * Copyright (C) 2003 Eric Kohl
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __I386_MACHXEN_H_
+#define __I386_MACHXEN_H_
+
+#ifndef __MEMORY_H
+#include "mm.h"
+#endif
+
+#include <rosxen.h>
+#include <xen.h>
+#include <io/domain_controller.h>
+
+extern BOOL XenActive;
+extern ctrl_front_ring_t XenCtrlIfTxRing;
+extern ctrl_back_ring_t XenCtrlIfRxRing;
+extern int XenCtrlIfEvtchn;
+
+VOID XenMachInit(VOID);
+
+VOID XenConsPutChar(int Ch);
+BOOL XenConsKbHit();
+int XenConsGetCh();
+
+VOID XenVideoClearScreen(UCHAR Attr);
+VIDEODISPLAYMODE XenVideoSetDisplayMode(char *DisplayMode, BOOL Init);
+VOID XenVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth);
+ULONG XenVideoGetBufferSize(VOID);
+VOID XenVideoSetTextCursorPosition(ULONG X, ULONG Y);
+VOID XenVideoHideShowTextCursor(BOOL Show);
+VOID XenVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y);
+VOID XenVideoCopyOffScreenBufferToVRAM(PVOID Buffer);
+BOOL XenVideoIsPaletteFixed(VOID);
+VOID XenVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue);
+VOID XenVideoGetPaletteColor(UCHAR Color, UCHAR* Red, UCHAR* Green, UCHAR* Blue);
+VOID XenVideoSync(VOID);
+VOID XenVideoPrepareForReactOS(VOID);
+
+ULONG XenMemGetMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, ULONG MaxMemoryMapSize);
+
+BOOL XenDiskReadLogicalSectors(ULONG DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer);
+BOOL XenDiskGetPartitionEntry(ULONG DriveNumber, ULONG PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
+BOOL XenDiskGetDriveGeometry(ULONG DriveNumber, PGEOMETRY DriveGeometry);
+ULONG XenDiskGetCacheableBlockCount(ULONG DriveNumber);
+
+VOID XenRTCGetCurrentDateTime(PULONG Year, PULONG Month, PULONG Day, PULONG Hour, PULONG Minute, PULONG Second);
+
+VOID XenHwDetect(VOID);
+
+#endif /* __I386_MACHPC_H_ */
+
+/* EOF */
</pre><pre class="diff" id="context">Property changes on: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.h
___________________________________________________________________
Name: svn:eol-style
+ native
</pre></div>
<hr /><div class="file">
<div class="fileheader"><big><b>Modified: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/mb.S</b></big></div>
<pre class="diff"><small id="info">--- branches/xen/reactos/boot/freeldr/freeldr/arch/i386/mb.S        2005-03-24 15:41:06 UTC (rev 14301)
+++ branches/xen/reactos/boot/freeldr/freeldr/arch/i386/mb.S        2005-03-24 15:53:13 UTC (rev 14302)
@@ -29,75 +29,75 @@
</small></pre><pre class="diff" id="context">          * This boots the kernel
         */
        .code32
</pre><pre class="diff" id="removed">- .globl <span id="removedchars">_</span>PageDirectoryStart
</pre><pre class="diff" id="added">+ .globl PageDirectoryStart
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="removed">- .globl _startup_pagedirectory
- .globl _lowmem_pagetable
- .globl _kernel_pagetable
- .globl _hyperspace_pagetable
- .globl _apic_pagetable
- .globl <span id="removedchars">_kpcr_pagetable</span>
</pre><pre class="diff" id="added">+ .globl <span id="addedchars">startup_pagedirectory</span>
+ .globl lowmem_pagetable
+ .globl kernel_pagetable
+ .globl hyperspace_pagetable
+ .globl apic_pagetable
+ .globl kpcr_pagetable
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="removed">- .globl _startup_pagedirectorytable_pae
- .globl _startup_pagedirectory_pae
- .globl _lowmem_pagetable_pae
- .globl _kernel_pagetable_pae
- .globl _hyperspace_pagetable_pae
- .globl _apic_pagetable_pae
- .globl <span id="removedchars">_kpcr_page</span>table_pae
</pre><pre class="diff" id="added">+ .globl <span id="addedchars">startup_pagedirectory</span>table_pae
+ .globl startup_pagedirectory_pae
+ .globl lowmem_pagetable_pae
+ .globl kernel_pagetable_pae
+ .globl hyperspace_pagetable_pae
+ .globl apic_pagetable_pae
+ .globl kpcr_pagetable_pae
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="removed">- .globl <span id="removedchars">_</span>PageDirectoryEnd
</pre><pre class="diff" id="added">+ .globl PageDirectoryEnd
</pre><pre class="diff" id="context">
        //
        // Boot information structure
        //
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>multiboot_memory_map_descriptor_size)
</pre><pre class="diff" id="added">+EXTERN(multiboot_memory_map_descriptor_size)
</pre><pre class="diff" id="context">         .long        0
</pre><pre class="diff" id="removed">-EXTERN(<span id="removedchars">_</span>multiboot_memory_map)
</pre><pre class="diff" id="added">+EXTERN(multiboot_memory_map)
</pre><pre class="diff" id="context">         .rept        (32 * /*sizeof(memory_map_t)*/24)
        .byte        0
        .endr
.bss
</pre><pre class="diff" id="removed">-_PageDirectoryStart:
-<span id="removedchars">_startup_pagedirectory</span>:
</pre><pre class="diff" id="added">+<span id="addedchars">PageDirectoryStart</span>:
+startup_pagedirectory:
</pre><pre class="diff" id="context">         .fill 4096, 1, 0
</pre><pre class="diff" id="removed">-<span id="removedchars">_l</span>owmem_pagetable:
</pre><pre class="diff" id="added">+<span id="addedchars">l</span>owmem_pagetable:
</pre><pre class="diff" id="context">         .fill 4096, 1, 0
</pre><pre class="diff" id="removed">-<span id="removedchars">_k</span>ernel_pagetable:
</pre><pre class="diff" id="added">+<span id="addedchars">k</span>ernel_pagetable:
</pre><pre class="diff" id="context">         .fill 2*4096, 1, 0
</pre><pre class="diff" id="removed">-<span id="removedchars">_h</span>yperspace_pagetable:
</pre><pre class="diff" id="added">+<span id="addedchars">h</span>yperspace_pagetable:
</pre><pre class="diff" id="context">         .fill 4096, 1, 0
        
</pre><pre class="diff" id="removed">-<span id="removedchars">_a</span>pic_pagetable:
</pre><pre class="diff" id="added">+<span id="addedchars">a</span>pic_pagetable:
</pre><pre class="diff" id="context">         .fill 4096, 1, 0
</pre><pre class="diff" id="removed">-<span id="removedchars">_k</span>pcr_pagetable:
</pre><pre class="diff" id="added">+<span id="addedchars">k</span>pcr_pagetable:
</pre><pre class="diff" id="context">         .fill 4096, 1, 0
</pre>
<strong class="error">[truncated at 1000 lines; 4635 more skipped]</strong>
</div>
</body>
</html>