Merge 13755:14269 from trunk.
Modified: branches/cache_manager_rewrite/reactos/Makefile
Modified: branches/cache_manager_rewrite/reactos/apps/utils/Makefile
Added: branches/cache_manager_rewrite/reactos/apps/utils/binpatch/
Deleted: branches/cache_manager_rewrite/reactos/apps/utils/consw/
Deleted: branches/cache_manager_rewrite/reactos/apps/utils/rundll32/
Added: branches/cache_manager_rewrite/reactos/apps/utils/winetest/
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/bootsect/Makefile
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/fdebug/Makefile
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/Makefile
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/include/multiboot.h
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/multiboot.c
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/reactos/reactos.c
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/install/Makefile
Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/tools/Makefile
Modified: branches/cache_manager_rewrite/reactos/bootdata/hivecls.inf
Modified: branches/cache_manager_rewrite/reactos/bootdata/hivesys.inf
Modified: branches/cache_manager_rewrite/reactos/bootdata/icon.ico
Modified: branches/cache_manager_rewrite/reactos/bootdata/packages/reactos.dff
Modified: branches/cache_manager_rewrite/reactos/config
Modified: branches/cache_manager_rewrite/reactos/doc/README.WINE
Added: branches/cache_manager_rewrite/reactos/doc/irp cancel boilerplate.c
Modified: branches/cache_manager_rewrite/reactos/drivers/bus/acpi/ospm/fdo.c
Modified: branches/cache_manager_rewrite/reactos/drivers/bus/acpi/ospm/osl.c
Modified: branches/cache_manager_rewrite/reactos/drivers/bus/acpi/tables/tbget.c
Modified: branches/cache_manager_rewrite/reactos/drivers/bus/acpi/utils/cmglobal.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/circularbuffer.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/cleanup.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/close.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/create.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/devctrl.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/info.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/legacy.c
Modified: branches/cache_manager_rewrite/reactos/drivers/dd/serial/makefile
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/misc.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/pnp.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/power.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/rw.c
Modified: branches/cache_manager_rewrite/reactos/drivers/dd/serial/serial.c
Added: branches/cache_manager_rewrite/reactos/drivers/dd/serial/serial.h
Modified: branches/cache_manager_rewrite/reactos/drivers/fs/np/create.c
Modified: branches/cache_manager_rewrite/reactos/drivers/fs/np/finfo.c
Modified: branches/cache_manager_rewrite/reactos/drivers/fs/np/fsctrl.c
Modified: branches/cache_manager_rewrite/reactos/drivers/fs/np/npfs.c
Modified: branches/cache_manager_rewrite/reactos/drivers/fs/np/npfs.h
Modified: branches/cache_manager_rewrite/reactos/drivers/fs/np/rw.c
Modified: branches/cache_manager_rewrite/reactos/drivers/fs/np/volume.c
Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/finfo.c
Modified: branches/cache_manager_rewrite/reactos/drivers/input/keyboard/keyboard.c
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/ip/network/interface.c
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/ip/network/ports.c
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/ip/transport/tcp/accept.c
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/ip/transport/tcp/tcp.c
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/include/freebsd/src/sys/sys/select.h
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/include/freebsd/src/sys/sys/socketvar.h
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/include/freebsd/src/sys/sys/systm.h
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/oskittcp/in_pcb.c
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/oskittcp/interface.c
Modified: branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/oskittcp/route.c
Modified: branches/cache_manager_rewrite/reactos/drivers/net/afd/afd/listen.c
Modified: branches/cache_manager_rewrite/reactos/drivers/net/afd/afd/main.c
Modified: branches/cache_manager_rewrite/reactos/drivers/net/afd/afd/read.c
Modified: branches/cache_manager_rewrite/reactos/drivers/net/afd/include/afd.h
Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/datalink/lan.c
Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/include/interface.h
Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/include/lan.h
Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/include/precomp.h
Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/include/tcpip.h
Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/tcpip/dispatch.c
Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/tcpip/iinfo.c
Modified: branches/cache_manager_rewrite/reactos/drivers/storage/atapi/atapi.c
Modified: branches/cache_manager_rewrite/reactos/drivers/storage/atapi/atapi.h
Modified: branches/cache_manager_rewrite/reactos/drivers/storage/disk/disk.c
Modified: branches/cache_manager_rewrite/reactos/drivers/storage/floppy/floppy.c
Modified: branches/cache_manager_rewrite/reactos/drivers/video/displays/framebuf/screen.c
Modified: branches/cache_manager_rewrite/reactos/drivers/video/displays/vga/main/enable.c
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/generic/timer.c
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/include/apic.h
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/include/hal.h
Added: branches/cache_manager_rewrite/reactos/hal/halx86/include/ioapic.h
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/include/mps.h
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/mp/Makefile
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/mp/apic.c
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/mp/halinit_mp.c
Added: branches/cache_manager_rewrite/reactos/hal/halx86/mp/ioapic.c
Added: branches/cache_manager_rewrite/reactos/hal/halx86/mp/mpconfig.c
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/mp/mpsirql.c
Modified: branches/cache_manager_rewrite/reactos/hal/halx86/mp/processor_mp.c
Modified: branches/cache_manager_rewrite/reactos/include/d3d.h
Added: branches/cache_manager_rewrite/reactos/include/d3d8.h
Added: branches/cache_manager_rewrite/reactos/include/d3d8caps.h
Added: branches/cache_manager_rewrite/reactos/include/d3d8types.h
Added: branches/cache_manager_rewrite/reactos/include/d3d9.h
Added: branches/cache_manager_rewrite/reactos/include/d3d9caps.h
Added: branches/cache_manager_rewrite/reactos/include/d3d9types.h
Added: branches/cache_manager_rewrite/reactos/include/d3drm.h
Modified: branches/cache_manager_rewrite/reactos/include/d3dtypes.h
Added: branches/cache_manager_rewrite/reactos/include/d3dvec.inl
Added: branches/cache_manager_rewrite/reactos/include/d3dx8core.h
Modified: branches/cache_manager_rewrite/reactos/include/ddk/cmtypes.h
[truncated at 100 lines; 642 more skipped]
Modified: branches/cache_manager_rewrite/reactos/Makefile
--- branches/cache_manager_rewrite/reactos/Makefile	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/Makefile	2005-03-22 20:15:04 UTC (rev 14272)
@@ -61,8 +61,8 @@
 DLLS = acledit aclui advapi32 advpack cabinet cards comctl32 crtdll comdlg32 d3d8thk dbghelp expat fmifs freetype \
 	gdi32 gdiplus glu32 hid imagehlp imm32 iphlpapi kernel32 lzexpand mesa32 midimap mmdrv mpr msacm msafd \
 	msgina msi msimg32 msvcrt20 msvideo mswsock netapi32 ntdll ole32 oleaut32 oledlg olepro32 opengl32 \
-	packet psapi riched20 richedit rpcrt4 samlib secur32 setupapi shell32 shlwapi smdll snmpapi syssetup \
-	twain user32 userenv version wininet winmm winspool ws2help ws2_32 wsock32 wshirda dnsapi \
+	packet psapi riched20 richedit rpcrt4 samlib secur32 setupapi shell32 shlwapi smlib smdll snmpapi \
+	syssetup twain user32 userenv version wininet winmm winspool ws2help ws2_32 wsock32 wshirda dnsapi \
 	urlmon shdocvw dinput dinput8 dxdiagn devenum dsound lsasrv $(DLLS_KBD) $(DLLS_CPL) $(DLLS_SHELLEXT)
 
 SUBSYS = smss win32k csrss ntvdm
