ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
February 2005
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
23 participants
411 discussions
Start a n
N
ew thread
[hbirr] 13756: Merge 13543:13754 from trunk.
by hbirr@svn.reactos.com
Merge 13543:13754 from trunk. Modified: branches/cache_manager_rewrite/reactos/Makefile Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/multiboot.c Modified: branches/cache_manager_rewrite/reactos/bootdata/hivesys.inf Modified: branches/cache_manager_rewrite/reactos/bootdata/packages/reactos.dff Modified: branches/cache_manager_rewrite/reactos/bootdata/txtsetup.sif Modified: branches/cache_manager_rewrite/reactos/doc/README.WINE Modified: branches/cache_manager_rewrite/reactos/drivers/fs/cdfs/fcb.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/ntfs/fcb.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/blockdev.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/create.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/dir.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/dirwr.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/fcb.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/fsctl.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/rw.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/shutdown.c Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/vfat.h Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/volume.c Modified: branches/cache_manager_rewrite/reactos/drivers/lib/ip/transport/tcp/even t.c Modified: branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/oskittcp/int erface.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/ndis/ndis/miniport.c Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/tcpip/fileobjs. c Modified: branches/cache_manager_rewrite/reactos/drivers/storage/atapi/atapi.c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/Makefile Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/core/hcd-pci .c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/core/hcd.h Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/core/hub.c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/core/makefil e Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/core/message .c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/core/usb.c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/core/usbcore .c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/core/usbcore .def Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/host/makefil e Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/host/ohci-hc d.c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/host/ohci-pc i.c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/host/ohci.h Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/host/ohci_ma in.c Added: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/host/ohci_ma in.h Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/linux/linux_ wrapper.h Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/linux/pci_ha l.c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/linux/pci_id s.h Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/sys/linuxwra pper.c Modified: branches/cache_manager_rewrite/reactos/drivers/usb/cromwell/usb_wrapper. h Modified: branches/cache_manager_rewrite/reactos/hal/hal/hal.c Modified: branches/cache_manager_rewrite/reactos/hal/halx86/generic/timer.c Modified: branches/cache_manager_rewrite/reactos/include/base.h Modified: branches/cache_manager_rewrite/reactos/include/ddk/csq.h Modified: branches/cache_manager_rewrite/reactos/include/ddk/extypes.h Modified: branches/cache_manager_rewrite/reactos/include/ddk/psfuncs.h Modified: branches/cache_manager_rewrite/reactos/include/ddk/types.h Added: branches/cache_manager_rewrite/reactos/include/expat/ Added: branches/cache_manager_rewrite/reactos/include/lsass/lsasrv.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/alloc.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/assert.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/conio.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/ctype.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/dir.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/direct.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/errno.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/fcntl.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/float.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/internal/ Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/io.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/locale.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/malloc.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/math.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/mbctype.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/mbstring.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/msvcrtdbg.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/process.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/search.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/share.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/signal.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/stdarg.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/stddef.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/stdio.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/stdlib.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/string.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/sys/ Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/time.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/wchar.h Deleted: branches/cache_manager_rewrite/reactos/include/msvcrt/wine/ Modified: branches/cache_manager_rewrite/reactos/include/napi/teb.h Modified: branches/cache_manager_rewrite/reactos/include/ntdll/ntdll.h Modified: branches/cache_manager_rewrite/reactos/include/ntdll/rtl.h Modified: branches/cache_manager_rewrite/reactos/include/ntos/zw.h Modified: branches/cache_manager_rewrite/reactos/include/sm/api.h Modified: branches/cache_manager_rewrite/reactos/include/sm/helper.h Modified: branches/cache_manager_rewrite/reactos/include/tchar.h Modified: branches/cache_manager_rewrite/reactos/include/win32k/gdiobj.h Modified: branches/cache_manager_rewrite/reactos/include/win32k/ntuser.h Added: branches/cache_manager_rewrite/reactos/include/wine/cfgmgr32.h Modified: branches/cache_manager_rewrite/reactos/include/wine/mmsystem.h Modified: branches/cache_manager_rewrite/reactos/include/wine/rpcfc.h Modified: branches/cache_manager_rewrite/reactos/include/wine/unicode.h Modified: branches/cache_manager_rewrite/reactos/lib/comdlg32/Makefile.ros-templat e Added: branches/cache_manager_rewrite/reactos/lib/cpl/desk/de.rc Modified: branches/cache_manager_rewrite/reactos/lib/cpl/desk/desk.rc [truncated at 100 lines; 717 more skipped] _____ Modified: branches/cache_manager_rewrite/reactos/Makefile --- branches/cache_manager_rewrite/reactos/Makefile 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/Makefile 2005-02-26 17:47:14 UTC (rev 13756) @@ -41,6 +41,9 @@ # vfatlib LIB_FSLIB = vfatlib +# libunicode, must be empty! +LIBUNICODE = + # Static libraries LIB_STATIC = string rosrtl epsapi uuid libwine zlib rtl tgetopt pseh adns dxguid strmiids crt rossym wdmguid @@ -59,8 +62,8 @@ 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 unicode user32 userenv version wininet winmm winspool ws2help ws2_32 wsock32 wshirda dnsapi \ - urlmon shdocvw dinput dinput8 dxdiagn devenum dsound $(DLLS_KBD) $(DLLS_CPL) $(DLLS_SHELLEXT) + 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 @@ -102,7 +105,7 @@ # 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 \ - winlogon regedit winefile notepad reactos + winlogon regedit winefile notepad reactos lsass # System services SYS_SVC = rpcss eventlog umpnpmgr @@ -980,8 +983,6 @@ $(RM) $(INSTALL_DIR)/system32/config/*.* $(HALFVERBOSEECHO) [RM] $(INSTALL_DIR)/system32/*.* $(RM) $(INSTALL_DIR)/system32/*.* - $(HALFVERBOSEECHO) [RM] $(INSTALL_DIR)/symbols/*.* - $(RM) $(INSTALL_DIR)/symbols/*.* $(HALFVERBOSEECHO) [RM] $(INSTALL_DIR)/media/fonts/*.* $(RM) $(INSTALL_DIR)/media/fonts/*.* $(HALFVERBOSEECHO) [RM] $(INSTALL_DIR)/media/*.* @@ -996,8 +997,6 @@ $(RMDIR) $(INSTALL_DIR)/system32/config $(HALFVERBOSEECHO) [RMDIR] $(INSTALL_DIR)/system32 $(RMDIR) $(INSTALL_DIR)/system32 - $(HALFVERBOSEECHO) [RMDIR] $(INSTALL_DIR)/symbols - $(RMDIR) $(INSTALL_DIR)/symbols $(HALFVERBOSEECHO) [RMDIR] $(INSTALL_DIR)/media/fonts $(RMDIR) $(INSTALL_DIR)/media/fonts $(HALFVERBOSEECHO) [RMDIR] $(INSTALL_DIR)/media @@ -1020,8 +1019,6 @@ $(RMKDIR) $(INSTALL_DIR)/media $(HALFVERBOSEECHO) [RMKDIR] $(INSTALL_DIR)/media/fonts $(RMKDIR) $(INSTALL_DIR)/media/fonts - $(HALFVERBOSEECHO) [RMKDIR] $(INSTALL_DIR)/symbols - $(RMKDIR) $(INSTALL_DIR)/symbols $(HALFVERBOSEECHO) [RMKDIR] $(INSTALL_DIR)/system32 $(RMKDIR) $(INSTALL_DIR)/system32 $(HALFVERBOSEECHO) [RMKDIR] $(INSTALL_DIR)/system32/config _____ Modified: branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/multiboot.c --- branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/multiboot.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/boot/freeldr/freeldr/multiboot.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -4,7 +4,7 @@ * FILE: boot/freeldr/freeldr/multiboot.c * PURPOSE: ReactOS Loader * PROGRAMMERS: Alex Ionescu (alex(a)relsoft.net) - * Hartmutt Birr - SMP/PAE Code + * Hartmut Birr - SMP/PAE Code */ #include <freeldr.h> @@ -54,7 +54,7 @@ #define ApicPageTableIndexPae (APIC_BASE >> 21) -#define KernelEntryPoint (KernelEntry - KERNEL_BASE_PHYS) + KernelBase +#define KernelEntryPoint (KernelEntry - KERNEL_BASE_PHYS) + KernelBase /* Load Address of Next Module */ ULONG_PTR NextModuleBase = 0; @@ -217,7 +217,7 @@ /* Jump to Kernel */ PagedJump = (ASMCODE)KernelEntryPoint; PagedJump(Magic, &LoaderBlock); - } +} /*++ * FrLdrGetKernelBase @@ -239,27 +239,24 @@ FASTCALL FrLdrGetKernelBase(VOID) { - PCHAR p1; - PCHAR p2; + PCHAR p; /* Read Command Line */ - for(p1 = (PCHAR)&LoaderBlock.CommandLine; *p1 && (p2 = strchr(p1, '/')); p2++) { + p = (PCHAR)LoaderBlock.CommandLine; + while ((p = strchr(p, '/')) != NULL) { /* Find "/3GB" */ - if (!strnicmp(p2, "3GB", 3)) { + if (!strnicmp(p + 1, "3GB", 3)) { /* Make sure there's nothing following it */ - if (p2[3] == ' ' || p2[3] == 0) { + if (p[4] == ' ' || p[4] == 0) { /* Use 3GB */ KernelBase = 0xC0000000; - - } else { - - /* Use 2GB */ - KernelBase = 0x80000000; } } + + p++; } /* Set KernelBase */ _____ Modified: branches/cache_manager_rewrite/reactos/bootdata/hivesys.inf --- branches/cache_manager_rewrite/reactos/bootdata/hivesys.inf 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/bootdata/hivesys.inf 2005-02-26 17:47:14 UTC (rev 13756) @@ -254,6 +254,15 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management","PagingFiles",0x00010000, \ "C:\reactos\pagefile.sys" +; 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","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","Windows",0x00020000,"%SystemRoot%\system32\csrss.ex e" + ; 3Com 3c905 Driver HKLM,"SYSTEM\CurrentControlSet\Services\3c90x","ErrorControl",0x00010001 ,0x00000000 HKLM,"SYSTEM\CurrentControlSet\Services\3c90x","Group",0x00000000,"NDIS" _____ Modified: branches/cache_manager_rewrite/reactos/bootdata/packages/reactos.dff --- branches/cache_manager_rewrite/reactos/bootdata/packages/reactos.dff 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/bootdata/packages/reactos.dff 2005-02-26 17:47:14 UTC (rev 13756) @@ -74,7 +74,6 @@ lib\dinput8\dinput8.dll 1 lib\dsound\dsound.dll 1 lib\dxdiagn\dxdiagn.dll 1 -lib\expat\expat.dll 1 lib\fmifs\fmifs.dll 1 lib\freetype\freetype.dll 1 lib\gdi32\gdi32.dll 1 @@ -97,6 +96,7 @@ lib\midimap\midimap.dll 1 lib\mmdrv\mmdrv.dll 1 lib\mpr\mpr.dll 1 +lib\msacm\msacm32.dll 1 lib\msafd\msafd.dll 1 lib\msgina\msgina.dll 1 lib\msimg32\msimg32.dll 1 @@ -120,7 +120,6 @@ lib\syssetup\syssetup.dll 1 lib\twain\twain_32.dll 1 lib\urlmon\urlmon.dll 1 -lib\unicode\wine_unicode.dll 1 lib\user32\user32.dll 1 lib\userenv\userenv.dll 1 lib\version\version.dll 1 _____ Modified: branches/cache_manager_rewrite/reactos/bootdata/txtsetup.sif --- branches/cache_manager_rewrite/reactos/bootdata/txtsetup.sif 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/bootdata/txtsetup.sif 2005-02-26 17:47:14 UTC (rev 13756) @@ -22,7 +22,6 @@ class2.sys = 3 disk.sys = 3 floppy.sys = 3 -hal.dll = 2 keyboard.sys = 3 l_intl.nls = 2 ntfs.sys = 3 @@ -48,7 +47,16 @@ [Computer] pci_up = "Standard-PC" +pci_mp = "Standard-PC Multiprocessor" +[Files.pci_up] +; <filename> = <directory_id>,<new name> +hal.dll = 2 + +[Files.pci_mp] +; <filename> = <directory_id>,<new name> +halmp.dll = 2,hal.dll + [Display] ;<id> = <user friendly name>,<spare>,<service key name> vga = "VGA Display",,Vga _____ Modified: branches/cache_manager_rewrite/reactos/doc/README.WINE --- branches/cache_manager_rewrite/reactos/doc/README.WINE 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/doc/README.WINE 2005-02-26 17:47:14 UTC (rev 13756) @@ -10,8 +10,8 @@ If you find that a function in ReactOS that is not implemented properly and is based on WINE sources, check the latest Winehq CVS and see if it has been fixed there. If so, please submit a patch to -ros-kernel(a)reactos.com. Otherwise please send a patch to both -wine-patches(a)winehq.com and ros-kernel(a)reactos.com +ros-dev(a)reactos.com. Otherwise please send a patch to both +wine-patches(a)winehq.com and ros-dev(a)reactos.com When porting a dll from WINE to ReactOS please take a look at how comctl32 has been imported. We start by creating a makefile that has @@ -26,51 +26,52 @@ work to import a new dll. The following build tools are derived from Wine. -reactos/tools/makedep # fast dependancy tool reactos/tools/bin2res # Resource to binary converter -reactos/tools/winebuild # Wine Build tool for Creating *.def files +reactos/tools/winebuild # Synced to Wine-20050211 reactos/tools/wmc # Wine Message Compiler +reactos/tools/wrc # Synced to Wine-20050211 - The following shared libraries are a 100% port from Winehq sources. -reactos/lib/cabinet # Synced to Wine-20050111 -reactos/lib/comctl32 # Synced to Wine-20050111 -reactos/lib/comdlg32 # Synced to Wine-20050111 -reactos/lib/dinput # Synced to Wine-20050111 -reactos/lib/dinput8 # Synced to Wine-20050111 -reactos/lib/icmp # Synced to Wine-20050111 +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/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-20050111 +reactos/lib/mpr # Synced to Wine-20050211 reactos/lib/msacm # Out of sync -reactos/lib/msi # Synced to Wine-20050111 +reactos/lib/msimg32 # Synced to Wine-20050211 +reactos/lib/msi # Synced to Wine-20050211 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-20050111 -reactos/lib/oleaut32 # Synced to Wine-20050111 -reactos/lib/oledlg # Synced to Wine-20050111 -reactos/lib/olepro32 # Synced to Wine-20050111 -reactos/lib/richedit # Synced to Wine-20050111 -reactos/lib/rpcrt4 # Synced to Wine-20050111 +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-20050111 -reactos/lib/shdocvw # Synced to Wine-20050111 -reactos/lib/shlwapi # Synced to Wine-20050111 +reactos/lib/shell32 # Synced to Wine-20050211 +reactos/lib/shdocvw # Synced to Wine-20050211 +reactos/lib/shlwapi # Synced to Wine-20050211 reactos/lib/twain # Out of sync -reactos/lib/unicode # Dependancy on this lib needs to be removed. Synced to Wine-20050111 -reactos/lib/urlmon # Synced to Wine-20050111 +reactos/lib/unicode # Dependancy on this lib needs to be removed. Synced to Wine-20050211 +reactos/lib/urlmon # Synced to Wine-20050211 reactos/lib/version # Out of sync reactos/lib/wininet # Out of sync -reactos/lib/winmm # Synced to Wine-20050111 -reactos/lib/winmm/midimap # Synced to Wine-20050111 -reactos/lib/winmm/wavemap # Synced to Wine-20050111 +reactos/lib/winmm # Synced to Wine-20050211 +reactos/lib/winmm/midimap # Synced to Wine-20050211 +reactos/lib/winmm/wavemap # Synced to Wine-20050211 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 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 @@ -80,7 +81,7 @@ reactos/lib/uuid # advapi32 - - reactos/lib/advapi32/crypyto/*.c # Synced to Wine-20041201 + reactos/lib/advapi32/crypt/*.c # ekohl says we're not sharing this gdi32 - reactos/lib/gdi32/objects/linedda.c # Out of sync @@ -100,3 +101,31 @@ reactos/lib/user32/misc/wsprintf.c # Out of sync reactos/lib/user32/windows/mdi.c # Out of sync +- Cd to the parent directory of your top-level "reactos" directory +- Check out the Wine release: "cvs -d :pserver:cvs@cvs.winehq.com:2401/home/wine co wine -r Wine-20050211" +- Create "vendor" directory (as a sibling of your top-level "reactos" directory) +- Cd to the vendor dir and check out the current vendor drop: + "svn co
svn://svn.reactos.com/vendor/wine
". +- For each component shared with Wine (e.g. cabinet): + "del vendor\wine\dlls\cabinet\current\*" + "copy wine\dlls\cabinet vendor\wine\dlls\cabinet\current" + "del vendor\wine\dlls\cabinet\current\.cvsignore" + Check svn status, svn add/delete files as needed + Tag new Wine release "svn copy vendor\wine\dlls\cabinet\current vendor\wine\dlls\cabinet\Wine-20050211" +- Commit the vendor drop: svn commit vendor\wine -m "Wine-20050211 vendor drop" +- Determine the revision number of the last Wine tag by looking at
http://svn.reactos.com/viewcvs/tags/
+ and finding the last Wine-yyyymmdd-sync tag, e.g. Wine-20050111-sync had rev 13007 +- For each component shared with Wine (e.g. cabinet): +- "cd reactos\lib\cabinet" +- Check for changes in the ReactOS tree: "svn diff -r 13007" (13007 is the revno of the previous sync). + If any changes are found, see if they're present in the Wine code. If not, submit to WineHQ + if apropriate. +- Merge in Wine changes: + "svn merge
svn://svn.reactos.com/vendor/wine/dlls/cabinet/Wine-20050111
+
svn://svn.reactos.com/vendor/wine/dlls/cabinet/current
" +- Fix any merge conflicts +- Build and test (building will sometimes require adjusting header files) +- Check which files were changed: "svn status" +- For each of the changed files, get the WineHQ CVS log. Copy author and CVS commit message into a + commit log +- Commit changed files "svn commit" using generated commit log as commit message _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/cdfs/fcb.c --- branches/cache_manager_rewrite/reactos/drivers/fs/cdfs/fcb.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/cdfs/fcb.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -250,6 +250,7 @@ KEBUGCHECK(0); } #else + Status = STATUS_SUCCESS; CcInitializeCacheMap(FileObject, (PCC_FILE_SIZES)(&Fcb->RFCB.AllocationSize), FALSE, _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/ntfs/fcb.c --- branches/cache_manager_rewrite/reactos/drivers/fs/ntfs/fcb.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/ntfs/fcb.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -254,6 +254,7 @@ KEBUGCHECK(0); } #else + Status = STATUS_SUCCESS; CcInitializeCacheMap(FileObject, (PCC_FILE_SIZES)(&Fcb->RFCB.AllocationSize), FALSE, _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/blockdev.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/blockdev.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/blockdev.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -15,7 +15,7 @@ /* FUNCTIONS ***************************************************************/ -NTSTATUS STDCALL +static NTSTATUS STDCALL VfatReadWritePartialCompletion (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) @@ -272,9 +272,9 @@ NTSTATUS VfatBlockDeviceIoControl (IN PDEVICE_OBJECT DeviceObject, IN ULONG CtlCode, - IN PVOID InputBuffer, + IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferSize, - IN OUT PVOID OutputBuffer, + IN OUT PVOID OutputBuffer OPTIONAL, IN OUT PULONG OutputBufferSize, IN BOOLEAN Override) { _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/create.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/create.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/create.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -186,7 +186,7 @@ */ { PWCHAR PathNameBuffer; - ULONG PathNameBufferLength; + USHORT PathNameBufferLength; NTSTATUS Status; PVOID Context = NULL; PVOID Page; _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/dir.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/dir.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/dir.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -33,7 +33,7 @@ TimeFields.Day = pddate->Day; TimeFields.Month = pddate->Month; - TimeFields.Year = DeviceExt->BaseDateYear + pddate->Year; + TimeFields.Year = (CSHORT)(DeviceExt->BaseDateYear + pddate->Year); RtlTimeFieldsToTime (&TimeFields, &LocalTime); ExLocalTimeToSystemTime(&LocalTime, SystemTime); @@ -261,7 +261,7 @@ pInfo->NextEntryOffset = ULONG_ROUND_UP (sizeof (FILE_BOTH_DIR_INFORMATION) + DirContext->LongNameU.Length); RtlCopyMemory(pInfo->ShortName, DirContext->ShortNameU.Buffer, DirContext->ShortNameU.Length); - pInfo->ShortNameLength = DirContext->ShortNameU.Length; + pInfo->ShortNameLength = (CCHAR)DirContext->ShortNameU.Length; RtlCopyMemory (pInfo->FileName, DirContext->LongNameU.Buffer, DirContext->LongNameU.Length); // pInfo->FileIndex=; FsdDosDateTimeToSystemTime (DeviceExt, DirContext->DirEntry.Fat.CreationDate, _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/dirwr.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/dirwr.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/dirwr.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -45,7 +45,7 @@ return STATUS_SUCCESS; } - ASSERT (pFcb->parrentFcb); + ASSERT (pFcb->parentFcb); Offset.u.HighPart = 0; Offset.u.LowPart = dirIndex * SizeDirEntry; _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/fcb.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/fcb.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/fcb.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -72,7 +72,7 @@ VOID vfatInitFcb(PVFATFCB Fcb, PUNICODE_STRING NameU) { - ULONG PathNameBufferLength; + USHORT PathNameBufferLength; if (NameU) PathNameBufferLength = NameU->Length + sizeof(WCHAR); @@ -460,7 +460,7 @@ { PVFATFCB rcFCB; PWCHAR PathNameBuffer; - ULONG PathNameLength; + USHORT PathNameLength; ULONG Size; ULONG hash; @@ -583,7 +583,7 @@ fileObject->SectionObjectPointer = &fcb->SectionObjectPointers; fileObject->FsContext = fcb; fileObject->FsContext2 = newCCB; - DPRINT ("file open: fcb:%x PathName:%wZ file size: %d\n", fcb, &fcb->PathNameU, fcb->entry.FileSize); + DPRINT ("file open: fcb:%x PathName:%wZ\n", fcb, &fcb->PathNameU); return STATUS_SUCCESS; } _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/fsctl.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/fsctl.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/fsctl.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -109,8 +109,8 @@ } else if (DiskGeometry.MediaType == RemovableMedia && PartitionInfo.PartitionNumber > 0 && - PartitionInfo.StartingOffset.QuadPart == 0LL && - PartitionInfo.PartitionLength.QuadPart > 0LL) + PartitionInfo.StartingOffset.QuadPart == 0 && + PartitionInfo.PartitionLength.QuadPart > 0) { /* This is possible a removable media formated as super floppy */ *RecognizedFS = TRUE; @@ -298,7 +298,7 @@ FatInfo.SectorsPerCluster = BootFatX->SectorsPerCluster; FatInfo.rootDirectorySectors = BootFatX->SectorsPerCluster; FatInfo.BytesPerCluster = BootFatX->SectorsPerCluster * DiskGeometry.BytesPerSector; - FatInfo.Sectors = PartitionInfo.PartitionLength.QuadPart / DiskGeometry.BytesPerSector; + FatInfo.Sectors = (ULONG)(PartitionInfo.PartitionLength.QuadPart / DiskGeometry.BytesPerSector); if (FatInfo.Sectors / FatInfo.SectorsPerCluster < 65525) { DPRINT("FATX16\n"); _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/rw.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/rw.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/rw.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -12,13 +12,7 @@ /* INCLUDES *****************************************************************/ -#include <ddk/ntddk.h> -#include <wchar.h> -#include <ntos/minmax.h> - #define NDEBUG -#include <debug.h> - #include "vfat.h" /* @@ -728,7 +722,7 @@ { DPRINT("VfatReadFile returned STATUS_VERIFY_REQUIRED\n"); DeviceToVerify = IoGetDeviceToVerify(PsGetCurrentThread()); - IoSetDeviceToVerify(PsGetCurrentThread(), NULL); + IoSetDeviceToVerify(PsGetCurrentThread(), DeviceToVerify); Status = IoVerifyVolume (DeviceToVerify, FALSE); if (NT_SUCCESS(Status)) _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/shutdown.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/shutdown.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/shutdown.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -14,6 +14,34 @@ /* FUNCTIONS ****************************************************************/ +NTSTATUS +VfatDiskShutDown(PVCB Vcb) +{ + PIRP Irp; + KEVENT Event; + NTSTATUS Status; + IO_STATUS_BLOCK IoStatus; + + KeInitializeEvent(&Event, NotificationEvent, FALSE); + Irp = IoBuildSynchronousFsdRequest(IRP_MJ_SHUTDOWN, Vcb->StorageDevice, + NULL, 0, NULL, &Event, &IoStatus); + if (Irp) + { + Status = IoCallDriver(Vcb->StorageDevice, Irp); + if (Status == STATUS_PENDING) + { + KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); + Status = IoStatus.Status; + } + } + else + { + Status = IoStatus.Status; + } + + return Status; +} + NTSTATUS STDCALL VfatShutdown(PDEVICE_OBJECT DeviceObject, PIRP Irp) { @@ -37,15 +65,24 @@ ExAcquireResourceExclusiveLite(&DeviceExt->DirResource, TRUE); Status = VfatFlushVolume(DeviceExt, DeviceExt->VolumeFcb); - ExReleaseResourceLite(&DeviceExt->DirResource); - if (!NT_SUCCESS(Status)) - { + if (NT_SUCCESS(Status)) + { + Status = VfatDiskShutDown(DeviceExt); + if (!NT_SUCCESS(Status)) + DPRINT1("VfatDiskShutDown failed, status = %x\n", Status); + } + else + { DPRINT1("VfatFlushVolume failed, status = %x\n", Status); - Irp->IoStatus.Status = Status; } + ExReleaseResourceLite(&DeviceExt->DirResource); + /* FIXME: Unmount the logical volume */ + + if (!NT_SUCCESS(Status)) + Irp->IoStatus.Status = Status; } - ExReleaseResourceLite(&VfatGlobalData->VolumeListLock); + ExReleaseResourceLite(&VfatGlobalData->VolumeListLock); /* FIXME: Free all global acquired resources */ @@ -53,13 +90,13 @@ } else { + Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; Status = STATUS_INVALID_DEVICE_REQUEST; } - Irp->IoStatus.Status = Status; Irp->IoStatus.Information = 0; + IoCompleteRequest(Irp, IO_NO_INCREMENT); - IoCompleteRequest(Irp, IO_NO_INCREMENT); return(Status); } _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/vfat.h --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/vfat.h 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/vfat.h 2005-02-26 17:47:14 UTC (rev 13756) @@ -36,6 +36,7 @@ #define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S)) #define ROUND_DOWN(N, S) ((N) - ((N) % (S))) +#include <pshpack1.h> struct _BootSector { unsigned char magic0, res0, magic1; @@ -53,7 +54,7 @@ unsigned char VolumeLabel[11], SysType[8]; unsigned char Res2[448]; unsigned short Signatur1; -} __attribute__((packed)); +}; struct _BootSector32 { @@ -81,7 +82,7 @@ unsigned char VolumeLabel[11], SysType[8]; // 71 unsigned char Res2[420]; // 90 unsigned short Signature1; // 510 -} __attribute__((packed)); +}; struct _BootSectorFatX { @@ -91,7 +92,7 @@ unsigned short FATCount; // 12 unsigned long Unknown; // 14 unsigned char Unused[4078]; // 18 -} __attribute__((packed)); +}; struct _FsInfoSector { @@ -102,35 +103,17 @@ unsigned long NextCluster; // 492 unsigned char Res7[12]; // 496 unsigned long Signatur2; // 508 -} __attribute__((packed)); +}; typedef struct _BootSector BootSector; -#define VFAT_CASE_LOWER_BASE 8 // base is lower case -#define VFAT_CASE_LOWER_EXT 16 // extension is lower case - -#define LONGNAME_MAX_LENGTH 256 // max length for a long filename - -#define ENTRY_DELETED(DeviceExt, DirEntry) ((DeviceExt)->Flags & VCB_IS_FATX ? FATX_ENTRY_DELETED(&((DirEntry)->FatX)) : FAT_ENTRY_DELETED(&((DirEntry)->Fat))) -#define ENTRY_VOLUME(DeviceExt, DirEntry) ((DeviceExt)->Flags & VCB_IS_FATX ? FATX_ENTRY_VOLUME(&((DirEntry)->FatX)) : FAT_ENTRY_VOLUME(&((DirEntry)->Fat))) -#define ENTRY_END(DeviceExt, DirEntry) ((DeviceExt)->Flags & VCB_IS_FATX ? FATX_ENTRY_END(&((DirEntry)->FatX)) : FAT_ENTRY_END(&((DirEntry)->Fat))) - -#define FAT_ENTRY_DELETED(DirEntry) ((DirEntry)->Filename[0] == 0xe5) -#define FAT_ENTRY_END(DirEntry) ((DirEntry)->Filename[0] == 0) -#define FAT_ENTRY_LONG(DirEntry) (((DirEntry)->Attrib & 0x3f) == 0x0f) -#define FAT_ENTRY_VOLUME(DirEntry) (((DirEntry)->Attrib & 0x1f) == 0x08) - -#define FATX_ENTRY_DELETED(DirEntry) ((DirEntry)->FilenameLength == 0xe5) -#define FATX_ENTRY_END(DirEntry) ((DirEntry)->FilenameLength == 0xff) -#define FATX_ENTRY_LONG(DirEntry) (FALSE) -#define FATX_ENTRY_VOLUME(DirEntry) (((DirEntry)->Attrib & 0x1f) == 0x08) - -#define FAT_ENTRIES_PER_PAGE (PAGE_SIZE / sizeof (FAT_DIR_ENTRY)) -#define FATX_ENTRIES_PER_PAGE (PAGE_SIZE / sizeof (FATX_DIR_ENTRY)) - struct _FATDirEntry { - unsigned char Filename[8], Ext[3]; + union + { + struct { unsigned char Filename[8], Ext[3]; }; + unsigned char ShortName[11]; + }; unsigned char Attrib; unsigned char lCase; unsigned char CreationTimeMs; @@ -140,7 +123,7 @@ unsigned short UpdateDate; //date create/update unsigned short FirstCluster; unsigned long FileSize; -} __attribute__((packed)); +}; typedef struct _FATDirEntry FAT_DIR_ENTRY, *PFAT_DIR_ENTRY; @@ -157,18 +140,8 @@ unsigned short CreationDate; // 58 unsigned short AccessTime; // 60 unsigned short AccessDate; // 62 -} __attribute__((packed)); - -typedef struct _FATXDirEntry FATX_DIR_ENTRY, *PFATX_DIR_ENTRY; - -union _DIR_ENTRY -{ - FAT_DIR_ENTRY Fat; - FATX_DIR_ENTRY FatX; }; -typedef union _DIR_ENTRY DIR_ENTRY, *PDIR_ENTRY; - struct _slot { unsigned char id; // sequence number for slot @@ -179,11 +152,44 @@ WCHAR name5_10[6]; // 6 more characters in name unsigned char start[2]; // starting cluster number WCHAR name11_12[2]; // last 2 characters in name -} __attribute__((packed)); +}; - typedef struct _slot slot; +#include <poppack.h> + +#define VFAT_CASE_LOWER_BASE 8 // base is lower case +#define VFAT_CASE_LOWER_EXT 16 // extension is lower case + +#define LONGNAME_MAX_LENGTH 256 // max length for a long filename + +#define ENTRY_DELETED(DeviceExt, DirEntry) ((DeviceExt)->Flags & VCB_IS_FATX ? FATX_ENTRY_DELETED(&((DirEntry)->FatX)) : FAT_ENTRY_DELETED(&((DirEntry)->Fat))) +#define ENTRY_VOLUME(DeviceExt, DirEntry) ((DeviceExt)->Flags & VCB_IS_FATX ? FATX_ENTRY_VOLUME(&((DirEntry)->FatX)) : FAT_ENTRY_VOLUME(&((DirEntry)->Fat))) +#define ENTRY_END(DeviceExt, DirEntry) ((DeviceExt)->Flags & VCB_IS_FATX ? FATX_ENTRY_END(&((DirEntry)->FatX)) : FAT_ENTRY_END(&((DirEntry)->Fat))) + +#define FAT_ENTRY_DELETED(DirEntry) ((DirEntry)->Filename[0] == 0xe5) +#define FAT_ENTRY_END(DirEntry) ((DirEntry)->Filename[0] == 0) +#define FAT_ENTRY_LONG(DirEntry) (((DirEntry)->Attrib & 0x3f) == 0x0f) +#define FAT_ENTRY_VOLUME(DirEntry) (((DirEntry)->Attrib & 0x1f) == 0x08) + +#define FATX_ENTRY_DELETED(DirEntry) ((DirEntry)->FilenameLength == 0xe5) +#define FATX_ENTRY_END(DirEntry) ((DirEntry)->FilenameLength == 0xff) +#define FATX_ENTRY_LONG(DirEntry) (FALSE) +#define FATX_ENTRY_VOLUME(DirEntry) (((DirEntry)->Attrib & 0x1f) == 0x08) + +#define FAT_ENTRIES_PER_PAGE (PAGE_SIZE / sizeof (FAT_DIR_ENTRY)) +#define FATX_ENTRIES_PER_PAGE (PAGE_SIZE / sizeof (FATX_DIR_ENTRY)) + +typedef struct _FATXDirEntry FATX_DIR_ENTRY, *PFATX_DIR_ENTRY; + +union _DIR_ENTRY +{ + FAT_DIR_ENTRY Fat; + FATX_DIR_ENTRY FatX; +}; + +typedef union _DIR_ENTRY DIR_ENTRY, *PDIR_ENTRY; + #define BLOCKSIZE 512 #define FAT16 (1) _____ Modified: branches/cache_manager_rewrite/reactos/drivers/fs/vfat/volume.c --- branches/cache_manager_rewrite/reactos/drivers/fs/vfat/volume.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/fs/vfat/volume.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -204,7 +204,7 @@ LabelLen = FsLabelInfo->VolumeLabelLength / sizeof(WCHAR); RtlZeroMemory(&VolumeLabelDirEntry, SizeDirEntry); StringW.Buffer = FsLabelInfo->VolumeLabel; - StringW.Length = StringW.MaximumLength = FsLabelInfo->VolumeLabelLength; + StringW.Length = StringW.MaximumLength = (USHORT)FsLabelInfo->VolumeLabelLength; StringO.Buffer = cString; StringO.Length = 0; StringO.MaximumLength = 42; @@ -288,7 +288,7 @@ } /* Update volume label in memory */ - DeviceObject->Vpb->VolumeLabelLength = FsLabelInfo->VolumeLabelLength; + DeviceObject->Vpb->VolumeLabelLength = (USHORT)FsLabelInfo->VolumeLabelLength; RtlCopyMemory(DeviceObject->Vpb->VolumeLabel, FsLabelInfo->VolumeLabel, DeviceObject->Vpb->VolumeLabelLength); return Status; _____ Modified: branches/cache_manager_rewrite/reactos/drivers/lib/ip/transport/tcp/even t.c --- branches/cache_manager_rewrite/reactos/drivers/lib/ip/transport/tcp/even t.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/lib/ip/transport/tcp/even t.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -10,8 +10,6 @@ #include "precomp.h" -extern VOID DrainSignals(); - int TCPSocketState(void *ClientData, void *WhichSocket, void *WhichConnection, @@ -32,10 +30,9 @@ if( !Connection ) { TI_DbgPrint(DEBUG_TCP,("Socket closing.\n")); Connection = FileFindConnectionByContext( WhichSocket ); - if( !Connection ) { - TcpipRecursiveMutexLeave( &TCPLock ); + if( !Connection ) return 0; - } else + else TI_DbgPrint(DEBUG_TCP,("Found socket %x\n", Connection)); } _____ Modified: branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/oskittcp/int erface.c --- branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/oskittcp/int erface.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/lib/oskittcp/oskittcp/int erface.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -120,6 +120,9 @@ so->so_connection = context; so->so_state = SS_NBIO; so->so_error = 0; + so->so_q = so->so_q0 = NULL; + so->so_qlen = 0; + so->so_head = NULL; *aso = so; } return error; @@ -377,7 +380,6 @@ *newso = so; /*so->so_state &= ~SS_COMP;*/ - so->so_q = NULL; mnam.m_data = &sa; mnam.m_len = sizeof(sa); @@ -385,6 +387,9 @@ (void) soaccept(so, &mnam); so->so_state = SS_NBIO | SS_ISCONNECTED; + so->so_q = so->so_q0 = NULL; + so->so_qlen = 0; + so->so_head = 0; OS_DbgPrint(OSK_MID_TRACE,("error = %d\n", error)); if (name) { _____ Modified: branches/cache_manager_rewrite/reactos/drivers/net/afd/afd/read.c --- branches/cache_manager_rewrite/reactos/drivers/net/afd/afd/read.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/net/afd/afd/read.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -123,7 +123,7 @@ PIRP NextIrp; AFD_DbgPrint(MID_TRACE,("Socket shutdown from remote side\n")); - + /* Kill remaining recv irps */ while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) { NextIrpEntry = @@ -138,7 +138,7 @@ } /* Handle closing signal */ - FCB->PollState |= AFD_EVENT_DISCONNECT; + FCB->PollState |= AFD_EVENT_DISCONNECT | SOCKET_STATE_EOF_READ; PollReeval( FCB->DeviceExt, FCB->FileObject ); } @@ -270,7 +270,8 @@ if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, FALSE ); - if( FCB->State != SOCKET_STATE_CONNECTED ) { + if( FCB->State != SOCKET_STATE_CONNECTED && + FCB->State != SOCKET_STATE_CONNECTING ) { AFD_DbgPrint(MID_TRACE,("Called recv on wrong kind of socket (s%x)\n", FCB->State)); return STATUS_UNSUCCESSFUL; @@ -307,15 +308,19 @@ Status = STATUS_SUCCESS; } } else { - AFD_DbgPrint(MID_TRACE,("EOF Happened already\n")); - FCB->Recv.Content = 0; - FCB->Recv.BytesUsed = 0; - Status = STATUS_END_OF_FILE; + if( FCB->PollState & SOCKET_STATE_EOF_READ ) + Status = STATUS_END_OF_FILE; + else + Status = STATUS_SUCCESS; + + AFD_DbgPrint(MID_TRACE,("EOF Happened already\n")); + FCB->Recv.Content = 0; + FCB->Recv.BytesUsed = 0; ProcessClose( FCB ); return UnlockAndMaybeComplete - ( FCB, STATUS_SUCCESS, Irp, 0, NULL, FALSE); + ( FCB, Status, Irp, 0, NULL, FALSE); } if( NT_SUCCESS(Status) ) { _____ Modified: branches/cache_manager_rewrite/reactos/drivers/net/afd/include/afd.h --- branches/cache_manager_rewrite/reactos/drivers/net/afd/include/afd.h 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/net/afd/include/afd.h 2005-02-26 17:47:14 UTC (rev 13756) @@ -44,6 +44,7 @@ #define SOCKET_STATE_CONNECTED 3 #define SOCKET_STATE_LISTENING 4 #define SOCKET_STATE_MASK 0x0000ffff +#define SOCKET_STATE_EOF_READ 0x20000000 #define SOCKET_STATE_LOCKED 0x40000000 #define SOCKET_STATE_NEW 0x80000000 #define SOCKET_STATE_CLOSED 0x00000100 _____ Modified: branches/cache_manager_rewrite/reactos/drivers/net/ndis/ndis/miniport.c --- branches/cache_manager_rewrite/reactos/drivers/net/ndis/ndis/miniport.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/net/ndis/ndis/miniport.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -603,7 +603,7 @@ Adapter->NdisMiniportBlock.MiniportAdapterContext, Oid, Adapter->QueryBuffer, - Size, + Adapter->QueryBufferLength, BytesWritten, &BytesNeeded); } @@ -1290,14 +1290,14 @@ NTSTATUS Status; UINT SelectedMediumIndex = 0; NDIS_OID AddressOID; - BOOLEAN Success; + BOOLEAN Success = FALSE; ULONG ResourceCount; ULONG ResourceListSize; UNICODE_STRING ParamName; PNDIS_CONFIGURATION_PARAMETER ConfigParam; NDIS_HANDLE ConfigHandle; ULONG Size; - KIRQL OldIrql; +/* FIXME - KIRQL OldIrql; */ /* * Prepare wrapper context used by HW and configuration routines. @@ -1461,7 +1461,7 @@ /* FIXME: Support other types of media */ NDIS_DbgPrint(MIN_TRACE, ("error: unsupported media\n")); ASSERT(FALSE); - KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql); +/* FIXME - KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql); */ return STATUS_UNSUCCESSFUL; } @@ -1564,6 +1564,8 @@ break; case IRP_MN_STOP_DEVICE: + /* FIXME */ + Status = STATUS_UNSUCCESSFUL; break; Status = NdisIForwardIrpAndWait(Adapter, Irp); if (NT_SUCCESS(Status) && NT_SUCCESS(Irp->IoStatus.Status)) @@ -1576,7 +1578,8 @@ default: IoSkipCurrentIrpStackLocation(Irp); - return IoCallDriver(Adapter->NdisMiniportBlock.NextDeviceObject, Irp); + Status = IoCallDriver(Adapter->NdisMiniportBlock.NextDeviceObject, Irp); + break; } return Status; _____ Modified: branches/cache_manager_rewrite/reactos/drivers/net/tcpip/tcpip/fileobjs. c --- branches/cache_manager_rewrite/reactos/drivers/net/tcpip/tcpip/fileobjs. c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/net/tcpip/tcpip/fileobjs. c 2005-02-26 17:47:14 UTC (rev 13756) @@ -471,8 +471,10 @@ Connection = Request->Handle.ConnectionContext; + TcpipRecursiveMutexEnter( &TCPLock, TRUE ); TCPClose(Connection); DeleteConnectionEndpoint(Connection); + TcpipRecursiveMutexLeave( &TCPLock ); TI_DbgPrint(MAX_TRACE, ("Leaving.\n")); _____ Modified: branches/cache_manager_rewrite/reactos/drivers/storage/atapi/atapi.c --- branches/cache_manager_rewrite/reactos/drivers/storage/atapi/atapi.c 2005-02-26 17:11:06 UTC (rev 13755) +++ branches/cache_manager_rewrite/reactos/drivers/storage/atapi/atapi.c 2005-02-26 17:47:14 UTC (rev 13756) @@ -2231,7 +2231,7 @@ DPRINT("SCSIOP_SYNCRONIZE_CACHE: TargetId: %lu\n", Srb->TargetId); - if (!(DeviceExtension->DeviceFlags[Srb->TargetId] & DEVICE_NO_FLUSH)) + if (DeviceExtension->DeviceFlags[Srb->TargetId] & DEVICE_NO_FLUSH) { /* * NOTE: Don't flush the cache for CD/DVD drives. Although @@ -2240,9 +2240,16 @@ * it doesn't make sense to flush cache on devices we don't * write to. */ - return STATUS_SUCCESS; + return SRB_STATUS_INVALID_REQUEST; } [truncated at 1000 lines; 51148 more skipped]
19 years, 10 months
1
0
0
0
[chorns] 13755: Support for non-standard module base addresses
by chorns@svn.reactos.com
Support for non-standard module base addresses Modified: branches/xmlbuildsystem/reactos/ReactOS.xml Added: branches/xmlbuildsystem/reactos/baseaddress.xml Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .cpp Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.txt _____ Modified: branches/xmlbuildsystem/reactos/ReactOS.xml --- branches/xmlbuildsystem/reactos/ReactOS.xml 2005-02-26 16:40:44 UTC (rev 13754) +++ branches/xmlbuildsystem/reactos/ReactOS.xml 2005-02-26 17:11:06 UTC (rev 13755) @@ -7,6 +7,8 @@ </xi:fallback> </xi:include> + <xi:include href="baseaddress.xml" /> + <define name="_M_IX86" /> <if property="DBG" value="1"> <define name="DBG" value="1" /> _____ Added: branches/xmlbuildsystem/reactos/baseaddress.xml --- branches/xmlbuildsystem/reactos/baseaddress.xml 2005-02-26 16:40:44 UTC (rev 13754) +++ branches/xmlbuildsystem/reactos/baseaddress.xml 2005-02-26 17:11:06 UTC (rev 13755) @@ -0,0 +1,89 @@ +<property name="BASEADDRESS_DINPUT8" value="0x00400000" /> +<property name="BASEADDRESS_DXDIAGN" value="0x00400000" /> +<property name="BASEADDRESS_NOTIFYHOOK" value="0x08000000" /> +<property name="BASEADDRESS_SECURE32" value="0x10000000" /> +<property name="BASEADDRESS_DEVENUM" value="0x35680000" /> +<property name="BASEADDRESS_DSOUND" value="0x50000000" /> +<property name="BASEADDRESS_GLU32" value="0x50000000" /> +<property name="BASEADDRESS_OPENGL32" value="0x50000000" /> +<property name="BASEADDRESS_SLAYER" value="0x5C7E0000" /> +<property name="BASEADDRESS_DINPUT" value="0x5F580000" /> +<property name="BASEADDRESS_TIMEDATE" value="0x64DA0000" /> +<property name="BASEADDRESS_SYSDM" value="0x64DD0000" /> +<property name="BASEADDRESS_NCPL" value="0x64EA0000" /> +<property name="BASEADDRESS_MAIN" value="0x64F40000" /> +<property name="BASEADDRESS_INTL" value="0x64FB0000" /> +<property name="BASEADDRESS_DESK" value="0x65080000" /> +<property name="BASEADDRESS_APPWIZ" value="0x65100000" /> +<property name="BASEADDRESS_ACCESS" value="0x65180000" /> +<property name="BASEADDRESS_HID" value="0x688F0000" /> +<property name="BASEADDRESS_PSXDLL" value="0x68eb0000" /> +<property name="BASEADDRESS_PSAPI" value="0x68f70000" /> +<property name="BASEADDRESS_MSIMG32" value="0x69cc0000" /> +<property name="BASEADDRESS_NETPLWIZ" value="0x6a240000" /> +<property name="BASEADDRESS_UNICODE" value="0x6b200000" /> +<property name="BASEADDRESS_DISPLAY" value="DISPLAY" /> +<property name="BASEADDRESS_CARDS" value="0x701a0000" /> +<property name="BASEADDRESS_WININET" value="0x70200000" /> +<property name="BASEADDRESS_ACLUI" value="0x71550000" /> +<property name="BASEADDRESS_SHDOCVW" value="0x71700000" /> +<property name="BASEADDRESS_MSWSOCK" value="0x71a30000" /> +<property name="BASEADDRESS_WSOCK32" value="0x71ab0000" /> +<property name="BASEADDRESS_ACLEDIT" value="0x71b70000" /> +<property name="BASEADDRESS_NETAPI32" value="0x71c00000" /> +<property name="BASEADDRESS_WINFAX" value="0x722C0000" /> +<property name="BASEADDRESS_DEVMGR" value="0x72a90000" /> +<property name="BASEADDRESS_WINSCARD" value="0x723D0000" /> +<property name="BASEADDRESS_COREDLL" value="0x73d80000" /> +<property name="BASEADDRESS_LZEXPAND" value="0x73d80000" /> +<property name="BASEADDRESS_USERENV" value="0x74850000" /> +<property name="BASEADDRESS_SYSSETUP" value="0x74a30000" /> +<property name="BASEADDRESS_OLEDLG" value="0x74d00000" /> +<property name="BASEADDRESS_SAMLIB" value="0x750C0000" /> +<property name="BASEADDRESS_CABINET" value="0x75120000" /> +<property name="BASEADDRESS_MSGINA" value="0x75970000" /> +<property name="BASEADDRESS_COMMCTRL" value="0x75e60000" /> +<property name="BASEADDRESS_IMM32" value="0x75e60000" /> +<property name="BASEADDRESS_RPCRT4" value="0x76000000" /> +<property name="BASEADDRESS_MIDIMAP" value="0x76600000" /> +<property name="BASEADDRESS_SHLWAPI" value="0x76120000" /> +<property name="BASEADDRESS_COMCTL32" value="0x76160000" /> +<property name="BASEADDRESS_COMDLG32" value="0x76200000" /> +<property name="BASEADDRESS_OLEAUT32" value="0x76260000" /> +<property name="BASEADDRESS_D3D8THK" value="0x76340000" /> +<property name="BASEADDRESS_RICHEDIT" value="0x76340000" /> +<property name="BASEADDRESS_TWAIN_32" value="0x76380000" /> +<property name="BASEADDRESS_LSASRV" value="0x76540000" /> +<property name="BASEADDRESS_MPR" value="0x76620000" /> +<property name="BASEADDRESS_ODBC32" value="0x76660000" /> +<property name="BASEADDRESS_SETUPAPI" value="0x76660000" /> +<property name="BASEADDRESS_GDIPLUS" value="0x76a00000" /> +<property name="BASEADDRESS_IMAGEHLP" value="0x76c90000" /> +<property name="BASEADDRESS_FMIFS" value="0x76df0000" /> +<property name="BASEADDRESS_SHELL32" value="0x77260000" /> +<property name="BASEADDRESS_IPHLPAPI" value="0x77300000" /> +<property name="BASEADDRESS_MSACM" value="0x77400000" /> +<property name="BASEADDRESS_MMDRV" value="0x77500000" /> +<property name="BASEADDRESS_CRTDLL" value="0x77630000" /> +<property name="BASEADDRESS_PACKET" value="0x77780000" /> +<property name="BASEADDRESS_W2_32" value="0x77780000" /> +<property name="BASEADDRESS_MSAFD" value="0x777a0000" /> +<property name="BASEADDRESS_IPRTPRIO" value="0x777c0000" /> +<property name="BASEADDRESS_SNMPAPI" value="0x777c0000" /> +<property name="BASEADDRESS_WINMM" value="0x777c0000" /> +<property name="BASEADDRESS_WS2HELP" value="0x777c0000" /> +<property name="BASEADDRESS_WSHIRDA" value="0x777c0000" /> +<property name="BASEADDRESS_WSHTCPIP" value="0x777c0000" /> +<property name="BASEADDRESS_WINSPOOL" value="0x77800000" /> +<property name="BASEADDRESS_OLE32" value="0x77a50000" /> +<property name="BASEADDRESS_OLEPRO32" value="0x77a50000" /> +<property name="BASEADDRESS_VERSION" value="0x77a90000" /> +<property name="BASEADDRESS_ADVAPI32" value="0x77dc0000" /> +<property name="BASEADDRESS_USER32" value="0x77e60000" /> +<property name="BASEADDRESS_GDI32" value="0x77ed0000" /> +<property name="BASEADDRESS_DNSAPI" value="0x77f00000" /> +<property name="BASEADDRESS_MSVCRT" value="0x78000000" /> +<property name="BASEADDRESS_MSVCRT20" value="0x78500000" /> +<property name="BASEADDRESS_EXPAT" value="0x79000000" /> +<property name="BASEADDRESS_KERNEL32" value="0x7C800000" /> +<property name="BASEADDRESS_NTDLL" value="0x7C900000" /> _____ Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .cpp --- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .cpp 2005-02-26 16:40:44 UTC (rev 13754) +++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler .cpp 2005-02-26 17:11:06 UTC (rev 13755) @@ -1340,9 +1340,10 @@ string base_tmp = ros_junk + module.name + ".base.tmp"; string junk_tmp = ros_junk + module.name + ".junk.tmp"; string temp_exp = ros_junk + module.name + ".temp.exp"; - string gccOptions = ssprintf ("-Wl,-T,%s" SSEP "ntoskrnl.lnk -Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,0xC0000000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll", + string gccOptions = ssprintf ("-Wl,-T,%s" SSEP "ntoskrnl.lnk -Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll", module.GetBasePath ().c_str (), - module.entrypoint.c_str () ); + module.entrypoint.c_str (), + module.baseaddress.c_str () ); GenerateMacrosAndTargetsTarget ( module ); @@ -1466,8 +1467,9 @@ archiveFilename.c_str (), importLibraryDependencies.c_str () ); - string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll", - module.entrypoint.c_str () ); + string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll", + module.entrypoint.c_str (), + module.baseaddress.c_str () ); GenerateLinkerCommand ( module, "${gcc}", linkerParameters, @@ -1523,8 +1525,9 @@ archiveFilename.c_str (), importLibraryDependencies.c_str () ); - string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll", - module.entrypoint.c_str () ); + string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll", + module.entrypoint.c_str (), + module.baseaddress.c_str () ); GenerateLinkerCommand ( module, "${gcc}", linkerParameters, @@ -1576,8 +1579,9 @@ archiveFilename.c_str (), importLibraryDependencies.c_str () ); - string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib -mdll", - module.entrypoint.c_str () ); + string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib -mdll", + module.entrypoint.c_str (), + module.baseaddress.c_str () ); GenerateLinkerCommand ( module, "${gcc}", linkerParameters, @@ -1633,8 +1637,9 @@ archiveFilename.c_str (), importLibraryDependencies.c_str () ); - string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib", - module.entrypoint.c_str () ); + string linkerParameters = ssprintf ( "-Wl,--subsystem,native -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib", + module.entrypoint.c_str (), + module.baseaddress.c_str () ); GenerateLinkerCommand ( module, "${gcc}", linkerParameters, @@ -1712,8 +1717,9 @@ else linker = "${gcc}"; - string linkerParameters = ssprintf ( "-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -mdll", - module.entrypoint.c_str () ); + string linkerParameters = ssprintf ( "-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -mdll", + module.entrypoint.c_str (), + module.baseaddress.c_str () ); GenerateLinkerCommand ( module, linker, linkerParameters, @@ -1770,8 +1776,9 @@ else linker = "${gcc}"; - string linkerParameters = ssprintf ( "-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,0x00400000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000", - module.entrypoint.c_str () ); + string linkerParameters = ssprintf ( "-Wl,--subsystem,console -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000", + module.entrypoint.c_str (), + module.baseaddress.c_str () ); GenerateLinkerCommand ( module, linker, linkerParameters, @@ -1828,8 +1835,9 @@ else linker = "${gcc}"; - string linkerParameters = ssprintf ( "-Wl,--subsystem,windows -Wl,--entry,%s -Wl,--image-base,0x00400000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000", - module.entrypoint.c_str () ); + string linkerParameters = ssprintf ( "-Wl,--subsystem,windows -Wl,--entry,%s -Wl,--image-base,%s -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000", + module.entrypoint.c_str (), + module.baseaddress.c_str () ); GenerateLinkerCommand ( module, linker, linkerParameters, _____ Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp --- branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp 2005-02-26 16:40:44 UTC (rev 13754) +++ branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp 2005-02-26 17:11:06 UTC (rev 13755) @@ -82,6 +82,12 @@ else entrypoint = GetDefaultModuleEntrypoint (); + att = moduleNode.GetAttribute ( "baseaddress", false ); + if ( att != NULL ) + baseaddress = att->value; + else + baseaddress = GetDefaultModuleBaseaddress (); + att = moduleNode.GetAttribute ( "mangledsymbols", false ); if ( att != NULL ) mangledSymbols = att->value != "false"; @@ -365,6 +371,39 @@ __LINE__ ); } +string +Module::GetDefaultModuleBaseaddress () const +{ + switch (type) + { + case Kernel: + return "0xc0000000"; + case KernelModeDLL: + return "0x10000"; + case NativeDLL: + return "0x10000"; + case NativeCUI: + return "0x10000"; + case Win32DLL: + return "0x10000"; + case Win32CUI: + return "0x00400000"; + case Win32GUI: + return "0x00400000"; + case KernelModeDriver: + return "0x10000"; + case BuildTool: + case StaticLibrary: + case ObjectLibrary: + case BootLoader: + case BootSector: + case Iso: + return ""; + } + throw InvalidOperationException ( __FILE__, + __LINE__ ); +} + bool Module::HasImportLibrary () const { _____ Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h --- branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h 2005-02-26 16:40:44 UTC (rev 13754) +++ branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h 2005-02-26 17:11:06 UTC (rev 13755) @@ -122,6 +122,7 @@ std::string name; std::string extension; std::string entrypoint; + std::string baseaddress; std::string path; ModuleType type; ImportLibrary* importLibrary; @@ -157,6 +158,7 @@ private: std::string GetDefaultModuleExtension () const; std::string GetDefaultModuleEntrypoint () const; + std::string GetDefaultModuleBaseaddress () const; void ProcessXMLSubElement ( const XMLElement& e, const std::string& path, If* pIf = NULL ); _____ Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.txt --- branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.txt 2005-02-26 16:40:44 UTC (rev 13754) +++ branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.txt 2005-02-26 17:11:06 UTC (rev 13755) @@ -3,21 +3,16 @@ Building ReactOS ---------------- -To generate GNU make makefiles for building ReactOS do the following: +To generate GNU make makefiles and building ReactOS do the following: 1) Go to the top-level reactos directory - 2) Run the command: mingw32-make -C tools\reactos - 3) Run the command: tools\rbuild\rbuild mingw + 2) Run the command: mingw32-make -This will generate Makefile.auto in the current directory. Now run the following command: - - mingw32-make -f Makefile.auto - This will start building ReactOS. To build a bootable CD run the following command: - mingw32-make -f Makefile.auto bootcd + mingw32-make bootcd This will create ReactOS.iso in the top-level reactos directory. @@ -112,7 +107,7 @@ There can be zero or more modules per xml build file. Syntax: - <module name="msvcrt" type="win32dll" extension=".dll" entrypoint="_DllMain@12" mangledsymbols="true"> + <module name="msvcrt" type="win32dll" extension=".dll" entrypoint="_DllMain@12" baseaddress="0x70000000" mangledsymbols="true"> ... </module> @@ -120,7 +115,8 @@ name - Name of the module. Also the base name of the generated file if such file is generated for the particular module type. type - Type of module. See below for an explanation of module types. extension - Extension of the generated file if such file is generated for the particular module type. - entrypoint - Entrypoint for the generated file if such file is generated for the particular module type. + entrypoint - Entrypoint symbol of the generated file if such file is generated for the particular module type. + baseaddress - Base address of the generated file if such file is generated for the particular module type. mangledsymbols - Controls wether or not to pass --kill-at to dlltool. If this attribute has the value false then --kill-at is passed to dlltool. If the value is true, then --kill-at is not passed to dlltool. If the generated file exports C++ classes then this need to be true. Value: @@ -133,18 +129,18 @@ Module types ------------ The module type determines the actions that is to be carried out to process the module. The defined module types are seen below: - buildtool - Builds a tool that can be run (invoked) when building ReactOS. Default extension is .exe when building on Windows and nothing when building on Linux. The entrypoint module attribute is not applicable for this module type. - staticlibrary - Builds a static library containing object files that can be linked together with other modules. Default extension is .a. The entrypoint module attribute is not applicable for this module type. - objectlibrary - Builds object files that can be linked together with other modules. Default extension is .o. The entrypoint module attribute is not applicable for this module type. + buildtool - Builds a tool that can be run (invoked) when building ReactOS. Default extension is .exe when building on Windows and nothing when building on Linux. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type. + staticlibrary - Builds a static library containing object files that can be linked together with other modules. Default extension is .a. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type. + objectlibrary - Builds object files that can be linked together with other modules. Default extension is .o. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type. kernel - Builds ntoskrnl.exe. Default extension is .exe. Default entrypoint is _NtProcessStartup. kernelmodedll - Builds a kernel-mode DLL. Default extension is .dll. Default entrypoint is _DriverEntry@8. kernelmodedriver - Builds a kernel-mode driver. Default extension is .sys. Default entrypoint is _DriverEntry@8. nativedll - Builds a native DLL. Default extension is .dll. Default entrypoint is _DllMainCRTStartup@12. win32dll - Builds a Win32 DLL. Default extension is .dll. Default entrypoint is _DllMain@12. - win32gui - Builds a Win32 GUI executable. Default extension is .exe. Default entrypoint is _WinMainCRTStartup. - bootloader - Builds a bootloader. The extension and entrypoint module attributes are not applicable for this module type. - bootsector - Builds one or more bootsector binaries. The extension and entrypoint module attributes are not applicable for this module type. - iso - Builds a bootable CD. The extension and entrypoint module attributes are not applicable for this module type + win32gui - Builds a Win32 GUI executable. Default extension is .exe. Default entrypoint is _WinMainCRTStartup. The baseaddress module attribute is not applicable for this module type. + bootloader - Builds a bootloader. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type. + bootsector - Builds one or more bootsector binaries. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type. + iso - Builds a bootable CD. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type. Define element
19 years, 10 months
1
0
0
0
[hbirr] 13754: Copied msiexec from the current trunk.
by hbirr@svn.reactos.com
Copied msiexec from the current trunk. Added: branches/cache_manager_rewrite/reactos/subsys/system/msiexec/ _____ Copied: branches/cache_manager_rewrite/reactos/subsys/system/msiexec (from rev 13753, trunk/reactos/subsys/system/msiexec)
19 years, 10 months
1
0
0
0
[hbirr] 13753:
by hbirr@svn.reactos.com
Deleted: branches/cache_manager_rewrite/reactos/subsys/system/msiexec/
19 years, 10 months
1
0
0
0
[ekohl] 13752: - Server stubs are void functions.
by ekohl@svn.reactos.com
- Server stubs are void functions. - Fix a warning in the server stub descriptor. Modified: trunk/reactos/tools/widl/ChangeLog Modified: trunk/reactos/tools/widl/server.c _____ Modified: trunk/reactos/tools/widl/ChangeLog --- trunk/reactos/tools/widl/ChangeLog 2005-02-26 15:17:54 UTC (rev 13751) +++ trunk/reactos/tools/widl/ChangeLog 2005-02-26 15:54:27 UTC (rev 13752) @@ -1,5 +1,12 @@ ChangeLog +2005-02-26 ekohl + tools/widl/server.c + +Server stubs are void functions. +Fix a warning in the server stub descriptor. + + 2005-02-25 ekohl tools/widl/client.c tools/widl/header.c _____ Modified: trunk/reactos/tools/widl/server.c --- trunk/reactos/tools/widl/server.c 2005-02-26 15:17:54 UTC (rev 13751) +++ trunk/reactos/tools/widl/server.c 2005-02-26 15:54:27 UTC (rev 13752) @@ -366,8 +366,7 @@ } } - write_type(server, def->type, def, def->tname); - fprintf(server, " __RPC_STUB\n"); + fprintf(server, "void __RPC_STUB\n"); fprintf(server, "%s_", iface->name); write_name(server, def); fprintf(server, "(\n"); @@ -602,11 +601,11 @@ print_server("(void __RPC_FAR *)& %s___RpcServerInterface,\n", iface->name); print_server("MIDL_user_allocate,\n"); print_server("MIDL_user_free,\n"); + print_server("{NULL},\n"); print_server("0,\n"); print_server("0,\n"); print_server("0,\n"); print_server("0,\n"); - print_server("0,\n"); print_server("__MIDL_TypeFormatString.Format,\n"); print_server("1, /* -error bounds_check flag */\n"); print_server("0x10001, /* Ndr library version */\n");
19 years, 10 months
1
0
0
0
[ea] 13751: Multiuser Win32: empty server dll
by ea@svn.reactos.com
Multiuser Win32: empty server dll Added: trunk/reactos/subsys/csrss/win32mu/ Added: trunk/reactos/subsys/csrss/win32mu/Makefile Added: trunk/reactos/subsys/csrss/win32mu/dllmain.c Added: trunk/reactos/subsys/csrss/win32mu/init.c Added: trunk/reactos/subsys/csrss/win32mu/w32mu.h Added: trunk/reactos/subsys/csrss/win32mu/win32mu.def Added: trunk/reactos/subsys/csrss/win32mu/win32mu.rc _____ Added: trunk/reactos/subsys/csrss/win32mu/Makefile --- trunk/reactos/subsys/csrss/win32mu/Makefile 2005-02-26 15:15:11 UTC (rev 13750) +++ trunk/reactos/subsys/csrss/win32mu/Makefile 2005-02-26 15:17:54 UTC (rev 13751) @@ -0,0 +1,28 @@ +# $Id: $ + +PATH_TO_TOP = ../../.. + +TARGET_TYPE = dynlink + +TARGET_NAME = win32mu + +TARGET_BASE = 0x5ffb0000 + +# require os code to explicitly request A/W version of structs/functions +TARGET_CFLAGS += -D__USE_W32API -D_DISABLE_TIDENTS -Wall -Werror -I../include + +TARGET_LFLAGS = -nostartfiles -nostdlib + +TARGET_SDKLIBS = ntdll.a kernel32.a user32.a gdi32.a + +TARGET_OBJECTS = dllmain.o init.o + +TARGET_ENTRY = _DllMain@12 + +DEP_OBJECTS = $(TARGET_OBJECTS) + +include $(PATH_TO_TOP)/rules.mak + +include $(TOOLS_PATH)/helper.mk + +include $(TOOLS_PATH)/depend.mk _____ Added: trunk/reactos/subsys/csrss/win32mu/dllmain.c --- trunk/reactos/subsys/csrss/win32mu/dllmain.c 2005-02-26 15:15:11 UTC (rev 13750) +++ trunk/reactos/subsys/csrss/win32mu/dllmain.c 2005-02-26 15:17:54 UTC (rev 13751) @@ -0,0 +1,37 @@ +/* $Id: $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS system libraries + * FILE: subsys/csrss/win32csr/dllmain.c + * PURPOSE: Initialization + */ + +/* INCLUDES ******************************************************************/ + +#include <windows.h> +#include "csrplugin.h" + +#define NDEBUG +#include <debug.h> + + +/* GLOBALS *******************************************************************/ + +HINSTANCE DllHandle = (HINSTANCE) 0; + +/* FUNCTIONS *****************************************************************/ + +BOOL STDCALL +DllMain(HANDLE hDll, + DWORD dwReason, + LPVOID lpReserved) +{ + if (DLL_PROCESS_ATTACH == dwReason) + { + DllHandle = hDll; + } + + return TRUE; +} + +/* EOF */ _____ Added: trunk/reactos/subsys/csrss/win32mu/init.c --- trunk/reactos/subsys/csrss/win32mu/init.c 2005-02-26 15:15:11 UTC (rev 13750) +++ trunk/reactos/subsys/csrss/win32mu/init.c 2005-02-26 15:17:54 UTC (rev 13751) @@ -0,0 +1,85 @@ +/* $Id: $ + * + * WIN32MU.DLL - init.c - Initialize the server DLL + * + * ReactOS Operating System + * + * -------------------------------------------------------------------- + * + * This software is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING.LIB. If not, write + * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, + * MA 02139, USA. + * + * -------------------------------------------------------------------- + */ +#define NTOS_MODE_USER +#include <ntos.h> + +#define NDEBUG +#include <debug.h> + +#include "w32mu.h" + +static NTSTATUS STDCALL +W32muLoadRemoteTerminalProxy (VOID) +{ + SYSTEM_LOAD_AND_CALL_IMAGE ImageInfo; + NTSTATUS Status = STATUS_SUCCESS; + + DPRINT("W32MU: loading remote terminal device\n"); + + /* Load kernel mode module */ + RtlInitUnicodeString (& ImageInfo.ModuleName, + L"\\SystemRoot\\system32\\w32mut.sys"); + + Status = NtSetSystemInformation (SystemLoadAndCallImage, + & ImageInfo, + sizeof (SYSTEM_LOAD_AND_CALL_IMAGE)); + + DPRINT("W32MU: w32mut.sys loaded\n", Status); + if (!NT_SUCCESS(Status)) + { + DPRINT("W32MU: loading w32mut.sys failed (Status=0x%08lx)\n", Status); + return Status; + } + return Status; +} + +/* Public entry point for CSRSS.EXE to load us */ + +NTSTATUS STDCALL +ServerDllInitialization (int a0, int a1, int a2, int a3, int a4) +{ + NTSTATUS Status = STATUS_SUCCESS; + + /* TODO: + * 1) load a kernel mode module to make Kmode happy + * (it will provide keyoard, display and pointer + * devices for window stations not attached to + * the console); + */ + Status = W32muLoadRemoteTerminalProxy (); + /* + * 2) pick up from the registry the list of session + * access providers (SAP: Local, RFB, RDP, ICA, ...); + * 3) initialize each SAP; + * 4) on SAP events, provide: + * 4.1) create session (SESSION->new); + * 4.2) suspend session (SESSION->state_change); + * 4.3) destroy session (SESSION->delete). + */ + return Status; +} + +/* EOF */ _____ Added: trunk/reactos/subsys/csrss/win32mu/w32mu.h Added: trunk/reactos/subsys/csrss/win32mu/win32mu.def --- trunk/reactos/subsys/csrss/win32mu/win32mu.def 2005-02-26 15:15:11 UTC (rev 13750) +++ trunk/reactos/subsys/csrss/win32mu/win32mu.def 2005-02-26 15:17:54 UTC (rev 13751) @@ -0,0 +1,4 @@ +; $Id: $ +LIBRARY win32mu.dll +EXPORTS +ServerDllInitialization@20 _____ Added: trunk/reactos/subsys/csrss/win32mu/win32mu.rc --- trunk/reactos/subsys/csrss/win32mu/win32mu.rc 2005-02-26 15:15:11 UTC (rev 13750) +++ trunk/reactos/subsys/csrss/win32mu/win32mu.rc 2005-02-26 15:17:54 UTC (rev 13751) @@ -0,0 +1,5 @@ +#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS/Win32 Multiuser Server\0" +#define REACTOS_STR_INTERNAL_NAME "win32mu\0" +#define REACTOS_STR_ORIGINAL_FILENAME "win32mu.dll\0" +#include <reactos/version.rc>
19 years, 10 months
1
0
0
0
[hbirr] 13750: - Copy winebuild from the current trunk.
by hbirr@svn.reactos.com
- Copy winebuild from the current trunk. Added: branches/cache_manager_rewrite/reactos/tools/winebuild/ _____ Copied: branches/cache_manager_rewrite/reactos/tools/winebuild (from rev 13749, trunk/reactos/tools/winebuild)
19 years, 10 months
1
0
0
0
[hbirr] 13749:
by hbirr@svn.reactos.com
Deleted: branches/cache_manager_rewrite/reactos/tools/winebuild/
19 years, 10 months
1
0
0
0
[ea] 13748: CSR pre-init cleanup
by ea@svn.reactos.com
CSR pre-init cleanup Modified: trunk/reactos/subsys/csrss/api/wapi.c Modified: trunk/reactos/subsys/csrss/csrss.c Modified: trunk/reactos/subsys/csrss/include/api.h Modified: trunk/reactos/subsys/csrss/init.c _____ Modified: trunk/reactos/subsys/csrss/api/wapi.c --- trunk/reactos/subsys/csrss/api/wapi.c 2005-02-25 21:22:05 UTC (rev 13747) +++ trunk/reactos/subsys/csrss/api/wapi.c 2005-02-26 15:06:19 UTC (rev 13748) @@ -2,7 +2,7 @@ * * reactos/subsys/csrss/api/wapi.c * - * Initialize the CSRSS subsystem server process. + * CSRSS port message processing * * ReactOS Operating System * @@ -147,14 +147,14 @@ /********************************************************************** * NAME - * Thread_Api + * ServerApiPortThread/1 * * DESCRIPTION * Handle connection requests from clients to the port * "\Windows\ApiPort". */ void STDCALL -ServerApiPortThead(PVOID PortHandle) +ServerApiPortThread (PVOID PortHandle) { NTSTATUS Status; LPC_MAX_MESSAGE Request; @@ -232,4 +232,51 @@ NtTerminateThread(NtCurrentThread(), Status); } +/********************************************************************** + * NAME + * ServerSbApiPortThread/1 + * + * DESCRIPTION + * Handle connection requests from SM to the port + * "\Windows\SbApiPort". + */ +VOID STDCALL +ServerSbApiPortThread (PVOID PortHandle) +{ + HANDLE hSbApiPortListen = (HANDLE) PortHandle; + HANDLE hConnectedPort = (HANDLE) 0; + LPC_MAX_MESSAGE Request = {{0}}; + NTSTATUS Status = STATUS_SUCCESS; + + while (TRUE) + { + Status = NtListenPort (hSbApiPortListen, & Request.Header); + if (!NT_SUCCESS(Status)) + { + DPRINT1("CSR: %s: NtListenPort(SB) failed\n", __FUNCTION__); + break; + } + Status = NtAcceptConnectPort (& hConnectedPort, + hSbApiPortListen, + NULL, + TRUE, + NULL, + NULL); + if(!NT_SUCCESS(Status)) + { + DPRINT1("CSR: %s: NtAcceptConnectPort() failed\n", __FUNCTION__); + break; + } + Status = NtCompleteConnectPort (hConnectedPort); + if(!NT_SUCCESS(Status)) + { + DPRINT1("CSR: %s: NtCompleteConnectPort() failed\n", __FUNCTION__); + break; + } + /* TODO: create thread for the connected port */ + } + NtClose (hSbApiPortListen); + NtTerminateThread (NtCurrentThread(), Status); +} + /* EOF */ _____ Modified: trunk/reactos/subsys/csrss/csrss.c --- trunk/reactos/subsys/csrss/csrss.c 2005-02-25 21:22:05 UTC (rev 13747) +++ trunk/reactos/subsys/csrss/csrss.c 2005-02-26 15:06:19 UTC (rev 13748) @@ -38,42 +38,75 @@ #include "api.h" -/* Native process' entry point */ +#define NDEBUG +#include <debug.h> -VOID STDCALL NtProcessStartup(PPEB Peb) +#define CSRP_MAX_ARGUMENT_COUNT 512 + +typedef struct _COMMAND_LINE_ARGUMENT { - PRTL_USER_PROCESS_PARAMETERS ProcParams; - PWSTR ArgBuffer; - PWSTR *argv; - ULONG argc = 0; - int i = 0; - int afterlastspace = 0; - OBJECT_ATTRIBUTES ObjectAttributes; - HANDLE CsrssInitEvent; - UNICODE_STRING UnicodeString; - NTSTATUS Status; + ULONG Count; + UNICODE_STRING Buffer; + PWSTR * Vector; - ProcParams = RtlNormalizeProcessParams (Peb->ProcessParameters); +} COMMAND_LINE_ARGUMENT, *PCOMMAND_LINE_ARGUMENT; - argv = (PWSTR *)RtlAllocateHeap (Peb->ProcessHeap, - 0, 512 * sizeof(PWSTR)); - ArgBuffer = (PWSTR)RtlAllocateHeap (Peb->ProcessHeap, - 0, - ProcParams->CommandLine.Length + sizeof(WCHAR)); - memcpy (ArgBuffer, - ProcParams->CommandLine.Buffer, - ProcParams->CommandLine.Length + sizeof(WCHAR)); +/********************************************************************** + * NAME PRIVATE + * CsrpParseCommandLine/3 + */ +static NTSTATUS STDCALL +CsrpParseCommandLine (HANDLE ProcessHeap, + PRTL_USER_PROCESS_PARAMETERS RtlProcessParameters, + PCOMMAND_LINE_ARGUMENT Argument) +{ + INT i = 0; + INT afterlastspace = 0; - while (ArgBuffer[i]) + + DPRINT("CSR: %s called\n", __FUNCTION__); + + RtlZeroMemory (Argument, sizeof (COMMAND_LINE_ARGUMENT)); + + Argument->Vector = (PWSTR *) RtlAllocateHeap (ProcessHeap, + 0, + (CSRP_MAX_ARGUMENT_COUNT * sizeof Argument->Vector[0])); + if(NULL == Argument->Vector) + { + DPRINT("CSR: %s: no memory for Argument->Vector\n", __FUNCTION__); + return STATUS_NO_MEMORY; + } + + Argument->Buffer.Length = + Argument->Buffer.MaximumLength = + RtlProcessParameters->CommandLine.Length + + sizeof Argument->Buffer.Buffer [0]; /* zero terminated */ + Argument->Buffer.Buffer = + (PWSTR) RtlAllocateHeap (ProcessHeap, + 0, + Argument->Buffer.MaximumLength); + if(NULL == Argument->Buffer.Buffer) + { + DPRINT("CSR: %s: no memory for Argument->Buffer.Buffer\n", __FUNCTION__); + return STATUS_NO_MEMORY; + } + + RtlCopyMemory (Argument->Buffer.Buffer, + RtlProcessParameters->CommandLine.Buffer, + RtlProcessParameters->CommandLine.Length); + + while (Argument->Buffer.Buffer [i]) { - if (ArgBuffer[i] == L' ') + if (Argument->Buffer.Buffer[i] == L' ') { - argc++; - ArgBuffer[i] = L'\0'; - argv[argc-1] = &(ArgBuffer[afterlastspace]); + Argument->Count ++; + Argument->Buffer.Buffer [i] = L'\0'; + Argument->Vector [Argument->Count - 1] = & (Argument->Buffer.Buffer [afterlastspace]); i++; - while (ArgBuffer[i] == L' ') + while (Argument->Buffer.Buffer [i] == L' ') + { i++; + } afterlastspace = i; } else @@ -82,56 +115,122 @@ } } - if (ArgBuffer[afterlastspace] != L'\0') + if (Argument->Buffer.Buffer [afterlastspace] != L'\0') { - argc++; - ArgBuffer[i] = L'\0'; - argv[argc-1] = &(ArgBuffer[afterlastspace]); + Argument->Count ++; + Argument->Buffer.Buffer [i] = L'\0'; + Argument->Vector [Argument->Count - 1] = & (Argument->Buffer.Buffer [afterlastspace]); } - - RtlRosInitUnicodeStringFromLiteral(&UnicodeString, + + return STATUS_SUCCESS; +} + +/********************************************************************** + * NAME PRIVATE + * CsrpFreeCommandLine/2 + */ + +static VOID STDCALL +CsrpFreeCommandLine (HANDLE ProcessHeap, + PCOMMAND_LINE_ARGUMENT Argument) +{ + DPRINT("CSR: %s called\n", __FUNCTION__); + + RtlFreeHeap (ProcessHeap, + 0, + Argument->Vector); + RtlFreeHeap (ProcessHeap, + 0, + Argument->Buffer.Buffer); +} + + +/********************************************************************** + * NAME PRIVATE + * CsrpOpenKeInitDoneEvent/0 + */ +static NTSTATUS STDCALL +CsrpOpenKeInitDoneEvent (PHANDLE CsrssInitEvent) +{ + OBJECT_ATTRIBUTES ObjectAttributes; + UNICODE_STRING EventName; + + DPRINT("CSR: %s called\n", __FUNCTION__); + + RtlInitUnicodeString(& EventName, L"\\CsrssInitDone"); - InitializeObjectAttributes(&ObjectAttributes, - &UnicodeString, - EVENT_ALL_ACCESS, - 0, - NULL); - Status = NtOpenEvent(&CsrssInitEvent, + InitializeObjectAttributes (& ObjectAttributes, + & EventName, + EVENT_ALL_ACCESS, + 0, + NULL); + return NtOpenEvent (CsrssInitEvent, EVENT_ALL_ACCESS, - &ObjectAttributes); + & ObjectAttributes); +} + +/* Native process' entry point */ + +VOID STDCALL NtProcessStartup(PPEB Peb) +{ + PRTL_USER_PROCESS_PARAMETERS RtlProcessParameters = NULL; + COMMAND_LINE_ARGUMENT CmdLineArg = {0}; + HANDLE CsrssInitEvent = (HANDLE) 0; + NTSTATUS Status = STATUS_SUCCESS; + + DPRINT("CSR: %s\n", __FUNCTION__); + + RtlProcessParameters = RtlNormalizeProcessParams (Peb->ProcessParameters); + + /*================================================================== + * Parse the command line. + *================================================================*/ + Status = CsrpParseCommandLine (Peb->ProcessHeap, + RtlProcessParameters, + & CmdLineArg); + if(STATUS_SUCCESS != Status) + { + DbgPrint("CSR: CsrpParseCommandLine failed (Status=0x%08lx)\n", + Status); + } + /* + * Open the Ke notification event to notify we are OK after + * subsystem server initialization. + */ + Status = CsrpOpenKeInitDoneEvent(& CsrssInitEvent); if (!NT_SUCCESS(Status)) { - DbgPrint("CSR: Failed to open csrss notification event\n"); + DbgPrint("CSR: CsrpOpenKeInitDoneEvent failed (Status=0x%08lx)\n", + Status); } - if (CsrServerInitialization (argc, argv) == TRUE) + /*================================================================== + * Initialize the Win32 environment subsystem server. + *================================================================*/ + if (CsrServerInitialization (CmdLineArg.Count, CmdLineArg.Vector) == TRUE) { + /*============================================================= + * Tell Ke we are up and safe. If we fail to notify Ke, it will + * bugcheck the system with SESSION5_INITIALIZATION_FAILED. + * TODO: choose a better way to check user mode initialization + * is OK. + *===========================================================*/ + NtSetEvent (CsrssInitEvent, NULL); - NtSetEvent(CsrssInitEvent, - NULL); - - RtlFreeHeap (Peb->ProcessHeap, - 0, argv); - RtlFreeHeap (Peb->ProcessHeap, - 0, - ArgBuffer); - - /* terminate the current thread only */ - NtTerminateThread( NtCurrentThread(), 0 ); + CsrpFreeCommandLine (Peb->ProcessHeap, & CmdLineArg); + /* + * Terminate the current thread only. + */ + NtTerminateThread (NtCurrentThread(), 0); } else { - DisplayString( L"CSR: Subsystem initialization failed.\n" ); + DisplayString (L"CSR: CsrServerInitialization failed.\n"); - RtlFreeHeap (Peb->ProcessHeap, - 0, argv); - RtlFreeHeap (Peb->ProcessHeap, - 0, - ArgBuffer); - + CsrpFreeCommandLine (Peb->ProcessHeap, & CmdLineArg); /* - * Tell SM we failed. + * Tell the SM we failed. */ - NtTerminateProcess( NtCurrentProcess(), 0 ); + NtTerminateProcess (NtCurrentProcess(), 0); } } _____ Modified: trunk/reactos/subsys/csrss/include/api.h --- trunk/reactos/subsys/csrss/include/api.h 2005-02-25 21:22:05 UTC (rev 13747) +++ trunk/reactos/subsys/csrss/include/api.h 2005-02-26 15:06:19 UTC (rev 13748) @@ -96,7 +96,8 @@ VOID FASTCALL CsrApiCallHandler(PCSRSS_PROCESS_DATA ProcessData, PCSRSS_API_REQUEST Request, PCSRSS_API_REPLY Reply); -VOID STDCALL ServerApiPortThead(PVOID PortHandle); +VOID STDCALL ServerApiPortThread (PVOID PortHandle); +VOID STDCALL ServerSbApiPortThread (PVOID PortHandle); VOID Console_Api( DWORD Ignored ); extern HANDLE CsrssApiHeap; _____ Modified: trunk/reactos/subsys/csrss/init.c --- trunk/reactos/subsys/csrss/init.c 2005-02-25 21:22:05 UTC (rev 13747) +++ trunk/reactos/subsys/csrss/init.c 2005-02-26 15:06:19 UTC (rev 13748) @@ -335,7 +335,7 @@ 0, NULL, NULL, - (PTHREAD_START_ROUTINE)ServerApiPortThead, + (PTHREAD_START_ROUTINE)ServerApiPortThread, ApiPortHandle, NULL, NULL);
19 years, 10 months
1
0
0
0
[chorns] 13747: Move to media directory
by chorns@svn.reactos.com
Move to media directory Deleted: trunk/ReactOS Wallpapers.txt Added: trunk/reactos/media/wallpapers/ Added: trunk/reactos/media/wallpapers/wallpapers.txt _____ Deleted: trunk/ReactOS Wallpapers.txt --- trunk/ReactOS Wallpapers.txt 2005-02-25 21:21:53 UTC (rev 13746) +++ trunk/ReactOS Wallpapers.txt 2005-02-25 21:22:05 UTC (rev 13747) @@ -1,65 +0,0 @@ -ReactOS Wallpapers suggestion: - - - -ReactOS Wallpapers for Version 0.2.6: - -* ReactOS Wallpaper (original with new text; GNU GPL) -
http://reactosde.re.funpic.de/mediadetail.php?sec=Graphic%20arts&cat=wal
lp&mdnr=92 - -* ReactOS Computer Wallpaper #1 (GNU GPL) -
http://reactosde.re.funpic.de/mediadetail.php?sec=Graphic%20arts&cat=wal
lp&mdnr=98 - -* hill and water (BSD-license) -
http://reactosde.re.funpic.de/mediadetail.php?sec=Graphic%20arts&cat=wal
lp&mdnr=88 - -* ReactOS wallpaper - 3d with holes (GNU LGPL) -
http://reactosde.re.funpic.de/mediadetail.php?sec=Graphic%20arts&cat=wal
lp&mdnr=65 - -* ReactOS Wallpapers (Earth) -
http://reactosde.re.funpic.de/mediadetail.php?sec=Graphic%20arts&cat=wal
lp&mdnr=36 - - - -GPL Wallpapers from
kde-look.org
: - -* Nature #1 (Fruit) -
http://www.kde-look.org/content/files/16183-green.jpg
- -* Nature #2 (Wood) -
http://www.kde-look.org/content/files/10274-p1010076.jpg
- -* Nature #3 (Sea) -
http://arg0.net/users/vgough/images/2007-taupo.png
- -* Nature #4 (Bees #1) -
http://kdelook.org/content/files/16382-img_0511c1_xga.jpg
- -* Nature #5 (Bees #2) -
http://www.kde-look.org/content/files/16498-Beon.jpg
- -* Nature #6 (Bees #3) -
http://www.kde-look.org/content/files/6524-Bee%20in%20Flower.jpg
- -* Nature #7 (Summer) -
http://www.kde-look.org/content/files/20979-altabadia_summer_1200.jpg
- - - -Some useful links: - -*
GNOME-LOOK.ORG
-
http://www.gnome-look.org
- -*
KDE-LOOK.ORG
-
http://www.kde-look.org/
- -* Frik85's ReactOS Fanpage -
http://frik85.reactos.at
- (->
http://reactosde.re.funpic.de/mediagroup.php?sec=Graphic%20arts
) - - - -History: - -2005-02-25 Klemens Friedl _____ Copied: trunk/reactos/media/wallpapers/wallpapers.txt (from rev 13745, trunk/ReactOS Wallpapers.txt)
19 years, 10 months
1
0
0
0
← Newer
1
2
3
4
5
6
7
...
42
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Results per page:
10
25
50
100
200