<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>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-I$(PATH_TO_TOP)/w32api/include \
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-I$(PATH_TO_TOP)/include \
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-I$(PATH_TO_TOP)/ntoskrnl/include \
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-I$(PATH_TO_TOP)/include/xen3 \
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-I$(PATH_TO_TOP)/include/xen3/public \
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-I$(PATH_TO_TOP)/include/xen3/private
</pre><pre class="diff" id="context"> 
 CFLAGS = $(COMPILER_OPTIONS) \
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$(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">- &nbsp;NASMFLAGS        =        -f <span id="removedchars">win32</span>
</pre><pre class="diff" id="added">+ &nbsp;NASMFLAGS        =        -f <span id="addedchars">elf</span>
</pre><pre class="diff" id="context"> else
 &nbsp; NASMFLAGS        =        -f elf
 endif
@@ -136,6 +145,7 @@
</pre><pre class="diff" id="context"> &nbsp; archmach.o \
 &nbsp; machpc.o \
 &nbsp; machxbox.o \
</pre><pre class="diff" id="added">+ &nbsp;machxen.o \
</pre><pre class="diff" id="context"> &nbsp; pccons.o \
 &nbsp; pcdisk.o \
 &nbsp; pcmem.o \
@@ -148,6 +158,7 @@
</pre><pre class="diff" id="context"> &nbsp; xboxmem.o        \
 &nbsp; xboxrtc.o        \
 &nbsp; xboxvideo.o        \
</pre><pre class="diff" id="added">+ &nbsp;xencons.o \
</pre><pre class="diff" id="context"> &nbsp; _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> &gt; freeldr.map
</pre><pre class="diff" id="added">+        @$(OBJDUMP) -d -S freeldr.e<span id="addedchars">lf</span> &gt; 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> &gt; freeldr.map
</pre><pre class="diff" id="added">+        @$(NM) --numeric-sort freeldr.e<span id="addedchars">lf</span> &gt; 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 &quot;machine.h&quot;
 #include &quot;machpc.h&quot;
 #include &quot;machxbox.h&quot;
</pre><pre class="diff" id="added">+#include &quot;machxen.h&quot;
</pre><pre class="diff" id="context"> #include &quot;portio.h&quot;
 #include &quot;hardware.h&quot;
 #include &quot;rtl.h&quot;
@@ -33,20 +34,28 @@
</pre><pre class="diff" id="context"> 
 &nbsp; memset(&amp;MachVtbl, 0, sizeof(MACHVTBL));
 
</pre><pre class="diff" id="removed">- &nbsp;/* Check for Xbox by identifying device at PCI 0:0:0, if it's
- &nbsp; * 0x10de/0x02a5 then we're running on an Xbox */
- &nbsp;WRITE_PORT_ULONG((ULONG*) 0xcf8, CONFIG_CMD(0, 0, 0));
- &nbsp;PciId = READ_PORT_ULONG((ULONG*) 0xcfc);
- &nbsp;<span id="removedchars">if (0x02a510de == PciId)</span>
</pre><pre class="diff" id="added">+ &nbsp;<span id="addedchars">/* First check if we were launched by Xen */</span>
+ &nbsp;if (XenActive)
</pre><pre class="diff" id="context"> &nbsp; &nbsp; {
</pre><pre class="diff" id="removed">- &nbsp; &nbsp; &nbsp;X<span id="removedchars">box</span>MachInit();
</pre><pre class="diff" id="added">+ &nbsp; &nbsp; &nbsp;X<span id="addedchars">en</span>MachInit();
</pre><pre class="diff" id="context"> &nbsp; &nbsp; }
 &nbsp; else
 &nbsp; &nbsp; {
</pre><pre class="diff" id="removed">- &nbsp; &nbsp;<span id="removedchars"> &nbsp;PcMachInit();</span>
</pre><pre class="diff" id="added">+ &nbsp; &nbsp;<span id="addedchars">/* Check for Xbox by identifying device at PCI 0:0:0, if it's</span>
+ &nbsp; &nbsp; * 0x10de/0x02a5 then we're running on an Xbox */
+ &nbsp; &nbsp;WRITE_PORT_ULONG((ULONG*) 0xcf8, CONFIG_CMD(0, 0, 0));
+ &nbsp; &nbsp;PciId = READ_PORT_ULONG((ULONG*) 0xcfc);
+ &nbsp; &nbsp;if (0x02a510de == PciId)
+ &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;XboxMachInit();
+ &nbsp; &nbsp; &nbsp;}
+ &nbsp; &nbsp;else
+ &nbsp; &nbsp; &nbsp;{
+ &nbsp; &nbsp; &nbsp; &nbsp;PcMachInit();
+ &nbsp; &nbsp; &nbsp;}
</pre><pre class="diff" id="context"> &nbsp; &nbsp; }
 