@@ -103,8 +103,8 @@
 
 # System applications
 # autochk cmd format services setup usetup welcome winlogon msiexec 
-SYS_APPS = autochk calc cmd explorer expand format ibrowser msiexec regedt32 regsvr32 \
-  reporterror services setup taskmgr userinit usetup welcome vmwinst \
+SYS_APPS = autochk calc cmd explorer expand format ibrowser msiexec regsvr32 \
+  reporterror services setup taskmgr userinit usetup welcome vmwinst rundll32 \
   winlogon regedit winefile notepad reactos lsass
 
 # System services
@@ -216,6 +216,8 @@
 	$(CP) media/nls/l_intl.nls $(BOOTCD_DIR)/reactos/l_intl.nls
 	$(HALFVERBOSEECHO) [COPY]    media/drivers/etc/services to $(BOOTCD_DIR)/reactos/services
 	$(CP) media/drivers/etc/services $(BOOTCD_DIR)/reactos/services
+	$(HALFVERBOSEECHO) [COPY]    media/drivers/etc/KDBinit to $(BOOTCD_DIR)/reactos/KDBinit
+	$(CP) media/drivers/etc/KDBinit $(BOOTCD_DIR)/reactos/KDBinit
 
 bootcd_basic: bootcd_directory_layout bootcd_bootstrap_files bootcd_install_before
 
@@ -1043,6 +1045,8 @@
 	$(CP) media/nls/l_intl.nls $(INSTALL_DIR)/system32/casemap.nls
 	$(HALFVERBOSEECHO) [INSTALL] media/drivers/etc/services to $(INSTALL_DIR)/system32/drivers/etc/services
 	$(CP) media/drivers/etc/services $(INSTALL_DIR)/system32/drivers/etc/services
+	$(HALFVERBOSEECHO) [INSTALL] media/drivers/etc/KDBinit to $(INSTALL_DIR)/system32/drivers/etc/KDBinit
+	$(CP) media/drivers/etc/KDBinit $(INSTALL_DIR)/system32/drivers/etc/KDBinit
 
 .PHONY: install_clean install_dirs install_before
 

Modified: branches/cache_manager_rewrite/reactos/apps/utils/Makefile
--- branches/cache_manager_rewrite/reactos/apps/utils/Makefile	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/apps/utils/Makefile	2005-03-22 20:15:04 UTC (rev 14272)
@@ -9,7 +9,7 @@
 
 # Console system utilities
 # cabman cat net objdir partinfo pice ps sc stats
-UTIL_APPS = cat objdir partinfo pnpdump sc shutdown stats tickcount consw rundll32 ps
+UTIL_APPS = cat objdir partinfo pnpdump sc shutdown stats tickcount ps
 
 UTIL_NET_APPS = arp finger ftp ipconfig netstat ping route telnet whois
 

Copied: branches/cache_manager_rewrite/reactos/apps/utils/binpatch (from rev 14140, trunk/reactos/apps/utils/binpatch)

Copied: branches/cache_manager_rewrite/reactos/apps/utils/winetest (from rev 13990, trunk/reactos/apps/utils/winetest)

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/bootsect/Makefile
--- branches/cache_manager_rewrite/reactos/boot/freeldr/bootsect/Makefile	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/bootsect/Makefile	2005-03-22 20:15:04 UTC (rev 14272)
@@ -32,26 +32,26 @@
 	@$(MAKE) --no-print-directory -C $(FREELDR_TOOLS_PATH)
 
 dosmbr.bin : dosmbr.asm
-	@echo ===================================================== Assembling dosmbr
+	@echo freeldr: Assembling dosmbr
 	@$(NASM_CMD) $(NFLAGS) -o dosmbr.bin -f bin dosmbr.asm
 
 fat.bin : fat.asm $(BIN2C)
-	@echo ===================================================== Assembling fat
+	@echo freeldr: Assembling fat
 	@$(NASM_CMD) $(NFLAGS) -o fat.bin -f bin fat.asm
 	@$(BIN2C) fat.bin fat.h fat_data
 
 
 fat32.bin : fat32.asm $(BIN2C)
-	@echo ===================================================== Assembling fat32
+	@echo freeldr: Assembling fat32
 	@$(NASM_CMD) $(NFLAGS) -o fat32.bin -f bin fat32.asm
 	@$(BIN2C) fat32.bin fat32.h fat32_data
 
 isoboot.bin : isoboot.asm
-	@echo ===================================================== Assembling isoboot
+	@echo freeldr: Assembling isoboot
 	@$(NASM_CMD) $(NFLAGS) -o isoboot.bin -f bin isoboot.asm
 
 ext2.bin : ext2.asm
-	@echo ===================================================== Assembling ext2
+	@echo freeldr: Assembling ext2
 	@$(NASM_CMD) $(NFLAGS) -o ext2.bin -f bin ext2.asm
 	@$(BIN2C) ext2.bin ext2.h ext2_data
 
@@ -77,4 +77,4 @@
 clean:
 	@-$(RM) *.bin
 	@-$(RM) *.h
-	@echo Clean ALL done.
+	@echo freeldr: Clean ALL done.

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/fdebug/Makefile
--- branches/cache_manager_rewrite/reactos/boot/freeldr/fdebug/Makefile	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/fdebug/Makefile	2005-03-22 20:15:04 UTC (rev 14272)
@@ -30,23 +30,23 @@
 all: fdebug.exe
 
 fdebug.exe: $(OBJS)
-	@echo ===================================================== LINKING fdebug
+	@echo freeldr: LINKING fdebug
 	$(CC) $(FLAGS) -o fdebug.exe $(OBJS) -lgdi32 -lcomdlg32 -Wl,--subsystem,windows
 
 fdebug.res: fdebug.rc resource.h
-	@echo ===================================================== Compiling $*
+	@echo freeldr: Compiling $*
 	$(RC) -o fdebug.res fdebug.rc -O coff
 
 fdebug.o: fdebug.c rs232.h
-	@echo ===================================================== Compiling $*
+	@echo freeldr: Compiling $*
 	$(CC) $(FLAGS) -o fdebug.o -c fdebug.c
 
 rs232.o: rs232.c rs232.h
-	@echo ===================================================== Compiling $*
+	@echo freeldr: Compiling $*
 	$(CC) $(FLAGS) -o rs232.o -c rs232.c
 
 clean:
 	@-$(RM) *.o
 	@-$(RM) *.res
 	@-$(RM) *.exe
-	@echo Clean ALL done.
+	@echo freeldr: Clean ALL done.

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/Makefile
--- branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/Makefile	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/Makefile	2005-03-22 20:15:04 UTC (rev 14272)
@@ -57,7 +57,7 @@
 	@-$(RM) setupldr.sys
 	@-$(RM) setupldr.map
 	@$(MAKE) --no-print-directory -C $(FREELDR_TOOLS_PATH)
-	@echo Clean ALL done.
+	@echo freeldr: Clean ALL done.
 
 #############################################
 
@@ -259,11 +259,11 @@
 
 
 all : freeldr.sys setupldr.sys
-	@echo Make ALL done.
+	@echo freeldr: Make ALL done.
 
 
 freeldr.sys : $(ALL_OBJS) $(PATH_TO_TOP)/dk/w32/lib/librossym.a
-	@echo ===================================================== LINKING $@
+	@echo freeldr: LINKING $@
 	@$(LD) $(LFLAGS) -o freeldr.exe $(F_OBJS) $(PATH_TO_TOP)/dk/w32/lib/librossym.a
 ifeq ($(FULL_MAP),yes)
 	@$(OBJDUMP) -d -S freeldr.exe > freeldr.map
@@ -274,7 +274,7 @@
 
 
 setupldr.sys : $(ALL_OBJS)
-	@echo ===================================================== LINKING $@
+	@echo freeldr: LINKING $@
 	@$(LD) $(LFLAGS) -Map setupldr.map -o setupldr.exe $(S_OBJS)
 ifeq ($(FULL_MAP),yes)
 	@$(OBJDUMP) -d -S setupldr.exe > setupldr.map
@@ -285,15 +285,15 @@
 
 
 %.o :: %.c
-	@echo ===================================================== Compiling $*
+	@echo freeldr: Compiling $*
 	@$(CC) $(CFLAGS) -o $@ -c $<
 	@$(DEPTOOL) $*.d
 
 %.o :: %.S
-	@echo ===================================================== Assembling $*
+	@echo freeldr: Assembling $*
 	@$(CC) $(CFLAGS) -o $@ -c $<
 	@$(DEPTOOL) $*.d
 
 %.o :: %.asm
-	@echo ===================================================== Assembling $*
+	@echo freeldr: Assembling $*
 	@$(NASM_CMD) $(NASMFLAGS) -o $@ $<

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c
--- branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -28,6 +28,7 @@
 #include "../../reactos/registry.h"
 #include "hardware.h"
 
+BOOLEAN AcpiPresent = FALSE;
 
 static BOOL
 FindAcpiBios(VOID)
@@ -63,6 +64,7 @@
 
   if (FindAcpiBios())
     {
+      AcpiPresent = TRUE;
       /* Create new bus key */
       sprintf(Buffer,
 	      "MultifunctionAdapter\\%u", *BusNumber);

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/include/multiboot.h
--- branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/include/multiboot.h	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/include/multiboot.h	2005-03-22 20:15:04 UTC (rev 14272)
@@ -52,6 +52,7 @@
 #define MB_INFO_FLAG_BOOT_LOADER_NAME	0x00000200
 #define MB_INFO_FLAG_APM_TABLE			0x00000400
 #define MB_INFO_FLAG_GRAPHICS_TABLE		0x00000800
+#define MB_INFO_FLAG_ACPI_TABLE         0x00001000
 
 #ifndef ASM
 /* Do not include here in boot.S. */

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/multiboot.c
--- branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/multiboot.c	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/multiboot.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -164,9 +164,7 @@
     /* Re-initalize EFLAGS */
     Ke386EraseFlags();
     
-    /* Get Kernel Base and Set MmSystemRangeStart */  
-    FrLdrGetKernelBase();
-
+    /* Get the PAE Mode */
     FrLdrGetPaeMode();
        
     /* Initialize the page directory */
@@ -531,6 +529,14 @@
     ULONG_PTR TargetSection;
     ULONG SectionSize;
     LONG i;
+    PIMAGE_DATA_DIRECTORY RelocationDDir;
+    PIMAGE_BASE_RELOCATION RelocationDir, RelocationEnd;
+    ULONG Count;
+    ULONG_PTR Address, MaxAddress;
+    PUSHORT TypeOffset;
+    ULONG_PTR Delta;
+    PUSHORT ShortPtr;
+    PULONG LongPtr;
 
     /* Allocate 1024 bytes for PE Header */
     ImageHeader = (PIMAGE_DOS_HEADER)MmAllocateMemory(1024);
@@ -552,8 +558,9 @@
     /* Now read the MZ header to get the offset to the PE Header */
     NtHeader = (PIMAGE_NT_HEADERS)((PCHAR)ImageHeader + ImageHeader->e_lfanew);
      
-    /* Save the Image Base */
-    KernelBase = NtHeader->OptionalHeader.ImageBase;
+    /* Get Kernel Base */
+    KernelBase = NtHeader->OptionalHeader.ImageBase;  
+    FrLdrGetKernelBase();
     
     /* Save Entrypoint */
     KernelEntry = RaToPa(NtHeader->OptionalHeader.AddressOfEntryPoint);
@@ -603,10 +610,65 @@
                    Section->Misc.VirtualSize - Section->SizeOfRawData);
         }
     }
+       
+    /* Get the Relocation Data Directory */
+    RelocationDDir = &NtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC];
     
-    /* Now relocate the file */
-    /* FIXME: ADD RELOC CODE */
+    /* Get the Relocation Section Start and End*/
+    RelocationDir = (PIMAGE_BASE_RELOCATION)(KERNEL_BASE_PHYS + RelocationDDir->VirtualAddress);
+    RelocationEnd = (PIMAGE_BASE_RELOCATION)((ULONG_PTR)RelocationDir + RelocationDDir->Size);
+   
+    /* Calculate Difference between Real Base and Compiled Base*/
+    Delta = KernelBase - NtHeader->OptionalHeader.ImageBase;;
     