</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 &lt;arch.h&gt;
 
 
</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 &lt;arch.h&gt;
 
 
</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"> &nbsp;* &nbsp; &nbsp;0x00000400: Found 80486 CPU without CPUID support
 &nbsp;*/
 
</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"> &nbsp;* VOID GetCpuid(U32 Level, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx);
 &nbsp;*/
 
</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"> &nbsp;* U64 RDTSC(VOID);
 &nbsp;*/
 
</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"> /************************************************************************
 &nbsp;* DEBUGGING SUPPORT FUNCTIONS
 &nbsp;************************************************************************/
</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"> /*
 &nbsp;* int Int386(int ivec, REGS* in, REGS* out);
 &nbsp;*/
</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"> /*
 &nbsp;* &nbsp;VOID BootOldLinuxKernel(ULONG KernelSize);
 &nbsp;*/
</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 $
+ *
+ * &nbsp;FreeLoader
+ *
+ * &nbsp;This program is free software; you can redistribute it and/or modify
+ * &nbsp;it under the terms of the GNU General Public License as published by
+ * &nbsp;the Free Software Foundation; either version 2 of the License, or
+ * &nbsp;(at your option) any later version.
+ *
+ * &nbsp;This program is distributed in the hope that it will be useful,
+ * &nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * &nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &nbsp;See the
+ * &nbsp;GNU General Public License for more details.
+ *
+ * &nbsp;You should have received a copy of the GNU General Public License
+ * &nbsp;along with this program; if not, write to the Free Software
+ * &nbsp;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * &nbsp;Based on code posted by David Becker &lt;becker@cs.duke.edu&gt; to the
+ * &nbsp;xen-devel mailing list.
+ */
+
+#include &quot;freeldr.h&quot;
+#include &quot;machxen.h&quot;
+
+#include &lt;rosxen.h&gt;
+#include &lt;xen.h&gt;
+#include &lt;hypervisor.h&gt;
+#include &lt;page.h&gt;
+#include &lt;pgtable.h&gt;
+
+BOOL XenActive = FALSE;
+ctrl_front_ring_t XenCtrlIfTxRing;
+ctrl_back_ring_t XenCtrlIfRxRing;
+int XenCtrlIfEvtchn;
+
+VOID
+XenMachInit(VOID)
+{
+ &nbsp;/* Setup vtbl */
+ &nbsp;MachVtbl.ConsPutChar = XenConsPutChar;
+ &nbsp;MachVtbl.ConsKbHit = XenConsKbHit;
+ &nbsp;MachVtbl.ConsGetCh = XenConsGetCh;
+ &nbsp;MachVtbl.VideoClearScreen = XenVideoClearScreen;
+ &nbsp;MachVtbl.VideoSetDisplayMode = XenVideoSetDisplayMode;
+ &nbsp;MachVtbl.VideoGetDisplaySize = XenVideoGetDisplaySize;
+ &nbsp;MachVtbl.VideoGetBufferSize = XenVideoGetBufferSize;
+ &nbsp;MachVtbl.VideoSetTextCursorPosition = XenVideoSetTextCursorPosition;
+ &nbsp;MachVtbl.VideoSetTextCursorPosition = XenVideoSetTextCursorPosition;
+ &nbsp;MachVtbl.VideoHideShowTextCursor = XenVideoHideShowTextCursor;
+ &nbsp;MachVtbl.VideoPutChar = XenVideoPutChar;
+ &nbsp;MachVtbl.VideoCopyOffScreenBufferToVRAM = XenVideoCopyOffScreenBufferToVRAM;
+ &nbsp;MachVtbl.VideoIsPaletteFixed = XenVideoIsPaletteFixed;
+ &nbsp;MachVtbl.VideoSetPaletteColor = XenVideoSetPaletteColor;
+ &nbsp;MachVtbl.VideoGetPaletteColor = XenVideoGetPaletteColor;
+ &nbsp;MachVtbl.VideoSync = XenVideoSync;
+ &nbsp;MachVtbl.VideoPrepareForReactOS = XenVideoPrepareForReactOS;
+ &nbsp;MachVtbl.GetMemoryMap = XenMemGetMemoryMap;
+ &nbsp;MachVtbl.DiskReadLogicalSectors = XenDiskReadLogicalSectors;
+ &nbsp;MachVtbl.DiskGetPartitionEntry = XenDiskGetPartitionEntry;
+ &nbsp;MachVtbl.DiskGetDriveGeometry = XenDiskGetDriveGeometry;
+ &nbsp;MachVtbl.DiskGetCacheableBlockCount = XenDiskGetCacheableBlockCount;
+ &nbsp;MachVtbl.RTCGetCurrentDateTime = XenRTCGetCurrentDateTime;
+ &nbsp;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. &nbsp;When xen
+ * loads the domain, it will start execution at the elf entry point. &nbsp;*/
+
+void _start()
+{
+ &nbsp;pgd_t *pgd;
+ &nbsp;int ptetab_ma;
+ &nbsp;int idx;
+ &nbsp;int pte_ma;
+ &nbsp;mmu_update_t req;
+ &nbsp;control_if_t *CtrlIf;
+
+ &nbsp;/*
+ &nbsp; * Grab start_info
+ &nbsp; */
+ &nbsp;/* The linux build setup_guest() put a start_info_t* into %esi.
+ &nbsp; * =S is inline asm code for get output from reg %esi.
+ &nbsp; */
+ &nbsp;asm(&quot;&quot;:&quot;=S&quot; (HYPERVISOR_start_info));
+
+ &nbsp;/* To write to the xen virtual console, we need to map in the
+ &nbsp; * shared page used by the the domain controller interface. &nbsp;The
+ &nbsp; * HYPERVISOR_start_info struct identifies the page table and
+ &nbsp; * shared_info pages.
+ &nbsp; *
+ &nbsp; * The following code maps the shared_info mfn (machine frame number)
+ &nbsp; * into this domains address space over the shared_info[] page.
+ &nbsp; */
+
+
+ &nbsp;/*
+ &nbsp; * map shared_info page
+ &nbsp; */
+ &nbsp;/* The pgd page (page global directory - level 2 page table) is
+ &nbsp; * constructed by setup_guest() in tools/libxc/xc_linux_build.c
+ &nbsp; * Lookup the machine address of ptetab in pgd to construct the
+ &nbsp; * machine address of the pte entry for shared_info,
+ &nbsp; * and then call mmu_update to change mapping.
+ &nbsp; */
+ &nbsp;pgd = (pgd_t*)HYPERVISOR_start_info-&gt;pt_base;
+ &nbsp;ptetab_ma = pgd_val(pgd[pgd_index((unsigned long)shared_info)])
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp; (PAGE_MASK);
+ &nbsp;idx = pte_index((unsigned long)shared_info);
+ &nbsp;pte_ma = ptetab_ma + (idx*sizeof(pte_t));
+
+ &nbsp;req.ptr &nbsp;= pte_ma;
+ &nbsp;req.val &nbsp;= HYPERVISOR_start_info-&gt;shared_info|7;
+ &nbsp;HYPERVISOR_mmu_update(&amp;req, 1, NULL);
+
+ &nbsp;/*
+ &nbsp; * Setup control interface
+ &nbsp; */
+ &nbsp;XenCtrlIfEvtchn = HYPERVISOR_start_info-&gt;domain_controller_evtchn;
+ &nbsp;CtrlIf = ((control_if_t *)((char *)shared_info + 2048));
+
+ &nbsp;/* Sync up with shared indexes. */
+ &nbsp;FRONT_RING_ATTACH(&amp;XenCtrlIfTxRing, &amp;CtrlIf-&gt;tx_ring);
+ &nbsp;BACK_RING_ATTACH(&amp;XenCtrlIfRxRing, &amp;CtrlIf-&gt;rx_ring);
+
+ &nbsp;/* Start freeldr */
+ &nbsp;XenActive = TRUE;
+ &nbsp;BootMain(NULL);
+}
+
+#define XEN_UNIMPLEMENTED(routine) \
+ &nbsp;printf(routine &quot; unimplemented. Shutting down\n&quot;); \
+ &nbsp;HYPERVISOR_shutdown()
+
+BOOL
+XenConsKbHit()
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenConsKbHit&quot;);
+ &nbsp; &nbsp;return FALSE;
+ &nbsp;}
+
+int
+XenConsGetCh()
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenConsGetCh&quot;);
+ &nbsp; &nbsp;return 0;
+ &nbsp;}
+
+VOID
+XenVideoClearScreen(UCHAR Attr)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoClearScreen&quot;);
+ &nbsp;}
+
+VIDEODISPLAYMODE
+XenVideoSetDisplayMode(char *DisplayMode, BOOL Init)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoSetDisplayMode&quot;);
+ &nbsp; &nbsp;return VideoTextMode;
+ &nbsp;}
+
+VOID
+XenVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoGetDisplaySize&quot;);
+ &nbsp;}
+
+ULONG
+XenVideoGetBufferSize(VOID)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoGetBufferSize&quot;);
+ &nbsp; &nbsp;return 0;
+ &nbsp;}
+
+VOID
+XenVideoSetTextCursorPosition(ULONG X, ULONG Y)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoSetTextCursorPosition&quot;);
+ &nbsp;}
+
+VOID
+XenVideoHideShowTextCursor(BOOL Show)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoHideShowTextCursor&quot;);
+ &nbsp;}
+
+VOID
+XenVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoPutChar&quot;);
+ &nbsp;}
+
+VOID
+XenVideoCopyOffScreenBufferToVRAM(PVOID Buffer)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoCopyOffScreenBufferToVRAM&quot;);
+ &nbsp;}
+
+BOOL
+XenVideoIsPaletteFixed(VOID)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoIsPaletteFixed&quot;);
+ &nbsp; &nbsp;return TRUE;
+ &nbsp;}
+
+VOID
+XenVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoSetPaletteColor&quot;);
+ &nbsp;}
+
+VOID
+XenVideoGetPaletteColor(UCHAR Color, UCHAR* Red, UCHAR* Green, UCHAR* Blue)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoGetPaletteColor&quot;);
+ &nbsp;}
+
+VOID
+XenVideoSync(VOID)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoSync&quot;);
+ &nbsp;}
+
+VOID
+XenVideoPrepareForReactOS(VOID)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenVideoPrepareForReactOS&quot;);
+ &nbsp;}
+
+ULONG
+XenMemGetMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, ULONG MaxMemoryMapSize)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenMemGetMemoryMap&quot;);
+ &nbsp; &nbsp;return 0;
+ &nbsp;}
+
+BOOL
+XenDiskReadLogicalSectors(ULONG DriveNumber, ULONGLONG SectorNumber,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ULONG SectorCount, PVOID Buffer)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenDiskReadLogicalSectors&quot;);
+ &nbsp; &nbsp;return FALSE;
+ &nbsp;}
+
+BOOL
+XenDiskGetPartitionEntry(ULONG DriveNumber, ULONG PartitionNumber,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PPARTITION_TABLE_ENTRY PartitionTableEntry)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenDiskGetPartitionEntry&quot;);
+ &nbsp; &nbsp;return FALSE;
+ &nbsp;}
+
+BOOL
+XenDiskGetDriveGeometry(ULONG DriveNumber, PGEOMETRY DriveGeometry)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenDiskGetDriveGeometry&quot;);
+ &nbsp; &nbsp;return FALSE;
+ &nbsp;}
+
+ULONG
+XenDiskGetCacheableBlockCount(ULONG DriveNumber)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenDiskGetCacheableBlockCount&quot;);
+ &nbsp; &nbsp;return FALSE;
+ &nbsp;}
+
+VOID
+XenRTCGetCurrentDateTime(PULONG Year, PULONG Month, PULONG Day,
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PULONG Hour, PULONG Minute, PULONG Second)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenRTCGetCurrentDateTime&quot;);
+ &nbsp;}
+
+VOID
+XenHwDetect(VOID)
+ &nbsp;{
+ &nbsp; &nbsp;XEN_UNIMPLEMENTED(&quot;XenHwDetect&quot;);
+ &nbsp;}
+
+/* Create shared_info page. &nbsp;This page is mapped over by the real shared
+ * info page
+ */
+asm(&quot;.align 0x1000; shared_info:;.skip 0x1000;&quot;);
+
+
+/* emit the elf segment Xen builder expects in kernel image */ asm(&quot;.section __xen_guest;&quot;
+ &nbsp; &nbsp;&quot;.ascii \&quot;GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE=0x00008000\&quot;;&quot;
+ &nbsp; &nbsp;&quot;.ascii \&quot;,LOADER=generic\&quot;;&quot;
+ &nbsp; &nbsp;&quot;.ascii \&quot;,PT_MODE_WRITABLE\&quot;;&quot;
+ &nbsp; &nbsp;&quot;.byte &nbsp;0;&quot;
+ &nbsp; &nbsp;);
+
+/* EOF */
</pre><pre class="diff" id="context">Property changes on: branches/xen/reactos/boot/freeldr/freeldr/arch/i386/machxen.c
___________________________________________________________________
Name: svn:eol-style
 &nbsp; + 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">+/*