+    /* Determine how far we shoudl relocate */
+    MaxAddress = KERNEL_BASE_PHYS + ImageSize;
+    
+    /* Relocate until we've processed all the blocks */
+    while (RelocationDir < RelocationEnd && RelocationDir->SizeOfBlock > 0) {
+        
+        /* See how many Relocation Blocks we have */
+        Count = (RelocationDir->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(USHORT);
+        
+        /* Calculate the Address of this Directory */
+        Address = KERNEL_BASE_PHYS + RelocationDir->VirtualAddress;
+        
+        /* Calculate the Offset of the Type */
+        TypeOffset = (PUSHORT)(RelocationDir + 1);
+
+        for (i = 0; i < Count; i++) {
+            
+            ShortPtr = (PUSHORT)(Address + (*TypeOffset & 0xFFF));
+
+            /* Don't relocate after the end of the loaded driver */
+            if ((ULONG_PTR)ShortPtr >= MaxAddress) break;
+
+            switch (*TypeOffset >> 12) {
+                
+                case IMAGE_REL_BASED_ABSOLUTE:
+                    break;
+
+                case IMAGE_REL_BASED_HIGH:
+                    *ShortPtr += HIWORD(Delta);
+                    break;
+
+                case IMAGE_REL_BASED_LOW:
+                    *ShortPtr += LOWORD(Delta);
+                    break;
+
+                case IMAGE_REL_BASED_HIGHLOW:
+                    LongPtr = (PULONG)ShortPtr;
+                    *LongPtr += Delta;
+                    break;
+            }
+            
+            TypeOffset++;
+        }
+        
+        /* Move to the next Relocation Table */
+        RelocationDir = (PIMAGE_BASE_RELOCATION)((ULONG_PTR)RelocationDir + RelocationDir->SizeOfBlock);
+    }
+    
     /* Increase the next Load Base */
     NextModuleBase = ROUND_UP(KERNEL_BASE_PHYS + ImageSize, PAGE_SIZE);
 

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/reactos/reactos.c
--- branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/reactos/reactos.c	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/reactos/reactos.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -578,8 +578,9 @@
 	PARTITION_TABLE_ENTRY PartitionTableEntry;
 	ULONG rosPartition;
  
-    extern ULONG PageDirectoryStart;
-    extern ULONG PageDirectoryEnd;
+	extern ULONG PageDirectoryStart;
+	extern ULONG PageDirectoryEnd;
+	extern BOOLEAN AcpiPresent;
 
 	//
 	// Open the operating system section
@@ -596,8 +597,8 @@
 	 * Setup multiboot information structure
 	 */
 	LoaderBlock.Flags = MB_INFO_FLAG_MEM_SIZE | MB_INFO_FLAG_BOOT_DEVICE | MB_INFO_FLAG_COMMAND_LINE | MB_INFO_FLAG_MODULES;
-    LoaderBlock.PageDirectoryStart = (ULONG)&PageDirectoryStart;
-    LoaderBlock.PageDirectoryEnd = (ULONG)&PageDirectoryEnd;
+	LoaderBlock.PageDirectoryStart = (ULONG)&PageDirectoryStart;
+	LoaderBlock.PageDirectoryEnd = (ULONG)&PageDirectoryEnd;
 	LoaderBlock.BootDevice = 0xffffffff;
 	LoaderBlock.CommandLine = (unsigned long)multiboot_kernel_cmdline;
 	LoaderBlock.ModsCount = 0;
@@ -734,6 +735,7 @@
 	 */
 	MachHwDetect();
 
+	if (AcpiPresent) LoaderBlock.Flags |= MB_INFO_FLAG_ACPI_TABLE;
 
 	UiDrawStatusText("Loading...");
 	UiDrawProgressBarCenter(0, 100, "Loading ReactOS...");

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/install/Makefile
--- branches/cache_manager_rewrite/reactos/boot/freeldr/install/Makefile	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/install/Makefile	2005-03-22 20:15:04 UTC (rev 14272)
@@ -35,18 +35,18 @@
 	@$(MAKE) --no-print-directory -C ../bootsect
 
 install.exe: $(OBJS)
-	@echo ===================================================== LINKING install
+	@echo freeldr: LINKING install
 	$(CC) $(FLAGS) -o install.exe $(OBJS)
 
 install.o: install.c install.h volume.h
-	@echo ===================================================== Compiling $*
+	@echo freeldr: Compiling $*
 	$(CC) $(FLAGS) -o install.o -c install.c
 
 volume.o: volume.c volume.h install.h
-	@echo ===================================================== Compiling $*
+	@echo freeldr: Compiling $*
 	$(CC) $(FLAGS) -o volume.o -c volume.c
 
 clean:
 	@-$(RM) *.o
 	@-$(RM) *.exe
-	@echo Clean ALL done.
+	@echo freeldr: Clean ALL done.

Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/tools/Makefile
--- branches/cache_manager_rewrite/reactos/boot/freeldr/tools/Makefile	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/boot/freeldr/tools/Makefile	2005-03-22 20:15:04 UTC (rev 14272)
@@ -25,16 +25,16 @@
 			bin2c$(EXE_POSTFIX)
 
 all : $(TOOLS)
-	@echo Tools are up to date.
+	@echo freeldr: Tools are up to date.
 
 % :: all
 
 %$(EXE_POSTFIX): %.c
-	@echo ===================================================== Compiling $*
+	@echo freeldr: Compiling $*
 	@$(HOST_CC) -Wall -O3 -o $@ $<
 
 
 .PHONY : clean
 clean:
 	@-$(RM) $(TOOLS)
-	@echo Clean ALL done.
+	@echo freeldr: Clean ALL done.

Modified: branches/cache_manager_rewrite/reactos/bootdata/hivecls.inf
--- branches/cache_manager_rewrite/reactos/bootdata/hivecls.inf	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/bootdata/hivecls.inf	2005-03-22 20:15:04 UTC (rev 14272)
@@ -344,4 +344,133 @@
 
 HKCR,"WinNT\Clsid","",0x00000002,"{8b20cd60-0f29-11cf-abc4-02608c9e7553}"
 
+
+; For language support:
+
+HKCR,"MIME",,0x00000012
+HKCR,"MIME\Database",,0x00000012
+HKCR,"MIME\Database\Rfc1766",,0x00000012
+HKCR,"MIME\Database\Rfc1766","0436",0x00000000,"af;Afrikaans"
+HKCR,"MIME\Database\Rfc1766","041C",0x00000000,"sq;Albanian"
+HKCR,"MIME\Database\Rfc1766","0001",0x00000000,"ar;Arabic"
+HKCR,"MIME\Database\Rfc1766","0401",0x00000000,"ar-sa;Arabic (Saudi Arabia)"
+HKCR,"MIME\Database\Rfc1766","0801",0x00000000,"ar-iq;Arabic (Iraq)"
+HKCR,"MIME\Database\Rfc1766","0C01",0x00000000,"ar-eg;Arabic (Egypt)"
+HKCR,"MIME\Database\Rfc1766","1001",0x00000000,"ar-ly;Arabic (Libya)"
+HKCR,"MIME\Database\Rfc1766","1401",0x00000000,"ar-dz;Arabic (Algeria)"
+HKCR,"MIME\Database\Rfc1766","1801",0x00000000,"ar-ma;Arabic (Morocco)"
+HKCR,"MIME\Database\Rfc1766","1C01",0x00000000,"ar-tn;Arabic (Tunisia)"
+HKCR,"MIME\Database\Rfc1766","2001",0x00000000,"ar-om;Arabic (Oman)"
+HKCR,"MIME\Database\Rfc1766","2401",0x00000000,"ar-ye;Arabic (Yemen)"
+HKCR,"MIME\Database\Rfc1766","2801",0x00000000,"ar-sy;Arabic (Syria)"
+HKCR,"MIME\Database\Rfc1766","2C01",0x00000000,"ar-jo;Arabic (Jordan)"
+HKCR,"MIME\Database\Rfc1766","3001",0x00000000,"ar-lb;Arabic (Lebanon)"
+HKCR,"MIME\Database\Rfc1766","3401",0x00000000,"ar-kw;Arabic (Kuwait)"
+HKCR,"MIME\Database\Rfc1766","3801",0x00000000,"ar-ae;Arabic (U.A.E.)"
+HKCR,"MIME\Database\Rfc1766","3C01",0x00000000,"ar-bh;Arabic (Bahrain)"
+HKCR,"MIME\Database\Rfc1766","4001",0x00000000,"ar-qa;Arabic (Qatar)"
+HKCR,"MIME\Database\Rfc1766","042D",0x00000000,"eu;Basque"
+HKCR,"MIME\Database\Rfc1766","0402",0x00000000,"bg;Bulgarian"
+HKCR,"MIME\Database\Rfc1766","0423",0x00000000,"be;Belarusian"
+HKCR,"MIME\Database\Rfc1766","0403",0x00000000,"ca;Catalan"
+HKCR,"MIME\Database\Rfc1766","0004",0x00000000,"zh;Chinese"
+HKCR,"MIME\Database\Rfc1766","0404",0x00000000,"zh-tw;Chinese (Taiwan)"
+HKCR,"MIME\Database\Rfc1766","0804",0x00000000,"zh-cn;Chinese (China)"
+HKCR,"MIME\Database\Rfc1766","0C04",0x00000000,"zh-hk;Chinese (Hong Kong SAR)"
+HKCR,"MIME\Database\Rfc1766","1004",0x00000000,"zh-sg;Chinese (Singapore)"
+HKCR,"MIME\Database\Rfc1766","041A",0x00000000,"hr;Croatian"
+HKCR,"MIME\Database\Rfc1766","0405",0x00000000,"cs;Czech"
+HKCR,"MIME\Database\Rfc1766","0406",0x00000000,"da;Danish"
+HKCR,"MIME\Database\Rfc1766","0413",0x00000000,"nl;Dutch (Netherlands)"
+HKCR,"MIME\Database\Rfc1766","0813",0x00000000,"nl-be;Dutch (Belgium)"
+HKCR,"MIME\Database\Rfc1766","0009",0x00000000,"en;English"
+HKCR,"MIME\Database\Rfc1766","0409",0x00000000,"en-us;English (United States)"
+HKCR,"MIME\Database\Rfc1766","0809",0x00000000,"en-gb;English (United Kingdom)"
+HKCR,"MIME\Database\Rfc1766","0C09",0x00000000,"en-au;English (Australia)"
+HKCR,"MIME\Database\Rfc1766","1009",0x00000000,"en-ca;English (Canada)"
+HKCR,"MIME\Database\Rfc1766","1409",0x00000000,"en-nz;English (New Zealand)"
+HKCR,"MIME\Database\Rfc1766","1809",0x00000000,"en-ie;English (Ireland)"
+HKCR,"MIME\Database\Rfc1766","1C09",0x00000000,"en-za;English (South Africa)"
+HKCR,"MIME\Database\Rfc1766","2009",0x00000000,"en-jm;English (Jamaica)"
+HKCR,"MIME\Database\Rfc1766","2809",0x00000000,"en-bz;English (Belize)"
+HKCR,"MIME\Database\Rfc1766","2C09",0x00000000,"en-tt;English (Trinidad)"
+HKCR,"MIME\Database\Rfc1766","0425",0x00000000,"et;Estonian"
+HKCR,"MIME\Database\Rfc1766","0438",0x00000000,"fo;Faeroese"
+HKCR,"MIME\Database\Rfc1766","0429",0x00000000,"fa;Farsi"
+HKCR,"MIME\Database\Rfc1766","040B",0x00000000,"fi;Finnish"
+HKCR,"MIME\Database\Rfc1766","040C",0x00000000,"fr;French (France)"
+HKCR,"MIME\Database\Rfc1766","080C",0x00000000,"fr-be;French (Belgium)"
+HKCR,"MIME\Database\Rfc1766","0C0C",0x00000000,"fr-ca;French (Canada)"
+HKCR,"MIME\Database\Rfc1766","100C",0x00000000,"fr-ch;French (Switzerland)"
+HKCR,"MIME\Database\Rfc1766","140C",0x00000000,"fr-lu;French (Luxembourg)"
+HKCR,"MIME\Database\Rfc1766","043C",0x00000000,"gd;Gaelic"
+HKCR,"MIME\Database\Rfc1766","0407",0x00000000,"de;German (Germany)"
+HKCR,"MIME\Database\Rfc1766","0807",0x00000000,"de-ch;German (Switzerland)"
+HKCR,"MIME\Database\Rfc1766","0C07",0x00000000,"de-at;German (Austria)"
+HKCR,"MIME\Database\Rfc1766","1007",0x00000000,"de-lu;German (Luxembourg)"
+HKCR,"MIME\Database\Rfc1766","1407",0x00000000,"de-li;German (Liechtenstein)"
+HKCR,"MIME\Database\Rfc1766","0408",0x00000000,"el;Greek"
+HKCR,"MIME\Database\Rfc1766","040D",0x00000000,"he;Hebrew"
+HKCR,"MIME\Database\Rfc1766","0439",0x00000000,"hi;Hindi"
+HKCR,"MIME\Database\Rfc1766","040E",0x00000000,"hu;Hungarian"
+HKCR,"MIME\Database\Rfc1766","040F",0x00000000,"is;Icelandic"
+HKCR,"MIME\Database\Rfc1766","0421",0x00000000,"in;Indonesian"
+HKCR,"MIME\Database\Rfc1766","0410",0x00000000,"it;Italian (Italy)"
+HKCR,"MIME\Database\Rfc1766","0810",0x00000000,"it-ch;Italian (Switzerland)"
+HKCR,"MIME\Database\Rfc1766","0411",0x00000000,"ja;Japanese"
+HKCR,"MIME\Database\Rfc1766","0412",0x00000000,"ko;Korean"
+HKCR,"MIME\Database\Rfc1766","0426",0x00000000,"lv;Latvian"
+HKCR,"MIME\Database\Rfc1766","0427",0x00000000,"lt;Lithuanian"
+HKCR,"MIME\Database\Rfc1766","042F",0x00000000,"mk;FYRO Macedonian"
+HKCR,"MIME\Database\Rfc1766","043E",0x00000000,"ms;Malay (Malaysia)"
+HKCR,"MIME\Database\Rfc1766","043A",0x00000000,"mt;Maltese"
+HKCR,"MIME\Database\Rfc1766","0414",0x00000000,"no;Norwegian (Bokmal)"
+HKCR,"MIME\Database\Rfc1766","0814",0x00000000,"no;Norwegian (Nynorsk)"
+HKCR,"MIME\Database\Rfc1766","0415",0x00000000,"pl;Polish"
+HKCR,"MIME\Database\Rfc1766","0416",0x00000000,"pt-br;Portuguese (Brazil)"
+HKCR,"MIME\Database\Rfc1766","0816",0x00000000,"pt;Portuguese (Portugal)"
+HKCR,"MIME\Database\Rfc1766","0417",0x00000000,"rm;Rhaeto-Romanic"
+HKCR,"MIME\Database\Rfc1766","0418",0x00000000,"ro;Romanian"
+HKCR,"MIME\Database\Rfc1766","0818",0x00000000,"ro-mo;Romanian (Moldova)"
+HKCR,"MIME\Database\Rfc1766","0419",0x00000000,"ru;Russian"
+HKCR,"MIME\Database\Rfc1766","0819",0x00000000,"ru-mo;Russian (Moldova)"
+HKCR,"MIME\Database\Rfc1766","0C1A",0x00000000,"sr;Serbian (Cyrillic)"
+HKCR,"MIME\Database\Rfc1766","081A",0x00000000,"sr;Serbian (Latin)"
+HKCR,"MIME\Database\Rfc1766","041B",0x00000000,"sk;Slovak"
+HKCR,"MIME\Database\Rfc1766","0424",0x00000000,"sl;Slovenian"
+HKCR,"MIME\Database\Rfc1766","042E",0x00000000,"sb;Sorbian"
+HKCR,"MIME\Database\Rfc1766","040A",0x00000000,"es;Spanish (Traditional Sort)"
+HKCR,"MIME\Database\Rfc1766","080A",0x00000000,"es-mx;Spanish (Mexico)"
+HKCR,"MIME\Database\Rfc1766","0C0A",0x00000000,"es;Spanish (International Sort)"
+HKCR,"MIME\Database\Rfc1766","100A",0x00000000,"es-gt;Spanish (Guatemala)"
+HKCR,"MIME\Database\Rfc1766","140A",0x00000000,"es-cr;Spanish (Costa Rica)"
+HKCR,"MIME\Database\Rfc1766","180A",0x00000000,"es-pa;Spanish (Panama)"
+HKCR,"MIME\Database\Rfc1766","1C0A",0x00000000,"es-do;Spanish (Dominican Republic)"
+HKCR,"MIME\Database\Rfc1766","200A",0x00000000,"es-ve;Spanish (Venezuela)"
+HKCR,"MIME\Database\Rfc1766","240A",0x00000000,"es-co;Spanish (Colombia)"
+HKCR,"MIME\Database\Rfc1766","280A",0x00000000,"es-pe;Spanish (Peru)"
+HKCR,"MIME\Database\Rfc1766","2C0A",0x00000000,"es-ar;Spanish (Argentina)"
+HKCR,"MIME\Database\Rfc1766","300A",0x00000000,"es-ec;Spanish (Ecuador)"
+HKCR,"MIME\Database\Rfc1766","340A",0x00000000,"es-cl;Spanish (Chile)"
+HKCR,"MIME\Database\Rfc1766","380A",0x00000000,"es-uy;Spanish (Uruguay)"
+HKCR,"MIME\Database\Rfc1766","3C0A",0x00000000,"es-py;Spanish (Paraguay)"
+HKCR,"MIME\Database\Rfc1766","400A",0x00000000,"es-bo;Spanish (Bolivia)"
+HKCR,"MIME\Database\Rfc1766","440A",0x00000000,"es-sv;Spanish (El Salvador)"
+HKCR,"MIME\Database\Rfc1766","480A",0x00000000,"es-hn;Spanish (Honduras)"
+HKCR,"MIME\Database\Rfc1766","4C0A",0x00000000,"es-ni;Spanish (Nicaragua)"
+HKCR,"MIME\Database\Rfc1766","500A",0x00000000,"es-pr;Spanish (Puerto Rico)"
+HKCR,"MIME\Database\Rfc1766","0430",0x00000000,"sx;Sutu"
+HKCR,"MIME\Database\Rfc1766","041D",0x00000000,"sv;Swedish"
+HKCR,"MIME\Database\Rfc1766","081D",0x00000000,"sv-fi;Swedish (Finland)"
+HKCR,"MIME\Database\Rfc1766","041E",0x00000000,"th;Thai"
+HKCR,"MIME\Database\Rfc1766","0431",0x00000000,"ts;Tsonga"
+HKCR,"MIME\Database\Rfc1766","0432",0x00000000,"tn;Tswana"
+HKCR,"MIME\Database\Rfc1766","041F",0x00000000,"tr;Turkish"
+HKCR,"MIME\Database\Rfc1766","0422",0x00000000,"uk;Ukrainian"
+HKCR,"MIME\Database\Rfc1766","0420",0x00000000,"ur;Urdu"
+HKCR,"MIME\Database\Rfc1766","042A",0x00000000,"vi;Vietnamese"
+HKCR,"MIME\Database\Rfc1766","0434",0x00000000,"xh;Xhosa"
+HKCR,"MIME\Database\Rfc1766","043D",0x00000000,"ji;Yiddish"
+HKCR,"MIME\Database\Rfc1766","0435",0x00000000,"zu;Zulu"
+
 ; EOF

Modified: branches/cache_manager_rewrite/reactos/bootdata/hivesys.inf
--- branches/cache_manager_rewrite/reactos/bootdata/hivesys.inf	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/bootdata/hivesys.inf	2005-03-22 20:15:04 UTC (rev 14272)
@@ -257,10 +257,10 @@
 ; Subsystems
 HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Debug",0x00020000,""
 HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Kmode",0x00020000,"%SystemRoot%\system32\win32k.sys"
-HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Optional",0x00070000,"Posix Os2"
+HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Optional",0x00010000,"Posix","Os2"
 HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Os2",0x00020000,"%SystemRoot%\system32\os2ss.exe"
 HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Posix",0x00020000,"%SystemRoot%\system32\psxss.exe"
-HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Required",0x00070000,"Debug Windows"
+HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Required",0x00010000,"Debug","Windows"
 HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems","Windows",0x00020000,"%SystemRoot%\system32\csrss.exe"
 
 ; 3Com 3c905 Driver
@@ -674,8 +674,13 @@
 HKLM,"SYSTEM\CurrentControlSet\Services\Serial","ErrorControl",0x00010001,0x00000000
 HKLM,"SYSTEM\CurrentControlSet\Services\Serial","Group",0x00000000,"Base"
 HKLM,"SYSTEM\CurrentControlSet\Services\Serial","ImagePath",0x00020000,"system32\drivers\serial.sys"
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial","Start",0x00010001,0x00000001
+HKLM,"SYSTEM\CurrentControlSet\Services\Serial","Start",0x00010001,0x00000004
 HKLM,"SYSTEM\CurrentControlSet\Services\Serial","Type",0x00010001,0x00000001
+;hard coded values
+HKLM,"SYSTEM\CurrentControlSet\Services\Serial\Enum","0",0x00000000,"ACPI\PNP0501"
+HKLM,"SYSTEM\CurrentControlSet\Services\Serial\Enum","Count",0x00010001,0x00000001
+HKLM,"SYSTEM\CurrentControlSet\Services\Serial\Enum","NextInstance",0x00010001,0x00000001
+HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\0000","Service",0x00000000,"serial"
 
 ; Packet driver
 HKLM,"SYSTEM\CurrentControlSet\Services\Packet","ErrorControl",0x00010001,0x00000001

Modified: branches/cache_manager_rewrite/reactos/bootdata/icon.ico
(Binary files differ)

Modified: branches/cache_manager_rewrite/reactos/bootdata/packages/reactos.dff
--- branches/cache_manager_rewrite/reactos/bootdata/packages/reactos.dff	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/bootdata/packages/reactos.dff	2005-03-22 20:15:04 UTC (rev 14272)
@@ -99,6 +99,7 @@
 lib\msacm\msacm32.dll                   1
 lib\msafd\msafd.dll                     1
 lib\msgina\msgina.dll                   1
+lib\msi\msi.dll                         1
 lib\msimg32\msimg32.dll                 1
 lib\msvcrt\msvcrt.dll                   1
 lib\msvcrt20\msvcrt20.dll               1
@@ -108,6 +109,7 @@
 lib\oleaut32\oleaut32.dll               1
 lib\olepro32\olepro32.dll               1
 lib\psapi\psapi.dll                     1
+lib\riched20\riched20.dll               1
 lib\richedit\riched32.dll               1
 lib\rpcrt4\rpcrt4.dll                   1
 lib\samlib\samlib.dll                   1
@@ -147,11 +149,13 @@
 subsys\system\explorer\explorer-cfg-template.xml 4
 subsys\system\explorer\notifyhook\notifyhook.dll 1
 subsys\system\format\format.exe         1
+subsys\system\ibrowser\ibrowser.exe     1
+subsys\system\msiexec\msiexec.exe       1
 subsys\system\notepad\notepad.exe       1
 subsys\system\regedit\regedit.exe       4
-subsys\system\regedt32\regedt32.exe     1
 subsys\system\regsvr32\regsvr32.exe     1
 subsys\system\reporterror\reporterror.exe 1
+subsys\system\rundll32\rundll32.exe     1
 subsys\system\services\services.exe     1
 subsys\system\setup\setup.exe           1
 subsys\system\taskmgr\taskmgr.exe       1

Modified: branches/cache_manager_rewrite/reactos/config
--- branches/cache_manager_rewrite/reactos/config	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/config	2005-03-22 20:15:04 UTC (rev 14272)
@@ -5,14 +5,13 @@
 # Possible values in the future: alpha,i386,m68k,mips,powerpc
 ARCH := i386
 
-
 #
-# Which cpu should reactos optimze for
+# Which cpu should reactos optimize for
 # example : i486, i586, pentium, pentium2, pentium3, pentium4
 #           athlon-xp, athlon-mp, k6-2, 
 #
-# see gcc manual for more cpu name and which cpu it can 
-# be optimze for. 
+# see gcc manual for more cpu names and which cpus it can 
+# be optimized for. 
 #
 
 OARCH := i486
@@ -28,26 +27,11 @@
 DBG := 0
 
 #
-# Whether to compile with optimizations
-#
-OPTIMIZED := 0
-
-#
 # Whether to compile a multiprocessor or single processor version
 #
 CONFIG_SMP := 0
 
 #
-# Whether to compile for ACPI compliant systems
-#
-ACPI := 0
-
-#
-# whether to use a 3GB User, 1GB Kernel memory map
-#
-3GB := 0
-
-#
 # Which version of NDIS do we support up to?
 #
 #NDISVERSION=NDIS50

Modified: branches/cache_manager_rewrite/reactos/doc/README.WINE
--- branches/cache_manager_rewrite/reactos/doc/README.WINE	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/doc/README.WINE	2005-03-22 20:15:04 UTC (rev 14272)
@@ -26,52 +26,55 @@
 work to import a new dll.
 
 The following build tools are derived from Wine.
+reactos/tools/unicode		# Synced to Wine-20050310
+reactos/tools/wpp		# Synced to Wine-20050310
 reactos/tools/bin2res		# Resource to binary converter
-reactos/tools/winebuild		# Synced to Wine-20050211
+reactos/tools/winebuild		# Synced to Wine-20050310
 reactos/tools/wmc		# Wine Message Compiler
-reactos/tools/wrc		# Synced to Wine-20050211
+reactos/tools/wrc		# Synced to Wine-20050310
+reactos/tools/widl		# Synced to Wine-20050310
 
 The following shared libraries are a 100% port from Winehq sources.
 
-reactos/lib/cabinet             # Synced to Wine-20050211
-reactos/lib/comctl32            # Synced to Wine-20050211
-reactos/lib/comdlg32		# Synced to Wine-20050211
-reactos/lib/dinput		# Synced to Wine-20050211
-reactos/lib/dinput8		# Synced to Wine-20050211
-reactos/lib/icmp		# Synced to Wine-20050211
+reactos/lib/cabinet             # Synced to Wine-20050310
+reactos/lib/comctl32            # Synced to Wine-20050310
+reactos/lib/comdlg32		# Synced to Wine-20050310
+reactos/lib/dinput		# Synced to Wine-20050310
+reactos/lib/dinput8		# Synced to Wine-20050310
+reactos/lib/icmp		# Synced to Wine-20050310
 reactos/lib/iphlpapi		# Out of sync
 reactos/lib/imagehlp		# Patches for BindImage need review and submission to winehq.
 reactos/lib/msvcrt20		# Out of sync
-reactos/lib/mpr                 # Synced to Wine-20050211
+reactos/lib/mpr                 # Synced to Wine-20050310
 reactos/lib/msacm		# Out of sync
-reactos/lib/msimg32		# Synced to Wine-20050211
-reactos/lib/msi			# Synced to Wine-20050211
+reactos/lib/msimg32		# Synced to Wine-20050310
+reactos/lib/msi			# Synced to Wine-20050310
 reactos/lib/msvideo		# Out of sync
 reactos/lib/netapi32		# Out of sync
 reactos/lib/odbc32		# In sync. Depends on port of Linux ODBC.
-reactos/lib/ole32               # Synced to Wine-20050211
-reactos/lib/oleaut32		# Synced to Wine-20050211
-reactos/lib/oledlg              # Synced to Wine-20050211
-reactos/lib/olepro32		# Synced to Wine-20050211
-reactos/lib/richedit		# Synced to Wine-20050211
-reactos/lib/rpcrt4		# Synced to Wine-20050211
-reactos/lib/setupapi		# Synced to Wine-20050125 # CVS
-reactos/lib/shell32             # Synced to Wine-20050211
-reactos/lib/shdocvw             # Synced to Wine-20050211
-reactos/lib/shlwapi             # Synced to Wine-20050211
+reactos/lib/ole32               # Synced to Wine-20050310
+reactos/lib/oleaut32		# Synced to Wine-20050310
+reactos/lib/oledlg              # Synced to Wine-20050310
+reactos/lib/olepro32		# Synced to Wine-20050310
+reactos/lib/riched20		# Synced to Wine-20050310
+reactos/lib/richedit		# Synced to Wine-20050310
+reactos/lib/rpcrt4		# Synced to Wine-20050310
+reactos/lib/setupapi		# Synced to Wine-20050310
+reactos/lib/shell32             # Synced to Wine-20050310
+reactos/lib/shdocvw             # Synced to Wine-20050310
+reactos/lib/shlwapi             # Synced to Wine-20050310
 reactos/lib/twain		# Out of sync
-reactos/lib/unicode		# Dependancy on this lib needs to be removed. Synced to Wine-20050211
-reactos/lib/urlmon		# Synced to Wine-20050211
+reactos/lib/urlmon		# Synced to Wine-20050310
 reactos/lib/version		# Out of sync
 reactos/lib/wininet		# Out of sync
-reactos/lib/winmm		# Synced to Wine-20050211
-reactos/lib/winmm/midimap       # Synced to Wine-20050211
-reactos/lib/winmm/wavemap       # Synced to Wine-20050211
+reactos/lib/winmm		# Synced to Wine-20050310
+reactos/lib/winmm/midimap       # Synced to Wine-20050310
+reactos/lib/winmm/wavemap       # Synced to Wine-20050310
 
 ReactOS shares the following programs with Winehq.
 reactos/subsys/system/regedit	# Out of sync
 reactos/subsys/system/expand	# Out of sync
-reactos/subsys/system/msiexec	# Synced to Wine-20050211
+reactos/subsys/system/msiexec	# Synced to Wine-20050311
 
 In addition the following libs, dlls and source files are mostly based on code ported
 from Winehq CVS. If you are looking to update something in these files

Copied: branches/cache_manager_rewrite/reactos/doc/irp cancel boilerplate.c (from rev 13860, trunk/reactos/doc/irp cancel boilerplate.c)
--- trunk/reactos/doc/irp cancel boilerplate.c	2005-03-06 21:01:04 UTC (rev 13860)
+++ branches/cache_manager_rewrite/reactos/doc/irp cancel boilerplate.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -0,0 +1,103 @@
+
+
+/*
+Boiler plate for irp cancelation, for irp queues you manage yourself
+-Gunnar
+*/
+
+
+
+CancelRoutine(
+   DEV_OBJ Dev,
+   Irp
+   )
+{
+   //don't need this since we have our own sync. protecting irp cancellation
+   IoReleaseCancelSpinLock(Irp->CancelIrql); 
+ 
+   theLock = Irp->Tail.Overlay.DriverContext[3];
+ 
+   Lock(theLock);   
+   RemoveEntryList(&Irp->Tail.Overlay.ListEntry);
+   Unlock(theLock);
+ 
+   Irp->IoStatus.Status = STATUS_CANCELLED;
+   Irp->IoStatus.Information = 0;
+ 
+   IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ 
+}
+ 
+ 
+QUEUE_BOLIERPLATE
+{
+   Lock(theLock);
+ 
+   Irp->Tail.Overlay.DriverContext[3] = &theLock;
+ 
+   IoSetCancelRoutine(Irp, CancelRoutine);
+   if (Irp->Cancel && IoSetCancelRoutine(Irp, NULL))
+   {              
+      /*
+      Irp has already been cancelled (before we got to queue it),
+      and we got to remove the cancel routine before the canceler could, 
+      so we cancel/complete the irp ourself.
+      */
+      
+      Unlock(theLock);
+ 
+      Irp->IoStatus.Status = STATUS_CANCELLED;
+      Irp->IoStatus.Information = 0;
+      IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ 
+      return FALSE;
+   }
+ 
+   //else were ok   
+ 
+ 
+   Irp->IoStatus.Status = STATUS_PENDING;
+   IoMarkIrpPending(Irp);
+ 
+   InsertTailList(Queue);
+   
+   Unlock(theLock);
+ 
+}
+ 
+ 
+DEQUEUE_BOILERPLATE
+{
+   Lock(theLock);
+ 
+   Irp = RemoveHeadList(Queue);
+ 
+   if (!IoSetCancelRoutine(Irp, NULL))
+   {
+      /*
+      Cancel routine WILL be called after we release the spinlock. It will try to remove 
+      the irp from the list and cancel/complete this irp. Since we allready removed it, 
+      make its ListEntry point to itself.
+      */
+ 
+      InitializeListHead(&Irp->Tail.Overlay.ListEntry);
+      
+      Unlock(theLock);
+      
+      return;
+   } 
+ 
+ 
+   /*
+   Cancel routine will NOT be called, canceled or not.
+   The Irp might have been canceled (Irp->Cancel flag set) but we don't care,
+   since we are to complete this Irp now anyways.
+   */
+ 
+   Unlock(theLock);
+ 
+   Irp->IoStatus.Status = STATUS_SUCCESS;
+   Irp->IoStatus.Information = 0;
+   IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ 
+}

Modified: branches/cache_manager_rewrite/reactos/drivers/bus/acpi/ospm/fdo.c
--- branches/cache_manager_rewrite/reactos/drivers/bus/acpi/ospm/fdo.c	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/drivers/bus/acpi/ospm/fdo.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -60,12 +60,7 @@
            L"ACPI\\%S",
            Node->device.id.hid);
 
-  if (!AcpiCreateUnicodeString(DeviceID, Buffer, PagedPool))
-  {
-    return FALSE;
-  }
-
-  return TRUE;
+  return AcpiCreateUnicodeString(DeviceID, Buffer, PagedPool);
 }
 
 
@@ -108,8 +103,15 @@
 AcpiCreateInstanceIDString(PUNICODE_STRING InstanceID,
                            BM_NODE *Node)
 {
-  /* FIXME: Create unique instnce id. */
-  return AcpiCreateUnicodeString(InstanceID, L"0000", PagedPool);
+  WCHAR Buffer[10];
+
+  if (Node->device.id.uid[0])
+    swprintf(Buffer, L"%S", Node->device.id.uid);
+  else
+    /* FIXME: Generate unique id! */
+    swprintf(Buffer, L"0000");
+
+  return AcpiCreateUnicodeString(InstanceID, Buffer, PagedPool);
 }
 
 
@@ -126,7 +128,7 @@
   ANSI_STRING AnsiString;
   ACPI_STATUS AcpiStatus;
   PACPI_DEVICE Device;
-  NTSTATUS Status;
+  NTSTATUS Status = STATUS_SUCCESS;
   BM_NODE *Node;
   ULONG Size;
   ULONG i;

Modified: branches/cache_manager_rewrite/reactos/drivers/bus/acpi/ospm/osl.c
--- branches/cache_manager_rewrite/reactos/drivers/bus/acpi/ospm/osl.c	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/drivers/bus/acpi/ospm/osl.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -601,5 +601,5 @@
 u32
 acpi_os_get_thread_id (void)
 {
-  return (ULONG)PsGetCurrentThreadId();
+  return (ULONG)PsGetCurrentThreadId() + 1;
 }