+ * &nbsp;FreeLoader
+ *
+ * &nbsp;Copyright (C) 2003 &nbsp;Eric Kohl
+ *
+ * &nbsp;This program is free software; you can redistribute it and/or modify
+ * &nbsp;it under the terms of the GNU General Public License as published by
+ * &nbsp;the Free Software Foundation; either version 2 of the License, or
+ * &nbsp;(at your option) any later version.
+ *
+ * &nbsp;This program is distributed in the hope that it will be useful,
+ * &nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * &nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &nbsp;See the
+ * &nbsp;GNU General Public License for more details.
+ *
+ * &nbsp;You should have received a copy of the GNU General Public License
+ * &nbsp;along with this program; if not, write to the Free Software
+ * &nbsp;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __I386_MACHXEN_H_
+#define __I386_MACHXEN_H_
+
+#ifndef __MEMORY_H
+#include &quot;mm.h&quot;
+#endif
+
+#include &lt;rosxen.h&gt;
+#include &lt;xen.h&gt;
+#include &lt;io/domain_controller.h&gt;
+
+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
 &nbsp; + 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">- &nbsp; &nbsp;.globl <span id="removedchars">_</span>PageDirectoryStart
</pre><pre class="diff" id="added">+ &nbsp; &nbsp;.globl PageDirectoryStart
</pre><pre class="diff" id="context"> &nbsp; &nbsp; 
</pre><pre class="diff" id="removed">- &nbsp; &nbsp;.globl _startup_pagedirectory
- &nbsp; &nbsp;.globl _lowmem_pagetable
- &nbsp; &nbsp;.globl _kernel_pagetable
- &nbsp; &nbsp;.globl _hyperspace_pagetable
- &nbsp; &nbsp;.globl _apic_pagetable
- &nbsp; &nbsp;.globl <span id="removedchars">_kpcr_pagetable</span>
</pre><pre class="diff" id="added">+ &nbsp; &nbsp;.globl <span id="addedchars">startup_pagedirectory</span>
+ &nbsp; &nbsp;.globl lowmem_pagetable
+ &nbsp; &nbsp;.globl kernel_pagetable
+ &nbsp; &nbsp;.globl hyperspace_pagetable
+ &nbsp; &nbsp;.globl apic_pagetable
+ &nbsp; &nbsp;.globl kpcr_pagetable
</pre><pre class="diff" id="context"> 
</pre><pre class="diff" id="removed">- &nbsp; &nbsp;.globl _startup_pagedirectorytable_pae
- &nbsp; &nbsp;.globl _startup_pagedirectory_pae
- &nbsp; &nbsp;.globl _lowmem_pagetable_pae
- &nbsp; &nbsp;.globl _kernel_pagetable_pae
- &nbsp; &nbsp;.globl _hyperspace_pagetable_pae
- &nbsp; &nbsp;.globl _apic_pagetable_pae
- &nbsp; &nbsp;.globl <span id="removedchars">_kpcr_page</span>table_pae
</pre><pre class="diff" id="added">+ &nbsp; &nbsp;.globl <span id="addedchars">startup_pagedirectory</span>table_pae
+ &nbsp; &nbsp;.globl startup_pagedirectory_pae
+ &nbsp; &nbsp;.globl lowmem_pagetable_pae
+ &nbsp; &nbsp;.globl kernel_pagetable_pae
+ &nbsp; &nbsp;.globl hyperspace_pagetable_pae
+ &nbsp; &nbsp;.globl apic_pagetable_pae
+ &nbsp; &nbsp;.globl kpcr_pagetable_pae
</pre><pre class="diff" id="context"> &nbsp; &nbsp; 
</pre><pre class="diff" id="removed">- &nbsp; &nbsp;.globl <span id="removedchars">_</span>PageDirectoryEnd
</pre><pre class="diff" id="added">+ &nbsp; &nbsp;.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 &nbsp; 
 
</pre>
<strong class="error">[truncated at 1000 lines; 4635 more skipped]</strong>
</div>

</body>
</html>