Modified: branches/cache_manager_rewrite/reactos/drivers/bus/acpi/tables/tbget.c
--- branches/cache_manager_rewrite/reactos/drivers/bus/acpi/tables/tbget.c	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/drivers/bus/acpi/tables/tbget.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -503,7 +503,7 @@
 		REPORT_ERROR (("Invalid signature where RSDP indicates %s should be located\n",
 				  table_signature));
 
-		return (status);
+		return (AE_NO_ACPI_TABLES);
 	}
 
 

Modified: branches/cache_manager_rewrite/reactos/drivers/bus/acpi/utils/cmglobal.c
--- branches/cache_manager_rewrite/reactos/drivers/bus/acpi/utils/cmglobal.c	2005-03-22 20:16:41 UTC (rev 14271)
+++ branches/cache_manager_rewrite/reactos/drivers/bus/acpi/utils/cmglobal.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -389,6 +389,7 @@
 		acpi_gbl_acpi_mutex_info[i].mutex   = NULL;
 		acpi_gbl_acpi_mutex_info[i].locked  = FALSE;
 		acpi_gbl_acpi_mutex_info[i].use_count = 0;
+		acpi_gbl_acpi_mutex_info[i].owner_id = 0;
 	}
 
 	/* Global notify handlers */

Copied: branches/cache_manager_rewrite/reactos/drivers/dd/serial/circularbuffer.c (from rev 14180, trunk/reactos/drivers/dd/serial/circularbuffer.c)

Copied: branches/cache_manager_rewrite/reactos/drivers/dd/serial/cleanup.c (from rev 14080, trunk/reactos/drivers/dd/serial/cleanup.c)
--- trunk/reactos/drivers/dd/serial/cleanup.c	2005-03-14 22:38:12 UTC (rev 14080)
+++ branches/cache_manager_rewrite/reactos/drivers/dd/serial/cleanup.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -0,0 +1,24 @@
+/* $Id:
+ * 
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS kernel
+ * FILE:            drivers/dd/serial/cleanup.c
+ * PURPOSE:         Serial IRP_MJ_CLEANUP operations
+ * 
+ * PROGRAMMERS:     HervÚ Poussineau (poussine@freesurf.fr)
+ */
+
+#define NDEBUG
+#include "serial.h"
+
+NTSTATUS STDCALL
+SerialCleanup(
+	IN PDEVICE_OBJECT DeviceObject,
+	IN PIRP Irp)
+{
+	DPRINT("Serial: IRP_MJ_CLEANUP\n");
+	Irp->IoStatus.Information = 0;
+	Irp->IoStatus.Status = STATUS_SUCCESS;
+	IoCompleteRequest(Irp, IO_NO_INCREMENT);
+	return STATUS_SUCCESS;
+}
Property changes on: branches/cache_manager_rewrite/reactos/drivers/dd/serial/cleanup.c
___________________________________________________________________
Name: svn:eol-style
   + native

Copied: branches/cache_manager_rewrite/reactos/drivers/dd/serial/close.c (from rev 14080, trunk/reactos/drivers/dd/serial/close.c)
--- trunk/reactos/drivers/dd/serial/close.c	2005-03-14 22:38:12 UTC (rev 14080)
+++ branches/cache_manager_rewrite/reactos/drivers/dd/serial/close.c	2005-03-22 20:15:04 UTC (rev 14272)
@@ -0,0 +1,29 @@
+/* $Id:
+ * 
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS kernel
+ * FILE:            drivers/dd/serial/close.c
+ * PURPOSE:         Serial IRP_MJ_CLOSE operations
+ * 
+ * PROGRAMMERS:     HervÚ Poussineau (poussine@freesurf.fr)
+ */
+
+#define NDEBUG
[truncated at 1000 lines; 142972 more skipped]