Compare commits

...

2893 Commits

Author SHA1 Message Date
Gé van Geldorp
b5a5946810 Merge 15334:15712 from trunk (but don't activate xmlbuild)
svn path=/branches/xen/; revision=15713
2005-06-01 16:27:21 +00:00
Alex Ionescu
c5bf36a5de Fix some debug messages (do I need to patch this to wine?)
svn path=/trunk/; revision=15712
2005-06-01 01:59:05 +00:00
Alex Ionescu
18aa07be14 Fix some debug messages
svn path=/trunk/; revision=15711
2005-06-01 01:56:55 +00:00
Magnus Olsen
bf6e782ee1 small optimze for StretchBlt
now do only getpixel ones instead call hole time on getpixel for the color value when it stretch to biger BMP
the hole stretchblt need to be optimze this code are geting it working bit faster and it is reference implementation

svn path=/trunk/; revision=15710
2005-05-31 23:58:14 +00:00
Gé van Geldorp
17d0c2f684 Small present for ion
svn path=/trunk/; revision=15709
2005-05-31 22:06:18 +00:00
Gé van Geldorp
1d88ea31d0 Update to xen-unstable 1.1602
svn path=/branches/xen/; revision=15708
2005-05-31 21:40:24 +00:00
Klemens Friedl
2764274eb7 update wallpaper list
svn path=/trunk/; revision=15707
2005-05-31 20:47:11 +00:00
Casper Hornstrup
46fc8e6a4c Delete
svn path=/trunk/; revision=15706
2005-05-31 20:40:27 +00:00
Casper Hornstrup
f892959c3d MP configuration
svn path=/trunk/; revision=15705
2005-05-31 20:39:13 +00:00
Magnus Olsen
0a91aa1d44 strechblt
gain very lite perfomen boost

svn path=/trunk/; revision=15704
2005-05-31 19:44:36 +00:00
Casper Hornstrup
b4dae62ae5 Generate SMP friendly temporary filenames
svn path=/trunk/; revision=15703
2005-05-31 17:30:54 +00:00
Magnus Olsen
e346b7e2ce complete dummy hal
svn path=/trunk/; revision=15702
2005-05-31 15:46:26 +00:00
Magnus Olsen
64d4d57449 Fix a bugin strechblt. it can now zoom in or out in any bpp
still this need todo
/* FIXME :  MaskOrigin, BrushOrigin, ClipRegion, Mode ? */
/* This is a reference implementation, it hasn't been optimized for speed */



svn path=/trunk/; revision=15701
2005-05-31 15:19:10 +00:00
Hartmut Birr
63843d944f - Added a missing dereferencing in NtTerminateProcess.
- Don't access already freed memory while sending messages to the termination port (in PspExitThread).

svn path=/trunk/; revision=15700
2005-05-31 15:01:29 +00:00
Hartmut Birr
9029590177 Try always to open a file as named object first.
This is necessary for the redirection to NUL which is used by the new build system.

svn path=/trunk/; revision=15699
2005-05-31 14:56:55 +00:00
Hartmut Birr
17b55d1d60 Changed the indentation to a more readable format (no other changes).
svn path=/trunk/; revision=15698
2005-05-31 14:51:53 +00:00
Magnus Olsen
e79b3bf80c implement strechblt for all 8bpp this code are not optimze.
tested with winquake 8bpp to 16/32bpp. 
/* FIXME :  MaskOrigin, BrushOrigin, ClipRegion, Mode ? */
/* This is a reference implementation, it hasn't been optimized for speed */

svn path=/trunk/; revision=15697
2005-05-31 14:11:02 +00:00
Hervé Poussineau
48af34a807 Add registry entries for serial mouse driver
svn path=/trunk/; revision=15696
2005-05-31 13:49:41 +00:00
Hervé Poussineau
eddf35ba2a Don't try to detect serial ports at known I/O addresses. They have to be written in registry and enumerated by Root bus enumerator.
Get interrupt informations from AllocatedResourcesTranslated in IRP_MN_START_DEVICE

svn path=/trunk/; revision=15695
2005-05-31 10:35:22 +00:00
James Tabor
907751c162 Change Xml from msafd32.dll to msafd.dll.
svn path=/trunk/; revision=15694
2005-05-31 08:02:29 +00:00
Hartmut Birr
c46482a139 Build a correct console handle.
svn path=/trunk/; revision=15693
2005-05-30 23:22:15 +00:00
Hervé Poussineau
361b320cf8 Read resource requirements list for devices enumerated by Root bus
svn path=/trunk/; revision=15692
2005-05-30 23:01:37 +00:00
Hervé Poussineau
13ffb8ef14 Write resource requirements list in the registry, instead of its address
svn path=/trunk/; revision=15691
2005-05-30 22:55:09 +00:00
Gé van Geldorp
12628f673c Work around problem in wrc
svn path=/trunk/; revision=15690
2005-05-30 21:35:07 +00:00
Gé van Geldorp
e163d454bc Revert last change, it was causing build problems. Go back to causing run
problems instead (try Start/Run/Browse)

svn path=/trunk/; revision=15689
2005-05-30 20:37:29 +00:00
Hartmut Birr
1fac54757a Check for a valid console handle.
svn path=/trunk/; revision=15688
2005-05-30 20:13:35 +00:00
Hartmut Birr
e3d66fd5c6 - Don't duplicate the process handle.
- Do close the process and thread handle if the caller doesn't request it.

svn path=/trunk/; revision=15687
2005-05-30 20:11:44 +00:00
Aleksey Bragin
277b2da899 Add translation for "Templates" by unC0Rr
svn path=/trunk/; revision=15686
2005-05-30 19:45:04 +00:00
Gé van Geldorp
9948c2bbfa Revert some incorrect changes that were made during rbuild merge
svn path=/trunk/; revision=15685
2005-05-30 19:19:06 +00:00
Aleksey Bragin
1e05d99733 Added russian translation for lib/userenv. Done by Dimtry Philippov.
svn path=/trunk/; revision=15684
2005-05-30 18:46:49 +00:00
Filip Navara
61cbda4605 Don't lock the primary surface just to get info we already have.
svn path=/trunk/; revision=15681
2005-05-30 13:00:50 +00:00
Filip Navara
5417e5d19c Add MSVFW32 and MSWSOCK to the build.
svn path=/trunk/; revision=15680
2005-05-30 12:52:38 +00:00
Filip Navara
b84060f8e3 Remove redundant line...
svn path=/trunk/; revision=15679
2005-05-30 08:12:30 +00:00
Magnus Olsen
3eedff3253 fix winquake color glitc bug
the text are now whie instead for black

svn path=/trunk/; revision=15678
2005-05-30 07:27:22 +00:00
Magnus Olsen
30976b41c4 add rospref to defualt build
and remove a makefile that is not need it 
patch By WaxDragon

svn path=/trunk/; revision=15677
2005-05-29 22:33:25 +00:00
Gé van Geldorp
f46df32f70 Prevent kernel32.dll and winmm.dll from overlapping
svn path=/trunk/; revision=15676
2005-05-29 21:40:17 +00:00
Aleksey Bragin
554f18954d Added WS_VSCROLL to a language selection combobox (thx to unC0Rr)
svn path=/trunk/; revision=15675
2005-05-29 21:16:29 +00:00
Magnus Olsen
8c2b8755dc remove old makefile add xml makefile
svn path=/trunk/; revision=15674
2005-05-29 21:00:11 +00:00
Magnus Olsen
9cd1969b76 fix expand.exe compile and include on the bootcd
svn path=/trunk/; revision=15673
2005-05-29 20:58:38 +00:00
Alex Ionescu
4286032cc7 Fix function bug
svn path=/trunk/; revision=15672
2005-05-29 20:49:56 +00:00
Hervé Poussineau
7599760096 Read device instance IDs in registry instead of forcing 0000. This allows more than one instance for each device enumerated by Root bus.
Be ready to have resource requirements for each device instance (not used ATM)
Replace some ExAllocatePool/ExFreePool with ExAllocatePoolWithTag/ExFreePoolWithTag

svn path=/trunk/; revision=15671
2005-05-29 19:48:43 +00:00
Alex Ionescu
39e84ca95f Wrappers for debug builds only, like before.
svn path=/trunk/; revision=15670
2005-05-29 19:41:24 +00:00
Gé van Geldorp
045a7df56c Don't build as Unicode
svn path=/trunk/; revision=15669
2005-05-29 19:06:30 +00:00
Casper Hornstrup
3444049ffb Install explorer-cfg-template.xml
svn path=/trunk/; revision=15668
2005-05-29 16:07:35 +00:00
Alex Ionescu
0e1269ee48 Build at 2GB like before
svn path=/trunk/; revision=15667
2005-05-29 16:07:05 +00:00
Hartmut Birr
a67e88ab21 Change the object to non permanent if an error occurs (in NtCreateDirectoryObject).
svn path=/trunk/; revision=15666
2005-05-29 15:43:53 +00:00
Hartmut Birr
6ec730fc4c Reset the permanent flag if the object is changed to non permanent.
svn path=/trunk/; revision=15665
2005-05-29 15:41:24 +00:00
Hartmut Birr
717888776f Lock the directory while it is parsed.
svn path=/trunk/; revision=15664
2005-05-29 15:37:47 +00:00
Magnus Olsen
2c5946dd01 remove some unse Makefile.ros-template files
not longer need it

svn path=/trunk/; revision=15663
2005-05-29 15:17:38 +00:00
Filip Navara
8b4668efce Set entry point to zero.
svn path=/trunk/; revision=15662
2005-05-29 15:10:11 +00:00
Casper Hornstrup
f5fdc514d3 vgamp.sys, not vgamp.dll
svn path=/trunk/; revision=15661
2005-05-29 15:05:22 +00:00
Casper Hornstrup
ba885106f7 Install to system32
svn path=/trunk/; revision=15660
2005-05-29 14:51:17 +00:00
Casper Hornstrup
3cb2f38e73 Install more modules
svn path=/trunk/; revision=15659
2005-05-29 14:35:36 +00:00
Gé van Geldorp
204cfe40fe Use standard debug macros
svn path=/trunk/; revision=15658
2005-05-29 14:26:21 +00:00
Casper Hornstrup
93d4234a07 regsvr32.exe, not regsvr32.dll
svn path=/trunk/; revision=15657
2005-05-29 14:09:04 +00:00
Casper Hornstrup
750ce3d65a Autodetect nasm
svn path=/trunk/; revision=15656
2005-05-29 11:51:37 +00:00
Martin Fuchs
66500a1428 implement 'delete' command
svn path=/trunk/; revision=15655
2005-05-29 11:42:46 +00:00
Martin Fuchs
32ec815105 switch to SHFileOperation() for file copy and move operations
svn path=/trunk/; revision=15654
2005-05-29 09:58:47 +00:00
Martin Fuchs
ff58b88eaf handle copy/move for already existing target directories
svn path=/trunk/; revision=15653
2005-05-29 09:39:31 +00:00
Martin Fuchs
02fa1a2b59 implement file copying
svn path=/trunk/; revision=15652
2005-05-29 08:47:23 +00:00
Martin Fuchs
2a46b799fc refresh display after executing a context menu command
svn path=/trunk/; revision=15651
2005-05-29 08:38:23 +00:00
Filip Navara
5c43578bfd Fix ASSERT conditions.
svn path=/trunk/; revision=15650
2005-05-29 07:29:59 +00:00
Magnus Olsen
d593712681 remove some ros-tempöate from old building system
svn path=/trunk/; revision=15649
2005-05-29 01:04:44 +00:00
Thomas Bluemel
d1d04bc6c6 fix gcc4 warnings
svn path=/trunk/; revision=15648
2005-05-29 00:04:41 +00:00
Magnus Olsen
89f3ea02c7 this two file are not need any longer
svn path=/trunk/; revision=15647
2005-05-28 23:38:58 +00:00
Magnus Olsen
7e6a4cd48c Remove two file that are not need any longer
fix some compilings warings

svn path=/trunk/; revision=15646
2005-05-28 23:34:24 +00:00
Alex Ionescu
de71d516e8 disable assert until someone fixes this
svn path=/trunk/; revision=15645
2005-05-28 23:26:37 +00:00
Magnus Olsen
54805d4cf5 mising desk.rc in the xml files
de.rc and cz.rc a resuse id was change 

svn path=/trunk/; revision=15644
2005-05-28 23:16:12 +00:00
Alex Ionescu
2ca6508908 More fixes from yours truly
svn path=/trunk/; revision=15643
2005-05-28 23:06:49 +00:00
Alex Ionescu
a2efaabdcd more build fixes
svn path=/trunk/; revision=15642
2005-05-28 22:56:14 +00:00
Alex Ionescu
0ba1f085f1 more build fixes
svn path=/trunk/; revision=15641
2005-05-28 22:48:33 +00:00
Thomas Bluemel
3574d717a4 little fix
svn path=/trunk/; revision=15640
2005-05-28 22:40:04 +00:00
James Tabor
ad652aad95 Added usbuhci to xml file.
svn path=/trunk/; revision=15639
2005-05-28 22:25:51 +00:00
James Tabor
397ca71b9f Added usbohci to xml file.
svn path=/trunk/; revision=15638
2005-05-28 22:25:29 +00:00
James Tabor
a2497ea64c Added usbehci to xml file.
svn path=/trunk/; revision=15637
2005-05-28 22:25:09 +00:00
James Tabor
39b694fcf3 Added usb miniport to xml file.
svn path=/trunk/; revision=15636
2005-05-28 22:24:22 +00:00
James Tabor
8a624fa286 Added usb miniport to xml file.
svn path=/trunk/; revision=15635
2005-05-28 22:23:51 +00:00
Thomas Bluemel
12e17e01f0 make rbuild compile with gcc4
svn path=/trunk/; revision=15634
2005-05-28 22:22:25 +00:00
Alex Ionescu
2db9bd4682 Fix some build problems
svn path=/trunk/; revision=15633
2005-05-28 22:18:44 +00:00
Martin Fuchs
9a4b9913ce fix case problem of sv.rc third (and hopefully last ;-) time for unix+windows builds
svn path=/trunk/; revision=15632
2005-05-28 22:12:40 +00:00
Gé van Geldorp
bf1ac08f8f Make compiler happy
svn path=/trunk/; revision=15631
2005-05-28 22:08:49 +00:00
Gé van Geldorp
99a53a6f13 Robert Shearman <rob@codeweavers.com>
- Rename DllRegisterServer and DllUnregisterServer to avoid confusion
  with the COM functions of different signatures.

svn path=/trunk/; revision=15630
2005-05-28 22:04:24 +00:00
Gé van Geldorp
2ba2487f4b Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
- Removed unnecessary code in the 16-bit DllEntryPoint function of some
  dlls, and also fixed its ordinal in a few places.
Mike McCormack <mike@codeweavers.com>
- Make WINMM_IData statically allocated.
- Make multimedia threads high priority.
Robert Reif <reif@earthlink.net>
- Change FIXME to WARN.
- Set thread priority for timer thread.
- Add timer thread priority test.

svn path=/trunk/; revision=15629
2005-05-28 22:01:15 +00:00
James Tabor
ae660b3636 Added def to xml file.
svn path=/trunk/; revision=15628
2005-05-28 22:00:46 +00:00
James Tabor
bcc09d453e Added def to xml file.
svn path=/trunk/; revision=15627
2005-05-28 22:00:27 +00:00
Alex Ionescu
da2d081ecb use right optimization setting
svn path=/trunk/; revision=15626
2005-05-28 21:46:37 +00:00
Gé van Geldorp
9259eba707 Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Troy Rollo <wine@troy.rollo.name>
- Implement URLMonikerImpl_BindToStorage.
- Correct bug truncating downloaded files to 4096 bytes.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Separated IBinding and IMoniker interfaces.
Mike McCormack <mike@codeweavers.com>
- Add the missing interface method PromptAction to
  IInternetZoneManager.
- Stub implementation for GetSoftwareUpdateInfo.
Francois Gouget <fgouget@free.fr>
- Update win32.api to match the current sources.
- Declare CoGetClassObjectFromURL() in urlmon.h.
Christian Costa <titan.costa@wanadoo.fr>
- Added stub implementation for CoGetClassObjectFromURL.

svn path=/trunk/; revision=15625
2005-05-28 21:44:21 +00:00
James Tabor
d07eefd752 Temp Fix until I figure out what is wrong with Asserts.
svn path=/trunk/; revision=15624
2005-05-28 21:40:01 +00:00
Gé van Geldorp
dfe4710889 Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
- Test cases for URL_UNESCAPE and small fix.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=15623
2005-05-28 21:39:03 +00:00
James Tabor
3c412fecf4 Add Usbport to new build system.
svn path=/trunk/; revision=15622
2005-05-28 21:38:59 +00:00
James Tabor
b39c62c8bb Add Usbport to new build system.
svn path=/trunk/; revision=15621
2005-05-28 21:38:05 +00:00
Gé van Geldorp
74c1a38507 Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Robert Shearman <rob@codeweavers.com>
- Rename MODULENAME_Dll* functions to Dll* for better consistency and
  type checking.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use SUBLANG_NEUTRAL for French resources.

svn path=/trunk/; revision=15620
2005-05-28 21:34:33 +00:00
Magnus Olsen
e9c01796ad fix compilings warings
svn path=/trunk/; revision=15619
2005-05-28 21:32:23 +00:00
James Tabor
522e3d74e0 Add Usbhub to new build system.
svn path=/trunk/; revision=15618
2005-05-28 21:30:37 +00:00
Gé van Geldorp
05e1c2d4b7 Ge van Geldorp <gvg@reactos.com>
- Overlay icons for .lnk files with a small arrow in the lower left
  corner.
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
- Removed unnecessary code in the 16-bit DllEntryPoint function of some
  dlls, and also fixed its ordinal in a few places.
- Comment out stub WEP entry points so that we can call WEP for builtin
  dlls too.
Juan Lang <juan_lang@yahoo.com>
- Fixes to IShellFolder::GetAttributesOf implementations, spotted by
  silverblade_:
  - a count of zero is allowed to GetAttributesOf if apidl is NULL
  - SFGAO_VALIDATE must be cleared upon return
- only log unsupported flags in ShellExecute
- environment variables are expanded, so SEE_MASK_DOENVSUBST is
  supported
Michael Jung <mjung@iss.tu-darmstadt.de>
- Add a new CLSID for UnixDosFolder, which is identical to UnixFolder,
  but does unix <-> dos path conversion for GetDisplayNameOf and
  ParseDisplayName.
- Make the root of the shell extension map to the root of the unix
  filesystem.
- More robustly query the SHGDN_FORPARSING flag in the shell32's folders
  GetDisplayNameOf methods.
- Fixed GetDisplayNameOf method to not depend on incorrect behaviour
  regarding the SHGDN_INFOLDER flag.
- Fixed MyComputer's GetDisplayNameOf method.
- Return a cloned PIDL by SHBrowseForFolder to avoid heap corruption.
- Fixed incorrect IShellFolder::EnumOjects API usage.
- Support for regular files (as opposed to directories).
- Display a drive icon for the unix root directory.
- Consider only the GIL_FORSHORTCUT flag in SIC_CompareEntries.
Stefan Doesinger <stefandoesinger@gmx.at>
- Handle cidl==0 in shfldr_desktop, shfldr_fs and shfldr_mycomp.
- Remove the dwAttributes member from the IGenericSFImpl class, it's
  not needed and can't be initialised in Initialize and InitializeEx.
Mike McCormack <mike@codeweavers.com>
- Split SHGetFileInfoW into two functions.
- Remove static variables in SHBrowseForFolder implementation.
- Split up the window procedure.
- Remove some unused include files.
- MSI advertised shortcuts don't require a product ID.
Peter Berg Larsen <pebl@math.ku.dk>
- Rewritten DoEnvironmentSubst16.
Kouji Sasaki <taro-x@justsystem.co.jp>
- Added the processing for determination of SFGAO_HASSUBFOLDER flag in
  SHELL32_GetItemAttribute function.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Huw Davies <huw@codeweavers.com>
- It makes no sense to have a left pointing arrow as the desktop icon.
  Replace it with something more appropiate.
Mike Hearn <mh@codeweavers.com>
- Fix SHELL_GetPathFromIDList[AW] to return the desktop path given an
  empty PIDL.

svn path=/trunk/; revision=15617
2005-05-28 21:30:32 +00:00
James Tabor
1a3b44f52a Add Usbd to new build system.
svn path=/trunk/; revision=15616
2005-05-28 21:30:02 +00:00
James Tabor
eeec0bf547 Add Usb Directory to new build system.
svn path=/trunk/; revision=15615
2005-05-28 21:29:20 +00:00
James Tabor
edd06a247e Add Usb Directory to new build system.
svn path=/trunk/; revision=15614
2005-05-28 21:28:11 +00:00
Magnus Olsen
a205dac113 remove soem warings for optimze build
svn path=/trunk/; revision=15613
2005-05-28 21:16:34 +00:00
Aleksey Bragin
282184ee88 Added vfatxlib support in the new build system
svn path=/trunk/; revision=15612
2005-05-28 21:08:56 +00:00
Magnus Olsen
a8575f00b3 check see if the fix have alread be done
fix secon time right unix case

svn path=/trunk/; revision=15610
2005-05-28 20:21:07 +00:00
Martin Fuchs
da712a816d fix unix build
svn path=/trunk/; revision=15609
2005-05-28 20:07:55 +00:00
Martin Fuchs
8262f1f8b1 remove duplicate file
svn path=/trunk/; revision=15608
2005-05-28 20:06:29 +00:00
Casper Hornstrup
a17b3fbff0 Remove unneeded files
svn path=/trunk/; revision=15607
2005-05-28 19:47:04 +00:00
Filip Navara
078f2e9f5f Fix a warning.
svn path=/trunk/; revision=15606
2005-05-28 19:38:54 +00:00
Casper Hornstrup
d11c96fa89 Add example of how to find the prefix
svn path=/trunk/; revision=15605
2005-05-28 19:38:17 +00:00
Casper Hornstrup
f4ad6d109c Use detected prefix
svn path=/trunk/; revision=15604
2005-05-28 19:35:23 +00:00
Filip Navara
080f82f9b4 Fix a few warnings...
svn path=/trunk/; revision=15603
2005-05-28 19:33:26 +00:00
Magnus Olsen
370ff8fa5f fix linux build
svn path=/trunk/; revision=15602
2005-05-28 19:24:13 +00:00
Filip Navara
b7166fefeb Define __NO_CTYPE_INLINES.
svn path=/trunk/; revision=15600
2005-05-28 18:45:55 +00:00
Casper Hornstrup
8d5843e406 -mi switch for rbuild to not have rbuild create install directories.
svn path=/trunk/; revision=15599
2005-05-28 18:43:25 +00:00
Magnus Olsen
ec7a4788aa fix compiling error
services\umpnpmgr\umpnpmgr.c:43:1: "DBG" redefined
<command line>:5:1: this is the location of the previous definition
make3: *** [obj-i386\services\umpnpmgr\umpnpmgr.o] Error 1

svn path=/trunk/; revision=15598
2005-05-28 18:13:11 +00:00
Casper Hornstrup
a330b25482 Correct documentation for ROS_PREFIX. Spotted by Sylvain Petreolle [spetreolle@yahoo.fr].
svn path=/trunk/; revision=15597
2005-05-28 18:10:26 +00:00
Hervé Poussineau
9d3eed8967 Use C99 syntax instead of C89 syntax because some compilers are not smart enough to detect and remove dead code
svn path=/trunk/; revision=15596
2005-05-28 17:45:01 +00:00
Martin Fuchs
60f7fbe06e fix pattern matching
svn path=/trunk/; revision=15595
2005-05-28 17:35:08 +00:00
Alex Ionescu
7717d6cb1a build acpi with w32api
svn path=/trunk/; revision=15594
2005-05-28 17:23:33 +00:00
Alex Ionescu
cd37d4427a Put dbg=1 as default again
svn path=/trunk/; revision=15593
2005-05-28 17:17:27 +00:00
Martin Fuchs
ee52bbdc1b implement file filtering (matching file name patterns and file types)
svn path=/trunk/; revision=15592
2005-05-28 17:13:56 +00:00
Casper Hornstrup
4828e6eaa4 Add depends target as suggested by Martin Fuchs
svn path=/trunk/; revision=15591
2005-05-28 16:51:42 +00:00
Filip Navara
cec1358fb1 Remove "assert" macro.
svn path=/trunk/; revision=15590
2005-05-28 16:47:15 +00:00
Alex Ionescu
c5d7317110 Build with optimizations
svn path=/trunk/; revision=15589
2005-05-28 16:43:25 +00:00
Alex Ionescu
0173e06e40 Build with optimizations
svn path=/trunk/; revision=15588
2005-05-28 16:42:50 +00:00
Alex Ionescu
bc13deab3b fix verbose setting
svn path=/trunk/; revision=15587
2005-05-28 16:34:23 +00:00
Casper Hornstrup
a9702af5a0 Support install target in proxy
svn path=/trunk/; revision=15586
2005-05-28 16:12:46 +00:00
Alex Ionescu
ae5e4b8581 Fix packet lib so it builds
svn path=/trunk/; revision=15585
2005-05-28 15:50:30 +00:00
KJK::Hyperion
28d278bd08 Workaround for GCC inline assembly bug, hopefully fixed for good. Builds for me in both checked and free
Bug details and status here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10153


svn path=/trunk/; revision=15584
2005-05-28 15:41:09 +00:00
Casper Hornstrup
2990d277fb Merge 12735:15568 from xmlbuildsystem branch
svn path=/trunk/; revision=15583
2005-05-28 15:18:30 +00:00
Gé van Geldorp
f9ef57f5f1 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
- Comment out stub WEP entry points so that we can call WEP for builtin
  dlls too.
- Removed unnecessary code in the 16-bit DllEntryPoint function of some
  dlls, and also fixed its ordinal in a few places.
Hans Leidekker <hans@it.vu.nl>
- Stub implementation for SetupCopyOEMInfW.
Ivan Leo Puoti <ivanleo@gmail.com>
- Minor fix in SetupQueueCopySectionW.

svn path=/trunk/; revision=15582
2005-05-28 15:14:29 +00:00
Gé van Geldorp
020f1fc22b Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Provide minimal API documentation in advapi/eventlog.c to silence some
  winapi_check output.
- Move around functions in riched20, richedit and rpcrt4 to achieve the
  same goal.
Robert Shearman <rob@codeweavers.com>
- Fix RpcServerListen so that it doesn't return
  RPC_S_ALREADY_LISTENING when the only interfaces it is listening on
  are auto listens.
- Only synchronize with server thread when necessary and move this
  into RpcMgmtWaitServerListen.
Francois Gouget <fgouget@free.fr>
- Tweak the API documentation to silence winapi_check warnings.
Hartmut Birr <hartmut.birr@gmx.de>
- Clean up if named pipe is not available.
  (merge back from WineHQ)

svn path=/trunk/; revision=15581
2005-05-28 15:04:47 +00:00
Hervé Poussineau
98b2118f6b Activate NtGdiRealizePalette code and minor fixes
by Greatlord

svn path=/trunk/; revision=15580
2005-05-28 14:56:02 +00:00
Gé van Geldorp
0474d63d02 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Provide minimal API documentation in advapi/eventlog.c to silence some
  winapi_check output.
- Move around functions in riched20, richedit and rpcrt4 to achieve the
  same goal.

svn path=/trunk/; revision=15579
2005-05-28 14:42:07 +00:00
Gé van Geldorp
9a3e5b9dad Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Ivan Leo Puoti <ivanleo@gmail.com>
- Fix crash in ME_GetRunSizeCommon(). Turn a FIXME into a TRACE.
Michael Stefaniuc <mstefani@redhat.de>
- Change an assert to a WARN.
Hannu Valtonen <Hannu.Valtonen@hut.fi>
- Use correct background color for the whole richedit control.
- Implement EM_LINESCROLL message handling
- Fix a problem with scrolling over the end of the text in
  WM_WHEELMOUSE.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Provide minimal API documentation in advapi/eventlog.c to silence some
  winapi_check output.
- Move around functions in riched20, richedit and rpcrt4 to achieve the
  same goal.
Krzysztof Foltman <wdev@foltman.com>
- Added stubs for a couple of missing 2.0 and 3.0 messages.
Phil Krylov <phil@newstar.rinet.ru>
- Fixed an error in my previous commit which caused an infinite loop in
  IE6 installer.

svn path=/trunk/; revision=15578
2005-05-28 14:40:26 +00:00
Magnus Olsen
8264539518 Implement NtGdiAnimatePalette (partly ripped from Wine)
by hpussin

svn path=/trunk/; revision=15577
2005-05-28 12:43:26 +00:00
Maarten Bosma
6cb9982a26 discription of the lists
svn path=/trunk/; revision=15576
2005-05-28 12:15:11 +00:00
Filip Navara
c5fc491484 There's no point in keeping two almost identical packet drivers in the SVN.
svn path=/trunk/; revision=15575
2005-05-28 11:38:11 +00:00
Filip Navara
f48663be6d Bye, bye "include/net/" directory...
svn path=/trunk/; revision=15574
2005-05-28 11:34:33 +00:00
Filip Navara
6b4900eb87 - Move LAN headers out of main include directory.
- Add few missing functions to ndis.h.

svn path=/trunk/; revision=15573
2005-05-28 11:30:26 +00:00
Filip Navara
9087951c85 Remove old NDIS headers.
svn path=/trunk/; revision=15572
2005-05-28 11:15:08 +00:00
Filip Navara
36043fe728 Cleanup AFD headers a bit.
svn path=/trunk/; revision=15571
2005-05-28 11:10:27 +00:00
Filip Navara
72742963f5 Use W32API.
svn path=/trunk/; revision=15570
2005-05-28 11:09:53 +00:00
Filip Navara
827234d64e Use W32API.
svn path=/trunk/; revision=15569
2005-05-28 11:09:34 +00:00
Casper Hornstrup
61768ec813 Add missing separators to RBUILD_XXX_OUT variables.
Patch by Mike Lerwill [mlist@ml-solutions.co.uk]


svn path=/branches/xmlbuildsystem/; revision=15568
2005-05-28 10:41:13 +00:00
Maarten Bosma
e550f533e4 !say
svn path=/trunk/; revision=15567
2005-05-28 10:23:48 +00:00
Gé van Geldorp
1768f9ec6b Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Robert Shearman <rob@codeweavers.com>
- Rename MODULENAME_Dll* functions to Dll* for better consistency and
  type checking.

svn path=/trunk/; revision=15566
2005-05-28 09:38:59 +00:00
Maarten Bosma
02c5fdf8d3 ArchBackmann readme. Allmost the same as http://reactos.com/wiki/index.php/ArchBlackmann
svn path=/trunk/; revision=15565
2005-05-28 09:38:28 +00:00
Gé van Geldorp
4b5e84217d Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use SUBLANG_NEUTRAL for French resources.

svn path=/trunk/; revision=15564
2005-05-28 09:37:01 +00:00
Gé van Geldorp
873d2a6ee8 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Michael Stefaniuc <mstefani@redhat.de>
- Reimplement VarMul(). It can multiply now all variants that the native
  (WinXP) function supports too.
- Fix VariantChangeType: calls to VarDecFromCy and VarDecFromDisp had
  source and destination swapped.
Richard Cohen <richard@daijobu.co.uk>
- Remove unused macro.
- Check for VT_I8 before testing it.
- VarMod returns DISP_E_OVERFLOW not E_INVALIDARG.
Robert Shearman <rob@codeweavers.com>
- Use I_RpcGetBuffer instead of HeapReAlloc for getting the Buffer
  memory.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use SUBLANG_NEUTRAL for French resources.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Fix leftover negative sign in height parameter for transparent
  bitmap.
- Properly announce whether bitmap is transparent in get_Attributes.
- GIF transparency is now palette-index based, instead of RGB based.
- Keep original bitmap and XOR mask separate, so that get_Handle
  returns original bitmap.

svn path=/trunk/; revision=15563
2005-05-28 09:35:29 +00:00
Gé van Geldorp
8eff322fdd Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
- Removed unnecessary code in the 16-bit DllEntryPoint function of some
  dlls, and also fixed its ordinal in a few places.
- Comment out stub WEP entry points so that we can call WEP for builtin
  dlls too.
Juan Lang <juan_lang@yahoo.com>
- Obvious fixes to PropVariantClear and PropVariantCopy for vector
  types.
- Add a comment, and a no-op cleanup.
- Differentiate between version 0 and version 1 property storages.
- Store property names in the code page of the property set.
- maintain proper byte order
- maintain PROPSETFLAG_ANSI flag based on codepage
- update comments
- Correct/improve error checking in IPropertyStorage.
- convert strings between property storage's code page and system code
  page
- add tests for setting code page
- fix tests and behavior to match WinXP
- Define and use endian conversion macros for big-endian machines.
Marcus Meissner <marcus@jet.franken.de>
- Move the Dll init function to compobj.c to avoid having global
  variables. Remove need of ole32_main.h.
- Make HGLOBALStream_* functions static.
- Make _xmalloc16() static.
- Staticify FTMarshalImpl definition.
Francois Gouget <fgouget@free.fr>
- Specify the proper call convention in the PropSysFreeString()
  implementation.
- Tweak the API documentation to silence winapi_check warnings.
Robert Shearman <rob@codeweavers.com>
- Add error messages on failure in file moniker load function.
- Fix incorrect pointer check in both monikers.
- Fix max size calculation of item moniker to match native.
- Add a generic moniker marshaler that works by saving & loading
  monikers to & from the stream.
- Use the generic moniker marshal in the file & item monikers and add
  a class factory for each.
- Implement IROTData::GetComparisonData for file & item monikers.
- Add a useful trace message.
- Fix more places where custom header size was calculated exclusive of
  the data size member.
- Optimize custom marshaling by getting size before calling the custom
  marshaler so we can write the header before and not use a second
  stream.
- Change remaining blocks of code with 2-space indentation to 4-space
  indentation.
- Make vtables const.
- Remove an unnecessary memcpy and let the compiler do the work.
- Write custom header up to and including size, not excluding.
- Add a stub implementation of CoIsHandlerConnected.
- Marshal objects & monikers into the ROT.
- Test for this behaviour.
Mike McCormack <mike@codeweavers.com>
- Remove unnecessary declarations and make functions static.
- Remove forward declarations.
- Make sure a stream can't be created in read only storage.
- Fix a memory leak in the ole storage implementation.
- Remove function prototypes.
Kevin Koltzau <kevin@plop.org>
- Implement Hash function on composite moniker.
Jeff Latimer <jeffl@defcen.gov.au>
- Implement the IEnumMoniker interface for the ROT and provide tests to
  exercise the interface.
Pierre d'Herbemont <stegefin@free.fr>
- Big Endian specific code fixes in order to conform with
  NONAMELESSSTRUCT.
Matthew Mastracci <matt@aclaro.com>
- Replace stub entry for StgOpenStorageEx with call to StgOpenStorage.
- Replace StgCreateStorageEx stub with call to StgCreateDocfile and add
  required STGFMT_* enumerations.

svn path=/trunk/; revision=15562
2005-05-28 09:30:04 +00:00
Hartmut Birr
dde52a04c5 Check for the complete initialisation of user mode modules.
svn path=/trunk/; revision=15561
2005-05-28 07:39:54 +00:00
Hartmut Birr
fcc81ed73f Print the complete image name on a fault.
svn path=/trunk/; revision=15560
2005-05-28 07:37:19 +00:00
Hartmut Birr
2ff428f5e5 Use correct flag while checking for uninitialized segments.
svn path=/trunk/; revision=15559
2005-05-28 07:34:54 +00:00
Hartmut Birr
a5a9986767 Don't try to resolve user mode page faults in the very early boot phase.
svn path=/trunk/; revision=15558
2005-05-28 07:32:23 +00:00
Hartmut Birr
f4df167bed Put the assembler functions into the .text section.
svn path=/trunk/; revision=15557
2005-05-28 07:26:38 +00:00
Alex Ionescu
09d22dbdea Build pci with w32api
svn path=/trunk/; revision=15556
2005-05-28 00:24:46 +00:00
Alex Ionescu
cc481fc89f Build beep with w32api
svn path=/trunk/; revision=15555
2005-05-28 00:12:41 +00:00
Hervé Poussineau
45aa5aa956 Use DHCP to get name servers IP addresses
svn path=/trunk/; revision=15554
2005-05-27 23:19:14 +00:00
Steven Edwards
1ce2f8440a use __USE_W32API
svn path=/trunk/; revision=15553
2005-05-27 22:18:48 +00:00
Steven Edwards
fc8a20b794 use -D__USE_W32API
svn path=/trunk/; revision=15552
2005-05-27 22:15:36 +00:00
Steven Edwards
f6f9cdcdbb use w32api
svn path=/trunk/; revision=15551
2005-05-27 21:51:26 +00:00
Hervé Poussineau
0a45432b70 Silent debug message
svn path=/trunk/; revision=15550
2005-05-27 20:35:59 +00:00
Magnus Olsen
c44e26473a Implement NtGdiGetSystemPaletteUse and NtGdiSetSystemPaletteUse
this code have been taken from wine 

svn path=/trunk/; revision=15549
2005-05-27 20:07:48 +00:00
Hervé Poussineau
0b6337b3d8 Don't free heap for string that we don't own
svn path=/trunk/; revision=15548
2005-05-27 19:43:07 +00:00
Casper Hornstrup
062423314c Merge 15329:15546 from trunk
svn path=/branches/xmlbuildsystem/; revision=15547
2005-05-27 19:29:24 +00:00
Magnus Olsen
4a940a2d8e Thx casper to notice a ID was mistagen by translate
svn path=/trunk/; revision=15546
2005-05-27 18:26:14 +00:00
Hartmut Birr
f30557e387 Dereference the event if the queue is freed in IntDereferenceMessageQueue.
svn path=/trunk/; revision=15545
2005-05-27 16:28:10 +00:00
Casper Hornstrup
04f5a8f558 Copy rpoolmgr.h from trunk
svn path=/branches/xmlbuildsystem/; revision=15544
2005-05-27 14:33:41 +00:00
Casper Hornstrup
0aa41d88e0 Delete
svn path=/branches/xmlbuildsystem/; revision=15543
2005-05-27 14:32:40 +00:00
Magnus Olsen
b73c53c40c fix memmory coruption in EnumDisplaySettingsExA
do not alloc memmory with heap. 

svn path=/trunk/; revision=15542
2005-05-27 14:22:06 +00:00
Magnus Olsen
68f4fc41bc fix stupied Ret uninitialized in IntChangeDisplaySettings for DGB=0 build
svn path=/trunk/; revision=15541
2005-05-27 00:32:24 +00:00
Magnus Olsen
71c9d2dddd partially implemented fullscreen in changedisplay setting
I can play winquake in fullscreen now :)


svn path=/trunk/; revision=15538
2005-05-26 22:41:31 +00:00
Gé van Geldorp
2d3d7c7078 Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Aric Stewart <aric@codeweavers.com>
- Fix a few leaking object handles.
- Correct user component publication.
- Implement MsiEnumComponentQualifiers.
- Implement Publish Components in order for MsiGetQualifiedComponent
  apis to work. Also implement MsiGetQualifiedComponent, or at least some
  of the functionality as it is supposed to install stuff if it is
  absent, which it does not do yet.
- Correct query quoting based on Mike's patch.
  Also more error messages about return codes from custom actions and
  ignore an error that we should be ignoring.
- Double terminate SZ_MULTI properly.
- ClassInfo and ExtensionInfo are also written for ADVERTISED
  components.
- Write the RegOwner and RegCompany keys as blank if they do not exist
  when doing the RegisterUser action.
- Fix quoting on queries.
- Respect '+' and '*' in WriteRegistryValues to only create the key if
  it does not already exist. Prevents overwriting values with NULL.
- We cannot internally load the files in FileCost because that action
  may be skipped or not called. So do it in CostInitialize.
- Quote the file path in SelfRegModules.
- Do not write squished null guids to the feature registration.
- Correctly use short filenames from uncompressed file sources. Also
  default feature and component install states to ABSENT instead of
  UNKNOWN.
- Correct a problem with parse_data if binary data was not in full bytes.
- More properly handle uncompressed file sources, fix the creating and
  parsing of Source Directories.
- ExecuteAction runs the whole Execute table and not just from
  InstallValidate onward.  To do this make sure we do not do the
  costing initialization work again if it is already done (by checking
  the CostingComplete Property).
- A lot of work to refine feature states, setting the state affects
  the state of all child features and also respect features that want
  to default to something other than LOCAL.
- Fix a few leaking object handles.
- Correct user component publication.
- Implement MsiEnumComponentQualifiers.
- We have a stub for MsiGetUserInfoA we should use it.
- A few small fixes.
- Add a missing msiobj_release that was resulting in a leaked object
  with each MsiCreateRecord call.
- Fix a leaking handle.
- Make MsiCollectUserInfo more internally consistent.
  Thanks to Mike McCormack.
- Fix a leaking handle in MsiConfigureProductExW.
- Implement MsiGetProductCodeW.
- Implement MsiGetUserInfoW.
- Implement MsiCollectUserInfoA/W.
- Implement MsiQueryFeatureStateW.
- Correct a leaking hkey handle.
- Expand some handling of special properties in MsiGetProductInfo.
- Fix for the return codes for the Qualified component calls. They are
  not INSTALLSTATEs but rather success values.
- Quoting fixes.
Mike McCormack <mike@codeweavers.com>
- Make sure that dialogs are only created and destroyed in a single
  thread.
- Track memory allocations in the SQL parser.
- Create the ORDER BY view in a single call.
- Simplify parsing of the FROM keyword.
- Improve parser error checking.
- Simplify parsing of select query.
- remove the unused utf8 field of an expression
- make the parse result a single assignment at top level of parsing
- abort parsing on a memory allocation failure
- Only tables can be backquoted, strings must be single quoted.
- Declare MsiExportDatabase* in the spec file, and fix a typo.
- make sure to free the string table when closing the database
- don't free szPersist in MsiOpenDatabase if it's not a string
- Avoid some non-standard str functions.
Francois Gouget <fgouget@free.fr>
- Tweak the documentation to make winapi_check happy.
Juan Lang <juan_lang@yahoo.com>
- Don't fail in RegisterFonts if the Fonts table is missing.
- Partially implement AppSearch for RegLocator-type searches.
- Turn handled errors from ERRs to WARNs or TRACEs.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use SUBLANG_NEUTRAL for French resources.
Stefan Leichter <Stefan.Leichter@camLine.com>
- Update version resource of msi.dll to current version shipped from
  windows update.
- Added minimal implementation of MsiCreateAndVerifyInstallerDirectory.
Marcus Meissner <marcus@jet.franken.de>
- Set PhysicalMemory property from system data.

svn path=/trunk/; revision=15537
2005-05-26 21:55:34 +00:00
Gé van Geldorp
15de547cc6 Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.

svn path=/trunk/; revision=15536
2005-05-26 21:15:58 +00:00
Gé van Geldorp
cc65e33b46 Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.

svn path=/trunk/; revision=15535
2005-05-26 21:09:49 +00:00
Gé van Geldorp
f4600fe75d Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.

svn path=/trunk/; revision=15534
2005-05-26 21:07:55 +00:00
Gé van Geldorp
f4f457d418 Sync to Wine-20050524:
Alexander Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.

svn path=/trunk/; revision=15533
2005-05-26 21:06:20 +00:00
Gé van Geldorp
da5d24be89 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Removed unnecessary code in the 16-bit DllEntryPoint function of some
  dlls, and also fixed its ordinal in a few places.
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
- Don't convert the template name to Unicode, it's not used by the
  dialog anyway. Clear the window property on WM_DESTROY.
Michael Jung <mjung@iss.tu-darmstadt.de>
- Use IShellFolder::GetDisplayNameOf instead of SHGetPathFromIDList to
  be able to browse shell namespace extensions.

svn path=/trunk/; revision=15532
2005-05-26 21:02:35 +00:00
Gé van Geldorp
120d7a64b9 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Kouji Sasaki <taro-x@justsystem.co.jp>
- Added handling of WM_ENABLE message.
James Hawkins <truiken@gmail.com>
- Audit the List-View control.
- Select the item under the point (x,y) in MouseHover.
- Store the click point in LISTVIEW_INFO.
- Move mouse tracking to MouseMove.
- Use DragDetect instead of TrackMouse.
- Remove the unused TrackMouse function.
- Fixed centering of tab text.
Dimi Paun <dimi@lattica.com>
- Do not compute the hit test if we don't really need it.
- Make it more explicit how we deal with WS_DISABLED.
Felix Nawothnig <felix.nawothnig@t-online.de>
- Resize listview column to autofit on a doubleclick on the
  header-divider.
- Implemented WM_ENABLE.
- Rewrote item layouting - new code fixes bitmap/image position for
  non-left-aligned text, prevents jumping when resizing non-left-aligned
  text, implements clipping for images and correctly aligns bitmaps when
  an image is already there.
- Set iItem to index before notifying callback items.
Duane Clark <dclark@akamail.com>
- Misc rectangle fixes.
- The date should be initialized from local time.
Aric Stewart <aric@codeweavers.com>
- Handle WM_NCCALCSIZE in the tab control.
Hans Leidekker <hans@it.vu.nl>
- Fix uninitialized warnings.

svn path=/trunk/; revision=15531
2005-05-26 20:52:12 +00:00
Gé van Geldorp
088013d4a4 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Added rules for building import libraries in the individual dll
  makefiles, and added support for building a .def.a static import
  library too.
Gerold Jens Wucherpfennig <gjwucherpfennig@gmx.net>
- Initial FCI work (FCICreate and FCIDestroy).

svn path=/trunk/; revision=15530
2005-05-26 20:39:17 +00:00
Magnus Olsen
ec4b70a7b6 Fix more bugs in change display. when you press on aply in desk.cpl later on ok you did get change_display fail msg. fix the return code to reboot req. Remove switch statmenet for more that one flags can be send same time. example CDS_TEST + CDS_FULLSCREEN ..... and replace thuse with if statement instead.
svn path=/trunk/; revision=15529
2005-05-26 20:07:10 +00:00
Filip Navara
2d7d796368 Report 16bpp for modes where VBE returns 15bpp.
svn path=/trunk/; revision=15528
2005-05-26 19:58:58 +00:00
Filip Navara
db46d099bc - Revert hacks added by GreatLord in revisons 15521 and 15522.
- Fix mode enumeration code on few places.

svn path=/trunk/; revision=15527
2005-05-26 19:57:54 +00:00
Hartmut Birr
deab50cb8b Protected the handle table.
svn path=/trunk/; revision=15526
2005-05-26 19:22:45 +00:00
Steven Edwards
7d4d22763c work around include_next problem when cross-compiling
svn path=/trunk/; revision=15525
2005-05-26 17:17:29 +00:00
Magnus Olsen
98bc8544de change line 15 from #if DBG to #ifdef DBG
so head builds agein

svn path=/trunk/; revision=15524
2005-05-26 15:53:24 +00:00
Hervé Poussineau
7d9d552b40 Fix compile when DBG is set
svn path=/trunk/; revision=15523
2005-05-26 15:44:04 +00:00
Magnus Olsen
38b2ccb8dd add a commet why 24bits cards fails
and maby other card will fails 
in GetAvailableModes

svn path=/trunk/; revision=15522
2005-05-26 15:15:55 +00:00
Magnus Olsen
c7ae12e813 Fix the problem for 24 bits graphic card.
But it report color deep 15 are supported now. 
it solv the problem. Thanks WaxDragon
Hope filip does like this change. 

svn path=/trunk/; revision=15521
2005-05-26 14:46:23 +00:00
Alex Ionescu
db1bf61e23 Strip files on retail builds and do not send file/section alignment twice
svn path=/trunk/; revision=15520
2005-05-26 13:55:13 +00:00
Alex Ionescu
3f0ddf5160 DEBUG1 on checked only
svn path=/trunk/; revision=15519
2005-05-26 13:53:15 +00:00
Alex Ionescu
6b34120402 make PE loader more lenient with alignment. it could previously not load PEs that I can load on Windows
svn path=/trunk/; revision=15518
2005-05-26 13:52:30 +00:00
Alex Ionescu
ed141bff38 Set non-retail (checked) build as default. Developers should have no reason to use a retail build unless testing a final release version. This also speeds up compilation and reduces the number of compile errors due to developers building with dbg=0 and breaking dbg=1 code. Please do not code with dbg=0 without testing your patches in dbg=1.
svn path=/trunk/; revision=15517
2005-05-26 13:50:52 +00:00
Alex Ionescu
42db7235dc Do not print DPRINT1s on retail builds
svn path=/trunk/; revision=15516
2005-05-26 13:48:55 +00:00
Alex Ionescu
c8a85bc545 Enable and fix NE2000 settings so it works out-of-the-box for QEMU users
svn path=/trunk/; revision=15515
2005-05-26 13:47:21 +00:00
Alex Ionescu
ff1ad3a698 Fix debug messages which previously forced NDEBUG to be off
svn path=/trunk/; revision=15514
2005-05-26 13:45:48 +00:00
Alex Ionescu
1883e277ac Dynamically load and detect iphlpapi. Makes rpcrt4 work on systems without the DLL and also does not force every app on the system to load the network libraries like before
svn path=/trunk/; revision=15513
2005-05-26 13:45:08 +00:00
Alex Ionescu
acec4be2e4 Mark initial loader APIs are INIT_FUNCTION so they can be freed
svn path=/trunk/; revision=15512
2005-05-26 13:44:14 +00:00
Alex Ionescu
45e66d3fce Do not build debug PS function on reatail build
svn path=/trunk/; revision=15511
2005-05-26 13:43:52 +00:00
Alex Ionescu
be4adc56e9 Disable pool debug settings on a retail build and increase speed
svn path=/trunk/; revision=15510
2005-05-26 13:43:13 +00:00
Alex Ionescu
c013c83354 Don't compile ROS-specific tab-debug commands on a retail build
svn path=/trunk/; revision=15509
2005-05-26 13:42:41 +00:00
Alex Ionescu
2e7e95a597 Fix typos in debug messages
svn path=/trunk/; revision=15508
2005-05-26 13:42:07 +00:00
Alex Ionescu
d74a4d1b37 Don't compile pool debug apis on a retail build
svn path=/trunk/; revision=15507
2005-05-26 13:41:46 +00:00
Alex Ionescu
650c785b4a Don't allocate section segments in nonpaged pool
svn path=/trunk/; revision=15506
2005-05-26 13:41:04 +00:00
Alex Ionescu
97db2802cf Fix pool code to actually work when some other defines are used
svn path=/trunk/; revision=15505
2005-05-26 13:40:40 +00:00
Alex Ionescu
9e843895bf Do not allow virtual mem queries > 0x80000000 even if you're from kmode. Remove deprecated debug messages
svn path=/trunk/; revision=15504
2005-05-26 13:39:40 +00:00
Alex Ionescu
16982c81f8 Shut up i8042prt
svn path=/trunk/; revision=15503
2005-05-26 13:36:30 +00:00
Alex Ionescu
e46d7967c7 Don't free heap for string that we don't own
svn path=/trunk/; revision=15502
2005-05-26 13:35:08 +00:00
Maarten Bosma
a897f17cb4 PackageManager
svn path=/trunk/; revision=15501
2005-05-26 10:01:14 +00:00
Gé van Geldorp
b395078e1e Sync to Wine-20050524:
Michael Stefaniuc <mstefani@redhat.de>
- Change the type of 1 bit wide bitfields to unsigned.

svn path=/trunk/; revision=15500
2005-05-26 09:46:02 +00:00
Gé van Geldorp
1149b4b325 Sync to Wine-20050524:
Alexandre Julliard <julliard@winehq.org>
- Free delayed import modules on PROCESS_DETACH.
- Removed no longer used support for 32-bit register entry points.
- Added support in winebuild for specifying import libraries directly on
  the command line without the -l option.
- Changed the -d option to only mark the library as delayed, the actual
  loading is now done separately.
- Generate 16-bit resources in the proper format inside the module data,
  and get rid of the special case for builtins in NE_DefResourceHandler.
- Generate the 16-bit module header in the standard on-disk format, so
  that winebuild doesn't need to know about kernel internal structures.
- Moved the generated code segment for 16-bit builtins inside the module
  structure.
- Get rid of the BUILTIN16_DESCRIPTOR structure and directly register
  the MZ header instead.
- Use RaiseException instead of RtlRaiseException in 16-bit spec files
  since they already depend on kernel32.
- Renamed __wine_(un)register_dll_16 to __wine_dll_(un)register_16 for
  consistency with the 32-bit version, and also make the register
  function use the same prototype as the 32-bit one.
- Use the exported IMAGE_OS2_HEADER to generate the module header in the
  spec file, and moved the NE_MODULE structure definition to
  kernel16_private.h.
- Avoid referencing stackframe.h from outside kernel32.
- Moved data structures for 16-bit relay calls to winbase16.h and
  removed builtin16.h.
- Store the 16-bit stack pointer in the WOW32Reserved TEB field.
- Use RaiseException instead of RtlRaiseException for delayed entry
  points load failure to avoid creating a dependency on ntdll.

svn path=/trunk/; revision=15499
2005-05-26 09:44:59 +00:00
Hervé Poussineau
4f897f671b Fix DPRINT1 messages to display correctly memory ranges
svn path=/trunk/; revision=15498
2005-05-26 06:30:47 +00:00
Gé van Geldorp
d670d4f7e6 Implement sub-allocation of small requests
svn path=/trunk/; revision=15497
2005-05-25 22:36:35 +00:00
Aleksey Bragin
fcb49212d9 Now UHCI HCD driver supports recognizing Memory type of resource. Should help James Tabor's problem (VIA chipset, getting only memory resource as unrecognized, and thus driver failing loading).
svn path=/trunk/; revision=15496
2005-05-25 20:59:13 +00:00
Magnus Olsen
a76329673c New normal curosr by irc:mf
svn path=/trunk/; revision=15495
2005-05-25 14:25:19 +00:00
Alex Ionescu
46dd88ef81 Build usetup and ntoskrnl and winmm in gcc 4.0
svn path=/trunk/; revision=15494
2005-05-25 13:07:27 +00:00
Magnus Olsen
332a72f9b8 Correct bug do not enum other color deep that 8,16,24,32 it will create memmory leek other wise.
in the current code. 

svn path=/trunk/; revision=15493
2005-05-25 09:14:29 +00:00
Alex Ionescu
b09db8ab65 Nonpaged Pool Liberation Day: Allow PagedPool to be used earlier, allow fast mutex to be used earlier on debug builds. Allocate all Se stuff from PagedPool, set the right object types to use paged pool, allocate all strings from paged pool, allocate PE sections from paged pool, and a bunch of other things which should, imo, be in paged pool. If anyone has any contradicting proof, let me know...until then, enjoy ~4-6MB more NonPagedPool
svn path=/trunk/; revision=15492
2005-05-25 04:16:56 +00:00
Alex Ionescu
c1c8137afa Tag the MDL buffer
svn path=/trunk/; revision=15491
2005-05-25 02:20:01 +00:00
Alex Ionescu
007cd2d88a remove debug message
svn path=/trunk/; revision=15490
2005-05-25 01:49:50 +00:00
Magnus Olsen
4f7ea2284f Add 24bits mode strings
hope it fix qemu 

svn path=/trunk/; revision=15489
2005-05-25 00:04:12 +00:00
Alex Ionescu
53db168c0d Fix Tag Usage
svn path=/trunk/; revision=15487
2005-05-24 21:32:47 +00:00
Alex Ionescu
1d899ce8b3 Fix memory leaks in object manager, use tags and use some more public types
svn path=/trunk/; revision=15486
2005-05-24 21:21:34 +00:00
Alex Ionescu
ef8d82998d Fix DHCP from crashing, silence tcp and iphlp
svn path=/trunk/; revision=15485
2005-05-24 21:04:44 +00:00
Magnus Olsen
d92b106774 ChangeDisplay
1. Add debug msg
2. Corrent some return value for CDS_UPDATEREGISTRY
3. Remove #ifdef CDS_VIDEOPARAMETERS  


svn path=/trunk/; revision=15484
2005-05-24 19:52:43 +00:00
Magnus Olsen
d3f81ff12b add CDS_VIDEOPARAMETERS for changedisplay setting it was mising in our include files
svn path=/trunk/; revision=15483
2005-05-24 18:42:54 +00:00
Magnus Olsen
06a280398f VBE driver never write which reslutions it should use as defualt
therefor the change resultions did not working on bootcd 
do not remove this settings. from the reg. 
Thanks

svn path=/trunk/; revision=15482
2005-05-24 14:14:40 +00:00
Hervé Poussineau
d3881cf0ae Add ReactOS version at the start of the debug log
svn path=/trunk/; revision=15481
2005-05-23 20:31:53 +00:00
Hervé Poussineau
4ad1699bf6 Write keyboard identifier in right registry key
svn path=/trunk/; revision=15480
2005-05-23 19:30:22 +00:00
James Tabor
a1b9addb33 I give up! I fix the rest of the headers later.
svn path=/trunk/; revision=15479
2005-05-23 19:17:36 +00:00
James Tabor
15e364a635 Fixup sysinfo.c SystemProcessInfo header.
svn path=/trunk/; revision=15478
2005-05-23 18:59:21 +00:00
James Tabor
78d9f19627 Update include header and update waitreason list.
svn path=/trunk/; revision=15477
2005-05-23 17:13:23 +00:00
Magnus Olsen
ab215aa2bf 1. remove all hardcode strings to En.rc
2. make it unicode and anis 

svn path=/trunk/; revision=15476
2005-05-23 16:48:22 +00:00
Hervé Poussineau
d920c40eee Revert 15473 and 15474 as Alex doesn't like them
svn path=/trunk/; revision=15475
2005-05-23 08:50:29 +00:00
Hervé Poussineau
cc7ba13666 Add ReactOS version at the start of the debug log
svn path=/trunk/; revision=15474
2005-05-23 05:20:39 +00:00
Hervé Poussineau
58ba3012c1 Remove some debug messages at boot
svn path=/trunk/; revision=15473
2005-05-23 05:00:22 +00:00
James Tabor
336ae48375 Revert DPRINT1.
svn path=/trunk/; revision=15472
2005-05-22 22:12:12 +00:00
Hervé Poussineau
1da69bf5f7 Fix compile error when NDEBUG is not set
svn path=/trunk/; revision=15471
2005-05-22 22:04:57 +00:00
Hartmut Birr
8b6398a0e3 ObInsertObject must always return STATUS_OBJECT_NAME_COLLISION if an object with the same name exist.
svn path=/trunk/; revision=15470
2005-05-22 16:48:30 +00:00
Hartmut Birr
4eba3d8e71 Don't create the media change event as named object.
svn path=/trunk/; revision=15469
2005-05-22 16:44:36 +00:00
Emanuele Aliberti
5b45accaef svn propset {keyword, eol-type}
svn path=/trunk/; revision=15468
2005-05-22 16:10:10 +00:00
Emanuele Aliberti
6481ed1ea7 SM: change the way sessions are managed.
(it may be buggy)

svn path=/trunk/; revision=15467
2005-05-22 15:54:15 +00:00
James Tabor
f4e960c324 This is a CompareStringW hack to get (7z313.exe /Q) to install. If anyone else has a better way, go for it!
svn path=/trunk/; revision=15466
2005-05-22 12:29:10 +00:00
Eric Kohl
f564f62205 IoRegisterDeviceInterface: Create nested keys one-by-one.
svn path=/trunk/; revision=15465
2005-05-21 19:00:42 +00:00
Eric Kohl
2455ef0040 Add DeviceClasses key.
svn path=/trunk/; revision=15464
2005-05-21 17:49:58 +00:00
Aleksey Bragin
4c338fffcf Added russian translations for libs: mpr, msacm, msi, oledlg, shdocvw.
Thanks to: Mikhail Zvyzdochkin, Dmitry Phlilippov.

svn path=/trunk/; revision=15463
2005-05-21 17:26:59 +00:00
Hartmut Birr
0c4da041a5 Set STATUS_SUCCESS instead of STATUS_PIPE_CONNECTED in NpfsSignalAndRemoveListeningServerInstance.
svn path=/trunk/; revision=15462
2005-05-21 17:05:38 +00:00
Hartmut Birr
744548fc6a Revert to rev 15172.
svn path=/trunk/; revision=15461
2005-05-21 17:02:38 +00:00
Martin Fuchs
a62f884b0b - fixed for FOR _NO_EXTENSIONS mode
- implement ID_VIEW_SPLIT command

svn path=/trunk/; revision=15460
2005-05-21 16:45:50 +00:00
Hervé Poussineau
fb4635393e Remove some debug messages at boot (DPRINT1 changed to DPRINT)
SVN maintenance in ntoskrnl/ex/: set svn:eol-style and svn:keywords properties

svn path=/trunk/; revision=15459
2005-05-21 16:33:23 +00:00
Hervé Poussineau
d7e937747c Open file with FILE_SHARE_READ in LdrLoadModule
svn path=/trunk/; revision=15458
2005-05-21 15:49:48 +00:00
Hartmut Birr
ca088cc13c Don't interpret STATUS_PIPE_CONNECTED as error.
svn path=/trunk/; revision=15457
2005-05-21 13:39:09 +00:00
Thomas Bluemel
991909bc42 minor optimization
svn path=/trunk/; revision=15456
2005-05-21 12:57:34 +00:00
Eric Kohl
4b4c510e04 Implement ConcatenatePaths and MyGetFileTitle.
svn path=/trunk/; revision=15455
2005-05-21 12:23:07 +00:00
Hartmut Birr
385055dd76 Terminate the process on exit in NtProcessStartup.
svn path=/trunk/; revision=15454
2005-05-21 12:21:30 +00:00
Hartmut Birr
69350ef25a Free all allocated memory in ObpDeleteObject.
svn path=/trunk/; revision=15453
2005-05-21 12:19:26 +00:00
Hartmut Birr
40f2f130a0 Free the capture buffer in ObReferenceObjectByName.
svn path=/trunk/; revision=15452
2005-05-21 12:11:54 +00:00
Hartmut Birr
0eeb5caed9 Set the flag FO_DIRECT_DEVICE_OPEN after the call to IoCreateStreamFileObject in IoCreateFile.
svn path=/trunk/; revision=15451
2005-05-21 12:08:46 +00:00
James Tabor
f10f1f0548 Fix ups and Clean ups.
svn path=/trunk/; revision=15450
2005-05-21 11:29:53 +00:00
Aleksey Bragin
a8779d96c8 Enable built-in debug messages usage (via CONFIG_USB_DEBUG)
svn path=/trunk/; revision=15449
2005-05-21 08:44:40 +00:00
Martin Fuchs
a47cb4260c add explorer-cz.rc to textinclude section
svn path=/trunk/; revision=15448
2005-05-21 07:35:03 +00:00
James Tabor
b8102f68c3 Added Usb cromwell to build system.
svn path=/trunk/; revision=15447
2005-05-21 02:00:52 +00:00
James Tabor
1c7838cc35 Fixups.
svn path=/trunk/; revision=15446
2005-05-21 01:57:38 +00:00
James Tabor
6120955e45 Added PKEVENT to init_waitqueue_head.
svn path=/trunk/; revision=15445
2005-05-21 01:53:53 +00:00
James Tabor
d88e7782d0 Added PKEVENT to wake_up.
svn path=/trunk/; revision=15444
2005-05-21 01:39:32 +00:00
James Tabor
4f7a419fcc Clean up end of line.
svn path=/trunk/; revision=15443
2005-05-21 01:34:50 +00:00
James Tabor
3a9cdf8c34 Added libusbcore.a to makefile
svn path=/trunk/; revision=15442
2005-05-21 01:21:29 +00:00
Hervé Poussineau
8d1c8a184f Fix bus pointer for initial device
svn path=/trunk/; revision=15441
2005-05-20 22:31:55 +00:00
Hervé Poussineau
b2eee5bb0e SVN maintenance:
Set svn:eol-style and svn:keywords for files
Set svn:ignore for directories

svn path=/trunk/; revision=15440
2005-05-20 21:53:08 +00:00
Hervé Poussineau
e277f853b7 Modify some pci_hal funcs, fix obvious errors in code
svn path=/trunk/; revision=15439
2005-05-20 21:43:57 +00:00
Magnus Olsen
b8171c1fd9 Implement same behavor for cd * as ms cmd cd *
Left to implement is /D options for cd then it is same level as ms win2k cmd cd 

En.rc
Fix a options error for cd it did say cd -, but it it is cd .

svn path=/trunk/; revision=15438
2005-05-20 21:33:49 +00:00
Casper Hornstrup
8a4a3a4cb1 Support alternate name for hooked function
svn path=/branches/xmlbuildsystem/; revision=15437
2005-05-20 19:07:23 +00:00
Hartmut Birr
750d4fd13f - Create always the output file. If no debug section exist, do not create a rossym section.
svn path=/trunk/; revision=15436
2005-05-20 18:15:44 +00:00
Casper Hornstrup
19e160bf46 Don't echo executable name of test
svn path=/branches/xmlbuildsystem/; revision=15435
2005-05-20 15:15:19 +00:00
Casper Hornstrup
d04bf21da0 Implement 'make test'
svn path=/branches/xmlbuildsystem/; revision=15434
2005-05-20 15:12:32 +00:00
Casper Hornstrup
892a2cc592 Optimize SourceFile::ReadInclude
svn path=/branches/xmlbuildsystem/; revision=15433
2005-05-20 14:55:15 +00:00
Magnus Olsen
67c71ced7c Add new thing to cd.
Make cd pr* working

svn path=/trunk/; revision=15432
2005-05-20 12:55:09 +00:00
Gé van Geldorp
1b8382a7e3 Backport to Xen 2
svn path=/branches/xen/; revision=15431
2005-05-20 10:55:55 +00:00
Gé van Geldorp
9c2b28da69 For Xen, setup paging the way the kernel wants it and
transfer control to the kernel

svn path=/branches/xen/; revision=15430
2005-05-20 10:33:27 +00:00
Art Yerkes
4a15530e10 Turned on -Werror
Propogate AdapterBinding rather than LogicalAdapter or MiniportBlock in places
where we handle a request since we might need the protocol that did the request
later on, get rid of LogicalAdapter completely as according to Filip, it's 
never needed.

Also, remove the Packet context hack in send complete if possible as this is
now unnecessary (we now send all needed information in the work item instead).

MiniQueueWorkItem, MiniDequeueWorkItem and MiniDoRequest were all changed to
take an AdapterBinding.
Added MiniRequestComplete, which handles a request complete.

Fixed hang in ipconfig and the tcpip control panel.

svn path=/trunk/; revision=15429
2005-05-20 08:06:27 +00:00
Filip Navara
188f2022f6 Lukáš "denzil" Frolka <d3nzil@gmail.com>
Czech translation of Explorer (some settings dialogs are still untranslated).

svn path=/trunk/; revision=15428
2005-05-20 06:21:01 +00:00
Steven Edwards
7fb3ebb9f9 move the rest of the alread defined tags to the private tag.h
svn path=/trunk/; revision=15427
2005-05-20 04:33:47 +00:00
Steven Edwards
3354ce28a8 started moving tags to a private internal header
svn path=/trunk/; revision=15426
2005-05-20 03:50:13 +00:00
Hervé Poussineau
50752743f5 Remove some debug messages at boot
svn path=/trunk/; revision=15425
2005-05-20 02:46:26 +00:00
Hervé Poussineau
1367527014 IopAssignDeviceResources():
Fix translated resource list for I/O ports and memory ranges
Fix raw resource list for interrupts

svn path=/trunk/; revision=15424
2005-05-20 02:37:51 +00:00
Phillip Susi
027e2bfa3a Removed invalid . from path in this usetup ini file as a temporary fix. Next step is to remove the darn ini file entirely
svn path=/trunk/; revision=15423
2005-05-20 02:21:53 +00:00
Steven Edwards
45d8d84765 adjust case on a header. Sorry Windows users. Do not use mixed case filenames.
svn path=/trunk/; revision=15422
2005-05-20 02:19:00 +00:00
Hervé Poussineau
6261f48b99 Set BusNumber and SlotNumber in resource requirements list
svn path=/trunk/; revision=15421
2005-05-20 01:54:10 +00:00
Hervé Poussineau
e34387f9c2 Remove some debug messages at boot
svn path=/trunk/; revision=15420
2005-05-20 01:10:00 +00:00
Hervé Poussineau
79361fcb93 Remove some debug messages at boot
svn path=/trunk/; revision=15419
2005-05-20 01:08:37 +00:00
Hervé Poussineau
725a500778 Set svn:keywords and svn:eol-style properties
Change some DPRINT1 to DPRINT in bug.c, clock.c, gate.c

svn path=/trunk/; revision=15418
2005-05-20 00:47:16 +00:00
Alex Ionescu
b1274d7f85 Ensure success
svn path=/trunk/; revision=15417
2005-05-20 00:17:35 +00:00
Alex Ionescu
04f9bb0465 Fix one of the added hacks. ObpCreateHAndle not exported anymore, and win32k now duplicates the handle nicely (Also faster since we don't have to attach/detach to csr anymore
svn path=/trunk/; revision=15416
2005-05-19 23:26:56 +00:00
Hervé Poussineau
026d788dcc IoGetDeviceProperty():
Fix DevicePropertyEnumeratorName
Implement DevicePropertyPhysicalDeviceObjectName

svn path=/trunk/; revision=15415
2005-05-19 22:04:45 +00:00
Hervé Poussineau
2e828da9a2 Don't create a new DriverObject if one is already existing
svn path=/trunk/; revision=15414
2005-05-19 22:02:34 +00:00
Casper Hornstrup
083a71c9f2 Option to disable automatic dependencies
svn path=/branches/xmlbuildsystem/; revision=15413
2005-05-19 19:53:01 +00:00
Steven Edwards
2342aee312 Watch the case damnit. Sorry Windows users
svn path=/branches/xmlbuildsystem/; revision=15412
2005-05-19 19:00:37 +00:00
Casper Hornstrup
72053cbd18 Don't put modules in project root to avoid overwriting the top-level makefile with a proxy makefile
svn path=/branches/xmlbuildsystem/; revision=15411
2005-05-19 18:38:04 +00:00
Magnus Olsen
765b83b774 Fix CD bug for
CD "program files"
cd did only working with CD program files 
now it support ""

svn path=/trunk/; revision=15410
2005-05-19 15:32:22 +00:00
Alex Ionescu
2df4b9dc13 Unnamed objects do not have a base directory.
svn path=/trunk/; revision=15409
2005-05-19 05:26:35 +00:00
Art Yerkes
1e16c56cc3 Don't free this MDL. The I/O manager now does it for us.
svn path=/trunk/; revision=15408
2005-05-19 03:36:20 +00:00
Alex Ionescu
e1553447e9 Don't free io completion packet twice
svn path=/trunk/; revision=15407
2005-05-19 03:24:43 +00:00
Art Yerkes
29d29f5ff5 Corrected uninitialized timeout variable. Will be needed later when ARP calls
are present in iphlpapi.

svn path=/trunk/; revision=15406
2005-05-19 02:53:52 +00:00
Alex Ionescu
f39cc83ebf fix boot on vmware
svn path=/trunk/; revision=15405
2005-05-19 01:58:24 +00:00
Alex Ionescu
c6eb354e8b fix compiling
svn path=/trunk/; revision=15404
2005-05-19 01:46:49 +00:00
Phillip Susi
5d4d912efd Rewrote usetup's file copy and cabinet extraction code to use memory mapped files
This increased performance and the code is cleaner
Still needs a bit more cleaning up, but so far, looks good, needs some testing



svn path=/trunk/; revision=15403
2005-05-19 00:59:40 +00:00
Hervé Poussineau
7403e34ca9 Basic resources device allocation (doesn't prevent conflicts)
Send allocated resources in IRP_MN_START_DEVICE

svn path=/trunk/; revision=15402
2005-05-18 22:05:11 +00:00
Hervé Poussineau
3e43a2215b Use translated resources list to get informations about interrupt
svn path=/trunk/; revision=15401
2005-05-18 21:48:41 +00:00
Alex Ionescu
3d90c8bdad Revert accidental commit
svn path=/trunk/; revision=15400
2005-05-18 21:28:12 +00:00
Hervé Poussineau
4507d7ac14 Implement IRP_MN_QUERY_RESOURCE_REQUIREMENTS
svn path=/trunk/; revision=15399
2005-05-18 21:23:54 +00:00
Magnus Olsen
7646e46a35 Swdish translations by irc:anders1 proofread by Andreas Bjerkeholt, Wacko and by Me (GreatLord)
svn path=/trunk/; revision=15398
2005-05-18 20:19:22 +00:00
Magnus Olsen
4cb823eb9e Swdish translations by irc:anders1 proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=15397
2005-05-18 19:58:27 +00:00
Magnus Olsen
f9b7791ad3 Swdish translations by irc:anders1 proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=15396
2005-05-18 19:46:40 +00:00
Alex Ionescu
00fe79ff10 Object Manager Patch. This patch continues the work done in the previous patch and makes the following changes in order to support OB 2.0 (it basically temporarily fixes a highly incorrect implementation so that caller code will be ready to work with the OB 2.0 without change):
1) The documented Object Create Information Structure and semantics implemented. All Object Attributes and passed data from user-mode is now probed and saved into this object create structure when ObCreateObject is called.
2) ObCreateObject does NOT PERFORM ANY OTHER OPERATION EXCEPT CREATING THE OBJECT ANYMORE. ObCreateObject will NOT insert the Object into the tree and other operations. These are now done correctly by ObInsertObject. Therefore, the biggest hurdle was changing pieces of code which assumed ObCreateObject would be enough.
3) ObInsertObject uses the captured create info for all operations isntead of the Object Attributes.
4) ObFindObject now uses the captured info as well.
5) The OBject name and directory are now stored in the documented Object Name Information, always allocated and freed from non paged pool.

HACKS:
5) Because the registry code is horribly broken and doesn't use ObFindObjectByName, the old ObFindObject had to be temporarily duplicated into CmpFindObject.
7) Win32k used ObInsertObject in CsrInsertObject as a way to create a handle inside csrss. However, OBInsertObject now does more then this. As a temporary hack, ObpCreateHandle is exported from the kernel and called from win32k. A fix needs to be done for this, but I don't know the design of win32k+csrss well enough to find a solution.
8) SEH has been commented out in some places of the new probing code because it breaks smss and explorer. These need to be investigated (seh did not exist in the previous code, so this is not really a hack)
9) Named objects with a parent directory are NOT allowed. However because of bugs in kernel32, the new check has been temporarily disabled. (this check did not exist in the previous code, so this is not really a hack)

The next patch will add a proper ObFindObject which will support a more complete Parse Procedure with context and security information. This is needed for proper registry access (requested by Eric Kohl) and for proper functionality of the Desktop/File creation, which should use the Parse routine, and not the Create Handle Routine. This will also make it possible to remove some previous hacks and pave the way for a fixed Iop/IoCreateFile

svn path=/trunk/; revision=15395
2005-05-18 19:26:47 +00:00
Alex Ionescu
dfedb99675 Prettify usetup a bit, show a warranty page before continuing installation (not a license agreement, simply a message stating this is a beta foss product with no warranty), make progressbars have a double border and change the copy file dialog a bit. Also changed setupldr and ntoskrnl to have a more unified text-mode look/appearance when installing. The effect is really nice and the blue screen with gray status-bar appears as soon as the CD boots and takes you all the way to usetup without any breakages or black/blue/black/blue fades and confusing messages. Also, fixed ntoskrnl not to break into KDBG if /NODEBUG is set.
svn path=/trunk/; revision=15394
2005-05-18 19:08:00 +00:00
Alex Ionescu
474cd6a3e3 Fix usetup. This hack needs to remain even though it's incorrect since it's what ROS expects. I am working on rewriting IoCreateFile so these hacks can go away. Please do not remove it
svn path=/trunk/; revision=15392
2005-05-18 17:17:34 +00:00
Gé van Geldorp
b5e0081878 Move final stage of boot to architecture-dependent files
svn path=/branches/xen/; revision=15391
2005-05-17 22:15:18 +00:00
Magnus Olsen
baed69574e Fix unicode / ansi build problem for -D_DEBUG build
a old bug in cmd. 
Bug report 629 in bugzila 
fix by tinus and his patch at bugzila


 

svn path=/trunk/; revision=15390
2005-05-17 21:18:04 +00:00
Alex Ionescu
a04f8e62fe Implement mouse packet timeout. Fixes right-click menu appearing incorrectly on qemu if debuggins is used. Patch by Tinus
svn path=/trunk/; revision=15389
2005-05-17 20:51:39 +00:00
Alex Ionescu
e3757a0fb1 make cabman report error when file doesnt exist. Patch by Usurp
svn path=/trunk/; revision=15388
2005-05-17 20:43:27 +00:00
Hartmut Birr
e3ac1e89d5 Fixed rsym for executables without any debug informations.
svn path=/trunk/; revision=15387
2005-05-17 20:28:57 +00:00
Alex Ionescu
2e000e7b38 Sorry for the nonatomic commit
svn path=/trunk/; revision=15386
2005-05-17 19:16:21 +00:00
Alex Ionescu
437e9f05fc Sorry for the nonatomic commit
svn path=/trunk/; revision=15383
2005-05-17 19:06:59 +00:00
Alex Ionescu
fe3de87064 Share NtDevice/FsIoControlFile, fixes NtFsControlFile to have same functionality as NtDev...
svn path=/trunk/; revision=15382
2005-05-17 19:04:57 +00:00
Hartmut Birr
7efa574035 - Reference the file object in IopSecurityFile.
- Don't set FO_DIRECT_DEVICE_OPEN in IoCreateStreamFileObject.  
- Disabled the setting of IRP_NOCACHE, because vfat cannot handle cached and non cached requests for the same file.  
- Set the correct device object in NtWriteFile.


svn path=/trunk/; revision=15381
2005-05-17 19:00:12 +00:00
Alex Ionescu
1612126bbb Fix bug in memory mapping which caused large applications to BSOD the system. Abiword setup now works and other large apps should be fixed as well
svn path=/trunk/; revision=15380
2005-05-17 18:04:23 +00:00
Hervé Poussineau
7e68975e35 Don't empty the DriverObject extension if it is already initialized and filled
svn path=/trunk/; revision=15379
2005-05-17 17:39:50 +00:00
Casper Hornstrup
ca46632061 Enable warnings
svn path=/branches/xmlbuildsystem/; revision=15378
2005-05-17 17:28:40 +00:00
Casper Hornstrup
e8fbafa083 Disable -O2
svn path=/branches/xmlbuildsystem/; revision=15377
2005-05-17 17:19:10 +00:00
Magnus Olsen
9c34575fb2 Dorp last sync with wine and userhook
Before we can sync with wine we need to rewrite the enum 
and reg of device so it working fine in reactos and windows.

Add svn rev 15043 + only userhooks for the mouse
at last the mouse are working in tribles windows mode
but in full screen it is bit chopy. Not tested tribles 
in reactos with the new code. 







svn path=/trunk/; revision=15376
2005-05-17 15:20:24 +00:00
Magnus Olsen
db5b39ab3f fix a small bug in dinput the last sync with wine did not go well
still some bugs left

svn path=/trunk/; revision=15375
2005-05-17 12:30:52 +00:00
Gé van Geldorp
de0775314e Stub out XenHwDetect
svn path=/branches/xen/; revision=15374
2005-05-17 07:39:49 +00:00
Gé van Geldorp
ce012fe46e Implement XenDiskGetPartitionEntry
svn path=/branches/xen/; revision=15373
2005-05-17 07:35:14 +00:00
Gé van Geldorp
f46e8be691 Handle partition-less ARC paths
svn path=/branches/xen/; revision=15372
2005-05-17 07:34:17 +00:00
Casper Hornstrup
cb0e7b1029 Build sm
svn path=/branches/xmlbuildsystem/; revision=15371
2005-05-17 06:17:35 +00:00
Gé van Geldorp
a1c989ae90 Implement console input
svn path=/branches/xen/; revision=15364
2005-05-16 22:42:53 +00:00
Gé van Geldorp
82ffb770a8 Add typecasts to avoid any possibility of signed/unsigned mismatch warnings
svn path=/branches/xen/; revision=15359
2005-05-16 21:20:48 +00:00
Magnus Olsen
a5726f4420 Drop GDI version of dinput complete and add user hook version of dinput
keyboard.c thx GvG for finding the problem in reactos with user hook and implement userhook

mouse.c keep one gdi stuff left but rewrite it to userhook poll mouse 
poll mouse need to be rewrite so it fix last bug for user hook it is it move the mouse to another locations but it should 
stand still. when it insate. then we can share the code with wine 

svn path=/trunk/; revision=15358
2005-05-16 20:42:36 +00:00
Magnus Olsen
86d573abdf drop Keyboard.c gdi version
svn path=/trunk/; revision=15357
2005-05-16 20:36:26 +00:00
Gé van Geldorp
323e4455b0 Optimize screen writing
svn path=/branches/xen/; revision=15354
2005-05-16 20:16:33 +00:00
Gé van Geldorp
304a730122 Implement time functions (in GMT, really should be in local time)
svn path=/branches/xen/; revision=15350
2005-05-16 19:28:18 +00:00
Aleksey Bragin
07f2451e95 One more fix to resource DPRINTs, now they are correct, for each resource.
svn path=/trunk/; revision=15349
2005-05-16 19:24:15 +00:00
Aleksey Bragin
c9c8f865f2 Changed Memory to Port resource, also fixed incorrect DPRINT (thanks to hpoussin!)
svn path=/trunk/; revision=15348
2005-05-16 19:12:48 +00:00
Hervé Poussineau
903edc501a Don't send multiple IRP_MJ_PNP/IRP_MN_START_DEVICE in case of a device with lower/upper filters
svn path=/trunk/; revision=15347
2005-05-16 18:08:55 +00:00
Gé van Geldorp
285edece74 Implement some video routines for Xen
svn path=/branches/xen/; revision=15346
2005-05-16 18:02:10 +00:00
Hervé Poussineau
d0ea6a10df Define interrupt resource as required
svn path=/trunk/; revision=15345
2005-05-16 17:19:10 +00:00
Hervé Poussineau
4cb90117fa Report memory and I/O ranges even if they are not the first reported resources by PCI device
svn path=/trunk/; revision=15344
2005-05-16 15:56:01 +00:00
Gé van Geldorp
e0c06be76e Implement disk information functions
svn path=/branches/xen/; revision=15341
2005-05-16 14:05:44 +00:00
Casper Hornstrup
c3bfe63c19 Correct entry point of win32k.sys
svn path=/branches/xmlbuildsystem/; revision=15340
2005-05-16 12:34:01 +00:00
Casper Hornstrup
3d5d32ed36 Merge 15268:15329 from trunk
svn path=/branches/xmlbuildsystem/; revision=15339
2005-05-16 12:32:10 +00:00
Casper Hornstrup
5673e6c39d Enable warnings
svn path=/branches/xmlbuildsystem/; revision=15338
2005-05-16 12:18:02 +00:00
Casper Hornstrup
0a8ee28a63 Do automatic dependency checking for pre-compiled header files
svn path=/branches/xmlbuildsystem/; revision=15337
2005-05-16 11:41:54 +00:00
Maarten Bosma
b5f744a25a PackageManager
svn path=/trunk/; revision=15336
2005-05-16 11:14:04 +00:00
Gé van Geldorp
c075c7ff6c Merge 15285:15334 from trunk
svn path=/branches/xen/; revision=15335
2005-05-16 11:10:12 +00:00
Gé van Geldorp
9190f5135f Support partition-less disks
svn path=/trunk/; revision=15334
2005-05-16 11:06:57 +00:00
Maarten Bosma
ca8a9b2dff PackageManger: Globle Makefile
svn path=/trunk/; revision=15333
2005-05-16 11:04:21 +00:00
Maarten Bosma
0b6d2a809b PackageManager: German Translation and CreateOptions()
svn path=/trunk/; revision=15332
2005-05-16 10:53:46 +00:00
Casper Hornstrup
42715b124a Allow warnings
svn path=/branches/xmlbuildsystem/; revision=15331
2005-05-16 10:30:13 +00:00
Alex Ionescu
3d2c746433 Fix win32k. For real. I swear.
svn path=/trunk/; revision=15330
2005-05-16 00:52:43 +00:00
Alex Ionescu
0139f35fc0 Fix win32k
svn path=/trunk/; revision=15329
2005-05-16 00:38:44 +00:00
Casper Hornstrup
c6947c142e Add missing file
svn path=/branches/xmlbuildsystem/; revision=15328
2005-05-16 00:02:09 +00:00
Casper Hornstrup
82acb7297a Depend on generated RPC headers
svn path=/branches/xmlbuildsystem/; revision=15327
2005-05-15 23:43:28 +00:00
Alex Ionescu
6b86cb4406 Fix build, clean up headers, add public stuff to public headers
svn path=/trunk/; revision=15326
2005-05-15 23:24:11 +00:00
Casper Hornstrup
6208798644 Remove unused file
svn path=/branches/xmlbuildsystem/; revision=15325
2005-05-15 22:13:08 +00:00
Casper Hornstrup
4a429cdae4 Build and run tests
svn path=/branches/xmlbuildsystem/; revision=15324
2005-05-15 22:07:07 +00:00
Emanuele Aliberti
6a7f1b10c5 Make gcc 3.4.2 compile.
svn path=/trunk/; revision=15323
2005-05-15 21:41:22 +00:00
Emanuele Aliberti
468b7ba0f2 Correct a comment.
svn path=/trunk/; revision=15322
2005-05-15 21:39:10 +00:00
Gé van Geldorp
83deefac8c Handle case where a directory contains a '." but the
filename doesn't (i.e. has no extension)

svn path=/trunk/; revision=15321
2005-05-15 21:28:44 +00:00
Magnus Olsen
52b95ec424 change from atoi to sprintf
linux does not support itoa 

svn path=/trunk/; revision=15320
2005-05-15 21:11:37 +00:00
Alex Ionescu
19ea176f6d Properly create the Object Type Type and remove previous hacks added
svn path=/trunk/; revision=15319
2005-05-15 19:40:57 +00:00
Gé van Geldorp
d02a50d521 Don't let msvcrt import itself and fix the resulting problems
svn path=/branches/xmlbuildsystem/; revision=15318
2005-05-15 18:10:51 +00:00
Alex Ionescu
cf6037ee37 Make Object Type creation compatible with OB 2.0 from the caller's point of view. Use real structures for Object Type and ObjectType Initializer. Added two more hacks that I'll remove in the next commit
svn path=/trunk/; revision=15317
2005-05-15 17:59:33 +00:00
Casper Hornstrup
fa1312ce09 Generate proxy makefiles
svn path=/branches/xmlbuildsystem/; revision=15315
2005-05-15 15:56:06 +00:00
Casper Hornstrup
1c116b83ca Remove unused file
svn path=/branches/xmlbuildsystem/; revision=15314
2005-05-15 15:51:58 +00:00
Casper Hornstrup
a7b4b8b3ec Install rpcrt4.dll, samlib.dll, and setup.exe
svn path=/branches/xmlbuildsystem/; revision=15313
2005-05-15 14:30:35 +00:00
Casper Hornstrup
64b6731731 Overwrite registry only if the source files change
svn path=/branches/xmlbuildsystem/; revision=15312
2005-05-15 14:18:45 +00:00
Hartmut Birr
523c60c5d5 Don't push an already freed irp to the list (in IoFreeIrp).
svn path=/trunk/; revision=15311
2005-05-15 13:59:57 +00:00
Casper Hornstrup
7a812470b6 Re-insert makefile code for non-DLLs which was removed by accident
svn path=/branches/xmlbuildsystem/; revision=15310
2005-05-15 13:57:03 +00:00
Casper Hornstrup
01e18d413a Install explorer.exe in C:\WINDOWS
svn path=/branches/xmlbuildsystem/; revision=15309
2005-05-15 13:21:54 +00:00
Casper Hornstrup
dff44c9f17 Support modules with no base install directory
svn path=/branches/xmlbuildsystem/; revision=15308
2005-05-15 13:20:45 +00:00
Martin Fuchs
f6b3f734ac refresh available drive bar buttons after connecting to network drives or activating manual refresh
svn path=/trunk/; revision=15307
2005-05-15 12:13:17 +00:00
Casper Hornstrup
93b4d98160 Install .inf files in C:\WINDOWS\inf
svn path=/branches/xmlbuildsystem/; revision=15306
2005-05-15 12:06:12 +00:00
Casper Hornstrup
72dcc562ad Don't rename c_437.nls, c_1252.nls, and l_intl.nls on installation
svn path=/branches/xmlbuildsystem/; revision=15305
2005-05-15 12:04:02 +00:00
Casper Hornstrup
9017f3f4f6 Generate hooks and stubs for tests
svn path=/branches/xmlbuildsystem/; revision=15304
2005-05-15 11:58:48 +00:00
Martin Fuchs
d008691568 use the correct ids in options menu
svn path=/trunk/; revision=15303
2005-05-15 11:46:20 +00:00
Martin Fuchs
ba43f28c68 fix for window refresh in shell mode
svn path=/trunk/; revision=15302
2005-05-15 11:10:32 +00:00
Magnus Olsen
f20d4d059e Partiy implement long filename support
example filefilefile.txt can store now with cdmake
but not filefilefiles.txt have not check why it say not a iso9660 name 


svn path=/trunk/; revision=15301
2005-05-15 10:33:33 +00:00
Martin Fuchs
ac178266c3 ugly macro hack to use alloca() while keeping Wine's developers happy
svn path=/trunk/; revision=15300
2005-05-15 09:55:56 +00:00
Gé van Geldorp
c141408f1d user32 is becoming a big boy, give it some more space
svn path=/branches/xmlbuildsystem/; revision=15299
2005-05-15 09:41:00 +00:00
Gé van Geldorp
a0b63f65da Work around broken binutils which creates relocation
entries for the Export Table.

svn path=/branches/xmlbuildsystem/; revision=15298
2005-05-15 09:38:53 +00:00
Hervé Poussineau
5cec531950 Open port before sending IOCTLs
svn path=/trunk/; revision=15297
2005-05-15 09:30:25 +00:00
Hervé Poussineau
e1aa22c032 Correct implementation of IOCTL_SERIAL_SET_BAUD_RATE
Don't test FileObject in IRP_MJ_CREATE as it may be not valid

svn path=/trunk/; revision=15296
2005-05-15 09:29:30 +00:00
Gé van Geldorp
b7d6b92188 Remove local definitions for stuff which is now
present in our headers

svn path=/trunk/; revision=15295
2005-05-15 08:30:35 +00:00
Magnus Olsen
efe2391a80 fix uninitialized waring so gcc 3.4.3 can compile it
svn path=/trunk/; revision=15294
2005-05-15 06:49:01 +00:00
Alex Ionescu
036efb7e10 Removed incorrect Create/DuplicationNotify callbacks and replaced by a more correct Open callback which is what a windows driver would get. This is needed because of some changes I'm trying to make to get Parse routines to work properly, so I had to add two hacks for now, they will be removed within 2-3 commits
svn path=/trunk/; revision=15293
2005-05-15 04:56:52 +00:00
Casper Hornstrup
982dce03b5 Generate files for host zlib in object and output directories
svn path=/branches/xmlbuildsystem/; revision=15292
2005-05-14 22:55:21 +00:00
Gé van Geldorp
133454688d Don't include standard startup code
svn path=/branches/xmlbuildsystem/; revision=15291
2005-05-14 21:35:54 +00:00
Magnus Olsen
63d3f7d1a8 fix Warining msg used uninitialized for gcc 3.4.3
svn path=/trunk/; revision=15290
2005-05-14 20:57:23 +00:00
Martin Fuchs
34a8e38b0f add some additional translated czech strings from Wine
svn path=/trunk/; revision=15289
2005-05-14 20:07:51 +00:00
Martin Fuchs
d642e38ba1 rename czech resource file to sync wih Wine's filename
svn path=/trunk/; revision=15288
2005-05-14 19:58:30 +00:00
Gé van Geldorp
571501a46a Merge 14725:15285 from trunk
svn path=/branches/xen/; revision=15287
2005-05-14 19:45:27 +00:00
Martin Fuchs
6ebb2ab38d add polish resource file
svn path=/trunk/; revision=15286
2005-05-14 19:16:44 +00:00
Martin Fuchs
43e61f63ab fix Wine version of sort order switching
svn path=/trunk/; revision=15285
2005-05-14 19:16:24 +00:00
Gé van Geldorp
2832134fbc Implement WH_MOUSE_LL hook
svn path=/trunk/; revision=15284
2005-05-14 19:09:02 +00:00
Martin Fuchs
c7e747c1fa implement switching of file sort order
svn path=/trunk/; revision=15283
2005-05-14 18:57:07 +00:00
Magnus Olsen
dfc6fbe27e Activate serial mouse for livecd
now it support both ps2 and serial mouse

svn path=/trunk/; revision=15282
2005-05-14 18:04:53 +00:00
Gé van Geldorp
c1557a2be1 Present for GreatLord:
Implement WH_KEYBOARD_LL hook

svn path=/trunk/; revision=15281
2005-05-14 18:03:31 +00:00
Casper Hornstrup
e44380e9a3 Extract WINE resources at compile-time
svn path=/branches/xmlbuildsystem/; revision=15280
2005-05-14 17:57:31 +00:00
Casper Hornstrup
1732348d39 Only pass GCC specific options to GCC
svn path=/branches/xmlbuildsystem/; revision=15279
2005-05-14 15:07:11 +00:00
Casper Hornstrup
f326ceb70f Merge r15277 to trunk
svn path=/trunk/; revision=15278
2005-05-14 14:14:01 +00:00
Casper Hornstrup
91c4967ba6 Compile with DBG=1
svn path=/branches/xmlbuildsystem/; revision=15277
2005-05-14 14:08:31 +00:00
Emanuele Aliberti
4954251a04 distribute the sm system utility even if it does little now
svn path=/trunk/; revision=15276
2005-05-14 13:57:55 +00:00
Emanuele Aliberti
e6b395d0e7 compile the sm system utility
svn path=/trunk/; revision=15275
2005-05-14 13:43:55 +00:00
Emanuele Aliberti
e70c95d52f Little fix to compile with gcc 3.4.2
svn path=/trunk/; revision=15274
2005-05-14 12:54:53 +00:00
Casper Hornstrup
9d474ab0bd Merge 14981:15268 from trunk
svn path=/branches/xmlbuildsystem/; revision=15273
2005-05-14 12:37:12 +00:00
Martin Fuchs
0d88632d20 sync to Wine Patch: format_bytes()
svn path=/trunk/; revision=15272
2005-05-14 12:32:44 +00:00
Casper Hornstrup
72a6942f36 Copy w32api from trunk
svn path=/branches/xmlbuildsystem/; revision=15271
2005-05-13 21:23:37 +00:00
Casper Hornstrup
a73b954aba Remove w32api from branch
svn path=/branches/xmlbuildsystem/; revision=15270
2005-05-13 21:21:57 +00:00
Alex Ionescu
030580a782 Cleanup ntlock/unlockfile with proper io semantics..same stuff as previous patches
svn path=/trunk/; revision=15269
2005-05-13 21:07:40 +00:00
Casper Hornstrup
49d849fa8d Update installation instructions
svn path=/branches/xmlbuildsystem/; revision=15268
2005-05-13 19:47:30 +00:00
Casper Hornstrup
d32ad9196b Support compilerflag within IFs
svn path=/branches/xmlbuildsystem/; revision=15267
2005-05-13 19:17:44 +00:00
Casper Hornstrup
92bdf77b07 Cleanup template configuration file
svn path=/branches/xmlbuildsystem/; revision=15266
2005-05-13 19:01:46 +00:00
Martin Fuchs
6f61a478e8 display free and total disk space
svn path=/trunk/; revision=15265
2005-05-13 17:11:16 +00:00
Martin Fuchs
3feb9db02b adjustments for GCC and MinGW
svn path=/trunk/; revision=15264
2005-05-13 15:35:55 +00:00
Martin Fuchs
a0cb9c83ab - error handling for network connection dialogs
- implement "format disk" dialog

svn path=/trunk/; revision=15263
2005-05-13 15:32:04 +00:00
Martin Fuchs
bccd9d6a2c malloc.h include
svn path=/trunk/; revision=15262
2005-05-13 14:53:40 +00:00
Martin Fuchs
9759ec3705 implement network connect and disconnect dialogs
svn path=/trunk/; revision=15261
2005-05-13 14:48:10 +00:00
Martin Fuchs
37de341023 display source path in "move file" dialog
svn path=/trunk/; revision=15260
2005-05-13 14:21:37 +00:00
Martin Fuchs
6ff7821b69 fix comment, declare parameter type as constant
svn path=/trunk/; revision=15259
2005-05-13 10:27:19 +00:00
Martin Fuchs
e81b6ac90b replace numeric resource identifiers by their defined constants
svn path=/trunk/; revision=15258
2005-05-13 09:35:15 +00:00
Martin Fuchs
3d27af4e77 Wine compatibility changes
svn path=/trunk/; revision=15257
2005-05-13 09:09:07 +00:00
Alex Ionescu
2981638f77 Fix IRP structure (add missing member) and optimize io completion by allowing the io completion packet to be piggybacked on the IRP. Also make io completion use the cpu lookaside lists now as well as the paged pool as a last-chance attempt
svn path=/trunk/; revision=15256
2005-05-13 05:41:24 +00:00
Alex Ionescu
6d1d9cbac8 Implement Lookaside List allocation and release for IRPs on Per-CPU Lists, or global system lists if the per-cpu has been exhausted. This should tremendously reduce memory fragmentation and speed up I/o noticeably. Also, don't allocate IRPs with quota charge when they shouldn't.
svn path=/trunk/; revision=15255
2005-05-13 04:49:54 +00:00
Alex Ionescu
9ca493afb5 Fix lookaside structures, rewrite lookaside code to use new structures, remove some excess abstraction, correct export incorrectly exported as fastcall, fix up macros, add basic init code to allocate lookaside lists for IRPs as well as per-cpu lookaside lists for irps and completion packets
svn path=/trunk/; revision=15254
2005-05-13 03:34:13 +00:00
Art Yerkes
5510552add Fixed wrong STATUS_BUFFER_TOO_SMALL return to documented success return
in the buffer too small case.

svn path=/trunk/; revision=15253
2005-05-13 02:05:15 +00:00
Hervé Poussineau
dcb2ef8cd7 Change ASSERTs to assert on existent variables
svn path=/trunk/; revision=15252
2005-05-12 21:46:50 +00:00
Hervé Poussineau
7f0e11f913 White space cleanup, correct indentation
svn path=/trunk/; revision=15251
2005-05-12 21:45:20 +00:00
Hervé Poussineau
0af5d166a2 fdo.c: don't allocate a buffer with a SERENUM_TAG, because it is freed in ntoskrnl.
misc.c: correct comment
serenum.h: remove ExFreePoolWithTag macro and use function exported by ntoskrnl

svn path=/trunk/; revision=15250
2005-05-12 21:41:21 +00:00
Magnus Olsen
27e330b72b Remove all hardcode string to En.rc
so it can be translaterem

svn path=/trunk/; revision=15249
2005-05-12 21:10:10 +00:00
Casper Hornstrup
ec7d8b2029 Merge 12736:14980 from trunk
svn path=/branches/xmlbuildsystem/; revision=15248
2005-05-12 21:03:51 +00:00
Magnus Olsen
6873af6255 Did forget include En.rc :)
svn path=/trunk/; revision=15247
2005-05-12 20:26:34 +00:00
Magnus Olsen
3ad5fab2d4 Remove all hardcode string to En.rc
so it can be translate

svn path=/trunk/; revision=15246
2005-05-12 20:04:02 +00:00
Aleksey Bragin
0eff533e7c Added MessageBoxes in case of registry funcs errors
svn path=/trunk/; revision=15245
2005-05-12 19:46:14 +00:00
Casper Hornstrup
9c85c4d513 Generate make rules for creating directories if they don't exist
svn path=/branches/xmlbuildsystem/; revision=15244
2005-05-12 19:32:15 +00:00
Magnus Olsen
08142b98ea Remove all hardcode string to En.rc
so it can be translate

svn path=/trunk/; revision=15243
2005-05-12 19:31:10 +00:00
Magnus Olsen
d344ac5409 Add hex value to Color syntax so it working fine
Color x 
x = a - f



svn path=/trunk/; revision=15242
2005-05-12 18:20:41 +00:00
Thomas Bluemel
03800ad522 svn path=/trunk/; revision=15241 2005-05-12 18:08:25 +00:00
Alex Ionescu
c24c77ccaf Fix uninit var
svn path=/trunk/; revision=15240
2005-05-12 18:05:22 +00:00
Magnus Olsen
fbeb0ec2cd Add syntax Color x
x = 0 to 9 Now color are working as it should


svn path=/trunk/; revision=15239
2005-05-12 17:30:52 +00:00
Magnus Olsen
1add9174ff Fix two spelling error
thx dnordenberg to notice them

svn path=/trunk/; revision=15238
2005-05-12 16:44:39 +00:00
Alex Ionescu
5fe9818563 Small fix.
svn path=/trunk/; revision=15237
2005-05-12 11:54:08 +00:00
Magnus Olsen
ade7456218 really small optimze remove lenvalu * sizeof(WCHAR) so it doing it only one time
svn path=/trunk/; revision=15236
2005-05-12 05:01:23 +00:00
Alex Ionescu
32962bc31c cleanup NtDeviceIoControlFile a bit...remove some redundant stuff
svn path=/trunk/; revision=15235
2005-05-12 04:17:43 +00:00
Brian Palmer
942e1f4649 Remove old DJGPP NTVDM patch files.
svn path=/trunk/; revision=15234
2005-05-12 03:00:49 +00:00
Brian Palmer
4b2a42963f Support getting the boot drive from the BIOS or the value in the BPB.
svn path=/trunk/; revision=15233
2005-05-12 02:57:13 +00:00
Casper Hornstrup
d927b8d8fe Generate static libraries in intermediate directory
svn path=/branches/xmlbuildsystem/; revision=15232
2005-05-11 20:58:40 +00:00
Alex Ionescu
b693fc160a Fix incorrect call to ntopenprocess
svn path=/trunk/; revision=15231
2005-05-11 20:45:48 +00:00
Thomas Bluemel
23e79dcdb3 remove explicit bugcheck in NtOpenProcess when the caller supplies a thread CID of -1, looks like this was added for debug purpose and accidently committed.
svn path=/trunk/; revision=15230
2005-05-11 20:04:48 +00:00
Martin Fuchs
30ec640bd2 Synchronisation with ibrowser source code
svn path=/trunk/; revision=15229
2005-05-11 19:15:36 +00:00
Martin Fuchs
f5b2c461dc eliminate GCC4 warnings
svn path=/trunk/; revision=15228
2005-05-11 19:13:20 +00:00
Martin Fuchs
b269a8333e Synchronisation with explorer source code
svn path=/trunk/; revision=15227
2005-05-11 19:12:26 +00:00
Martin Fuchs
7862b7c070 Makefile maintainancement
svn path=/trunk/; revision=15226
2005-05-11 19:12:03 +00:00
Martin Fuchs
7313b15dbd eliminate GCC4 warnings
svn path=/trunk/; revision=15225
2005-05-11 19:11:27 +00:00
Martin Fuchs
267f11a8b4 eliminate GCC4 warnings (patch by Thomas Weidenmueller)
svn path=/trunk/; revision=15224
2005-05-11 19:08:36 +00:00
Casper Hornstrup
be0cf8ed70 Use mingw convention for import libraries (libmodule.a)
svn path=/branches/xmlbuildsystem/; revision=15223
2005-05-11 17:37:46 +00:00
Martin Fuchs
4358dbd01a fix listbox insert algorithmus
svn path=/trunk/; revision=15222
2005-05-11 17:30:21 +00:00
Casper Hornstrup
7dfdcabef9 Rebuild import library if definition file is modified
svn path=/branches/xmlbuildsystem/; revision=15221
2005-05-11 17:12:24 +00:00
Thomas Bluemel
8ece706e06 revert the changes i accidently committed
svn path=/trunk/; revision=15220
2005-05-11 17:03:00 +00:00
Thomas Bluemel
abef9ffacb fixed warnings
svn path=/trunk/; revision=15218
2005-05-11 16:50:39 +00:00
Thomas Bluemel
58d25e229d fixed function prototype
svn path=/trunk/; revision=15217
2005-05-11 16:15:25 +00:00
Martin Fuchs
36551f7fd9 fix for updated MinGW headers: comditional compilation for HSHELL_RUDEAPPACTIVATED
svn path=/trunk/; revision=15216
2005-05-11 15:24:59 +00:00
Martin Fuchs
4dd64b9022 some more spelling fixes
svn path=/trunk/; revision=15215
2005-05-11 14:50:00 +00:00
Martin Fuchs
a0b46d6812 Sync to Wine:
date: 2005/02/25 14:07:56
Jon Griffiths <jon_p_griffiths@yahoo.com>
Documentation spelling fixes.

svn path=/trunk/; revision=15214
2005-05-11 14:49:24 +00:00
Martin Fuchs
aa88e039cb Sync to Wine: (rewritten bug fix)
date: 2004/12/14 11:43:30
Piotr Caban <pio13@poczta.onet.pl>
Fixed display bug.

svn path=/trunk/; revision=15213
2005-05-11 14:46:42 +00:00
Martin Fuchs
dfd0cd04aa Sync to Wine:
date: 2004/11/30 21:38:57
Eric Pouech <pouech-eric@wanadoo.fr>
Const correctness fixes.

svn path=/trunk/; revision=15212
2005-05-11 14:36:40 +00:00
Martin Fuchs
7b801b61fd - Sync to Wine:
date: 2004/11/24 18:28:31;  author: julliard
Avoid using the MAKEPOINTS macro, it's broken on big endian.

- Fix of this patch: use screen relative coordinates for ShellFolderContextMenu()

svn path=/trunk/; revision=15211
2005-05-11 14:33:51 +00:00
Martin Fuchs
9b8bfb6e8b Sync to Wine:
date: 2005/02/23 20:58:09
Henning Gerhardt <henning.gerhardt@web.de>
Small fix for the German resource file.

date: 2005/02/15 20:46:19
Henning Gerhardt <henning.gerhardt@web.de>
Add/updated German resources.

svn path=/trunk/; revision=15210
2005-05-11 14:19:23 +00:00
Martin Fuchs
1b32c4c9b7 Sync to wine:
date: 2005/02/14 11:12:30
Marcelo Duarte <wine-devel@bol.com.br>
Update the resources for Portuguese.

date: 2005/02/10 17:14:15
Américo José Melo <mmodem00@netvisao.pt>
Francois Gouget <fgouget@codeweavers.com>
Translate the Wine resources to Portuguese.

svn path=/trunk/; revision=15209
2005-05-11 14:18:24 +00:00
Martin Fuchs
2bccb359f2 Sync to Wine:
date: 2005/01/26 19:42:40
Hans Leidekker <hans@it.vu.nl>
Don't use utf8 in rc files.

svn path=/trunk/; revision=15208
2005-05-11 14:16:05 +00:00
Martin Fuchs
319058265a sync to wine:
date: 2005/02/16 21:10:59
Alex VillacÝs Lasso <a_villacis@palosanto.com>
Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
resources, so that Spanish locales other than Spain also use Spanish
resources.

date: 2005/01/03 14:45:36
JosÚ Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
Added Spanish translation.


date: 2004/11/21 15:49:24
JosÚ Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
Updated Spanish translations.

svn path=/trunk/; revision=15207
2005-05-11 14:14:33 +00:00
Martin Fuchs
605a9b8e50 add chech and svedish resource files
svn path=/trunk/; revision=15206
2005-05-11 14:11:40 +00:00
Thomas Bluemel
4fb7ebe206 use proper scancode to create upper-case hex numbers directly
svn path=/trunk/; revision=15205
2005-05-11 13:20:34 +00:00
Magnus Olsen
fc2d392cac use _wcsupr to make swedish chater display right when it change langues
this fix maby also fix rus langues display right now after langues change


svn path=/trunk/; revision=15204
2005-05-11 09:56:24 +00:00
Maarten Bosma
26bfaa0941 Set language to czech not to english in cz.rc
svn path=/trunk/; revision=15203
2005-05-10 13:03:40 +00:00
Hervé Poussineau
b4a414fec7 Allow a NULL PeripheralType in IoQueryDeviceDescription
svn path=/trunk/; revision=15202
2005-05-10 09:38:20 +00:00
Hervé Poussineau
c32fd82fbf Implement IoInvalidateDeviceRelations
svn path=/trunk/; revision=15201
2005-05-10 09:34:20 +00:00
Thomas Bluemel
fa832dae41 fixed some more warnings
svn path=/trunk/; revision=15200
2005-05-10 08:15:08 +00:00
Thomas Bluemel
e55b576d82 fixed some more warnings
svn path=/trunk/; revision=15199
2005-05-10 08:04:08 +00:00
Thomas Bluemel
d421003cd4 - disable -Werror for lib/mesa32 to get it to compile with GCC4, however, an upgrade to 6.2.1 would solve these problems
- fixed a few more warnings, the the tree should now fully compile and work with GCC4

svn path=/trunk/; revision=15198
2005-05-10 06:17:54 +00:00
Magnus Olsen
184f23e0a5 Swedish charaters was gone. it should also commit to wine
svn path=/trunk/; revision=15197
2005-05-10 06:13:39 +00:00
Alex Ionescu
2670be2117 Reuse buffer in IopQueryNameFile, since it's temporary and the first one we allocate is already large enough. Also block out SEH in ntread/write file since it seems to crash some user mode code.
svn path=/trunk/; revision=15196
2005-05-09 23:39:08 +00:00
Alex Ionescu
de8ae0fbd2 Revert most of IoCreateStreamFileObject... it's wrong but needs to be wrong for now.
svn path=/trunk/; revision=15195
2005-05-09 22:35:43 +00:00
Phillip Susi
dfcf0aade2 Fixed backwards access check that was causing NtWriteFile to fail when given a read only buffer
svn path=/trunk/; revision=15194
2005-05-09 22:12:43 +00:00
Thomas Bluemel
6ed3a8cd3f fixed some more warnings
svn path=/trunk/; revision=15193
2005-05-09 22:05:47 +00:00
Hartmut Birr
78fdef703c Removed the deallocation of the irp on error after IoBuildSynchronousFsdRequest in NtRead/WriteFile.
There is no irp at this point. If the exception handler is hit, the irp isn't set.

svn path=/trunk/; revision=15192
2005-05-09 21:28:01 +00:00
Alex Ionescu
3c1ebc7084 Fix rc file
svn path=/trunk/; revision=15191
2005-05-09 20:14:10 +00:00
Alex Ionescu
1f40540008 Implement Access State support (SeCreate/DeleteAccessState and SeSetAccessStateGenericMapping. Based on a patch by Javier M. Mellid
svn path=/trunk/; revision=15190
2005-05-09 19:57:41 +00:00
Alex Ionescu
786ed0c605 unmix cases
svn path=/trunk/; revision=15189
2005-05-09 19:08:49 +00:00
Alex Ionescu
61d93abfe3 grr
svn path=/trunk/; revision=15188
2005-05-09 19:05:41 +00:00
Filip Navara
43a5877d27 tinus <o112w8r02@sneakemail.com>
Use ExFreePool instead of RtlFreeUnicodeString.

svn path=/trunk/; revision=15187
2005-05-09 16:00:21 +00:00
Magnus Olsen
581f944e3e Remove ntvdmpat.exe it is not need any longe it was for djgpp
svn path=/trunk/; revision=15186
2005-05-09 12:32:10 +00:00
Steven Edwards
e92888a801 strip the whitespace one more time
svn path=/trunk/; revision=15185
2005-05-09 11:03:44 +00:00
Steven Edwards
3546d3215b correct typo in header to fix the build
svn path=/trunk/; revision=15184
2005-05-09 11:02:48 +00:00
Magnus Olsen
86c0dfdf7e update swedish translation by Harteex
svn path=/trunk/; revision=15183
2005-05-09 10:06:58 +00:00
Magnus Olsen
3280490f6d Fix spellinng error in En.rc
STRING_DIR_HELP8 it should not be "Dirs" it must be "Files"
then it was a "command" wrong spelling in one place


 

svn path=/trunk/; revision=15182
2005-05-09 09:52:48 +00:00
Magnus Olsen
dfd6899631 remove doublecate string STRING_CHCP_ERROR2 and replace it with STRING_ERROR_INVALID_PARAM_FORMAT
Fr.rc and En.rc 
STRING_CHCP_ERROR2 been remove

svn path=/trunk/; revision=15181
2005-05-09 08:43:05 +00:00
Magnus Olsen
32bf2f5e5e remove doublecate string STRING_CHCP_ERROR3 and replace it with STRING_ERROR_INVALID_PARAM_FORMAT
Fr.rc
change STRING_CHCP_ERROR3 to STRING_ERROR_INVALID_PARAM_FORMAT

En.rc 
STRING_CHCP_ERROR3 been remove

svn path=/trunk/; revision=15180
2005-05-09 08:23:18 +00:00
Magnus Olsen
395512ca9a wrong string where being use when you type echo
thx David Nordenberg for notify me about it

svn path=/trunk/; revision=15179
2005-05-09 06:14:54 +00:00
Alex Ionescu
37707ad1a6 Make the remaning code match the current formatting instead of being really ugly, and make some changes to IoCreateFileStreamObject (which is wrong anyways, since it's doing what *Lite should do)
svn path=/trunk/; revision=15178
2005-05-09 04:31:04 +00:00
Alex Ionescu
834acf81da Fix IopSecurityFile: Do not use BuildFsd, create IRP manually for sync/async, support assigning SD to device instead of file, and signal unimplemented set sd to device, simplify code for file object setting and remove duplication, wait on right event and return the matching status. moved static io security function to se subsystem and renamed it from default to world to better match what it's doing
svn path=/trunk/; revision=15177
2005-05-09 03:58:35 +00:00
Alex Ionescu
db63a3b1ad Fix NtSetInformationFile: Cleanup FileCompletionInformation case, use Tag. Use right device object, read FileObject->FinalStatus, use right flags to IO manager can do the cleanup and buffered io semantics, support sync or async waiting
svn path=/trunk/; revision=15176
2005-05-09 03:02:36 +00:00
Alex Ionescu
02a4600eb8 Fix NtWriteFile: Get right Deviceobject, Use FileObject->FinalStatus, use FileObject-.CurrentByteOffset if ByteOffset == FILE_USER_FILE_POINTER_POSITION, add SEH, use right event requested access, set IRP_WRITE_OPERATION flag, add support for IRP_NOCACHE and add support for SL_WRITE_THROUGH if FO_WRITE_THROUGH is enabled.
svn path=/trunk/; revision=15175
2005-05-09 02:15:03 +00:00
Steven Edwards
71b6d3cb0f strip whitespace from end of lines
svn path=/trunk/; revision=15174
2005-05-09 02:04:53 +00:00
Steven Edwards
5c173216a2 strip whitespace from end of lines
svn path=/trunk/; revision=15173
2005-05-09 01:50:07 +00:00
Steven Edwards
7cecaf25e8 strip whitespace from end of lines
svn path=/trunk/; revision=15172
2005-05-09 01:46:57 +00:00
Steven Edwards
baa31fc9e5 strip whitespace from end of lines
svn path=/trunk/; revision=15171
2005-05-09 01:46:46 +00:00
Steven Edwards
c31bbf06e5 strip whitespace from end of lines
svn path=/trunk/; revision=15170
2005-05-09 01:44:13 +00:00
Steven Edwards
189e9fae5c strip whitespace from end of lines
svn path=/trunk/; revision=15169
2005-05-09 01:43:41 +00:00
Steven Edwards
395f5dc9e5 strip whitespace from end of lines
svn path=/trunk/; revision=15168
2005-05-09 01:43:25 +00:00
Steven Edwards
6a73e87d9b strip whitespace from end of lines
svn path=/trunk/; revision=15167
2005-05-09 01:42:07 +00:00
Steven Edwards
ae4b8f6e93 strip whitespace from end of lines
svn path=/trunk/; revision=15166
2005-05-09 01:41:26 +00:00
Steven Edwards
eace72f07c strip whitespace from end of lines
svn path=/trunk/; revision=15165
2005-05-09 01:41:02 +00:00
Steven Edwards
e4be245882 strip whitespace from end of lines
svn path=/trunk/; revision=15164
2005-05-09 01:38:29 +00:00
Alex Ionescu
2d9fea6a7c Fix KDBG and enable IRP_NOCACHE for ReadFile. Also disable SEH for Buffer since PRobeForWrite has a bug and cannot probe past a page
svn path=/trunk/; revision=15163
2005-05-09 01:14:42 +00:00
Alex Ionescu
9248a9d298 Fix uninitailzied variable on dbg=0
svn path=/trunk/; revision=15162
2005-05-09 01:06:39 +00:00
Alex Ionescu
4dbcb4368f Grrr..it's getting late or something. CORRECT fix.
svn path=/trunk/; revision=15161
2005-05-09 01:01:18 +00:00
Alex Ionescu
261e754d28 Sorry, wrong version got commited
svn path=/trunk/; revision=15160
2005-05-09 00:41:55 +00:00
Magnus Olsen
4cced63916 remove last hardcode string to En.rc
need translate to other langes new strings in En.rc
are IDS_DNS_ERROR, IDS_SOCKET_ERROR, IDS_GET_SRV_ERROR, IDS_CON_SRV_ERROR 

svn path=/trunk/; revision=15159
2005-05-09 00:38:57 +00:00
Alex Ionescu
2ba13f06b1 Fix a previous bug and fix NtReadFile: Read FileObject Status, Set Read Operation, support IRP_NOCACHE (ReactOS doesn't like this because of some other bug i'm investigating), use right event reqeuested access, add SEH
svn path=/trunk/; revision=15158
2005-05-09 00:33:23 +00:00
Magnus Olsen
dd19f592a2 Remove all hardcode string from format to En.rc
so it can be translate

svn path=/trunk/; revision=15157
2005-05-09 00:05:15 +00:00
Magnus Olsen
31dea0cce5 Udate french langues and make it unicode
by Usurp

Set eol-style on resurce.h

svn path=/trunk/; revision=15156
2005-05-08 22:02:16 +00:00
Thomas Bluemel
6dd1154d67 Patch by tinus: use the right access mode. fixes bug 627
svn path=/trunk/; revision=15155
2005-05-08 21:55:28 +00:00
Magnus Olsen
a2d9c4e1e9 set eol style
svn path=/trunk/; revision=15154
2005-05-08 21:54:32 +00:00
Magnus Olsen
096abbc0b1 forget the .rc file
svn path=/trunk/; revision=15153
2005-05-08 21:51:23 +00:00
Magnus Olsen
689829649e My and W3seek patch to make format ansi and unicode independen
it is first step to make a rc files for format

svn path=/trunk/; revision=15152
2005-05-08 21:50:39 +00:00
Alex Ionescu
3dfbc26474 Fix NtQueryDirectoryFile to wait on right status, to actually use the event that the user gives, to select the right device and sync/async wait mode and always use FileIndex = 0 since nothing else can be used for this API.
svn path=/trunk/; revision=15151
2005-05-08 20:20:14 +00:00
Magnus Olsen
67627091db Reomve string STRING_CMD_INVALIDDRIVE in En.rc it was doublcate of STRING_FREE_ERROR1
thanks Usurp for finding it 

svn path=/trunk/; revision=15150
2005-05-08 20:15:54 +00:00
Thomas Bluemel
54f6a09bb2 prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes! Please guys, read the documentation of the function _before_ you use it...
svn path=/trunk/; revision=15149
2005-05-08 19:22:28 +00:00
Klemens Friedl
539af1d0d0 update taskmgr german language resource file
svn path=/trunk/; revision=15148
2005-05-08 19:14:18 +00:00
Thomas Bluemel
51d7b8f785 fixed more uninitialized variables warnings
svn path=/trunk/; revision=15147
2005-05-08 19:10:23 +00:00
Thomas Bluemel
87bab86c6b don't generate lvalue assignment code
svn path=/trunk/; revision=15145
2005-05-08 18:32:57 +00:00
Magnus Olsen
65305e4968 Remove two hardcode string to En.rc it is IDS_Not_Responding, IDS_Running
thx irc: potapnik for notice one of them 


svn path=/trunk/; revision=15144
2005-05-08 18:20:39 +00:00
Casper Hornstrup
df8fe14cb4 Remove unneeded w32api files
svn path=/trunk/; revision=15143
2005-05-08 18:07:35 +00:00
Casper Hornstrup
c78d3be5ff Re-add local w32api changes
svn path=/trunk/; revision=15142
2005-05-08 18:02:41 +00:00
Casper Hornstrup
01df92bcb4 Copy w32api 2.5 to trunk
svn path=/trunk/; revision=15141
2005-05-08 17:44:37 +00:00
Casper Hornstrup
701c28c2d1 Delete old w32api
svn path=/trunk/; revision=15140
2005-05-08 17:43:21 +00:00
Magnus Olsen
6ad1c42efb Remove last hardcode string I have check the soure 3more time after I found some more hardcode string
at last every hardcode string are gone in cmd and place in En.rc
new strings in en.rc
STRING_COPY_FILE , STRING_DELETE_WIPE, STRING_FOR_ERROR, STRING_SCREEN_COL, STRING_SCREEN_ROW, STRING_TIMER_TIME

remove some unlsess value in chcp it is no longer in use thanks we are  chaching the codepage hole time. 

svn path=/trunk/; revision=15136
2005-05-08 17:33:17 +00:00
Alex Ionescu
59b1628118 forgot this guy
svn path=/trunk/; revision=15133
2005-05-08 16:50:18 +00:00
Hartmut Birr
578153056c Changed the trap prolog, each exception can have its own trap handler.
svn path=/trunk/; revision=15132
2005-05-08 16:07:43 +00:00
Hartmut Birr
647ee2a30d Fixed the unlocking of pages from a mdl.
svn path=/trunk/; revision=15131
2005-05-08 16:02:38 +00:00
Hartmut Birr
5fd03c29e4 Free the irp after a close operation.
svn path=/trunk/; revision=15130
2005-05-08 16:00:59 +00:00
Hartmut Birr
6e529ef561 Fixed the stack switching.
It isn't possible to access memory between changing the stack and setting the cr3 register. 
A page fault needs a valid kmode stack which is possible not available.

svn path=/trunk/; revision=15129
2005-05-08 15:59:07 +00:00
Gé van Geldorp
f4ce8b5664 Fix for nasm 0.98
svn path=/trunk/; revision=15124
2005-05-08 15:40:25 +00:00
Magnus Olsen
e622b8798b found some hard code string move them to En.rc
them new are STRING_CMD_INVALIDDRIVE, STRING_CMD_SHELLINFO, STRING_VERSION_RUNVER
remove some #define strings that was not in use. 
update ver so it output svn version number and update copyright note 
it take the copyright and buildversion from <reactos/resource.h> and <reactos/buildno.h> 
so we only need change it on one place

svn path=/trunk/; revision=15123
2005-05-08 14:48:24 +00:00
Casper Hornstrup
1513e26e14 Relink executable if definition file changes.
svn path=/branches/xmlbuildsystem/; revision=15122
2005-05-08 14:39:46 +00:00
Casper Hornstrup
f614754ad3 Be consistent when passing --dll argument to gcc
svn path=/branches/xmlbuildsystem/; revision=15121
2005-05-08 14:30:04 +00:00
Casper Hornstrup
d8679de61a Build non-stripped version of ntoskrnl.exe if requested
svn path=/branches/xmlbuildsystem/; revision=15120
2005-05-08 13:45:50 +00:00
Magnus Olsen
d963f8c48f "Sync to Wine-20050419" by GvG
update reactos specify patch by Magnus Olsen
markout better what is reactos specify code
but not all code are not mark

svn path=/trunk/; revision=15119
2005-05-08 11:51:28 +00:00
Hartmut Birr
ad3d28c6d8 Free the irp after a close operation.
svn path=/trunk/; revision=15118
2005-05-08 10:33:45 +00:00
Hartmut Birr
83fb8b7c7c - Changed IopCompleteRequest back to the old schematics (rev 14933) with some minor corrections.
- The status results are always set before an event is signaled.    
- Some checks for ASYNC irp's were wrong (missing brackets, now replaced with SyncIrp).    
- Don't signal the FO event if it is the same as the UserEvent.  
- Set the IOSB on error for async irp's with a sync FO (fix bug #609).    

IMHO, the old schematics is wrong, because on error it is possible that an event
isn't signaled if the driver has previous returned STATUS_PENDING.   
In this case, the caller will wait forever.

svn path=/trunk/; revision=15117
2005-05-08 10:26:34 +00:00
Alex Ionescu
35deccffea Make rtl use a single header. Helps for PCH and will help for the new Headers (no need to change each file)
svn path=/trunk/; revision=15115
2005-05-08 05:14:46 +00:00
Steven Edwards
f60871a43b remove whitespace from end of lines
svn path=/trunk/; revision=15112
2005-05-08 04:22:15 +00:00
Steven Edwards
27479fb866 remove whitespace from end of lines
svn path=/trunk/; revision=15111
2005-05-08 04:07:56 +00:00
Thomas Bluemel
917fe293f6 more fixes for GCC4
svn path=/trunk/; revision=15110
2005-05-08 03:09:14 +00:00
Thomas Bluemel
1d36259d85 Don't declare constants as export and later define it as static. This is not allowed by GCC4.
svn path=/trunk/; revision=15109
2005-05-08 02:30:45 +00:00
Steven Edwards
93f075f207 remove whitespace from end of lines
svn path=/trunk/; revision=15108
2005-05-08 02:16:32 +00:00
Steven Edwards
1e81d3ff1f remove whitespace from end of lines
svn path=/trunk/; revision=15107
2005-05-08 02:15:21 +00:00
Steven Edwards
476cbed37c remove whitespace from end of lines
svn path=/trunk/; revision=15106
2005-05-08 02:11:54 +00:00
Magnus Olsen
f6b87bd320 Fireball patch for fixing RtlUnicodeStringToInteger and RtlCharToInteger
<Fireball> Imported WINE's RtlUnicodeStringToInteger and RtlCharToInteger - they were seriously broken in our revision. Thanks to GreatLord for his help pointing out this bug with me :)

svn path=/trunk/; revision=15092
2005-05-07 22:17:03 +00:00
Steven Edwards
456be5d16b remove trailing whitespace at end of lines
svn path=/trunk/; revision=15091
2005-05-07 21:24:31 +00:00
Magnus Olsen
1c29a40c45 doubicate res id my fualt
now everthing should print out right strings


svn path=/trunk/; revision=15090
2005-05-07 20:47:57 +00:00
Hartmut Birr
8005202506 - initialize a user profile before loading syssetup.dll.
- this makes it possible to install ros over an existing ros.

svn path=/trunk/; revision=15089
2005-05-07 20:20:46 +00:00
Magnus Olsen
8dd7ee7eb4 Fix a old bug in dir it did only accpet lower letters as param
change from ansi _toupper to tchar  _totupper 
it is now both uncide and ansi compatible

svn path=/trunk/; revision=15088
2005-05-07 20:02:50 +00:00
Magnus Olsen
fb0b90fd1b Andreas Bjerkeholt : Swedish translation, proofread by David Nordenberg
svn path=/trunk/; revision=15087
2005-05-07 18:20:23 +00:00
Magnus Olsen
00eb5279ca remove a debug msg after me
svn path=/trunk/; revision=15086
2005-05-07 17:57:12 +00:00
Magnus Olsen
db7dc4e7d1 Add *. to dir but it does not working in ros but in windows fine
some bug in ros 

svn path=/trunk/; revision=15085
2005-05-07 17:48:25 +00:00
Alex Ionescu
cd5450f6f9 Implement FsRtlAllocateResource, FsRtlIsPagingFile, FsRtlBalanceReads. Fix some incorrect function prototypes, rename mdl.c to fastio.c and add some more functions to it. Implement FsRtlGetfileSize to use fastio, combine dbcsname.c and name.c and pretty-fy the array, clean up some ugly formatting. Create context.c and move stream/file context routines there.
svn path=/trunk/; revision=15084
2005-05-07 17:44:54 +00:00
Magnus Olsen
534059e50f Remove the two last langues string it was doublecate
small change to STRING_PATH_ERROR1 in En.rc and Fr.rc
thanks Usurp for notice it



svn path=/trunk/; revision=15083
2005-05-07 15:58:58 +00:00
Alex Ionescu
881487dc6c FILE_BASIC_INFORMATION is 0x28 bytes and aligned on a 8byte boundary. Thanks to Hartmut for notifying me of a bug
svn path=/trunk/; revision=15082
2005-05-07 15:40:03 +00:00
Magnus Olsen
8e7e661c54 implement VOID ConOutResPuts (UINT resID), VOID ConErrResPuts (UINT resID) to outpust msg from rc files
it take less memmory now, and it is bit faster 

CMD_ModuleHandle 
contain GetModuleHandle and it is only execute in main() in cmd 
it optimze for lite more speed in cmd

Langues changes
in En.rc follow new strings have been add and can be translate
STRING_ERROR_WRONG_DATE
STRING_SET_ERROR

svn path=/trunk/; revision=15081
2005-05-07 15:31:07 +00:00
Eric Kohl
104e05622a Implement AssertFail and GetSetFileTimestamp.
svn path=/trunk/; revision=15080
2005-05-07 15:22:32 +00:00
Alex Ionescu
0abe7f6039 Implement FsRtlMdlRead, FsRtlMdlReadComplete, FsMdlReadCompleteDev, FsRtlMdlWRiteComplete, FsRtlMdlWriteCompleteDev, FsRtlPrepareMdlWrite, CcMdlReadCompleted, CcMdlWriteComplete, CcMdlReadCompleteDev
svn path=/trunk/; revision=15079
2005-05-07 15:19:33 +00:00
Magnus Olsen
e18192ed67 Forget change two line in chcp so it did not compile
svn path=/trunk/; revision=15078
2005-05-07 12:04:59 +00:00
Magnus Olsen
a418e5094f the name GetCodePage and OutCodePage is a bit misleading, change it to InputCodePage and OutputCodePage
svn path=/trunk/; revision=15077
2005-05-07 11:54:22 +00:00
Magnus Olsen
e23d422877 Add cache for codepage so it does not call hole time on csrss when it wring out text
it will incress the speed.  Thx w3seek and kjk for the idea.

svn path=/trunk/; revision=15076
2005-05-07 11:14:58 +00:00
Casper Hornstrup
fcd3eba58a Make expat a static library
svn path=/branches/xmlbuildsystem/; revision=15075
2005-05-07 08:32:28 +00:00
Casper Hornstrup
0f6993a1eb Correct typo
svn path=/branches/xmlbuildsystem/; revision=15074
2005-05-07 08:15:07 +00:00
Casper Hornstrup
9b6d13c91b Correctly forward exports to NTDLL
svn path=/branches/xmlbuildsystem/; revision=15073
2005-05-07 08:08:12 +00:00
Casper Hornstrup
2bf694521a Smdll is a native DLL. Thanks to Ge van Geldorp for figuring this out.
svn path=/branches/xmlbuildsystem/; revision=15072
2005-05-07 07:46:54 +00:00
Alex Ionescu
a027f33c15 Update Fast I/O Dispatch routines to proper defintions, and move some stuff into io defines instead of internal native types. Remove outdated data due to newest IFS.
svn path=/trunk/; revision=15071
2005-05-07 06:09:56 +00:00
Alex Ionescu
f11525033d Fix driver loading. patch by tinus
svn path=/trunk/; revision=15070
2005-05-07 01:17:36 +00:00
Alex Ionescu
ee7e1eefbe More IRP Completion changes. Use proper stack count and other semantics, as documented in NT File System Internals. These changes don't break anything :P
svn path=/trunk/; revision=15069
2005-05-07 01:13:04 +00:00
Alex Ionescu
7ed5318927 Update ETHREAD to latest version.
svn path=/trunk/; revision=15068
2005-05-07 00:37:48 +00:00
Thomas Bluemel
c38185a947 ReadFile should return 0 to lpNumberOfBytesRead if NtReadFile returned STATUS_END_OF_FILE for synchronous operations
svn path=/trunk/; revision=15067
2005-05-07 00:21:06 +00:00
Alex Ionescu
3d44032203 Fix win32k to use new EPROCESS defintion
svn path=/trunk/; revision=15066
2005-05-06 22:55:52 +00:00
Alex Ionescu
8c4f9d3417 Update EPROCESS to latest version. Basic Fast Referencing Stubs to allow Token access. Needs to be implemented. Use ActiveProcessLinks instead of ros-specific list.
svn path=/trunk/; revision=15065
2005-05-06 22:54:40 +00:00
Gé van Geldorp
c9ff7749cf Link against static lib instead of dll
svn path=/branches/xmlbuildsystem/; revision=15064
2005-05-06 22:38:00 +00:00
Thomas Bluemel
6ab4605c43 upgrade to PSEH2 (note, the new macros are still named _SEH_*, not _SEH2_*!)
svn path=/trunk/; revision=15063
2005-05-06 22:25:30 +00:00
Aleksey Bragin
9c40b2406e Patch by tinus: Resolves issue of keyboard detection when e.g. booting ReactOS under VMWare with no keyboard grabbed.
svn path=/trunk/; revision=15062
2005-05-06 21:18:20 +00:00
Magnus Olsen
069ef02dff <tinus_> "Forgotten file from commit 14982"
svn path=/trunk/; revision=15061
2005-05-06 20:45:30 +00:00
Magnus Olsen
d01fb36f3c HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt\Parameters","SampleRate",0x00010001,0x00000060
60 are the dec value but it have not be convort to hex that is 0x3c

legmet value are, e.g., 10, 20, 40,   60, 80, 100, 200.'
in dec in hex 0x0a, 0x14, 0x28, 0x3c, 0x50, 0x64,  0xc8

svn path=/trunk/; revision=15060
2005-05-06 20:12:37 +00:00
Gé van Geldorp
6bd014f928 Update status
svn path=/trunk/; revision=15059
2005-05-06 19:42:39 +00:00
Gé van Geldorp
1bac2f80fc Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.

svn path=/trunk/; revision=15057
2005-05-06 19:18:46 +00:00
Gé van Geldorp
03a1e1b191 Sync to Wine-20050419:
Robert Reif <reif@earthlink.net>
- Stub out DRVM_MAPPER_RECONFIGURE support.
- Correctly handle where waveOutGetPosition changes timepos.wType
  because the requested type is not supported.
- Added Jeremy White's waveOutGetPosition fix to waveInGetPosition.
- Fix memory leak in error path.
- Provide default implementation of waveInPrepareHeader and
  waveInUnprepareHeader if driver doesn't support them.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Peter Berg Larsen <pebl@math.ku.dk>
- Assorted memleak fixes. Found on Michael Stefaniuc smatch list.
Jeremy White <jwhite@codeweavers.com>
- Do not fallback to defaults if a driver, mapper, or midi is specified
  in the registry; consolidate MMDRV_Init() into a single function.
Robert Reif <reif@earthlink.net>
- Fix memory leak when there are too many drivers.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Correct and complete some api documentation.
Filip Navara <xnavara@volny.cz>
- Specify correct buffer size in GetPrivateProfileStringW calls.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Avoid trap in mixerGetLineControlsA when cControls is uninitialized
  and MIXER_GETLINECONTROLSSF_ONEBYTYPE requested.

svn path=/trunk/; revision=15056
2005-05-06 19:16:10 +00:00
Gé van Geldorp
c963e3149a Fix filename case
svn path=/trunk/; revision=15055
2005-05-06 19:11:20 +00:00
Casper Hornstrup
610edc2729 Correct typo
svn path=/trunk/; revision=15054
2005-05-06 19:06:59 +00:00
Magnus Olsen
9736e48f66 Thx w3seek that pointout a bug in ConInString it should have been in fristplase GetConsoleCP() instead for GetConsoleOutputCP
svn path=/trunk/; revision=15053
2005-05-06 17:30:45 +00:00
Magnus Olsen
3f0b1b9276 At last unicode version of cmd are now output text with right code page
so charater on other langues like swedish, french, ... will display right now

svn path=/trunk/; revision=15052
2005-05-06 17:10:21 +00:00
Thomas Bluemel
b62466eed1 - fixed TransactNamedPipe to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15051
2005-05-06 16:47:09 +00:00
Gé van Geldorp
bb1d3b119b Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Strncpy elimination.
- Janitorial: Get rid of strncpy/strncpyW.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Troy Rollo <wine@troy.rollo.name>
- Corrections to UrlIsW and UrlIsA.
- URL_IS_OPAQUE results depend only on the scheme, not on the URL.
- URL_IS_FILEURL also only depends on the scheme ("file:").
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Robert Shearman <rob@codeweavers.com>
- Fix SHCopyKey to treat string parameter correctly as source path
  instead of destination path.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
- Implement @188,190,195,200,256,478,481.
- IUnknown_EnableModeless() also handles IOleInPlaceActiveObject.
- Tests and small fix for PathMakePretty().
- Fix a crash and test failure with early native dlls.

svn path=/trunk/; revision=15050
2005-05-06 16:23:24 +00:00
Aleksey Bragin
c72be4b69c Make intl.cpl really switch InstallLanguage and Default entries of NLS\Language key. Problem with freeldr solved in hacky way - it writes now e.g. "0409" and not "00000409", as it generally should.
svn path=/trunk/; revision=15049
2005-05-06 16:21:30 +00:00
Thomas Bluemel
ecba32de75 - fixed ConnectNamedPipe to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15048
2005-05-06 16:07:51 +00:00
Casper Hornstrup
e5c1f57b80 Add <module>_install target
svn path=/branches/xmlbuildsystem/; revision=15047
2005-05-06 16:05:37 +00:00
Casper Hornstrup
7dec8061f1 Add missing files
svn path=/branches/xmlbuildsystem/; revision=15046
2005-05-06 16:02:04 +00:00
Thomas Bluemel
f16e5b9e1d - fixed DeviceIoControl to properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15045
2005-05-06 15:55:28 +00:00
Casper Hornstrup
df0195a558 More sane default image base addresses
svn path=/branches/xmlbuildsystem/; revision=15044
2005-05-06 14:12:25 +00:00
Thomas Bluemel
496308ed56 - fixed Read/WriteFile(Ex) and properly wait on completion for synchronous operations
- prevent completion port notification by not passing an APC context to the kernel when the low-order bit of the event handle is set (for asynchronous operations)

svn path=/trunk/; revision=15043
2005-05-06 14:02:45 +00:00
Hartmut Birr
c565a223c9 Revert my last changes.
svn path=/trunk/; revision=15042
2005-05-06 13:35:27 +00:00
Casper Hornstrup
ede9da6bd0 Build dhcp
svn path=/branches/xmlbuildsystem/; revision=15041
2005-05-06 12:22:35 +00:00
Hartmut Birr
7fb90fae33 Do not modify the stack layout of a function by using inline assembler.
svn path=/trunk/; revision=15040
2005-05-06 12:17:29 +00:00
Hervé Poussineau
71b3a2ede3 Revert ntoskrnl/cm/regobj.c back to revision 14017
svn path=/trunk/; revision=15039
2005-05-06 11:53:35 +00:00
Casper Hornstrup
3528760e8e Add missing file
svn path=/branches/xmlbuildsystem/; revision=15038
2005-05-06 11:20:10 +00:00
Thomas Bluemel
5ff8364d66 minor corrections to match the behavior of wine's implementation
svn path=/trunk/; revision=15037
2005-05-06 11:02:47 +00:00
Casper Hornstrup
3dc17696df Don't strip relocation information from DLLs
svn path=/branches/xmlbuildsystem/; revision=15036
2005-05-06 10:45:24 +00:00
Casper Hornstrup
ae18ba571a Set svn:eol-style=native
svn path=/branches/xmlbuildsystem/; revision=15035
2005-05-06 10:38:30 +00:00
Casper Hornstrup
751a4e3a06 Add missing leading underscores in symbols
svn path=/branches/xmlbuildsystem/; revision=15034
2005-05-06 10:17:43 +00:00
Magnus Olsen
6687b53ab8 David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=15033
2005-05-06 08:27:46 +00:00
Magnus Olsen
b6759ac808 Swedish translations by David Nordenberg
svn path=/trunk/; revision=15032
2005-05-06 08:21:12 +00:00
Alex Ionescu
b33f21c67e Update some more kernel structures
svn path=/trunk/; revision=15031
2005-05-06 00:11:25 +00:00
Thomas Bluemel
72be0f4961 open the module image file with read access rights instead of full access rights
svn path=/trunk/; revision=15030
2005-05-06 00:11:14 +00:00
Thomas Bluemel
03912150d8 create a token handle with TOKEN_QUERY access rights which is required to query the user information in RtlFormatCurrentUserKeyPath
svn path=/trunk/; revision=15029
2005-05-06 00:09:08 +00:00
Thomas Bluemel
83a2899311 don't leak the registry path string after initializing a driver
svn path=/trunk/; revision=15028
2005-05-06 00:07:05 +00:00
Alex Ionescu
5267e6247e Update KPROCESS structure to latest version and document all its fields on the Wiki page. Move Kernel Structures to ke.h from ps.h, remove stuff from ntifs.h that shouldnt be there
svn path=/trunk/; revision=15027
2005-05-05 22:40:05 +00:00
Gé van Geldorp
b36a075a86 Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.

svn path=/trunk/; revision=15026
2005-05-05 22:36:25 +00:00
Hartmut Birr
a2a2ab569b Fixed InterlockedClearBit.
svn path=/trunk/; revision=15025
2005-05-05 22:24:27 +00:00
Gé van Geldorp
a3cf83ca68 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Mike McCormack <mike@codeweavers.com>
- Remove an unused function.
- Eliminate casts of the return value of HeapAlloc.
- Convert path to unicode, rearrange to remove forward declaration.
- Remove forward declarations of interface methods.
- Remove some dead code and some ifdefs.
- Use api definitions, remove duplicate code.
- Fix usage of STGM_ enumerations, remove forward declaration.
- Fix up PIDL dumping code.
- Fix a regression in the file open dialog.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
Huw Davies <huw@codeweavers.com>
- Fix the icon resource ids (most were off by one).
- Fix IExtractIcon_{GetIconLocation,Extract} to use -ve icon resource
  ids and fix bugs relating to confusion between resource ids and the
  system imagelist indicies.
- Extend the system imagelist initialization hack to load both +ve and
  -ve resource ids.
- Add a printer icon (that'll be used by an upcoming printer folder
  patch).
- When we're hiding file extensions then SetNameOf should append the
  original extension if SHGDN_FORPARSING isn't set.
- The flags passed to SetNameOf refer to the dst string not the src
  pidl.
- If ICommDlgBrowser_OnDefaultCommand returns anything other than S_OK
  then we should call the default handler.
- Directory items should have the SFGOA_FILESYSANCESTOR attribute.
  Add a test for this and cleanup the shlfolder test a bit.
- Better icon handling for some special folders.
- Identify and add defines for a bunch of shell icons.
- Add a unicode pidl type.
- Improve support for PT_YAGUID.
- Improve IShellLink debugging.
Steven Edwards <steven_ed4153@yahoo.com>
- Register Shell Drag and Drop Helper.
Juan Lang <juan_lang@yahoo.com>
- Use Unicode string result from GetDisplayNameOf if it isn't
  representable using ANSI.
- Correct registering shell folders (values in Shell Folders key weren't
  getting written).
Martin Fuchs <martin-fuchs@gmx.net>
- switch to correct shell desktop context menu
- launch desk.cpl when activating the desktop context menu entry
  "properties"
- don't send WM_COMMAND if we didn't get a shell view window
- Correct comments of some export ordinals.
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
Troy Rollo <wine@troy.rollo.name>
- Fix SEGV for non-fully-qualified destination paths.
- Don't fail ShFileOperationW if FOF_ALLOWUNDO is passed.
Filip Navara <xnavara@volny.cz>
- _dbg_ILGetNext returns NULL if pidl->mkid.cb is zero, fix the loops
  accordingly.
Aric Stewart <aric@codeweavers.com>
- For ShellExecuteExA we need to copy out the hProcess value from the W
  structure.

svn path=/trunk/; revision=15024
2005-05-05 22:16:20 +00:00
Gé van Geldorp
ee1685bd2e Sync to Wine-20050419:
Mike McCormack <mike@codeweavers.com>
- Add stub for FaultInIEFeature.

svn path=/trunk/; revision=15023
2005-05-05 21:07:02 +00:00
Hervé Poussineau
fe7b55c2c1 SVN maintenance: Set eol style to native and add keywords
svn path=/trunk/; revision=15022
2005-05-05 20:52:14 +00:00
Hervé Poussineau
cb0daf73fd RtlFreeUnicodeString -> ExFreePool changes
svn path=/trunk/; revision=15021
2005-05-05 20:19:01 +00:00
Gé van Geldorp
6758bb095b Sync to Wine-20050419:
Hans Leidekker <hans@it.vu.nl>
- Stub implementation for SetupCopyOEMInfW.
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Juan Lang <juan_lang@yahoo.com>
- Implement SetupDiClassNameFromGuidExA.

svn path=/trunk/; revision=15020
2005-05-05 20:14:39 +00:00
Hervé Poussineau
30cd41fa52 Forgot to commit this file with revision 15013
svn path=/trunk/; revision=15019
2005-05-05 19:36:25 +00:00
Gé van Geldorp
dff6294185 Sync to Wine-20050419:
Robert Shearman <rob@codeweavers.com>
- Fix deadlock caused by not leaving the critical section on all code
  paths.
- RpcMgmtStopServerListen should not affect auto-listen interfaces.
- Implement stub for RpcRevertToSelfEx.
- Change the more verbose files to use a new debug channel, "rpc."
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Ralf S. Engelschall <rse@engelschall.com>
- Fix incorrect random multicast MAC address creation.

svn path=/trunk/; revision=15018
2005-05-05 19:17:25 +00:00
Casper Hornstrup
1fef01891c Merge 14551:14980 from trunk
svn path=/branches/xmlbuildsystem/; revision=15017
2005-05-05 19:15:25 +00:00
Gé van Geldorp
d0bf4f6953 Sync to Wine-20050419:
Remove no longer needed files.

svn path=/trunk/; revision=15016
2005-05-05 19:11:20 +00:00
Magnus Olsen
6af3fc11fe swedish translation by Andreas Bjerkeholt
svn path=/trunk/; revision=15015
2005-05-05 19:05:42 +00:00
Gé van Geldorp
e14533d20a Sync to Wine-20050419:
Krzysztof Foltman <wdev@foltman.com>
- removed trailing spaces from some files
- tab support
- indent support
- PageUp key support.
- Support for "normal" scroll bar functionality (line and page
  scrolling).
- made string operations consistent wrt whitespace handling (which
  should greatly improve stability of the wrap code and eliminate
  regressions of the most recent versions)
- completely new scrollbar handling (much more reliable) and related
  redraw fixes
- Page Down handler (no Page Up yet, fixing wrap/redraw/scrollbar bugs
  was of higher priority)
- RTF reader doesn't use RichEdit messages anymore (which saves on
  unnecessary repaints)
- added unicode character support to RTF import (like: \u12345 ?)
- small fixes
- fixed whitespace identification bug
- removed drawing of paragraph marks
- improved stub implementations for IRichEditOle
- Unknown destinations are now correctly skipped (so loading an RTF
  file generated by, for example, OpenOffice doesn't produce lots of
  garbage anymore).
- Format stack for RTF groups (so that RTF reader can correctly read
  what RTF writer wrote :) )
- EM_STREAMIN can now deal with undo in a reasonable manner (no
  multiple undo actions in one EM_STREAMIN).
- Related changes to undo code (umIgnore mode is now handled
  correctly).
- Numerous improvements in the RTF reader: it reads some character
  attributes now (you will have proper small print in license agreements
  now).
- Fixed a memory overwrite bug in conversion from CHARFORMAT2A to
  CHARFORMAT2W.
- Optimized repaint of the area below the text.
- ME_JoinRuns didn't mark the paragraph for rewrapping, fixed.
- Removed PostQuitMessage(0) from WM_DESTROY handler (duh!).
- Use of EM_GETOLEINTERFACE is reported with FIXME instead of TRACE
  (any app using this message is likely to encounter major problems).
- WM_COPY (and WM_CUT) can now put both Unicode and RTF format (thanks
  to Phil Krylov's RTF generator code).
- New message implemented - WM_PASTE.
- RTF reader: rtfPlain implemented (kind of).
- RTF writer: rewritten main loop (the old one crashed in some
  circumstances when SFF_SELECTION was used).
- The meaning of the rewrap flag got inverted (MEPF_REWRAP instead of
  MEPF_WRAPPED) for consistency.
- Major code cleanups in rewrap/repaint code, leading to "smarter"
  behaviour wrt repainting selections.
- Old font management replaced by the cache-based one, which keeps
  maximum of 10 HFONTs at once, instead of one per a couple of runs.
- EM_CANPASTE implemented
- updated TODO list (including list of (un)implemented messages)
- fixed WM_PASTE (the previous version might not close the clipboard
  if it didn't contain a usable format)
- scrollbar operations (like clicking on arrows) should update
  scrollbar's current position
Gerald Pfeifer <gerald@pfeifer.com>
- Make ME_ArrowLeft() return a value in every case.
Phil Krylov <phil@newstar.rinet.ru>
- Make RTF reader fall back to simple text if a correct RTF header is
  not detected. This should fix some installers.
- Made RTF reader and writer handle codepages mostly similar to the
  original riched20.dll.
- Fixed support for RTF documents using ANSI charset and added support
  for multibyte charsets, so that BIG5 and UTF-8 RTF documents are
  working now.
- Replaced slow and outdated character set handling in RTF reader by
  Unicode/codepages support. Added charset->codepage conversion.
- Implemented hash table lookup for RTF keywords in RTF reader.
- Added "generator" RTF destination handling.
- Initial implementation of EM_STREAMOUT and RTF writer.
- Fixed \u keyword to output signed 16-bit values. Also fixed CP_SYMBOL
  conversion and the detection of the default font's codepage.
- Improved RTF export.
Mike McCormack <mike@codeweavers.com>
- Remove casts and unused code.
Hannu Valtonen <Hannu.Valtonen@hut.fi>
- Added mousewheel support.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Use "" for Windows includes in dlls, instead of <>.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Correct memory allocation macro.

svn path=/trunk/; revision=15014
2005-05-05 19:00:49 +00:00
Hervé Poussineau
f71087e736 ExFreePool -> ExFreePoolWithTag changes
svn path=/trunk/; revision=15013
2005-05-05 18:59:14 +00:00
Gé van Geldorp
7bd0add306 Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.

svn path=/trunk/; revision=15012
2005-05-05 18:32:46 +00:00
Gé van Geldorp
df82a2a2a8 Sync to Wine-20050419:
Daniel Remenak <dtremenak@gmail.com>
- Implemented VarIdiv.
- Return DISP_E_DIVBYZERO instead of crashing when asked to divide a
  variant by zero.
- Remove unused variable in _copy_arg.
Marcus Meissner <meissner@suse.de>
- Serialize NULL pointer interfaces correctly.
- Fixed VT_BSTR|VT_BYREF marshalling.
- Added VT_I4|VT_BYREF marshalling.
- Fixed ppvObject serializer (deref twice instead of once).
- Actually pass back return value of remote call in type marshaller.
- Format VT_UI1, VT_I1, VT_UI2, VT_I2 correctly.
- Added IDispatch::GetIDsOfNames() special case serializing.
- Handle VT_PTR / NULL marshalling correctly.
Mike Hearn <mike@navi.cx>
- Fix BSTR tracing in the typelib marshaller.
- Fix PARAMFLAG_FOUT typo in the tmarshaller.
Mike Hearn <mh@codeweavers.com>
Robert Shearman <rob@codeweavers.com>
- Implement VT_BYREF | VT_BSTR marshalling.
- Add more integer types for marshaling and unmarshaling.
- Implement VT_BYREF | VT_BSTR unmarshaling.
- Don't allocate memory for TKIND_DISPATCH/TKIND_INTERFACE
  unmarshaling as it will be lost in the success case and interferes
  with the failure case.
Robert Shearman <rob@codeweavers.com>
- Add outer unknown support for typelib marshaler.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Fix leftover negative sign in height parameter for transparent
  bitmap.
- Properly announce whether bitmap is transparent in get_Attributes.
- GIF transparency is now palette-index based, instead of RGB based.
- Keep original bitmap and XOR mask separate, so that get_Handle
  returns original bitmap.
- Initialize [orig|himetric][Width|Height] for PICTYPE_ICON case.
- Fix failure to notice the use of a GIF palette index greater or equal
  to 128 for transparency.
- After Float->string conversion via sprintfW(), VarDecFromR[4|8] is
  forced to use US locale for string->Decimal conversion, to agree with
  sprintfW().

svn path=/trunk/; revision=15011
2005-05-05 18:29:41 +00:00
Gé van Geldorp
61e422828e Sync to Wine-20050419:
Juan Lang <juan_lang@yahoo.com>
- Implement PropSys{Alloc|Free}String, and support BSTRs in
  PropVariant{Clear|Copy} using them.
- Begin implementing IPropertyStorage.
- Add traces, add unit tests for IPropertyStorage, and fix the problems
  they caught.
- Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests.
- add write support to IPropertyStorage, with tests
- misc. cleanups the tests turned up
- Add a comment about byte order, change types to reduce casting and not
  cast away constness.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Change prototypes so gcc with some warnings doesn't bark.
- Correct and complete some api documentation.
Mike McCormack <mike@codeweavers.com>
- Eliminate forward declarations, make functions static.
- Eliminate casts of the return value of HeapAlloc.
- Remove function prototypes, make functions static.
- StgOpenStorage shouldn't open zero length storage files.
- Remove unnecessary function prototypes.
Robert Shearman <rob@codeweavers.com>
- Add critsec debugging info.
- Move the modal loop called during RPCs into CoWaitForMultipleHandles.
- Use a mutex for long remoting calls to IRemUnknown methods.
- Remove locking in apartment_disconnectproxies as it is not needed.
- Use PostMessage instead of SendMessage so we can run the message
  loop or not as appropriate.
- Rename apartment functions to become more object-oriented.
- Rename register_ifstub to marshal_object to more accurately describe
  what it does.
- Add new function, apartment_getoxid, to prepare for a possible
  future patch where remoting is started on demand.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc).
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Huw Davies <huw@codeweavers.com>
- Don't close reg key if the open failed.
- WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's
  unclear when (if at all) this gets written.
Alexandre Julliard <julliard@winehq.org>
- Fixed a buffer overflow.
Joris Huizer <jorishuizer@planet.nl>
- A few memory checks avoiding memory leaks.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Zero out an invalidated runningObjectTableInstance pointer.
Dimitrie O. Paun <dpaun@rogers.com>
- Remove the need for the non-standard (Close|Delete)MetaFile16().
Troy Rollo <wine@troy.rollo.name>
- ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles.

svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
Thomas Bluemel
6b48fc81ad implemented RegOpenUserClassesRoot (doesn't work in reactos because there's no symbolic link \Registry\User\<SID>_Classes yet)
svn path=/trunk/; revision=15009
2005-05-05 17:45:00 +00:00
Hervé Poussineau
bcbeeea71f Change ExFreePool to ExFreePoolWithTag
Don't call RtlFreeUnicodeString if the string wasn't created by RtlAnsiStringToUnicodeString or RtlUpcaseUnicodeString
Implement ExRosQueryNonPagedPoolTag
Add BAD_POOL_CALLER code

svn path=/trunk/; revision=15008
2005-05-05 17:20:10 +00:00
Eric Kohl
11670a0523 Implement OpenAndMapFileForRead, RetreiveFileSecurity, StampFileSecurity, TakeOwnershipOfFile and UnmapAndCloseFile.
svn path=/trunk/; revision=15007
2005-05-05 16:16:28 +00:00
Thomas Bluemel
de9188501b the registry functions shouldn't change the last error, instead they should just return the error code.
svn path=/trunk/; revision=15006
2005-05-05 16:15:08 +00:00
Magnus Olsen
f2454371af Update the swedish translation by
David Nordenberg 



svn path=/trunk/; revision=15005
2005-05-05 16:05:46 +00:00
Hervé Poussineau
a3d0da6d95 Don't desallocate non allocated memory
svn path=/trunk/; revision=15004
2005-05-05 15:39:36 +00:00
Thomas Bluemel
b9c033f3ec - ported BuildTrusteeWithObjectsAndNameA/W and BuildTrusteeWithObjectsAndSidA/W from wine
- implemented RegOpenCurrentUser
- directly forward GetSecurityDescriptorLength to NTDLL.RtlLengthSecurityDescriptorguard dumping the stack trace to prevent infinite exception loopsguard dumping the stack trace to prevent infinite exception loops

svn path=/trunk/; revision=15003
2005-05-05 15:39:27 +00:00
Hervé Poussineau
9961bb7d69 Better handle of wrong arguments in IoRegisterDeviceInterface
svn path=/trunk/; revision=15002
2005-05-05 15:39:09 +00:00
Thomas Bluemel
0f4b0fd412 guard dumping the stack trace to prevent infinite exception loops
svn path=/trunk/; revision=15001
2005-05-05 15:38:32 +00:00
Hervé Poussineau
e5443b9351 Call Fs notifications at PASSIVE_LEVEL by using a guarded mutex
Use ExFreePoolWithTag instead of ExFreePool

svn path=/trunk/; revision=15000
2005-05-05 13:27:00 +00:00
Thomas Bluemel
da6a50d93f directly use HeapAlloc/Free in midl_user_allocate and midl_user_free instead of the depreciated GlobalAlloc/Free functions
svn path=/trunk/; revision=14999
2005-05-05 13:24:39 +00:00
Thomas Bluemel
cb363f4f7d use SERVICES_ACTIVE_DATABASE if the caller didn't specify a database for OpenSCManager()
svn path=/trunk/; revision=14998
2005-05-05 12:58:03 +00:00
Alex Ionescu
264cee75a3 Simply fix up the formatting, there were tabs and 3 spaces and 4 spaces and 2 spaces identation. No code was harmed.
svn path=/trunk/; revision=14997
2005-05-05 12:35:09 +00:00
Thomas Bluemel
74d7b0c5f4 prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14996
2005-05-05 12:25:40 +00:00
Thomas Bluemel
e85ca23849 don't dereference lpTokenAttributes if the caller passed NULL to DuplicateTokenEx
svn path=/trunk/; revision=14995
2005-05-05 12:21:43 +00:00
Magnus Olsen
d22f099901 Usurp
fransch translations
fix right help string printing out on screen wrong strings was loading when you need help
incress the string buffer for loading strings from rc example for dir /?
remove duplicate STRING_PARAM_ERROR

solv bugzila bug 618 


svn path=/trunk/; revision=14994
2005-05-05 12:03:43 +00:00
Hartmut Birr
3fdefd1abf - Use the WIN32 option to select the correct mkdir.
svn path=/trunk/; revision=14993
2005-05-05 11:28:49 +00:00
Hartmut Birr
76a83ce1cc - Detect msys on windows as a linux system.
- Creating of the bootcd will not work. There is somewhere a path with 'c:/'.

svn path=/trunk/; revision=14992
2005-05-05 11:26:32 +00:00
Hartmut Birr
159160db0d - Fixed the parameters for NtOpenFile in InternalFindFirstFile.
- Closed the opened directory on error in InternalFindFirstFile.

svn path=/trunk/; revision=14991
2005-05-05 11:07:28 +00:00
Hartmut Birr
43e3abdd99 - Return the length in VfatDirectoryControl.
svn path=/trunk/; revision=14990
2005-05-05 11:05:05 +00:00
Hartmut Birr
5e49963c1a - Free always the name string and the completion context in IopDeleteFile.
- Fixed the check for synchronous operations in NtQueryDirectoryFile.

svn path=/trunk/; revision=14989
2005-05-05 11:03:27 +00:00
Hartmut Birr
4200c75f3b - Guard the copying to the IOSB.
- Do the main processing on success or if previous STATUS_PENDING was returned. 
  Do not use some of the IRP and FO flags at this point.   
- Set all results before signaling the events.  
- Signal the FO event previous the user event.    
- Made the code a little bit shorter.


svn path=/trunk/; revision=14988
2005-05-05 10:59:34 +00:00
Hervé Poussineau
e80efe27d7 SVN maintenance:
Delete wine_unicode.map
Add *.map to ignore list

svn path=/trunk/; revision=14987
2005-05-05 09:59:38 +00:00
Casper Hornstrup
0bb263067a Copy wininet to branch
svn path=/branches/xmlbuildsystem/; revision=14986
2005-05-05 09:48:22 +00:00
Casper Hornstrup
0922a0e8e5 Delete wininet
svn path=/branches/xmlbuildsystem/; revision=14985
2005-05-05 09:45:38 +00:00
Thomas Bluemel
483c08b898 - fixed RegSetValueEx to take the null-terminating byte for strings into account when the caller forgot it
- capture the driver service name string in NtLoadDriver

svn path=/trunk/; revision=14984
2005-05-05 02:46:17 +00:00
Thomas Bluemel
079656c5c4 only create handles with access rights needed for the operation
svn path=/trunk/; revision=14983
2005-05-05 00:07:27 +00:00
Magnus Olsen
7a3fb8af07 tinus
implement MouseResolution setting

Me (Magnus Olsen)
remove old psuax drv from hiveinst.inf and add tinus mouse drv settings
add MouseResolution setting to reg


svn path=/trunk/; revision=14982
2005-05-04 23:06:15 +00:00
Thomas Bluemel
0e71d1e88d prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14981
2005-05-04 22:32:43 +00:00
Thomas Bluemel
c1b7289bd6 prevent buffer overflow, LoadString accepts the size of the buffer in TCHARs, not in bytes!
svn path=/trunk/; revision=14980
2005-05-04 22:21:55 +00:00
Thomas Bluemel
410ddcfe72 correctly use tchar.h again and build a unicode version by default
svn path=/trunk/; revision=14979
2005-05-04 22:18:43 +00:00
Thomas Bluemel
6a0f65e223 it's valid to pass lpTargetHandle = NULL to DuplicateHandle()
svn path=/trunk/; revision=14978
2005-05-04 21:23:13 +00:00
Gé van Geldorp
600cfcc505 Fix GDB stub:
- Initialize WrapperTable routines as early as possible
- Initialize debug port (hard coded to COM2, 115200 baud for now)
- Don't limit runnable thread on startup

svn path=/trunk/; revision=14977
2005-05-04 20:38:43 +00:00
Thomas Bluemel
68b564e30a make correct use of tchar.h in taskmgr and build it as unicode by default
svn path=/trunk/; revision=14976
2005-05-04 19:29:28 +00:00
Maarten Bosma
587ddda1d5 Steven Wilson: update tlist to use new process info struct names
svn path=/trunk/; revision=14975
2005-05-04 18:53:47 +00:00
Magnus Olsen
6039178c86 David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt and small change from Kris Engeman
svn path=/trunk/; revision=14974
2005-05-04 18:10:12 +00:00
Martin Fuchs
8ec74d5f10 restore toolbar bitmap
svn path=/trunk/; revision=14973
2005-05-04 17:59:36 +00:00
Magnus Olsen
7e2d943420 Swedish åäö was gone in the translation after some commit.
I which we can split all langues to own .rc files. 
so this can not be happen agien

Thx  Harteex for fixing åäö in the .rc file 

svn path=/trunk/; revision=14972
2005-05-04 17:41:27 +00:00
Magnus Olsen
35b46085ea filip0402 : patch for taskmgr to remove some hardcode string tested by Harteex
svn path=/trunk/; revision=14971
2005-05-04 16:54:48 +00:00
Hervé Poussineau
60bdc5ad60 Set Thread->SystemThread to TRUE when creating a system thread. Patch by Filip Navara
svn path=/trunk/; revision=14970
2005-05-04 16:00:39 +00:00
Aleksey Bragin
d534342503 RegOpenKey, RegOpenKeyEx A/W imported and ported from WINE. This keeps the current test set in advapi32_test registry on 85/0 level
svn path=/trunk/; revision=14969
2005-05-04 15:53:54 +00:00
Aleksey Bragin
8460c6e770 NtOpenKey modified to correctly behave when wrong input params are given (according to WINE tests).
svn path=/trunk/; revision=14968
2005-05-04 15:27:05 +00:00
Hervé Poussineau
ed23d5951d Fix flags checking in I8042ReadData (patch by Tinus_)
Check error codes returned by IoCreateDevice
Replace ExFreePool by ExFreePoolWithTag

svn path=/trunk/; revision=14967
2005-05-04 13:28:34 +00:00
Alex Ionescu
985abe1494 Fix horrible bug where Queued Threads were treated like Threads on the Ready list. I was aware of this bug for months and it's fixed in my new scheduler but now that tinus has seen it happen, I'm comitting the fix temporarly in trunk.
svn path=/trunk/; revision=14966
2005-05-03 23:24:26 +00:00
Magnus Olsen
151078eab1 bugfix from, tinus mailto:o112w8r02@sneakemail.com
fixining http://reactos.com/bugzilla/show_bug.cgi?id=616#c1
bug in mozila 

There's a small bug in usetup/bootsup.c which makes it fail formatting the disk.
It tries to read the bootsector image on the cdrom for write access (which
succeeds), then tries to read from the handle (which fails).

svn path=/trunk/; revision=14965
2005-05-03 23:18:21 +00:00
Hartmut Birr
5255b326ec Do always set the UserIosb of an irp in IoSecondStageCompletion.
svn path=/trunk/; revision=14964
2005-05-03 21:42:35 +00:00
Hervé Poussineau
f2b9954c3f Add French translation for sndvol32 (Patch by Usurp)
Set properties for Cz.rc and Sv.rc

svn path=/trunk/; revision=14963
2005-05-03 21:25:41 +00:00
Magnus Olsen
0d5f3d84cb Implement WSAStringToAddressA
svn path=/trunk/; revision=14962
2005-05-03 18:37:51 +00:00
Magnus Olsen
4732ce19d1 Implement WSAStringToAddressW
svn path=/trunk/; revision=14961
2005-05-03 17:22:52 +00:00
Hervé Poussineau
d6ce9d647e Remove Disk driver for Bochs.
It doesn't compile and shouldn't be usefull as we have a normal disk driver in drivers/storage/disk

svn path=/trunk/; revision=14960
2005-05-03 13:14:59 +00:00
Martin Fuchs
aa0e827382 rosshell: printer and network folder in start menu
svn path=/trunk/; revision=14959
2005-05-03 12:15:27 +00:00
Alex Ionescu
e49c3dc30f revert accidental commit
svn path=/trunk/; revision=14958
2005-05-03 11:56:46 +00:00
Martin Fuchs
61ce6acfa9 context menu interface pointer cleanup
svn path=/trunk/; revision=14957
2005-05-03 09:32:10 +00:00
Martin Fuchs
7b8809480b small optimization for the last change
svn path=/trunk/; revision=14956
2005-05-03 09:21:42 +00:00
Martin Fuchs
63415000fe display custom folders in start menu root
svn path=/trunk/; revision=14955
2005-05-03 08:04:58 +00:00
Martin Fuchs
7bb756385c context menu interface pointer cleanup
svn path=/trunk/; revision=14954
2005-05-03 08:03:46 +00:00
Hartmut Birr
c853c0b6e3 Open/create all files with the necessary rights.
svn path=/trunk/; revision=14951
2005-05-02 20:30:29 +00:00
Hartmut Birr
98c1f41b90 - Check first for a valid returned object in ObOpenObjectByName.
- Free always the remaining path string if an error is returned in ObOpenObjectByName.

svn path=/trunk/; revision=14950
2005-05-02 19:12:31 +00:00
Hervé Poussineau
82eacd2e6d Add i8042prt.sys and kbdclass.sys to boot cd
Remove leftover of keyboard.sys and psaux.sys drivers
(Pointed by Usurp)

svn path=/trunk/; revision=14949
2005-05-02 16:35:58 +00:00
Emanuele Aliberti
143f5e1f74 Move VMS subtree in the proper place.
svn path=/trunk/; revision=14948
2005-05-02 14:15:56 +00:00
Filip Navara
51e5c11dc8 Fix Alex's completely wrong fix for NtUserScrollWindowEx (aka bug #606).
svn path=/trunk/; revision=14947
2005-05-02 14:05:38 +00:00
Alex Ionescu
6c331c3529 Fix many of the scrollbar issues. However, MDI Scrollbars are still not working perfectly. Patch by tinus <o112w8r02@sneakemail.com>. Fixes bug 606
svn path=/trunk/; revision=14946
2005-05-02 11:42:41 +00:00
Alex Ionescu
dff743f85a Don't call internal function which checks parameters since our parameter is kernel mode.
svn path=/trunk/; revision=14945
2005-05-02 11:38:48 +00:00
Hervé Poussineau
252332e971 Don't free unicode strings in case of error
svn path=/trunk/; revision=14944
2005-05-02 11:03:54 +00:00
Art Yerkes
dabd9ab597 Fix KDSERIAL.
svn path=/trunk/; revision=14943
2005-05-02 07:04:36 +00:00
Alex Ionescu
f19732f822 Same kind of fixes for NtFlushBuffersFile
svn path=/trunk/; revision=14942
2005-05-02 05:27:32 +00:00
Alex Ionescu
fb52d69134 Fix NtQueryInformationFile. Use right device object in case of FO_DIRECT_DEVICE_OPEN, use local event, set proper flags so that the I/O manager does the copying and freeing of the buffers, respect syyncronous I/O. Same kind of fixes for IoQueryFileInformation
svn path=/trunk/; revision=14941
2005-05-02 05:15:20 +00:00
Martin Fuchs
7997eff27f implement owner drawn context menus for winefile
svn path=/trunk/; revision=14940
2005-05-01 23:19:48 +00:00
Hervé Poussineau
f4bf96a034 Fix garbage text output with cmd.exe in GUI mode.
Thanks to Hartmut for pointing me the problem

svn path=/trunk/; revision=14939
2005-05-01 22:30:13 +00:00
Alex Ionescu
b099687f31 Byebye decrepit drivers
svn path=/trunk/; revision=14938
2005-05-01 22:29:18 +00:00
Alex Ionescu
24f249ab54 Remove incorrect change
svn path=/trunk/; revision=14936
2005-05-01 22:20:13 +00:00
Alex Ionescu
f3a824a347 remove accidental commit
svn path=/trunk/; revision=14935
2005-05-01 22:06:38 +00:00
Alex Ionescu
f38095c406 Remove incorrect change
svn path=/trunk/; revision=14934
2005-05-01 21:57:57 +00:00
Alex Ionescu
13c655b516 Do not signal event twice. Thanks to Gunnar for finding the bug
svn path=/trunk/; revision=14933
2005-05-01 21:51:57 +00:00
Martin Fuchs
8441c8115e merge ROS Shell without integrated explorer part into trunk
svn path=/trunk/; revision=14932
2005-05-01 21:22:13 +00:00
Thomas Bluemel
38055bc7ed DeleteFile should create a handle with DELETE access rights
svn path=/trunk/; revision=14931
2005-05-01 21:19:04 +00:00
Hervé Poussineau
9420d88967 SVN maintenance on new directories/files
svn path=/trunk/; revision=14929
2005-05-01 21:03:02 +00:00
Filip Navara
27fff4b070 Potapnik <jirka@studioprojekt.cz>
Czech translation of Registry Editor.

svn path=/trunk/; revision=14928
2005-05-01 20:53:29 +00:00
Filip Navara
a5584f9242 Potapnik <jirka@studioprojekt.cz>
Czech translation of VMWInst, Welcome and WinLogon (with one change by me).

svn path=/trunk/; revision=14927
2005-05-01 20:48:20 +00:00
Alex Ionescu
a70444fab1 i8042prt driver by tinus.
svn path=/trunk/; revision=14926
2005-05-01 20:38:29 +00:00
Magnus Olsen
82b7f31f61 reverted them back from ekohl change it create
alot of problem example chater are not being display right
if you switch reactos to another langues. 

svn path=/trunk/; revision=14925
2005-05-01 20:30:41 +00:00
Hervé Poussineau
fbad02ab35 Please give names to your PDOs. Should correct the boot on non-ACPI systems.
svn path=/trunk/; revision=14924
2005-05-01 20:20:59 +00:00
Martin Fuchs
7562cce403 more rosshell separations
svn path=/branches/lean-explorer/; revision=14923
2005-05-01 20:12:06 +00:00
Martin Fuchs
2547a93939 experimental ROS Shell without integrated explorer part
svn path=/branches/lean-explorer/; revision=14922
2005-05-01 20:02:30 +00:00
Alex Ionescu
aa1fd35178 Fix IopCloseFile: Use IRP_SYNC_API flag, use local stack event, get the right deviceobject if FO_DIRECT_DEVICE_OPEN is set, set IRP_CLOSE_OPERATION flag.
svn path=/trunk/; revision=14921
2005-05-01 19:46:51 +00:00
Alex Ionescu
f7695b0f53 Fix IopDeleteFile: Use IRP_SYNC_API flag, use local stack event, fix memory leak (Free completion context), dereference completion port, get the right deviceobject if FO_DIRECT_DEVICE_OPEN is set
svn path=/trunk/; revision=14920
2005-05-01 19:36:00 +00:00
Thomas Bluemel
722d9a84e4 fixed some warnings with gcc4 (mostly assignment differs in signedness warnings)
svn path=/trunk/; revision=14919
2005-05-01 19:30:06 +00:00
Magnus Olsen
832cfa1af7 Fix so it can compile agein
svn path=/trunk/; revision=14918
2005-05-01 18:23:08 +00:00
Magnus Olsen
62bf02deb7 Remove some hardcode strings
to En.rc

svn path=/trunk/; revision=14917
2005-05-01 17:32:09 +00:00
Magnus Olsen
7a4df43bd1 Move english langues to own .rc file (En.rc) so it be more easy to maintain all langues
svn path=/trunk/; revision=14916
2005-05-01 15:18:45 +00:00
Magnus Olsen
6ee6ce325b Move english langues to own .rc file (En.rc) so it be more easy to maintain all langues
svn path=/trunk/; revision=14915
2005-05-01 14:53:57 +00:00
Magnus Olsen
dfa965f933 Andreas Bjerkeholt: Swedish translation, proofread by David Nordenberg
svn path=/trunk/; revision=14914
2005-05-01 14:42:04 +00:00
Magnus Olsen
27da6bdc5d David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=14913
2005-05-01 14:39:01 +00:00
Eric Kohl
2603ff574e - Use fixed message buffer size.
- Don't translate command options.
- Only use _one_ message buffer per function.
- Fix indentation mess.

svn path=/trunk/; revision=14912
2005-05-01 13:58:30 +00:00
Martin Fuchs
ca6a77b739 restore the IDS_TERMINATE strings trashed by the commit in rev. 14769
Could please someone with a swedish environment check if the character encoding in codepage 1252 is correct?

svn path=/trunk/; revision=14911
2005-05-01 12:56:25 +00:00
Art Yerkes
196bd4d6aa Added HOST=mingw32-linux64 setting.
Fixed various small breakage for linux64 host.

svn path=/trunk/; revision=14910
2005-05-01 11:24:07 +00:00
Filip Navara
515d8e34ac tinus <o112w8r02@sneakemail.com>
Call the shell hook on showing/hiding window.

svn path=/trunk/; revision=14909
2005-05-01 11:15:11 +00:00
Hartmut Birr
ea130b3ba2 Made the loading of resource strings more unicode compatibly.
svn path=/trunk/; revision=14908
2005-05-01 10:28:58 +00:00
Hartmut Birr
7ce3991a5c Return the correct data length for FSCTL_PIPE_GET_STATE.
svn path=/trunk/; revision=14907
2005-05-01 09:53:19 +00:00
Hartmut Birr
65deeff1c1 Fixed the calculation of timeout values.
svn path=/trunk/; revision=14906
2005-05-01 09:51:06 +00:00
Hartmut Birr
d226234328 Print symbol names if DBG is defined.
svn path=/trunk/; revision=14905
2005-05-01 09:49:45 +00:00
Filip Navara
ecba11e64f Potapnik <jirka@studioprojekt.cz>
Czech translation of Task Manager statusbar messages.

svn path=/trunk/; revision=14904
2005-05-01 09:45:35 +00:00
Filip Navara
d13148cece Forgot to change the sprintf statements in revision 14902.
svn path=/trunk/; revision=14903
2005-05-01 09:29:20 +00:00
Filip Navara
3ce5a90320 Move the statusbar strings to resources.
svn path=/trunk/; revision=14902
2005-05-01 09:23:12 +00:00
Eric Kohl
ccbb2fb84b Use default locale until ReactOS fully suports all required locale functions!
svn path=/trunk/; revision=14901
2005-05-01 09:07:31 +00:00
Filip Navara
334e2d762a Fix coordinate mapping of unmodRect in DefWndDoSizeMove.
svn path=/trunk/; revision=14900
2005-05-01 08:25:33 +00:00
Filip Navara
0c23b97544 Set the message point/time for keyboard and hotkey messages.
svn path=/trunk/; revision=14899
2005-05-01 08:03:41 +00:00
Filip Navara
4913443e7e Change the default system menu icon in MDI_AugmentFrameMenu to application icon (based on patch by tinus <o112w8r02@sneakemail.com>).
svn path=/trunk/; revision=14898
2005-05-01 07:10:47 +00:00
Gé van Geldorp
dd735b0384 svn maintenance
svn path=/trunk/; revision=14897
2005-05-01 07:08:18 +00:00
Filip Navara
4fee912dfe - Merge changes to MDI_AugmentFrameMenu from Wine (fixes part of bug #606).
- Fix deleting of bitmap in MDI_RestoreFrameMenu.

svn path=/trunk/; revision=14896
2005-05-01 07:05:13 +00:00
Gé van Geldorp
d679231534 svn maintenance
svn path=/trunk/; revision=14895
2005-05-01 06:38:51 +00:00
Thomas Bluemel
6e1ab38590 fixed uninitialized variable warning
svn path=/trunk/; revision=14894
2005-04-30 22:45:58 +00:00
Eric Kohl
8f40adc5eb NtQueryInformationFile/NtSetInformationFile:
- Check for information class specific access rights.
- Clean-up some indentation mess.

svn path=/trunk/; revision=14893
2005-04-30 22:00:26 +00:00
Aleksey Bragin
be9f61a8b9 Fixed RegEnumValueA/W behaviour when output buffers are too small. This fixes 20+ tests from "advapi32_test registry" (now it has only 2 failures - but that's a reduced tests set!).
I beg my pardon for reformatting these two funcs and fixing bugs in one commit, I will do it in different commits in the future.

svn path=/trunk/; revision=14891
2005-04-30 21:11:34 +00:00
Magnus Olsen
acb9e6951d forget this file
thx <hpoussin>

svn path=/trunk/; revision=14890
2005-04-30 21:07:32 +00:00
Magnus Olsen
671be67001 Remove all hardcode string to En.rc
Hopplyfull all hardcoing string are gone now 


svn path=/trunk/; revision=14888
2005-04-30 19:00:46 +00:00
Filip Navara
a14761769e Potapnik <jirka@studioprojekt.cz>
Czech translation of Task Manager.

svn path=/trunk/; revision=14887
2005-04-30 18:55:44 +00:00
Phillip Susi
96f75639c4 Renamed another makefile in the xmlbuildsystem branch that had the wrong case
svn path=/branches/xmlbuildsystem/; revision=14886
2005-04-30 18:52:55 +00:00
Filip Navara
7765507978 Potapnik <jirka@studioprojekt.cz>
Czech translations of appwiz, control, desk, intl, ncpa, sysdm and timedate.

svn path=/trunk/; revision=14885
2005-04-30 18:49:41 +00:00
Alex Ionescu
9ff89d4fd7 Add hack for ROS's weird behavior. Will investigate but this lets you boot for now
svn path=/trunk/; revision=14884
2005-04-30 17:43:18 +00:00
Hartmut Birr
d7ea77e414 Set the readed size within the irp.
svn path=/trunk/; revision=14883
2005-04-30 17:37:11 +00:00
Alex Ionescu
f04a0c4e50 Remove debug message
svn path=/trunk/; revision=14882
2005-04-30 17:30:05 +00:00
Phillip Susi
ba9cb9156c Fixed another makefile with the wrong case in the xmlbuildsystem branch
svn path=/branches/xmlbuildsystem/; revision=14881
2005-04-30 17:22:34 +00:00
Phillip Susi
d13badb58d makefile was spelled with a lower case in the xmlbuild branch,
but with upper case M in the trunk.  This was causing problems with
svn switch on win32 due to the name conflict.  


svn path=/branches/xmlbuildsystem/; revision=14880
2005-04-30 17:15:58 +00:00
Phillip Susi
9550da5a54 Fixed up a few missing includes that were preventing builds
svn path=/branches/xmlbuildsystem/; revision=14879
2005-04-30 16:37:06 +00:00
Magnus Olsen
7b4892749e Remove all hardcode string to En.rc
Hopplyfull all hardcoing string are gone now 
in cmd


svn path=/trunk/; revision=14878
2005-04-30 16:21:06 +00:00
Magnus Olsen
f1dad288cd Remove all hardcode string to En.rc
for all file 

This changes are only for  ver.c
Remove hardcode dev list to cmd.rc

update mailing adress for bug report to ros-dev@reactos.com
sugestion by GvG 

I did leave copyright year hardcode in ver.c


svn path=/trunk/; revision=14877
2005-04-30 15:46:59 +00:00
Hervé Poussineau
5c87a8787a Register GUID_DEVINTERFACE_COMPORT for serial devices
Register GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR for serenum devices
Fix some comments

svn path=/trunk/; revision=14876
2005-04-30 15:04:10 +00:00
Hervé Poussineau
8293cc1006 Patch by Tinus_: Check for right error code returned by ZwOpenSymbolicLinkObject
svn path=/trunk/; revision=14875
2005-04-30 14:53:41 +00:00
Hervé Poussineau
71486fdc01 Don't double define GUID_DEVICE_INTERFACE_ARRIVAL and GUID_DEVICE_INTERFACE_REMOVAL in include/ntos/ntpnp.h and w32api/include/ddk/wdmguid.h
svn path=/trunk/; revision=14874
2005-04-30 14:36:05 +00:00
Gé van Geldorp
c15811bc14 Change BootDrive/BootPartition examples to BootPath
svn path=/trunk/; revision=14873
2005-04-30 14:15:38 +00:00
Hervé Poussineau
08b9a8878b I forgot to dereference FileObject in IoSetDeviceInterfaceState
svn path=/trunk/; revision=14872
2005-04-30 13:53:39 +00:00
Magnus Olsen
6510ad1387 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14871
2005-04-30 13:35:52 +00:00
Magnus Olsen
e705463f4a Remove all hardcode string to En.rc
svn path=/trunk/; revision=14870
2005-04-30 13:13:36 +00:00
Magnus Olsen
04dd142850 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14869
2005-04-30 12:36:36 +00:00
Magnus Olsen
39458d7a85 Remove all hardcode string to En.rc
svn path=/trunk/; revision=14868
2005-04-30 11:53:15 +00:00
Magnus Olsen
fcedc0bf07 Remove all hardcode string to En.rc
from misc.c, move.c pause.c, prompt.c

svn path=/trunk/; revision=14867
2005-04-30 11:16:47 +00:00
Hervé Poussineau
b8bccfb8b4 Implement IoRegisterPlugPlayNotification, IoUnregisterPlugPlayNotification
Implement IoSetDeviceInterfaceState
Fix IoRegisterDeviceInterface
Add prototype for ExFreePoolWithTag

namespc.c: change STATUS_UNSUCCESSFUL to STATUS_OBJECT_NAME_INVALID

SVN maintenance in ntoskrnl/kd/wrappers/

svn path=/trunk/; revision=14866
2005-04-30 09:39:09 +00:00
Filip Navara
847279d106 Denzil <d3nzil@gmail.com>
Czech translation of Package Manager (with minor corrections by myself).

svn path=/trunk/; revision=14865
2005-04-30 05:08:13 +00:00
Filip Navara
eddbd1a4e3 tinus <o112w8r02@sneakemail.com>
Change the backtrace command to show current EIP too.

svn path=/trunk/; revision=14864
2005-04-30 04:43:17 +00:00
Magnus Olsen
6985385b7d Remove all hardcode string to En.rc
from locale.c

svn path=/trunk/; revision=14863
2005-04-29 19:49:50 +00:00
Thomas Bluemel
827c16db5f - added stubs for NtSuspendProcess and NtResumeProcess
- the ProcessDebugPort information class is read-only on NT5.1+

svn path=/trunk/; revision=14862
2005-04-29 16:41:52 +00:00
Alex Ionescu
aff5e61f45 IRP Completion Fixes for 2nd-Stage:
- Free ALL Mdls, not just the first
- Don't copy buffered data just because the Device Object is buffered. Check if the IRP is.
- Don't handle MajorFunctions differenty, use flags which are now correctly set in order to determine course of action.
- Free memory by using flag.
- Don't remove IRP from Thread List too soon.
- Don't use FileObject fields after dereferencing it.
- Don't call IO Completion if there is already an APC routine.
- Signal FileObject/UserEvent properly depending on cases.
- Don't call UserAPC and set events like before if the IRP actually failed.

svn path=/trunk/; revision=14861
2005-04-29 14:38:05 +00:00
Aleksey Bragin
11e90a8e41 Import from WINE 25.04.05 (just because we have old version sitting in our SVN, which shows failures even on WinXP).
Now "advapi32_test registry" has 0 failures on Windows XP Pro. (and generally should have 0 failures under ROS too...)

svn path=/trunk/; revision=14860
2005-04-29 11:25:55 +00:00
Hervé Poussineau
aa182938a2 Remove debug message
svn path=/trunk/; revision=14859
2005-04-29 07:35:01 +00:00
Alex Ionescu
19a014905e And look who made a dumber mistake ;). Thanks WaxDragon
svn path=/trunk/; revision=14858
2005-04-29 02:13:42 +00:00
Magnus Olsen
b35cd289ca Swedish translations by Kris Engeman
svn path=/trunk/; revision=14857
2005-04-28 23:17:13 +00:00
Magnus Olsen
2a0755fbb0 Translate by Andreas Bjerkeholt (harteex@gmail.com)
svn path=/trunk/; revision=14856
2005-04-28 23:15:26 +00:00
Hervé Poussineau
cc5a10001c SVN maintenance:
Add svn:eol-style = native
Add svn:keywords = author date id revision

svn path=/trunk/; revision=14855
2005-04-28 23:14:54 +00:00
Magnus Olsen
32d6f2faa4 David Nordenberg: Swedish translation
svn path=/trunk/; revision=14854
2005-04-28 23:11:04 +00:00
Alex Ionescu
e606cb3718 Remove rant. H&E are very competent developers and made a typical bug that anyone could've made. I was just pissed for having lost an hour finding it ;)
svn path=/trunk/; revision=14853
2005-04-28 22:39:50 +00:00
Magnus Olsen
0dd12c923f Remove all hardcode string to En.rc
from memmory.c

svn path=/trunk/; revision=14852
2005-04-28 22:05:26 +00:00
Hervé Poussineau
1e92d6dfb5 Don't pass a NULL pointer as offset when creating a IRP_MJ_READ irp.
svn path=/trunk/; revision=14851
2005-04-28 21:56:36 +00:00
Magnus Olsen
cadb55139f Remove all hardcode string to En.rc
from free.c, goto.c, if.c label.c 

svn path=/trunk/; revision=14850
2005-04-28 21:17:07 +00:00
Aleksey Bragin
23c9abb0b3 Fix (registry.c:325, dated 20050425) test failure. Description: Added RegOpenKeyA/W check for input param (if it's NULL pointer, returning error)
svn path=/trunk/; revision=14849
2005-04-28 20:26:06 +00:00
Magnus Olsen
492c96c8f9 change _T((LPTSTR)szMsg)) to (LPTSTR)szMsg)
thanks royce3 he did see my small mistage

Remove all hardcode string to En.rc 
from for.c


svn path=/trunk/; revision=14848
2005-04-28 20:00:37 +00:00
Magnus Olsen
5571662474 Remove all hardcode string to En.rc
from echo.c and error.c

svn path=/trunk/; revision=14847
2005-04-28 17:44:34 +00:00
Aleksey Bragin
9e858b535b Added Nls\Locale registry tree, it corresponds to locales I imported from WINE a few revisions ago.
svn path=/trunk/; revision=14846
2005-04-28 14:48:28 +00:00
Magnus Olsen
b6ef59c124 Fix all these warings
libnurbs/nurbtess/sampleComp.cc: In function `void sampleCompLeft(Real*, Real*, vertexArray*, Int, Int, vertexArray*, Int, Int, gridBoundaryChain*, Int, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleComp.cc:162: warning: 'gridMidIndex1' might be used uninitialized in this function
libnurbs/nurbtess/sampleComp.cc:162: warning: 'gridMidIndex2' might be used uninitialized in this function

libnurbs/nurbtess/sampleCompRight.cc: In function `void sampleCompRight(Real*, Real*, vertexArray*, Int, Int, vertexArray*, Int, Int, gridBoundaryChain*, Int, Int, Int, Int, Int, Int, primStream*)':
libnurbs/nurbtess/sampleCompRight.cc:75: warning: 'gridMidIndex1' might be used uninitialized in this function
libnurbs/nurbtess/sampleCompRight.cc:75: warning: 'gridMidIndex2' might be used uninitialized in this function

svn path=/trunk/; revision=14845
2005-04-28 13:55:35 +00:00
Aleksey Bragin
4e01611563 Imported locales information from WINE. Sorry it isn't done the "right way" (store all info in locales.nls as WinXP does), but for now I think this way will do.
Also some locales aren't imported because their info contains unicode characters, and I didn't want to switch kernel32 from windres to wrc.

svn path=/trunk/; revision=14844
2005-04-28 13:54:19 +00:00
Aleksey Bragin
af4afa4f65 Imported LANG_ and SUBLANG_ defines from WINE
svn path=/trunk/; revision=14843
2005-04-28 13:50:32 +00:00
Magnus Olsen
4a2a65e916 Fix all these waring by initaielize them where they are declare
libutil/quad.c: In function `gluPartialDisk':
libutil/quad.c:451: warning: 'texLow' might be used uninitialized in this function
libutil/quad.c:451: warning: 'texHigh' might be used uninitialized in this function
libutil/quad.c: In function `gluSphere':
libutil/quad.c:720: warning: 'sintemp2' might be used uninitialized in this function
libutil/quad.c:720: warning: 'sintemp3' might be used uninitialized in this function
libutil/quad.c:720: warning: 'sintemp4' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp2' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp3' might be used uninitialized in this function
libutil/quad.c:721: warning: 'costemp4' might be used uninitialized in this function

svn path=/trunk/; revision=14842
2005-04-28 13:38:30 +00:00
Magnus Olsen
dada212f2a fix this waring
libutil/mipmap.c: In function `gluBuild3DMipmaps':
libutil/mipmap.c:7382: warning: 'proxyTarget' might be used uninitialized in this function
by initialized the value when it declare


svn path=/trunk/; revision=14841
2005-04-28 13:19:23 +00:00
Magnus Olsen
fadd959c12 fix waring with insiate iter
libutil/mipmap.c: In function `gluScaleImage':
libutil/mipmap.c:5105: warning: 'iter' might be used uninitialized in this function

remve outindex it is not being use at all 
libutil/mipmap.c: In function `scaleInternalPackedPixel':
libutil/mipmap.c:5990: warning: 'outindex' might be used uninitialized in this function


svn path=/trunk/; revision=14840
2005-04-28 13:01:57 +00:00
Steven Edwards
6184590544 we have two copies of a better calc floating around
svn path=/trunk/; revision=14839
2005-04-28 03:37:01 +00:00
Alex Ionescu
f43691583f My mistake
svn path=/trunk/; revision=14838
2005-04-28 00:57:35 +00:00
Alex Ionescu
defaccea55 IO Manager Cleanup continues:
- Removed many extra files that expanded the I/O Manager too much. We usually stick with the standard of
      one object/class per file, like io/device.c or io/controller.c, so it was very confusing to have some
      objects split up in 5 or 6 different files, some containing only one api. Additionally, even a third
      system was used, were objects were bunched up together by class. This mess was so bad that NtCreateFile,
      IopCreateFile, IoCreateFile, IopDeleteFile, NtDeleteFile and NtWriteFile were in 5 different files (as an
      example).
    - Cleaned up some IRP code and fixed a couple of bugs, mainly:
        - Write I/O Type in IRP
        - Write proper IRP Flags where they shoudl be used (Will help for completing requests when i clean up that code)
        - Do *NOT* zero out buffers or data that shouldn't be zeroed. Scsiport actually dependen on this incorrect
          behaviour. Code should never depend on a buffer being zeroed!
        - Remove a lot of duplicated code and helper/alternate functions that weren't really useful.
        - Free MDL and IRP on some failures where we didn't
     - Alphabetized some of the large io files for easier lookup of functions. This and the deletions have resulted
       in a completely bloated diff file. I will provide a cleaned up diff on request by manually downloading the
       old revision and copy/pasting the new code directly above it. The functions which we touched are: 
           - IoAllocateIrp
           - IoBuild[A]SyncronousFsdRequest
           - IoBuildDeviceIoControlRequest
           - IoInitializeIrp
           - IoPageRead, IoSynchronousPageWrite

svn path=/trunk/; revision=14837
2005-04-28 00:54:59 +00:00
Hartmut Birr
612461644d Fixed the check for a created first thread.
svn path=/trunk/; revision=14836
2005-04-27 21:57:24 +00:00
Hartmut Birr
a6d944ecfc Close only the Nls directory handle if the directory was created.
svn path=/trunk/; revision=14835
2005-04-27 21:55:02 +00:00
Hartmut Birr
5e1d995563 Fixed _SEH2_END.
svn path=/trunk/; revision=14834
2005-04-27 21:51:55 +00:00
Hartmut Birr
2c12af40a1 Guarded some calls to handle functions with KeEnterCriticalRegion/KeLeaveCriticalRegion in PsDeleteCidHandle.
svn path=/trunk/; revision=14833
2005-04-27 21:47:34 +00:00
Hartmut Birr
d38a2745a9 Made the physical memory section permanent.
svn path=/trunk/; revision=14832
2005-04-27 21:44:27 +00:00
Hartmut Birr
68f8b9f89b Reinitialized the palette entries after setting the video mode in DrvAssertMode.
svn path=/trunk/; revision=14831
2005-04-27 21:10:44 +00:00
Aleksey Bragin
06ff525737 Added language 0419 (russian) into NLS\Language
svn path=/trunk/; revision=14830
2005-04-27 19:46:41 +00:00
Art Yerkes
2e9d113d86 turned off DEBUG output (thanks to gge for pointing it out).
svn path=/trunk/; revision=14829
2005-04-27 19:04:20 +00:00
Magnus Olsen
f00d82e494 remove ddalphablt worng functions
it should have been NtGdiDdAddAlphaBlt

svn path=/trunk/; revision=14828
2005-04-26 22:28:24 +00:00
Magnus Olsen
3bd5362791 implement NtGdiDdBlt and NtGdiDdAlphaBlt
NtGdiDdAlphaBlt are not supportet by microsoft 
so we report unsupport directx function 


svn path=/trunk/; revision=14827
2005-04-26 22:02:32 +00:00
Aleksey Bragin
dd182c1076 A few locales entries added, though we have currently only 4 locales imported from wine (france, eng, enu, german)
svn path=/trunk/; revision=14826
2005-04-26 21:26:06 +00:00
Aleksey Bragin
037d9d7e8b More DPRINTs added for better tracing of locale-related calls, but NDEBUG is defined.
svn path=/trunk/; revision=14825
2005-04-26 21:23:43 +00:00
Aleksey Bragin
23e1c587a2 Minor changes into a way locales are get and listed
svn path=/trunk/; revision=14824
2005-04-26 21:21:32 +00:00
Gé van Geldorp
c5106fcc0a Sync to Wine-20050419:
Mike McCormack <mike@codeweavers.com>
- Load and display bitmaps in the dialogs.
- Make sure there's only one place we allocate dialog controls.
- Rename dupstrW to strdupW, and remove duplicate definition.
- Move definition of string manipulation functions to msipriv.h.
- Split out database functions, remove dependence on wine/unicode.h.
- Fix loading of the summary information.
- test cases for summary information
- fix memory leaks
- Implement summary information loading and saving.
- Declare MsiExportDatabase* in the spec file, and fix a typo.
- Replace instances of HeapAlloc/MultiByteToWideChar with the internally
  defined strdupAtoW.
- Use strdup, implement MsiDatabaseImportA.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Peter Berg Larsen <pebl@math.ku.dk>
- Janitorial: Get rid of strncpy/strncpyW.
- Remove 2 identicals calls to strlenW.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Aric Stewart <aric@codeweavers.com>
- Implement Publish Components in order for MsiGetQualifiedComponent
  apis to work. Also implement MsiGetQualifiedComponent, or at least some
  of the functionality as it is supposed to install stuff if it is
  absent, which it does not do yet.
- Make sure the GUID of the typelib we are registering matches the guid
  requested from MSI. If not search the given typelib file to find the
  typelib requested to register.
- If running in UI mode, then display the UI mode dialogs at the end of
  the installs.
Steven Edwards <steven_ed4153@yahoo.com>
- Avoid using ver.h in favor of winver.h.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.
Marcus Meissner <meissner@suse.de>
- Fixed MsiDatabaseImportA, MsiDatabaseImportW, and
  MsiCreateAndVerifyInstallerDirectory stub parameter counts.
Juan Lang <juan_lang@yahoo.com>
- Log missing environment vars for easier debugging.

svn path=/trunk/; revision=14823
2005-04-26 20:39:02 +00:00
Gé van Geldorp
f668ceb14f Sync to Wine-20050419:
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Spanish translations updated.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.

svn path=/trunk/; revision=14822
2005-04-26 20:05:25 +00:00
Gé van Geldorp
6119adfe22 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
- SBSP_ABSOLUTE is 0 so we cannot do (wFlags & SBSP_ABSOLUTE).
- Add COMDLG32_DumpSBSPFlags().
Eric Pouech <pouech-eric@wanadoo.fr>
- Added proper definition for PRINTDLGEX[AW] structures.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
Juan Lang <juan_lang@yahoo.com>
- Change a fixme to a warn, and use W version of call.
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
- Janitorial: Get rid of strncpy/strncpyW.

svn path=/trunk/; revision=14821
2005-04-26 19:18:13 +00:00
Hartmut Birr
c292d7ed88 - Preinitialise the com port infos with default values.
- Set the baud rate also in SerialPortInfo.

svn path=/trunk/; revision=14820
2005-04-26 19:06:19 +00:00
Gé van Geldorp
b55b368e31 Re-apply 14698 - 14762 and fix resulting problem
svn path=/trunk/; revision=14819
2005-04-26 18:18:36 +00:00
Magnus Olsen
9b91fad21c Implement NtGdiDdCanCreateSurface
not tested 

svn path=/trunk/; revision=14818
2005-04-26 17:19:06 +00:00
Hartmut Birr
c087372392 - Used SysProcessorTimeInfo to calculate the idle time.
- Fixed the allocation of SysProcessorTimeInfo.  
- Used the process creation time as second unique id.


svn path=/trunk/; revision=14817
2005-04-26 16:28:38 +00:00
Alex Ionescu
946594bdc0 Implement IoRaiseHardError, combine error stuff, fix hideously wrong implementatin of Controller Objects.
svn path=/trunk/; revision=14816
2005-04-26 14:51:18 +00:00
Alex Ionescu
c6c78c3133 Fixedd CTM for sedwards. happy birthday to me
svn path=/trunk/; revision=14815
2005-04-26 13:17:44 +00:00
Alex Ionescu
d54cf3af82 Enable flags only for 3.4.3, should fix the build for people with versions below. Disabled on 4.0 since they are automatic
svn path=/trunk/; revision=14814
2005-04-26 12:35:32 +00:00
Thomas Bluemel
72612ded64 don't request write access in NtReadVirtualMemory, this should fix the listdlls.exe issues
svn path=/trunk/; revision=14813
2005-04-26 09:40:30 +00:00
Art Yerkes
869e1792b8 Fixes by WaxDragon:
- Implement get* integer reading.
- Properly implement ipv4addrs (validates a set of IPv4 addresses)
- Limit returned DNS servers to 1 until we fix iphlpapi.

svn path=/trunk/; revision=14812
2005-04-26 07:11:02 +00:00
Alex Ionescu
940803cd14 Do not strip if KDBG is used
svn path=/trunk/; revision=14811
2005-04-26 05:13:49 +00:00
Alex Ionescu
ae45230c20 Change optimization settings for retail builds. Change to -Os for smaller executables which are not slower, and enable more advanced optimizations. funitatatime is already included by default in GCC 4.0. Strip debug info from retail builds, since we don't parse the symbols anyways. I hope these options don't break anything, they don't for me; Debugging is unaffected.
svn path=/trunk/; revision=14810
2005-04-26 05:10:58 +00:00
Alex Ionescu
da26306086 Fix compilation with optimizations
svn path=/trunk/; revision=14809
2005-04-26 04:58:32 +00:00
Hartmut Birr
02202bd8b1 Fixed the initialising of bochs debug.
svn path=/trunk/; revision=14808
2005-04-25 20:35:37 +00:00
Alex Ionescu
b92778d49a Remove excess header
svn path=/trunk/; revision=14807
2005-04-25 19:43:50 +00:00
Alex Ionescu
d06c1ef5e9 Remove dbg.h and move it to kd.h, it was getting confusing to have so many debug files. Also fixes hal to compile
svn path=/trunk/; revision=14806
2005-04-25 19:42:48 +00:00
Alex Ionescu
a3bf890534 Merge in wrappers with DBG setting as requested
svn path=/trunk/; revision=14805
2005-04-25 18:31:20 +00:00
Alex Ionescu
a893ce48dd Fix compilation problem..
svn path=/trunk/; revision=14804
2005-04-25 18:29:16 +00:00
Hartmut Birr
7519345381 Replaced a dirty hack by another.
svn path=/trunk/; revision=14803
2005-04-25 17:57:57 +00:00
Alex Ionescu
6f666f0ad4 Simplify and correct KiDebugService
svn path=/trunk/; revision=14802
2005-04-25 16:17:35 +00:00
Alex Ionescu
3ebd40dd0f Add GDB = 1 to makefile to compile-in the GDB Wrapper. These options will be better manged with rbuild
svn path=/trunk/; revision=14801
2005-04-25 15:20:15 +00:00
Alex Ionescu
6458f12f54 Added KiDebugService. Will optimize soon to use common Exit code
svn path=/trunk/; revision=14800
2005-04-25 15:02:11 +00:00
Alex Ionescu
e160c0fb26 KD System Rewrite:
- Totally dynamic based on the principle of Native Providers built-in the Kernel (like Screen, 
      FileLog and Serial) and a pluggable Wrapper which is optionally compiled (Bochs, GDB)
    - Nothing changed in KDBG, except for that its settings (KDSERIAL/KDNOECHO) are now stored in
      KdbDebugState instead.
    - Wrappers are currently built uncondtionally. With rbuild, I'll make them easily removable.
    - Debug Log code simplified greatly, sped up and now supports printing even the first boot messages,
      which wasn't supported before.
    - Removed most of KDBG compile-time settings, ones which are needed are in include/dbg as macros now.
    - Left in some kdbg init code and break code, but it could be made to be used as a 'wrapper' for those
      functions. I will do it later.
    - Made a hack for KdpEnterDebuggerException..it seems to be called differently and at different times
      for GDB vs KDBG and I couldn't unite them.
    - KdpServiceDispatcher now does both the documented and ros-internal debug functions and will eventually
      be called through INT2D from keyboard.sys instead of as an API.

All in all, this patch makes KD  separated from KDBG and creates a pluggable architecture for creating future wrappers that don't require changing tons of code in the future. It improves the debug
log by printing even the earliest debug messages to it and it removes many of the manual ifdef(KDBG) but making them automatic though a single macro file. It makes extra debugging functionality optional and it
allows removal of a private API from our exports.

svn path=/trunk/; revision=14799
2005-04-25 14:44:48 +00:00
Gé van Geldorp
753a3c0e99 Sync to Wine-20050419:
Juan Lang <juan_lang@yahoo.com>
- Always initialize header file name, to prevent "#include (null)"
  statements in generated files.
- Put space between include directive and include file.
- Add proxy/stub options to widl man page.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Add support for single in idl files.
- Keep types sorted in alphabetical order.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=14798
2005-04-25 10:58:34 +00:00
Gé van Geldorp
2b5f3c76a1 Sync to Wine-20050419:
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Michael Lin <mlin@corvu.com.au>
- Change menu item options to use optional comma.

svn path=/trunk/; revision=14797
2005-04-25 09:12:35 +00:00
Gé van Geldorp
c782c3c14d Sync to Wine-20040419:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- -Wunsigned fixes.
Alexandre Julliard <julliard@winehq.org>
- Use the correct file name in the "generated automatically" comments.
- Don't crash on xrealloc(0) (found by Jon Griffiths).
Marcus Meissner <meissner@suse.de>
- Use correct movw instead of movl when handling segment registers.

svn path=/trunk/; revision=14796
2005-04-25 08:26:29 +00:00
Gé van Geldorp
1900553907 SVN maintenance
svn path=/trunk/; revision=14794
2005-04-25 07:13:04 +00:00
Thomas Bluemel
a075aaef57 add missing typecast
svn path=/trunk/; revision=14793
2005-04-24 20:12:14 +00:00
Eric Kohl
4fd3eee227 Implement the time format page for the regional settings control panel.
svn path=/trunk/; revision=14792
2005-04-24 14:49:56 +00:00
Maarten Bosma
63b33dd9b3 PackageManager: HTML Log
svn path=/trunk/; revision=14791
2005-04-24 10:37:17 +00:00
Alex Ionescu
88d6fe5cb4 Don't use hack for trap frames anymore, read TempEsp and TempSegSs for kernel-mode traps during debugging.
svn path=/trunk/; revision=14790
2005-04-23 20:02:39 +00:00
Alex Ionescu
5673eb73b9 Use fake frame in KDBG mode, not DBG
svn path=/trunk/; revision=14789
2005-04-23 19:23:00 +00:00
Casper Hornstrup
e2239c25dc ROS_BUILDNOSTRIP environment variable to control building of non-symbol-stripped executable output files
svn path=/branches/xmlbuildsystem/; revision=14788
2005-04-23 18:41:02 +00:00
Alex Ionescu
8057554d01 forgot to delete this one too
svn path=/trunk/; revision=14787
2005-04-23 18:17:11 +00:00
Casper Hornstrup
f76d62cff1 Use correct case
svn path=/branches/xmlbuildsystem/; revision=14786
2005-04-23 18:16:59 +00:00
Alex Ionescu
a1151864cc Share compiler-generated asm exports between ntdll and ntoskrnl (stuff like aullshr, alldiv, etc
svn path=/trunk/; revision=14785
2005-04-23 18:15:39 +00:00
Alex Ionescu
1d0c612395 Remove MDA support
svn path=/trunk/; revision=14784
2005-04-23 18:00:59 +00:00
Alex Ionescu
9a7799d8b8 Delete cruft
svn path=/trunk/; revision=14783
2005-04-23 17:56:10 +00:00
Casper Hornstrup
abe602feed Don't detect host compiler on Linux
svn path=/branches/xmlbuildsystem/; revision=14782
2005-04-23 17:24:13 +00:00
Casper Hornstrup
dea6a7d878 Allow warnings for now (for real this time)
svn path=/branches/xmlbuildsystem/; revision=14781
2005-04-23 17:11:51 +00:00
Casper Hornstrup
a29d2466ef Allow warnings for now
svn path=/branches/xmlbuildsystem/; revision=14780
2005-04-23 17:09:59 +00:00
Alex Ionescu
7f7e3e1cf6 Add more detailed comment about ThreadListEntry so people don't get confused liek I did
svn path=/trunk/; revision=14779
2005-04-23 16:23:57 +00:00
Alex Ionescu
6c66ab6c64 Move removing process from active list to PspDeleteProcess instead of PspExitProcess. This way we don't have to do it manually after ObInsertObject failure in PspCreateProces. Also, set the Process Query Time at the end of Process Creation, since the process doesn't really exist before then. Thanks to Hartmut for finding the bugs.
svn path=/trunk/; revision=14778
2005-04-23 16:17:27 +00:00
Alex Ionescu
e60561fb17 Move removing process from active list to PspDeleteProcess instead of PspExitProcess. This way we don't have to do it manually after ObInsertObject failure in PspCreateProces. Also, set the Process Query Time at the end of Process Creation, since the process doesn't really exist before then. Thanks to Hartmut for finding the bus.
svn path=/trunk/; revision=14777
2005-04-23 16:16:59 +00:00
Hartmut Birr
efa3efe5bb Fixed restoring of registers.
svn path=/trunk/; revision=14776
2005-04-23 16:09:06 +00:00
Magnus Olsen
b331ee2104 Swedish translation
Andreas Bjerkeholt (harteex@gmail.com) 

svn path=/trunk/; revision=14775
2005-04-23 14:16:48 +00:00
Magnus Olsen
18ca7ef010 Swedish translation by Kris Engeman
irc : nick "Wacko"

svn path=/trunk/; revision=14774
2005-04-23 14:14:16 +00:00
Magnus Olsen
e3f6aacd83 forget use lates winfile.rc
svn path=/trunk/; revision=14773
2005-04-23 14:09:44 +00:00
Magnus Olsen
7a1c9f6f2d Fix a bug in sv.rc so it can compile
and it is working now in ros


svn path=/trunk/; revision=14772
2005-04-23 14:01:43 +00:00
Magnus Olsen
a893ac134a reverit swedish translation
svn path=/trunk/; revision=14771
2005-04-23 13:42:15 +00:00
Magnus Olsen
aeb0176d0e David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
svn path=/trunk/; revision=14770
2005-04-23 13:39:53 +00:00
Magnus Olsen
b37e882082 2005-04-07 For swedish translations in explorer
* David Nordenberg: Fixed & on two idetical letters and switched to codepage 1252

svn path=/trunk/; revision=14769
2005-04-23 13:36:06 +00:00
Hartmut Birr
8235965b9e Fixed the smp build.
svn path=/trunk/; revision=14768
2005-04-23 12:44:42 +00:00
Hartmut Birr
d00288c263 - Initialized the process create time.
- Fixed some minor bugs.

svn path=/trunk/; revision=14767
2005-04-23 10:18:43 +00:00
Hartmut Birr
4db3d406aa Removed a wrong additional reference in IoCreateDevice.
svn path=/trunk/; revision=14766
2005-04-23 10:16:18 +00:00
Gé van Geldorp
ed7c0b9e7c Revert freeldr back to revision 14697
svn path=/trunk/; revision=14765
2005-04-23 10:15:49 +00:00
Hartmut Birr
493afd1118 Do not remove an entry from the parent for twice.
svn path=/trunk/; revision=14764
2005-04-23 10:14:29 +00:00
Hartmut Birr
ff121124b1 Remove the thread from the list when terminating.
svn path=/trunk/; revision=14763
2005-04-23 10:11:37 +00:00
Alex Ionescu
3ff5700950 And these should've been added...
svn path=/trunk/; revision=14762
2005-04-23 06:45:56 +00:00
Alex Ionescu
9732c7adea Bug in previous commit...these should've been deleted
svn path=/trunk/; revision=14761
2005-04-23 06:43:39 +00:00
Alex Ionescu
665e646216 Small Debugging Services re-arrangement. /dbgk created for User-Mode debugging and Native Debug Objects (implemented an experimental NtCreateDebugObject. Untested and doesn't work since the DbgkObjectType isn't created yet. Added dbgk.h with the basic structures for now. Removed /dbg and split up code in ex/debug.c for executive and rtl/debug.c for RunTime Library Debug calls. Kdbg now dedicated in /kdbg.
svn path=/trunk/; revision=14760
2005-04-23 06:41:25 +00:00
Art Yerkes
45ae6da0c6 Fixes a problem reported by WaxDragon when acquiring the nameserver address
from DHCP.  This needs to be rechecked but seems harmless.

svn path=/trunk/; revision=14759
2005-04-23 05:43:35 +00:00
Alex Ionescu
98f1613a52 Implement KiServiceExit2 which restores debug registers and exits with IRET, used during user-mode return without a syscall
svn path=/trunk/; revision=14758
2005-04-23 05:00:10 +00:00
Alex Ionescu
e43b4d5c1a Terminate System Thread after execution...forgot to add this for some reason.Thanks to WaxDragon for reporting it
svn path=/trunk/; revision=14756
2005-04-23 04:19:35 +00:00
Alex Ionescu
1928c25d73 Add KDBG debugging hack from old code and convert it to fit new one. Not enabled yet because it underflows the stack after a while (researching why). Also complete KeContextToTrapFrame and have Ke386InitThreadWithContext call it to handle creating the Initial Trap Frame
svn path=/trunk/; revision=14754
2005-04-23 04:12:26 +00:00
Art Yerkes
18ac7f07b6 Don't try to discover if we didn't find any interfaces we like. When we get
PnP, we'll need to do discover when the first interface appears.

svn path=/trunk/; revision=14751
2005-04-23 00:40:44 +00:00
Eric Kohl
e8c40d4eee advapi32.dll: Implement QueryServiceStatus.
services.exe: Implement OpenSCManagerA, OpenServiceA, OpenServiceW and QueryServiceStatus.

svn path=/trunk/; revision=14750
2005-04-23 00:01:37 +00:00
Hervé Poussineau
2160c0c245 Add Green driver, that emulates a VT100 compatible server.
Input won't work as long as we don't have a kdbclass driver.

svn path=/trunk/; revision=14749
2005-04-22 19:57:03 +00:00
Filip Navara
5b43b8d8b1 Fix one more typo...Spotted by gasmann.
svn path=/trunk/; revision=14748
2005-04-22 15:26:14 +00:00
Casper Hornstrup
b7d6aeae38 * Use freeldr.sys for livecd
* Install registry hives in the right place on the livecd


svn path=/branches/xmlbuildsystem/; revision=14747
2005-04-22 15:06:58 +00:00
Casper Hornstrup
03858e9151 Correct install name
svn path=/branches/xmlbuildsystem/; revision=14746
2005-04-22 15:03:28 +00:00
Filip Navara
8af30ee387 Fix a typo. Spotted by Potapnik.
svn path=/trunk/; revision=14745
2005-04-22 14:58:22 +00:00
Filip Navara
bf338a8003 Denzil <d3nzil@gmail.com>
Czech translation of Calc, SndVol32, WineFile and Autorun applications.

svn path=/trunk/; revision=14744
2005-04-22 13:54:08 +00:00
Alex Ionescu
3b57e224a1 Fix win32k building
svn path=/trunk/; revision=14743
2005-04-22 13:17:35 +00:00
Alex Ionescu
4b4d215e36 Thread Creation and Context Switching re-write, plus Idle/First Thread minimization attempt. Full changelog on ML, too large to post here
svn path=/trunk/; revision=14742
2005-04-22 12:52:25 +00:00
Art Yerkes
725d5b0050 Removed a useless temporary from router setting.
Use option 6, DHO_DOMAIN_NAME_SERVERS to get name servers from dhcp server.
Fix wrong variable in nameserver setting.
Router and Nameserver now correctly acquired from DHCP.

svn path=/trunk/; revision=14741
2005-04-22 12:46:27 +00:00
Alex Ionescu
264ff7e6d2 Switch to NT5
svn path=/trunk/; revision=14740
2005-04-22 12:43:16 +00:00
Alex Ionescu
8d6d8aaf57 Put back GUI Shell
svn path=/trunk/; revision=14739
2005-04-22 12:42:35 +00:00
Casper Hornstrup
4e8835798a * Remove empty line
* Rearrange some dependencies


svn path=/branches/xmlbuildsystem/; revision=14738
2005-04-22 10:12:37 +00:00
Art Yerkes
d7b7ff3672 tcpmisc.h:
- Correct wrongly sized struct IPAddrEntry.
dhcp: dhclient.c and dispatch.c
- remove lots of #if 0
- remove instances of script_go and associated stuff
- write stub check_arp pending ARP api functions being implemented
- introduced S_STATIC state for adapters
dhcp: api.c:
- Do add_protocol and send_discover when telling an adapter to lease.
- Do remove_protocol when we make an adapter static.
dhcp: adapter.c:
- Add infrastructure for finding the adapter key in the registry
- Check for IP address settings and apply as static if set, otherwise dynamic
tcpip: *info and lan:
- Set info types to DEBUG_INFO and DEBUG_DATALINK everywhere
tcpip: lan:
- Remove kernel IP configuration.
bootdata:
- Added dhcp service and make it start.
- Removed static IP address settings from the default configuration
- Removed old JS bootcode


svn path=/trunk/; revision=14737
2005-04-22 09:45:17 +00:00
Casper Hornstrup
2f6df3a9cf Clean object files for static libraries
svn path=/branches/xmlbuildsystem/; revision=14736
2005-04-22 09:19:18 +00:00
Gé van Geldorp
9ac6146c7b Sync to Wine-20050419:
Robert Shearman <rob@codeweavers.com>
- Fix TB_GETBUTTONSIZE to return the correct width/height for no
  buttons.
- Use ES_AUTOHSCROLL for edit box.
- Fix size passed to SPI_NONCLIENTMETRICS.
- iSelectedImage is allowed to be 0.
- Use SetWindowPos to move the buddy window into position instead of
  destroying it and recreating it at the new position.
- Clear the background in WM_VSCROLL to avoid problems with
  antialiased text drawing on top of itself multiple times.
Dimitrie O. Paun <dpaun@rogers.com>
- Use {Alloc,ReAlloc,Free}() instead of Heap{Alloc,ReAlloc,Free}().
- Fix a memory leak in toolbar. Avoid casts.
- Complete unicodification of the toolbar common control.
- Move a header comment for consistency with the other controls.
- Very small alignment fixes.
- Add support for LVN_ODSTATECHANGED.
- Minor typo fixes.
- Handle wParam in WM_PAINT properly: if non-null, it is the hdc we are
  supposed to use to draw into.
- Complete unicodification of the propsheet common control.
- Complete unicodification of the flatsb common control.
- Pull the WM_TIMER handling into its own function.
- ANIMATE_DrawFrame shouldn't worry about locking, the lock should be
  held by the caller.
- Delete the critical section when freeing up the infoPtr.
- Audit the control against Comctl32.dll version 6.0.
- Proper handling of GWL_STYLE.
- Implement WM_CLOSE. Fix WM_SIZE implementation.
- Small cleanups.
- Cleanup and simplify the painting code.
- Fix a potential bug along the way.
- Unicodification and typesafe interfaces.
- Complete unicodification.
- Complete unicodification of the rebar common control.
- Add Robert Shearman's explanation about WM_NCPAINT.
- Move testing comments in a more appropriate place.
- Proper handling for GWL_STYLE.
- Store and use hwndSelf in the PAGER_INFO.
- Pass the infoPtr around instead of hwnd.
- Use proper types in the function signatures.
- Fix a few return statements.
- MonthCal unicodification.
- Tab unicodification.
- Keep track of WS_DISABLED explicitely, as it doesn't generate a
  WM_STYLECHANGED message.
- Minor cleanups.
- Complete unicodification of the tooltips common control.
- Complete the unicodification of comctl32undoc.
- Complete unicodification of the header common control.
- Complete unicodification of the treeview common control.
- Audit the code against Comctl32.dll version 6.0.
- Handle notification and styles as in the other controls.
- Maintain the const for strings throughout parsing.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Jakob Eriksson <jakov@vmlinux.org>
- Get rid of HeapAlloc casts.
- Eliminate HeapAlloc casts.
Alexandre Julliard <julliard@winehq.org>
- Revert changes to the painting code, the WM_CTLCOLORSTATIC message
  should not be sent from the animation thread.
Duane Clark <dclark@akamail.com>
- Misc rectangle fixes.
- The date should be initialized from local time.
- Monday is day number '1'.
- Set day of week when a day is selected in the calender.
- Use fixed width fields in datetime.
- DTS_TIMEFORMAT is a two bit field, so test accordingly.
- Reposition and resize the updown control when the datetime control is
  resized.
- Respond to updown inputs.
- The datetime should be initialized with local time.
- Add support for direct keyboard input to numeric fields.
- Hour '0' corresponds to 12AM.
Vitaliy Margolen <wine-devel@kievinfo.com>
- Draw only visible tabs.
- Don't redraw if no information has changed.
- Fixed endless redraw loop if app using callback for images and/or
  text.
- Keep color changes made by app for the current draw cycle.
- Send notifies after invalidating changed areas.
- Don't use custom draw returned colors for control.
C. Scott Ananian <cscott@cscott.net>
- UPDOWN_GetBuddyInt should not fail when the control is empty.
Peter Berg Larsen <pebl@math.ku.dk>
- Replace strncpy with memcpy or lstrcpyn.
Huw Davies <huw@codeweavers.com>
- The depth of the colour bitmap needs to match that of the screen.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Make the treeview correctly search when the top index is selected.
Evan Deaubl <wine@warpedview.com>
- TREEVIEW_DoSelectItem should not do any of the TVGN_FIRSTVISIBLE work
  if the newSelect parameter is NULL.
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)

svn path=/trunk/; revision=14735
2005-04-21 21:01:05 +00:00
Maarten Bosma
7909dfa511 PackageManager: Uploaded forgotten File
svn path=/trunk/; revision=14734
2005-04-21 16:28:44 +00:00
Casper Hornstrup
ef5b027655 Generate temporary files at the root of the directory
svn path=/branches/xmlbuildsystem/; revision=14733
2005-04-21 16:18:29 +00:00
Aleksey Bragin
702e2a0488 EnumSystemLocalesW() implementation. Certainly not full (doesn't support INSTALLED/SUPPORTED/etc flags) - but at least it does what is needed - enumerate locales.
Other stuff is coming soon so intl.cpl could work.

svn path=/trunk/; revision=14732
2005-04-21 14:49:17 +00:00
Casper Hornstrup
e3bf054824 Use ROS_INTERMEDIATE and ROS_OUTPUT environment variables
svn path=/branches/xmlbuildsystem/; revision=14731
2005-04-21 13:05:54 +00:00
Aleksey Bragin
d6eec68dd8 Added xbox video driver information (by GvG), I hope it doesn't interfere anyone, and there will be no need to patch registry everytime to boot under xbox.
svn path=/trunk/; revision=14730
2005-04-21 12:58:20 +00:00
Casper Hornstrup
4f605b66c3 Clean-as-you-go mode to remove generated files as soon as possible to minimize disk space requirements
svn path=/branches/xmlbuildsystem/; revision=14729
2005-04-21 12:54:15 +00:00
Casper Hornstrup
376f9fd35c Document ROS_PREFIX environment variable
svn path=/branches/xmlbuildsystem/; revision=14728
2005-04-21 09:52:11 +00:00
Casper Hornstrup
7f1e0b51b2 Autodetect compiler
svn path=/branches/xmlbuildsystem/; revision=14727
2005-04-21 09:38:45 +00:00
Gé van Geldorp
aba5075ad4 Merge 14698:14725 from trunk
svn path=/branches/xen/; revision=14726
2005-04-21 09:33:23 +00:00
Gé van Geldorp
5568b1261a - Protect multiboot info from being overwritten
- Pass command line to MachInit() funcs

svn path=/trunk/; revision=14725
2005-04-21 09:29:02 +00:00
Gé van Geldorp
ee219b0e23 Sync to Wine-20050419:
Peter Berg Larsen <pebl@math.ku.dk>
- Eliminate a strncpy and remove unused variable.

svn path=/trunk/; revision=14724
2005-04-20 22:05:23 +00:00
Eric Kohl
37d076fdc0 Move RtlAreAllAccessesGranted, RtlAreAnyAccessesGranted and RtlMapGenericMask to the shared runtime library.
svn path=/trunk/; revision=14723
2005-04-20 20:58:16 +00:00
Casper Hornstrup
5c61988e18 Don't put \ at end of path
svn path=/branches/xmlbuildsystem/; revision=14722
2005-04-20 20:48:55 +00:00
Gé van Geldorp
4dd2fef625 Roman Hoegg <roman.hoegg@unisg.ch>
Add configuration stuff for Swiss German keyboard

svn path=/trunk/; revision=14721
2005-04-20 19:52:45 +00:00
Hervé Poussineau
a93d293fa7 Implement IoRegisterDeviceInterface
svn path=/trunk/; revision=14720
2005-04-20 19:38:39 +00:00
Maarten Bosma
101713f39a PackageManager: Corrected default setting
svn path=/trunk/; revision=14719
2005-04-20 19:33:48 +00:00
Maarten Bosma
31d0c28c6d PackageManager: Options.xml
svn path=/trunk/; revision=14718
2005-04-20 19:01:30 +00:00
Royce Mitchell III
31390cae28 latest version of ArchBlackmann
svn path=/trunk/; revision=14717
2005-04-20 18:16:32 +00:00
Casper Hornstrup
40242e030f Don't link kernel-mode modules to kernel32.dll
svn path=/branches/xmlbuildsystem/; revision=14716
2005-04-20 17:57:26 +00:00
Hervé Poussineau
fde9a780c8 Don't hardcode "Reactos.xml" name
svn path=/branches/xmlbuildsystem/; revision=14715
2005-04-20 16:01:19 +00:00
Casper Hornstrup
fed5678a4c Fix build error
svn path=/branches/xmlbuildsystem/; revision=14714
2005-04-20 15:19:09 +00:00
Maarten Bosma
ffb29d1f85 PackageManager: Changed download Server back to http://svn.reactos.com
svn path=/trunk/; revision=14712
2005-04-20 12:52:36 +00:00
Alex Ionescu
0bc300d64d Remove bogus error message. It is normal for Mutex creation to fail since the Object will alredy exist after the first time it's created
svn path=/trunk/; revision=14711
2005-04-20 12:52:13 +00:00
Alex Ionescu
27a6253e6c Don't relocate shell32 and gdi32. Changed their base addresses so they fit better
svn path=/trunk/; revision=14710
2005-04-20 12:46:39 +00:00
Gé van Geldorp
7792b4bfea You can ask for e.g. GWL_STYLE for the desktop window,
but GWL_WNDPROC is off-limits for all windows if your
process didn't create it

svn path=/trunk/; revision=14709
2005-04-20 07:25:14 +00:00
Thomas Bluemel
6ba7e5d2cd don't access pagable memory at dispatch level in NtQueryDirectoryObject
svn path=/trunk/; revision=14708
2005-04-19 22:45:48 +00:00
Gé van Geldorp
9da5e3306e Hervé Poussineau <poussine@freesurf.fr>
Solve quarrel between GDB stub and serenum

svn path=/trunk/; revision=14707
2005-04-19 22:33:09 +00:00
Thomas Bluemel
377ffd2516 convert the device object to a temporary device before deleting it
svn path=/trunk/; revision=14706
2005-04-19 21:47:05 +00:00
Casper Hornstrup
ca82812967 Support 'make livecd'
svn path=/branches/xmlbuildsystem/; revision=14705
2005-04-19 20:52:49 +00:00
Thomas Bluemel
353f0bf39d use anonymous events for synchronization
svn path=/trunk/; revision=14704
2005-04-19 17:13:34 +00:00
Thomas Bluemel
932dc7e607 - Delete named objects from the namespace when the last handle is closed, unless the object is a permanent object
- IoCreateDevice should create a permanent object for named devices

svn path=/trunk/; revision=14703
2005-04-19 17:12:03 +00:00
Thomas Bluemel
995ac8a5b2 import wininet.h from wine to solve conflicts with the w32api headers
svn path=/trunk/; revision=14702
2005-04-19 15:06:18 +00:00
Thomas Bluemel
a0ef12d39e fix typo
svn path=/trunk/; revision=14701
2005-04-19 10:40:37 +00:00
Thomas Bluemel
77089de5b6 directly redirect MapGenericMask to ntdll
svn path=/trunk/; revision=14700
2005-04-19 10:36:11 +00:00
Gé van Geldorp
b4a338182d Merge 14301 - 14698 from trunk
svn path=/branches/xen/; revision=14699
2005-04-19 10:06:05 +00:00
Gé van Geldorp
2200dc3562 Make disk partition handling architecture dependent, as not
all architectures have partitions

svn path=/trunk/; revision=14698
2005-04-19 08:51:16 +00:00
Alex Ionescu
68a209fb2b damn fingers were too fast. sorry, reverting
svn path=/trunk/; revision=14697
2005-04-19 06:26:01 +00:00
Alex Ionescu
05c22b76ae Use MmDeleteKernelStack and remove KeReleaseThread
svn path=/trunk/; revision=14696
2005-04-19 06:24:15 +00:00
Alex Ionescu
c683236f8a Use MmDeleteKernelStack and remove KeReleaseThread
svn path=/trunk/; revision=14695
2005-04-19 06:22:36 +00:00
Steven Edwards
cf1a2b10ac done with wininet import
svn path=/trunk/; revision=14694
2005-04-19 05:01:47 +00:00
Steven Edwards
00c9609713 added wine wininet.h
svn path=/trunk/; revision=14693
2005-04-19 05:00:05 +00:00
Steven Edwards
87aa47161b imported wininet from wine
svn path=/trunk/; revision=14692
2005-04-19 04:57:39 +00:00
Steven Edwards
38de497b18 imported in to the trunk
svn path=/trunk/; revision=14691
2005-04-19 04:50:10 +00:00
Steven Edwards
0c3c1a51b0 removing wininet for reimport
svn path=/trunk/; revision=14690
2005-04-19 04:49:49 +00:00
Steven Edwards
2607bc5f85 imported in to the trunk
svn path=/trunk/; revision=14689
2005-04-19 04:48:51 +00:00
Filip Navara
096c2a1089 Reenable ControlService and fix syntax errors in svcctl.idl.
svn path=/trunk/; revision=14686
2005-04-18 22:11:46 +00:00
Gé van Geldorp
645c3e7497 Fix copy/paste error
svn path=/trunk/; revision=14685
2005-04-18 22:00:52 +00:00
Filip Navara
08807e03af Don't use pointer to freed memory.
svn path=/trunk/; revision=14684
2005-04-18 21:50:08 +00:00
Eric Kohl
e2e4bed006 Disable ControlService() because of a bug in WIDL.
svn path=/trunk/; revision=14683
2005-04-18 21:34:11 +00:00
Thomas Bluemel
88e83d47c5 don't query additional information for the system idle process (which doesn't work anyway)
svn path=/trunk/; revision=14682
2005-04-18 21:03:33 +00:00
Hervé Poussineau
b3dee30733 Implement IOCTL_VIDEO_QUERY_AVAIL_MODES, IOCTL_VIDEO_QUERY_CURRENT_MODE, IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES
Add checks to input/output structure sizes
Move prototypes to new file vgamp.h

svn path=/trunk/; revision=14681
2005-04-18 20:18:06 +00:00
Maarten Bosma
aeac4dceb8 PackageManager: Changed Makefiles
svn path=/trunk/; revision=14680
2005-04-18 19:56:45 +00:00
Maarten Bosma
eb5d74fe5e PackageManager: TARGET_INSTALLDIR = bin
svn path=/trunk/; revision=14679
2005-04-18 19:41:15 +00:00
Thomas Bluemel
9c23880fd4 fix uninitialized variable
svn path=/trunk/; revision=14678
2005-04-18 19:26:12 +00:00
Maarten Bosma
0331e3dfe8 PackageManager: added missing package.h
svn path=/trunk/; revision=14677
2005-04-18 19:22:50 +00:00
Alex Ionescu
58f9a46b3e Fix remaining System Process information structure issues and fix compilation
svn path=/trunk/; revision=14676
2005-04-18 18:24:06 +00:00
Alex Ionescu
6e2aa454ad Fix Process/Thread information structures to match Windows 2000 and have proper structure. Fix bug in ntdll related to OpenProcess
svn path=/trunk/; revision=14675
2005-04-18 17:48:01 +00:00
Alex Ionescu
5817ae7a54 Fix Process/Thread information structures to match Windows 2000 and have proper structure. Fix bug in ntdll related to OpenProcess
svn path=/trunk/; revision=14674
2005-04-18 17:46:59 +00:00
Alex Ionescu
db6c8885b6 Fix incorrect replacement
svn path=/trunk/; revision=14673
2005-04-18 16:25:53 +00:00
Alex Ionescu
c614ba1a5e Remove excess debugging
svn path=/trunk/; revision=14672
2005-04-18 15:51:21 +00:00
Alex Ionescu
610dd8e8bc Use official THREAD_STATE enumeration for thread states
svn path=/trunk/; revision=14671
2005-04-18 15:49:57 +00:00
Alex Ionescu
6733de66c9 Fix win32k
svn path=/trunk/; revision=14670
2005-04-18 14:56:52 +00:00
Alex Ionescu
c030bd043b Forgot this...sorry..it was 3am
svn path=/trunk/; revision=14669
2005-04-18 14:13:03 +00:00
Gé van Geldorp
5845a581f2 Roman Hoegg <roman.hoegg@unisg.ch>
Add support for Swiss German keyboards

svn path=/trunk/; revision=14668
2005-04-18 13:27:16 +00:00
Alex Ionescu
5da996d016 Implement PsGetVersion. OSR and other sources say that the build number is a mix of high and low word, where the high represents checked or free
svn path=/trunk/; revision=14667
2005-04-18 05:47:13 +00:00
Alex Ionescu
234a011028 Fix Access Bug. cmd.exe and taskmgr work again, but there remains a bug with the process list
svn path=/trunk/; revision=14666
2005-04-18 05:25:07 +00:00
Alex Ionescu
2b66d8f4fb Fix incorrect OpenProcess implementation in kernel32 and make it tidier. I'm now seeing a bug with Access rights...
svn path=/trunk/; revision=14665
2005-04-18 05:12:36 +00:00
Alex Ionescu
9cafa059bd Fix Process not being deleted
svn path=/trunk/; revision=14664
2005-04-18 04:55:48 +00:00
Alex Ionescu
6829bd8c8b Implement PsSetLegoNotifyRoutine and PsRemoveCreateThreadNotifyroutine. Clean up ps/thread.c, move things to their own subsystem, do proper TEB Allocation with MmCreateTeb, remove TEB EPROCESS hack fields. Rename PsFrezeAllThreads to KeFreezeAllThreads and implement a working version.
svn path=/trunk/; revision=14663
2005-04-18 04:46:06 +00:00
Alex Ionescu
f4d2ac0b1e Remove ps/create.c, it did not fit with the current model of abstraction. Major cleanup of ps/process.c, created ps/notify.c and ps/quota.c. Implemented NtOpenProcess, PsRemoveLoadImageNotifyRoutine, PsGetCurrentProcessSessionId
svn path=/trunk/; revision=14662
2005-04-18 02:12:30 +00:00
Alex Ionescu
781c6b374f Forgot this
svn path=/trunk/; revision=14661
2005-04-18 02:11:19 +00:00
Alex Ionescu
7740536c18 Mini-merge from my local changes. Rewrite of Process Creation. Notable improvements:
- Subsystemization of Process Creation code. Memory code done by new Mm functions (not all used yet),
      Kernel code done by Ke*, etc.
    - Written to be compatible with the information in "Windows Internals".
    - Optimized and cleaned up.
    - ObInsertObject is now called at the end, fixing a plethora of wrong things that were covered with FIXMEs.
    - PEB is allocated with a Memory Area, and so will TEB soon, which allows 4KB allocation without 64KB gra
      nularity.
    - System DLL Mapping/Loading has been changed to be cached at system bootup, resulting in faster code.
    
Also changed Peb to report NT 5.0

NOTE: Messy, more to come soon. The full benefits of this patch won't be realized until the complete changes
      are in.

svn path=/trunk/; revision=14660
2005-04-18 00:42:31 +00:00
Thomas Bluemel
a9920ccd9d fixed warning
svn path=/trunk/; revision=14659
2005-04-17 20:46:36 +00:00
Eric Kohl
30e7e912c2 ADVAPI32.DLL / SERVICES.EXE:
Implement ControlService()

RPCRT4.DLL:
Disable a bogus buffer overflow check in NdrSimpleStructMarshall.

svn path=/trunk/; revision=14658
2005-04-17 19:56:50 +00:00
Art Yerkes
631838f4a3 Fixed the repeating DHCPOFFER/DHCPACK. I was assuming that the lease timeout
was relative but it's been adjusted by the time we get here.

Thanks to hpoussineau for helping with this bug.

svn path=/trunk/; revision=14657
2005-04-17 19:47:44 +00:00
Eric Kohl
e0dda3685a Support out-pointers to structs.
svn path=/trunk/; revision=14656
2005-04-17 19:45:06 +00:00
Thomas Bluemel
c9a0b04418 fixed warning and minor portability fix
svn path=/trunk/; revision=14655
2005-04-17 19:33:50 +00:00
Thomas Bluemel
3e18dad277 fixed warning and minor portability fix
svn path=/trunk/; revision=14654
2005-04-17 19:32:24 +00:00
Art Yerkes
ddc52fc76c Don't set a zero timeout for a lease. Zero here is taken to mean infinite.
svn path=/trunk/; revision=14653
2005-04-17 19:16:39 +00:00
Gé van Geldorp
0f7fa40246 Implement table grant mechanism for block devices
svn path=/branches/xen/; revision=14652
2005-04-17 18:53:55 +00:00
Emanuele Aliberti
45d0cf852c sm info ssid - implemented
svn path=/trunk/; revision=14651
2005-04-17 17:50:48 +00:00
Alex Ionescu
d4449cd58d Put in alphabetical order, remove IopCreateDevice, and remove incorrect implementation tag for EFi functions
svn path=/trunk/; revision=14650
2005-04-17 16:26:44 +00:00
Eric Kohl
8c8090fc65 - Move generated files to the top of the file list.
- Rename generated file svcctl.h to svcctl_c.h.

svn path=/trunk/; revision=14647
2005-04-17 11:01:00 +00:00
Art Yerkes
99bd564c01 Add sufficient permission to the TCP handle to configure the IP address.
svn path=/trunk/; revision=14646
2005-04-17 08:00:01 +00:00
Art Yerkes
4c0e95ce09 More cleaning. Mostly working DHCP. IP address is automatically discovered
and configured on the first ethernet adapter.

svn path=/trunk/; revision=14645
2005-04-17 07:58:24 +00:00
Art Yerkes
aa0b005b38 Needed infrastructure for DHCP:
Corrected adapter index problem in iinfo.c.  Now the index returned is from
 IF->Index.
ninfo: ditto.
ip.c: Expose IPAddInterfaceRoute and IPRemoveInterfaceRoute for use by
 set ip address IOCTL.
if.c: Allow deleting of TCP context.
main.c: Turn off debugging in CVS.

svn path=/trunk/; revision=14644
2005-04-17 07:55:24 +00:00
Alex Ionescu
24b6532712 IoCreateDevice Changes:
- IoAllocateVpb renamed to IopAllocateVpb and made cleaner
    - Let ObCreateObject do all the memory allocation since the extra data belongs to the
      object and it should be responsible for allocating it. No more extra pool allocations
      or deallocations.
    - Zero out everythign a single time.
    - Remove useless code duplication
    - Use proper I/O Manager types for the object headers.
    - Honour Exclusive Flag, and Has Name Flag.
    - Only initialize event if there is a volume.
    - Initialize a VPB for Virtual Disks also.
    - Set up Device Object Extension properly
    - Set DO_DEVICE_INITIALIZING flag.
    - Use proper sector sizes, don't hardcode 512 (should be 2048 for cds)
    - Actually insert the object into the object table with ObInsertObject. This might seem
      useless, but remember that's simply because ROS has a broken Ob Manager which does way
      too much in ObCreateObject. It will be easier to use the rewrite if this is done properly.
    - Set the right sizes in some places.

svn path=/trunk/; revision=14643
2005-04-17 04:20:16 +00:00
Art Yerkes
f4c3dd909b Make the broadcast address all 1's.
svn path=/trunk/; revision=14642
2005-04-16 22:11:59 +00:00
Art Yerkes
0ed727c9f8 Fixed multiple bind of DHCP client port. Later, we need to implement
per adapter binding.

svn path=/trunk/; revision=14641
2005-04-16 22:10:55 +00:00
Alex Ionescu
d70abfc25b More I/O Stuff that was leftover in the old branch. Yes I'm still on break, I'm just comitting
my local work to avoid duplication.

    - Implemented IoRegisterBootDriverReinitialization, but routines don't actually get called yet.
    - Created IopGetDeviceObjectPointer to deal with the case when the pointer is needed for an attach;
      when this happens, a special (documented) flag should be sent to the driver, so that it can do any
      internal routines to be ready for an attach.
    - Fixed IoAttachDevice to use the Safe Attach routine and sent the IO_ATTACH_DEVICE_API flag (See above)
    - Fixed IoAttachDeviceToDeviceStack to call the safe function.
    - Optimized IoAttachDeviceByPointer
    - Implemented IoAttachDeviceToDeviceStackSafe. Support Device Extension Attach semantics.
    - Added various checks for unload/delete flags (that we never supported). Checks are pretty useless for now
      since we don't use the flags, but I've added one during IoDeleteDevice.
    - Implemented IoEnumerateDeviceObjectList. Should work, but untested.
    - Implemented IoGetDeviceAttachmentBaseRef.
    - Optimized IoGetRelatedDeviceObject.
    - Made IoGetDeviceObjectPointer call the internal routine (see #2 above).
    - Implemented IoDetachDevice.
    - Removed IoOpenDeviceInstanceKey and IoQueryDeviceEnumInfo. Obsoleted, unimplemented, undocumented NT4 APIs.
    - Various Attach/Detach fixes.

svn path=/trunk/; revision=14640
2005-04-16 21:41:32 +00:00
Alex Ionescu
39ef71436d Add file object flags, complete DEVOBJ_EXTENSION, and implement: IoIsFileOriginRemote, IoGetLowerDeviceObject, IoGetdiskDeviceObject, IoGetRequestorSessionId, IoGetRequestorProcessId
svn path=/trunk/; revision=14639
2005-04-16 19:38:14 +00:00
Alex Ionescu
9d6033ebad Fix WaitAll bug. Previously, not all Wait Objects in a WaitAll were checked for signaling, which meant as soon as one was signaled, all were supposed to be satisfied. Worse however, only one object would get satisfied anyways, because of a second bug which hid the first during my testing. Now, all wait all objects must be signaled before satsifcation, and satisfaction is correctly done on all the objects. Reg tested with multithrdwin, which did not properly work before. Thanks to w3seek for notifying me of this bug.
svn path=/trunk/; revision=14638
2005-04-16 17:48:46 +00:00
Maarten Bosma
88594a14de PackageManager: Ported GUI to C
svn path=/trunk/; revision=14637
2005-04-16 17:09:12 +00:00
Hervé Poussineau
f5129193e2 Implement FSCTL_IS_VOLUME_DIRTY and FSCTL_MARK_VOLUME_DIRTY
svn path=/trunk/; revision=14636
2005-04-16 16:04:38 +00:00
Eric Kohl
5942162766 ADVAPI32.DLL:
- Implement LockServiceDatabase and UnlockServiceDatabase.

SERVICES.EXE:
- Add stubs: ScmrLockServiceDatabase, ScmrUnlockDerviceDatabase, SamrNotifyBootConfigStatus, and ScmrCreateServiceW.
- Store and check access rights.

svn path=/trunk/; revision=14635
2005-04-16 12:50:33 +00:00
Maarten Bosma
837c3298c7 PackageManager: Little fix
svn path=/trunk/; revision=14634
2005-04-16 11:48:26 +00:00
Maarten Bosma
887849790a PackageManager: Changed download server to my own webspace. Because http://svn.reactos.com is still offline.
svn path=/trunk/; revision=14633
2005-04-16 11:42:44 +00:00
Maarten Bosma
58096a81e6 PackageManager: Converted cmdline interface to C
svn path=/trunk/; revision=14632
2005-04-16 11:11:52 +00:00
Hervé Poussineau
1eb9c1db51 Allow interrupts indicating an empty buffer only if some bytes are pending
This should correct the boot in Qemu

svn path=/trunk/; revision=14631
2005-04-15 22:14:13 +00:00
Eric Kohl
91ec410e2f Use RPC for making calls to the Service Control Manager.
svn path=/trunk/; revision=14630
2005-04-15 22:02:37 +00:00
Art Yerkes
1a1051e787 Removed need for separately prefixed binutils.
svn path=/trunk/; revision=14629
2005-04-15 19:33:51 +00:00
Eric Kohl
9a53101c31 Support in-pointers to structs.
svn path=/trunk/; revision=14628
2005-04-15 17:56:40 +00:00
Hervé Poussineau
fc68dda45d Add ASSERTs
Correct a bug when processing IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / TargetDeviceRelation (serenum)
Don't breakpoint if NDEBUG is defined (serenum)
Allow to write more than 16 bytes in one IRP_MJ_WRITE (serial)

svn path=/trunk/; revision=14627
2005-04-15 15:56:19 +00:00
Thomas Bluemel
df118afc6f use the correct version of KeGetCurrentIrql for MP
svn path=/trunk/; revision=14626
2005-04-15 10:52:29 +00:00
Alex Ionescu
956f376f4f Implemented Guarded Mutex, a drop-in replacement for Fast Mutex (the correct one, not the one ROS incorrectly implements) on NT 5.2. Not fully tested yet, so nothing switched to it and probably not usable. Also made KeGetCurrentThread/Irql become inlined, since this should create quite a speed boost. Made KeLeaveCriticalRegion deliver APCs if possible, and made Crit regions macros usable from outside ntoskrnl thanks to a new NT 5.2 API (KiCheckForKernelApcDelivery). Guarded Mutex code based on Filip Navara.
svn path=/trunk/; revision=14625
2005-04-15 06:24:35 +00:00
Art Yerkes
3e3c9e9775 Use DriverDesc in the registry as the adapter name since the ndis name OID
seems generally unimplemented.  What a pain.

svn path=/trunk/; revision=14624
2005-04-15 00:48:25 +00:00
Hervé Poussineau
34eabf82b5 Change debug messages to more neutral ones
svn path=/trunk/; revision=14623
2005-04-14 22:41:48 +00:00
Gé van Geldorp
1118e0ce9d Read from disk
svn path=/branches/xen/; revision=14622
2005-04-14 21:47:57 +00:00
Emanuele Aliberti
b47adbe03f Simple Win32/text application to query the SM (incomplete/untested).
svn path=/trunk/; revision=14621
2005-04-14 21:46:14 +00:00
Martin Fuchs
adcb1f9fef charn <charn89@hotmail.com>:
A function for desktopbar.cpp that controls how the taskbar can be resized.

svn path=/trunk/; revision=14620
2005-04-14 20:32:00 +00:00
Martin Fuchs
3d7368e673 from ThomasLa <sikker2004@yahoo.com>:
Corrected DE.rc language controls
Modifed EN.rc
implemented part of screensaver functions

Shows Screensavers
Get Some Values from registry
get default screensaver
implemented delete screensavers

svn path=/trunk/; revision=14619
2005-04-14 20:23:02 +00:00
Thomas Bluemel
c6c92ec896 add some missing gdi functions to the driver function table
svn path=/trunk/; revision=14618
2005-04-14 15:47:03 +00:00
Thomas Bluemel
33bd174f16 define KGATE in win32api
svn path=/trunk/; revision=14617
2005-04-14 15:45:14 +00:00
Casper Hornstrup
849d82764b repos test
svn path=/branches/xmlbuildsystem/; revision=14616
2005-04-14 15:42:56 +00:00
Casper Hornstrup
9e82ebc2fb repos test
svn path=/branches/xmlbuildsystem/; revision=14615
2005-04-14 15:26:31 +00:00
Casper Hornstrup
ea46a589a2 repos test
svn path=/branches/xmlbuildsystem/; revision=14614
2005-04-14 15:21:25 +00:00
Casper Hornstrup
a268dab596 repos test
svn path=/branches/xmlbuildsystem/; revision=14613
2005-04-14 15:14:19 +00:00
Casper Hornstrup
808b0255b6 repos test
svn path=/branches/xmlbuildsystem/; revision=14612
2005-04-14 15:10:41 +00:00
Casper Hornstrup
8aa43261af repos test
svn path=/branches/xmlbuildsystem/; revision=14611
2005-04-14 15:06:21 +00:00
Casper Hornstrup
3a085e784e ci test
svn path=/branches/xmlbuildsystem/; revision=14610
2005-04-14 15:02:30 +00:00
Casper Hornstrup
347e371970 test
svn path=/branches/xmlbuildsystem/; revision=14609
2005-04-14 14:54:58 +00:00
Gé van Geldorp
243f5ba103 - Implement basic event handling
- Update to latest xen-unstable

svn path=/branches/xen/; revision=14608
2005-04-14 14:36:33 +00:00
Casper Hornstrup
9201a30848 test
svn path=/branches/xmlbuildsystem/; revision=14607
2005-04-14 14:30:33 +00:00
Casper Hornstrup
ff1ef6813c test
svn path=/branches/xmlbuildsystem/; revision=14606
2005-04-14 14:27:25 +00:00
Art Yerkes
a4ca03679f Sorry, forgot header for API dll communication.
svn path=/trunk/; revision=14605
2005-04-13 06:55:26 +00:00
Alex Ionescu
3b6c6f0a94 Kernel Gates. Ultra-lightweight and exclusive Wait Objects used in NT 5.2+ as high-speed events. Code is untested, so it's not added to the build until I'm back in May.
svn path=/trunk/; revision=14603
2005-04-13 01:12:08 +00:00
Art Yerkes
b9df1e262e Added DHCP and dhcpcapi to the makefile.
svn path=/trunk/; revision=14602
2005-04-12 23:33:29 +00:00
Art Yerkes
abe286b572 Patch by tinus_ to fix a persistent problem with kdbg. Fixes the y umlaut
bug.

svn path=/trunk/; revision=14601
2005-04-12 23:27:59 +00:00
Art Yerkes
d91b173cb3 First instance of DHCP client API. Not tested yet. Next, the control
panel.

svn path=/trunk/; revision=14600
2005-04-12 23:25:14 +00:00
Art Yerkes
1df2f8903a Added client API interface.
svn path=/trunk/; revision=14599
2005-04-12 23:23:26 +00:00
Emanuele Aliberti
b27e166698 SM: some server side code for SM_API_QUERY_INFORMATION
svn path=/trunk/; revision=14598
2005-04-12 21:25:58 +00:00
Hervé Poussineau
95cdf6e471 Remove unneeded hack. DriverEntry is now called only once.
svn path=/trunk/; revision=14597
2005-04-11 22:38:53 +00:00
Hervé Poussineau
63e93fb6ba Respect OBJ_OPENIF flag in ObCreateObject
svn path=/trunk/; revision=14596
2005-04-11 22:38:05 +00:00
Hervé Poussineau
c568ca436d Open \Windows directory if it exists
svn path=/trunk/; revision=14595
2005-04-11 22:37:46 +00:00
Hervé Poussineau
40c9a57fa2 Don't call DriverEntry more than once. Fix suggested by Filip Navara.
svn path=/trunk/; revision=14594
2005-04-11 22:29:31 +00:00
Thomas Bluemel
9a3b51ea9a support kernel handles, creating them is however not yet supported
svn path=/trunk/; revision=14593
2005-04-11 21:50:15 +00:00
Maarten Bosma
e70a05cabf Package Manager: fixed HotKeys (thanks to w3seek) *shamed*
svn path=/trunk/; revision=14592
2005-04-11 20:27:20 +00:00
Casper Hornstrup
1c89a135da Have the object files of a module depend on the build file that contain the module
svn path=/branches/xmlbuildsystem/; revision=14591
2005-04-11 18:45:48 +00:00
Maarten Bosma
abd513250f PackageManager: Bug fix
svn path=/trunk/; revision=14590
2005-04-11 17:59:52 +00:00
Hervé Poussineau
4b77a4d92d Filip Navara <xnavara@volny.cz>: Use correct service name in IopInitializeDriverModule
svn path=/trunk/; revision=14589
2005-04-11 17:28:14 +00:00
Art Yerkes
298503a6e4 Commit for blight: fix stack alignment.
svn path=/trunk/; revision=14588
2005-04-11 15:43:04 +00:00
Aleksey Bragin
093d9f292c Initial version of uhci driver import from Linux 2.5 kernel. Currently compiles and links, but not usable (most probably will bugcheck when loaded).
Also a lot of compile warnings exist.
I will update UsbStack wiki page sometime soon to reflect direction of my work.

svn path=/trunk/; revision=14587
2005-04-11 12:49:25 +00:00
Art Yerkes
7af94c863d Use the right set (the referenced file objects) to compare when killing
exclusive select objects.  This fixes the select leakage observed when
running Xircon.

svn path=/trunk/; revision=14586
2005-04-11 08:41:58 +00:00
Art Yerkes
d34cc750d8 Fixed warning, uninitialized length. Sorry, I did this in a different way
and missed one use of NewBufferLen.  Not sure why I don't see the 'might be
used uninitialized' warning.

svn path=/trunk/; revision=14585
2005-04-11 08:07:41 +00:00
Art Yerkes
9166ff8f34 lock: Fixes suggested by w3seek:
protect the remaining MmProbeAndLockPages
don't return from the exception handler

read: Hopefully the last indecision in here:

Avoid using AFD_EVENT_CLOSE until the socket is really toast.
Use AFD_EVENT_DISCONNECT instead when we've got an EOF, but still have
buffered data.
I was doing this socket fiddling without a callout block.  Fixed.

svn path=/trunk/; revision=14584
2005-04-11 06:03:20 +00:00
Aleksey Bragin
7bbf6258d7 Started implementing Locale property page of intl.cpl appltet. It already provides choices for locale, the only thing it doesn't do - actually set chosen locale. Also it doesn't work under ReactOS.
svn path=/trunk/; revision=14583
2005-04-10 21:01:13 +00:00
Casper Hornstrup
fb03ace091 Support -Werror
svn path=/branches/xmlbuildsystem/; revision=14582
2005-04-10 19:44:11 +00:00
Emanuele Aliberti
810d009783 SM: initial work on SM_API_QUERY_INFORMATION (client side; ROS specific).
SM: fixed connection data in callback SM->subsystem_server during ss registration

svn path=/trunk/; revision=14581
2005-04-10 19:08:23 +00:00
Maarten Bosma
c1a2f01875 PackageManager: Cmdline fix
svn path=/trunk/; revision=14580
2005-04-10 17:03:40 +00:00
Hartmut Birr
0ba6cce82a Added dependency tracking.
svn path=/trunk/; revision=14579
2005-04-10 16:45:30 +00:00
Hartmut Birr
85197737c3 Set a better value for gap3 on read/write requests.
svn path=/trunk/; revision=14578
2005-04-10 16:44:00 +00:00
Hartmut Birr
a6e0f1b9c1 Made the hard coded value for the HUT a little bit longer.
svn path=/trunk/; revision=14577
2005-04-10 16:41:32 +00:00
Maarten Bosma
e45867b698 PackageManager: Depencies
svn path=/trunk/; revision=14576
2005-04-10 15:34:15 +00:00
Casper Hornstrup
6d5cdde45c Merge 13831:14550 from trunk
svn path=/branches/xmlbuildsystem/; revision=14575
2005-04-10 14:32:30 +00:00
Aleksey Bragin
56ec91131c Change OsLoadOptions back to the default value
svn path=/trunk/; revision=14574
2005-04-10 14:16:38 +00:00
Aleksey Bragin
b94afd8f6e Add russian keyboard layout to HKLM\...\KeyboardLayours, and also add kbdru.dll into reactos.dff (as pointed again by unC0Rr :-))
svn path=/trunk/; revision=14573
2005-04-10 14:02:31 +00:00
Aleksey Bragin
a16cc05ef2 Added kbdru.dll into build process
svn path=/trunk/; revision=14572
2005-04-10 11:37:57 +00:00
Aleksey Bragin
cc161feeb5 Fix incorrect file name of kgbgb.dll to kbduk.dll (by unC0Rr), added kbdru.dll into keyboard layouts
svn path=/trunk/; revision=14571
2005-04-10 11:35:19 +00:00
Aleksey Bragin
c9481ea29c Fixed incorrect version (was 1010h) to 1000h, as reported by XP's kbdru.dll
svn path=/trunk/; revision=14570
2005-04-10 11:18:05 +00:00
Aleksey Bragin
2663d38106 Some minor additions to support newer versions of uhci driver (though doesn't even compile atm).
svn path=/trunk/; revision=14569
2005-04-10 10:20:10 +00:00
Hartmut Birr
71160a6cae - Fixed the destination path for installing freeldr on a floppy.
- Used NtOpenFile for accessing the mbr or the boot sector.

svn path=/trunk/; revision=14568
2005-04-10 10:16:37 +00:00
Phillip Susi
d36e7a745d Fixed freeldr fat16 boot sector to use the bios provided boot device number instead of the ( usually invalid ) one in the boot sector header.
svn path=/trunk/; revision=14567
2005-04-10 05:00:27 +00:00
Filip Navara
56f3c4ed58 - Pass correct parameters to MmLocateMemoryAreaByAddress in MmLockPagableDataSection.
- Change UNIMPLEMENTED to DPRINT1 in MmLockPagableSectionByHandle.

svn path=/trunk/; revision=14566
2005-04-10 04:02:54 +00:00
Gé van Geldorp
b1cf1bfa05 Fix "make bootcd"
svn path=/trunk/; revision=14565
2005-04-09 22:37:15 +00:00
Aleksey Bragin
52c1eca7aa Implemented kbdru.dll, tested under Windows XP - works great. Though I would appreciate more thorough testing.
svn path=/trunk/; revision=14564
2005-04-09 17:33:47 +00:00
Hartmut Birr
3985d6c980 Close the desktop handle after getting the object pointer.
svn path=/trunk/; revision=14563
2005-04-09 17:10:25 +00:00
Maarten Bosma
a16ba46cd2 svn path=/trunk/; revision=14562 2005-04-09 13:48:31 +00:00
Hartmut Birr
02d3095664 Fixed the dereferencing of an existing named object in IoCreateFile.
svn path=/trunk/; revision=14561
2005-04-09 09:40:44 +00:00
Hartmut Birr
6256db0836 ObCreateObject should return an existing named object if one already exist.
svn path=/trunk/; revision=14560
2005-04-09 09:37:32 +00:00
Hervé Poussineau
366a70a52a GCC 3.3.3 detects uninitialized variable where it is not the case. Workaround problem by moving initialization at the top of function.
svn path=/trunk/; revision=14559
2005-04-08 22:19:39 +00:00
Hartmut Birr
322cd3e113 - Don't allow to create objects in the nt name space for twice.
- Create a stream file object in IoCreateFile if a deviceobject is opening.

svn path=/trunk/; revision=14558
2005-04-08 20:38:08 +00:00
Hartmut Birr
c5ccc1106a Csrss should only open the '\Windows' directory.
svn path=/trunk/; revision=14557
2005-04-08 20:29:30 +00:00
Klemens Friedl
a6bdb724d0 update makefile (add ros-get)
svn path=/trunk/; revision=14556
2005-04-08 19:31:08 +00:00
Casper Hornstrup
af941b419a Copy riched20
svn path=/branches/xmlbuildsystem/; revision=14555
2005-04-08 19:18:01 +00:00
Casper Hornstrup
b69e3dfd1d Delete riched20
svn path=/branches/xmlbuildsystem/; revision=14554
2005-04-08 19:16:52 +00:00
Maarten Bosma
c6237266d7 PackageManager
Created the commandline Interface
Deleated subcategries

svn path=/trunk/; revision=14553
2005-04-08 19:09:20 +00:00
Casper Hornstrup
e07a1f6200 Copy makefile
svn path=/branches/xmlbuildsystem/; revision=14552
2005-04-08 19:03:04 +00:00
Casper Hornstrup
62a2326dfb Delete Makefile
svn path=/branches/xmlbuildsystem/; revision=14551
2005-04-08 18:59:37 +00:00
Casper Hornstrup
a95618a8a5 Build when DBG=1
svn path=/branches/xmlbuildsystem/; revision=14550
2005-04-08 17:24:30 +00:00
Magnus Olsen
2cb97d1370 New document icon from Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14549
2005-04-08 16:59:16 +00:00
Steven Edwards
76644e2b9b wow it really does work on linux now
svn path=/branches/xmlbuildsystem/; revision=14548
2005-04-08 16:58:29 +00:00
Royce Mitchell III
601ea5384b use tags for pool allocations, and reformat code
svn path=/trunk/; revision=14547
2005-04-08 13:14:15 +00:00
Royce Mitchell III
18cff7ccc9 use tags for pool allocations, and reformat code
svn path=/trunk/; revision=14546
2005-04-08 13:02:23 +00:00
Royce Mitchell III
dac8f53fe5 use tags for pool allocations, and reformat code
svn path=/trunk/; revision=14545
2005-04-08 12:54:37 +00:00
Art Yerkes
d57bccaddf Adapter: some info display.
Socket: implemented send and recv.

svn path=/trunk/; revision=14544
2005-04-08 11:08:26 +00:00
Art Yerkes
c0282425ac Read: Generalized EOF condition slightly.
Remember to check for failure when locking address buffer.
Lock: SEH to protect from bad address length ptr.

svn path=/trunk/; revision=14543
2005-04-08 11:04:13 +00:00
Royce Mitchell III
e2303991a6 raddr2line utility
moved code common betw rsym and raddr2line to rsym_common.c
simplified tools/Makefile

svn path=/trunk/; revision=14542
2005-04-08 05:35:20 +00:00
Art Yerkes
034bf04901 Initialize these in case handle locking fails.
svn path=/trunk/; revision=14541
2005-04-08 01:11:32 +00:00
Casper Hornstrup
eb4fea4ab7 * Clean object files
* Clean generated files for cabman


svn path=/branches/xmlbuildsystem/; revision=14540
2005-04-07 20:28:35 +00:00
Casper Hornstrup
991efa7f22 Add missing file
svn path=/branches/xmlbuildsystem/; revision=14539
2005-04-07 19:57:05 +00:00
Casper Hornstrup
19592be8c0 Use order-only prerequisites for directories to prevent spurious rebuilds when building on non-FAT volumes
svn path=/branches/xmlbuildsystem/; revision=14538
2005-04-07 19:39:39 +00:00
Thomas Bluemel
bdd0224945 forward CommConfigDialogA to CommConfigDialogW
svn path=/trunk/; revision=14537
2005-04-07 18:01:29 +00:00
Thomas Bluemel
2acf2098b8 - don't redefine public structures in taskmgr
- minor taskmgr changes and make better use of PCH
- fixed definition of SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION and depending code

svn path=/trunk/; revision=14536
2005-04-07 13:25:34 +00:00
Thomas Bluemel
b995b11c1d fixed warnings
svn path=/trunk/; revision=14535
2005-04-07 13:11:46 +00:00
Magnus Olsen
98b6f6bd7b Remove more hardcode string to En.rc
svn path=/trunk/; revision=14534
2005-04-07 11:24:38 +00:00
Casper Hornstrup
a15b6d2023 Add the files where they are located
svn path=/branches/xmlbuildsystem/; revision=14533
2005-04-06 22:27:22 +00:00
Casper Hornstrup
1ea35be664 Correct some wrong dependencies for 'make bootcd'
svn path=/branches/xmlbuildsystem/; revision=14532
2005-04-06 20:49:49 +00:00
Thomas Bluemel
68c2c91476 reformat some code to make it readably
svn path=/trunk/; revision=14530
2005-04-06 18:30:09 +00:00
Thomas Bluemel
237d12dc8e Saveliy Tretiakov <saveliyt@mail.ru>:
- Implemented CommConfigDialogA and CommConfigDialogW
- Removed @unimplemented comments for some implemented functions

svn path=/trunk/; revision=14529
2005-04-06 17:40:25 +00:00
Thomas Bluemel
95a75efe29 add image base address for serialui.dll
svn path=/trunk/; revision=14528
2005-04-06 17:08:17 +00:00
Thomas Bluemel
cf7a330bf0 use unicode functions only and some minor fixes to preserve 64bit compatibility
svn path=/trunk/; revision=14527
2005-04-06 17:04:28 +00:00
Royce Mitchell III
b8442ebcdd fix uninitialized variable warnings
svn path=/trunk/; revision=14526
2005-04-06 12:32:14 +00:00
Hervé Poussineau
2cec8d9d65 Saveliy Tretiakov <saveliyt@mail.ru>
- Started serialui dll
- Implemented drvCommConfigDialogA and drvCommConfigDialogW

svn path=/trunk/; revision=14525
2005-04-06 11:14:57 +00:00
Hervé Poussineau
b82483c76c Verify that allocated resource list is not NULL in IRP_MN_START_DEVICE.
svn path=/trunk/; revision=14524
2005-04-06 06:09:01 +00:00
Royce Mitchell III
7b78b8092c patch by kjk::hyperion, fix syntax of gcc inline asm
svn path=/trunk/; revision=14523
2005-04-06 04:03:41 +00:00
Steven Edwards
bbba49d610 remove the use of windows.h in some places where it is not needed
svn path=/trunk/; revision=14522
2005-04-05 23:04:24 +00:00
Alex Ionescu
16290c9195 Use w32api... hope this does something? Just trying to help steven.
svn path=/trunk/; revision=14521
2005-04-05 21:41:03 +00:00
Casper Hornstrup
f81cbc31f1 Accept ROS_INSTALL environment variable
svn path=/branches/xmlbuildsystem/; revision=14520
2005-04-05 20:24:26 +00:00
Steven Edwards
49388de0ac fixed rosapps a bit. disabled tests for now. will fix them tonight
svn path=/trunk/; revision=14519
2005-04-05 19:42:40 +00:00
Steven Edwards
c773a28861 more w32api conversion. Send errors.h to the Trash Can
svn path=/trunk/; revision=14518
2005-04-05 19:30:34 +00:00
Steven Edwards
bd3a9da15f fixed header usage. Please avoid using windows.h
svn path=/trunk/; revision=14517
2005-04-05 19:22:30 +00:00
Steven Edwards
ff86185830 remove windows.h
svn path=/trunk/; revision=14516
2005-04-05 19:19:44 +00:00
Steven Edwards
1cb1df84c1 __USE_W32API
svn path=/trunk/; revision=14515
2005-04-05 19:17:21 +00:00
Steven Edwards
8a7c057498 __USE_W32API
svn path=/trunk/; revision=14514
2005-04-05 19:14:37 +00:00
Steven Edwards
d3ab2ca78a use -D__USE_W32API
svn path=/trunk/; revision=14513
2005-04-05 19:13:51 +00:00
Hervé Poussineau
353bc6197c Add serial port enumerator driver:
- Enumerate legacy mice
- Should also detect PnP serial devices even if they are not yet reported
It is implemented as an upper filter for serial port driver (serial.sys)
Add corresponding registry entries

svn path=/trunk/; revision=14512
2005-04-05 19:04:07 +00:00
Steven Edwards
c6779bb5c2 use -D__USE_W32API
svn path=/trunk/; revision=14511
2005-04-05 18:59:56 +00:00
Casper Hornstrup
dcdd51410c Rebuild source if a header is changed
svn path=/branches/xmlbuildsystem/; revision=14510
2005-04-05 18:49:53 +00:00
Casper Hornstrup
f6d915eecc Simplify directory handling
svn path=/branches/xmlbuildsystem/; revision=14509
2005-04-05 18:20:45 +00:00
Gé van Geldorp
677e29b95f Implement exception handling for Xen
svn path=/branches/xen/; revision=14508
2005-04-05 17:50:21 +00:00
Casper Hornstrup
13fb77b90b Generate registry hives on 'make install'
svn path=/branches/xmlbuildsystem/; revision=14507
2005-04-05 17:22:02 +00:00
Hartmut Birr
785882957e - Changed the calculation of the current sector count to read or write from both sides of a floppy in one step.
- Set the EOT sector always to the last sector of a floppy.

svn path=/trunk/; revision=14506
2005-04-05 17:12:52 +00:00
Hartmut Birr
80eabf0040 Initialize the maximum length of the device description to allocate more than map register.
svn path=/trunk/; revision=14505
2005-04-05 17:07:56 +00:00
Hartmut Birr
1a0cac4ee8 Set the correct CurrentVa in the call to IoFlushAdapterBuffers.
svn path=/trunk/; revision=14504
2005-04-05 15:53:09 +00:00
Hartmut Birr
e1d5086ebf Changed back to IoBuildSynchronousFsdRequest.
svn path=/trunk/; revision=14503
2005-04-05 15:51:02 +00:00
Thomas Bluemel
2177dfcfd2 free work items after processing them
svn path=/trunk/; revision=14502
2005-04-05 15:08:18 +00:00
Hervé Poussineau
47632d3088 Print date and time formats according to regional settings
svn path=/trunk/; revision=14501
2005-04-05 12:34:38 +00:00
Hervé Poussineau
f477aa0a0f Remove useless code (ACPI now reports resources correctly)
Change ULONG to ULONG_PTR for IoStatus.Information field

svn path=/trunk/; revision=14500
2005-04-05 12:00:37 +00:00
Hervé Poussineau
849f32b6b5 Implement IRP_MN_QUERY_RESOURCES (Irq, IO ports, DMA)
svn path=/trunk/; revision=14499
2005-04-05 12:00:13 +00:00
Royce Mitchell III
f165c00432 add some asserts
svn path=/trunk/; revision=14498
2005-04-05 05:12:16 +00:00
Art Yerkes
13027a8afa Added acknowledgement (thank tinus and sorry I didn't put this in the first
commit).

svn path=/trunk/; revision=14497
2005-04-04 23:48:11 +00:00
Art Yerkes
cb76d1fab2 First import of DHCP client service.
No pipe created yet.  Event model up and running.
Does not produce a dhcp offer yet but working on that.

svn path=/trunk/; revision=14496
2005-04-04 23:45:33 +00:00
Hervé Poussineau
e26cc4962b Fix file properties
svn path=/trunk/; revision=14495
2005-04-04 23:17:28 +00:00
Hervé Poussineau
04bbda156c Move variable declarations at the start of functions
svn path=/trunk/; revision=14494
2005-04-04 23:12:21 +00:00
Hartmut Birr
f4a430511e Check for an valid mdl pointer before calling IoFreeMdl in IoReadWriteCompletion.
svn path=/trunk/; revision=14493
2005-04-04 23:11:19 +00:00
Hartmut Birr
1844746db4 Fixed some bugs, which have prevented the using of isa dma channels.
svn path=/trunk/; revision=14492
2005-04-04 23:09:15 +00:00
Hervé Poussineau
e0dfaf1c5b Allow ACPI detection and legacy detection for serial ports
Detect serial debug port and prevent its management by serial driver
Activate serial driver in registry

svn path=/trunk/; revision=14491
2005-04-04 23:00:52 +00:00
Hervé Poussineau
d9bef42fde Correct IOCTL_SERIAL_CLEAR_STATS and IOCTL_SERIAL_PURGE
Manage read errors (overrun, parity, ...)
Use output buffer even if Uart is ready to transmit

svn path=/trunk/; revision=14490
2005-04-04 22:48:51 +00:00
Casper Hornstrup
c8c43a85a3 Install generated files
svn path=/branches/xmlbuildsystem/; revision=14489
2005-04-04 22:05:08 +00:00
Casper Hornstrup
19fa7f20af Support installation of generated files
svn path=/branches/xmlbuildsystem/; revision=14488
2005-04-04 20:50:55 +00:00
Casper Hornstrup
77b574742c Let dependencies control 'make install'
svn path=/branches/xmlbuildsystem/; revision=14487
2005-04-04 19:39:44 +00:00
Alex Ionescu
ff0ad6c8cb Compile with w32api...gift for Steven
svn path=/trunk/; revision=14486
2005-04-04 03:55:43 +00:00
Hervé Poussineau
6514e33a95 Replace polling mode in IRP_MJ_READ by an interrupt mode.
It is a lot less CPU consuming...

svn path=/trunk/; revision=14485
2005-04-03 21:36:15 +00:00
Hervé Poussineau
ad17913046 Add WaitAll and WaitAny values
svn path=/trunk/; revision=14484
2005-04-03 21:31:41 +00:00
Casper Hornstrup
de09c8d285 Partial 'make install' implementation
svn path=/branches/xmlbuildsystem/; revision=14483
2005-04-03 19:25:58 +00:00
Eric Kohl
aed77eddbd Support marshalling of 'unique' strings.
svn path=/trunk/; revision=14482
2005-04-03 19:15:14 +00:00
Klemens Friedl
be04afc103 ReactOS Package Manager
More information:
http://reactos.com/wiki/index.php/ReactOS_Package_Manager

* Maarten Bosma (Dr. Fred)
* Klemens Friedl (frik85)

svn path=/trunk/; revision=14481
2005-04-03 19:06:49 +00:00
Hartmut Birr
f22d019858 Removed some calls to NtOpenProcess. They aren't necessary because the process data structure contains already a process handle.
svn path=/trunk/; revision=14480
2005-04-03 15:47:15 +00:00
Emanuele Aliberti
4e0cf9abb6 WinTrust.dll: Update EXPORTS table
svn path=/trunk/; revision=14479
2005-04-03 14:38:42 +00:00
Martin Fuchs
a9f4f32734 activate printer folder menu
svn path=/trunk/; revision=14478
2005-04-03 14:32:47 +00:00
Magnus Olsen
af2755d461 minor change that I did forget
svn path=/trunk/; revision=14477
2005-04-03 13:45:23 +00:00
Magnus Olsen
2f4cc70e0f Remove more hardcode string to En.rc
svn path=/trunk/; revision=14476
2005-04-03 13:40:15 +00:00
Hartmut Birr
7f6485630b Since a process id is only unique if the associated process is not deleted,
we must prevent the deleting of the process. An opened handle does this.

svn path=/trunk/; revision=14475
2005-04-03 13:04:10 +00:00
Eric Kohl
938d6d1baf Support 'ref' and 'unique' attributes for pointers.
svn path=/trunk/; revision=14474
2005-04-03 12:49:25 +00:00
Martin Fuchs
0341aa671d protect system image list
svn path=/branches/lean-explorer/; revision=14473
2005-04-03 12:14:30 +00:00
Martin Fuchs
d840ae26ad protect system image list
svn path=/trunk/; revision=14473
2005-04-03 12:14:30 +00:00
Casper Hornstrup
dff399ada6 Add missing file
svn path=/branches/xmlbuildsystem/; revision=14472
2005-04-03 11:58:31 +00:00
Casper Hornstrup
c4387e8d7d Verbose mode
svn path=/branches/xmlbuildsystem/; revision=14471
2005-04-03 11:57:34 +00:00
Martin Fuchs
89e885955c show logoff dialog in lean explorer
svn path=/branches/lean-explorer/; revision=14470
2005-04-03 11:38:08 +00:00
Martin Fuchs
b01de1ffd4 show logoff dialog in lean explorer
svn path=/trunk/; revision=14470
2005-04-03 11:38:08 +00:00
Martin Fuchs
359d3bc253 display "log off" dialog, add "terminate" menu entry
svn path=/trunk/; revision=14469
2005-04-03 11:23:03 +00:00
Casper Hornstrup
2c65178fde Detect compiler -pipe support
svn path=/branches/xmlbuildsystem/; revision=14468
2005-04-03 10:46:08 +00:00
Magnus Olsen
315c267eef Remove more hardcode string to En.rc
svn path=/trunk/; revision=14467
2005-04-03 10:16:56 +00:00
Casper Hornstrup
1cb006090f Avoid spurious error messages during make clean
svn path=/branches/xmlbuildsystem/; revision=14466
2005-04-03 10:05:52 +00:00
Hartmut Birr
32fce0a991 Initialized the event with the object instead of the handle.
svn path=/trunk/; revision=14465
2005-04-03 10:05:00 +00:00
Martin Fuchs
e56e6b57c7 fix SDI shell browser
svn path=/trunk/; revision=14464
2005-04-03 09:16:20 +00:00
Magnus Olsen
1e7d27e8c9 Remove more hardcode string to En.rc
svn path=/trunk/; revision=14463
2005-04-02 22:19:12 +00:00
Casper Hornstrup
78c796560d Generate map files
svn path=/branches/xmlbuildsystem/; revision=14462
2005-04-02 21:45:38 +00:00
Casper Hornstrup
d7fdb5701e Generate map files
svn path=/branches/xmlbuildsystem/; revision=14461
2005-04-02 21:45:16 +00:00
Magnus Olsen
2c4319bbb7 Remove more hardcode string to En.rc
svn path=/trunk/; revision=14460
2005-04-02 21:06:44 +00:00
Steven Edwards
3acecc6fd4 another one bytes the dust. messages.h is gone
svn path=/trunk/; revision=14459
2005-04-02 21:02:31 +00:00
Magnus Olsen
70ccaeb797 Did forget the info I did change
it is remove all hardcode string to En.rc
to make it easy to translate

svn path=/trunk/; revision=14458
2005-04-02 20:27:41 +00:00
Magnus Olsen
cc05ff6eb8 svn path=/trunk/; revision=14457 2005-04-02 20:23:01 +00:00
Steven Edwards
93ccc29d64 here you go
svn path=/trunk/; revision=14456
2005-04-02 19:52:29 +00:00
Steven Edwards
0f301d785a __USE_W32API
svn path=/trunk/; revision=14455
2005-04-02 19:47:52 +00:00
Hartmut Birr
ff278d3830 Changed the indentation to a human readable format (no code change).
svn path=/trunk/; revision=14454
2005-04-02 19:33:08 +00:00
Thomas Bluemel
8a17f1f08d corrected file name so it matches the include in slayer.rc
svn path=/trunk/; revision=14453
2005-04-02 19:26:54 +00:00
Steven Edwards
2f69ef0ae5 another one bytes the dust
svn path=/trunk/; revision=14452
2005-04-02 19:13:54 +00:00
Martin Fuchs
38024cdd26 fix termination of "search program" dialog
svn path=/trunk/; revision=14451
2005-04-02 18:24:13 +00:00
Casper Hornstrup
8d784c14d4 Document ROS_TEMPORARY environment variable
svn path=/branches/xmlbuildsystem/; revision=14450
2005-04-02 18:01:18 +00:00
Casper Hornstrup
d72d41723c Have rbuild create the output directories
svn path=/branches/xmlbuildsystem/; revision=14449
2005-04-02 16:46:08 +00:00
Martin Fuchs
275c59c4d4 "minimize all": only minimize windows with valid positions
svn path=/trunk/; revision=14448
2005-04-02 16:18:09 +00:00
Hartmut Birr
fccdd32ffd Dereference the object if the type doesn't match in ObmReferenceObjectByHandle.
svn path=/trunk/; revision=14447
2005-04-02 16:17:08 +00:00
Martin Fuchs
7e355fdee2 update Jamfile
svn path=/trunk/; revision=14446
2005-04-02 16:16:53 +00:00
Hartmut Birr
b82d7998fa Do only dereference the desktop window if the handle was valid in IntMouseInput.
svn path=/trunk/; revision=14445
2005-04-02 16:13:11 +00:00
Hartmut Birr
c5fcba3366 Added the string for IDS_PROGRAMFILES.
svn path=/trunk/; revision=14444
2005-04-02 15:58:25 +00:00
Hartmut Birr
d5c7b7443b - Fixed ExTimerRundown.
- Fixed adding and removing of timers to the wake list.  
- Fixed the reinserting of the timer apc.  
- Don't unlock the timer twice in NtSetTimer.

svn path=/trunk/; revision=14443
2005-04-02 15:55:15 +00:00
Eric Kohl
23ffe8c3f8 NdrSendReceive: Update the message buffer info after the call to I_RpcSendReceive.
svn path=/trunk/; revision=14442
2005-04-02 15:11:36 +00:00
Martin Fuchs
87c424ef42 reactivate control panel folder
svn path=/trunk/; revision=14441
2005-04-02 14:26:56 +00:00
Hervé Poussineau
ce4cbf5e57 Correct timeout issues when reading
Pend read IRPs
Lots of small issues

svn path=/trunk/; revision=14440
2005-04-02 14:16:47 +00:00
Martin Fuchs
11fe38608b fix tray icon config dialog for the first icon
svn path=/trunk/; revision=14439
2005-04-02 11:40:58 +00:00
Martin Fuchs
c5c1a87719 switch to search icon in search dialog
svn path=/trunk/; revision=14438
2005-04-02 11:21:46 +00:00
Martin Fuchs
00bf273c43 merge from trunk: enable multiline tooltips
svn path=/branches/lean-explorer/; revision=14437
2005-04-02 11:09:39 +00:00
Martin Fuchs
6369325505 merge from trunk: launch shell DDE server
svn path=/branches/lean-explorer/; revision=14436
2005-04-02 11:00:58 +00:00
Martin Fuchs
f2cca3cd47 merge from trunk: hide login screen to make the login on XP faster
svn path=/branches/lean-explorer/; revision=14435
2005-04-02 10:59:49 +00:00
Martin Fuchs
45ba821ec5 terminate shell service objects thread if there is nothing to do
svn path=/trunk/; revision=14434
2005-04-02 10:48:16 +00:00
Steven Edwards
5875f60018 __USE_W32API
svn path=/trunk/; revision=14433
2005-04-02 05:43:37 +00:00
Steven Edwards
afa13639b8 bunch of w32api fixes. ascii.h is gonecd ..! coff.h was unused and quite a few others were redunant and could be moved. If you try to build a app in the ROS build system without using __USE_W32API or Unicode beware it won't build as it shouldn't. Also partinfo was really broken so someone needs to fix this. If not I will attempt to w32api'ise it in the morning.
svn path=/trunk/; revision=14432
2005-04-02 05:37:20 +00:00
Steven Edwards
f8ec26b8ae avoid the use of ver.h in favor of winver.h
svn path=/trunk/; revision=14431
2005-04-02 00:49:10 +00:00
Gunnar Dalsnes
95daa63b61 -move rtl thread/process stuff from ntdll to rtl and make ntoskrnl\ldr\init.c use those
-fix RtlCreateUserProcess to create the thread suspended and update all users of RtlCreateUserProcess to manually resume the thread

svn path=/trunk/; revision=14430
2005-04-02 00:18:46 +00:00
Steven Edwards
c8e0c8df83 nevermind. It helps to do a make bootcd in the terminal that has the value and /usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin:/usr/lib/java/bin:/usr/lib/java/jre/bin:/opt/kde/bin:/usr/lib/qt/bin to mingw defined.
svn path=/trunk/; revision=14429
2005-04-02 00:11:50 +00:00
Steven Edwards
450aa4ce11 mingw32-linux is not setting ARCH=i386....this fixes the bootcd for now
svn path=/trunk/; revision=14428
2005-04-02 00:05:16 +00:00
Gé van Geldorp
bebf425d30 - Add support for Xen 2.0
- Rearrange some code

svn path=/branches/xen/; revision=14427
2005-04-01 22:39:20 +00:00
Steven Edwards
8b21b47868 use the w32api headers
svn path=/trunk/; revision=14426
2005-04-01 21:44:22 +00:00
Steven Edwards
e231640a15 remove my WinCE support attempt
svn path=/trunk/; revision=14425
2005-04-01 21:19:23 +00:00
Steven Edwards
8e401adc6b remove my WinCE support attempt
svn path=/trunk/; revision=14424
2005-04-01 21:18:43 +00:00
Casper Hornstrup
321673ceb9 Put winebuild output in intermediate directory
svn path=/branches/xmlbuildsystem/; revision=14423
2005-04-01 19:31:52 +00:00
Hartmut Birr
e31b75dfe5 - Route the stream file objects also through the close path.
- Calculate the size of the fcb hash table depend on the file system type.

svn path=/trunk/; revision=14422
2005-04-01 18:35:34 +00:00
Hartmut Birr
7bf6af0dce - Use IoBuildAsynchronousFsdRequest instead IoBuildSynchronousFsdRequest in NtRead/WriteFile.
- Guard the calls to IoBuildAsynchronousFsdRequest with an exception frame.

svn path=/trunk/; revision=14421
2005-04-01 18:22:17 +00:00
Hartmut Birr
de83dfa5b8 Raise the exception in MmProbeAndLockPages always with STATUS_ACCESS_VIOLATION.
svn path=/trunk/; revision=14420
2005-04-01 18:19:46 +00:00
Casper Hornstrup
75065f4320 Build stubs generated by winebuild
svn path=/branches/xmlbuildsystem/; revision=14419
2005-04-01 18:18:18 +00:00
Hartmut Birr
4ea628ccaa Guard the calls to MmProbeAndLockPages and IoPrepareIrpBuffer with an exception frame and do free allocated resources if an exception occurs.
svn path=/trunk/; revision=14418
2005-04-01 18:17:47 +00:00
Steven Edwards
fc9d1af415 move another SDK header to the SDK
svn path=/trunk/; revision=14417
2005-04-01 18:06:50 +00:00
Steven Edwards
af98825fd6 use -D__USE_W32API for tgetopt
svn path=/trunk/; revision=14416
2005-04-01 18:00:22 +00:00
Magnus Olsen
a8708688d2 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14415
2005-04-01 11:42:40 +00:00
Magnus Olsen
671ba3795b minor update
Swedish translation
Andreas Bjerkeholt
harteex@gmail.com,

proofread by 
David Nordenberg 
dnordenberg@users.sourceforge.net


svn path=/trunk/; revision=14414
2005-04-01 11:29:14 +00:00
Magnus Olsen
5ca5fa5dd7 David Nordenberg: New copy from english resource translated to Swedish,
old one was missing 95% of its content.
	  proofread by Andreas Bjerkeholt

svn path=/trunk/; revision=14413
2005-04-01 10:19:45 +00:00
Magnus Olsen
dee9cfe25c minor changs by
Swedish translation
Andreas Bjerkeholt
harteex@gmail.com,

and 
proofread by 
David Nordenberg 
dnordenberg@users.sourceforge.net


svn path=/trunk/; revision=14412
2005-04-01 09:54:56 +00:00
Magnus Olsen
0cd3294365 Swedish translation
Andreas Bjerkeholt
harteex@gmail.com,

proofread by 
David Nordenberg 
dnordenberg@users.sourceforge.net


svn path=/trunk/; revision=14411
2005-04-01 09:38:01 +00:00
Magnus Olsen
ed14a2c656 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14410
2005-04-01 09:10:32 +00:00
Magnus Olsen
6edcaa7b93 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net  
with some help from Andreas

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,





svn path=/trunk/; revision=14409
2005-04-01 09:06:13 +00:00
Magnus Olsen
ca512a7b11 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14408
2005-04-01 09:03:09 +00:00
Magnus Olsen
ce23c3c042 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14407
2005-04-01 08:56:53 +00:00
Magnus Olsen
8cd95a438b * David Nordenberg: fixed minor things in swedish translation
dnordenberg@users.sourceforge.net

svn path=/trunk/; revision=14406
2005-04-01 08:54:01 +00:00
Magnus Olsen
5696ea2bc9 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,



svn path=/trunk/; revision=14405
2005-04-01 08:51:57 +00:00
Steven Edwards
a9bcd9387d moved this to the wrong folder
svn path=/trunk/; revision=14404
2005-04-01 05:12:15 +00:00
Steven Edwards
fd0f414659 move some SDK headers to the SDK, convert filenames and include statements to lowercase as everything else is in lowercase
svn path=/trunk/; revision=14403
2005-04-01 05:04:40 +00:00
Gunnar Dalsnes
0b60acbc3c -move ppb from ntdll to rtl
smapiexec.c: free ppb on failure. resume thread (RtlCreateUserProcess is supposed to create the thread suspended)

svn path=/trunk/; revision=14402
2005-04-01 00:39:52 +00:00
Art Yerkes
8a147bd7bb PowerPC also uses 4k pages.
svn path=/trunk/; revision=14401
2005-04-01 00:30:29 +00:00
Art Yerkes
0699457c1d PowerPC architecture files. Few Mach function are implemented.
The biggest things to note here:
1) We have to probe the pci bridge to find out the amount of available
memory on older macs.  We use the base model boot-time assumption that
linux uses and leave it till later to find our max memory.
2) Open firmware proxy functionality is divided in two parts.  FreeLDR
is responsible for providing data to and getting it from Open firmware
in big-endian format in memory.  The ofproxy function itself is
responsible for shifting the arguments and calling the target big endian
function.  The good thing here is that we share open firmware functions
between the xcoff part and FreeLDR.

svn path=/trunk/; revision=14400
2005-04-01 00:22:30 +00:00
Steven Edwards
346e718bc8 Some cleanup of crt.a feel free to remove header duplication and use 'precomp.h' in more places to speed build times
svn path=/trunk/; revision=14399
2005-04-01 00:20:29 +00:00
Art Yerkes
3a1a462a26 Powerpc math header.
svn path=/trunk/; revision=14398
2005-04-01 00:17:10 +00:00
Art Yerkes
c0212e2720 Changes to use stdarg rather than assume that arguments are on the stack
and in the correct order.  Tested on i386 and powerpc.

svn path=/trunk/; revision=14397
2005-04-01 00:15:04 +00:00
Gunnar Dalsnes
7df5d3e7e1 mmfuncs.h: add MmGetSystemAddressForMdlSafe/MmMapLockedPagesSpecifyCache defs.
matherr.c: remove _exception struct since its already in math.h
path: simply file exsitence check
iomgr: simplify/use standard generic file mappings flags
misc.

svn path=/trunk/; revision=14396
2005-04-01 00:04:15 +00:00
Steven Edwards
5b6820630a remove these control panels, they never worked
svn path=/trunk/; revision=14395
2005-03-31 22:40:23 +00:00
Steven Edwards
bf30d232a0 add a inline strupr for us Unix folk
svn path=/branches/xmlbuildsystem/; revision=14394
2005-03-31 19:54:03 +00:00
Hervé Poussineau
eeabdc3329 Add OBJ_KERNEL_HANDLE value
svn path=/trunk/; revision=14393
2005-03-31 19:33:50 +00:00
Gregor Anich
3d737b9d74 Fix little bug.
svn path=/trunk/; revision=14392
2005-03-31 18:26:31 +00:00
Gregor Anich
91203bfc8d * Move the KdbEntryCount (check for exception inside KDB) into the critical section to prevent KDB from not handling simultaneous exceptions correctly.
* Flush input when KDB is entered.
* Detect if terminal is connected and filter out escape sequences if no terminal is present.

svn path=/trunk/; revision=14389
2005-03-31 16:08:09 +00:00
Thomas Bluemel
97db1efac1 don't bugcheck on object type mismatch in PsLookupCidHandle
svn path=/trunk/; revision=14388
2005-03-31 14:23:11 +00:00
Alex Ionescu
fd13cf7e83 Clean up catch.c
svn path=/trunk/; revision=14387
2005-03-31 13:52:49 +00:00
Art Yerkes
8df3d41437 Added boot carrier for freeldr. I'm at the point where I need to do
something about the mac disklabel, because freeldr is trying to read
a PC partition table.  I'll need to sleep on it a bit.

svn path=/trunk/; revision=14386
2005-03-31 09:30:29 +00:00
Gé van Geldorp
4fa9438b7a Xen-specific memory setup for FreeLdr
svn path=/branches/xen/; revision=14385
2005-03-30 22:04:56 +00:00
Thomas Bluemel
1d13fa9747 initialize variables
svn path=/trunk/; revision=14384
2005-03-30 20:19:47 +00:00
Alex Ionescu
6f4ae1108e Return status on failure.
svn path=/trunk/; revision=14383
2005-03-30 00:44:52 +00:00
Alex Ionescu
4069692f64 Add SEH...thanks to Hardon for noticing the bugs
svn path=/trunk/; revision=14382
2005-03-30 00:32:38 +00:00
Thomas Bluemel
c1442ae332 - added stub for PoQueueShutdownWorkItem required by XP's ntfs.sys
- added stubs for KeAcquireInStackQueuedSpinLock and KeReleaseInStackQueuedSpinLock

svn path=/trunk/; revision=14381
2005-03-29 17:29:02 +00:00
Thomas Bluemel
9ad486dd0a - ported RtlVerifyVersionInfo from wine
- moved version functions in kernel32 into their own file

svn path=/trunk/; revision=14380
2005-03-29 15:22:44 +00:00
Thomas Bluemel
911b9d27ae move chkstk.s from ntdll to rtl because _alloca_probe needs to be exported by ntoskrnl as well
svn path=/trunk/; revision=14379
2005-03-29 14:27:46 +00:00
Thomas Bluemel
7c238e511f implemented RtlValidateUnicodeString, thanks to "mephistopheles" for providing some pseudeo code
svn path=/trunk/; revision=14378
2005-03-29 02:09:42 +00:00
Magnus Olsen
dea5b1d43f Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,

steven : Will commit it to wine also 

svn path=/trunk/; revision=14377
2005-03-28 19:29:59 +00:00
Magnus Olsen
0c492c87b9 Swedish translation
David Nordenberg 
dnordenberg@users.sourceforge.net

proofread by 
Andreas Bjerkeholt
harteex@gmail.com,

changes only for swedish user
steven : Will commit it to wine also 
IDD_TBCUSTOMIZE, LTEXT "Knappar i..." changed width to 85

svn path=/trunk/; revision=14376
2005-03-28 19:25:02 +00:00
Magnus Olsen
29937a5a8c Swedish translation
Andreas Bjerkeholt
harteex@gmail.com,

proofread by 
David Nordenberg 
dnordenberg@users.sourceforge.net


svn path=/trunk/; revision=14375
2005-03-28 19:03:06 +00:00
Magnus Olsen
f9764318f4 New driver ico from Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14374
2005-03-28 18:52:52 +00:00
Hartmut Birr
7189768d70 - Used different overlapped structures for read and write operations on the server side.
- Check for pending i/o requests.

svn path=/trunk/; revision=14373
2005-03-28 18:47:19 +00:00
Hartmut Birr
a48a01798c - Put the wait entry into the DriverContext of the irp instead to allocated it from pool.
- Lock the data list on both ends of the pipe, if we disconnect the pipe.    
- Implemented a read and a write event on each end of the pipe.  
- Implemented a list for read requests to deliver the requests in the correct sequence.  
- Do not end a read request if the pipe was connected and if the buffer wasn't filled completely.

svn path=/trunk/; revision=14372
2005-03-28 18:42:53 +00:00
Alex Ionescu
9b5646acd0 Make w3seek happy. Setting OPTIMIZE=yes as en enviro-var (do NOT add to config) will force optimizations for debug builds too (not recommended). Previous commit was a mistake.
svn path=/trunk/; revision=14371
2005-03-28 18:37:39 +00:00
Magnus Olsen
a57d7a6f93 remove res
svn path=/trunk/; revision=14370
2005-03-28 18:12:31 +00:00
Magnus Olsen
16b0e06b8f Remove the exteran icon file as request from
GvG and other. for the maintain betwin reactos and wine
should be more easy. The new icon from MF are now instead embeded in th shres.rc 

svn path=/trunk/; revision=14369
2005-03-28 18:10:32 +00:00
Alex Ionescu
ea49ca93dd Make w3seek happy. Setting OPTIMIZE=yes as en enviro-var (do NOT add to config) will force optimizations for debug builds too (not recommended)
svn path=/trunk/; revision=14368
2005-03-28 17:27:20 +00:00
Thomas Bluemel
e7986f168f fix warning on optimized builds
svn path=/trunk/; revision=14367
2005-03-28 17:25:19 +00:00
Magnus Olsen
903225f24e did foget the icon form mf
svn path=/trunk/; revision=14366
2005-03-28 16:51:23 +00:00
Magnus Olsen
4d27307543 New ico from Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14365
2005-03-28 16:47:33 +00:00
Thomas Bluemel
713139d9ea release the adapter lock after queuing a work item for the request in ProRequet()
svn path=/trunk/; revision=14364
2005-03-28 16:04:18 +00:00
Thomas Bluemel
d295d5da57 release the dispatcher lock in KeReleaseMutant before raising an exception and handle the exception in NtReleaseMutant
svn path=/trunk/; revision=14363
2005-03-28 15:17:54 +00:00
Martin Fuchs
f3fc2ca494 enable multiline tooltips
svn path=/trunk/; revision=14362
2005-03-28 10:56:29 +00:00
Martin Fuchs
9b8f8ea446 launch all registered Shell Service Objects (Systray, network icons, ...)
svn path=/trunk/; revision=14361
2005-03-28 09:16:50 +00:00
Art Yerkes
f9a85ac5fb Make sure that the socket structure list does't accumulate duplicates.
svn path=/trunk/; revision=14360
2005-03-28 02:50:23 +00:00
Klemens Friedl
8030aa9a2c change the icon file
svn path=/trunk/; revision=14359
2005-03-27 21:34:41 +00:00
Klemens Friedl
fe96ab9edf change the icon file
svn path=/trunk/; revision=14358
2005-03-27 21:32:35 +00:00
Martin Fuchs
628501e0ac New ReactOS and start menu icons by Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14357
2005-03-27 20:46:17 +00:00
Klemens Friedl
bcfaaaf65b Remove the icon files, greatlrd add these icons (from Mindflyer) already to an other folder.
svn path=/trunk/; revision=14356
2005-03-27 20:12:36 +00:00
Klemens Friedl
0607c67b68 Remove all hardcode english phrases from the source code and add the phrases to the resource file.
svn path=/trunk/; revision=14355
2005-03-27 20:01:18 +00:00
Martin Fuchs
03a5f16ed9 - make Shell Hook Messages really work in Windows
- comments for SHELL32's RegisterShellHook()

svn path=/trunk/; revision=14354
2005-03-27 19:57:26 +00:00
Magnus Olsen
0baf2d03b1 New ico from Mindflyer <mf@mufunyo.net>
Swedish translation of explorer By
David Nordenberg dnordenberg@users.sourceforge.net

svn path=/trunk/; revision=14353
2005-03-27 19:57:20 +00:00
Magnus Olsen
761a68acf7 New ico from Mindflyer <mf@mufunyo.net>
svn path=/trunk/; revision=14352
2005-03-27 19:50:50 +00:00
Martin Fuchs
154128c1a0 launch shell DDE server
svn path=/trunk/; revision=14351
2005-03-27 18:13:43 +00:00
Martin Fuchs
cd0596ffa4 hide login screen to make the login on XP faster
svn path=/trunk/; revision=14350
2005-03-27 16:32:06 +00:00
Filip Navara
742ddb108f Fix memory leak I introduced in revision 14343 and fix buffer size calculation to save 4 bytes.
svn path=/trunk/; revision=14349
2005-03-27 13:03:30 +00:00
Eric Kohl
f39737088b Added handling of unsigned type. Patch by Jacek Caban (from WINE).
svn path=/trunk/; revision=14348
2005-03-27 13:02:06 +00:00
Hervé Poussineau
577b88645b Saveliy Tretiakov <saveliyt@mail.ru>
- Implement ClearCommError
- Correct badly implemented apis: ClearCommBreak, EscapeCommFunction, GetCommMask, GetCommModemStatus, GetCommState, GetCommTimeouts, PurgeComm, SetCommBreak, SetCommMask, SetCommTimeouts, SetCommState, SetupComm, TransmitCommChar, WaitCommEvent

svn path=/trunk/; revision=14346
2005-03-27 12:03:59 +00:00
Hervé Poussineau
fce0440b32 Fix handling of input and output buffers
svn path=/trunk/; revision=14345
2005-03-27 11:14:30 +00:00
Hervé Poussineau
f0e7b26df9 Mark Junker <mjscod@gmx.de>
Don't detect a 16550A UART if it is a 16550.

svn path=/trunk/; revision=14344
2005-03-27 11:13:25 +00:00
Filip Navara
5f113d7735 Correct DLL loading order and honour the LOAD_WITH_ALTERED_SEARCH_PATH flag.
svn path=/trunk/; revision=14343
2005-03-27 11:00:41 +00:00
Filip Navara
e332bc75f9 - Rewrite NtUserGetUpdateRect. It should return TRUE when the window needs to be pained, not only when the client update rect is non-empty.
- Return TRUE for windows with pending WM_NCPAINT message in IntIsWindowDirty.

svn path=/trunk/; revision=14342
2005-03-27 08:29:25 +00:00
KJK::Hyperion
212b767a54 Implemented PSEH wrapper for native compiler SEH. Changed copyright years
svn path=/trunk/; revision=14341
2005-03-27 01:57:26 +00:00
KJK::Hyperion
0a9a6b6359 Forgot to implement _SEH2_LEAVE. Also added some _SEH2 aliases to clean any possible ambiguity
svn path=/trunk/; revision=14340
2005-03-27 00:53:15 +00:00
KJK::Hyperion
4d4ec75256 _SEH2_HANDLE as a short-hand for _SEH2_EXCEPT(_SEH_STATIC_FILTER(_SEH_EXECUTE_HANDLER))
svn path=/trunk/; revision=14339
2005-03-27 00:44:53 +00:00
KJK::Hyperion
fde9c768e4 New syntax for PSEH. UNTESTED, any takers? It can be used like this:
_SEH2_TRY
{
 // Code that might raise an exception
}
_SEH2_EXCEPT(FilterFunc)
{
 // Handle the exception
}
_SEH2_END;

or like this:

_SEH2_TRY
{
 // Code that might raise an exception
}
_SEH2_FINALLY(UnwindFunc)
_SEH2_END;

or even like this (but PLEASE forget I said it):

_SEH2_TRY
{
 // Code that might raise an exception
}
_SEH2_EXCEPT(FilterFunc)
{
 // Handle the exception
}
_SEH2_FINALLY(UnwindFunc)
_SEH2_END;

_SEH2_TRY
{
 // Code that might raise an exception
}
_SEH2_END;

svn path=/trunk/; revision=14338
2005-03-27 00:41:31 +00:00
Emanuele Aliberti
b0c5a68699 Some stubbing and some stack sizes in exported symbols.
svn path=/trunk/; revision=14337
2005-03-26 22:10:04 +00:00
Filip Navara
5b1f9c5705 Fix return value of SwitchToThread.
svn path=/trunk/; revision=14336
2005-03-26 21:16:42 +00:00
Hartmut Birr
b4e10fa87d - Fixed the wrong check for KMUTEX objects in KeRundownThread.
- Fixed the endless loop in KeRundownThread.

svn path=/trunk/; revision=14335
2005-03-26 20:14:06 +00:00
Emanuele Aliberti
a24101498d Exported symbol list updated to 5.1-SP2
svn path=/trunk/; revision=14334
2005-03-26 17:52:32 +00:00
Magnus Olsen
3210fa3a76 Fix some more bugs thanks to Tribes.
Now the mouse y cordinate works fine
Set right timestap on the event. 
Remove time delay on 50ms 
new code for 50ms event calction.

Todo
why does the Tribes get wrong x,y cordinate.
why does the mouse limit area setup are wrong.




svn path=/trunk/; revision=14333
2005-03-26 16:41:45 +00:00
Magnus Olsen
24a420afcf Fix a small bug I introdues and fix a old bug for tribes
svn path=/trunk/; revision=14330
2005-03-26 11:58:43 +00:00
Magnus Olsen
cb6b20b96e more bugfix for Tribes
but still choppy mouse but not equal as last time

svn path=/trunk/; revision=14329
2005-03-26 11:16:14 +00:00
Art Yerkes
614603eeb9 Added tools needed to build the ppc boot program.
svn path=/trunk/; revision=14328
2005-03-26 10:19:48 +00:00
Magnus Olsen
fdd9078191 Fix some bugs for Tirbes in GetDeivceData
remove to call for geting mouse data. That
are not need it. rest are bugs fix for Tirbes.

Left Todo
The mouse are bit choppy. The mouse area you 
can move the mouse are not being set up right.

svn path=/trunk/; revision=14327
2005-03-26 09:38:23 +00:00
Thomas Bluemel
00018abc54 always wake waiting threads when releasing the last recursion
svn path=/trunk/; revision=14326
2005-03-26 00:10:34 +00:00
Hervé Poussineau
f51f04e53e Implement IntChangeDisplaySettings in a crappy way. Feel free to improve it!
svn path=/trunk/; revision=14325
2005-03-25 23:23:35 +00:00
Hervé Poussineau
554ba464bc Call ChangeDisplaySettingsEx.
We need to implement a test phase to verify that new settings are correct.

svn path=/trunk/; revision=14324
2005-03-25 23:21:00 +00:00
Thomas Bluemel
f14bd21382 grant correct access rights when duplicating a handle
svn path=/trunk/; revision=14323
2005-03-25 23:11:20 +00:00
Thomas Bluemel
2cf86ba40d minor optimization fix for single linked lists
svn path=/trunk/; revision=14322
2005-03-25 22:53:57 +00:00
Casper Hornstrup
a4ca6d5949 Always overwrite output file
svn path=/branches/xmlbuildsystem/; revision=14321
2005-03-25 22:40:56 +00:00
Eric Kohl
63fa5da683 Generate code without L-value casts. Fix remaining issues.
svn path=/trunk/; revision=14320
2005-03-25 21:29:11 +00:00
Royce Mitchell III
8ac9a09484 patch by Filip Navara:
IopCreateDeviceNode should allocate from NonPagedPool, not PagedPool... (the memory is accessed at DISPATCH_LEVEL)

svn path=/trunk/; revision=14319
2005-03-25 19:34:26 +00:00
Casper Hornstrup
fa082a4797 Build template HAL
svn path=/branches/xmlbuildsystem/; revision=14318
2005-03-25 19:28:55 +00:00
Casper Hornstrup
f94bae987b Add missing files
svn path=/branches/xmlbuildsystem/; revision=14317
2005-03-25 18:48:51 +00:00
Thomas Bluemel
71cda6ad2a only return the token handle if creating it succeeded
svn path=/trunk/; revision=14316
2005-03-25 18:13:31 +00:00
Royce Mitchell III
c122f61bfc reorder GenerateRules() to get rid of unnecessary if()
svn path=/branches/xmlbuildsystem/; revision=14315
2005-03-25 17:08:30 +00:00
Casper Hornstrup
b184fdc029 Output rules for objectlibrary files
svn path=/branches/xmlbuildsystem/; revision=14314
2005-03-25 16:32:46 +00:00
Filip Navara
e11896f814 Fix a typo.
svn path=/trunk/; revision=14313
2005-03-25 15:48:03 +00:00
Casper Hornstrup
55b0952903 Revert part of previous change
svn path=/branches/xmlbuildsystem/; revision=14312
2005-03-25 14:37:08 +00:00
Casper Hornstrup
3756253ddf Generate object macros before target macros
svn path=/branches/xmlbuildsystem/; revision=14311
2005-03-25 14:31:00 +00:00
Hartmut Birr
2b55bc2731 - Implemented NpfsCleanup.
- Moved most of the code from NpfsClose to NpfsCleanup.  
- If a pipe handle is closed, remove the fcb from the wait list and cancel a connecting irp if one is waiting.

svn path=/trunk/; revision=14310
2005-03-25 13:40:33 +00:00
Casper Hornstrup
4aa22b18ad Enable rbuild_test again
svn path=/branches/xmlbuildsystem/; revision=14309
2005-03-25 13:02:35 +00:00
Filip Navara
a106e5c2e0 Fix uninitialized variable warnings.
svn path=/trunk/; revision=14308
2005-03-25 12:00:56 +00:00
Hartmut Birr
0341276444 Reverted my last changes which allows to read from a listening pipe.
svn path=/trunk/; revision=14307
2005-03-25 11:45:48 +00:00
Hartmut Birr
bb8e4bcd9e Fixed the return value and last error in ConnectNamedPipe if a overlapped structure is given.
svn path=/trunk/; revision=14306
2005-03-25 11:25:44 +00:00
Hartmut Birr
79d1ef572c Added a missing unlock.
svn path=/trunk/; revision=14305
2005-03-25 11:05:10 +00:00
Gé van Geldorp
6ae3144d82 Get rid of linker warnings
svn path=/branches/xen/; revision=14304
2005-03-25 08:31:43 +00:00
Gé van Geldorp
f06c6c8ee3 Filip pointed out we can change a compiler option instead of messing around
with the source

svn path=/branches/xen/; revision=14303
2005-03-25 08:26:11 +00:00
Gé van Geldorp
3b8c3498cf Build freeldr as elf executable, initial Xen support
svn path=/branches/xen/; revision=14302
2005-03-24 15:53:13 +00:00
Gé van Geldorp
6d42a99908 Import trunk
svn path=/branches/xen/; revision=14301
2005-03-24 15:41:06 +00:00
Gé van Geldorp
04b09ec080 Start Xen branch
svn path=/branches/xen/; revision=14300
2005-03-24 15:38:38 +00:00
Filip Navara
97ae5f94b5 Fix compilation.
svn path=/trunk/; revision=14299
2005-03-24 13:17:23 +00:00
Art Yerkes
0ecfffa8a0 This is change 1 of 2.
AddIPAddress and DeleteIPAddress are now implemented all the way down.
Next we need the dhcp service live enough to assign the address from userland,
then we can remove the IP address setting from the kernel.

svn path=/trunk/; revision=14298
2005-03-24 10:46:52 +00:00
Hervé Poussineau
632a47580b - Add synchronization on input and output buffers
- Respect timeouts on IRP_MJ_READ
- Get right buffer in read/write routines

svn path=/trunk/; revision=14297
2005-03-24 07:50:41 +00:00
Hartmut Birr
974ee62e85 - Guarded the calls to IoSetCancelRoutine with IoAcquireCancelSpinLock/IoReleaseCancelSpinLock.
- Used a fastmutex as lock for the data queue.  
- Used paged pool for the data buffers.  
- Allowed the server to read (and to wait) on a listening pipe.  
- Implemented the non blocking read operations.

svn path=/trunk/; revision=14296
2005-03-23 22:11:20 +00:00
Hartmut Birr
7889b35088 Set the share disposition of an interrupt according to the value from the resource.
svn path=/trunk/; revision=14295
2005-03-23 21:51:40 +00:00
Emanuele Aliberti
b929be435f old Win9x drivers subsystem id
svn path=/trunk/; revision=14294
2005-03-23 21:51:08 +00:00
Hervé Poussineau
2a60fd0675 SUBLANG_NEUTRAL -> SUBLANG_ENGLISH_US because ReactOS searches for english/US if no more suitable langage is found
svn path=/trunk/; revision=14293
2005-03-23 21:06:02 +00:00
Hartmut Birr
1821eebb12 Fixed the calling convention of the cancel routine.
svn path=/trunk/; revision=14292
2005-03-23 19:05:42 +00:00
Thomas Bluemel
8e6267fd39 revert my changes
svn path=/trunk/; revision=14275
2005-03-23 13:26:38 +00:00
Emanuele Aliberti
58042e8e21 updated an absolete comment
svn path=/trunk/; revision=14274
2005-03-22 23:34:08 +00:00
Hervé Poussineau
64574d47b1 - Implement IOCTL_SERIAL_GET_COMMSTATUS, IOCTL_SERIAL_PURGE, IOCTL_SET_QUEUE_SIZE
- Add a hack in IOCTL_SERIAL_GET_BAUD_RATE to get it working with mode.exe

svn path=/trunk/; revision=14273
2005-03-22 22:10:44 +00:00
Hervé Poussineau
c75445a9d4 Christoph von Wittich <Christoph@ApiViewer.de>
- Extract hard-coded english sentences from settings.c and put them into resources
- Add corresponding german translations
- Correct some control locations in german and english resource files
- Show only resolutions >= 640x480

svn path=/trunk/; revision=14271
2005-03-22 20:16:41 +00:00
Gé van Geldorp
59904f6ca5 Forgotten file in r13928
svn path=/trunk/; revision=14270
2005-03-22 19:32:17 +00:00
Thomas Bluemel
7a236ead2e forgot this file
svn path=/trunk/; revision=14269
2005-03-22 17:46:44 +00:00
Thomas Bluemel
8d780ebc45 fixed a few race conditions during thread/process termination leading to dead-locks
svn path=/trunk/; revision=14268
2005-03-22 17:32:15 +00:00
Thomas Bluemel
c0b7a5108d improve readability by removing obsolete gotos and for loops where appropriate
svn path=/trunk/; revision=14267
2005-03-22 17:17:02 +00:00
Royce Mitchell III
810c5e38ec forgot this file
svn path=/branches/xmlbuildsystem/; revision=14266
2005-03-22 07:29:02 +00:00
Royce Mitchell III
8102c0deae eliminate rmkdir and generate directory dependencies the right way.
treat ROS_TEMPORARY, ROS_INTERMEDIATE, and ROS_OUTPUT as potential different directories.
major refactor of mingw backend to simplify things, and fix some output bugs, as well as reduce makefile.auto size a bit.
create all macros before we start writing rules ( create all target macros before any other ), this fixes bug with macros being empty because they're used before they're defined

svn path=/branches/xmlbuildsystem/; revision=14265
2005-03-22 07:25:53 +00:00
Alex Ionescu
2700763b70 Fix really really big Mutex/APC bug. Killing GUI Threads from taskmanager should now work flawlessly, and gui apps should work better; the bug had probably tiny important impact in them
svn path=/trunk/; revision=14264
2005-03-22 03:06:03 +00:00
Thomas Bluemel
efa9275d99 forgot to remove debug messages
svn path=/trunk/; revision=14263
2005-03-22 03:05:46 +00:00
Thomas Bluemel
ef30b93924 silence obsolete debug message
svn path=/trunk/; revision=14262
2005-03-22 02:35:54 +00:00
Thomas Bluemel
a642687b55 fixed thread/process termination bugs that might have caused crashes. due to a apc bug gui threads terminating gui threads doesn't work. Alex is going to take care of it.
svn path=/trunk/; revision=14261
2005-03-22 02:32:14 +00:00
Hervé Poussineau
fe8ad2a13b Sylvain Petreolle <spetreolle@yahoo.fr>
- Translate sysdm.cpl into french
- Fix misplaced icons and text boxes
- Add default values into network identification

svn path=/trunk/; revision=14260
2005-03-21 23:37:02 +00:00
Aleksey Bragin
9cc07a82a9 Nice "About Explorer" icon, by Mindflyer.
svn path=/trunk/; revision=14259
2005-03-21 22:10:10 +00:00
Hervé Poussineau
725a3c2f57 Change REG_MULTI_SZ entry values to readable form.
svn path=/trunk/; revision=14258
2005-03-21 22:07:06 +00:00
Filip Navara
8c984877c4 Move the process object dereference from NtTerminateProcess to PspExitProcess (comments inside).
svn path=/trunk/; revision=14257
2005-03-21 21:33:31 +00:00
Filip Navara
49b1d66ec3 - Advance the CurrentEntry pointer before terminating thread in PspTerminateProcessThreads.
- Lock the process in NtTerminateProcess to prevent race conditions.

svn path=/trunk/; revision=14256
2005-03-21 20:11:52 +00:00
Gunnar Dalsnes
561b4db8e9 readd incorrectly removed access mapping
svn path=/trunk/; revision=14255
2005-03-21 17:13:55 +00:00
Gunnar Dalsnes
4dcc066ed7 CopyAcceleratorTableA: dont access lpAccelDst it its NULL (w3seek)
svn path=/trunk/; revision=14254
2005-03-21 17:11:48 +00:00
Gregor Anich
0ac49e9d42 Use a work item only for calling KdSystemDebugControl with code 10 (which is Tab + K, or "Enter Kernel Debugger") because sometimes when the system crashes work items do not work anymore. Thanks to Filip for pointing out the problem.
svn path=/trunk/; revision=14253
2005-03-21 17:09:06 +00:00
Hervé Poussineau
160084df80 Based on work by Saveliy Tretiakov (saveliyt@mail.ru)
Implement IOCTL_SERIAL_GET_PROPERTIES

svn path=/trunk/; revision=14252
2005-03-21 12:41:54 +00:00
Hervé Poussineau
28a24e8079 - Implement GetCommProperties (Saveliy Tretiakov <saveliyt@mail.ru>)
- Remove a test in GetCommState that shouldn't exist

svn path=/trunk/; revision=14251
2005-03-21 10:32:15 +00:00
Filip Navara
e5d49d1493 Fix a typo in write_function_stubs.
svn path=/trunk/; revision=14250
2005-03-21 08:43:01 +00:00
Filip Navara
07647a0b62 Specify correct access rights in NtOpenProcess when sending control events.
svn path=/trunk/; revision=14249
2005-03-21 08:32:22 +00:00
Filip Navara
fd19aa00e6 Correctly draw the titlebar as active or inactive during the processing of WM_NCACTIVATE message.
svn path=/trunk/; revision=14248
2005-03-21 01:59:21 +00:00
Filip Navara
2315100314 - Cleanup DefWndDoButton function.
- Fix some loops where GetMessage was inadvertently used.

svn path=/trunk/; revision=14247
2005-03-21 01:34:02 +00:00
Filip Navara
3a6ab460dd - Move WINDOWOBJECT_NEED_INTERNALPAINT flag handling to NtGdiBeginPaint.
- Fix IntGetPaintMessage to not return TRUE when no message was returned.
- IntIsWindowDirty shouldn't check for the WINDOWOBJECT_NEED_NCPAINT flag (at least not now).

svn path=/trunk/; revision=14246
2005-03-21 00:55:16 +00:00
Emanuele Aliberti
b1367292b1 cleaned a wrong comment (copy&paste)
svn path=/trunk/; revision=14245
2005-03-20 23:01:48 +00:00
Emanuele Aliberti
a90ec8327c SM: init system reading the registry
CSR: register with SM for IMAGE_SUBSYSTEM_WINDOWS_CUI

svn path=/trunk/; revision=14244
2005-03-20 22:55:05 +00:00
Casper Hornstrup
297bfe4644 Test module type support
svn path=/branches/xmlbuildsystem/; revision=14241
2005-03-20 21:58:30 +00:00
Filip Navara
8b0ad6b22f Minor correction to my r14237 commit. Forgot to delete "++".
svn path=/trunk/; revision=14239
2005-03-20 21:44:58 +00:00
Filip Navara
a9c2167a20 Reorder the source file lists so we, lousy people, building with DEPENDENCIES=no can also enjoy the blessing of the PnP gods.
svn path=/trunk/; revision=14238
2005-03-20 21:40:00 +00:00
Filip Navara
17a549a975 Generate code without L-value casts.
svn path=/trunk/; revision=14237
2005-03-20 21:35:12 +00:00
Thomas Bluemel
86a52339fb revert changes from CreateFileA
svn path=/trunk/; revision=14236
2005-03-20 20:46:16 +00:00
Eric Kohl
b718e3cc4e - Add stubs: CM_GetChild, CM_GetChild_Ex, CM_GetParent, CM_GetPaarent_Ex, CM_GetSibling, CM_GetSibling_Ex, CM_Locate_DevNodeA, CM_Locate_DevNodeW, CM_Locate_DevNode_ExA, CM_Locate_DevNode_ExW
- Implement:  CM_GetVersion, CM_GetVersion_Ex, CM_Connect_MachineA, CM_Connect_MachineW, CM_Disconnect_Machine.
- Implement RPC server in umpnpmgr.dll to reply to calls to CM_GetVersion/CM_GetVersion_Ex.

svn path=/trunk/; revision=14235
2005-03-20 20:43:46 +00:00
Filip Navara
a0da8855ea There's no need to call PropertySheet twice.
svn path=/trunk/; revision=14234
2005-03-20 20:28:19 +00:00
Thomas Bluemel
b407470ef1 added support for template directories (copy ntfs extended attributes) to CreateDirectoryEx()
svn path=/trunk/; revision=14233
2005-03-20 20:27:56 +00:00
Filip Navara
34484a48d9 Initialize the "toc" field in the pdb_lookup structure in order
to prevent pdb_free_lookup from trying to delete invalid pointers.

svn path=/trunk/; revision=14232
2005-03-20 19:11:52 +00:00
Thomas Bluemel
0f4cfdb301 - added support for template files (copy ntfs extended attributes) to CreateFile()
- mask out file flags from dwFlagsAndAttributes before passing them to NtCreateFile as file attributes

svn path=/trunk/; revision=14231
2005-03-20 18:55:54 +00:00
Filip Navara
b4d371d7d2 Don't use uninitialized variable in _SHExpandEnvironmentStrings.
svn path=/trunk/; revision=14230
2005-03-20 18:40:57 +00:00
Hervé Poussineau
e8ecbebd7d Based on work by Mark Junker <mjscod@gmx.de>
- Detect UART type
- Clear transmit/receive FIFO if applicable

svn path=/trunk/; revision=14229
2005-03-20 18:30:09 +00:00
Magnus Olsen
0936234d7d LPUNKNOWN pUnkOuter did check it was NULL and return
forget it should be not equal with NULL it return 
thx to mifritscher did the first test to find my mistake

svn path=/trunk/; revision=14228
2005-03-20 18:20:59 +00:00
Gunnar Dalsnes
124f38a790 GetBinaryTypeA, CopyFileExA, CreateFileA, DeleteFileA, MoveFileWithProgressA: Use common A2W conv. routines
svn path=/trunk/; revision=14227
2005-03-20 17:39:11 +00:00
Gunnar Dalsnes
de75c774c3 removed faulty FilenameA2U (returned ptr to stack var)
remove faulty init of StaticUnicodeString (now done in ntdll)

svn path=/trunk/; revision=14226
2005-03-20 17:26:58 +00:00
Magnus Olsen
08482c30b1 start add hardware interface to hal
we now map the hal to directdraw 

follow api are implement in the ddraw for hal
but all hal api are not implement in the kernel
if you got louky it maby working with nvida driver now. 

untested yet. 

svn path=/trunk/; revision=14225
2005-03-20 17:24:11 +00:00
Gunnar Dalsnes
bab510233f init StaticUnicodeString
svn path=/trunk/; revision=14224
2005-03-20 17:22:24 +00:00
Thomas Bluemel
de138c3bb4 - fixed access rights and shared access checks in IoSetShareAccess()
- remove obsolete checks in IoCheckShareAccess() and IoUpdateShareAccess() to simplify them

svn path=/trunk/; revision=14223
2005-03-20 15:54:22 +00:00
Thomas Bluemel
8b9646ca2a - only mask out the generic rights flags in RtlMapGenericMask()
- only deny access when requested rights can't be granted in IoCheckDesiredAccess()

svn path=/trunk/; revision=14222
2005-03-20 13:53:54 +00:00
Magnus Olsen
fb157f301a this waring break the head for me
pnp.c:141: warning: 'Affinity' might be used uninitialized in this function
{standard input}: Assembler messages:

initialized it with Affinity = 0;

svn path=/trunk/; revision=14221
2005-03-20 13:32:27 +00:00
Filip Navara
d73103f0f2 Fix a cut & paste error.
svn path=/trunk/; revision=14220
2005-03-20 13:10:57 +00:00
Filip Navara
2d8afa8978 Allow the lpTemplateDirectory parameter to be NULL in CreateDirectoryExA.
svn path=/trunk/; revision=14219
2005-03-20 13:10:11 +00:00
Eric Kohl
439e6fd789 Improve error messages.
Don't start counting the type_offset for each new fuction. It is a global offset.
Use only basic types in type- and proc-strings (e.g. unsigned long -> long).


svn path=/trunk/; revision=14218
2005-03-20 13:06:11 +00:00
Filip Navara
05bc884b35 - Rename bitblt.c to more generic bitmap.c.
- Normalize BITMAPINFO structure in CreateDIBSection before sending it to win32k.

svn path=/trunk/; revision=14217
2005-03-20 12:30:06 +00:00
Hervé Poussineau
abb9dfec3b Add legacy detection of COM3 and COM4
Be ready for PnP serial ports
Don't hardcode base addresses and irq twice

svn path=/trunk/; revision=14216
2005-03-20 12:15:51 +00:00
Hervé Poussineau
fcc7d2acc7 Implement IoReportDetectedDevice
svn path=/trunk/; revision=14215
2005-03-20 12:15:33 +00:00
Filip Navara
4cae592ec2 Fix nasty condition when we were subtracting AlignedAddress (which happened to be aligned to 0x80000000) from HighestAddress (which is MmSystemRangeStart - 1 == 0x7fffffff) and then using it for length comparsion.
svn path=/trunk/; revision=14214
2005-03-20 12:04:30 +00:00
Filip Navara
b0fb19733c Fix the AdjustTokenPrivileges call once more.
svn path=/trunk/; revision=14213
2005-03-20 11:35:39 +00:00
Thomas Bluemel
0e847f36a6 fixed AdjustTokenPrivileges() call
svn path=/trunk/; revision=14212
2005-03-20 11:22:50 +00:00
Magnus Olsen
a98111e50f Complete the dummy of HAL.
CreateDirectDraw and CreateDirectDrawEx
will return a pointer of ddraw object.
only hardware acclration support are being add.
noting real working yet. 

svn path=/trunk/; revision=14211
2005-03-20 09:58:10 +00:00
Hartmut Birr
f0e4451f31 Fixed the required access rights for formating a disk.
svn path=/trunk/; revision=14210
2005-03-20 09:46:13 +00:00
Filip Navara
572aa1faf4 Minor correction to NtAdjustPrivilegesToken to keep it from returning total junk.
svn path=/trunk/; revision=14209
2005-03-20 01:58:54 +00:00
Filip Navara
c29c8b9124 Revert the last change to device stack attaching.
svn path=/trunk/; revision=14208
2005-03-20 00:53:24 +00:00
Filip Navara
621ded7636 Attach the PDOs to device stack and report device unique IDs if available.
svn path=/trunk/; revision=14207
2005-03-20 00:33:36 +00:00
Magnus Olsen
e7f2044681 did forget these two file
svn path=/trunk/; revision=14206
2005-03-19 23:52:04 +00:00
Magnus Olsen
8b29e58251 update directx d3d and draw header to Wine-20050310
so the work on ddraw dll can continue. 



svn path=/trunk/; revision=14205
2005-03-19 23:47:52 +00:00
Filip Navara
edda3944bc Forgot to add this file in revision 14203.
svn path=/trunk/; revision=14204
2005-03-19 22:50:11 +00:00
Filip Navara
1e7a5224aa - Replace the ColorMap pointer in BITMAPOBJ with palette handle and
correctly free it when the bitmap is about to be destroyed. Also
  get rid of some palette leaks when DIBs were selected into device
  context.
- Refine GDI32 -> Win32k interface for creating and managing brushes.
  Remove NtGdiCreateBrushIndirect, NtGdiCreateDIBPatternBrush,
  NtGdiCreateDIBPatternBrushPt and NtGdiFixBrushOrgEx syscalls and
  add NtGdiCreateDIBBrush.
- Implement basic support for DIB pattern brushes.
- Add user mode helper routine for "normalizing" BITMAPINFO structure.
- Add definition for BITMAPV5HEADER.

svn path=/trunk/; revision=14203
2005-03-19 22:15:02 +00:00
Filip Navara
db3d786f03 Specify correct buffer size in GetPrivateProfileStringW calls.
svn path=/trunk/; revision=14202
2005-03-19 21:48:33 +00:00
Magnus Olsen
8da44c3750 add more code.
start create a protype of hal, that can be use also for
software emulation mode. 

svn path=/trunk/; revision=14201
2005-03-19 20:39:25 +00:00
Alex Ionescu
a04bad112d Oops
svn path=/trunk/; revision=14200
2005-03-19 20:29:19 +00:00
Alex Ionescu
396ff5690c Correct NtW32call to call correct kernel function, add placeholder for SEH, implement KeUserModeCallback (right now a copy of the old code). Part I of an incomplete W32Callback rewrite, just to set up the groundwork to make testing easier. Might look ugly/messy now but it'll be clean soon
svn path=/trunk/; revision=14199
2005-03-19 20:26:46 +00:00
Filip Navara
52a70e745d Fix indentation.
svn path=/trunk/; revision=14198
2005-03-19 19:52:36 +00:00
Thomas Bluemel
6c8fad94ac - correctly deny access to handles when rights requested can't be granted
- map generic rights correctly
- various fixes where handles with inappropriate access rights were created

svn path=/trunk/; revision=14197
2005-03-19 19:13:01 +00:00
Emanuele Aliberti
6f3c732b92 winsta.dll raw stubs
svn path=/trunk/; revision=14196
2005-03-19 18:31:14 +00:00
Magnus Olsen
9cb33ba90d geting update version of ddraw.h working with gdi32.h
thanks filip. 

svn path=/trunk/; revision=14195
2005-03-19 18:28:01 +00:00
Magnus Olsen
dd212d63c9 update the ddraw.h header ageinst Wine-20050310
so the work on ddraw dll can continue. 

this header file have been modify to geting reactos compile and add one struct and fix some protypes that was wrong.

svn path=/trunk/; revision=14194
2005-03-19 18:26:45 +00:00
Filip Navara
ee054cd0f4 Export the HOST variable even on Windows.
svn path=/trunk/; revision=14193
2005-03-19 17:22:02 +00:00
Aleksey Bragin
1ca3f8ce13 Fix a very small typo - "VfatFormat() done" to "VfatxFormat() done"
svn path=/trunk/; revision=14192
2005-03-19 17:11:15 +00:00
Magnus Olsen
229fed0315 lite more code.
nothing works yet. 
add some check see if the parama are right. 

svn path=/trunk/; revision=14191
2005-03-19 10:22:52 +00:00
Martin Fuchs
e24c42bb6b - unregister task manager window at termination
svn path=/trunk/; revision=14190
2005-03-19 09:37:46 +00:00
Martin Fuchs
cf95dc8b1b - remove old experimental shell hook code
svn path=/trunk/; revision=14189
2005-03-19 09:37:24 +00:00
Hartmut Birr
0692378689 Added two missing dereferencing calls in ObReferenceObjectByHandle.
Checked also for NtCurrentThread in NtDuplicateObject.  
Used the return value from InterlockedIncrement to check for a correct handle count.

svn path=/trunk/; revision=14188
2005-03-19 09:18:58 +00:00
Hartmut Birr
c2a04f5107 Added two missing dereferencing calls in NtTerminateThread.
svn path=/trunk/; revision=14187
2005-03-19 09:14:21 +00:00
Filip Navara
e54de54618 - Fix acpi_os_get_thread_id to return 1-based thread ids (instead of zero-based ones).
- Zero the owner_id field while initializing acpi_gbl_acpi_mutex_info.

svn path=/trunk/; revision=14186
2005-03-19 02:18:49 +00:00
Royce Mitchell III
8b3af26269 fix warning that is really a bug - from looking at the code, wDevID, is a UINT, not a UINT_16
svn path=/trunk/; revision=14185
2005-03-19 01:37:47 +00:00
Alex Ionescu
e389f0c999 Implement timer expiring too fast for KeDelayExecutionThread. Dedicated to filip
svn path=/trunk/; revision=14184
2005-03-18 23:26:44 +00:00
Martin Fuchs
0412c84cea register ourselved as task manager window to make the RegisterShellHookWindow() call working [thanks to Filip :)]
svn path=/trunk/; revision=14183
2005-03-18 23:00:54 +00:00
Martin Fuchs
a5b6da0234 cleanup of latest RegisterShellHookWindow() changes
svn path=/trunk/; revision=14182
2005-03-18 20:34:01 +00:00
Gunnar Dalsnes
846dc1aebe -remove incorrect handle count check when deleting files
-reformat code

svn path=/trunk/; revision=14181
2005-03-18 19:36:36 +00:00
Hervé Poussineau
f0bec76acd Fix a warning with some compilers about non-initialized variable.
This can't really happen in real execution, but let's be the compiler happy ;)

svn path=/trunk/; revision=14180
2005-03-18 19:00:48 +00:00
Hervé Poussineau
64944b49f7 Don't double-define STATUS_ARRAY_BOUNDS_EXCEEDED
svn path=/trunk/; revision=14179
2005-03-18 17:45:59 +00:00
Hervé Poussineau
301637bbde Implement partly IoReportResourceForDetection() and IoReportDetectedDevice(), just enough to support serial driver
svn path=/trunk/; revision=14178
2005-03-18 16:51:39 +00:00
Hervé Poussineau
08da4a07b0 Implement legacy detection (it should be able to detect the first two serial ports)
Implement reading by polling (expect lots of bugs!)
Use receive and send queues
Better handling of some IRPs
Lots of small bugs fixes

svn path=/trunk/; revision=14177
2005-03-18 16:01:35 +00:00
Thomas Bluemel
343e3f7bdc can't receive the cid from a KTHREAD structure, fixes compiling with debugging enabled
svn path=/trunk/; revision=14176
2005-03-18 13:52:21 +00:00
Alex Ionescu
c2c6049107 Update ETHREAD fields and termination port stucture to XP, and do necessary code changes. This makes reaping even faster. It's 2:30am, i hope there's no bugs ;-)
svn path=/trunk/; revision=14175
2005-03-18 07:19:30 +00:00
Alex Ionescu
eb54434d27 Thread/Process Termination/Repeaing Rewrite + Fixes
---------------------------------------------------

    - ps/cid.c: 
            * Moved CID Lookup functions here
            
    - ps/security.c: 
            * Moved all security related functions here. Makes other files neater and security functions
              easier to locate.
              
    - ps/thread.c: 
            * Moved most of the Thread Scheduling/Dispatching code that belongs in the Kernel to /ke and
              renamed functions from Ps to Ki.
            * Implemented PsIsSystemThread.
            * Removed Reaper Thread Init (now obsolete).
            * Renamed PiDeleteThread to PspDeleteThread.
            * Moved Thread State functions from tinfo.c to here.
            
    - ps/process.c:
            * Removed Query/Set Process functions and moved to ps/query.c
            * Renamed PiDeletePRocess to PspDeleteProcess
            * Removed obsoleted Process Termination functions, moved persistent one to kill.c
    
    - ps/create.c:
            * Moved the security APIs to security.c
            * Correctly implemented PsCreateSystemThread to actually create system threads.
        
            
    - ps/suspend.c
            * Rewrote Nt Executive functions to use Kernel functions.
            * Moved Ps* Routines into ke/kthread.c and fixed them. The implementation was wrong in
              some aspects, especially the issue of the APC looping around the KeWaitXxx call and the
              fact that the routines excluded/ignored the FreezeCount.
            
    - ps/debug.c
            * Fixed completely broken implementation of Get/SetThreadContext. The old version crashed
              when called and did not work at all. Suspend Regression test now works.
            * Moved Context<->TrapFrame functions to ke/i386/
            * Combined Set/GetThreadContext APCs into a single one, and used special context structure.
            
    - ps/query.c:
            * Moved Thread/Process Query/Set Routines here.
            
    - ps/tinfo.c:
            * Removed.
            
    - ps/kill.c
            * Removed complicated Process Termination semantics and useless Attach/Detach in favor for
              a much more lightweight function which performs the same tasks as before and actually works.
              TaskManager can now terminate foreign processes.
            * Rewrote Thread Reaping to use the HyperCritical Work Queue instead of manually controlled
              thread. This results in much less code as well as an increase in speed and less micro
              management. The reaper is PspReapRoutine. Closing CMD.EXE now works properly without
              requiring masks that were added as hacks to allow it.
            * Renamed PiTerminateProcessThreads to PspTerminateProcessThreads. Fixed it to work with new
              termination code.
            * Added PspDeleteProcess to handle Process Object deletion. Kills the CID Handle here as done
              by Hartmut.
            * Added PspDeletethread here.
            * Renamed and rewrote PsTerminateCurrentThread to PspExitThread. Used NT Implementation out-
              lined in Windows Internals, Chapter 13. Uses less locks, a more concise order of actions,
              actually parses the Termination Ports, handles Dbgk notification. Timers are now rundown,
              and Mutex rundown is in a dedicated Kernel function. Final termination handled by KeTerminate
              Thread as documented.
            * Renamed PsTerminateOtherThread to PspTerminateThreadByPointer and modified implementation to
              be compatible with the changes above.
            * Renamed and regrouped Process Termination into PspExitProcess. Also implemented as described
              above, and moved each subsystem specific termination helper into its own subsytem.
            * Improved NtTerminateProcess and added more debugging messages.
            * Improved NtTerminateThread and added check against System Thread and made it compatible with
              new implementation.
            * Corrected PsTerminateSystemThread now that we support System Threads.
            * Corrected NtRegisterThreadTerminatePort to use same structure name as on windows for the 
              port, and added tag to pool allocation (documented in pooltag.txt)
    
    include/internal/*.h:
    
            * Defined Scheduler Functions and misc new functions or renamed functions.
            
    ke/apc.c:
    
            * Fixed critical bug where APCs were not delivered at all if the thread wastion and cancels any timers that are associated
              to a thread, as well as their APCs and DPCs.
      
    REGRESSIONS FOUND: NONE
    
    BUGS/REGRESSIOSN FIXED:
                * Thread/Get Set Context now works.
                * Suspend Regression test now works.
                * Task manager can now kill foreign processes, even hung ones (like it should).
                * ExitProcess/closing cmd.exe with the 'x' button now works correctly without hacks.
      KNOWN ISSUES: I left a bit of a mess in the headers and some stuff still needs to be moved into the right 
                  places. I just wanted to have this first part ready first, so that it won't get too big.

svn path=/trunk/; revision=14174
2005-03-18 05:53:04 +00:00
Art Yerkes
604f4f13c1 Added simple dword OID query to lan.
Correct oper status, admin status and type settings in iinfo.
Small fixes in lan.c for adapter name.

svn path=/trunk/; revision=14173
2005-03-18 03:26:12 +00:00
Art Yerkes
59c145b801 Don't let sign extension mess us up here.
svn path=/trunk/; revision=14172
2005-03-18 02:56:29 +00:00
Filip Navara
e52a450d86 - Correctly initialize the standard handles for console-less applications.
- Simplify _isatty and fix it to not set the errno for "invalid" handles.

svn path=/trunk/; revision=14171
2005-03-18 02:10:50 +00:00
Steven Edwards
b4e1db6c92 Lined up Buttons.
Removed my broken attempt at understaind comboboxes.
Cleaned up WM_INITDIALOG.

svn path=/trunk/; revision=14170
2005-03-18 00:56:34 +00:00
Filip Navara
e995509c26 It's not exactly wise to call GetFileTime and CloseHandle with invalid handle, so don't do it.
svn path=/trunk/; revision=14169
2005-03-17 23:52:28 +00:00
Filip Navara
b8419654bd Don't try to release mutex with NULL handle. Also prevent releasing the same mutex twice.
svn path=/trunk/; revision=14168
2005-03-17 23:16:12 +00:00
Filip Navara
310a5bcfb7 Don't try to duplicate NULL handles.
svn path=/trunk/; revision=14167
2005-03-17 22:40:19 +00:00
Filip Navara
a384c6e670 (GDIOBJ_SetOwnership): Don't try to decrease the GDI object counter for global handles since they're not associated with process.
svn path=/trunk/; revision=14166
2005-03-17 22:00:19 +00:00
Magnus Olsen
02755a61f0 more stuff for ddraw.dll not tested yet.
svn path=/trunk/; revision=14165
2005-03-17 20:15:44 +00:00
Hartmut Birr
eabbaacd53 Don't close the handle if the write back does fail (in NtOpenProcessTokenEx).
svn path=/trunk/; revision=14164
2005-03-17 19:35:16 +00:00
Steven Edwards
fc4c441263 Dedicated to Alex.
I give to you "The ReactOS License Manager"

No its just a dummy dialog I wrote to learn how to make
Control Panel Applets. Please don't implement this.

svn path=/trunk/; revision=14163
2005-03-17 19:03:55 +00:00
Hartmut Birr
100f53e3ab - Moved the deleting of the process id from PiTerminateProcess to PiDeleteProcessWorker.
- Checked the status at the end of NtOpenProcessTokenEx.

svn path=/trunk/; revision=14162
2005-03-17 18:51:20 +00:00
Aleksey Bragin
a392c38668 One more assert added, but unfortunately it isn't triggered currently...
svn path=/trunk/; revision=14161
2005-03-17 16:09:12 +00:00
Filip Navara
f60f345d30 - Don't try to kill non-existing timers.
- Close dialog using EndDialog instead of DestroyWindow.

svn path=/trunk/; revision=14160
2005-03-17 13:17:05 +00:00
Filip Navara
643a182dd0 Now that CSRSS is getting unloaded we must unregister the primitive message queue when it's about to be destroyed.
svn path=/trunk/; revision=14159
2005-03-17 13:07:28 +00:00
Gunnar Dalsnes
cd4a8585a8 scanf: fix handling of %n token
svn path=/trunk/; revision=14157
2005-03-17 00:31:40 +00:00
Gunnar Dalsnes
9019d252be scanf: fix handling of %n token
svn path=/trunk/; revision=14154
2005-03-16 23:59:41 +00:00
Robert Kopferl
847aa89893 To do once more a little piece os2ss
svn path=/trunk/; revision=14153
2005-03-16 23:51:26 +00:00
Magnus Olsen
1020ee4805 add regsvr.c from wine as frist implement of ddraw.
so it can registrate it selv into the register. 

svn path=/trunk/; revision=14152
2005-03-16 23:23:44 +00:00
Magnus Olsen
c72257a26f small change to start to implement ddraw.dll
svn path=/trunk/; revision=14151
2005-03-16 23:21:00 +00:00
Magnus Olsen
d1274928bb small change to start to implement ddraw.dll
svn path=/trunk/; revision=14150
2005-03-16 23:17:33 +00:00
Gé van Geldorp
8753158ddb Add riched20.dll, msi.dll and msiexec.exe to bootcd
svn path=/trunk/; revision=14149
2005-03-16 22:52:55 +00:00
Hervé Poussineau
b6ef4c6ee6 Better NtUserEnumDisplayDevices stub
svn path=/trunk/; revision=14148
2005-03-16 22:27:47 +00:00
Hervé Poussineau
96b374677d Implement resolution and color depth selection.
Applying new settings doesn't work due to unimplemented NtUserChangeDisplaySettings

svn path=/trunk/; revision=14147
2005-03-16 22:19:12 +00:00
Gé van Geldorp
4dde3a1c21 Fix eol-style
svn path=/trunk/; revision=14146
2005-03-16 22:18:42 +00:00
Filip Navara
37c4d8279f Initialize the pGdiInfo->flRaster field to zero.
svn path=/trunk/; revision=14145
2005-03-16 21:28:21 +00:00
Klemens Friedl
c79360a933 Mindflyer, a.k.a. mf <mf@mufunyo.net>
alternative icon files
* mycomputer icon
* terminal icon

svn path=/trunk/; revision=14144
2005-03-16 21:18:33 +00:00
Filip Navara
baefc0115b Fix some logic in port management code.
svn path=/trunk/; revision=14143
2005-03-16 21:03:51 +00:00
Thomas Bluemel
d86736989a Rouven Wessling <rouven@rouvenwessling.de>:
calc:
- fixed spelling mistakes
ncpa, aclui:
- German translation

svn path=/trunk/; revision=14142
2005-03-16 20:36:02 +00:00
Filip Navara
11c6007bb9 Ulrich Czekalla <ulrich@codeweavers.com>
Set WS_EX_CONTROLPARENT when dialog has DS_CONTROL.
Mike McCormack <mike@codeweavers.com>
Strip WS_CAPTION and WS_SYSMENU for child dialogs.

svn path=/trunk/; revision=14141
2005-03-16 20:13:55 +00:00
Aleksey Bragin
31046fef6e Ivan Semenoff <ivans77@mail.ru>
Fixed a bug in RtlClearBits (asserting if startingindex+count is more than size, instead of silently continuing processing).

svn path=/trunk/; revision=14140
2005-03-16 19:27:45 +00:00
Hervé Poussineau
4d47498931 Saveliy Tretiakov <saveliyt@mail.ru>
- Only one file may be open on a port at any given time
- Implemented IOCTL_SERIAL_GET_STATS and IOCTL_SERIAL_CLEAR_STATS

svn path=/trunk/; revision=14139
2005-03-16 19:24:41 +00:00
Gé van Geldorp
ba0f1263e4 Reapply Wine-20050310 changes, this time with the changes
to the include files. Where's CIS when you need it :P

svn path=/trunk/; revision=14138
2005-03-16 17:30:11 +00:00
Gregor Anich
9577665661 Rename patch to binpatch in apps/utils
svn path=/trunk/; revision=14137
2005-03-16 16:25:54 +00:00
Gregor Anich
c165636757 Rename patch to binpatch.
svn path=/trunk/; revision=14136
2005-03-16 16:24:20 +00:00
Gregor Anich
a00d9b33dc Simple patch-creation tool (not much tested, but should work)
svn path=/trunk/; revision=14135
2005-03-16 14:01:52 +00:00
Hervé Poussineau
534636f9ce Revert revision 14118 changes
svn path=/trunk/; revision=14134
2005-03-16 12:33:26 +00:00
Magnus Olsen
9189284a9d implemnet NtGdiDdGetDriverInfo and NtGdiDdWaitForVerticalBlank
it is untested. 

svn path=/trunk/; revision=14133
2005-03-16 11:50:24 +00:00
Hervé Poussineau
89cc6c3c47 Christoph von Wittich <Christoph@ApiViewer.de>
Added Unicode support and fixes cannot compile problem

svn path=/trunk/; revision=14132
2005-03-16 11:26:14 +00:00
Gé van Geldorp
080bf05b6d Thomas Larsen <sikker2004@yahoo.com>
- Danish Translation

svn path=/trunk/; revision=14131
2005-03-16 09:45:26 +00:00
Gé van Geldorp
f07f87eb09 Thomas Larsen <sikker2004@yahoo.com>
- Danish translation

svn path=/trunk/; revision=14130
2005-03-16 09:42:40 +00:00
Gé van Geldorp
bb2b8992b4 Thomas Larsen <sikker2004@yahoo.com>
- updated danish language

svn path=/trunk/; revision=14129
2005-03-16 09:22:30 +00:00
Gé van Geldorp
53ac0de2ad Thomas Larsen <sikker2004@yahoo.com>
- added danish language

svn path=/trunk/; revision=14128
2005-03-16 09:19:12 +00:00
Gé van Geldorp
03cf4fc8db Thomas Larsen <sikker2004@yahoo.com>
- added danish language

svn path=/trunk/; revision=14127
2005-03-16 09:16:13 +00:00
Gé van Geldorp
6b116da4a1 Thomas Larsen <sikker2004@yahoo.com>
- added danish language

svn path=/trunk/; revision=14126
2005-03-16 09:13:28 +00:00
Gé van Geldorp
206cbe2545 Thomas Larsen <sikker2004@yahoo.com>
- added danish language

svn path=/trunk/; revision=14125
2005-03-16 09:10:23 +00:00
Art Yerkes
ff056457a2 consw has not been needed for a long time.
svn path=/trunk/; revision=14124
2005-03-16 09:02:07 +00:00
Gé van Geldorp
e95a8de179 Update status
svn path=/trunk/; revision=14120
2005-03-16 08:34:44 +00:00
Gé van Geldorp
23265de0b9 Sync to Wine-20050310:
Michael Jung <mjung@iss.tu-darmstadt.de>
- Beginning of a shell namespace extension to browse the unix
  filesystem.
- Fixed parsing of ITEMIDLIST in InitializeTreeView.
- Added some documentation.
- Fixed a crash occuring when the user double-clicks a leaf item.
Dimitrie O. Paun <dpaun@rogers.com>
- Add support for .exe's with exported functions.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
- Add the -noname flag to match the Platform SDK.
- Don't hardcode ordinals if which are not hardcoded on Windows.
Juan Lang <juan_lang@yahoo.com>
- Convert more API calls to Unicode.
- Convert tabs to space, wrap long lines, make indenting consistent.
- Convert a few calls to Unicode.
Mike McCormack <mike@codeweavers.com>
- handle IFileSystemBindData in ISF_Desktop_fnParseDisplayName
- more Unicode conversion
- handle IFileSystemBindData in IShellFolder::ParseDisplayName
- convert IShellFolder::ParseDisplayName to use Unicode
- Remove tabs and make formatting consistent.
- Reindent some code to improve readability.
- Define some extra SHFGI values.
- Remove tabs and reformat.
- Use lstrcmpiA in preference to strcasecmp.
- Make lstr* functions inline inside Wine.
- implement loading and saving of MSI advertised shortcut info
- make more test cases pass
- read and write the location block
- improve the binary compatibility of lnk files
- Cleanup, create unicode versions of _ILCreateFromPath,
  _ILCreateGuidFromStr, and _ILCreateFromFindData.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Hans Leidekker <hans@it.vu.nl>
- Revert wrong -noname markup for Drag*, DoEnvironmentSubst and
  SHGetNewLinkInfo{A,W}.
- Also mark stub exports -noname when they are exported by ordinal
  only on win98/2k.
- Implementation level stubs for SheChangeDirA, SheGetDirA,
  SHHelpShortcuts_RunDLL{A,W}.
- New spec file stubs for Control_RunDLLAsUserW,
  FixupOptionalComponents, OCInstall, SHChangeNotifySuspendResume,
  SHCreateProcessAsUserW, SHExtractIconsW,
  SHInvokePrinterCommand{A,W}, SHIsFileAvailableOffline,
  SHLoadNonloadedIconOverlayIdentifiers, SHPathPrepareForWrite{A,W},
  ShellExec_RunDLL{,A,W}, SHGetIconOverlayIndex{A,W}.
- Mark exports -noname when they are exported by ordinal only on
  win98/2k.
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
Filip Navara <xnavara@volny.cz>
- Don't crash if ShellFolder doesn't implement the IID_ISFHelper
  interface.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix prototypes of GetClassLongA/W, GetClassLongPtrA/W and
  SetClassLongA/W according to SDK definitions.
- Add prototypes for SetClassLongPtrA/W, protect some GWL_ and GCL_
  constants from using in Wine or in _WIN64 mode.
- Fix all places in Wine affected by the above changes.
- Convert winemenubuilder to unicode.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Marcus Meissner <marcus@jet.franken.de>
- Output some more informations.
- Mark one global variable static.
Huw Davies <huw@codeweavers.com>
- SetPath("") should return S_OK.
  SetPath("nonexistent_path") should return S_FALSE.
- Don't prepend '\\' to the subkey name.
Joris Huizer <jorishuizer@planet.nl>
- renamed file_operation_delete and to shfileops_delete
- renamed file_operation_checkFlags to shfileops_check_flags
- added helper function shfileops_do_operation()
- added helper function shfileops_get_parent_attr()
- added helper function shfileops_get_parent_attr2()
- various cleanups in SHFileOperationW using these functions
Ge van Geldorp <gvg@reactos.com>
- Error numbers >= 32 are to be expected.

svn path=/trunk/; revision=14118
2005-03-16 07:51:01 +00:00
Alex Ionescu
4bf67aaf0f Fix dillo/vncviewer regressions (semaphore bug). thanks to art and waxdragon for notifying me of the regressions.
svn path=/trunk/; revision=14117
2005-03-16 03:12:32 +00:00
Gé van Geldorp
fbfe053b9b Don't crash when debugger asks for invalid memory location
svn path=/trunk/; revision=14116
2005-03-15 23:47:13 +00:00
Filip Navara
82c445e96b Accidently forgot to disable the debug messages.
svn path=/trunk/; revision=14115
2005-03-15 23:33:54 +00:00
Filip Navara
1fa5efe3d7 Don't use uninitialized variable in FdoQueryBusRelations.
svn path=/trunk/; revision=14114
2005-03-15 23:27:36 +00:00
Filip Navara
40b71ac19d Fix broken logic in PoInit.
svn path=/trunk/; revision=14113
2005-03-15 23:02:51 +00:00
Filip Navara
3f249a0a67 Set the ACPI flag in loader block *after* performing the ACPI detection.
svn path=/trunk/; revision=14112
2005-03-15 23:02:12 +00:00
Gregor Anich
d001f75197 Improve the WNDOBJ implementation a bit... There are still some problems with the visible area when a window is overlapped by another one...
svn path=/trunk/; revision=14111
2005-03-15 22:26:12 +00:00
Gé van Geldorp
d24e173122 Don't disable debugging just because we want the debug
prints to go to the screen or serial port

svn path=/trunk/; revision=14110
2005-03-15 22:14:22 +00:00
Gregor Anich
43bfb5dd4e Allow mapping of MDLs which describe I/O memory (device memory) into usermode. I hope the changes are correct :-/
svn path=/trunk/; revision=14109
2005-03-15 22:07:05 +00:00
Filip Navara
23475fc1f9 Don't access the Irp->User* fields in NpfsSignalAndRemoveListeningServerInstance. The I/O manager will safely do that for us.
svn path=/trunk/; revision=14108
2005-03-15 22:06:41 +00:00
Gé van Geldorp
cea2f0f1d2 Aric Stewart <aric@codeweavers.com>
- The values are quoted and spaces added, so having spaces in the
  properties results in spaces in the values which is incorrect.

svn path=/trunk/; revision=14107
2005-03-15 21:46:14 +00:00
Gé van Geldorp
67b97bc9ef Sync to Wine-20050310:
Jeremy White <jwhite@codeweavers.com>
- Aggressively round up to the proper alignment when reporting position
  on streams where we are converting up.
- When we are converting from one sample rate to another, we do have to
  adjust when calculating TIME_SAMPLES.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Robert Reif <reif@earthlink.net>
- Added parameter checking to timeGetDevCaps.
- Added timer tests.
Christian Costa <titan.costa@wanadoo.fr>
- Added some more cases to MCI_MapMsgAtoW.
- Fixed offsets calculations.

svn path=/trunk/; revision=14106
2005-03-15 21:44:42 +00:00
Steven Edwards
f4ccfedf3e Use the new ReactOS icon for the boot cd.
svn path=/trunk/; revision=14105
2005-03-15 21:39:07 +00:00
Gé van Geldorp
aafd813531 Francois Gouget <fgouget@free.fr>
- Add a comment explaining why CDLGetLongPathName[AW] and
  IsJITInProgress have hardcoded ordinals.

svn path=/trunk/; revision=14104
2005-03-15 21:38:57 +00:00
Gé van Geldorp
33d7cd5d53 Sync to Wine-20050310:
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix prototypes of GetClassLongA/W, GetClassLongPtrA/W and
  SetClassLongA/W according to SDK definitions.
- Add prototypes for SetClassLongPtrA/W, protect some GWL_ and GCL_
  constants from using in Wine or in _WIN64 mode.
- Fix all places in Wine affected by the above changes.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Thomas Weidenmueller <wine-patches@reactsoft.com>
- Forward to user32 when appropriate.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.

svn path=/trunk/; revision=14103
2005-03-15 21:36:47 +00:00
Gé van Geldorp
ef5b410045 Sync to Wine-20050310:
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Add French resources.
Henning Gerhardt <henning.gerhardt@web.de>
- Add/updated German resources.
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
- Use "MS Shell Dlg" everywhere except for Japanese.
Juan Lang <juan_lang@yahoo.com>
- Fix a crash if the Mozilla ActiveX control doesn't implement
  DllCanUnloadNow.

svn path=/trunk/; revision=14102
2005-03-15 21:30:32 +00:00
Gunnar Dalsnes
cb05e516a2 fixed GetTempFileNameA/W by ripping from wine
impl. GetLongPathNameA/W by ripping from wine
impl. EnumResourceNamesA/W by ripping from wine
Use common routines for filename A2W/W2A conversion (wine inspired)
impl. ReadDirectoryChangesW (kmode part is not workin yet)
fixed RtlSetCurrentDirectory_U (dont convert to long path)

svn path=/trunk/; revision=14101
2005-03-15 19:40:22 +00:00
Hartmut Birr
e035ce116b On smp machines, unmap all low memory pages (except page 2 and 3).
svn path=/trunk/; revision=14100
2005-03-15 17:38:54 +00:00
Hartmut Birr
2423a80b6b Prevent from accessing DpcEvent in the KPCR structure, because it is currently a NULL pointer.
svn path=/trunk/; revision=14099
2005-03-15 17:35:27 +00:00
Filip Navara
37ac253ad6 Fix debug messages.
svn path=/trunk/; revision=14098
2005-03-15 15:58:36 +00:00
Filip Navara
68ed284f6e Cleanup misleading code.
svn path=/trunk/; revision=14097
2005-03-15 15:57:45 +00:00
Hervé Poussineau
9b56503fc8 Disable serial driver as it is in conflit with sermouse and debug output
svn path=/trunk/; revision=14096
2005-03-15 14:47:41 +00:00
Royce Mitchell III
ecf13d206b have buildno invocation conform to VERBOSE setting
svn path=/branches/xmlbuildsystem/; revision=14095
2005-03-15 14:02:22 +00:00
Gé van Geldorp
2850638aad Sync to Wine-20050310:
Americo Jose Melo <mmodem00@netvisao.pt>
Francois Gouget <fgouget@codeweavers.com>
- Translate the Wine resources to Portuguese.
Alex Villacfs Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Juan Lang <juan_lang@yahoo.com>
- Implement SetupDiGetClassDevsA/W, SetupDiEnumDeviceInterfaces,
  SetupDiDestroyDeviceInfoList, and SetupDiGetDeviceInterfaceDetailA for
  serial ports.
Hans Leidekker <hans@it.vu.nl>
- Don't use utf8 in rc files.
Ge van Geldorp <gvg@reactos.com>
- eol-style fixes

svn path=/trunk/; revision=14094
2005-03-15 11:38:15 +00:00
Gé van Geldorp
d4a5e08d97 Sync to Wine-20050310:
Alexandre Julliard <julliard@winehq.org>
- Avoid spaces before preprocessor directives, that's not portable.
Robert Shearman <rob@codeweavers.com>
- Add a stub implementation of RpcImpersonateClient.
- More tracing, particularly on error paths.
- ERROR_IO_PENDING is expected, so don't return an error.
Mike Hearn <mh@codeweavers.com>
- Suppress some useless warnings in the RPC runtime, and make a few
  TRACEs that were reporting problems into WARNs.

svn path=/trunk/; revision=14093
2005-03-15 09:22:34 +00:00
Gé van Geldorp
402686e69a Sync to Wine-20050310:
Mike McCormack <mike@codeweavers.com>
- Forward the RichEdit 1.0 control to the RichEdit 2.0 control.
- Don't clear ES_AUTO[HV]SCROLL in the edit control created by
  richedit.
- Remove unused declaration.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Jason Edmeades <us@the-edmeades.demon.co.uk>
- Make the edit field created from a richedit control which was created
  with ES_DISABLENOSCROLL, not have the ES_NUMBER style and hence accept
  alphanumeric input.

svn path=/trunk/; revision=14092
2005-03-15 09:08:16 +00:00
Gé van Geldorp
67347846ec Sync to Wine-20050310:
import

svn path=/trunk/; revision=14091
2005-03-15 09:04:29 +00:00
Gé van Geldorp
0eb4051a93 Make room for vendor import
svn path=/trunk/; revision=14090
2005-03-15 09:01:28 +00:00
Gé van Geldorp
f20f399309 Sync to Wine-20050310:
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
- eol-style stuff

svn path=/trunk/; revision=14088
2005-03-15 08:10:52 +00:00
Royce Mitchell III
06e37a6a8a I give up, make's "directory target" support has a fatal flaw, converting to "dummy file" system
svn path=/branches/xmlbuildsystem/; revision=14087
2005-03-15 03:51:11 +00:00
James Tabor
e7005a9352 eol-style native
svn path=/trunk/; revision=14086
2005-03-15 00:23:19 +00:00
Gé van Geldorp
f9279fd739 Sync to Wine-20050310:
Jacek Caban <jack@itma.pwr.wroc.pl>
- Implemented GetRecordInfoFromTypeInfo and GetRecordInfoFromGuid.
- Beginnig implementation of IRecordInfo.
- More implementation of IRecordInfo.
Maxime Bellenge <maxime.bellenge@laposte.net>
- Implements OleLoadPicturePath.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Use variant macros instead of accessing the union directly.
- Documentation spelling fixes.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Implement OleFontImpl_QueryTextMetrics.
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Add a stub for OleLoadPicturePath().
Huw Davies <huw@codeweavers.com>
- The typelib cache should take the typelib resource index into
  account.
Mike Hearn <mh@codeweavers.com>
- Allow loading of builtin typelibs.
Marcus Meissner <marcus@jet.franken.de>
- Check for overflows with ClrUsed.

svn path=/trunk/; revision=14085
2005-03-14 23:44:13 +00:00
Gé van Geldorp
9bc71c43a2 Sync to Wine-20050310
svn path=/trunk/; revision=14084
2005-03-14 23:25:39 +00:00
Gé van Geldorp
9a10a39940 Sync to Wine-20050310:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Mike McCormack <mike@codeweavers.com>
- Implement and test IPropertySetStorage.
- Fix more incorrect uses of STGM_ enumerations.
- Add struct StorageBaseImpl at the start of derived structures instead
  of trying to keep the first members the same.
- StgOpenStorage shouldn't open zero length storage files.
- Shared reading of storage files requires STGM_TRANSACTED.
- Test and fix grfMode handling in StgOpenDocfile.
- Implement StgSetTimes.
Robert Shearman <rob@codeweavers.com>
- Better tracing.
- Small cleanup of creation functions.
- Rename apartment functions to become more object-oriented.
- Rename register_ifstub to marshal_object to more accurately describe
  what it does.
- Add new function, apartment_getoxid, to prepare for a possible
  future patch where remoting is started on demand.
- Move marshaling state machine into stub manager from ifstub.
- Add additional needed states for table-weak marshaling, as shown by
  tests.
- Protect external reference count from underflows/overflows.
- Make COM use the RPC runtime as the backend for RPC calls. Based on a
  patch by Ove Ksven.
- Invoke objects in STA's in the correct thread by sending messages to
  the hidden apartment window.
- Use I_RpcGetBuffer, instead of our own buffer routines to fix an
  occasional test crash caused by heap corruption.
- Zero the memory block passed to RpcServerRegisterIfEx so we don't
  pass garbage in some of the fields we don't fill in.
- Return the correct error code from create_server and fix two handle
  leaks.
- TODO update.
- Remove cruft left over from previous RPC backend implementation in
  the apartment structure.
- Don't pass an IPID by value for proxy_manager_create_ifproxy.
- Disable more of RPC_UnregisterInterface to prevent the RPC runtime
  using freed memory.
- Rename various external RPC backend functions so that they all have
  the same "RPC_" prefix.
- Reduce the timeout of the function that connects to a local server
  to 30s, like native.
- Make each ifproxy have its own channel buffer to fix a bug where a
  proxy with multiple interfaces could invoke the wrong stub buffer on
  the server.
- The Global Interface Table should do table-strong marshaling instead
  of normal marshaling so that an interface can be retrieved more than
  one time.
Mike Hearn <mh@codeweavers.com>
- Avoid infinite loop when doing a typelib marshalled
  IUnknown::QueryInterface by only doing an extra QI if requested IID is
  not equal to marshalled IID.
Rob Shearman <rob@codeweavers.com>
Mike Hearn <mh@codeweavers.com>
- Add re-entrancy tests to the test suite.
- Run RPCs on a new thread client side so we can pump the message
  loop.
Juan Lang <juan_lang@yahoo.com>
- Fix the calling convention of DllCanUnloadNow.
- Move vtbl to end of file and get rid of unnecessary prototypes.
- Implement StgCreatePropSetStg.
Joris Huizer <jorishuizer@planet.nl>
- A few memory checks avoiding memory leaks.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Added some TRACE statements.

svn path=/trunk/; revision=14083
2005-03-14 23:17:44 +00:00
Gé van Geldorp
8c43665c8d Sync to Wine-20050310
svn path=/trunk/; revision=14082
2005-03-14 22:56:02 +00:00
Gé van Geldorp
5df62c8577 Sync to Wine-20050310:
Ulrich Czekalla <ulrich@codeweavers.com>
- Add support for radio buttons.
- Allocate space for terminating null.
- Fix a memory leak.
- Prevent accessing freed memory in failure case.
Mike McCormack <mike@codeweavers.com>
- Add a border to the edit control, add some more controls.
- Implement SQL delete query.
- Move product, feature and component enumeration functions to
  registry.c.
- Make sure strings are null terminated.
- Fix up the summary information code a little.
- Allow MsiViewExecute to be called twice on the same query.
- Implement MsiDatabaseGetPrimaryKeys.
- MsiGetComponentPath should allow null pointers for pcchBuf and
  lpPathBuf.
- Remove const declaration from non-const function.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Added MSI Spanish resources.
Juan Lang <juan_lang@yahoo.com>
- Implement MsiEnumRelatedProducts.
- make sure msihandle2msiinfo is correctly matched with msiobj_release
- don't do redundant NULL checks
- Don't hardcode windows or system directories, correct a typo.
- Fix a regression in AppSearch.
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Add French resources.
Henning Gerhardt <henning.gerhardt@web.de>
- Add/updated German resources.
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Alexandre Julliard <julliard@winehq.org>
- Avoid spaces before preprocessor directives, that's not portable.
Aric Stewart <aric@codeweavers.com>
- Text reformatting patch to clean up all the static strings.
- Implement the action RegisterFonts.
- Add the ExecuteAction handler.
- Store the keypath, and do refcounting and registration of SharedDLLs.
- Fix a bug with handing dword values in the registry.
- Fix bugs with writing registry keys where value == NULL.
- Make use of msidefs.h.
- Lay some groundwork for uninstalls.
- Update the installed state for components during CostFinalize. Laying
  groundwork to be able to start processing uninstall logic as well.
- Fixed problems with my code for finding the PackageCode.
- Stubs for MsiUseFeature.
- Do some basic work with registry component paths.
- Make sure formats like [\\]] and [\\[] work properly.
Steven Edwards <steven@codeweavers.com>
- Correct typo.
Marcus Meissner <marcus@jet.franken.de>
- Output some more informations.
- Mark one global variable static.

svn path=/trunk/; revision=14081
2005-03-14 22:54:57 +00:00
Emanuele Aliberti
9cc503a1b2 SMDLL + SMLIB (static code in SMSS.EXE)
SM now self registers for IMAGE_SUBSYSTEM_NATIVE.

svn path=/trunk/; revision=14080
2005-03-14 22:38:12 +00:00
Gé van Geldorp
f689818f82 Sync to Wine-20050310:
Marcelo Duarte <wine-devel@bol.com.br>
- Use "MS Shell Dlg" everywhere except for Japanese.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.

svn path=/trunk/; revision=14079
2005-03-14 22:28:58 +00:00
Gé van Geldorp
cb8820f660 Sync to Wine-20050310:
Alexandre Julliard <julliard@winehq.org>
- Make sure to always pass valid QS_* flags to
  MsgWaitForMultipleObjects.
Christian Costa <titan.costa@wanadoo.fr>
- Implemented GetProperty method for keyboard device.

svn path=/trunk/; revision=14078
2005-03-14 22:24:35 +00:00
Gé van Geldorp
86f13a4752 Sync to Wine-20050310:
Marcelo Duarte <wine-devel@bol.com.br>
- Update the resources for Portuguese.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix prototypes of GetClassLongA/W, GetClassLongPtrA/W and
  SetClassLongA/W according to SDK definitions.
- Add prototypes for SetClassLongPtrA/W, protect some GWL_ and GCL_
  constants from using in Wine or in _WIN64 mode.
- Fix all places in Wine affected by the above changes.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Troy Rollo <wine@troy.rollo.name>
- Fix stack object overrun when an application calls ChooseFontA.
Mike Hearn <mh@codeweavers.com>
- Respect the flags member of the CHOOSEFONT structure, and don't
  attempt to process bogus strings.

svn path=/trunk/; revision=14077
2005-03-14 22:21:18 +00:00
Royce Mitchell III
effadc5c83 reformat and simplify before adding functionality
svn path=/branches/xmlbuildsystem/; revision=14076
2005-03-14 21:59:25 +00:00
Hervé Poussineau
78237daf70 Add registry entries for serial driver
svn path=/trunk/; revision=14075
2005-03-14 21:30:25 +00:00
Hervé Poussineau
df94eae35b Start of the serial driver:
Handle write support and some IOCTL codes
First serial port is mapped to COM3 and second serial port is mapped to COM4. This prevents conflicts with existing code.

svn path=/trunk/; revision=14074
2005-03-14 20:59:50 +00:00
Royce Mitchell III
defea05242 reorder dependencies to fix $(ECHO_CC) output
svn path=/branches/xmlbuildsystem/; revision=14073
2005-03-14 20:38:32 +00:00
Royce Mitchell III
9195e788b1 reorder dependencies to fix $(ECHO_CC) output
svn path=/branches/xmlbuildsystem/; revision=14072
2005-03-14 20:30:45 +00:00
Royce Mitchell III
22e89b83ae fix dlltool target directory dependencies
add buildno's output to clean:

svn path=/branches/xmlbuildsystem/; revision=14071
2005-03-14 20:06:14 +00:00
Casper Hornstrup
d12b2619f0 Report why a file is marked for rebuild
svn path=/branches/xmlbuildsystem/; revision=14070
2005-03-14 19:42:00 +00:00
Royce Mitchell III
944769bcd5 list directory dependencies last, so that $(ECHO_FOO) prints the right thing. also use $@ where possible to reduce makefile.auto size a bit
svn path=/branches/xmlbuildsystem/; revision=14069
2005-03-14 19:38:13 +00:00
Casper Hornstrup
9b336ed130 Depend on the object file directory, not the object file.
svn path=/branches/xmlbuildsystem/; revision=14068
2005-03-14 19:31:25 +00:00
Royce Mitchell III
e7018c4009 echo [WMC] commands
remove some unnecessary indirect dependencies
have rbuild mkdir commands depend directly on RMKDIR_TARGET
don't have object files depend on themselves!
add rmkdir, rsym, and wmc phony targets

svn path=/branches/xmlbuildsystem/; revision=14067
2005-03-14 19:11:03 +00:00
Casper Hornstrup
346a557406 * Build bin2res and cabman in bootstrap makefiles
* Remove make directory hack as it wasn't needed anyway


svn path=/branches/xmlbuildsystem/; revision=14066
2005-03-14 18:51:29 +00:00
Thomas Bluemel
42819f010e revert the changes i accidently made, sorry
svn path=/trunk/; revision=14065
2005-03-14 16:10:21 +00:00
Thomas Bluemel
9309c80c1b implemented the SystemInterruptInformation information class to fill the structure with empty data to make process explorer shut up
svn path=/trunk/; revision=14064
2005-03-14 16:04:12 +00:00
Thomas Bluemel
3f89e7fa88 ignore alignment checks for unimplemented information classes in NtQuery/SetInformationProcess(). This gets sysinternals' ProcessExplorer to run
svn path=/trunk/; revision=14063
2005-03-14 15:23:44 +00:00
Thomas Bluemel
5672781aa4 safely access buffers in NtReadVirtualMemory()
svn path=/trunk/; revision=14062
2005-03-14 15:22:46 +00:00
Thomas Bluemel
2f460387c0 fixed copy+paste mistake
svn path=/trunk/; revision=14061
2005-03-14 14:30:43 +00:00
Thomas Bluemel
666973de7f dereference processes when enumerating them was cancelled. Accidently removed that.
svn path=/trunk/; revision=14060
2005-03-14 13:42:38 +00:00
Thomas Bluemel
437f357dd1 report idling statistics from the idle process, not from the system process
svn path=/trunk/; revision=14059
2005-03-14 13:24:46 +00:00
Thomas Bluemel
009fddf0b2 group idle threads into the idle process
svn path=/trunk/; revision=14058
2005-03-14 13:18:29 +00:00
Gé van Geldorp
61c807a7ec Sync to Wine-20050310:
Martijn Vernooij <yuxdwa702@sneakemail.com>
- Scroll instead of repainting when expanding/collapsing trees.
- Don't repaint on hover if 'hot tracking' isn't on.
Francois Gouget <fgouget@free.fr>
- Add the -noname flag to match the Platform SDK.
- Assorted spelling fixes.
Maxime Bellenge <maxime.bellenge@laposte.net>
- Take into account the new size of a column when the header size
  change.
- Correctly displays the text with ellipsis when there is not enough
  room in a header item and an image from an imagelist is displayed on
  the right of the text.
- Fix SetItem so that items don't get wrongly re-ordered.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix prototypes of GetClassLongA/W, GetClassLongPtrA/W and
  SetClassLongA/W according to SDK definitions.
- Add prototypes for SetClassLongPtrA/W, protect some GWL_ and GCL_
  constants from using in Wine or in _WIN64 mode.
- Fix all places in Wine affected by the above changes.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
- Remove unneeded calls to TAB_GetInfoPtr(), const fixes, inline small
  funcs & remove unused parameters.
Dimitrie O. Paun <dpaun@rogers.com>
- Fix indentation for consistency with the rest of the file.
- Unicodification. Small cleanups.
Filip Navara <navaraf@reactos.com>
- Implement SB_SETBORDERS.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for LANG_SPANISH in all
  resources, so that Spanish locales other than Spain also use Spanish
  resources.
Robert Shearman <rob@codeweavers.com>
- Fix one more place where the code assumes row indices are
  zero-based.
- Document a known bug in the layout code.
- Make row number be zero-based.
- Improvements to dumping functions to not dump out fields that may
  not have been filled in.
Michael Stefaniuc <mstefani@redhat.de>
- ImageList_LoadImage{A,W} were basicaly a cut'n'paste of each
  other. Removed the A variant and did a A->W translation.
- ImageList_LoadImageW: get the bitmap size from the image itself and
  not from the mask (ImageList_LoadImageA did that).

svn path=/trunk/; revision=14057
2005-03-14 11:34:02 +00:00
Gé van Geldorp
11039e6faf Sync to Wine-20050310:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Alexandre Julliard <julliard@winehq.org>
- Allow specifying extended control styles also in standard dialogs
  (reported by Michael Lin).
- Avoid spaces before preprocessor directives, that's not portable.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=14056
2005-03-14 11:01:02 +00:00
Gé van Geldorp
61dcda8178 Sync to Wine-20050310:
Merge back WineHQ commits

svn path=/trunk/; revision=14055
2005-03-14 10:44:46 +00:00
Gé van Geldorp
e51a2aab8f Re-import because of SVN problems
svn path=/trunk/; revision=14053
2005-03-14 10:36:02 +00:00
Gé van Geldorp
97445cc205 Sync to Wine-20050310:
Dimitrie O. Paun <dpaun@rogers.com>
- Add support for .exe's with exported functions.

svn path=/trunk/; revision=14052
2005-03-14 10:32:28 +00:00
James Tabor
4b9a323664 Fixed up rc file names.
svn path=/trunk/; revision=14050
2005-03-14 07:21:20 +00:00
Alex Ionescu
8b97b835f2 Support Priority Boosting during Wait Satisfaction and Thread Abortion, and use it where necessary. Should provide a bit more responsiveness.
svn path=/trunk/; revision=14049
2005-03-14 06:44:31 +00:00
Alex Ionescu
3d801bebec Forgot this file.
svn path=/trunk/; revision=14048
2005-03-14 05:54:58 +00:00
Alex Ionescu
6a7ba78c91 Dispatching & Queue Rewrite II:
- Rewrote wait code. It is now cleaner, more optimized and faster. All waiting
      functions are now clearly differentiated instead of sharing code. These functions
      are called up to a dozen times a second, so having dedicated code for each of
      them is a real boost in speed.
    - Fixed several queue issues, made a dedicated queue wait/wake function (you are not
      supposed to use KeWaitFor on a queue, and this is also a speed boost), and make it
      compatible with new wait code.
    - Optimized Work Queue code to be much smaller and better organized, by using an 
      array instead of hard-coded multiple static variables. Also, add support for the
      real NT structures and implementation, paving the road for Dynamic Work Items, which
      also have timeouts, and deadlock dection + debug info.
    - Simplified PsBlockThread and made it compatible with wait code.
    - Added support for priority boosting when unwaiting a thread; will use later, as well
      as put proper boosting for dispatch objects.
    - Inlined all dispatcher lock functions and header initialization for speed.
    - Moved executive wait code into ob.

svn path=/trunk/; revision=14047
2005-03-14 05:54:32 +00:00
Alex Ionescu
e33a78f93b Do not assume that a debugger is present only because we are debugging to a file or to the screen. This corrects bugchecks not to launch an INT3 where no debugger is actually there to catch it.
svn path=/trunk/; revision=14046
2005-03-14 04:51:51 +00:00
Thomas Bluemel
cfdb595cc6 Alex Ionescu <ionucu@videotron.ca>
Dispatcher Objects Rewrite (minus Queues, coming in next patch).
	Global Changes:
 
		- Use KOBJECT enumerations for all objects, remove obsoleted ros-internal enumeration.
		- Reformatting, commenting, and addition of Debug Prints for easier debugging
		- Properly create Executive Objects. They don't need a creation routine.
		- Make sure to properly lock and release the Dispatcher Database.
 
	Mutex/Mutant:
 
		- Correct MUTANT_BASIC_INFORMATION
		- Return previous state in Kernel Functions, intead of 1 or 0 all the time.
		- Initialize listhead properly
		- Removed code duplication between mutant and mutex release.
		- Fix bugs in release
		- Add proper exeption if the mutex is not owned.
 
	Kernel Queues:
 
		- Optimize the code
		- Use Inserted Flag
 
	Timers:
 
		- Some changes in setting the default data to allow KiInsertTimer to be called internally 
		  by the wait code in the next patch.
 
	Events:
 
		- Optimize and simplify KeInitializeEvent
		- Implement KeInitializeEventPair
		- Fix KePulseEvent. It was completely messed up and also used unneeded Interlocked function.
		- Fix KeResetEvent. It was not locking the dispatcher lock but using Interlocked.
		- Fix KeSetEvent. It was not differentiating between Notification and Sycronization events 
		  and also signaling the Event even if nobody was waiting on it.
 
	Semaphores:
 
		- Fix KeReleaseSemaphore. It was not checking if nobody was waiting on it before unwaiting the thread.
		- Fix not releasing dispatcher database before raising an exception.
		- Add check to NtCreateSemaphore to make sure the counts make sense.
 
	Event Pairs:
 
		- Remove Thread Event Pair. They are only used for NT4 QuickLPC which is obsoleted.
		- Use KeInitializeEventPair

svn path=/trunk/; revision=14045
2005-03-14 02:08:17 +00:00
Thomas Bluemel
865a496525 don't receive the previous mode before the current thread was created, this should finally fix the boot.
svn path=/trunk/; revision=14044
2005-03-14 01:47:18 +00:00
Magnus Olsen
78dbb934c2 GetDeviceData
fix the choppy mouse in UT and fix some other small bugs.
I can now use the mouse with out any problem in UT


svn path=/trunk/; revision=14043
2005-03-14 00:36:02 +00:00
Gé van Geldorp
05df4eff43 tinus <o112w8r02@sneakemail.com>:
Use RegisterShellHookWindow

svn path=/trunk/; revision=14042
2005-03-13 23:10:25 +00:00
Gé van Geldorp
fa4bd57bed tinus <o112w8r02@sneakemail.com>:
Implement RegisterShellHookWindow

svn path=/trunk/; revision=14041
2005-03-13 23:08:51 +00:00
Thomas Bluemel
f1fa92f6fc initialize the handle tables before creating them
svn path=/trunk/; revision=14040
2005-03-13 23:03:31 +00:00
Casper Hornstrup
30c142ef2d Build winebuild by bootstrap makefiles
svn path=/branches/xmlbuildsystem/; revision=14039
2005-03-13 22:33:13 +00:00
Casper Hornstrup
f6646e9181 Add missing file
svn path=/branches/xmlbuildsystem/; revision=14038
2005-03-13 21:59:51 +00:00
Gé van Geldorp
c367070483 Allow cancelling of listen IRPs
svn path=/trunk/; revision=14037
2005-03-13 21:47:04 +00:00
Gé van Geldorp
6f699ce531 arty:
Always keep port numbers in network byte order

svn path=/trunk/; revision=14036
2005-03-13 21:41:44 +00:00
Thomas Bluemel
a8ea6a6ab4 don't use the current process' pid if no process specified.
svn path=/trunk/; revision=14035
2005-03-13 21:37:54 +00:00
Casper Hornstrup
eb194612c3 * Correct dependencies for ROS_INTERMEDIATE <> . in generated makefile
* GNU make don't support depending on a directory, so simulate the dependency using a file


svn path=/branches/xmlbuildsystem/; revision=14034
2005-03-13 21:34:47 +00:00
Eric Kohl
a3e183bd64 Remove debug printf().
svn path=/trunk/; revision=14033
2005-03-13 21:34:15 +00:00
Casper Hornstrup
e160a25508 * Introduce ROS_OUTPUT
* Correct dependencies for ROS_INTERMEDIATE <> . in bootstrap makefiles
* GNU make don't support depending on a directory, so simulate the dependency using a file


svn path=/branches/xmlbuildsystem/; revision=14032
2005-03-13 21:30:35 +00:00
Eric Kohl
7019953f42 Remove debug printf().
svn path=/trunk/; revision=14031
2005-03-13 21:29:49 +00:00
Casper Hornstrup
7fb6d76a2b -P switch to set root path for files when creating cabinet
svn path=/branches/xmlbuildsystem/; revision=14030
2005-03-13 21:02:04 +00:00
Casper Hornstrup
5c5c83ecb2 Build msacm32.dll
svn path=/branches/xmlbuildsystem/; revision=14029
2005-03-13 20:55:16 +00:00
Emanuele Aliberti
fd01d2046a LsaQueryInfoTrustedDomain stub added
svn path=/trunk/; revision=14028
2005-03-13 20:42:48 +00:00
Thomas Bluemel
57946d8a9a Alex Ionescu <ionucu@videotron.ca>
- Use optimized semantics as previously decided (OPTIMIZED = 1 if DBG = 0)

svn path=/trunk/; revision=14027
2005-03-13 18:55:01 +00:00
Royce Mitchell III
785ffdc0da set eol-style=native
svn path=/trunk/; revision=14026
2005-03-13 18:54:37 +00:00
James Tabor
e19f4b7bd9 Fix paste error.
svn path=/trunk/; revision=14025
2005-03-13 18:51:46 +00:00
James Tabor
7ac15d3bbf Fixup for *nix port
svn path=/trunk/; revision=14024
2005-03-13 18:47:13 +00:00
James Tabor
1bb6977546 Fixup for *nix port
svn path=/trunk/; revision=14023
2005-03-13 18:43:44 +00:00
Thomas Bluemel
b1ce653a14 Alex Ionescu <ionucu@videotron.ca>
- Fix implementation of NT Profile Objects. Structures are guesses, but seem pretty close to the NT ones... a lot of stuff based on David Welch's old implementation, but simplified the way profiles are managed extensively, and also using the same buckethash mechanism as NT, this is required for compatibility with Nt Native APIs that use Profile Objects.
- Removed KDBG internal profile management and associated files. I will re-write the Profiler to use NT Profile Objects, which will allow us more extensibilty while profiling and also greater compatibility with NT.

svn path=/trunk/; revision=14022
2005-03-13 18:41:59 +00:00
Thomas Bluemel
b607cb6445 fixed HANDLE_TABLE structure
svn path=/trunk/; revision=14021
2005-03-13 18:39:38 +00:00
Royce Mitchell III
3d00595df2 c version of wine's 'make_ctests' script
svn path=/trunk/; revision=14020
2005-03-13 18:08:10 +00:00
Royce Mitchell III
539c296fa7 -Wall -Werror and fix warnings
svn path=/trunk/; revision=14019
2005-03-13 17:24:17 +00:00
Royce Mitchell III
5751b32540 -Wall -Werror and fix warnings
svn path=/trunk/; revision=14018
2005-03-13 17:18:33 +00:00
Hartmut Birr
e9ae9105f5 Added a keep-alive reference to each key object.
Lock the registry while accessing sub keys of a key object.  
Implemented a worker thread which removes all unused key objects.  
Fixed a bug which shows keys twice if a key is already opened.

svn path=/trunk/; revision=14017
2005-03-13 17:03:42 +00:00
Emanuele Aliberti
2d250ad2a7 ea@reactos.com
- make SmExecuteProgram work
- implement SmCompleteSession (untested)

svn path=/trunk/; revision=14016
2005-03-13 17:01:59 +00:00
Emanuele Aliberti
12da975bfd ea@reactos.com
Make SmConnectApiPort more safe.

svn path=/trunk/; revision=14015
2005-03-13 17:00:19 +00:00
Hartmut Birr
779a7eeb41 Removed CloseInProcess from object header structure.
svn path=/trunk/; revision=14014
2005-03-13 16:44:15 +00:00
Hartmut Birr
aed77689d2 Added two missing calls to KeLeaveCriticalRegion.
svn path=/trunk/; revision=14013
2005-03-13 16:41:05 +00:00
Martin Fuchs
85fdc76fb2 launch display properties dialog via desktop context menu
svn path=/trunk/; revision=14012
2005-03-13 15:43:02 +00:00
Martin Fuchs
c9f8b0e7e0 remove temporary desktop context menu code from explorer
svn path=/trunk/; revision=14011
2005-03-13 15:30:29 +00:00
Martin Fuchs
0418e694e6 a little context menu code cleanup
svn path=/trunk/; revision=14010
2005-03-13 15:29:53 +00:00
Eric Kohl
28eb04c4db Fix gcc warnings in generated client stub.
svn path=/trunk/; revision=14009
2005-03-13 14:49:59 +00:00
Thomas Bluemel
29bd3ad1f9 revert changes to the config file. I accidently committed it, sorry.
svn path=/trunk/; revision=14008
2005-03-13 14:29:09 +00:00
Thomas Bluemel
d288e05d38 - fixed handle table structures
- implement generic executive handle tables (since there don't exist documents that describe the parameters of most of these functions (which are kernel internal only), i made them up as required)
- adjusted OB's handle manager to use ex handle tables
- adjusted the client id manager to use ex handle tables

svn path=/trunk/; revision=14007
2005-03-13 14:21:47 +00:00
Aleksey Bragin
a3c3364289 Removed excess copy of accidently inserted twice russian language resources.
svn path=/trunk/; revision=14006
2005-03-13 13:59:06 +00:00
Aleksey Bragin
27f383b70d Fixed typos, removed excess copy of accidently inserted twice russian language resources, also fixed "To add new program, click Install" (was cut, so now height increased to 16).
svn path=/trunk/; revision=14005
2005-03-13 13:47:45 +00:00
Magnus Olsen
84a36613f5 getdevicedata
Make the mouse less choopy. 
But it still choopy. It need implement real buffer.
instead it being fild when it is call.

Fix the buffer seq are in right order.


 

svn path=/trunk/; revision=14004
2005-03-13 10:45:23 +00:00
Casper Hornstrup
4c6320805b Make tests build again
svn path=/branches/xmlbuildsystem/; revision=14003
2005-03-13 10:33:15 +00:00
Eric Kohl
53170a9c19 Implement [string] attribute for pointers to char and wchar_t.
svn path=/trunk/; revision=14002
2005-03-13 10:24:34 +00:00
Hartmut Birr
d6c9cf0a41 Use KeGetCurrentPrcb instead of KeGetCurrentKPCR.
svn path=/trunk/; revision=14001
2005-03-13 09:19:33 +00:00
Hartmut Birr
e6bf69e0ae Use only one access to the spinlock in the assertion, because the value may change between two access' on smp machines.
svn path=/trunk/; revision=14000
2005-03-13 09:14:59 +00:00
Hartmut Birr
0d216dc91a Ignore exception 15 in KiTrapHandler.
svn path=/trunk/; revision=13999
2005-03-13 09:10:36 +00:00
Hartmut Birr
0618186aa6 Initialized the key name before each call to ZwCreateKey in IopCreateDeviceKeyPath.
svn path=/trunk/; revision=13998
2005-03-13 09:08:26 +00:00
Hartmut Birr
154d6c64f8 Define IPI_REQUEST_FREEZE.
svn path=/trunk/; revision=13997
2005-03-13 09:06:14 +00:00
Royce Mitchell III
fbff6fe0f0 don't end a string if the last character outputted was an escape, will cause output file to be invalid
svn path=/trunk/; revision=13996
2005-03-13 07:38:40 +00:00
Royce Mitchell III
9a2cf81bc4 don't end a string if the last character outputted was an escape, will cause output file to be invalid
svn path=/branches/xmlbuildsystem/; revision=13995
2005-03-13 07:37:33 +00:00
Royce Mitchell III
4f130648e1 added validation for <directory>'s name attribute
create dk/nkm/lib if it doesn't exist

svn path=/branches/xmlbuildsystem/; revision=13994
2005-03-13 06:31:38 +00:00
Royce Mitchell III
c181edef3c fix some dependencies
get rid of unnecessary phony targets
eliminate unnecessary makefile.auto dependencies
silence gcc when detecting pch

svn path=/branches/xmlbuildsystem/; revision=13993
2005-03-13 05:32:52 +00:00
James Tabor
b2f5efa2cf Fix up opps.
svn path=/trunk/; revision=13992
2005-03-13 04:25:09 +00:00
James Tabor
29f3606a01 Fix up Linux port.
svn path=/trunk/; revision=13991
2005-03-13 04:23:35 +00:00
Royce Mitchell III
cc39e7793a hack fix 'hostzlib' circular dependency, added a couple more stub makefiles, added 'rbuild' phony target
svn path=/branches/xmlbuildsystem/; revision=13990
2005-03-13 03:16:16 +00:00
Steven Edwards
bf89d5df7d added winetest gui program. Does not interact with server yet and requires advapi32 and comctl32 tests to be built.
svn path=/trunk/; revision=13989
2005-03-13 01:54:53 +00:00
Magnus Olsen
0bf2971d1a getmousedevice buffer
UT2004 the mouse are less choopy on my computer now.
and small bug fix. it maby still exists some bug left.

svn path=/trunk/; revision=13988
2005-03-13 01:10:46 +00:00
Magnus Olsen
bc1cb8bf6e Fix the mouse for Unreal tormnet 2004, it is working now
have not test it to 100%. But hoppfull it is last fix, geting games that need dinput working now with opengl.

svn path=/trunk/; revision=13987
2005-03-13 00:13:07 +00:00
Gé van Geldorp
108b495229 Allow inter-thread timer setting but not inter-process
svn path=/trunk/; revision=13986
2005-03-12 22:42:38 +00:00
Thomas Bluemel
2a13486746 Alex Ionescu <ionucu@videotron.ca>
- Remove ke/critical.c and move its functions into ke/apc.c
- Reformat ke/apc.c code which I had written messed up (due to MSVC)
- Add a bit more commenting.

svn path=/trunk/; revision=13985
2005-03-12 22:31:22 +00:00
Thomas Bluemel
322dbd6fba Thomas Weidenmueller <w3seek@reactos.com>
- Fix various security structures and constants
- Add code to capture quality of service structures and ACLs
- Secure buffer access in NtQueryInformationToken, NtSetInformationToken, NtNotifyChangeDirectoryFile and NtQueryDirectoryFile

svn path=/trunk/; revision=13984
2005-03-12 22:16:02 +00:00
Magnus Olsen
6830474b06 Now UT2004 start, but the mouse does not work or ?
Still some problem with the mouse buffer on getdevicedata.But it does not freze any longer.

svn path=/trunk/; revision=13983
2005-03-12 22:10:11 +00:00
Thomas Bluemel
7bc94f8976 Alex Ionescu <ionucu@videotron.ca>
- Remove ke/error.c and add its functions into ke/catch.c where they belong.
- Create ex/error.c and move Executive functions present in ke/error.c to it.
- Implement NtRaiseHardError and move it from ke/error.c to ex/error.c.
- Increase Exceptions Dispatched count in dispatch code and comment code more throughly.

svn path=/trunk/; revision=13982
2005-03-12 21:26:29 +00:00
Thomas Bluemel
566c2840b9 Alex Ionescu <ionucu@videotron.ca>
- Reorganized Bootup code. Most of the Executive initialization is now in ex/init.c
- Remove ExPostSystemEvent.
- Sped up Command-line parasing and wrote a function specificalyl for it, to ease extensibility
- Sped up and optimized loading modules from FreeLoader. The data is only looked up once and then the pointers are cached for easy re-use.
- Moved KeGetRecommendedSharedDataAlignmented to ke/main.c and implemented it.
- Moved subsystem-specific intialization to their own subsystem, like Io in ioinit and Cm in CmInit.

svn path=/trunk/; revision=13981
2005-03-12 21:08:29 +00:00
Klemens Friedl
523d77cc92 resource icon added
svn path=/trunk/; revision=13980
2005-03-12 20:59:36 +00:00
Klemens Friedl
0c969fe931 add icon (flags)
svn path=/trunk/; revision=13979
2005-03-12 20:36:23 +00:00
Magnus Olsen
0aa810f5e1 Small bug fix
do not crash UT2004 any longer, but it freze ut2004 
screen. still some problem with getdevicedata for
the mouse. it is the mouse buffer problem. more
apps will work better now. 

svn path=/trunk/; revision=13978
2005-03-12 20:29:51 +00:00
Thomas Bluemel
7fd17a9a85 Alex Ionescu <ionucu@videotron.ca>
- Clean up IO Completion Code
- Properly delete an IO Completion. The IRPs were not freed, resulting in memory leaks

Thomas Weidenmueller <w3seek@reactos.com>
- Add SEH to IO Completion Code

svn path=/trunk/; revision=13977
2005-03-12 19:58:53 +00:00
Klemens Friedl
b21f552e3b * add combobox (select language/region)
* german & english resource files

svn path=/trunk/; revision=13976
2005-03-12 19:46:27 +00:00
Thomas Bluemel
fd962e2f04 Alex Ionescu <ionucu@videotron.ca>
- Fixed formatting mess in ke/dpc.c (which I had made when I wrote it due to MSVC).
- Add more comments where needed.
- Properly Initialize a Threaded DPC.

Thomas Weidenmueller <w3seek@reactos.com>
- Use Prcb directly in KeInitDpc.

svn path=/trunk/; revision=13975
2005-03-12 19:45:37 +00:00
Thomas Bluemel
b2a42182ef Alex Ionescu <ionucu@videotron.ca>
- Removed ke/alert.c and moved its functions where they belong.
- Commented and organized KeInitializeThread.
- Began switch to true KOBJECT enumeration used in NT.
- Implemented KeAlertResumeThread and NtAlertResumeThread.
- Harmonized Formatting in ke/kthread.c

svn path=/trunk/; revision=13974
2005-03-12 19:23:04 +00:00
Klemens Friedl
a8f6850b9f Add registry keys for language support
svn path=/trunk/; revision=13973
2005-03-12 19:22:30 +00:00
Thomas Bluemel
64c70941d3 Alex Ionescu <ionucu@videotron.ca>
- Remove branch leftover in debug message.
- Uncondtionally enable setting the Window Station Atom Table.

svn path=/trunk/; revision=13972
2005-03-12 18:15:54 +00:00
Thomas Bluemel
052a86b641 Alex Ionescu <ionucu@videotron.ca>
- Clean up formatting of ke/process.c (which I had messed up at the time due to MSVC)
- Acknowledge Blight's work
- Implement KeRemoveServiceDescriptorTable
- Remove ex/napi.c and move the Tables into ke/process.c

svn path=/trunk/; revision=13971
2005-03-12 18:10:03 +00:00
Thomas Bluemel
62fe406292 Alex Ionescu <ionucu@videotron.ca>
Fix wrong assertion.

svn path=/trunk/; revision=13970
2005-03-12 17:02:43 +00:00
Filip Navara
f954a88f34 Alex Ionescu <ionucu@videotron.ca>
Various bugcheck code improvements:
- Fix bugcheck code and make debugging easier for unhandled exceptions/spinlocks.
- Fix a race condition with TAB+B,
- Fix irql to be high_level.
- Fix calling unsafe function by caching bugcode data.
- Fix support for smp by using IPI.
- Fix not-breakpointing when no debugger is there.
- Implement KeBugCheck callbacks with reason.
- Fix callbacks not being called.
- Fix proper breakpoint during bugcheck.
Filip Navara <xnavara@volny.cz>
- Move the bugcheck initialization code into Ke (was in Ex on Alex's branch).

svn path=/trunk/; revision=13969
2005-03-12 16:01:30 +00:00
Filip Navara
5307ffb9c6 Alex Ionescu <ionucu@videotron.ca>
Move win32k callbacks to win32k where they belong. Registration is done with Ps function just like on XP+. Also allows non-win32k stuff to manage their own desktops and window stations.

svn path=/trunk/; revision=13968
2005-03-12 14:15:49 +00:00
Thomas Bluemel
510dc740a5 include ctype.h for isalpha()
svn path=/trunk/; revision=13967
2005-03-12 13:50:48 +00:00
Eric Kohl
8871c0355a Implement [in], [out] and [in, out] support for pointers to basic types.
svn path=/trunk/; revision=13966
2005-03-12 13:23:09 +00:00
Filip Navara
466b206539 Alex Ionescu <ionucu@videotron.ca>
- Add KeGetCurrentPrcb function and use it where appropriate.
- Fix returning of values in ExGetCurrentProcessorCpuUsage and ExGetCurrentProcessorCounts.
- Move ExIsProcessorFeaturePresent from ex/init.c to ex/sysinfo.c.

svn path=/trunk/; revision=13965
2005-03-12 09:40:07 +00:00
Gé van Geldorp
17f773cb7d Fix htons
svn path=/trunk/; revision=13964
2005-03-12 09:21:59 +00:00
Hartmut Birr
653d79d129 Lock the kernel address space instead the process' one, if the pages are located in kernel space.
Unlock the address space on error.


svn path=/trunk/; revision=13963
2005-03-12 09:14:38 +00:00
Filip Navara
57787bb881 Thomas Weidenmueller <w3seek@reactos.com>
- Implement support for vectored exception handlers.
- Add code for querying process cookie.

svn path=/trunk/; revision=13962
2005-03-12 08:54:41 +00:00
Art Yerkes
724d399a3f Some improvements I've been sitting on.
Set SEL_FIN if we need to in TCPReceiveData.
Clear out pending IRP queues properly when shutting down.
Lock the tcp when getting or setting the address.

svn path=/trunk/; revision=13961
2005-03-12 07:52:16 +00:00
Art Yerkes
e58c615243 Changed bare words to strings so we don't get complaints about unterminated
char constants.

svn path=/trunk/; revision=13957
2005-03-12 05:46:45 +00:00
Royce Mitchell III
49594687df more *nix compatibility fixes
svn path=/branches/xmlbuildsystem/; revision=13956
2005-03-12 04:55:41 +00:00
Royce Mitchell III
c5097fd3dc set *nix-compatible paths for tools
svn path=/branches/xmlbuildsystem/; revision=13955
2005-03-12 04:39:20 +00:00
Steven Edwards
3db0384e86 added Wine tests for advapi32. (untested)
svn path=/trunk/; revision=13954
2005-03-12 04:32:00 +00:00
Royce Mitchell III
0e37d806a5 detect windows instead of assuming it
svn path=/trunk/; revision=13953
2005-03-12 04:20:35 +00:00
Royce Mitchell III
af64b1423c put windows-detection code in makefile, don't make proxy.mak silent
svn path=/branches/xmlbuildsystem/; revision=13952
2005-03-12 04:14:09 +00:00
Steven Edwards
3ed09e40d9 Should be winetests not winetest.
svn path=/trunk/; revision=13951
2005-03-12 04:11:24 +00:00
Steven Edwards
e8451b25d5 Added Wine regression tests for comctl32. (Untested)
svn path=/trunk/; revision=13950
2005-03-12 04:09:57 +00:00
Filip Navara
eab893a17c Minor touch ups to the tools version check to get it working on Linux.
svn path=/trunk/; revision=13949
2005-03-12 02:04:08 +00:00
Filip Navara
7c7a235e5f Steven Edwards <steven_ed4153@yahoo.com>
Revert incorrect change - KD_DEBUG_BOOTLOG => KD_DEBUG_FILELOG, /DEBUGPORT=BOOTLOG => /DEBUGPORT=FILE.

svn path=/trunk/; revision=13948
2005-03-12 01:11:06 +00:00
Filip Navara
5bbfa0aa1d Don't use intermediate objects linked with "ld -r". There's a bug in binutils that causes the data section relocations to be stripped.
svn path=/trunk/; revision=13947
2005-03-12 00:54:06 +00:00
Filip Navara
fe2a7b4489 Alex Ionescu <ionucu@videotron.ca>
Add definitions for WORKER_THREAD_RETURNED_AT_BAD_IRQL, MANUALLY_INITIATED_CRASH and IMPERSONATING_WORKER_THREAD bug check codes.

svn path=/trunk/; revision=13946
2005-03-12 00:51:55 +00:00
Filip Navara
94066e01ef Alex Ionescu <ionucu@videotron.ca>
Pass an ACPI flag from FreeLdr to the kernel and replace the usage of ACPI compile time option with it.

svn path=/trunk/; revision=13945
2005-03-12 00:49:18 +00:00
Royce Mitchell III
b62f2bb179 rename more makefiles, preparation for local makefiles to work with xml build system
svn path=/branches/xmlbuildsystem/; revision=13944
2005-03-12 00:23:38 +00:00
Art Yerkes
b89e71762d Changed sizeof(RemoteAddress) to sizeof(*RemoteAddress). Now address
returns work in accept.

svn path=/trunk/; revision=13943
2005-03-12 00:02:24 +00:00
Filip Navara
b6926c02fc Alex Ionescu <ionucu@videotron.ca>
Relocate kernel if the /3GB switch is supplied in kernel parameters.

svn path=/trunk/; revision=13941
2005-03-11 23:38:59 +00:00
Royce Mitchell III
99ba4dfee6 fix case bug with wpp's makefile
svn path=/branches/xmlbuildsystem/; revision=13940
2005-03-11 23:13:03 +00:00
Royce Mitchell III
87cbce76ad remove obsoleted makefiles and config files, tools/Makefile -> tools/tools.mak, fix bugs in buildno's makefile.
svn path=/branches/xmlbuildsystem/; revision=13938
2005-03-11 23:06:43 +00:00
Art Yerkes
6cc6c8571b Swap the port part of the address so it's reported correctly.
svn path=/trunk/; revision=13937
2005-03-11 21:13:11 +00:00
Aleksey Bragin
76c165b428 Andrey Korotaev (unC0Rr): Added russian translations for control, appwiz and timedate.
svn path=/trunk/; revision=13936
2005-03-11 21:07:55 +00:00
Hervé Poussineau
7699eb9d3b Add semi-implementation of AttachDeviceToDeviceStackSafe
svn path=/trunk/; revision=13935
2005-03-11 18:46:44 +00:00
Filip Navara
ec996ca887 tinus <o112w8r02@sneakemail.com>
Add a Initialized member to TEXTOBJ so it isn't reinitialized all the time.

svn path=/trunk/; revision=13934
2005-03-11 18:34:44 +00:00
Filip Navara
c350cae866 tinus <o112w8r02@sneakemail.com>
Don't allocate 0 bytes of memory for no color map.

svn path=/trunk/; revision=13933
2005-03-11 18:17:29 +00:00
Filip Navara
fc556dfcc1 Check BinUtils and GCC version.
svn path=/trunk/; revision=13932
2005-03-11 17:33:12 +00:00
Royce Mitchell III
b832dffe13 beginning of local stub makefiles, to allow building from subdirectories ( I'm explicitly not allowing a full clean from a subdirectory )
svn path=/branches/xmlbuildsystem/; revision=13931
2005-03-11 14:07:48 +00:00
Gé van Geldorp
2c7442af29 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language

svn path=/trunk/; revision=13930
2005-03-11 08:53:28 +00:00
Gé van Geldorp
00975016b1 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language
- Corrected English Ressource for missing Title
- Split The Res Files to make room for more translation to other langs

svn path=/trunk/; revision=13929
2005-03-11 08:50:04 +00:00
Gé van Geldorp
d514b0dc03 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language
- Move icons to language neutral resources

svn path=/trunk/; revision=13928
2005-03-11 08:43:24 +00:00
Gé van Geldorp
70385eb1e6 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language

svn path=/trunk/; revision=13927
2005-03-11 08:29:40 +00:00
Gé van Geldorp
edc2f49701 Thomas Larsen <sikker2004@yahoo.com>
- Added Danish language

svn path=/trunk/; revision=13926
2005-03-11 08:22:29 +00:00
Royce Mitchell III
022b0bff73 don't assume zlib's include directory will work for hostzlib library
svn path=/branches/xmlbuildsystem/; revision=13925
2005-03-11 07:51:43 +00:00
Royce Mitchell III
96a66ee4c7 host vs target refactoring, <module> has two new attributes 'host' and 'prefix' ( this should fix sedwards' host.zlib.a issue, and also forgot to commit change to buildno's makefile in support of new macros in top-level makefile ( which should fix build bug arty experiencing re buildno.h )
svn path=/branches/xmlbuildsystem/; revision=13924
2005-03-11 07:46:22 +00:00
Royce Mitchell III
4a91158ed5 remove unnessary @true, and create some macros to clean things up
svn path=/branches/xmlbuildsystem/; revision=13923
2005-03-11 07:41:19 +00:00
Art Yerkes
d3c8339fa1 Uniform handling of stream socket reads.
svn path=/trunk/; revision=13922
2005-03-11 07:30:17 +00:00
Royce Mitchell III
34bc0ec777 turn on all warnings, and fix remaining warnings
svn path=/trunk/; revision=13921
2005-03-11 02:38:55 +00:00
Royce Mitchell III
7b9b41e304 fix gcc4 warnings
svn path=/trunk/; revision=13920
2005-03-11 02:37:30 +00:00
Gé van Geldorp
7dbc98c96c Pass NameLength back to caller
svn path=/trunk/; revision=13919
2005-03-10 22:59:28 +00:00
Art Yerkes
f68df768b9 Caps Lock fix suggested by Johannes Olofsson. We now xor the caps lock
attribute bit with the mod bits before turning them into a column 
number.

svn path=/trunk/; revision=13918
2005-03-10 20:54:53 +00:00
Royce Mitchell III
107eec449d more efficient detection of C++ modules, fixed bug in C++ pch support, always clean pch files, even if pch not being used
svn path=/branches/xmlbuildsystem/; revision=13917
2005-03-10 20:34:08 +00:00
Eric Kohl
2517dde027 Implement '-o' option. This is equivalent to MIDLs '/oldnames' option.
svn path=/trunk/; revision=13916
2005-03-10 20:07:17 +00:00
Royce Mitchell III
af9bc63975 simplified verbosity
svn path=/branches/xmlbuildsystem/; revision=13915
2005-03-10 19:56:46 +00:00
Royce Mitchell III
6e18ca3d45 remove incorrect <pch>
svn path=/branches/xmlbuildsystem/; revision=13914
2005-03-10 17:46:44 +00:00
Royce Mitchell III
bc13f5f38b add <pch> to existing xml files that support pch on trunk
svn path=/branches/xmlbuildsystem/; revision=13913
2005-03-10 16:50:29 +00:00
Royce Mitchell III
838a6c6422 accidentally commited testing changes
svn path=/branches/xmlbuildsystem/; revision=13912
2005-03-10 16:43:31 +00:00
Royce Mitchell III
56532e03e1 Makefile.auto -> makefile.auto
svn path=/branches/xmlbuildsystem/; revision=13911
2005-03-10 16:42:28 +00:00
Steven Edwards
33c313a6ff Change tabs to spaces.
svn path=/trunk/; revision=13910
2005-03-10 16:08:08 +00:00
Royce Mitchell III
75224f16af enable PCH support for ntoskrnl
svn path=/branches/xmlbuildsystem/; revision=13909
2005-03-10 14:06:14 +00:00
Royce Mitchell III
54abe91bd0 PCH support
svn path=/branches/xmlbuildsystem/; revision=13908
2005-03-10 14:05:41 +00:00
Royce Mitchell III
60f02a7882 eliminate warnings, fix bug that locked up game when single-clicking a card
svn path=/trunk/; revision=13907
2005-03-10 04:58:40 +00:00
Steven Edwards
26676ade4c remove some backup files created by editplus
svn path=/trunk/; revision=13905
2005-03-10 04:05:53 +00:00
Steven Edwards
e415037205 imported catch-22 sol clone with authors permission
svn path=/trunk/; revision=13904
2005-03-10 04:04:27 +00:00
Steven Edwards
59b8be68dc added winres.h from Wine
svn path=/trunk/; revision=13903
2005-03-10 03:50:43 +00:00
Royce Mitchell III
cadb20c83d don't try to create ROS_INTERMEDIATE directories if ROS_INTERMEDIATE isn't defined
svn path=/branches/xmlbuildsystem/; revision=13902
2005-03-09 23:38:37 +00:00
Royce Mitchell III
11b45e8535 simplified <if> handling ( and fixed several bugs, too )
cleaned up devcpp backend to compile with these changes

svn path=/branches/xmlbuildsystem/; revision=13901
2005-03-09 22:29:18 +00:00
Gunnar Dalsnes
67bd235566 LockFileEx: forward overlapped->hEvent to NtLockFile
LockFile: zero overlapped->hEvent

svn path=/trunk/; revision=13900
2005-03-09 22:20:41 +00:00
Royce Mitchell III
dd650dbfae fixed some dependency issues, verbose support, 'make clean' gets more
svn path=/branches/xmlbuildsystem/; revision=13899
2005-03-09 08:12:30 +00:00
Royce Mitchell III
c2a87f42ad set eolstyle to native
svn path=/branches/xmlbuildsystem/; revision=13898
2005-03-09 08:04:40 +00:00
Filip Navara
8f22c7534c Fix failure case in IoConnectInterrupt. (Now really)
svn path=/trunk/; revision=13895
2005-03-08 23:15:34 +00:00
Filip Navara
b5d60675a0 Fix failure case in IoConnectInterrupt.
svn path=/trunk/; revision=13894
2005-03-08 23:10:38 +00:00
Art Yerkes
b1bfbd3389 Last fix due to w3seek. I will stop working on this stuff until I have
time to be thorough.

svn path=/trunk/; revision=13893
2005-03-08 23:07:10 +00:00
Art Yerkes
53af8e03f3 Fixes by w3seek regarding interlocked functions. These were due to my
missing a mismatch between the glib functions and windows variants.

svn path=/trunk/; revision=13892
2005-03-08 23:01:54 +00:00
Emanuele Aliberti
34d49aaa33 Refresh RC script for PSX bare sh.
svn path=/trunk/; revision=13891
2005-03-08 22:41:27 +00:00
Art Yerkes
72f40b7d14 Added PowerPC interlocked functions from glib.
svn path=/trunk/; revision=13890
2005-03-08 22:39:53 +00:00
Royce Mitchell III
ba7ccda6fb adjust newlines around rsym command
svn path=/branches/xmlbuildsystem/; revision=13889
2005-03-08 21:02:50 +00:00
Royce Mitchell III
d37606edee add newline at EOF to suppress warning
svn path=/branches/xmlbuildsystem/; revision=13888
2005-03-08 20:50:42 +00:00
Steven Edwards
dcdeb7b0c0 another fix
svn path=/branches/xmlbuildsystem/; revision=13887
2005-03-08 20:40:35 +00:00
Gé van Geldorp
1dca540f6b Use GDIINFO values instead of DEVMODE values
svn path=/trunk/; revision=13886
2005-03-08 20:23:40 +00:00
Steven Edwards
d5c61075a9 more lower case changes for Makefile -> makefile
svn path=/branches/xmlbuildsystem/; revision=13885
2005-03-08 20:19:07 +00:00
Steven Edwards
9aff2f9419 lower case please
svn path=/branches/xmlbuildsystem/; revision=13884
2005-03-08 20:12:43 +00:00
Hervé Poussineau
ac74a57d42 Minor changes to remove warnings
"memmory" -> "memory"

svn path=/trunk/; revision=13883
2005-03-08 19:19:45 +00:00
Klemens Friedl
a285c15efb appwiz.cpl:
* add language support
* english and german language files

svn path=/trunk/; revision=13882
2005-03-08 19:03:11 +00:00
Klemens Friedl
7758ecc0bf System Control Panel:
* add language support
* english and german language files

svn path=/trunk/; revision=13881
2005-03-08 19:00:44 +00:00
Klemens Friedl
0b18ff226e Slayer: german language file
svn path=/trunk/; revision=13880
2005-03-08 18:48:01 +00:00
Hervé Poussineau
2ed637d9a6 Remove warning
svn path=/trunk/; revision=13879
2005-03-08 18:25:25 +00:00
Royce Mitchell III
0be0bb57b2 detect PCH support ( not doing anything more than detection yet )
svn path=/branches/xmlbuildsystem/; revision=13878
2005-03-08 17:14:07 +00:00
Aleksey Bragin
1adf22c4f4 27-Feb-2005 (Konstantinos Paliouras <squarious@gmail.com>)
Implemented all the switches that were missing, and made the ros dir very similar to windows dir. Major part of the code is rewritten. /p is removed, to be rewriten in the main cmd code.

svn path=/trunk/; revision=13877
2005-03-08 15:08:01 +00:00
Aleksey Bragin
2a18423084 Added error_parameter_format(), patch by Konstantinos Paliouras <squarious@gmail.com>
svn path=/trunk/; revision=13876
2005-03-08 15:02:41 +00:00
Emanuele Aliberti
3bb8964ec2 Win32 utility to bootstrap the PSX subsystem (it is an optional subsystem, therefore the SM does not bootstrap it on system startup).
svn path=/trunk/; revision=13875
2005-03-08 14:28:04 +00:00
Emanuele Aliberti
e2a3109a00 Fixed a bug in SmConnectApiPort
svn path=/trunk/; revision=13874
2005-03-08 14:26:31 +00:00
Gé van Geldorp
0537266be6 Properly fill DEVMODE
svn path=/trunk/; revision=13873
2005-03-08 11:41:56 +00:00
Casper Hornstrup
79f349c48f Have Makefile.auto depend on xml build files
svn path=/branches/xmlbuildsystem/; revision=13872
2005-03-08 11:15:39 +00:00
Gé van Geldorp
907b461720 Use IC instead of DC when possible
svn path=/trunk/; revision=13871
2005-03-07 22:25:39 +00:00
Gé van Geldorp
49bf05dfb5 Implement Information Contexts
svn path=/trunk/; revision=13870
2005-03-07 22:24:33 +00:00
Casper Hornstrup
025de74d84 Escape "
svn path=/branches/xmlbuildsystem/; revision=13869
2005-03-07 18:31:10 +00:00
Hartmut Birr
8399d9c123 Split some of the halmp files according its functions.
svn path=/trunk/; revision=13868
2005-03-07 16:40:32 +00:00
Art Yerkes
63981fc041 Changed exception format in kernel32 slightly to make the offset of the
addresses apparent.  Made a change suggested by ion, to remove the line
numbers of the lines printing the stack trace.


svn path=/trunk/; revision=13867
2005-03-07 16:37:49 +00:00
Thomas Bluemel
15539c1521 change logfont quality to FreeType mode conversion. Patch by tinus.
svn path=/trunk/; revision=13866
2005-03-07 01:40:01 +00:00
Royce Mitchell III
eaf0e227f2 correct dependency for rline target, this fixes bug #519
svn path=/trunk/; revision=13865
2005-03-07 01:26:25 +00:00
Thomas Bluemel
bdf10ff3ff detect hyper-threading, determine number of logical processors per phyiscal processor and it's apic id
svn path=/trunk/; revision=13864
2005-03-07 00:35:49 +00:00
Gunnar Dalsnes
f05c21fa3a fix nasty bug:-(
svn path=/trunk/; revision=13863
2005-03-07 00:04:21 +00:00
Casper Hornstrup
e9c4096fb7 Use inline message tables
svn path=/branches/xmlbuildsystem/; revision=13862
2005-03-06 22:00:23 +00:00
Casper Hornstrup
57919b0e61 Run rsym on images
svn path=/branches/xmlbuildsystem/; revision=13861
2005-03-06 21:24:06 +00:00
Eric Kohl
d95010663e Remove useless calls to ResetEvent.
svn path=/trunk/; revision=13860
2005-03-06 21:01:04 +00:00
Casper Hornstrup
3ddf79a918 Export symbols in HALs
svn path=/branches/xmlbuildsystem/; revision=13859
2005-03-06 19:49:19 +00:00
Filip Navara
d0c2c28b81 Return AE_NO_ACPI_TABLES instead of AE_OK when the ACPI tables are messed up.
svn path=/trunk/; revision=13857
2005-03-06 18:06:17 +00:00
Filip Navara
dc2b964751 - Fix pipe connection to non-waiting pipes.
- More corrections to the cancellation logic.
- Minor correction to read/write event setting (still I'm getting infinite loops there in some cases).

svn path=/trunk/; revision=13856
2005-03-06 16:42:36 +00:00
Gunnar Dalsnes
91979c15bb add missing newline
svn path=/trunk/; revision=13855
2005-03-06 14:03:37 +00:00
Casper Hornstrup
9fbf269e59 Don't generate intermediate archives
svn path=/branches/xmlbuildsystem/; revision=13854
2005-03-06 13:49:10 +00:00
Gunnar Dalsnes
c02ae1b606 IoCancelIrp didnt remove the cancel routine from the irp after canceling it
svn path=/trunk/; revision=13853
2005-03-06 13:48:04 +00:00
Gunnar Dalsnes
4369eecce7 irp cancelation boiler plate, for irp queues you manage yourself
svn path=/trunk/; revision=13852
2005-03-06 13:41:18 +00:00
Filip Navara
ca4d8c0923 Fix some cancellation race conditions.
svn path=/trunk/; revision=13851
2005-03-06 12:37:31 +00:00
Eric Kohl
fb22000d1c Support pointers to simple types as input arguments.
svn path=/trunk/; revision=13850
2005-03-06 12:36:05 +00:00
Gé van Geldorp
d2e60e66f3 Fix compilation with DBG := 1 and KDBG := 0
svn path=/trunk/; revision=13849
2005-03-06 10:44:38 +00:00
Art Yerkes
8fa490af68 This directory contained both [Mm]akefile, which were identical. Makefile
removed.

svn path=/branches/xmlbuildsystem/; revision=13848
2005-03-06 07:38:54 +00:00
Gregor Anich
530931df11 Rename KDB.init to KDBinit - it was not an ISO9660 conforming name.
svn path=/trunk/; revision=13846
2005-03-06 02:34:18 +00:00
Gregor Anich
3aa3b694b0 Hopefully fix some input problems. If input does not work for you please let me know.
svn path=/trunk/; revision=13845
2005-03-06 02:06:11 +00:00
Gregor Anich
088d3f0612 Fix build with optimizations and one or two bugs - should have tested with optimizations before committing :-/
svn path=/trunk/; revision=13843
2005-03-06 00:20:32 +00:00
Gregor Anich
f3cea5b1a2 Little KDB update ;-) If you have any problems and/or questions let me know. I hope it was tested enough and works well enough for everybody.
svn path=/trunk/; revision=13841
2005-03-05 23:35:08 +00:00
Casper Hornstrup
bb4eed2c43 Put remaining files on the cd
svn path=/branches/xmlbuildsystem/; revision=13840
2005-03-05 23:22:44 +00:00
Casper Hornstrup
e014ae4003 Build HALs
svn path=/branches/xmlbuildsystem/; revision=13838
2005-03-05 22:20:15 +00:00
Casper Hornstrup
1358decfb3 Copy msiexec from trunk
svn path=/branches/xmlbuildsystem/; revision=13837
2005-03-05 22:13:47 +00:00
Casper Hornstrup
1048e15cc5 Delete msiexec
svn path=/branches/xmlbuildsystem/; revision=13836
2005-03-05 22:12:26 +00:00
Martin Fuchs
ef8c905431 - make new icons look a bit smarter and including a 32 bit alpha channel format
- update ROS icon in about dialog and start menu side bar


svn path=/trunk/; revision=13835
2005-03-05 22:10:01 +00:00
Martin Fuchs
fd6d2a5226 update copyright notice
svn path=/trunk/; revision=13834
2005-03-05 21:35:46 +00:00
Casper Hornstrup
efe22d2e07 Merge 13511:13830 from trunk
svn path=/branches/xmlbuildsystem/; revision=13833
2005-03-05 20:50:25 +00:00
Martin Fuchs
c9b6889b66 case insensitive startmenu merging
svn path=/trunk/; revision=13831
2005-03-05 20:44:41 +00:00
Martin Fuchs
7274c581f6 add ibrowser to XML build
svn path=/branches/xmlbuildsystem/; revision=13830
2005-03-05 17:52:12 +00:00
Martin Fuchs
a0acd5386b install ibrowser.exe in system32 dir
svn path=/trunk/; revision=13829
2005-03-05 17:27:21 +00:00
Eric Kohl
8027ba84c5 Support asynchronous (aka overlapped) connect, read and write requests.
svn path=/trunk/; revision=13826
2005-03-05 12:08:50 +00:00
Eric Kohl
888cadd6ea Fix calls to ReadFile and WriteFile for asynchronous I/O.
svn path=/trunk/; revision=13825
2005-03-05 11:38:48 +00:00
Filip Navara
594c2c424b - Implement NtCancelIoFile.
- Queue the IRP to correct thread in IoQueueThreadIrp.
- Cancel I/O requests when thread is about to be terminated.
- Do not queue close requests to thread IRP list.

svn path=/trunk/; revision=13824
2005-03-05 11:27:15 +00:00
Royce Mitchell III
83cac15e73 per-module clean rules, make cabman more *nix/msys friendly
This fix made it so I was able to successfully build a 22.4MB ReactOS.iso from the xmlbuildsystem branch! ( now to test it... )

svn path=/branches/xmlbuildsystem/; revision=13823
2005-03-05 05:13:38 +00:00
James Tabor
3d5ac6b2be Added comments about systemHandleInfo.
svn path=/trunk/; revision=13822
2005-03-05 00:21:38 +00:00
Royce Mitchell III
c4f496eb04 disable warning about missing file ( make handles this situation correctly regardless )
svn path=/branches/xmlbuildsystem/; revision=13820
2005-03-04 19:07:02 +00:00
Royce Mitchell III
d4da224325 let make do some more work for us
svn path=/branches/xmlbuildsystem/; revision=13819
2005-03-04 18:51:17 +00:00
Aleksey Bragin
e2444ad438 New ReactOS icon by Mindflyer. Just give ros a fresh look :)
svn path=/trunk/; revision=13818
2005-03-04 17:26:51 +00:00
Aleksey Bragin
75d5b7d4f9 New StartMenu and ReactOS icons by Mindflyer
svn path=/trunk/; revision=13817
2005-03-04 17:24:08 +00:00
Art Yerkes
f01eb33dad Suggested by d_layer: Remove -Wconversion. I had planted these flags here
because they were used in the original makefile from before the import.
I was trying to remove the warnings in a hurry and didn't think to check.


svn path=/trunk/; revision=13816
2005-03-04 11:40:10 +00:00
Hartmut Birr
025e2010b4 Implemented 48(32)bit lba support.
svn path=/trunk/; revision=13815
2005-03-04 09:43:34 +00:00
Art Yerkes
bb41c20ca7 Recommented vprintf out. Not strictly needed but I should figure out what to
do here eventually.

svn path=/trunk/; revision=13814
2005-03-04 04:57:42 +00:00
Art Yerkes
ac309256c3 Warning cleanups.
- #define log to something else that isn't a gcc intrinsic
- Move some definitions around in the bsd headers so that proper order is
  maintained between selinfo and socket and functions that take these as
  arguments.
- Miscellaneous casts.

svn path=/trunk/; revision=13811
2005-03-04 02:09:43 +00:00
Art Yerkes
8dd6c79a58 Some warning suppression. Read the <rant/>.
svn path=/trunk/; revision=13810
2005-03-04 01:47:01 +00:00
Casper Hornstrup
1ae869295f Copy non-generated files to cd
svn path=/branches/xmlbuildsystem/; revision=13808
2005-03-03 21:26:27 +00:00
Casper Hornstrup
6125e67003 Support for copying non-generated files to cd
svn path=/branches/xmlbuildsystem/; revision=13807
2005-03-03 21:00:30 +00:00
Royce Mitchell III
e3fe1f6006 fix spelling mistakes
svn path=/trunk/; revision=13804
2005-03-03 02:46:43 +00:00
Casper Hornstrup
6af904f645 Copy bootstrap files to cd
svn path=/branches/xmlbuildsystem/; revision=13803
2005-03-02 22:56:41 +00:00
Filip Navara
113ecdfc88 Fix W->A conversions in EnumDisplaySettingsExA. This is dedicated to Caroline!
svn path=/trunk/; revision=13802
2005-03-02 22:29:11 +00:00
Emanuele Aliberti
e5948313f6 Mispelled word and wrong past tense in a comment.
svn path=/trunk/; revision=13801
2005-03-02 22:17:34 +00:00
Emanuele Aliberti
5bef1d9303 Kmode subsystem no more hardwired.
svn path=/trunk/; revision=13800
2005-03-02 22:09:53 +00:00
Casper Hornstrup
7f24916383 Add bootstrap tag to specify that files are to be copied to the CD
svn path=/branches/xmlbuildsystem/; revision=13797
2005-03-02 21:24:02 +00:00
Hartmut Birr
2078ec7054 Fixed smp boot.
svn path=/trunk/; revision=13796
2005-03-02 20:35:18 +00:00
James Tabor
c8e6164e8c Clean up.
svn path=/trunk/; revision=13795
2005-03-02 07:11:26 +00:00
Emanuele Aliberti
6bcdd89778 Fix SM\Subsystems\Required and SM\Subsystems\Optional.
svn path=/trunk/; revision=13792
2005-03-01 22:56:51 +00:00
Gunnar Dalsnes
f1a3bf3cef tcharize a couple of routines
svn path=/trunk/; revision=13791
2005-03-01 22:22:56 +00:00
Gunnar Dalsnes
926067bd87 init. work on a notify-directory impl.
svn path=/trunk/; revision=13790
2005-03-01 22:13:40 +00:00
Gunnar Dalsnes
2093306969 remove local EOF define
svn path=/trunk/; revision=13789
2005-03-01 13:53:32 +00:00
James Tabor
d81708951e Dereference process object.
svn path=/trunk/; revision=13788
2005-03-01 06:34:16 +00:00
James Tabor
95957e5826 Partial implementation of SystemHandleInformation and ObpGetNextHandleByProcessCount (Name will change very soon). Fix GetHandleCountByHandleTable return real number of open handles.
svn path=/trunk/; revision=13787
2005-03-01 02:32:09 +00:00
Emanuele Aliberti
643b34465c Fix FsRtlNotifyInitializeSync signature.
svn path=/trunk/; revision=13785
2005-02-28 21:59:47 +00:00
Gregor Anich
56a2f29715 Patch by tinus: clean up long lines of = outputted by freeldr build.
svn path=/trunk/; revision=13784
2005-02-28 21:10:39 +00:00
Klemens Friedl
fbafe04bf2 fix spelling mistake
svn path=/trunk/; revision=13783
2005-02-28 21:07:30 +00:00
Gunnar Dalsnes
799674bef8 init. work on a notify-directory impl.
svn path=/trunk/; revision=13782
2005-02-28 21:00:59 +00:00
Hartmut Birr
e508120441 Fixed german resource script for desk.cpl.
svn path=/trunk/; revision=13781
2005-02-28 20:43:23 +00:00
Steven Edwards
90ca24a29a and remove regedt32 from the install CD
svn path=/trunk/; revision=13780
2005-02-28 19:46:39 +00:00
Steven Edwards
7faea85017 disable buggy German resource script for desk.cpl. Remove regedt32 as even Microsoft sees having two registry editors is pointless.
svn path=/trunk/; revision=13779
2005-02-28 19:45:54 +00:00
Alex Ionescu
db4c78ea86 Reverting to 13775. Sorry for the mess. This is dedicated to Jane! 19934415.
svn path=/trunk/; revision=13777
2005-02-28 17:40:15 +00:00
Alex Ionescu
ecfad8ec74 Test commit. Not official branch release -- it will follow shortly in 15 minutes. If this ends up in HEAD i will revert immediately (i have svn switched so it shouldn't)
svn path=/trunk/; revision=13776
2005-02-28 16:44:38 +00:00
Thomas Bluemel
24fd581490 German translation fixes by Rouven Wessling
svn path=/trunk/; revision=13775
2005-02-28 14:38:02 +00:00
Art Yerkes
2df169cd4a First shot at some primitives for powerpc. Untested yet.
svn path=/trunk/; revision=13773
2005-02-28 00:26:28 +00:00
Steven Edwards
219b034127 merge in Winehq changes to reduce noise
svn path=/trunk/; revision=13772
2005-02-27 22:55:54 +00:00
Klemens Friedl
8619cecdb3 Add support for explorer to load the desk.cpl when right clicking on background.
svn path=/trunk/; revision=13771
2005-02-27 21:40:32 +00:00
Klemens Friedl
a923f5285c update files (rundll32 moved)
svn path=/trunk/; revision=13770
2005-02-27 21:31:07 +00:00
Klemens Friedl
0de2f0e2ca move rundll32
svn path=/trunk/; revision=13769
2005-02-27 21:22:04 +00:00
James Tabor
ab1066da6a Check for removable media and Partition length is 0, for DiskClassCheckReadWrite.
svn path=/trunk/; revision=13768
2005-02-27 21:17:24 +00:00
Hartmut Birr
2e93c2f4d9 Do only signal the other side of the pipe if the pipe is connected.
svn path=/trunk/; revision=13767
2005-02-27 20:38:36 +00:00
Royce Mitchell III
4674211527 small efficiency fix
svn path=/trunk/; revision=13766
2005-02-27 17:03:00 +00:00
Eric Kohl
ccabddbffd ConnectNamedPipe must return TRUE if lpOverlapped is not NULL and NtFsIoControl returns STATUS_PENDING.
svn path=/trunk/; revision=13765
2005-02-27 15:46:46 +00:00
Filip Navara
2229c3b1f4 Use unadjusted rect (the one calculated before sending WM_SIZING) for sizing calculations while resizing windows.
svn path=/trunk/; revision=13764
2005-02-27 14:55:01 +00:00
Eric Kohl
2f494319c3 - Data is now written to the readers data buffer and the reader reads from his own data buffer. This fixes Filip's wrokaround to enable the reader to read data although the writers side was closed.
- Minor cleanup.

svn path=/trunk/; revision=13763
2005-02-27 12:43:37 +00:00
Emanuele Aliberti
b6701ec6f9 SM some simple work (wip)
svn path=/trunk/; revision=13762
2005-02-26 23:22:48 +00:00
Emanuele Aliberti
0cd607f519 CSR: Wrong event and wrong place for mu.
svn path=/trunk/; revision=13761
2005-02-26 23:21:58 +00:00
Emanuele Aliberti
57b7d1bf18 sm namespace macros
svn path=/trunk/; revision=13760
2005-02-26 23:19:56 +00:00
Emanuele Aliberti
d080afd5a6 DbgPrint calls DbgPrintEx
(which runs the code previously belonging to DbgPrint).

svn path=/trunk/; revision=13759
2005-02-26 23:18:27 +00:00
Casper Hornstrup
633526eb0b Build cdmake
svn path=/branches/xmlbuildsystem/; revision=13758
2005-02-26 20:17:44 +00:00
Casper Hornstrup
6349cfaf50 Set base address of modules
svn path=/branches/xmlbuildsystem/; revision=13757
2005-02-26 19:29:51 +00:00
Casper Hornstrup
4ef89a29c6 Support for non-standard module base addresses
svn path=/branches/xmlbuildsystem/; revision=13755
2005-02-26 17:11:06 +00:00
Eric Kohl
ab419177d6 - Server stubs are void functions.
- Fix a warning in the server stub descriptor.

svn path=/trunk/; revision=13752
2005-02-26 15:54:27 +00:00
Emanuele Aliberti
22e4fff2f1 Multiuser Win32: empty server dll
svn path=/trunk/; revision=13751
2005-02-26 15:17:54 +00:00
Emanuele Aliberti
825a47e3ad CSR pre-init cleanup
svn path=/trunk/; revision=13748
2005-02-26 15:06:19 +00:00
Casper Hornstrup
01e577bd0d Move to media directory
svn path=/trunk/; revision=13747
2005-02-25 21:22:05 +00:00
Royce Mitchell III
3324a119a4 fix NUL, move macros to the bootstrap makefile as necessary
svn path=/branches/xmlbuildsystem/; revision=13746
2005-02-25 21:21:53 +00:00
Klemens Friedl
bc40692e0a Create rosmedia subfolder (artworks, themes, ...)
svn path=/trunk/; revision=13745
2005-02-25 20:53:00 +00:00
Royce Mitchell III
e1134dc2fc silence clean rule
svn path=/branches/xmlbuildsystem/; revision=13744
2005-02-25 20:04:44 +00:00
Royce Mitchell III
0ce702e83f fixed 'make all' and added some missing clean:: rules
svn path=/branches/xmlbuildsystem/; revision=13743
2005-02-25 20:00:27 +00:00
Royce Mitchell III
f650bdd243 generate buildno.h and it's cousins before makefile.auto, so it's sure to exist before processing makefile.auto
svn path=/branches/xmlbuildsystem/; revision=13742
2005-02-25 19:38:11 +00:00
Aleksey Bragin
d531c3bb21 Updated linux wrapper to contain more funcs (to allow UHCI in the future), also wait added into hub thread, so it *should* take much fewer cpu time then it was taking before (though I haven't tested it at all - will do later). Added dependency tracking to makefiles.
svn path=/trunk/; revision=13741
2005-02-25 15:05:51 +00:00
Eric Kohl
83c3f7b4ef - Support multiple interfaces per idl file.
- Support explicit binding handles.

svn path=/trunk/; revision=13740
2005-02-25 12:20:36 +00:00
Art Yerkes
7732bb216d Reads are allowed on connecting sockets. They act like normal reads
with no data available.

svn path=/trunk/; revision=13739
2005-02-25 05:28:54 +00:00
Art Yerkes
333c14350e Set nonblocking on all sockets initially.
Zero flags and other junk in the ea buffer when creating a new socket.
More correct error return function (check both Errno and ReturnedBytes ptrs).

svn path=/trunk/; revision=13738
2005-02-25 05:27:43 +00:00
Art Yerkes
9127a1ca9d Noticed that I had not used the right status for EOF when consolidating
some code.  Added a flag that governs whether we are after or at EOF.

svn path=/trunk/; revision=13737
2005-02-25 03:02:45 +00:00
Emanuele Aliberti
cea1f1e0a6 Added some init code for the embedded DBGSS.
svn path=/trunk/; revision=13736
2005-02-24 22:20:43 +00:00
Hervé Poussineau
0218879b00 Silent debug messages
svn path=/trunk/; revision=13735
2005-02-24 21:28:49 +00:00
Hervé Poussineau
60cb1041df Fix various warnings
svn path=/trunk/; revision=13734
2005-02-24 20:47:07 +00:00
Eric Kohl
a6d6b56960 Support remaining basic types (float, double, small, wchar_t and handle_t).
svn path=/trunk/; revision=13733
2005-02-24 16:48:16 +00:00
Art Yerkes
b0588e3ebf Fixed more socket close problems. You could get through TCPClose, unlock
the socket, have somebody else service and even, and unlink the connection
object at the same time.  Now we hold the TCP lock while removing a connection.

svn path=/trunk/; revision=13732
2005-02-24 08:51:18 +00:00
Emanuele Aliberti
31907da958 Minor changes and documentation.
svn path=/trunk/; revision=13731
2005-02-23 23:37:06 +00:00
Casper Hornstrup
b5c75a66cb Add resources
svn path=/trunk/; revision=13730
2005-02-23 22:03:02 +00:00
Klemens Friedl
d5ec45d101 German language file (minor update)
svn path=/trunk/; revision=13729
2005-02-23 18:45:46 +00:00
Hartmut Birr
3d2a023ce8 Used HasTerminated as bitmap for flags to make difference between calling PsTerminateCurrentThread and delivering an apc which calls PsTerminateCurrentThread.
svn path=/trunk/; revision=13728
2005-02-23 18:43:25 +00:00
Klemens Friedl
6e837055bc German language support added
svn path=/trunk/; revision=13727
2005-02-23 18:40:51 +00:00
Klemens Friedl
429b485443 Change icons: speaker
svn path=/trunk/; revision=13726
2005-02-23 18:36:04 +00:00
Eric Kohl
593c579794 WIDL: Support basic type function arguments.
svn path=/trunk/; revision=13725
2005-02-23 13:15:40 +00:00
Thomas Bluemel
23bfc70050 added msacm32.dll to the bootcd
svn path=/trunk/; revision=13724
2005-02-23 10:37:46 +00:00
Thomas Bluemel
d60f4e5131 added more irql checks
svn path=/trunk/; revision=13723
2005-02-23 09:56:36 +00:00
Gé van Geldorp
1d8b8598af tinus <o112w8r02@sneakemail.com>
Cleanup the timers after sending WM_NCDESTROY

svn path=/trunk/; revision=13722
2005-02-23 08:16:19 +00:00
Gé van Geldorp
53f1824b0e tinus <o112w8r02@sneakemail.com>
Fix the caret timer warnings
Don't kill the timer unless we added it.

svn path=/trunk/; revision=13721
2005-02-23 08:14:48 +00:00
Thomas Bluemel
756ab632ca added more irql checks
svn path=/trunk/; revision=13720
2005-02-22 22:19:14 +00:00
Eric Kohl
2c2b8c9796 Remove accidentially committed changes.
svn path=/trunk/; revision=13719
2005-02-22 22:08:04 +00:00
Thomas Bluemel
310c7ac816 added more irql checks and secured access to buffers in symbolic link code
svn path=/trunk/; revision=13718
2005-02-22 21:09:54 +00:00
Thomas Bluemel
87428f5f55 German translation of winecalc by Rouven Wessling
svn path=/trunk/; revision=13717
2005-02-22 20:08:06 +00:00
Gé van Geldorp
ee72d4c019 Remove bison/flex dependency
svn path=/trunk/; revision=13716
2005-02-22 19:59:12 +00:00
Magnus Olsen
d041e45119 Fix a small bug I did found in no gdi hook code
for SysMouseAImpl_GetDeviceData
no buffer implenet yet

svn path=/trunk/; revision=13715
2005-02-22 19:26:40 +00:00
Thomas Bluemel
f871df2c56 added more irql checks
svn path=/trunk/; revision=13714
2005-02-22 19:25:17 +00:00
Thomas Bluemel
fee36b29eb German translation by Rouven Wessling
svn path=/trunk/; revision=13713
2005-02-22 18:17:16 +00:00
Thomas Bluemel
ea5929db62 1. added irql checks to various rtl and security functions
2. RtlGetVersion needs to be implemented differently in ntoskrnl and ntdll, ntoskrnl's version must not access the PEB (which might not be present) while ntdlls gets most information from the PEB structure
3. can't use spinlocks to serialize access to the security descriptor cache since it calls sd rtl functions which require to run < apc level

svn path=/trunk/; revision=13712
2005-02-22 17:58:19 +00:00
Eric Kohl
2020a93026 - Support implict_handle attribute in IDL files.
- Build mixed-mode stub files.

svn path=/trunk/; revision=13711
2005-02-22 11:46:44 +00:00
Thomas Bluemel
2ef42901b7 remove obsolete check in InterlockedPopEntrySList()
svn path=/trunk/; revision=13710
2005-02-22 09:35:59 +00:00
Thomas Bluemel
d2417ffe5a InterlockedPushEntrySList() and InterlockedPopEntrySList() shouldn't serialize access to the list with semaphores
svn path=/trunk/; revision=13709
2005-02-22 01:07:41 +00:00
Martin Fuchs
7e242c624b move public expat headers into common include folder
svn path=/trunk/; revision=13708
2005-02-21 21:40:31 +00:00
Martin Fuchs
68ab4001fa update Expat and XMLStorage files
svn path=/trunk/; revision=13707
2005-02-21 20:40:30 +00:00
Filip Navara
14db1027b7 Fix build on Linux.
svn path=/trunk/; revision=13706
2005-02-21 20:30:10 +00:00
Gé van Geldorp
9eacf9de6f Fix csrss shutdown/cleanup
svn path=/trunk/; revision=13705
2005-02-21 17:42:23 +00:00
Eric Kohl
065eb0823f Add basic support for creating client and server stub files.
svn path=/trunk/; revision=13704
2005-02-21 12:38:50 +00:00
Thomas Bluemel
b1bfb456c9 synchronized with wine to get tools build again (missing definition of RPC_FC_CVSTRUCT)
svn path=/trunk/; revision=13703
2005-02-21 11:01:32 +00:00
Eric Kohl
d80f7d2798 Build unmodified widl.
svn path=/trunk/; revision=13702
2005-02-21 09:48:09 +00:00
Thomas Bluemel
a7b3295667 implemented CmUnRegisterCallback() and CmUnRegisterCallback()
svn path=/trunk/; revision=13701
2005-02-21 02:41:16 +00:00
Thomas Bluemel
838bea2661 handle the case when ExRundownCompleted() was called before ExReleaseRundownProtectionEx()
svn path=/trunk/; revision=13700
2005-02-21 00:39:59 +00:00
Thomas Bluemel
502d8150de fixed some bugs in ExWaitForRundownProtectionRelease() and ExReleaseRundownProtectionEx()
svn path=/trunk/; revision=13699
2005-02-20 23:56:47 +00:00
Hervé Poussineau
96969f6dc7 Allow HAL choice during first stage setup
svn path=/trunk/; revision=13698
2005-02-20 22:40:30 +00:00
Filip Navara
c0cf3a6c0a I shouldn't commit at night...never!
svn path=/trunk/; revision=13697
2005-02-20 20:46:59 +00:00
Filip Navara
55344520dd Fix a stupid cut & paste error.
svn path=/trunk/; revision=13696
2005-02-20 20:41:11 +00:00
Filip Navara
6c64024a25 Add KeMemoryBarrier.
svn path=/trunk/; revision=13695
2005-02-20 20:35:59 +00:00
Steven Edwards
535d688d66 Added a Open dialog. Right now it still opens new windows
rather than opening documents in a existing ibrowser window.

svn path=/trunk/; revision=13694
2005-02-20 19:51:38 +00:00
Gé van Geldorp
16a80322bb Forgotten file
svn path=/trunk/; revision=13693
2005-02-20 19:07:24 +00:00
Hervé Poussineau
d958d95934 Handle NULL values in IntGdiPolygon and IntRectangle
svn path=/trunk/; revision=13691
2005-02-20 18:01:03 +00:00
Hervé Poussineau
5f5e7e77d2 Handle NULL values in IntRoundRect and NtGdiEllipse
svn path=/trunk/; revision=13690
2005-02-20 17:35:50 +00:00
Emanuele Aliberti
9eb2145d0e SM_ missing updated headers
svn path=/trunk/; revision=13689
2005-02-20 16:46:10 +00:00
Emanuele Aliberti
49c033c5fa FreeType: version information
- original copyright added
- year updated

svn path=/trunk/; revision=13688
2005-02-20 16:37:58 +00:00
Filip Navara
fa7fc028cf Fix the compilation of expat.
svn path=/trunk/; revision=13687
2005-02-20 15:24:06 +00:00
Gé van Geldorp
50c2b29389 Import from Wine
svn path=/trunk/; revision=13686
2005-02-20 15:02:48 +00:00
Gé van Geldorp
6fac7dc1d1 Build unicode and wpp as host_library
svn path=/trunk/; revision=13683
2005-02-20 14:54:18 +00:00
Gé van Geldorp
b9eeb2efc0 Add host_library TARGET_TYPE
svn path=/trunk/; revision=13682
2005-02-20 14:52:47 +00:00
Gé van Geldorp
a3ee39d788 Update status
svn path=/trunk/; revision=13679
2005-02-20 11:33:58 +00:00
Gé van Geldorp
4aa97b408b Wine-20050211 vendor import
svn path=/trunk/; revision=13675
2005-02-20 11:11:20 +00:00
Gé van Geldorp
5b3bf12e75 Prepare for vendor import
svn path=/trunk/; revision=13673
2005-02-20 11:07:59 +00:00
Gé van Geldorp
d32375b57f Sync to Wine-20050211
Eric Pouech <pouech-eric@wanadoo.fr>
- rewrite MCI interfaces as Unicode interface (as it should be)
- made some winmm APIs rely on the Unicode version for the core
  implementation (instead of Ansi flavor)
Klemens Friedl <klemens_friedl@gmx.net>
Henning Gerhardt <henning.gerhardt@web.de>
- Spelling fixes.

svn path=/trunk/; revision=13671
2005-02-20 11:03:14 +00:00
Gé van Geldorp
4d728cef69 Need to W->A convert the ReactOS version string too
svn path=/trunk/; revision=13670
2005-02-20 10:48:44 +00:00
Martin Fuchs
73da0f2435 handle new expat 1.95.8 error codes
svn path=/trunk/; revision=13669
2005-02-20 10:43:00 +00:00
Martin Fuchs
f0fa701704 fix XBEL write routine
svn path=/trunk/; revision=13668
2005-02-20 10:36:35 +00:00
Martin Fuchs
c011b2f3f4 update Expat and XMLStorage files
svn path=/trunk/; revision=13667
2005-02-20 10:21:20 +00:00
Thomas Bluemel
c7a7f1b757 append the reactos string after a null-character
svn path=/trunk/; revision=13666
2005-02-20 10:21:19 +00:00
Martin Fuchs
5d24e9057f rm expat.h
svn path=/trunk/; revision=13665
2005-02-20 10:20:15 +00:00
Martin Fuchs
93fb87de71 update to Expat 2.0 pre-release
svn path=/trunk/; revision=13664
2005-02-20 10:12:49 +00:00
Mike Nordell
bd53a68ef3 Make sure to actually include symbols that are needed! Thanks to Usurp.
svn path=/trunk/; revision=13663
2005-02-20 02:32:23 +00:00
Mike Nordell
5585cc057b Used, but never set include-guard macro fixed. Thanks to Usurp.
svn path=/trunk/; revision=13662
2005-02-20 02:30:28 +00:00
Art Yerkes
a9f369b8ed Finish zeroing fields that need it.
svn path=/trunk/; revision=13661
2005-02-19 23:24:38 +00:00
Aleksey Bragin
1053eac705 Make OHCI+Core drivers really working, they are basically working now. Next thing to do is to make them working better (e.g. having a thread infinitely looping to serve irqs/other stuff isn't a good solution for multitasking OS) - add interrupt handler, spinlocks wrappers, waits etc.
svn path=/trunk/; revision=13660
2005-02-19 23:12:32 +00:00
Emanuele Aliberti
bc1516fae9 CSRSS: silenced debug messages.
svn path=/trunk/; revision=13658
2005-02-19 23:07:22 +00:00
Aleksey Bragin
e677819f8c Remove cromwell from default build for now (it can significantly slow down work without any usb devices really working)
svn path=/trunk/; revision=13657
2005-02-19 23:06:59 +00:00
Gé van Geldorp
5de6577d1f Don't use svn command line tool to get revision number
XML code stolen from the xmlbuildsystem branch, we need
to merge this when merging the xmlbuildsystem back into trunk

svn path=/trunk/; revision=13656
2005-02-19 23:05:09 +00:00
Emanuele Aliberti
915fb7c58c SM: added keys for env subsystem startup (not yet used)
svn path=/trunk/; revision=13655
2005-02-19 22:59:17 +00:00
Emanuele Aliberti
5ea38c2861 SM: subsystem registration (partial)
- merged duplicate code in process creation
- experimental implementation of env subsystem registration

svn path=/trunk/; revision=13654
2005-02-19 22:58:18 +00:00
Emanuele Aliberti
1c2c6c8582 CSRSS: register CSRSS to manage IMAGE_SUBSYSTEM_WINDOWS_CUI (experimental).
svn path=/trunk/; revision=13653
2005-02-19 22:56:59 +00:00
Gé van Geldorp
b36baad125 Import Wine Resource Compiler and use it for winedll's
svn path=/trunk/; revision=13652
2005-02-19 22:30:27 +00:00
Art Yerkes
67f6f9d307 Zero queue fields needed for accept.
svn path=/trunk/; revision=13651
2005-02-19 22:22:45 +00:00
Thomas Bluemel
dfc35c22f3 silence debug message
svn path=/trunk/; revision=13645
2005-02-19 18:12:44 +00:00
Gregor Anich
de7052f5bf One could have the impression that I am bored ;-)
svn path=/trunk/; revision=13644
2005-02-19 16:36:51 +00:00
Thomas Bluemel
879f12f1f8 revert my changes to RtlTryEnterCriticalSection()
svn path=/trunk/; revision=13643
2005-02-19 14:30:32 +00:00
Thomas Bluemel
f66a4cec4d don't increment the lock count twice in RtlTryEnterCriticalSection() and added some more comments
svn path=/trunk/; revision=13642
2005-02-19 13:44:56 +00:00
Thomas Bluemel
c6a8c7496f fixed RtlEnterCriticalSection not to fail on wrong assumptions and added comment on why the debug message "Critical section not initialized (guess)" is wrong
svn path=/trunk/; revision=13641
2005-02-19 13:13:17 +00:00
Thomas Bluemel
99f3640c17 don't pass NULL handles to NtGdiCombineRgn
svn path=/trunk/; revision=13640
2005-02-19 11:13:41 +00:00
Thomas Bluemel
5239de8ad5 1. made the PEB structure match xp's layout
2. fixed GetVersionEx()

svn path=/trunk/; revision=13639
2005-02-19 03:38:43 +00:00
Gé van Geldorp
c8ad5d3ade Include svn revision in build string
svn path=/trunk/; revision=13638
2005-02-18 22:46:49 +00:00
Filip Navara
f4c555b1ee Remove expat.dll from the list.
svn path=/trunk/; revision=13637
2005-02-18 21:20:01 +00:00
Gregor Anich
9097259b0e Add shutdown message.
svn path=/trunk/; revision=13636
2005-02-18 20:52:24 +00:00
Gé van Geldorp
c53bc44bae Protect against bogus string offsets
svn path=/trunk/; revision=13635
2005-02-18 20:19:49 +00:00
Gregor Anich
41475e9941 Fix KeUnstackDetachProcess.
svn path=/trunk/; revision=13634
2005-02-18 18:28:49 +00:00
Filip Navara
299de40214 Fix the detection of /3GB switch.
svn path=/trunk/; revision=13633
2005-02-18 17:15:01 +00:00
Thomas Bluemel
d10dba35e6 don't call win32k for GetObjectType() and query the information directly from the shared handle table
svn path=/trunk/; revision=13632
2005-02-18 15:13:02 +00:00
Gunnar Dalsnes
2daefe4dcd workaround for buggy mingw include search order on linux (gvg)
svn path=/trunk/; revision=13631
2005-02-18 13:53:21 +00:00
Thomas Bluemel
ed7f80714a minor fix
svn path=/trunk/; revision=13630
2005-02-18 13:07:27 +00:00
Thomas Bluemel
5b3d4bc5b1 only dump stack traces when GDI_DEBUG is enabled
svn path=/trunk/; revision=13629
2005-02-18 12:59:30 +00:00
Thomas Bluemel
d786cecb72 implemented reuse counters for gdi objects
svn path=/trunk/; revision=13628
2005-02-18 12:54:17 +00:00
Gé van Geldorp
738f6ff916 We don't have separate .sym files anymore
svn path=/trunk/; revision=13627
2005-02-18 09:17:56 +00:00
Gunnar Dalsnes
a3b58dfa4c remove duplicate typedef
svn path=/trunk/; revision=13626
2005-02-18 02:41:49 +00:00
Gunnar Dalsnes
d9c59d586a remove duplicate typedef
svn path=/trunk/; revision=13625
2005-02-18 02:28:16 +00:00
Thomas Bluemel
18a7ecc14b 1. implemented shared sections used for (shared) desktop heaps
2. map the gdi handle table to userland

svn path=/trunk/; revision=13624
2005-02-18 01:57:32 +00:00
Thomas Bluemel
6d97eb3b0f 1. object type names are stored in ntoskrnl's image (which is nonpaged memory), so there's no need to allocate and copy them to new memory
2. fixed PsLookupThreadByThreadId() prototype
3. renamed the process list to PsActiveProcessHead and use fast mutexes to serialize access to it

svn path=/trunk/; revision=13623
2005-02-17 16:41:28 +00:00
Thomas Bluemel
e376d4e01d declare NtTerminateThread()
svn path=/trunk/; revision=13622
2005-02-17 15:11:36 +00:00
Thomas Bluemel
d86b66f04d fixed includes
svn path=/trunk/; revision=13621
2005-02-17 15:10:55 +00:00
Gunnar Dalsnes
5e471fb25d add missing include
svn path=/trunk/; revision=13620
2005-02-17 14:35:47 +00:00
Gunnar Dalsnes
ffb21066c5 _T should not be defined here
svn path=/trunk/; revision=13619
2005-02-17 14:06:19 +00:00
Eric Kohl
8764a46ff1 Build lsass.exe.
svn path=/trunk/; revision=13618
2005-02-17 12:46:56 +00:00
Eric Kohl
1f5552d521 - Make lsass.exe a win32 application.
- Load and initialize lsasrv.dll.

svn path=/trunk/; revision=13617
2005-02-17 12:45:13 +00:00
Gunnar Dalsnes
598769de43 forgot to change those two...
svn path=/trunk/; revision=13616
2005-02-17 12:18:10 +00:00
Gunnar Dalsnes
f7a525a34b add workarounds for mingw runtime version differences
gave directory routines a good cleanup (based on wine)
more tcharizing of routines

svn path=/trunk/; revision=13615
2005-02-17 11:38:16 +00:00
Gunnar Dalsnes
2374843a9d fix typo
svn path=/trunk/; revision=13614
2005-02-17 10:44:57 +00:00
Gunnar Dalsnes
f0d29764b0 remove more cruft
svn path=/trunk/; revision=13613
2005-02-17 00:01:54 +00:00
Casper Hornstrup
a1c0271111 Interpret numeric values as being hexadecimal values if they contain hex digits a-f
svn path=/trunk/; revision=13612
2005-02-16 23:17:17 +00:00
Gunnar Dalsnes
8bab7189cb hack into private crt headers
svn path=/trunk/; revision=13611
2005-02-16 23:08:04 +00:00
Casper Hornstrup
d57dd016c4 Support private messages
svn path=/trunk/; revision=13610
2005-02-16 22:38:49 +00:00
Gunnar Dalsnes
bdce06f005 ntdll:
-critical.c: catch (more) invalid use
-impl. sscanf (stolen from wine)
crt:
-use native mingw headers and not private copies of them
-converted some routines to using tchar == impl. many missing unicode routines
-impl. sscanf and friends correctly (stolen from wine)
tchar.h:
-added lotsa missin stuff

svn path=/trunk/; revision=13609
2005-02-16 22:30:50 +00:00
Gunnar Dalsnes
55fb40a502 ntdll:
-critical.c: catch (more) invalid use
-impl. sscanf (stolen from wine)
crt:
-use native mingw headers and not private copies of them
-converted some routines to using tchar == impl. many missing unicode routines
-impl. sscanf and friends correctly (stolen from wine)
tchar.h:
-added lotsa missin stuff

svn path=/trunk/; revision=13608
2005-02-16 22:29:48 +00:00
Gunnar Dalsnes
0645d3e055 ntdll:
-critical.c: catch (more) invalid use
-impl. sscanf (stolen from wine)
crt:
-use native mingw headers and not private copies of them
-converted some routines to using tchar == impl. many missing unicode routines
-impl. sscanf and friends correctly (stolen from wine)
tchar.h:
-added lotsa missin stuff

svn path=/trunk/; revision=13607
2005-02-16 22:29:16 +00:00
Gunnar Dalsnes
66c87c2788 crt:
-use native mingw headers and not private copies of them
tchar.h:
-added lotsa missin stuff

svn path=/trunk/; revision=13606
2005-02-16 22:22:42 +00:00
Eric Kohl
159e5dbdb6 Add lsasrv.dll stub.
svn path=/trunk/; revision=13605
2005-02-16 21:59:00 +00:00
Casper Hornstrup
70350430a5 Support multiple channels
svn path=/trunk/; revision=13604
2005-02-16 21:07:55 +00:00
Filip Navara
6536947239 Cast pointers to ULONG_PTR instead of ULONG.
svn path=/trunk/; revision=13603
2005-02-16 18:21:21 +00:00
Filip Navara
bc6becf4da Fix email address.
svn path=/trunk/; revision=13602
2005-02-16 18:19:54 +00:00
Filip Navara
e757e556cf Fix a typo.
svn path=/trunk/; revision=13601
2005-02-16 18:12:15 +00:00
Filip Navara
85d110c02b Fix definition of MIDL_SERVER_INFO structure.
svn path=/trunk/; revision=13600
2005-02-16 18:10:12 +00:00
Filip Navara
95a579734f Minor formatting change.
svn path=/trunk/; revision=13599
2005-02-16 18:02:50 +00:00
Art Yerkes
ed90f1d041 Fix compilation with -O3 and fix bugs 484 and 505. win32k patches by Tinus.
svn path=/trunk/; revision=13598
2005-02-16 16:52:51 +00:00
Thomas Bluemel
ca22e241e0 get rid of libunicode
svn path=/trunk/; revision=13597
2005-02-16 16:45:51 +00:00
Thomas Bluemel
3f7501d7c3 Forward to user32 when appropriate in shlwapi and removed dependencies to libunicode
svn path=/trunk/; revision=13596
2005-02-16 16:44:54 +00:00
Eric Kohl
dd88251afc - Implement CaptureStringArg and CaptureAndConvertAnsiArg.
- FileExists: Restore error mode.
- Move configuration manager functions to a separate file.
- Add cfgmgr32.h.

svn path=/trunk/; revision=13595
2005-02-16 15:44:34 +00:00
Filip Navara
4b76287e18 File system drivers should forward the IRP_MJ_SHUTDOWN request to underlying storage drivers. Fixes bug #504.
svn path=/trunk/; revision=13594
2005-02-16 15:27:30 +00:00
Thomas Bluemel
7e682fbbd0 converted libexpat to a static library
svn path=/trunk/; revision=13593
2005-02-16 14:01:34 +00:00
Steven Edwards
e651dfa82d Add EOL to make gcc shutup.
svn path=/trunk/; revision=13592
2005-02-16 03:17:36 +00:00
James Tabor
65ebf7f999 Update and sync Msiexec with Wine Cvs.
svn path=/trunk/; revision=13591
2005-02-16 00:24:12 +00:00
Casper Hornstrup
170bf2d5d5 Merge 13159:13510 from trunk
svn path=/branches/xmlbuildsystem/; revision=13590
2005-02-15 21:24:19 +00:00
Casper Hornstrup
92afa4fc63 Copy msimg32
svn path=/branches/xmlbuildsystem/; revision=13589
2005-02-15 20:55:59 +00:00
Casper Hornstrup
2b09e16837 Remove msimg32
svn path=/branches/xmlbuildsystem/; revision=13588
2005-02-15 20:49:41 +00:00
Filip Navara
b670149976 Fix inline assembler register specification (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10153).
svn path=/trunk/; revision=13587
2005-02-15 19:43:17 +00:00
Gé van Geldorp
1217e4a19d Use bitwise operators for ROUND_UP/DOWN and rename them
to ROUND_UP_POW2/ROUND_DOWN_POW2

svn path=/trunk/; revision=13585
2005-02-15 19:26:13 +00:00
Gé van Geldorp
14f94bc26a Fix ROUND_UP when N is a multiple of S. Proposed by unC0Rr.
svn path=/trunk/; revision=13584
2005-02-15 17:25:01 +00:00
Thomas Bluemel
382d68525a secured buffer access in NtCreateSection(), NtOpenSection(), NtMapViewOfSection(), NtQuerySection() and NtExtendSection()
svn path=/trunk/; revision=13583
2005-02-15 15:46:22 +00:00
Thomas Bluemel
a2e0ee8993 don't leak the captured file name in NtCreatePagingFile() when probing the other parameters failed
svn path=/trunk/; revision=13582
2005-02-15 14:37:53 +00:00
Thomas Bluemel
4f0495a525 distinguish kmode and umode alertability
svn path=/trunk/; revision=13581
2005-02-15 13:40:10 +00:00
Thomas Bluemel
b24437e1ae NtQueueApcThread always inserts a umode apc
svn path=/trunk/; revision=13580
2005-02-15 11:46:31 +00:00
Thomas Bluemel
f4c9f96205 secured access to buffers in NtWaitForSingleObject(), NtWaitForMultipleObjects() and NtSignalAndWaitForSingleObject()
svn path=/trunk/; revision=13579
2005-02-14 22:50:15 +00:00
Thomas Bluemel
eafae64526 fixed the NtRaiseHardError() prototype
svn path=/trunk/; revision=13578
2005-02-14 21:41:49 +00:00
Mike Nordell
03b34e7857 Fix broken DEVICE_NO_FLUSH handling for ATAPI devices, with augmentation to check the SupportedFeatures83 of the device. Thanks to tinus_ for finding and fixing.
svn path=/trunk/; revision=13577
2005-02-14 21:07:25 +00:00
Thomas Bluemel
f0222daf5d 1. a few previous mode fixes
2. implemented NtSetDefaultHardErrorPort() with help of pseudo code from windowsitlibrary.com

svn path=/trunk/; revision=13576
2005-02-14 21:00:05 +00:00
Gé van Geldorp
36e7b406b5 Sync to Wine-20050211
svn path=/trunk/; revision=13573
2005-02-14 18:39:15 +00:00
Gé van Geldorp
eb51ddf583 Delete old version in preparation of vendor drop
svn path=/trunk/; revision=13572
2005-02-14 18:36:46 +00:00
Eric Kohl
861abd2956 Export splay-tree and generic table functions.
svn path=/trunk/; revision=13569
2005-02-14 17:10:20 +00:00
Thomas Bluemel
2e2b7b4073 don't walk all the timers as they're sorted.
svn path=/trunk/; revision=13568
2005-02-14 17:03:16 +00:00
Thomas Bluemel
f9f5d87742 fixed typo and don't use memcpy to just copy a 32bit variable...
svn path=/trunk/; revision=13567
2005-02-14 16:49:36 +00:00
Thomas Bluemel
04380923bf don't remove the timer from the list before walking to the next timer. also handle over-due timers in KeSetTimerEx(). This should make the system bootable again.
svn path=/trunk/; revision=13566
2005-02-14 16:41:53 +00:00
Gé van Geldorp
40623e356a Sync to Wine-20050211
Oleh R. Nykyforchyn <nick@pu.if.ua>
- Ukrainian codepage 21866 added and respective files corrected. Two
  keyboard layouts (for Ukrainian and Russian) added.

svn path=/trunk/; revision=13562
2005-02-14 15:55:32 +00:00
Gé van Geldorp
e2e83d6591 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- Properly implement DllCanUnloadNow ref counting.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.

svn path=/trunk/; revision=13561
2005-02-14 15:04:09 +00:00
Gé van Geldorp
05ba38b081 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- use only stored result of Interlocked* in AddRef/Release
- expand TRACEs to display the ref count
Hans Leidekker <hans@it.vu.nl>
- Stub implementations for PathUnExpandEnvStringsSHRegEnumUSValue{A,W},
  SHRegCreateUSKey{A,W}, SHRegDeleteEmptyUSKey{A,W},
  SHRegDeleteUSValue{A,W}, SHRegEnumUSValue{A,W}.
- Implement and test PathIsValidChar{A,W}.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Change the order of Src and Dst in CopyKey calls/functions.

svn path=/trunk/; revision=13560
2005-02-14 14:55:38 +00:00
Gé van Geldorp
54eed4d708 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- use only stored result of Interlocked* in AddRef/Release
- expand TRACEs to display the ref count
Hans Leidekker <hans@it.vu.nl>
- Stub implementations for PathUnExpandEnvStringsSHRegEnumUSValue{A,W},
  SHRegCreateUSKey{A,W}, SHRegDeleteEmptyUSKey{A,W},
  SHRegDeleteUSValue{A,W}, SHRegEnumUSValue{A,W}.
- Implement and test PathIsValidChar{A,W}.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Change the order of Src and Dst in CopyKey calls/functions.

svn path=/trunk/; revision=13559
2005-02-14 14:50:45 +00:00
Eric Kohl
dfa5c9434a - Implement RtlSetAttributesSecurityDescriptor, RtlInitializeGenericTableAvl, RtlNumberGenericTableElements and RtlNumberGenericTableElementsAvl.
svn path=/trunk/; revision=13558
2005-02-14 14:36:03 +00:00
Thomas Bluemel
3922c4030b fixed some warnings
svn path=/trunk/; revision=13557
2005-02-14 11:57:51 +00:00
Thomas Bluemel
31a913fde7 don't leak a reference to the timer object when copying to the buffer failed in NtQueryTimer() and don't use uninitialized variable in NtSetTimer()
svn path=/trunk/; revision=13556
2005-02-14 11:46:17 +00:00
Gé van Geldorp
be2fa40d3e netzimme@netscape.net
Make RTL8029 work with NE2000 driver

svn path=/trunk/; revision=13555
2005-02-14 07:46:14 +00:00
Alex Ionescu
3f700c132c Reimplemented Kernel and Executive Timers. Use Microsoft documented structures, added locks to protect against race conditions, use dispatcher database, implement new features like wake timers, use thread timer lists, simplify timer list, add more comments and debug info, actually add apc/dpc functions which do what the should do, fix a couple of bugs, simplfiy absolute vs relative timers. I will do more testing and see wether an experimental Timer Tree patch (which greatly speeds up timer processing) is necessary.
svn path=/trunk/; revision=13554
2005-02-14 05:36:04 +00:00
Thomas Bluemel
44b4c1125e probe pointers in NtCreateToken. Still needs some work as access to the buffers needs to be secured
svn path=/trunk/; revision=13553
2005-02-14 00:32:09 +00:00
Thomas Bluemel
caea1ad51f secure access to buffers in NtAllocateLocallyUniqueId
svn path=/trunk/; revision=13552
2005-02-14 00:28:12 +00:00
Gé van Geldorp
9a76ee5861 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- Properly implement DllCanUnloadNow ref counting. Make sure the mozilla
  control is ready to unload as well.
- Use Interlocked* instead of ++/-- in AddRef/Release.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.
Mike McCormack <mike@codeweavers.com>
- Stub definition for OpenUrl.

svn path=/trunk/; revision=13551
2005-02-13 23:10:36 +00:00
Emanuele Aliberti
ca70c99dad Resource script uses the new generic rc script.
svn path=/trunk/; revision=13550
2005-02-13 23:03:17 +00:00
Thomas Bluemel
9ad7ca2ec1 don't return value of uninitialized variable
svn path=/trunk/; revision=13549
2005-02-13 23:01:33 +00:00
Thomas Bluemel
013461bd7d don't return value of uninitialized variable
svn path=/trunk/; revision=13548
2005-02-13 22:56:12 +00:00
Emanuele Aliberti
f4bc26733a SM - some more work
svn path=/trunk/; revision=13547
2005-02-13 22:55:28 +00:00
Gé van Geldorp
f890195506 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- Use Interlocked* instead of ++/-- in AddRef/Release.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Mike McCormack <mike@codeweavers.com>
- Implement GetAdvise and SetAdvise.
Henning Gerhardt <henning.gerhardt@web.de>
- A small spelling fix and a small update (thank to Andreas Mohr).
- Update German resources.
Joris Huizer <jorishuizer@planet.nl>
- add file_operation_delete
- add file_operation_checkFlags
- use these in SHFileOperationW replacing inline code

svn path=/trunk/; revision=13544
2005-02-13 22:42:47 +00:00
Thomas Bluemel
52cb066916 fixed wrong buffer check in NtDuplicateToken and added buffer checks in NtOpenThreadTokenEx
svn path=/trunk/; revision=13541
2005-02-13 22:00:36 +00:00
Hartmut Birr
e63c27b419 - Silence a debug message.
svn path=/trunk/; revision=13540
2005-02-13 21:32:50 +00:00
Emanuele Aliberti
ca17def287 LPC message type LPC_CONNECTION_REFUSED does not exist in NT.
svn path=/trunk/; revision=13539
2005-02-13 21:32:41 +00:00
Emanuele Aliberti
3565708b26 NtAcceptConnectPort signature fixed.
svn path=/trunk/; revision=13538
2005-02-13 21:31:34 +00:00
Emanuele Aliberti
f2b1a2e2a0 Fix OriginalCopyright.
svn path=/trunk/; revision=13537
2005-02-13 21:18:37 +00:00
Emanuele Aliberti
69e17b8f04 OriginalCopyright added.
svn path=/trunk/; revision=13536
2005-02-13 21:17:34 +00:00
Emanuele Aliberti
62ed018810 Resource script added.
svn path=/trunk/; revision=13535
2005-02-13 21:16:59 +00:00
Gé van Geldorp
e655d1606e Sync to Wine-20050211
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Updated French resources.

svn path=/trunk/; revision=13534
2005-02-13 21:06:18 +00:00
Gé van Geldorp
5faf6ad9c1 Sync to Wine-20050211
James Hawkins <truiken@gmail.com>
- Use Interlocked* instead of ++/-- in AddRef/Release.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Initialize temporary variants before calling VariantChangeTypeEx.
- When parsing an hex/oct integer value, copy value verbatim in VARIANT,
  rather than a negated value. Add test case for this behavior.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Remove message telling users to copy native stdole32.tlb over as we
  now provide it.
- Better trace in LoadTypeLib.
- Change debug messages type to reflect we provide stdole32.tlb.
Robert Shearman <rob@codeweavers.com>
- Move OLE automation interface registration to oleaut32.
- Add IRemUnknown to list of interfaces to register.
Mike Hearn <mh@codeweavers.com>
- Change some FIXMEs to ERRs to reflect the fact that nothing needs
  fixing.
- Fix some memory leaks on error paths in _marshal_interface.
- Fix a typo, propagate errors better from inside the typelib
  marshaller.
- Return OLE automation build value as win2k by default.
Rein Klazes <wijn@wanadoo.nl>
- SafeArrayDestroy() returns success when called with a NULL
  pointer. Added to the test cases.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Add WinXP to OaBuildVersion.

svn path=/trunk/; revision=13533
2005-02-13 21:03:37 +00:00
Gé van Geldorp
f4477fcb16 Sync to Wine-20050211
Robert Shearman <rob@codeweavers.com>
- Add documentation for most Co* functions.
- Move several functions into different files to group them with
  similar functions.
- Implement CoDisconnectObject.
- Change CoLockObjectExternal so that it does the correct action now
  and eliminate a fair few lines of now redundant code.
- Rename OLE32_Dll{Register,Unregister}Server to
  Dll{Register,Unregister}Server.
- Move OLE automation interface registration to oleaut32.
- Add IRemUnknown to list of interfaces to register.
- Make proxy manager use IMultiQI instead of IInternalUnknown as tests
  show that IInternalUnknown isn't exposed.
- Implement IMultiQI on top of IRemUnknown calls.
- Silence some fixmes that occur during tests and don't give us any
  useful information.
- Fix typo in class factory proxy that caused us to use the wrong
  offset into the CFProxy structure, causing us to not call the
  outer_unknown properly.
- Use InterlockedIncrement for the ipid counter instead of a critical
  section (suggested by Mike Hearn).
- Remove a line added by a bad merge.
- Implement RemUnkStub_Disconnect.
- Remove all of the RPC disconnect code.
- Implement IRemUnknown.
- Use IRemUnknown for life-cycle management instead of the current
  hacks.
- Generate machine-local IPIDs.
- Make pipes be uniquely identified only by their IPID.
- Implement table marshaling.
- The apartment reference should be held while the stub manager
  reference is held.
- Fix same apartment-unmarshal detection.
- Proxies/stubs for IRemUnknown methods, based on code written by Ove
  Ksven.
- Initialize ppv pointer in ClientIdentity_QueryInterface to NULL as
  apps depend on this.
- Don't release IRpcProxyBuffer on ifproxy destruction - the caller
  will do this for us.
- Make find_proxy_manager add a reference to the proxy manager and
  make proxy_manager_construct return an object with a valid
  ref-count.
- Remove stray not operator to fix a memory leak / crash in
  proxy_manager_destroy.
- More debug messages, especially on errors.
- Fix ref-count leak in the Class Factory proxy.
- Add a test case for IClassFactory_CreateInstance.
- Split up apartment creation so that the long code paths that don't
  need locking no longer have locking.
- Add special cases for the threads that join apartments but can't
  increase the refcount of the apartment.
- Free TLS storage on thread destruction (including releasing the
  apartment the thread is in, if any, and so making another test
  pass).
- More tests.
- Change return code of CoGetPSClsid to match test result.
- Do a slight hack to make IRemUnknown proxies be added after the
  proxy that uses them to stop them being used after they are
  destroyed.
- Fix multiple local server connections.
- The apartment reference should be held while the stub manager
  reference is held.
- Fix same apartment-unmarshal detection.
- Don't use the pipe caching code because it doesn't work correctly at
  the moment.
- Always write disconnect reply packet, even in failure cases.
- Move object-to-stub-manager mapping rule to register_ifstub.
- Pass the original IID to IMarshal_UnmarshalInterface and query for
  the requested interface.
- Unmarshaling IID_NULL means use the IID the interface was originally
  marshaled with.
- Add code for destroying the thread-local storage data, but don't use
  it yet.
- Don't release apartment on changing modes because we didn't add a
  reference anywhere.
- Quieten the RPC_E_DISCONNECTED error message as it is an expected
  return code.
- Treat IID_NULL the same as IID_IUnknown.
- Make tests compile on Win95 again.
- Fix copy+paste error where the test failure should be from the
  CoUnmarshalInterface function.
- Give IUnknown its own ifstub to fix ref-counting and ipid storage
  issues.
- Add a new flag SORFP_NOLIFETIMEMGMT to tell the proxy manager not to
  call any IRemUnknown functions.
- Move the low-level unmarshaling code into a new function,
  unmarshal_object, so that it can be easily reused for unmarshaling
  IRemUnknown.
- Consolidate more stub creation details into register_ifstub.
- Replace the current wine_marshal_id structure with STDOBJREF for the
  on-the-wire format.
- Initialize clsid member to the marshaler clsid to fix custom
  marshaling.
- Make proxy shutdown test succeed by releasing the channel on
  disconnect.
- Remove wine_marshal_data: it is unneeded and there is no equivalent in
  STDOBJREF.
- Remove obsolete structs, rearrange things to group the structs
  together and to group similar functions.
- Document thread-safety of members of structs.
- Document CoSetState & CoGetState.
- Rewrite them to only retrieve TLS info once.
- Remove trailing whitespace in COM_CurrentInfo.
- Release the client security objects when no longer needed (reported by
  Mike McCormack).
- Implement CoSetProxyBlanket, CoQueryProxyBlanket and CoCopyProxy.
- Update todo list.
- Destroy stubs on apartment shutdown.
- Make MTA dynamically allocated so that proxies and other resources
  are freed at the proper time.
- Changed/removed some incorrect comments regarding apartments.
Mike Hearn <mh@codeweavers.com>
- Various formatting/style changes.
- Force context switch on chanbuf disconnect to avoid a race in the test
  suite.
Mike Hearn <mh@codeweavers.com>
Robert Shearman <rob@codeweavers.com>
- Rework RPC dispatch layer to be simpler and not get confused by
  server/client duality.
- Make threads shut down at the right time and not access freed memory
  after apartment destruction.
- Rename stub_dispatch_thread to client_dispatch_thread.
- Add some more tracing
- Check return value of WaitNamedPipe.
- Change named pipe timeouts to 0.5s, which should be enough for even the
  slowest machines.
Christian Costa <titan.costa@wanadoo.fr>
- CoInitialize(Ex) should return S_FALSE when COM is already initialized
  for the current thread.

svn path=/trunk/; revision=13532
2005-02-13 20:52:16 +00:00
Hartmut Birr
4267da8a2f - Forgot this file.
- Prepared cdfs for using CcInitializeCacheMap/CcUninitializeCacheMap instead of CcRosInitializeFileCache/CcRosReleaseFileCache.

svn path=/trunk/; revision=13531
2005-02-13 17:25:52 +00:00
Hartmut Birr
11aca778bc - Prepared ntfs for using CcInitializeCacheMap/CcUninitializeCacheMap instead of CcRosInitializeFileCache/CcRosReleaseFileCache.
svn path=/trunk/; revision=13530
2005-02-13 17:23:41 +00:00
Hartmut Birr
be6f666161 - Prepared cdfs for using CcInitializeCacheMap/CcUninitializeCacheMap instead of CcRosInitializeFileCache/CcRosReleaseFileCache.
svn path=/trunk/; revision=13529
2005-02-13 17:21:16 +00:00
Hartmut Birr
6dc6d975d8 - Partial implementation of IoSetInformation.
svn path=/trunk/; revision=13528
2005-02-13 17:10:59 +00:00
Hartmut Birr
516c6b3ffc - Initialize the Lock value of a stream file object.
svn path=/trunk/; revision=13527
2005-02-13 17:09:10 +00:00
Hartmut Birr
6277bda603 - Changed the definition of fpos_t to a 64bit value to get binutils 2.15.94 working.
svn path=/trunk/; revision=13526
2005-02-13 15:38:56 +00:00
Klemens Friedl
b331ffc1b7 VMware SVGA Wizard:
* add title and subtitle (wizard window)
* center the wizard window
* update english and german language files

svn path=/trunk/; revision=13525
2005-02-13 13:49:55 +00:00
Thomas Bluemel
ecc1462959 fixed returning the reference to the token in SeCopyClientToken() and probe pointer when neccessary
svn path=/trunk/; revision=13524
2005-02-13 13:03:44 +00:00
Steven Edwards
9e0d358564 Remove the old control apps from rosapps/control.
svn path=/trunk/; revision=13522
2005-02-13 02:11:22 +00:00
Aleksey Bragin
9f1be875f3 Some basics of driver wrapper - establish dispatch functions, a very basic AddDevice handler. Still stubs, but they will be filled with something very soon!
svn path=/trunk/; revision=13521
2005-02-12 23:31:15 +00:00
Aleksey Bragin
4ba5ab7473 Added cromwell's drivers into build/install process. Now we have two alternatives: usbport/usbXhci or usbcore/ohci.sys. With time they will be merged into one, or cromwell will be wasted and usbport/usbXhci will be written from scratch.
svn path=/trunk/; revision=13520
2005-02-12 23:27:27 +00:00
Aleksey Bragin
aacb7a22f6 Fixed a copy-n-paste typo in usbuhci ("Type"->"Image" reg key), also adding ohci driver entry (loads in VirtualPC).
svn path=/trunk/; revision=13519
2005-02-12 23:11:10 +00:00
Gé van Geldorp
c4a2530191 Sync to Wine-20050211
Mike McCormack <mike@codeweavers.com>
- add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
- fix the dialog font
- allow waiting on a handle while running the message loop
- implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
- Add more dialog controls, do something when they're clicked on.
- Implement MsiPreviewDialog.
- Implement and document MsiLoadString.
- Added stub implementations for MsiPreviewDialog and
  MsiPreviewBillboard.
- Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
- Implement, test and document MsiDecomposeDescriptor.
- Handle a number as a parameter for custom action 19.
- Move OpenQuery into msiquery.c and make it non-static.
- Fix and test inserting records.
- Fix refcounting, use Interlocked functions.
- MsiEvaluateCondition returns an error when passed NULL as a
  condition.
- Lock record in MsiViewExecute, move stubs to end.
- Fix MsiRecordSetString for NULL strings and update test case.
- Fix a bug caused by freeing memory too soon in the table code.
- Update headers, add MsiGetUserInfoA stub implementation.
- Fix a memory leak in MsiConfigureProductExW.
- Indentation and style cleanup.
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
Juan Lang <juan_lang@yahoo.com>
- Partially implement AppSearch action.
- If a full path isn't specified, search across all fixed drives.
- Simplify AppSearch error checking.
- Identifiers evaluate to true if they are non-empty, regardless of
  value.
Aric Stewart <aric@codeweavers.com>
- action.c is getting too big, so split out all the handling of
  CustomActions into custom.c. Cleaned up a lot of the handling of
  custom actions including scripting actions and processing return
  codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
  same as internal function deformat_string. So broke deformat_string
  out and updated it to function as MsiFormatRecord and implemented
  MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
  the length for the LocalPackage name, not forcing a reboot when
  really we should just return ERROR_INSTALL_SUSPEND and handling
  REG_MULTI_SZ now that we can deformat the properly.
- Move the guid squishing functions out of msi.c and make a new
  registry.c file. Also clean up all the various registry keys we need
  to open and create to this module and modify the functions for msi.c
  to call these functions.
- Added a few more stub implementations.
- Implement custom action type 19, Halt install and display error
  message.
- Continued work to simplify the ProcessAction call, also split it into
  a ProcessAction and ProcessUIAction for future dialog box work.
  Also fix a bug in deformat_string where i was not freeing the created
  record.
- Make a temp file for each dll saved for custom actions. This prevents
  name collisions from causing custom actions to fail.
- Do not track the temp files for custom actions based on the name from
  the table because then we get conflicts and files not tracked or
  cleaned up.
- Add the RegisterUser action.
- Implement RegisterExtensionInfo and RegisterMIMEInfo.
- Add logic to be able to resolve the SourceDir based on
  CurrentPath. Also add logic to get the source locations of a file if
  it is not in a cabinet.
- Finish up the framework by stubbing out all the remaining Standard
  actions.
- A fix to deformat_string so it only returns a null return if you
  provided a null buffer.
- Eliminate the giant if.. else if block from ACTION_ProcessAction in
  favor of a table of handlers.
- Return code of the install should not depend on the return code of the
  final action.
- Update component installed states as they are installed so that
  conditions based on component states are at least a little more
  correct.
- Add icon and argument when regestering clsids.
- Add a stub for ResolveSource because we do that work just not in
  ResolveSource like we should.
- When quering a Component state return the correct state.
- Enable the updating of Feature and thus the resulting component
  states.
- Run the end of install actions for suspend and user exit states as
  well.
- Start putting in place a currently running state for future ui use.
- Use the new registry functions in registry.c.
- Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
  some keys to the registry.
- Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
  InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
  InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
- Implementations for SelfRegModules and PublishFeatures.
- Set default ACTION property for Install.
- Deformat more than JUST properties properly. Allows for Files and
  Component paths in deformat.
- Properly deformat a LaunchCondition failure dialog box.
- Resolve and save registry Keypaths.
- Write the Features published keys more correctly. Still some
  problems.
- First implementation of the WriteIniValues action.
- Custom actions can have null in their target parameters, handle that
  without crashing. Also enable deformating of lines greater than 256
  characters.
- Added some more suminfo stubs.
- An implementation of MsiSummaryInfoGetPropertyW based off of
  MsiSummaryInfoGetPropertyA.
- Added stubs for MsiGetShortcutTargetA/W.
- Do a very basic first implementation of MsiConfigureProductExW for
  msiexec /@  when run as a reboot.
- Also add a number of new stubs for the office xp and 2k3 install and
  startup process.
- Fix a copy and paste error, check for a null value and discard
  unneeded errors.
- Do not limit properties to 256 characters when evaluating them.
- Setting a record to an empty string is the same as making it null.
- First pass implement ion of MsiQueryProductState[A/W] as well as a few
  fixes for MsiGetComponentPath.
- Actually start on an implemention for MsiGetComponentPathW that should
  handle all keypaths that are files.
- A reworking of format.c to remove the recursion, clean things up and
  stabilize behavior to match windows.
- Cleanup processing a bit more.
- Allow for nested keys to work properly.
- MsiGetProperty does not return any error on missing properties.
- The new Insert fixes now properly require ?,? instead of just ? for
  the Insert call. This fix modifies the MSI_SetProperty query to be
  correct.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Ulrich Czekalla <ulrich@codeweavers.com>
- Handle 0 length buffers in MSI_FormatRecordW.
- Remove unused buffer in deformat_string.
Mike Hearn <mh@codeweavers.com>
- Correctly ensure properties set from resolved directory paths are
  backslash terminated.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <meissner@suse.de>
- Initialize rc in create_component_directory().
Alexandre Julliard <julliard@winehq.org>
- Avoid unnecessary run-time initializations.

svn path=/trunk/; revision=13518
2005-02-12 22:59:04 +00:00
Gé van Geldorp
b14fe2e98e Sync to Wine-20050211
Alexandre Julliard <julliard@winehq.org>
- It makes no sense to export the dll entry point as stub.

svn path=/trunk/; revision=13517
2005-02-12 21:46:45 +00:00
Gé van Geldorp
f2d6147dc9 Sync to Wine-20050211
Juan Lang <juan_lang@yahoo.com>
- Make netspi.h private, as some of its declarations conflict with
  npapi.h.  Spotted by Paul Vriens.
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Updated French resources.
Henning Gerhardt <henning.gerhardt@web.de>
- Update German resources.

svn path=/trunk/; revision=13516
2005-02-12 21:26:15 +00:00
Gé van Geldorp
a8037e241c Sync to Wine-20050211
Carlos Lozano <clozano@andago.com>
- Fix regression in Fallout game.
Remi Assailly <remi.assailly@free.fr>
- char -> const char fixes.
Robert Reif <reif@earthlink.net>
- Copy data structures one at a time using supplied size.

svn path=/trunk/; revision=13515
2005-02-12 21:07:16 +00:00
Gé van Geldorp
b0c3deb666 Henning Gerhardt <henning.gerhardt@web.de>
- Update German resources.
Robert Shearman <rob@codeweavers.com>
- Draw a representation of a document in the page setup dialog.
- Change some FIXME's to TRACE's because everything we need is
  implemented and they fire for ones that we don't need to implement.
Remi Assailly <remi.assailly@free.fr>
- char -> const char fixes.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Updated Spanish resources.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Correct coordinates of a couple of controls.
- Do not forget to allocate internal OPENFILENAMEW structure for 16-bit
  GetOpenFileName, initialize it by zeros for 16/A cases.
- Make GetOpenFileNameW with an old style open file dialog work with the
  original OPENFILENAMEW structure, making sure that all changes are
  passed back to the caller.
Ulrich Czekalla <ulrich@codeweavers.com>
- GetFileName31W should call unicode version of FD31_AllocPrivate.
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Updated French resources.

svn path=/trunk/; revision=13514
2005-02-12 21:03:08 +00:00
Gé van Geldorp
2b5f93358a Sync to Wine-20050211
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Dimitrie O. Paun <dpaun@rogers.com>
- Use the LVCFMT_{LEFT,RIGHT,CENTER} enumeration flags properly.
Alexandre Julliard <julliard@winehq.org>
- Store the "managed" flag as a window property instead of the
  Wine-specific WS_EX_MANAGED style bit.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Remove needless check for horizontal or vertical pager.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Remove the checking/setting of the defaults in TRACKBAR_Create.

svn path=/trunk/; revision=13513
2005-02-12 20:51:20 +00:00
Thomas Bluemel
709af1f28a the callback management doesn't have to be serialized as it's only accessed by the thread itself
svn path=/trunk/; revision=13512
2005-02-12 20:37:04 +00:00
Thomas Bluemel
a780838c2e added stubs for NeedCurrentDirectoryForExePathA/W()
svn path=/trunk/; revision=13511
2005-02-12 17:15:04 +00:00
Casper Hornstrup
69101c3619 Branch setupapi (again)
svn path=/branches/xmlbuildsystem/; revision=13510
2005-02-12 16:47:02 +00:00
Casper Hornstrup
2c0578844f Remove setupapi (again)
svn path=/branches/xmlbuildsystem/; revision=13509
2005-02-12 16:43:03 +00:00
Casper Hornstrup
cdc4cb09c4 Branch setupapi
svn path=/branches/xmlbuildsystem/; revision=13508
2005-02-12 16:11:43 +00:00
Casper Hornstrup
bbb19c02cc Remove setupapi
svn path=/branches/xmlbuildsystem/; revision=13507
2005-02-12 16:08:13 +00:00
Casper Hornstrup
07a8c86438 Add stub GNU makefile
svn path=/branches/xmlbuildsystem/; revision=13506
2005-02-12 15:11:48 +00:00
Emanuele Aliberti
5d99bb07ca SM - Sorry, I forgot silence dbg messages!
svn path=/trunk/; revision=13505
2005-02-12 14:34:39 +00:00
Emanuele Aliberti
68537ca04f PSX: posixw32: some work for compatibility with future SM
svn path=/trunk/; revision=13504
2005-02-12 14:33:41 +00:00
Eric Kohl
feb76365e7 - Implement RtlGetLastNtStatus, RtlGetLastWin32Error, RtlRestoreLastWin32Error, RtlSetLastWin32Error and RtlSetLastWin32ErrorAndNtStatusFromNtStatus.
svn path=/trunk/; revision=13503
2005-02-12 12:42:10 +00:00
Thomas Bluemel
df616c9b3b The structure layout of self-relative security descriptors may be different from absolute security descriptors depending on the platform. Self-relative security descriptors always use 32 bit offsets while absolute security descriptors use pointers which could be 64 bits.
svn path=/trunk/; revision=13502
2005-02-12 11:47:03 +00:00
Gé van Geldorp
18e42fda45 Check subsystem
svn path=/trunk/; revision=13501
2005-02-12 09:17:51 +00:00
Emanuele Aliberti
3cc5374fe1 SM - clean, simplify, make more readable
- split initialization in more files to make it more readable
- cleaned up some code
- simplified some code
- documented some todos

svn path=/trunk/; revision=13500
2005-02-12 09:08:52 +00:00
Art Yerkes
165794f5c8 AddrWidenAddress: set type
NBFlushPackets: We already hold the table lock when calling this.

svn path=/trunk/; revision=13499
2005-02-12 03:53:19 +00:00
Gé van Geldorp
6d7d3aaff6 Be compatible with some of the crap apps out there
svn path=/trunk/; revision=13497
2005-02-11 21:02:35 +00:00
Casper Hornstrup
760ebcb3e3 * Run build tools after parsing build files
* Generate roscfg.h


svn path=/branches/xmlbuildsystem/; revision=13496
2005-02-11 19:13:01 +00:00
Eric Kohl
1a4bf3f6f5 Ooops! These are the correct exports.
svn path=/trunk/; revision=13494
2005-02-11 16:01:10 +00:00
Eric Kohl
1ca75be5f0 Implement RtlGetSecurityDescriptorRMControl, RtlSetSecurityDescriptorRMControl, SetSecurityDescriptorControl, GetSecurityDescriptorRMControl and SetSecurityDescriptorRMControl.
svn path=/trunk/; revision=13493
2005-02-11 15:52:38 +00:00
Eric Kohl
5930efc575 - Implement RtlSetControlSecurityDescriptor
- Remove property set functions from ntdll.def because they are not implemented in Win2K and above.

svn path=/trunk/; revision=13492
2005-02-11 12:06:29 +00:00
Gé van Geldorp
e37dad5493 Match packing in DDK
svn path=/trunk/; revision=13491
2005-02-10 22:54:30 +00:00
Aleksey Bragin
7d5865df32 Deleted binaries, added ignore
svn path=/trunk/; revision=13490
2005-02-10 22:08:39 +00:00
Aleksey Bragin
a66312aa06 Deleted binaries, added ignore
svn path=/trunk/; revision=13489
2005-02-10 22:05:40 +00:00
Thomas Bluemel
a5f97a39da removed obsolete typecast in AllocConsole()
svn path=/trunk/; revision=13487
2005-02-10 19:38:47 +00:00
Thomas Bluemel
ca15298d31 fixed ObpCaptureObjectAttributes()
svn path=/trunk/; revision=13486
2005-02-10 11:32:06 +00:00
Thomas Bluemel
f49c77e03f revert the changes to NtCreateEvent and do the real fix
svn path=/trunk/; revision=13485
2005-02-10 09:22:27 +00:00
Alex Ionescu
ef53ccc2a8 Fix APC problems. Thanks to Arty for finding this. This makes vncviewer work
svn path=/trunk/; revision=13484
2005-02-10 05:13:43 +00:00
Art Yerkes
73f1d215e0 Patch to fix NtCreateSempahore, in the case where the initial lookup
succeeds.  We previously left the function without initializing 
hSemaphore.  Patch suggested by me and executed by hpoussin.

svn path=/trunk/; revision=13483
2005-02-10 03:58:03 +00:00
Steven Edwards
231989d7ac Added note about freeldr 2.0 changes
svn path=/trunk/; revision=13482
2005-02-10 01:42:58 +00:00
Gé van Geldorp
2bdc976286 Big change warrants major version number bump
svn path=/trunk/; revision=13481
2005-02-09 23:57:07 +00:00
Gé van Geldorp
00c444e957 Pass PageDirectoryStart and End so the memory manager
knows not to clobber it

svn path=/trunk/; revision=13480
2005-02-09 23:52:27 +00:00
Gé van Geldorp
2da2045b7f Add DPRINT_HWDETECT to DEBUG_ALL
svn path=/trunk/; revision=13479
2005-02-09 20:53:18 +00:00
Mike Nordell
a309fd9ca9 Send the correct handle_s_. tinus found this one.
svn path=/trunk/; revision=13478
2005-02-09 20:11:48 +00:00
Gé van Geldorp
9d11fdcdac Don't include NEVER_LOAD sections in image size.
Rename SizeOfImage to ResidentSize to avoid confusion

svn path=/trunk/; revision=13477
2005-02-09 18:34:13 +00:00
Gé van Geldorp
22b2e24aea Fix EOL setting
svn path=/trunk/; revision=13476
2005-02-09 18:18:20 +00:00
Gé van Geldorp
44705e9fdb - Fix quoting of .cpl filename.
- Use "cplopen" verb to execute .cpl files.

svn path=/trunk/; revision=13475
2005-02-09 17:33:36 +00:00
Art Yerkes
877b125678 Made a nice function CantReadMore which tells if we can't possibly fill
the buffer any longer, and don't have waiting data.
Return an EOF in every case where a read could hit EOF from tcpip,
Return a hard error thereafter.

svn path=/trunk/; revision=13474
2005-02-09 08:38:46 +00:00
Gé van Geldorp
cf6b823a18 - Add entry for .cpl files
- Disable recycle bin for now

svn path=/trunk/; revision=13473
2005-02-08 22:52:16 +00:00
Steven Edwards
63b4ab39e4 define _MAX_PATH as well
svn path=/branches/xmlbuildsystem/; revision=13472
2005-02-08 22:50:55 +00:00
Gé van Geldorp
d45db8b732 Prefer SEE_MASK_IDLIST, since that one is actually implemented in shell32...
svn path=/trunk/; revision=13471
2005-02-08 22:23:05 +00:00
Casper Hornstrup
d441fe88f2 Generate reactos.cab
svn path=/branches/xmlbuildsystem/; revision=13470
2005-02-08 22:21:16 +00:00
Gé van Geldorp
183a36f0fb You can't execute a DLL
svn path=/trunk/; revision=13469
2005-02-08 22:11:27 +00:00
Gé van Geldorp
9b0eaad850 Hervé Poussineau <poussine@freesurf.fr>
Initialize default partition size to maximum size.

svn path=/trunk/; revision=13468
2005-02-08 21:27:49 +00:00
Gé van Geldorp
1914ba8245 Set eol-style
svn path=/trunk/; revision=13467
2005-02-08 18:58:59 +00:00
Art Yerkes
4b90e54e6f There's no need to link ntdll here.
svn path=/trunk/; revision=13466
2005-02-08 17:10:19 +00:00
Eric Kohl
b03a789169 - Convert U32 to ULONG.
svn path=/trunk/; revision=13465
2005-02-08 14:46:44 +00:00
Gé van Geldorp
ead52a2278 Redraw shell background when wallpaper is changed
svn path=/trunk/; revision=13464
2005-02-08 12:35:44 +00:00
Alex Ionescu
e2de4723c6 Forgot this file
svn path=/trunk/; revision=13463
2005-02-08 01:55:04 +00:00
Alex Ionescu
518763e600 FreeLdr Patch. Now fully loads ntoskrnl using a PE Loader, supports /3gb dynamically but this is NOT enabled yet, so please continue using the 3GB entry in config until r2 is ready which will support relocation and remove the config entry. You must also supply /3GB to the commandline if you're using 3GB, just like since the previous patch. Also freeldr now uses w32api headers. Janitors will clean the dupes up. Thank you: Mike, Royce, Hartmut, Blight, Filip and everyone who reviewed. Hartmut, if anything is missing from the patch you sent me, feel free to add it. More info at http://blogs.reactos.com/Alex_Ionescu.
svn path=/trunk/; revision=13462
2005-02-08 01:46:01 +00:00
Emanuele Aliberti
f390d143d5 Typographic errors fixed and a function name changed.
svn path=/trunk/; revision=13461
2005-02-07 23:11:30 +00:00
Thomas Bluemel
7a4e07b567 revert moving smdll to rosrtl.
svn path=/trunk/; revision=13460
2005-02-07 12:58:08 +00:00
Thomas Bluemel
61c28f28b3 moved smdll to rosrtl. We just _can't_ have separate dlls for everything internal, that's what static libraries are for. Unless we want a dll hell even worse than necessary...
svn path=/trunk/; revision=13459
2005-02-07 11:35:29 +00:00
Thomas Bluemel
fb80c5416d moved smdll to rosrtl. We just _can't_ have separate dlls for everything internal, that's what static libraries are for. Unless we want a dll hell even worse than necessary...
svn path=/trunk/; revision=13458
2005-02-07 11:35:10 +00:00
Thomas Bluemel
63e01b63df moved smdll to rosrtl. We just _can't_ have separate dlls for everything internal, that's what static libraries are for. Unless we want a dll hell even worse than necessary...
svn path=/trunk/; revision=13457
2005-02-07 11:34:52 +00:00
Eric Kohl
30b7d49ae6 - Nt->Zw
- Assign an instance path to the root device node and reports its arrival.

svn path=/trunk/; revision=13456
2005-02-07 10:33:44 +00:00
Gé van Geldorp
e4e9497fb0 Remove no longer needed hack
svn path=/trunk/; revision=13455
2005-02-07 10:30:14 +00:00
Gé van Geldorp
8b55015f04 Fix definition of LUID constants
svn path=/trunk/; revision=13454
2005-02-07 10:29:44 +00:00
Gé van Geldorp
4cc354816b Hervé Poussineau <poussine@freesurf.fr>
(Partial) implementation of CheckTokenMembership()

svn path=/trunk/; revision=13453
2005-02-06 22:16:05 +00:00
Emanuele Aliberti
210f9b4812 Add SMDLL to the boot CD.
svn path=/trunk/; revision=13452
2005-02-06 22:06:44 +00:00
Emanuele Aliberti
b77a02dbef SMDLL: add it to the build process.
svn path=/trunk/; revision=13451
2005-02-06 22:03:32 +00:00
Gé van Geldorp
97bae25ad4 - Add RegisterServiceCtrlHandlerExA/W
- Add stubs for CheckTokenMembership and LsaGetUserName

svn path=/trunk/; revision=13450
2005-02-06 21:57:44 +00:00
Emanuele Aliberti
9e799af696 Some preliminary work on the SM to make it manage environment servers.
svn path=/trunk/; revision=13449
2005-02-06 21:55:07 +00:00
Gé van Geldorp
e8a6256e32 Export some Lsa stubs
svn path=/trunk/; revision=13448
2005-02-06 21:21:22 +00:00
Gé van Geldorp
8efa6b64a6 - Prevent image loading and symbol loading getting each others way
- DPRINT1 is preferred over DbgPrint

svn path=/trunk/; revision=13447
2005-02-06 19:52:26 +00:00
Gunnar Dalsnes
fa4b4f314a -add macros for msvc/gcc portable int64 suffix/LARGE_INTEGER handling
-add C_ASSERT (compile-time asserts)

svn path=/trunk/; revision=13446
2005-02-06 19:04:00 +00:00
Gé van Geldorp
bc7bba6f78 Pass ROP4 instead of ROP3 to drivers
svn path=/trunk/; revision=13445
2005-02-06 18:27:06 +00:00
Gé van Geldorp
78a54aa150 Properly synchronize with GPU
svn path=/trunk/; revision=13444
2005-02-06 18:24:31 +00:00
Emanuele Aliberti
90b5ddc462 SMDLL: helper to use the SM
svn path=/trunk/; revision=13443
2005-02-06 17:00:53 +00:00
Emanuele Aliberti
e0d9326630 SM & SMDLL definitions
svn path=/trunk/; revision=13442
2005-02-06 16:59:55 +00:00
Mike Nordell
d31b888c46 Remove COM1 as default debug messages output channel for LiveCD.
If users are skilled enough to make use of it, it can be turned on manually during boot.

svn path=/trunk/; revision=13441
2005-02-06 14:13:32 +00:00
Martin Fuchs
ddef57fcd4 owner drawn context menus for lean explorer version
svn path=/branches/lean-explorer/; revision=13440
2005-02-06 14:03:25 +00:00
Martin Fuchs
97715243ac owner drawn context menus for lean explorer version
svn path=/trunk/; revision=13440
2005-02-06 14:03:25 +00:00
Martin Fuchs
24ed9a6f95 owner drawn context menus for FileChild
svn path=/trunk/; revision=13439
2005-02-06 13:28:34 +00:00
Martin Fuchs
32ded4ebff fix warning message
svn path=/trunk/; revision=13438
2005-02-06 13:12:07 +00:00
Martin Fuchs
ac1bda4c72 generic support for owner drawn context menus
svn path=/trunk/; revision=13437
2005-02-06 13:02:48 +00:00
Filip Navara
b98bef3c5f Fix a typo.
svn path=/trunk/; revision=13436
2005-02-06 12:39:41 +00:00
Casper Hornstrup
0dd134f1a2 Build snmpapi and network applications
svn path=/branches/xmlbuildsystem/; revision=13435
2005-02-06 11:01:22 +00:00
Martin Fuchs
3af8771d1a prevent crash related to unsupported context menu types
svn path=/trunk/; revision=13434
2005-02-06 10:50:50 +00:00
Martin Fuchs
7ae66a94b0 support for owner drawn context menus on the desktop
svn path=/trunk/; revision=13433
2005-02-06 10:38:51 +00:00
Casper Hornstrup
11d1cdd366 Build services
svn path=/branches/xmlbuildsystem/; revision=13432
2005-02-06 10:23:29 +00:00
Filip Navara
a1775e6e4c Use only 80 character wide lines in the comments.
svn path=/trunk/; revision=13431
2005-02-06 10:01:07 +00:00
Art Yerkes
a6b98eefa1 Kill only selects involving a named file descriptor when clearing exclusive
selects.  This makes ASECHO32 work perfectly.

svn path=/trunk/; revision=13430
2005-02-06 07:56:45 +00:00
Thomas Bluemel
8f344fcd2f Just cleaned up the code and changed the name of a few things. Patch by Trevor McCort.
svn path=/trunk/; revision=13429
2005-02-06 00:01:21 +00:00
Casper Hornstrup
8c410194a0 Build smss and system applications
svn path=/branches/xmlbuildsystem/; revision=13428
2005-02-05 22:48:07 +00:00
Alex Ionescu
59a9bf1efc Prevent buffer overflow on SMP systems. The buffer may be filled with 'Unknown CPU with family ID %ld and model ID %ld. Patch by Herve Poussineau.
svn path=/trunk/; revision=13427
2005-02-05 21:04:17 +00:00
Casper Hornstrup
75df7c5bca * Build ntvdm
* Add win32cui module type support


svn path=/branches/xmlbuildsystem/; revision=13426
2005-02-05 19:16:14 +00:00
Gregor Anich
75f792014d Raise exception when MmMapLockedPagesSpecifyCache fails to map into UserMode.
svn path=/trunk/; revision=13425
2005-02-05 18:59:14 +00:00
Casper Hornstrup
56ff0d9653 * Build csrss and win32csr
* NativeCUI module type support


svn path=/branches/xmlbuildsystem/; revision=13424
2005-02-05 18:52:38 +00:00
Gé van Geldorp
cb884ccdb4 Re-use (better) stack backtrace function
svn path=/trunk/; revision=13423
2005-02-05 18:49:43 +00:00
Eric Kohl
bda30e3034 Use the allocated buffer size in the call to NtGetPlugPlayEvent.
svn path=/trunk/; revision=13422
2005-02-05 10:54:00 +00:00
Thomas Bluemel
bb766d5404 only attach to the process to be queried when necessary
svn path=/trunk/; revision=13421
2005-02-05 10:31:37 +00:00
Gé van Geldorp
7cd9c86676 Convert ROP2 to MIX when calling driver
svn path=/trunk/; revision=13420
2005-02-05 10:19:49 +00:00
Gé van Geldorp
a1c0a3b1d6 Silence debug messages
svn path=/trunk/; revision=13419
2005-02-05 10:17:33 +00:00
Filip Navara
e83557fa58 Dynamically reallocate the buffer for PnP event if it's too small.
svn path=/trunk/; revision=13418
2005-02-05 08:44:49 +00:00
Filip Navara
92a1779473 Use CONTAINING_RECORD macro instead of type cast, fix the copyright header.
svn path=/trunk/; revision=13417
2005-02-05 08:43:52 +00:00
Art Yerkes
41918c7577 Read: Change AFD_EVENT_CLOSE to AFD_EVENT_DISCONNECT when the other end
hangs up.  The socket isn't closed yet.
Listen: Turn off fired flag for AFD_EVENT_ACCEPT.

svn path=/trunk/; revision=13416
2005-02-05 05:40:35 +00:00
Art Yerkes
c7bf3eead3 Fixed some signalling problems.
1) Always OR the current state bits into the socket for the handler to see
2) Remove special case for SEL_CONNECT | SEL_FIN in the signalled handler.
   Now it's much cleaner.

svn path=/trunk/; revision=13415
2005-02-05 04:56:04 +00:00
Thomas Bluemel
ab73f037f8 implemented GetConsoleProcessList()
svn path=/trunk/; revision=13414
2005-02-05 01:44:05 +00:00
Eric Kohl
2b921cb3e3 svn path=/trunk/; revision=13413 2005-02-05 00:20:14 +00:00
Gregor Anich
b70985ca99 Change WNDOBJ implementation a bit to make the NVIDIA driver happy.
svn path=/trunk/; revision=13412
2005-02-05 00:17:49 +00:00
Gregor Anich
824d1552c9 Fix VideoPortMapMemory.
svn path=/trunk/; revision=13411
2005-02-05 00:09:56 +00:00
Gregor Anich
9566275d1b Small update of opengl32.
svn path=/trunk/; revision=13410
2005-02-05 00:07:57 +00:00
Eric Kohl
61f4f70343 - Link ntoskrnl against libwdmguid.a.
- Report device arrival events to the user-mode pnp manager.

svn path=/trunk/; revision=13409
2005-02-05 00:04:52 +00:00
Eric Kohl
b0e251bab8 - Fix WDM-GUIDs. Patch by Filip Navara.
- Implement libwdmguid.a.

svn path=/trunk/; revision=13408
2005-02-04 23:24:32 +00:00
Casper Hornstrup
900f042f61 Build twain_32, ws2help, opengl32, syssetup, urlmon, shdocvw, wininet, userenv, wsock32, and wshirda
svn path=/branches/xmlbuildsystem/; revision=13407
2005-02-04 20:46:46 +00:00
Thomas Bluemel
efd11df7cc Trevor McCort implemented desktop wallpaper changing
svn path=/trunk/; revision=13406
2005-02-04 20:39:10 +00:00
Aleksey Bragin
01e24007ea Include usbd.sys in build of usb drivers
svn path=/trunk/; revision=13405
2005-02-04 16:51:11 +00:00
Aleksey Bragin
81d6ebf9e3 usbd.sys implementation - done long time ago by Filip, I just added .def and changed .rc (I think he doesn't mind it :))
svn path=/trunk/; revision=13404
2005-02-04 16:49:17 +00:00
Eric Kohl
fc76ea5157 Implement DelayedMove and FileExists.
svn path=/trunk/; revision=13403
2005-02-04 12:27:34 +00:00
Mike Nordell
f09c1928ae Fix broken year handling.
svn path=/trunk/; revision=13402
2005-02-04 03:21:46 +00:00
Royce Mitchell III
2212e07d3e compatibility fixes
svn path=/branches/xmlbuildsystem/; revision=13401
2005-02-03 23:54:02 +00:00
Gé van Geldorp
14986414b9 Always create debug info (-g)
svn path=/trunk/; revision=13400
2005-02-03 22:01:00 +00:00
Casper Hornstrup
cb6d12288b * Build midimap, netapi32, lz32, setupapi, mpr, olepro32, msimg32, secur32
* Build msafd, riched32, msgina, mmdrv, samlib, msvcrt20, mesa32


svn path=/branches/xmlbuildsystem/; revision=13399
2005-02-03 21:55:43 +00:00
Gé van Geldorp
c41788a8a2 Always clean the .gch file, even if ROS_USE_PCH is not active. This prevents
problems when switching between PCH and non-PCH builds.

svn path=/trunk/; revision=13398
2005-02-03 21:31:57 +00:00
Aleksey Bragin
85f0f3de51 Cromwell <-> PCI interface (stubs now) is taken to another file. In the long run I'm gonna change the file structure, but for now it's ok.
svn path=/trunk/; revision=13397
2005-02-03 20:38:38 +00:00
Filip Navara
bb6b84b0af Correct the library order.
svn path=/trunk/; revision=13396
2005-02-03 19:15:43 +00:00
Casper Hornstrup
d7abcec443 Build keyboard layout DLLs
svn path=/branches/xmlbuildsystem/; revision=13395
2005-02-03 19:14:46 +00:00
Filip Navara
56b11588c4 Prevent linking to MSVCRT in case some CRT function isn't found.
svn path=/trunk/; revision=13394
2005-02-03 19:08:54 +00:00
Art Yerkes
75acfdfa72 Add a . to an empty path to make a relative path, before the initial /
is added.

svn path=/branches/xmlbuildsystem/; revision=13393
2005-02-03 15:43:51 +00:00
Gé van Geldorp
8b7ac2780a Store symbolic information in a .rossym section in the
executable/library/driver/whatever

svn path=/trunk/; revision=13392
2005-02-02 23:07:33 +00:00
Casper Hornstrup
9dd8914484 * Parse .cpp, .rc, and .s files
* #include_next support


svn path=/branches/xmlbuildsystem/; revision=13390
2005-02-02 22:30:55 +00:00
Emanuele Aliberti
b7ecf6f1ef Make Jim Tabor visible.
svn path=/trunk/; revision=13389
2005-02-02 21:40:33 +00:00
Steven Edwards
54687f3ee6 MAX_PATH is PATH_MAX on Posix
svn path=/branches/xmlbuildsystem/; revision=13388
2005-02-02 20:10:14 +00:00
Aleksey Bragin
5f67689cbb Make dev node count correct, since for example Mac Virtual PC BIOS reports slightly wrong number which must be &0xFF.
This patch removes "Memory allocation failed: Out of memory" error while booting Freeldr.

svn path=/trunk/; revision=13387
2005-02-02 15:42:48 +00:00
Filip Navara
446441503d Protect against writes beyond the end of partition.
svn path=/trunk/; revision=13386
2005-02-01 21:21:33 +00:00
Casper Hornstrup
5987025ab4 Use automatic dependencies to mark files to be rebuilt.
svn path=/branches/xmlbuildsystem/; revision=13385
2005-02-01 20:49:03 +00:00
Filip Navara
02f0f81fc0 Correct prototype for NtGetPlugPlayEvent and use the ntpnp.h header.
svn path=/trunk/; revision=13384
2005-02-01 17:54:25 +00:00
Gunnar Dalsnes
6705201337 RtlCreateUnicodeString->RtlpCreateUnicodeString
svn path=/trunk/; revision=13383
2005-02-01 17:53:55 +00:00
Filip Navara
2eaa151579 - Header with declarations for NtPlugPlayControl and NtGetPlugPlayEvent.
svn path=/trunk/; revision=13382
2005-02-01 17:41:49 +00:00
James Tabor
786b85342f Added Jimtabor to list.
svn path=/trunk/; revision=13381
2005-02-01 17:40:21 +00:00
Eric Kohl
abbcb5b10f NtDisplayString: Convert Unicode string to OEM.
svn path=/trunk/; revision=13380
2005-02-01 16:40:23 +00:00
James Tabor
abd3d65035 But back Advpack for now.
svn path=/trunk/; revision=13379
2005-02-01 16:38:02 +00:00
Hartmut Birr
a11189968c - Removed some wrong calls to MmUnlockAddressSpace.
- Dereference the section object after creating the section. 

svn path=/trunk/; revision=13378
2005-02-01 16:35:30 +00:00
Eric Kohl
0a44e5f7e6 First attempt at implementing NtGetPlugPlayEvent.
svn path=/trunk/; revision=13377
2005-02-01 16:24:10 +00:00
Eric Kohl
7a91135976 Fix typos in shutdown messages.
svn path=/trunk/; revision=13376
2005-02-01 16:15:24 +00:00
Eric Kohl
736ae5e36b - Implement SetupDiBuildClassInfoListExA, SetupDiClassGuidsFromNameExA, SetupDiCreateDeviceInfoListExA and SetupDiOpenClassRegKeyExA using MultiByteToUnicode.
- Retrieve OS version upon process attach.

svn path=/trunk/; revision=13375
2005-02-01 13:58:33 +00:00
Steven Edwards
ff4e3250a0 forward stubs for Escape and GetSystemPaletteUse. Working on a real patch.
svn path=/trunk/; revision=13374
2005-01-31 23:58:10 +00:00
James Tabor
9535cafaaf Remove building of Advpack for now.
svn path=/trunk/; revision=13373
2005-01-31 23:33:34 +00:00
Gunnar Dalsnes
cf5aa86154 remove obvious duplicates
svn path=/trunk/; revision=13372
2005-01-31 22:13:43 +00:00
Casper Hornstrup
6052ab4bd7 Generate automatic dependencies.
svn path=/branches/xmlbuildsystem/; revision=13371
2005-01-31 18:25:55 +00:00
Eric Kohl
949f9a7ff6 - Implement DoesUserHavePrivilege and EnablePrivilege.
- Fix IsUserAdmin.

svn path=/trunk/; revision=13370
2005-01-31 12:49:46 +00:00
Filip Navara
418a089cb3 Force non-inlining of ctype functions even in OPTIMIZED builds. Fixes bug #497.
svn path=/trunk/; revision=13369
2005-01-30 19:40:24 +00:00
Thomas Bluemel
36cdd4e24b fixed warnings when compiling with DBG:=1 and OPTIMIZE:=1
svn path=/trunk/; revision=13368
2005-01-30 15:27:13 +00:00
Eric Kohl
84b7df2861 - Implement IsUserAdmin (untested), MultiByteToUnicode and UnicodeToMultiByte.
- Sort prototypes in setupapi.h.

svn path=/trunk/; revision=13367
2005-01-30 13:48:51 +00:00
Filip Navara
fe2f2f66fc Attempt to solve the imfamous WM_NCPAINT handle leak. The message handler isn't required to delete the region handle while it's also valid to delete it (eg. by calling GetDCEx with it). Thus we have to send the WM_NCPAINT message only synchronously and verify the handle after the SendMessage call.
svn path=/trunk/; revision=13366
2005-01-30 12:56:12 +00:00
Filip Navara
fb16822055 Don't shutdown devices before flushing registry and shutting down filesystems.
svn path=/trunk/; revision=13365
2005-01-30 09:46:15 +00:00
Gunnar Dalsnes
7aefb1c881 msvcrt: fix incorrect export
misc

svn path=/trunk/; revision=13364
2005-01-29 22:36:52 +00:00
Steven Edwards
deee81164b Allow IntEngExtEscape stub to return something.
svn path=/trunk/; revision=13363
2005-01-29 20:16:48 +00:00
Martin Fuchs
5f08703823 border for address bar
svn path=/trunk/; revision=13362
2005-01-29 17:39:09 +00:00
Thomas Bluemel
b3f22aba55 fixed compiling with optimizations
svn path=/trunk/; revision=13361
2005-01-29 15:29:20 +00:00
Thomas Bluemel
a725df1b30 securely access buffers in NtSetContextThread() and NtGetContextThread()
svn path=/trunk/; revision=13360
2005-01-29 12:24:15 +00:00
Royce Mitchell III
1291972098 remove eol whitespace
svn path=/trunk/; revision=13359
2005-01-29 03:15:05 +00:00
Thomas Bluemel
48bc6a5e53 added buffer checks to NtCreateThread()
svn path=/trunk/; revision=13358
2005-01-28 22:43:13 +00:00
Filip Navara
00ae7e938d Hervé Poussineau <poussine@freesurf.fr>
Use fast mutexes instead of spin locks because the file system callbacks shouldn't be called at DISPATCH_LEVEL.

svn path=/trunk/; revision=13357
2005-01-28 21:17:11 +00:00
Steven Edwards
66044ade6b setupapi was sync'd to winehq.
svn path=/trunk/; revision=13356
2005-01-28 21:04:12 +00:00
Thomas Bluemel
5149504971 securely access buffers in NtImpersonateThread()
svn path=/trunk/; revision=13355
2005-01-28 20:48:43 +00:00
Thomas Bluemel
87e189fd31 GetTempPathW should write an empty string to the buffer in case it wasn't large enough
svn path=/trunk/; revision=13354
2005-01-28 19:28:24 +00:00
Casper Hornstrup
adeb8563b5 Started on automatic dependencies support
svn path=/branches/xmlbuildsystem/; revision=13353
2005-01-28 19:11:22 +00:00
Thomas Bluemel
919a5257b4 also save the esi register. Thx to d_layer
svn path=/trunk/; revision=13352
2005-01-28 18:35:21 +00:00
Thomas Bluemel
22501b78f9 When a toolbar doesn't have the TBSTYLE_FLAT style redrawing the buttons when moving the mouse is not necessary.
Merged back from winehq. Fixes bug #404

svn path=/trunk/; revision=13351
2005-01-28 18:29:13 +00:00
Eric Kohl
9f44705b10 Use the service contol pipe to send a start command in order to start a service thread.
svn path=/trunk/; revision=13350
2005-01-28 13:28:56 +00:00
Thomas Bluemel
91337fece1 reverted my previous two commits, they are part of not yet committed changes...
svn path=/trunk/; revision=13349
2005-01-28 12:12:42 +00:00
Thomas Bluemel
747952fbac removed double definition of Nt/ZwSecureConnectPort
svn path=/trunk/; revision=13348
2005-01-28 12:06:50 +00:00
Thomas Bluemel
38e941330d removed double definition of Nt/ZwSecureConnectPort
svn path=/trunk/; revision=13347
2005-01-28 12:04:37 +00:00
Thomas Bluemel
fef48ab3fa 1. fixed InbvPutPixels() to save the ebx register which caused bootvid to crash when built with optimizations
2. build bootvid with optimizations when enabled

svn path=/trunk/; revision=13346
2005-01-28 11:37:09 +00:00
Royce Mitchell III
c6e6ddf2d4 allow oring multiple DebugPort values
svn path=/trunk/; revision=13345
2005-01-28 06:10:01 +00:00
Royce Mitchell III
d2f23650e6 bug fix: use the requested default os when timeout is 0 instead of defaulting to the first OS in the list.
svn path=/trunk/; revision=13344
2005-01-28 06:07:48 +00:00
Gunnar Dalsnes
4b5d785258 build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles

svn path=/trunk/; revision=13343
2005-01-27 21:23:43 +00:00
Gunnar Dalsnes
b6a8b98ef0 build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles

svn path=/trunk/; revision=13342
2005-01-27 21:18:04 +00:00
Gunnar Dalsnes
5379bfaa41 build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles

svn path=/trunk/; revision=13341
2005-01-27 21:17:28 +00:00
Gunnar Dalsnes
b9d18ec3d7 build msvcrt and crtdll from same source via lib\crt
fix problem with scanf/printf reading/printing doubles

svn path=/trunk/; revision=13340
2005-01-27 21:16:41 +00:00
Mike Nordell
60d9e9aa67 Help freeloader stop crashing from divide-by-zero, provoked by drain-bamaged BIOS.
svn path=/trunk/; revision=13339
2005-01-27 21:12:05 +00:00
Eric Kohl
2829fb845f CreateNamedPipeW(): Set access rights according to the given open mode.
svn path=/trunk/; revision=13338
2005-01-27 15:28:08 +00:00
Thomas Bluemel
466fa48bd1 1. fixed prototypes of NtQueryPerformanceCounter() and NtDelayExecution() and made them safely access buffers
2. moved the implementation of Sleep(Ex)() into more a appropriate file

svn path=/trunk/; revision=13337
2005-01-27 14:11:19 +00:00
Art Yerkes
6a5c36c54a There is no WinSta in here.
svn path=/trunk/; revision=13335
2005-01-27 04:15:14 +00:00
Martin Fuchs
46a940fddb move address bar into top rebar
svn path=/trunk/; revision=13334
2005-01-27 01:03:37 +00:00
Thomas Bluemel
a84129a69e This patch removes the cursor location from the window station object and always uses it in the GDIDEVICE. Patch by tinus. Fixes bug #484
svn path=/trunk/; revision=13333
2005-01-27 00:49:24 +00:00
Martin Fuchs
f99bb4b97d fix UNICODE command line handling for MinGW builds
svn path=/trunk/; revision=13332
2005-01-27 00:33:11 +00:00
Martin Fuchs
15476f2d69 fix UNICODE command line handling for MinGW builds
svn path=/trunk/; revision=13331
2005-01-27 00:33:05 +00:00
Thomas Bluemel
fb5a8b1c3c don't optimize reading/writing from/to vga memory away in optimized builds. this fixes bug #490
svn path=/trunk/; revision=13330
2005-01-27 00:29:12 +00:00
Martin Fuchs
002ed92443 fix typos
svn path=/trunk/; revision=13329
2005-01-27 00:21:34 +00:00
Martin Fuchs
0fc75e8bd1 store startup path statically
svn path=/trunk/; revision=13328
2005-01-27 00:20:40 +00:00
Martin Fuchs
9e0b60cb02 store start URL statically
svn path=/trunk/; revision=13327
2005-01-27 00:18:30 +00:00
Martin Fuchs
47335997a6 - rename some Explorer strings to IBrowser
- fix child window size

svn path=/trunk/; revision=13326
2005-01-27 00:09:43 +00:00
Gé van Geldorp
9627e4ac70 Avoid crash if import directory is messed up
svn path=/trunk/; revision=13325
2005-01-26 23:30:50 +00:00
Aleksey Bragin
d3fb293ea3 This is the initial version of USB port+hub+hostcontroller drivers from a special version of Linux USB Stack. More info will be placed at ROS-Wiki.
svn path=/trunk/; revision=13324
2005-01-26 22:34:39 +00:00
Filip Navara
5546cc5fd3 Hervé Poussineau <poussine@freesurf.fr>
No need to create \??\Mouse symlink in mouse driver, it's done in mouclass.

svn path=/trunk/; revision=13323
2005-01-26 22:05:12 +00:00
Steven Edwards
0053497f82 added ibrowser to the makefile
svn path=/trunk/; revision=13322
2005-01-26 22:03:05 +00:00
Gé van Geldorp
c05831ef5f Hervé Poussineau <poussine@freesurf.fr>
Replace GET_RETRIEVAL_DESCRIPTOR structure (undocumented) by
RETRIEVAL_POINTERS_BUFFER. Correct alignment for some structures

svn path=/trunk/; revision=13321
2005-01-26 20:31:05 +00:00
Steven Edwards
2c0281bda7 define stricmp to strcasecmp for the Unix build
svn path=/branches/xmlbuildsystem/; revision=13320
2005-01-26 20:23:50 +00:00
Hartmut Birr
b142dbd5d2 - Fixed a crash in PAE mode and without the '/3GB' switch.
svn path=/trunk/; revision=13319
2005-01-26 19:43:03 +00:00
Steven Edwards
5d781df325 fix resouce compiling on cross-compile
svn path=/trunk/; revision=13318
2005-01-26 19:22:37 +00:00
Thomas Bluemel
66af63e1c7 fixed typo, "fixes" bug 486
svn path=/trunk/; revision=13317
2005-01-26 19:19:07 +00:00
Thomas Bluemel
92ce1ebfdc don't return a random status code in case of probing failed, initialize the Status variable first
svn path=/trunk/; revision=13316
2005-01-26 17:54:26 +00:00
Thomas Bluemel
a3d5e1cf55 Heap32ListFirst() should check the number of heaps in the list, not the numer of modules
svn path=/trunk/; revision=13315
2005-01-26 17:53:01 +00:00
Thomas Bluemel
87e84448db NtCreatePagingFile() should release the captured unicode string even if probing the other parameters failed
svn path=/trunk/; revision=13314
2005-01-26 14:38:27 +00:00
Thomas Bluemel
a2ea8e6fef Fixed GetTempPathA/W and GetCurrentDirectoryA/W. Patch by tinus, Eric Kohl and me, fixes bug #482
svn path=/trunk/; revision=13313
2005-01-26 14:15:38 +00:00
Eric Kohl
77a7f19e4f Remove RtlImageNtHeader, RtlImageDirectoryEntryToData, RtlImageRvaToSection and RtlImageRvaToVa because these function have been moved to lib/rtl/image.c.
svn path=/trunk/; revision=13312
2005-01-26 14:00:41 +00:00
Alex Ionescu
fe6116543e Standardize comment headers. Patch by Trevor McCort
svn path=/trunk/; revision=13311
2005-01-26 13:58:37 +00:00
Thomas Bluemel
c7348f1204 fixed usage of NtQueryDirectoryObject()
svn path=/trunk/; revision=13310
2005-01-26 13:54:53 +00:00
Thomas Bluemel
c4ee7a37ef fixed NtQueryDirectoryObject() to properly handle buffers that are not large enough
svn path=/trunk/; revision=13309
2005-01-26 13:54:07 +00:00
Eric Kohl
49cd29484d Replace hardcoded values by known constants.
svn path=/trunk/; revision=13308
2005-01-26 13:52:53 +00:00
Eric Kohl
4556d3a778 - Replace NtQuerySystemTime by KeQuerySystemTime
- Nt->Zw

svn path=/trunk/; revision=13307
2005-01-26 13:48:38 +00:00
Thomas Bluemel
0ce1bb564c securely access buffers in NtOpenDirectoryObject(), NtQueryDirectoryObject() and NtCreateDirectoryObject()
svn path=/trunk/; revision=13306
2005-01-26 12:47:38 +00:00
Alex Ionescu
394f14a702 Dynamic 3GB support, part 1. Only multiboot.S remains to be changed, all other parts of the Kernel now used KERNEL_BASE based on the command-line (Please don't use /3gb if you don't compile 3GB)
svn path=/trunk/; revision=13305
2005-01-26 05:00:08 +00:00
Steven Edwards
d533b8c5d3 Windows is stupid. Why they hell would you be case insensitive but case retaining
svn path=/trunk/; revision=13304
2005-01-26 00:43:49 +00:00
Thomas Bluemel
180cf153bb don't shift the PIDs of objects so the first bit can be used to lock objects, as the lower 2 bits of PIDs are now always zero just test and set this bit
svn path=/trunk/; revision=13303
2005-01-26 00:43:24 +00:00
Martin Fuchs
0cf4124706 first draft of SDI browser application derived from ROS Explorer
svn path=/trunk/; revision=13302
2005-01-26 00:12:33 +00:00
Thomas Bluemel
b55653e57c 1. fixed NtCreateProcess to do some buffer checks and moved the implementation to an internal function so it can be shared with PsCreateSystemProcess(). Also don't leak so many resources on failures
2. processes should acuire a cid handle for their unique process id
3. fixed several instances in structures where process ids were DWORD/ULONG instead of HANDLEs

svn path=/trunk/; revision=13301
2005-01-26 00:03:05 +00:00
Thomas Bluemel
e91cfb5065 enable the SeSystemtimePrivilege privilege which is required to call SetLocalTime
svn path=/trunk/; revision=13300
2005-01-25 23:57:57 +00:00
Steven Edwards
e22aec2f4a Forgot to add Makefiles
svn path=/trunk/; revision=13299
2005-01-25 23:50:22 +00:00
Alex Ionescu
5078cef23f Sorry for incorrect file comiited.
svn path=/trunk/; revision=13298
2005-01-25 23:40:05 +00:00
Steven Edwards
c4e6624f9a fixed building of setupapi.
svn path=/trunk/; revision=13297
2005-01-25 23:39:07 +00:00
Steven Edwards
bd706b9ed3 Imported setupapi from the vendor branch. (Again).
svn path=/trunk/; revision=13296
2005-01-25 23:36:57 +00:00
Alex Ionescu
9238d3d14f Remove debug output from user mode exceptions. Reported by hbirr.
svn path=/trunk/; revision=13295
2005-01-25 23:36:23 +00:00
Steven Edwards
30e78f58a6 removing this to reimport it
svn path=/trunk/; revision=13294
2005-01-25 23:36:16 +00:00
Steven Edwards
3cae21ed95 Imported vendor drop of setupapi.
svn path=/trunk/; revision=13293
2005-01-25 23:23:38 +00:00
Gé van Geldorp
8948ac5248 Replace wcschr. Fixes bug #488.
svn path=/trunk/; revision=13290
2005-01-25 22:58:47 +00:00
Hartmut Birr
1701ae1191 - Removed slab.c, because this functions are not used.
svn path=/trunk/; revision=13289
2005-01-25 22:51:51 +00:00
Hartmut Birr
6193b59bb3 - Implemented a kernel mapping region which is process local.
This mapping can be used to map temporary memory pages from 
  other process's like  pde's/pte's. It is also used to make 
  a copy of a page or to clean a page.

svn path=/trunk/; revision=13288
2005-01-25 22:50:47 +00:00
Hartmut Birr
df79339515 - Renamed UpdateProgress to VfatxUpdateProgress.
svn path=/trunk/; revision=13287
2005-01-25 22:36:28 +00:00
Hartmut Birr
85d156faef - Added vfatxlib.
svn path=/trunk/; revision=13286
2005-01-25 22:10:39 +00:00
Hartmut Birr
ce143bb72c - Fixed the directory index of a file for FATX.
- Initialize some values from the RFCB.

svn path=/trunk/; revision=13285
2005-01-25 21:16:19 +00:00
Hartmut Birr
0bc04189e7 - Fixed the directory index of a file for FATX.
- Check for the file size before eache call to CcMapData. W2K doesnt like to map over the end of a directory.

svn path=/trunk/; revision=13284
2005-01-25 21:14:57 +00:00
Hartmut Birr
0d6305b3bc - Print the major function codes if debug prints are enabled.
svn path=/trunk/; revision=13283
2005-01-25 21:13:28 +00:00
Hartmut Birr
9147b52d01 - Allow the second device name RosFat to make it possible to load vfatfs on W2k if fastfat is already loaded.
- Moved the initialisation of the callback and fast io functions to fastio.c.

svn path=/trunk/; revision=13282
2005-01-25 21:12:52 +00:00
Hartmut Birr
b3dd7cd455 - Fixed some problems to recognize a FATX partition on a non xbox (Should be tested on a real xbox).
- Fixed the calculation of the number of clusters.

svn path=/trunk/; revision=13281
2005-01-25 21:11:46 +00:00
Hartmut Birr
4ef74de489 - Print the file information class if debug prints are enabled in VfatGet/SetInformation.
- Check for the open handle count instead of the reference count if file deletion is requested.

svn path=/trunk/; revision=13280
2005-01-25 21:10:42 +00:00
Hartmut Birr
81ddc4aa52 - Implemented dummy stubs for all fast io entry points. W2K does ignore the IsFastIoPossible variable of the fcb.
- Fixed the directory index of a file for FATX.

svn path=/trunk/; revision=13279
2005-01-25 21:09:55 +00:00
Hartmut Birr
c25206e880 - Check for some special file streams in VfatUpdateEntry.
W2K does open the volume for changing the date and time, 
  but the volume hasn't a parent fcb.  
- Fixed the directory index of a file for FATX.

svn path=/trunk/; revision=13278
2005-01-25 21:08:54 +00:00
Hartmut Birr
4211cf6398 - Fixed the directory index of a file for FATX.
- Replaced VfatSupersedeFile with VfatSetAllocationSizeInformation.  
- Check for the file size before each call to CcMapData. W2K doesn't like it to map over the end of a directory.


svn path=/trunk/; revision=13277
2005-01-25 21:07:32 +00:00
Hartmut Birr
4240c717c7 - Always try to uninitialize the file cache in VfatCleanupFile.
- Try to purge the file cache if the last handle is closed and deleting of the file was requested.

svn path=/trunk/; revision=13276
2005-01-25 21:05:38 +00:00
Mike Nordell
afec493812 NtGdiExtTextOut (ExtTextOut in user-mode) should now obey at least the right clipping edge with ETO_CLIPPED.
svn path=/trunk/; revision=13275
2005-01-25 20:53:37 +00:00
Steven Edwards
83b24c1c23 added winetests for version.dll
svn path=/trunk/; revision=13274
2005-01-25 19:11:22 +00:00
Steven Edwards
c7fd3f9438 remove some duplicate definintions.
svn path=/trunk/; revision=13273
2005-01-25 17:52:28 +00:00
Mike Nordell
c819a16600 Fixe use of memory after it had been free'd.
svn path=/trunk/; revision=13272
2005-01-25 16:38:18 +00:00
Mike Nordell
b0fc9bcff6 Kill compiler warning.
svn path=/trunk/; revision=13271
2005-01-25 16:26:01 +00:00
Mike Nordell
c4566e585f Fix declaration of WSAStartup
svn path=/trunk/; revision=13270
2005-01-25 14:22:50 +00:00
Gé van Geldorp
0b1105fc94 tinus <o112w8r02@sneakemail.com>
Properly allow removing toolbar bitmaps by changing it into 0.

svn path=/trunk/; revision=13269
2005-01-25 08:32:47 +00:00
Alex Ionescu
e032cf1fe8 Set up ACPI Interrupt data before creating the interrupt, to fix case where interrupt is being called as soon as it's being set up, before the data is set. Patch by tinus. Fixes bug 472
svn path=/trunk/; revision=13268
2005-01-25 05:38:01 +00:00
Alex Ionescu
c0441b0e5f Fix compiler errors. Patch by Herve Poussineau. Fixes bug 478
svn path=/trunk/; revision=13267
2005-01-25 05:11:17 +00:00
Alex Ionescu
dcee180336 Fix bug 474. Patch by tinus
svn path=/trunk/; revision=13266
2005-01-25 05:00:57 +00:00
Steven Edwards
ce861ca908 finished merging setupapi with Winehq CVS. Tommrow I will do a vendor drop of the latest Winehq CVS.
svn path=/trunk/; revision=13265
2005-01-25 01:35:43 +00:00
Alex Ionescu
05ea4c4aa5 Fix bugs on optimized build, fix RtlpDispatchException gobbling up ebx (thx ge), remove obsolete files
svn path=/trunk/; revision=13264
2005-01-25 01:23:23 +00:00
Steven Edwards
e19650d041 sync'd more of Wine setupapi. Added stubs and such.
svn path=/trunk/; revision=13263
2005-01-25 01:22:10 +00:00
Steven Edwards
6fba4c4f68 update to latest setupapi.h
svn path=/trunk/; revision=13262
2005-01-25 01:21:38 +00:00
Hartmut Birr
93e62510cf - Enabled SYSENTER/SYSEXIT for application processors on smp machines.
svn path=/trunk/; revision=13261
2005-01-25 00:28:45 +00:00
Thomas Bluemel
a3209eaf3e return error status in case probing the parameters failed in IoCreateFile()
svn path=/trunk/; revision=13260
2005-01-25 00:05:56 +00:00
Thomas Bluemel
5cb56337b2 some more parameter checks in IoCreateFile()
svn path=/trunk/; revision=13259
2005-01-24 23:59:30 +00:00
Hartmut Birr
24154dbca8 - Fixed my last commit.
svn path=/trunk/; revision=13258
2005-01-24 23:23:38 +00:00
Hartmut Birr
a7cbe13790 - Interpret STATUS_TIMEOUT as error in PsLockProcess.
svn path=/trunk/; revision=13257
2005-01-24 22:58:54 +00:00
Gé van Geldorp
93551abbd2 Implement IO_NO_PARAMETER_CHECKING flag
svn path=/trunk/; revision=13256
2005-01-24 22:02:09 +00:00
Martin Fuchs
d7aea92eeb adjust properties (CRLF line endlings, ignores)
svn path=/trunk/; revision=13255
2005-01-24 21:25:27 +00:00
Gé van Geldorp
d4d3631bfe Rollback last change, since we found out that IoCreateFile can accept
usermode parameters too

svn path=/trunk/; revision=13254
2005-01-24 21:21:17 +00:00
Martin Fuchs
4b48677143 fix typo and update CVS->Subversion
svn path=/trunk/; revision=13253
2005-01-24 21:05:37 +00:00
Gé van Geldorp
fe7b4968ce IoCreateFile should be passed kernelmode parameters.
svn path=/trunk/; revision=13252
2005-01-24 19:42:54 +00:00
Gé van Geldorp
c011a8410e Check error code before it is possibly clobbered. Spotted by w3seek.
svn path=/trunk/; revision=13251
2005-01-24 19:32:40 +00:00
Casper Hornstrup
610b936ad0 Add missing file
svn path=/branches/xmlbuildsystem/; revision=13250
2005-01-24 18:47:52 +00:00
Art Yerkes
c396222f34 Minor fix to ICMP receive.
svn path=/trunk/; revision=13249
2005-01-24 16:58:53 +00:00
Eric Kohl
0523b42582 Implement DuplicateString and QueryRegistryValue.
svn path=/trunk/; revision=13248
2005-01-24 14:17:30 +00:00
Eric Kohl
0c3b08d721 MyMalloc must not zero the memory.
svn path=/trunk/; revision=13247
2005-01-24 11:53:36 +00:00
Gé van Geldorp
87be65443f tinus <o112w8r02@sneakemail.com>
Don't allow selecting disabled menu items

svn path=/trunk/; revision=13246
2005-01-24 09:41:00 +00:00
Gé van Geldorp
5888e99ef3 Sylvain Petreolle <spetreolle@yahoo.fr>:
Add makefile for "polytest" test & enable it.
Fix compile warnings for diskspeed & zwcontinue tests

svn path=/trunk/; revision=13245
2005-01-24 09:33:21 +00:00
Gé van Geldorp
1aef2603e8 Fix compilation
svn path=/trunk/; revision=13244
2005-01-24 09:31:42 +00:00
Steven Edwards
c8f0cffff4 Correct location of a few stubs. Getting ready to sync in a day or so.
svn path=/trunk/; revision=13243
2005-01-24 05:12:15 +00:00
Alex Ionescu
a7272a8721 Proper support for vfatlib and allow -j2 to work (as long as make tools && make implib && make -j2 is used).
svn path=/trunk/; revision=13242
2005-01-24 02:08:25 +00:00
Thomas Bluemel
35c792ee32 fixed prototype of ZwOpenSemaphore
svn path=/trunk/; revision=13241
2005-01-24 00:44:21 +00:00
Thomas Bluemel
1796f01382 minor fixes
svn path=/trunk/; revision=13240
2005-01-24 00:43:39 +00:00
Gé van Geldorp
b1f6601134 Nt -> Zw
svn path=/trunk/; revision=13239
2005-01-24 00:18:57 +00:00
Gé van Geldorp
49af955e23 Make memory layout of GET_RETRIEVAL_DESCRIPTOR match RETRIEVAL_POINTERS_BUFFER
svn path=/trunk/; revision=13238
2005-01-24 00:15:29 +00:00
Thomas Bluemel
e453a1e961 don't copy the entire security descriptor to the stack in SeCaptureSecurityDescriptor() when previous mode is kernel mode and capturing for kernel mode is undesired
svn path=/trunk/; revision=13237
2005-01-24 00:09:04 +00:00
Thomas Bluemel
064504a61d 1. fixed the timer functions to securely access buffers
2. minor fixes due to copy+paste

svn path=/trunk/; revision=13236
2005-01-23 23:51:40 +00:00
Thomas Bluemel
7c02041548 1. fixed prototypes of NtSetSystemTime and NtQuerySystemTime and made them handle passed buffers securely
2. check for the SeSystemtimePrivilege privilege in NtSetSystemTime()
3. write debug messages when privileges are missing

svn path=/trunk/; revision=13235
2005-01-23 23:02:19 +00:00
Emanuele Aliberti
4301549d0d ObjectBody->Permanent setting cleaned.
svn path=/trunk/; revision=13234
2005-01-23 22:42:31 +00:00
Gé van Geldorp
60a81b9a9b Fix typo
svn path=/trunk/; revision=13233
2005-01-23 22:25:11 +00:00
Thomas Bluemel
baf658a398 fixed semaphore functions to securely access buffers and some minor fixes
svn path=/trunk/; revision=13232
2005-01-23 22:09:27 +00:00
Alex Ionescu
b25bf92b14 Fix svn:ignore problems and remove alignment hacks
svn path=/trunk/; revision=13231
2005-01-23 21:26:27 +00:00
Gé van Geldorp
acb0d0d67d Nt -> Zw fixes
svn path=/trunk/; revision=13230
2005-01-23 21:19:24 +00:00
Thomas Bluemel
7b20e4cdbf get rid of the reactos-only RTL_REGISTRY_ENUM flag and added more debug messages to ease debugging failures
svn path=/trunk/; revision=13229
2005-01-23 20:58:28 +00:00
Gé van Geldorp
05934c33b6 Make gdb stack trace back to usermode work again
svn path=/trunk/; revision=13228
2005-01-23 20:57:45 +00:00
Gé van Geldorp
c377a52fa4 Keep usermode stack 4-byte aligned
svn path=/trunk/; revision=13227
2005-01-23 20:48:19 +00:00
Thomas Bluemel
e9c80bcd6f the system process should be called "System", not "SYSTEM"
svn path=/trunk/; revision=13226
2005-01-23 18:18:08 +00:00
Casper Hornstrup
04f77b12fe Add documentation
svn path=/branches/xmlbuildsystem/; revision=13225
2005-01-23 12:47:42 +00:00
Art Yerkes
fcfa663724 Fixed DNS lookup in ping.
Fixed output format.

Patch by Andrew Munger (WaxDragon)

svn path=/trunk/; revision=13224
2005-01-23 11:01:51 +00:00
Art Yerkes
a23df2bed0 Fixed broadcast UDP.
lan: Added calculation of broadcast address.
fileobjs: Check for broadcast receive.
neighbor: Check for broadcast send.
interface: Use cached broadcast address.
udp: Fix port allocation.

svn path=/trunk/; revision=13223
2005-01-23 09:51:03 +00:00
Casper Hornstrup
3ccd7d62e9 * Build epsapi, dxguid, devenum, imm32, dinput8, dsound, expat, glu32, vfatlib
* Build dbghelp, gdiplus, dxdiagn, imagehlp, strmiids, dinput, fmifs, psapi 


svn path=/branches/xmlbuildsystem/; revision=13222
2005-01-23 01:33:35 +00:00
Casper Hornstrup
ab4b7a72aa * Build crtdll
* Add module attribute "mangledsymbols" to control --kill-at option for dlltool in order to allow preservation of mangled symbols


svn path=/branches/xmlbuildsystem/; revision=13221
2005-01-22 22:00:17 +00:00
Thomas Bluemel
063e4f41a5 don't leak resources on failure
svn path=/trunk/; revision=13220
2005-01-22 20:59:49 +00:00
Thomas Bluemel
31067aaecb RtlCaptureUnicodeString should also check the buffers that the UNICODE_STRING structure points to...
svn path=/trunk/; revision=13219
2005-01-22 20:53:14 +00:00
Casper Hornstrup
421cfcb760 Add missing file
svn path=/branches/xmlbuildsystem/; revision=13218
2005-01-22 18:08:28 +00:00
Casper Hornstrup
28243f499d Build control panel applets
svn path=/branches/xmlbuildsystem/; revision=13217
2005-01-22 18:06:37 +00:00
Casper Hornstrup
d0acee6af8 * Invoke cabman when building a CD
* Entrypoint attribute on <module> to override default entrypoint
* Use entrypoint _DrvEnableDriver@12 for display drivers


svn path=/branches/xmlbuildsystem/; revision=13216
2005-01-22 17:38:31 +00:00
Thomas Bluemel
87a8d3ebeb more NtXxx vs. ZwXxx fixes
svn path=/trunk/; revision=13215
2005-01-22 15:48:00 +00:00
Casper Hornstrup
ac58a35d34 * Build cabman and zlib
* Add iso module type


svn path=/branches/xmlbuildsystem/; revision=13214
2005-01-22 15:27:06 +00:00
Royce Mitchell III
cd93112435 This fixes the small problem that generated files were being added to the Dev-C++ project even though they didn't yet exist. - patch by Trevor McCort
svn path=/branches/xmlbuildsystem/; revision=13213
2005-01-22 15:09:36 +00:00
Thomas Bluemel
96245a4ae9 return the status code when probing the buffer failed
svn path=/trunk/; revision=13212
2005-01-22 14:34:54 +00:00
Casper Hornstrup
87f69aaf32 * Build freeldr
* Add BootLoader and ObjectLibrary module types
* Add <compilerflag> tag


svn path=/branches/xmlbuildsystem/; revision=13211
2005-01-22 14:07:45 +00:00
Thomas Bluemel
d361170c2c 1. remove obsolete buffer size checks from NtQueryInformationProcess()
2. fixed some buffer checks

svn path=/trunk/; revision=13210
2005-01-22 13:34:27 +00:00
Thomas Bluemel
1be6d7bcaa fixed the prototype of KePulseEvent() and made NtPulseEvent() return the previous state
svn path=/trunk/; revision=13209
2005-01-22 12:45:03 +00:00
Thomas Bluemel
72ae3c4197 1. A few Nt vs. Zw fixes
2. Fixed and extended RtlCaptureUnicodeString()
3. securely access buffers in NtQuerySystemEnvironmentValue() and NtSetSystemEnvironmentValue() and check for required SeSystemEnvironmentPrivilege privilege

svn path=/trunk/; revision=13208
2005-01-22 12:20:12 +00:00
Art Yerkes
9fbbec950f Working ping.
msafd: Added datagram flag to SOCK_RAW sockets
transport/* did some refactoring, added some printing.
  Main thing: there is now a generic IP only header builder in rawip that's
  shared by udp and rawip.
afd: Make sure datagram sockets always select writable
     Add some socket close infrastructure to kill associated active polls

svn path=/trunk/; revision=13207
2005-01-22 06:47:33 +00:00
Alex Ionescu
07ea0d9fa0 Fix remaning ROS bugs. A minor hack has been added to ObCreateObject because it seems that gcc doesn't dword-align the stacks?!! Thanks to w3seek for some of the ex patches.
svn path=/trunk/; revision=13206
2005-01-22 03:54:23 +00:00
Steven Edwards
c6bd59c308 more syncing of setupapi
svn path=/trunk/; revision=13205
2005-01-22 02:38:07 +00:00
Art Yerkes
7d3a25e1cc Removed uninitialized uSec and its use.
svn path=/trunk/; revision=13204
2005-01-22 02:06:56 +00:00
Steven Edwards
e6c8a783fb started syncing setupapi.dll with Winehq. Once I get things in sync I will import to the vendor branch and do a proper merge.
svn path=/trunk/; revision=13203
2005-01-22 01:35:07 +00:00
Alex Ionescu
e5c8bc95a6 Fix all remaning alignment errors. Ros is now moderately usable. Error in explorer remains making disk browsing impossible, but with other tools it still works
svn path=/trunk/; revision=13202
2005-01-22 01:30:05 +00:00
Alex Ionescu
f01dc245a1 ReactOS now boots. More bug fixes needed
svn path=/trunk/; revision=13201
2005-01-22 01:00:12 +00:00
Thomas Bluemel
06bcb7b055 remove double function head of NtCreateEvent()
svn path=/trunk/; revision=13200
2005-01-21 23:58:30 +00:00
Alex Ionescu
686128e903 First patch to fix seriously broken ROS (thank Thomas). Work in progress, will be cleaned up at the end
svn path=/trunk/; revision=13199
2005-01-21 23:35:19 +00:00
Thomas Bluemel
1b5ef0524f don't probe ObjectAttributes if NULL
svn path=/trunk/; revision=13198
2005-01-21 23:01:33 +00:00
Thomas Bluemel
bbc9243d77 NtCreateJobObject() should create the handle instead of just returning a uninitialized variable
svn path=/trunk/; revision=13197
2005-01-21 22:25:54 +00:00
Thomas Bluemel
81fd53f09d Simplify buffer checks for NtQueryInformation...() and NtSetInformation...() using universal macros and information class tables
svn path=/trunk/; revision=13196
2005-01-21 21:37:32 +00:00
Thomas Bluemel
52fadec1ee the ProcessPriorityBoost class expects ULONG, not BOOL
svn path=/trunk/; revision=13195
2005-01-21 21:34:49 +00:00
Thomas Bluemel
ec6ea0795a properly query the device map
svn path=/trunk/; revision=13194
2005-01-21 21:29:29 +00:00
Casper Hornstrup
7b13462f5a Build comdlg32, oleaut32, wine_unicode, winspool, shell32, and shlwapi
svn path=/branches/xmlbuildsystem/; revision=13193
2005-01-21 21:06:40 +00:00
Thomas Bluemel
4da8f45753 properly set the access token in CreateProcessAsUser()
svn path=/trunk/; revision=13192
2005-01-21 20:31:24 +00:00
Royce Mitchell III
23a949dd32 attribute 'first' of <file> must be 'true' or 'false'
remove an obsolete comment

svn path=/branches/xmlbuildsystem/; revision=13191
2005-01-21 18:15:10 +00:00
Casper Hornstrup
f7201d8993 Build cabinet, advpack, rpcrt4, ole32, version, cards, and uuid
svn path=/branches/xmlbuildsystem/; revision=13190
2005-01-21 18:09:02 +00:00
Gregor Anich
955bb3e32e Fix compiler warning.
svn path=/trunk/; revision=13189
2005-01-21 17:24:34 +00:00
Thomas Bluemel
a016befb78 fixed ASSERT statement, thanks to blight for pointing it out
svn path=/trunk/; revision=13188
2005-01-21 17:17:13 +00:00
Gé van Geldorp
27c9d50d1d Merge back commit from winehq
svn path=/trunk/; revision=13187
2005-01-21 16:50:11 +00:00
Thomas Bluemel
1e0c9bb940 partial implementation of NtTerminateJobObject()
svn path=/trunk/; revision=13186
2005-01-21 14:52:53 +00:00
Thomas Bluemel
21f9ca1b64 implemented NtOpenJobObject()
svn path=/trunk/; revision=13185
2005-01-21 14:40:06 +00:00
Thomas Bluemel
f67131616e partial implementation of NtAssignProcessToJobObject() and NtCreateJobObject()
svn path=/trunk/; revision=13184
2005-01-21 14:12:03 +00:00
Thomas Bluemel
b3dfa90a2f add PoolType parameter to ObpCaptureObjectAttributes() and removed an unused parameter
svn path=/trunk/; revision=13183
2005-01-21 13:25:28 +00:00
Eric Kohl
3c5d760b6c Implement MyFree, MyMalloc and MyReAlloc.
svn path=/trunk/; revision=13182
2005-01-21 12:27:32 +00:00
Thomas Bluemel
599f7e108c fixed ObpCaptureObjectAttributes() so it doesn't copy the object name if probing previously failed
svn path=/trunk/; revision=13181
2005-01-21 11:14:41 +00:00
Thomas Bluemel
0dbd86466b fixed usage of uninitialized variable
svn path=/trunk/; revision=13180
2005-01-21 10:33:30 +00:00
Thomas Bluemel
f15230fffc added helper functions ObpCaptureObjectAttributes() and ObpReleaseObjectAttributes() to be used to safely capture OBJECT_ATTRIBUTES structures
svn path=/trunk/; revision=13179
2005-01-21 10:28:13 +00:00
Thomas Bluemel
d183d616d0 SeCaptureSecurityDescriptor() should only copy SIDs and ACLs when present
svn path=/trunk/; revision=13178
2005-01-21 02:39:59 +00:00
Mike Nordell
53ea2da74d Fix crashing browsing namespace with non-zero-terminated UNICODE_STRING.
svn path=/trunk/; revision=13177
2005-01-21 02:34:33 +00:00
Thomas Bluemel
be2cf1c579 SeCaptureSecurityDescriptor() should take PoolType into account...
svn path=/trunk/; revision=13176
2005-01-21 02:19:13 +00:00
Thomas Bluemel
f693575e35 implemented SeCaptureSecurityDescriptor() and SeReleaseSecurityDescriptor(), thanks also to Alex
svn path=/trunk/; revision=13175
2005-01-21 02:14:52 +00:00
Gunnar Dalsnes
e0e2a23ad6 forgot a letter...
svn path=/trunk/; revision=13174
2005-01-20 23:25:05 +00:00
Gunnar Dalsnes
759171e1fe add readme with rtl restrictions info
svn path=/trunk/; revision=13172
2005-01-20 23:21:14 +00:00
Casper Hornstrup
5ce17b05d1 Modules are built in the intermediate directory.
svn path=/branches/xmlbuildsystem/; revision=13171
2005-01-20 23:05:36 +00:00
Gé van Geldorp
1e2f8e3c7d Gedi <gedi@ntworld.com>
Prevent possible use of uninitialized var warning

svn path=/trunk/; revision=13170
2005-01-20 22:45:22 +00:00
Casper Hornstrup
45e6d4dd39 Fix copy/paste error.
svn path=/branches/xmlbuildsystem/; revision=13169
2005-01-20 22:24:30 +00:00
Casper Hornstrup
49d3351175 * Build bin2res, winmm, comctl32, aclui, acledit
* Correct dependencies for build tool invocations
* Normalize paths in the generated makefile


svn path=/branches/xmlbuildsystem/; revision=13168
2005-01-20 22:19:01 +00:00
Thomas Bluemel
808fec3b76 don't touch memory outside the area to be probed in ProbeForWrite() and minor address range check fixes in ProbeForRead/Write()
svn path=/trunk/; revision=13167
2005-01-20 21:03:35 +00:00
Alex Ionescu
0b7bbeea36 Fix FsRtl function prototypes
svn path=/trunk/; revision=13166
2005-01-20 13:31:49 +00:00
Thomas Bluemel
1afa98bcff fixed uninitialized variables warning
svn path=/trunk/; revision=13165
2005-01-20 13:17:57 +00:00
Thomas Bluemel
0d3598e98b fixed uninitialized variables warning
svn path=/trunk/; revision=13164
2005-01-20 13:13:16 +00:00
Gé van Geldorp
5be65d6f1d ReactOS additions/changes
svn path=/trunk/; revision=13163
2005-01-20 11:41:23 +00:00
Gé van Geldorp
f24b6093d2 Initial vendor drop
svn path=/trunk/; revision=13162
2005-01-20 11:37:29 +00:00
Gé van Geldorp
4ba8fcfa61 Remove old version
svn path=/trunk/; revision=13161
2005-01-20 11:23:48 +00:00
Eric Kohl
cba8100915 - Update LegalAnsiCharacterArray (set FAT, HPFS and NTFS flags).
- Improve the prototypes of FsRtlIsDbcsInExpression, FsRtlIsFatDbcsLegal and FsRtlIsHpfsDbcsLegal.

svn path=/trunk/; revision=13156
2005-01-20 10:04:22 +00:00
Royce Mitchell III
a04e56cbf4 beginnings of dev-c++ backend - patch by Trevor McCort
svn path=/branches/xmlbuildsystem/; revision=13155
2005-01-20 06:42:22 +00:00
Royce Mitchell III
03c9d860ba require attributes to have values
svn path=/branches/xmlbuildsystem/; revision=13154
2005-01-20 06:36:37 +00:00
Steven Edwards
dc266b8b95 hard code mingw32-* for cross-compile, this is bad.
svn path=/branches/xmlbuildsystem/; revision=13153
2005-01-20 06:29:08 +00:00
Royce Mitchell III
0b93b06fee mark off area where variables need to differ for *nix
svn path=/branches/xmlbuildsystem/; revision=13152
2005-01-20 06:09:07 +00:00
Thomas Bluemel
c894dc2473 fixed copying buffers in the ProcessImageFileName class in NtQueryInformationProcess() when copying the image name from a process other than the current one
svn path=/trunk/; revision=13151
2005-01-20 02:14:20 +00:00
Thomas Bluemel
e9bb005dfb fixed ProbeForWrite() for optimized builds
svn path=/trunk/; revision=13149
2005-01-20 01:19:52 +00:00
Thomas Bluemel
f9c455c59e move implementation of NtOpenProcessToken() to NtOpenProcessTokenEx()
svn path=/trunk/; revision=13148
2005-01-20 00:44:55 +00:00
Thomas Bluemel
d6628e3e23 wrap access to foreign Peb with SEH
svn path=/trunk/; revision=13147
2005-01-20 00:31:52 +00:00
Thomas Bluemel
cfdf8abfca fixed typo
svn path=/trunk/; revision=13146
2005-01-20 00:14:50 +00:00
Thomas Bluemel
80d404e4e9 implemented the ProcessDebugPort class for NtSetInformationProcess()
svn path=/trunk/; revision=13145
2005-01-20 00:12:38 +00:00
Thomas Bluemel
f006a0d6f9 1. implemented the ProcessDebugPort class for NtQueryInformationProcess()
2. Probe user mode pointers in NtQueryInformationProcess() and NtSetInformationProcess()

svn path=/trunk/; revision=13144
2005-01-19 23:38:06 +00:00
Thomas Bluemel
3638fef3ce secure access to buffers in NtQueryInformationProcess() and NtSetInformationProcess()
svn path=/trunk/; revision=13143
2005-01-19 22:47:26 +00:00
Thomas Bluemel
9543041c3d implemented the TokenSessionId class for NtQueryInformationToken()
svn path=/trunk/; revision=13142
2005-01-19 22:45:14 +00:00
Thomas Bluemel
51e2ff7462 1. fixed the ProcessAccessToken information class to properly check buffers
2. implemented the ProcessExceptionPort information class

svn path=/trunk/; revision=13141
2005-01-19 21:47:51 +00:00
KJK::Hyperion
223c560590 Temporary hack to make ntoskrnl stop crashing - an user-mode pointer (in the EBP register) was being dereferenced without any check
Since I don't know what this is for, I'm disabling it for now - it works for people reporting the crash, and it apparently only breaks GDB support. Alex, this should be your baby, please have a look

svn path=/trunk/; revision=13140
2005-01-19 21:05:26 +00:00
Thomas Bluemel
030b284e30 fixed typo in PsLockProcess()
svn path=/trunk/; revision=13139
2005-01-19 21:04:37 +00:00
Thomas Bluemel
f2e99da071 implemented the ProcessSessionInformation information class
svn path=/trunk/; revision=13138
2005-01-19 20:59:53 +00:00
Steven Edwards
edd0e23bb6 make NtFlushVirtualMemory return STATUS_SUCCESS rather than hanging as being UNIMPLEMENTED. Added a DPRINT to warn that its a stub
svn path=/trunk/; revision=13137
2005-01-19 20:26:56 +00:00
Thomas Bluemel
837f31e111 fixed implementation of SetErrorMode() which should rather store the mode in the EPROCESS structure
svn path=/trunk/; revision=13136
2005-01-19 20:16:26 +00:00
Casper Hornstrup
4b9c656dd5 * Build freetype, win32k, and video drivers
* Generate module.spec.def, not module.def


svn path=/branches/xmlbuildsystem/; revision=13135
2005-01-19 19:49:57 +00:00
Thomas Bluemel
c0ff13e571 made SetErrorMode() thread-safe
svn path=/trunk/; revision=13134
2005-01-19 19:14:56 +00:00
Gé van Geldorp
5b0f6dccee tinus <o112w8r02@sneakemail.com>
This patch fixes some weirdness in the clipping logic. It also seems to make
these 'black cursor' images happen less often, but I can't tell for sure.

svn path=/trunk/; revision=13133
2005-01-19 14:25:10 +00:00
Gé van Geldorp
c668ac40c1 tinus <o112w8r02@sneakemail.com>
Prevent part of "My Computer" icon being erased during startup

svn path=/trunk/; revision=13132
2005-01-19 14:15:29 +00:00
Steven Edwards
626bad3278 Change UNIMPLEMENTED to DPRINT1 for NtGdiRemoveFontResource to make the MS Office installer a little more happy
svn path=/trunk/; revision=13131
2005-01-19 06:51:35 +00:00
Alex Ionescu
5b90245c50 Bug fixes against uninitizlied variables and support for tree-wide optimization (do not try yet, crashes in bootvid).
svn path=/trunk/; revision=13130
2005-01-19 03:33:43 +00:00
Royce Mitchell III
6a6a71b2f1 added 'first' attribute to <file>
svn path=/branches/xmlbuildsystem/; revision=13129
2005-01-19 01:37:35 +00:00
Alex Ionescu
dfb0ecac30 Fix hacks from last night and properly share the code
svn path=/trunk/; revision=13128
2005-01-19 01:11:43 +00:00
Thomas Bluemel
662d94147e fixed prototype of NtNotifyChangeKey()
svn path=/trunk/; revision=13127
2005-01-18 22:47:16 +00:00
KJK::Hyperion
5a3c9154cd Implemented TransmitFile (non-functional, depends on unimplemented features), added some missing definitions to mswsock.h
svn path=/trunk/; revision=13126
2005-01-18 22:36:39 +00:00
Hartmut Birr
1454ac7d81 - Fixed the disabling of interrupts on the stack before sysexit.
svn path=/trunk/; revision=13125
2005-01-18 18:12:41 +00:00
Royce Mitchell III
6f056ee7ce msvc6 compatibility
svn path=/branches/xmlbuildsystem/; revision=13124
2005-01-18 17:00:47 +00:00
Eric Kohl
b924c1f528 Revert accidential changes.
svn path=/trunk/; revision=13123
2005-01-18 14:16:01 +00:00
Eric Kohl
fafbe81db6 - Remove Nt/ZwQueryOleDirectoryFile.
- Nt/ZwPlugPlayControl has got 3 instead of 4 arguments.

svn path=/trunk/; revision=13122
2005-01-18 13:59:14 +00:00
Gunnar Dalsnes
38646d1b3f replace heap allocs with pool allocs (cant use heap allocs in rtl)
svn path=/trunk/; revision=13121
2005-01-18 13:27:28 +00:00
Gé van Geldorp
0612bf5ddf SVN property stuff
svn path=/trunk/; revision=13120
2005-01-18 11:07:34 +00:00
Gé van Geldorp
058076c6a2 Fix crash during boot
svn path=/trunk/; revision=13119
2005-01-18 10:41:49 +00:00
Gé van Geldorp
820d97c380 Fix line endings
svn path=/trunk/; revision=13118
2005-01-18 10:08:31 +00:00
Alex Ionescu
3f10399e5d Fix to unbreak tree. This is temporary until I come up with a good NtCurrentPeb macro that can be shared. Note that the brekage is because an ntdll only function was put in rtl but never used from ntoskrnl until my previous patch. It could be shared, but I need to do some work on it.
svn path=/trunk/; revision=13117
2005-01-18 06:00:55 +00:00
Steven Edwards
e67bd739cb added cabinet,msi and msiexec to the Makefile. This gets IE, Office and friends a little further along
svn path=/trunk/; revision=13116
2005-01-18 05:52:54 +00:00
Art Yerkes
c43897388e This file migrated to ip.a a while back.
svn path=/trunk/; revision=13115
2005-01-18 04:41:17 +00:00
Art Yerkes
2cbfa21b96 Removed this IoReleaseCancelSpinlock. I believe it's correct but seems to
bugcheck others.

svn path=/trunk/; revision=13114
2005-01-18 04:39:15 +00:00
Alex Ionescu
e4d14eb7ad Share duplicated Rtl code. I've taken care to use the most recent code, so now ntoskrnl can also do environment string expansion.
svn path=/trunk/; revision=13113
2005-01-18 04:33:31 +00:00
Art Yerkes
c435570afa HTTP registry browser.
svn path=/trunk/; revision=13112
2005-01-18 04:25:27 +00:00
Art Yerkes
6ef8bebde9 Browsing netreg, the http registry server works.
svn path=/trunk/; revision=13111
2005-01-18 04:14:13 +00:00
Alex Ionescu
fc779d75d9 MSVC compatibility for NCITool, fix more svn:ignore stuff..., enable interrupts during APC delivery and syscall calling, because the functions are probably expecting them to be enabled at that time.
svn path=/trunk/; revision=13110
2005-01-18 04:02:49 +00:00
Mark Tempel
ecac8a6e91 Update to load usbuhci
svn path=/trunk/; revision=13109
2005-01-18 03:35:37 +00:00
Mark Tempel
c1d9eb7340 Update to add some debugging messages.
svn path=/trunk/; revision=13108
2005-01-18 03:34:18 +00:00
Alex Ionescu
c2f6ea52b4 Fix SYSENTER support in VMware. New benchmar: 200ms. ***70%*** faster then with Int2E. Fix FPU save bug/explorer bug. Fix Vmware 4.0 crash bug. HARTMUT IS A GENIUS.
svn path=/trunk/; revision=13107
2005-01-18 03:28:00 +00:00
Mark Tempel
79da6bc351 svn path=/trunk/; revision=13106 2005-01-18 02:12:45 +00:00
Art Yerkes
3fd5cf1bd2 Removed old stupid cruft i added when i didn't understand this code.
svn path=/trunk/; revision=13105
2005-01-18 01:32:01 +00:00
Thomas Bluemel
2215233073 fixed GetCurrentDirectoryA() to properly handle the case where the caller only queries the required buffer size.
svn path=/trunk/; revision=13104
2005-01-17 22:05:00 +00:00
Casper Hornstrup
9b92b2cc9a Build storage drivers
svn path=/branches/xmlbuildsystem/; revision=13103
2005-01-17 21:40:12 +00:00
Hartmut Birr
d259b9f2fc - Set the limit of the user mode code/data segment back to 4GB.
svn path=/trunk/; revision=13102
2005-01-17 21:29:43 +00:00
Gé van Geldorp
3dd9f51ff6 Fix building on Windows
svn path=/trunk/; revision=13101
2005-01-17 20:32:09 +00:00
Hartmut Birr
fa74b30016 - Fixed the sysexit check. We must use a kernel mode segment to access KiFastSystemCallDisable.
- Fixed some segment limits.

svn path=/trunk/; revision=13100
2005-01-17 19:22:03 +00:00
Art Yerkes
dc88ce8729 More commits of the same. SVN is being a bit picky about resolved
conflicts.

svn path=/branches/xmlbuildsystem/; revision=13099
2005-01-17 16:27:28 +00:00
Art Yerkes
076c15efdb - Add a NUL definition, as well as rmkdir
- Create directory targets for intermediate files area
- .def files are in the source tree in our current scheme

svn path=/branches/xmlbuildsystem/; revision=13098
2005-01-17 16:26:11 +00:00
Eric Kohl
69688ce6ab Patch by tinus.Fix media change support for CDROMs. This fixes bug #471. Patch by tinus.
svn path=/trunk/; revision=13097
2005-01-17 14:30:31 +00:00
Eric Kohl
968f3f7c24 Enable CdfsOpenFile() to open a file using a relative filename. This fixes bug #477. Patch by tinus.
svn path=/trunk/; revision=13096
2005-01-17 10:20:03 +00:00
Eric Kohl
27c0824f2c Remove obsolete code.
svn path=/trunk/; revision=13095
2005-01-17 10:16:17 +00:00
Eric Kohl
54703fcfc8 Set the environment variables %USERPROFILE% and %ALLUSERSPROFILE% for the Live-CD. Fixes bug #479.
Patch by tinus.

svn path=/trunk/; revision=13094
2005-01-17 09:50:10 +00:00
Alex Ionescu
13390d7cbd The actual fix...
svn path=/trunk/; revision=13093
2005-01-17 07:31:12 +00:00
Alex Ionescu
87a98e17d3 SVN Stupidity
svn path=/trunk/; revision=13092
2005-01-17 07:25:38 +00:00
Alex Ionescu
7b59e487ac Small fix
svn path=/trunk/; revision=13091
2005-01-17 07:24:10 +00:00
Alex Ionescu
f6559e22c4 SYSENTER support, INT2E Optimization, new Syscall Table/Stub generator and svn:ignore fixes. Please read associated Mailing List Post.
svn path=/trunk/; revision=13090
2005-01-17 07:10:34 +00:00
Art Yerkes
0eab4e1544 Assert writable on a new socket.
svn path=/trunk/; revision=13089
2005-01-17 01:30:26 +00:00
Emanuele Aliberti
3d23fea989 Alex Ionescu added.
svn path=/trunk/; revision=13088
2005-01-16 22:53:36 +00:00
Gé van Geldorp
230af59be2 Create performance test program
svn path=/trunk/; revision=13087
2005-01-16 22:35:11 +00:00
Casper Hornstrup
b71ea907b8 * Build networking components
* WINE DLL support


svn path=/branches/xmlbuildsystem/; revision=13086
2005-01-16 22:26:26 +00:00
Casper Hornstrup
b854348f4e Build input device drivers
svn path=/branches/xmlbuildsystem/; revision=13085
2005-01-16 18:39:32 +00:00
Casper Hornstrup
c5557e2907 Clean intermediate files.
svn path=/branches/xmlbuildsystem/; revision=13084
2005-01-16 18:30:40 +00:00
Casper Hornstrup
e7a44a6878 Build filesystems
svn path=/branches/xmlbuildsystem/; revision=13083
2005-01-16 18:14:04 +00:00
Casper Hornstrup
cca9835bf1 Build device drivers
svn path=/branches/xmlbuildsystem/; revision=13082
2005-01-16 17:24:37 +00:00
Casper Hornstrup
14af027c76 Build bus drivers
svn path=/branches/xmlbuildsystem/; revision=13081
2005-01-16 16:45:53 +00:00
Casper Hornstrup
772c512c90 Export functions in .def files
svn path=/branches/xmlbuildsystem/; revision=13080
2005-01-16 16:18:52 +00:00
Casper Hornstrup
fd7f52294b Don't include full path for --dllname
svn path=/branches/xmlbuildsystem/; revision=13079
2005-01-16 14:23:35 +00:00
Casper Hornstrup
40a6da67c4 * KernelModeDriver module support
* Build afd.sys


svn path=/branches/xmlbuildsystem/; revision=13078
2005-01-16 13:51:33 +00:00
Casper Hornstrup
41c7d92f46 Add resources to existing modules.
svn path=/branches/xmlbuildsystem/; revision=13077
2005-01-16 11:52:30 +00:00
Gé van Geldorp
182c4064e6 Use native BOOLEAN instead of win32k BOOL
svn path=/trunk/; revision=13076
2005-01-16 11:29:03 +00:00
Art Yerkes
9f8bfdb6c1 Added xml for ip libs.
svn path=/branches/xmlbuildsystem/; revision=13075
2005-01-16 11:02:12 +00:00
Gé van Geldorp
3944d90e5e Implement LOAD_LIBRARY_AS_DATAFILE flag (forgotten file)
svn path=/trunk/; revision=13074
2005-01-16 09:44:07 +00:00
Gé van Geldorp
06a877e885 Implement LOAD_LIBRARY_AS_DATAFILE flag
svn path=/trunk/; revision=13073
2005-01-16 09:36:19 +00:00
Art Yerkes
1231f84084 Corrected filename trap.S -> trap.s
svn path=/branches/xmlbuildsystem/; revision=13072
2005-01-16 09:24:00 +00:00
Royce Mitchell III
c5e94f140e msys compatibility fix
svn path=/branches/xmlbuildsystem/; revision=13071
2005-01-15 23:15:04 +00:00
Royce Mitchell III
2735c4ca05 remove unnecessary call to c_str()
svn path=/branches/xmlbuildsystem/; revision=13070
2005-01-15 23:14:53 +00:00
Casper Hornstrup
8df8ba2e6a Refactor GenerateGlobalCFlagsAndProperties
svn path=/branches/xmlbuildsystem/; revision=13069
2005-01-15 23:00:02 +00:00
Casper Hornstrup
d451f1d1f2 Windres support.
svn path=/branches/xmlbuildsystem/; revision=13068
2005-01-15 22:32:01 +00:00
Hartmut Birr
a30a353dcb - Fixed some minor bugs.
- Moved the definition for unicode compiling to the make file.  
- Wait on the input handle instead to poll it every 40ms.
- Use the number of cpus for time calculations.

svn path=/trunk/; revision=13067
2005-01-15 20:28:19 +00:00
Hartmut Birr
c30d55149e - 'Y', 'N', 'K' and 'Q' must be upper case.
svn path=/trunk/; revision=13066
2005-01-15 20:23:32 +00:00
Hartmut Birr
9bf671b7f6 - Fixed a bug which results in losing a character in the write buffer
if there is a  call to lseek immediately after the call to flsbuf.

svn path=/trunk/; revision=13065
2005-01-15 20:20:53 +00:00
Casper Hornstrup
9dab4509fa Import TechBot
svn path=/trunk/; revision=13064
2005-01-15 19:27:25 +00:00
Casper Hornstrup
568b27baeb Move Arch to irc module.
svn path=/trunk/; revision=13063
2005-01-15 19:15:45 +00:00
Casper Hornstrup
c5b25f41e4 * Use objects rather than archive when linking ntoskrnl
* Remove unused file except.s
* Remove duplicate strtok() in ntoskrnl


svn path=/branches/xmlbuildsystem/; revision=13062
2005-01-15 19:00:35 +00:00
Casper Hornstrup
f429c942db If test
svn path=/branches/xmlbuildsystem/; revision=13061
2005-01-15 17:59:06 +00:00
Thomas Bluemel
85ae2d98f2 janitory work
svn path=/trunk/; revision=13060
2005-01-15 16:42:28 +00:00
Thomas Bluemel
c0aceb10d9 janitory work
svn path=/trunk/; revision=13059
2005-01-15 16:35:30 +00:00
Thomas Bluemel
96bc14a162 fixed invalid dependency to msvcrt
svn path=/trunk/; revision=13058
2005-01-15 16:01:55 +00:00
Gé van Geldorp
e3ea6fc396 Hervé Poussineau <hpoussineau@fr.st>
Add localization to ctm

svn path=/trunk/; revision=13057
2005-01-15 15:28:51 +00:00
Gé van Geldorp
274efb4364 amdg <xbn@isw.uni-stuttgart.de>
Spanish translation for timedate.cpl

svn path=/trunk/; revision=13056
2005-01-15 15:09:22 +00:00
Casper Hornstrup
d3a30bf22d * LinkerFlag tag support
* Build addsys, libwine.a, user32.dll, advapi32.dll, gdi32.dll, msvcrt.dll, and welcome.exe


svn path=/branches/xmlbuildsystem/; revision=13055
2005-01-15 13:52:36 +00:00
Thomas Bluemel
0ccb1d80d9 delete empty and unused directory
svn path=/trunk/; revision=13054
2005-01-15 10:37:01 +00:00
Gé van Geldorp
8d58a5f254 Speed up 16bpp fills by a factor 2
svn path=/trunk/; revision=13053
2005-01-15 09:46:55 +00:00
Thomas Bluemel
cc5f2d10ce implemented QueryWorkingSet()
svn path=/trunk/; revision=13052
2005-01-15 02:44:25 +00:00
Thomas Bluemel
3e133f3384 implemented GetProcessMemoryInfo()
svn path=/trunk/; revision=13051
2005-01-15 02:33:06 +00:00
Mark Tempel
dd0186b047 oops... make sure that I use / not \ in path specifiers so that linux builds don't get confused.
svn path=/trunk/; revision=13050
2005-01-14 23:22:39 +00:00
Royce Mitchell III
65f058c4f0 *nix compatibility
svn path=/branches/xmlbuildsystem/; revision=13049
2005-01-14 21:40:55 +00:00
Steven Edwards
0cefd55620 get the new buildsystem to mostly work for cross-compiling. Thanks Casper, Royce, etc.
svn path=/branches/xmlbuildsystem/; revision=13048
2005-01-14 21:14:48 +00:00
Gé van Geldorp
b80866de7c Speed up 8bpp fills by a factor 4
svn path=/trunk/; revision=13047
2005-01-14 21:08:01 +00:00
Steven Edwards
ffdcbc9c60 started working on cross-compile support
svn path=/branches/xmlbuildsystem/; revision=13046
2005-01-14 20:41:45 +00:00
Gregor Anich
b06d14e94f Replace EXCEPTION_FLT_XXX by STATUS_FLOAT_XXX. Set ExceptionFlags to 0 for exceptions dispatched from ntoskrnl.
svn path=/trunk/; revision=13045
2005-01-14 19:42:47 +00:00
Mark Tempel
ee34d784d4 Initial commit of USB support. These are just stubs. They build, but that is about it. Expect heavy development in usbport, and usbuhci.
svn path=/trunk/; revision=13044
2005-01-14 16:12:34 +00:00
Gregor Anich
ef7b4a79dc Add STATUS_FLOAT_MULTIPLE_TRAPS/FAULTS.
svn path=/trunk/; revision=13043
2005-01-14 16:10:07 +00:00
Gregor Anich
6182a1c5f7 Fix MmAllocatePageForMdl when it cannot allocate as much memory as requested.
svn path=/trunk/; revision=13042
2005-01-14 14:47:03 +00:00
Filip Navara
f3367f398b We're not supposed to build elf.c, it's template file.
svn path=/branches/xmlbuildsystem/; revision=13041
2005-01-14 14:11:13 +00:00
Royce Mitchell III
30921fb72c better config.template.xml
svn path=/branches/xmlbuildsystem/; revision=13040
2005-01-14 14:10:41 +00:00
Royce Mitchell III
e35d70d940 add csq library to ntoskrnl
svn path=/branches/xmlbuildsystem/; revision=13039
2005-01-14 13:29:27 +00:00
Royce Mitchell III
dbc5b96c09 use ntoskrnl's def file when running dlltool, otherwise not all of ntoskrnl's exports make it into final executable.
svn path=/branches/xmlbuildsystem/; revision=13038
2005-01-14 06:51:37 +00:00
Steven Edwards
c4f5066636 added some missing license headers
svn path=/trunk/; revision=13037
2005-01-14 03:29:47 +00:00
Gregor Anich
e3345e4f7e MmMapLockedPagesSpecifyCache: Raise STATUS_ACCESS_VIOLATION instead of bugchecking when mapping into usermode.
svn path=/trunk/; revision=13036
2005-01-13 23:47:10 +00:00
Gé van Geldorp
b91bb39ed6 Small sync to Wine
svn path=/trunk/; revision=13035
2005-01-13 22:43:10 +00:00
Gé van Geldorp
888a6e6c36 Update status
svn path=/trunk/; revision=13034
2005-01-13 21:03:02 +00:00
Hartmut Birr
1edc02642e Reverted parts of the last changes. Vfat must always check the partition type if it is available.
svn path=/trunk/; revision=13032
2005-01-13 20:57:30 +00:00
Hartmut Birr
3360f1a1ae Fixed some length problems.
svn path=/trunk/; revision=13031
2005-01-13 20:54:13 +00:00
Hartmut Birr
7e23b350aa Don't add a terminating null character in RtlCopyString, if the destination buffer isn't large enough.
A ansi/unicode string doesn't need a terminating null character.


svn path=/trunk/; revision=13030
2005-01-13 20:53:35 +00:00
Gregor Anich
1a99f299a1 Fix unused variable warning.
svn path=/trunk/; revision=13029
2005-01-13 20:30:59 +00:00
Steven Edwards
bf73503d49 I am not the copyright holder on this one
svn path=/trunk/; revision=13028
2005-01-13 19:40:21 +00:00
Filip Navara
101235ab40 d_layer <dome@koganet.ne.jp>
Fix some problems with RtlStoreUlong:
- Store SECONDBYTE of the value correctly.
- Store ULONG value, not ULONG_PTR value.

svn path=/trunk/; revision=13027
2005-01-13 12:26:09 +00:00
Gé van Geldorp
2b79d428b9 Small Wine sync
svn path=/trunk/; revision=13026
2005-01-13 09:41:55 +00:00
Gé van Geldorp
289a65afa7 Small Wine sync
svn path=/trunk/; revision=13025
2005-01-13 09:28:58 +00:00
Gé van Geldorp
c5f29850b0 Fix compilation with DBG := 1 and KDBG := 0
svn path=/trunk/; revision=13024
2005-01-13 08:45:23 +00:00
Art Yerkes
2f96b042b8 Conditionalized possibly unused variable.
svn path=/trunk/; revision=13023
2005-01-13 07:29:12 +00:00
Art Yerkes
d8dd93dab9 Correct handling of zero address and zero address length in accept.
svn path=/trunk/; revision=13022
2005-01-13 06:55:44 +00:00
Art Yerkes
756723d2d5 Initial accept commit. Accept sockets now work although there are still
problems related to shutting down the listener itself at process close
time.  I've tried a simple server with it and it looks good.

svn path=/trunk/; revision=13021
2005-01-13 06:46:22 +00:00
Royce Mitchell III
46db98e48d kill the output exe files in a clean, too
svn path=/branches/xmlbuildsystem/; revision=13020
2005-01-13 05:10:33 +00:00
Royce Mitchell III
b657e0b0bf generate clean rules
svn path=/branches/xmlbuildsystem/; revision=13019
2005-01-13 05:01:22 +00:00
Royce Mitchell III
90d59a4287 create phony targets for each module name, so you can type 'make ntoskrnl' instead of having to type 'make ./ntoskrnl/ntoskrnl.exe'
svn path=/branches/xmlbuildsystem/; revision=13018
2005-01-13 04:17:53 +00:00
Royce Mitchell III
babc7c7c8a generate output rules for files under <if>
svn path=/branches/xmlbuildsystem/; revision=13017
2005-01-13 04:13:20 +00:00
Royce Mitchell III
84c57ede37 bugfixes to new <if> and related code
svn path=/branches/xmlbuildsystem/; revision=13016
2005-01-13 03:43:10 +00:00
Royce Mitchell III
c869f797fb add support for <if> and <property>
svn path=/branches/xmlbuildsystem/; revision=13015
2005-01-13 02:46:46 +00:00
Royce Mitchell III
31f4493219 fix variable cases
svn path=/branches/xmlbuildsystem/; revision=13012
2005-01-13 02:26:05 +00:00
Gé van Geldorp
b8ed66e011 Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
Filip Navara <xnavara@volny.cz>
- 32 bit low level drivers now use a Unicode interface (used to be ANSI):
- Send the *_GETDEVCAPS messages in unicode format from the
  *GetDevCapsW function and call the *GetDevCapsW from their respective
  Ansi versions.
- Modify all low level drivers to correctly process the *_GETDEVCAPS
  messages as unicode.
- *_GETDEVCAPS messages are now mapped from/to unicode for 16 bit code.
- Removed all SoundBlaster naming oldies.
  Better use of some unicode functions (instead of Ansi) in winmm.
Alexandre Julliard <julliard@winehq.org>
- Fixed header dependencies to be fully compatible with the Windows
  headers (with help from Dimitrie O. Paun).
- Get rid of the ThunkData stubs, these are not functions.
Jeff Smith <whydoubt@hotmail.com>
- Fix for MIDI Mapper.
Robert Reif <reif@earthlink.net>
- Return actual result on error.
- Return flag for DRVM_MAPPER_PREFERRED_GET.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Ge van Geldorp <gvg@reactos.com>
- Match PSDK definitions for LPCWAVEFORMATEX.

svn path=/trunk/; revision=13006
2005-01-12 23:33:10 +00:00
Gé van Geldorp
1141d723c3 Add some WAVE_FORMATs
svn path=/trunk/; revision=13005
2005-01-12 23:25:02 +00:00
Gé van Geldorp
5468d049be Add wine_dbgstr_w
svn path=/trunk/; revision=13004
2005-01-12 23:18:20 +00:00
Gé van Geldorp
222cd13d93 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Added test of BindToStorage.
- Added some declarations to urlmon.idl.
- Implemented CreateAsyncBindCtx.
- Added test.

svn path=/trunk/; revision=13003
2005-01-12 23:10:02 +00:00
Gé van Geldorp
0edd21e67f Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
- Another round of const correctness fixes.

svn path=/trunk/; revision=13002
2005-01-12 23:07:36 +00:00
Gé van Geldorp
2b7c8d6391 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Hans Leidekker <hans@it.vu.nl>
- Implement and test URLIS_URL flag in UrlIs().
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Const correctness fix.
- Remove unneeded headers to reduce unneeded rebuilds.
- Include shlwapi.h to get prototypes, and correct 2 wrong ones.
- Documentation fix.
Michael Stefaniuc <mstefani@redhat.de>
- Missing HeapFree's + 1 LocalFree (found by smatch).
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)
Jacek Caban <jack@itma.pwr.wroc.pl>
- Get rid of W->A calls.
Mike McCormack <mike@codeweavers.com>
- Use CreateEventW in preference to CreateEventA for unnamed events.
Francois Gouget <fgouget@free.fr>
- Remove unneeded NULL casts.
James Hawkins <truiken@gmail.com>
- use only stored result of Interlocked* in AddRef/Release
- expand TRACEs to display the ref count

svn path=/trunk/; revision=13001
2005-01-12 23:04:52 +00:00
Gé van Geldorp
bc33e47045 Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)

svn path=/trunk/; revision=13000
2005-01-12 22:57:30 +00:00
Gé van Geldorp
e247c380dd Add SHFMT_ constants
svn path=/trunk/; revision=12999
2005-01-12 22:51:23 +00:00
Gé van Geldorp
da5e391c9c Sync to Wine-20050111:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Remove unneeded headers to reduce unneeded rebuilds.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Get rid of W->A call.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Alexandre Julliard <julliard@winehq.org>
- Remove some no longer needed AW functions.
- Janitorial: C booleans must not be compared against TRUE.
Hans Leidekker <hans@it.vu.nl>
- Stub implementations for SHUpdateImageA, SHHandleUpdateImage,
  SHObjectProperties, SHGetNewLinkInfo{A,W}, SHStartNetConnectionDialog,
  SHEmptyRecycleBin{A,W}, SHFormatDrive, SHQueryRecycleBin{A,W}.
- 'HeapAlloc can fail' fix for ExtractIconExA.
- Implement ExtractAssociatedIconA -> W.
- Correct prototype for SHObjectProperties.
- Forward SHGetNewLinkInfo to SHGetNewLinkInfoA.
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.
- Don't sort the children of My Computer in shell browse for folder
  dialog.
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)
- Fixed some errors in function prototypes.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Added some Spanish translations.
Juan Lang <juan_lang@yahoo.com>
- Revert shell32 version to Win2K SP4 level.
Rein Klazes <wijn@wanadoo.nl>
- ShellExecuteEx, ExtractIconEx, SHFileOperation, SHGetFileInfo,
  SHGetPathFromIDList spec entries always refer to the Ansi
  version. Problem found by Paul Vriens.

svn path=/trunk/; revision=12998
2005-01-12 22:49:57 +00:00
Filip Navara
e8d6b09951 Fix definion of udphdr and use it.
svn path=/trunk/; revision=12997
2005-01-12 21:02:21 +00:00
Art Yerkes
85cffe692b Added table entry for SOCK_RAW IPPROTO_ICMP
svn path=/trunk/; revision=12996
2005-01-12 20:49:51 +00:00
Filip Navara
40847c3fd3 Call WSAStartup and WSACleanup.
svn path=/trunk/; revision=12995
2005-01-12 20:40:52 +00:00
Steven Edwards
f68079aff3 and now it should really build
svn path=/trunk/; revision=12994
2005-01-12 20:30:04 +00:00
Steven Edwards
8a991b772f ok one more time
svn path=/trunk/; revision=12993
2005-01-12 20:28:59 +00:00
Steven Edwards
bb2592ba58 a few more minor changes
svn path=/trunk/; revision=12992
2005-01-12 20:27:23 +00:00
Gé van Geldorp
6aa3e62e96 Sync to Wine-20050111:
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.
- Implement RPC_E_DISCONNECTED in proxies.
Mike McCormack <mike@codeweavers.com>
- Use CreateEventW in preference to CreateEventA for unnamed events.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Bill Medland <billmedland@mercuryspeed.com>
- Implemented DceErrorInqText.

svn path=/trunk/; revision=12991
2005-01-12 20:23:51 +00:00
KJK::Hyperion
530cd953b8 elf.c renamed to elf.inc.h. There, happy?
svn path=/trunk/; revision=12990
2005-01-12 20:18:57 +00:00
Steven Edwards
a0b2f40b73 Added a port of BSD traceroute. needs work
svn path=/trunk/; revision=12989
2005-01-12 20:18:50 +00:00
Gé van Geldorp
f387572e84 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Eric Pouech <pouech-eric@wanadoo.fr>
- Fixed some errors in function prototypes.
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.

svn path=/trunk/; revision=12988
2005-01-12 20:12:53 +00:00
Gé van Geldorp
edc6b71a42 Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)
- Fixed some errors in function prototypes.
- Some missing const correctness fixes.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Robert Shearman <rob@codeweavers.com>
- Make the DECIMAL_SETZERO macro take a DECIMAL instead of a DECIMAL* as
  in the Microsoft headers and fix up the only caller.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Bill Medland <billmedland@mercuryspeed.com>
- Fully initialise the structure to prevent ill-defined behaviour.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Remove unneeded headers to reduce unneeded rebuilds.
Robert Shearman <rob@codeweavers.com>
- Implement RPC_E_DISCONNECTED in proxies.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Add Russian translations.
Huw Davies <huw@codeweavers.com>
- The value of a packed VARIANT can be up to 1L << 26 - 1.
- Fix comment to reflect reality and indeed the code.
- Remove the remaining dependencies on internal structures from Invoke.
- GetTypeAttr should deep copy the typedesc.
- Fix return value of GetVarIndexOfMemId.
- Remove Invoke's dependence on the internal TLBFuncDesc structure.
- Fix memory leaks in some failure cases.
- GetFuncIndexOfMemId should respect invkind and return
  TYPE_E_ELEMENTNOTFOUND if the function cannot be found.
- Allocate the TYPEATTR rather than copying it.
- For a dual interface the dispinterface's cfuncs should include the
  inherited functions, cbSizeVft should just be the size of IDispatch's
  vtbl and we should strip TYPEFLAG_FOLEAUTOMATION.
- Fix typelib generation of CARRAYs.
Paul Vriens <Paul.Vriens@xs4all.nl>
- use Interlocked* functions in AddRef and Release.
- store the result of the Interlocked functions and use only this.
Walt Ogburn <reuben@ugcs.caltech.edu>
- In OlePictureImpl_Load, always use DIB_RGB_COLORS because no indexed
  palette has been defined.
Alexandre Julliard <julliard@winehq.org>
- Another warning fix.
- Avoid warnings.

svn path=/trunk/; revision=12987
2005-01-12 19:51:40 +00:00
Gé van Geldorp
a30c1830c0 Add new file
svn path=/trunk/; revision=12986
2005-01-12 19:51:26 +00:00
Casper Hornstrup
37ff0b66b5 * Keep project level includes and defines in PROJECT_CFLAGS
* Win32dll module type support
* Build kernel32.dll


svn path=/branches/xmlbuildsystem/; revision=12985
2005-01-12 19:42:07 +00:00
Gregor Anich
d0a2f448f4 Add possibility to make KDB break on module-loads. Fix handling of breakpoints in usermode with KDB. Set ExceptionRecord->ExceptionFlags to 0 for breakpoints/singlesteps and noncontinuable for everything else. Fix WriteProcessMemory.
svn path=/trunk/; revision=12973
2005-01-12 19:04:06 +00:00
Filip Navara
030b0867f6 - Fix compilation error in KeIpiGenericCall.
- Revert my last changes in RPoolMgr.h. Currently they cause more harm than good. :(

svn path=/trunk/; revision=12972
2005-01-12 16:09:12 +00:00
Filip Navara
af3dff11b7 Portability fixes.
svn path=/trunk/; revision=12971
2005-01-12 15:35:12 +00:00
Filip Navara
56efa291ee KJK::Hyperion <noog@libero.it>
Mark ELF sections as non-paged for now.
Fix 64bit compilation warning in PeFmtCreateSection.

svn path=/trunk/; revision=12970
2005-01-12 15:00:32 +00:00
Filip Navara
8d5fa22d0a Portability fixes.
svn path=/trunk/; revision=12969
2005-01-12 14:57:03 +00:00
Filip Navara
0918733dc9 Fix definition of RtlRetrieveUlong to be 64bit safe.
svn path=/trunk/; revision=12968
2005-01-12 14:51:38 +00:00
Filip Navara
b5c55ab4de Fix the build, sorry.
svn path=/trunk/; revision=12967
2005-01-12 14:09:07 +00:00
Royce Mitchell III
a868feb94a forgot to recurse If elements when generating macros
svn path=/branches/xmlbuildsystem/; revision=12966
2005-01-12 14:07:55 +00:00
Filip Navara
e6464bc179 Basic support for priority boosting.
svn path=/trunk/; revision=12965
2005-01-12 13:43:05 +00:00
Filip Navara
e0adece65b Add definiton of RPC_E_INVALID_OBJREF.
svn path=/trunk/; revision=12964
2005-01-12 13:35:43 +00:00
Filip Navara
95ba8cd118 Herve Poussineau <poussine@freesurf.fr>
Simpily the VFAT/FATX detection.

svn path=/trunk/; revision=12963
2005-01-12 13:15:24 +00:00
Filip Navara
1eb8f5f55d Herve Poussineau <poussine@freesurf.fr>
Use MmGetSystemAddressForMdlSafe instead of MmGetSystemAddressForMdl.

svn path=/trunk/; revision=12962
2005-01-12 13:07:17 +00:00
Filip Navara
4b208cd9ff Based on a patch by Herve Poussineau <poussine@freesurf.fr>:
Add basic cache manager and Fast I/O callbacks and don't use ReactOS specific cache manager / filesystem features if USE_ROS_CC_AND_FS is not defined.

svn path=/trunk/; revision=12961
2005-01-12 13:00:43 +00:00
Filip Navara
d8fda17a06 Based on a patch by Herve Poussineau <poussine@freesurf.fr>:
- Clean up #includes.
- Get rid of ROSRTL dependancy.

svn path=/trunk/; revision=12960
2005-01-12 12:33:57 +00:00
Filip Navara
19c59e79f0 Add definition of RTL_CONSTANT_STRING.
svn path=/trunk/; revision=12959
2005-01-12 12:32:06 +00:00
Gunnar Dalsnes
5c7b628714 remove leftovers
svn path=/trunk/; revision=12958
2005-01-12 12:31:10 +00:00
Filip Navara
5a27206097 Based on a patch by Herve Poussineau <poussine@freesurf.fr>:
- Compile using W32API.
- Use documented structures names instead of ReactOS equivalent.
- Get rid of MAX_PATH constant (only valid in user mode).

svn path=/trunk/; revision=12957
2005-01-12 12:06:15 +00:00
Filip Navara
fb6e28b8a0 Herve Poussineau <poussine@freesurf.fr>
- Use documented structures names instead of ReactOS equivalents.
- Replace CcMapData with CcPinRead on places where we're modifying the data.

svn path=/trunk/; revision=12956
2005-01-12 11:07:31 +00:00
Filip Navara
70a623f0d2 Oops, forgot to patch one place.
svn path=/trunk/; revision=12955
2005-01-12 10:49:47 +00:00
Filip Navara
561f4090e1 Herve Poussineau <poussine@freesurf.fr>
Use DDK types instead of Win32 types (BOOL, WORD, DWORD).

svn path=/trunk/; revision=12954
2005-01-12 10:46:13 +00:00
Filip Navara
1f84743388 Hervé Poussineau <poussine@freesurf.fr>
Fill DriverName field in DRIVER_OBJECT structure.

svn path=/trunk/; revision=12953
2005-01-12 10:24:56 +00:00
Gé van Geldorp
8d07772195 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
  redundant.
Eric Pouech <pouech-eric@wanadoo.fr>
- Fixed some errors in function prototypes.
- ReadFile and WriteFile must be passed a parameter for the number of
  handled bytes when no overlapped operation is done.
- Removed excessive statement (break after return or goto, not useful
  break, not needed vars...)
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.
- Document how thread-safety is ensured for each member of the
  stub_manager and ifstub structs.
- Make stub_manager ref counted to ensure it doesn't get freed whilst
  it is still being used.
- ifstubs are now freed only when the controlling stub_manager is freed.
- Rename stub_manager_ref/unref to stub_manager_ext_addref/release
  respectively and make then take an unsigned long to prevent
  malicious callers from passing in a negative value and corrupting
  the ref count.
- Rename iid in wine_marshal_id to ipid and use IPIDs instead of IIDs in
  the stub manager.
- The channel buffer can be NULL if the proxy is disconnected, so check
  for this before releasing it.
- Make the ClassFactory proxy support aggregation.
- Document how thread-safety is ensured for each member of the
  stub_manager and ifstub structs.
- Make stub_manager ref counted to ensure it doesn't get freed whilst
  it is still being used.
- ifstubs are now freed only when the controlling stub_manager is freed.
- Rename stub_manager_ref/unref to stub_manager_ext_addref/release
  respectively and make then take an unsigned long to prevent
  malicious callers from passing in a negative value and corrupting
  the ref count.
- The current architecture cannot handle pipes changing address, so use
  a static array. Fixes memory corruption that sometimes occurs when
  using multiple pipes.
- Fix race on apartment creation.
- Display errors in decimal to make searching for the meaning in
  winerror.h easier.
- Move named pipe macros into rpc.c.
- Remove unneeded function.
- Implement COM local servers using table marshaling to avoid doing the
  marshaling in a child thread where COM has not been initialized.
- Remove unneeded includes and the unused COMPOBJ_hInstance32 variable.
- Make the wine_marshal_id structure more like the DCOM OBJREF
  structure, by replacing the process id field by apartment id (OXID),
  changing the users of the process id field to use the new field and
  renaming the objectid field to oid.
- Fix StdMarshalImpl_UnmarshalInterface to invalidate and release its
  stub when doing a same apartment marshal.
- Fixed incorrect unsigned test.
- Add tracing for proxy ref count functions.
- Release the channel on proxy destruction.
- Implement proxy manager.
- Add documentation to several functions.
- Coding style changes according to the style Mike and I have agreed
  upon for COM related files.
- Use OBJREF on the wire for generic marshaling functions.
- Add some function declarations to objbase.h.
- Add stubs for server ref counting.
- Implement HRESULT marshaling.
- Make struct oletls ref counted so that it is only detached from the
  apartment on the final CoUninitialize.
- Decrease the size of the crit sec on destroying an apartment - it is
  only needed for touching the apartment list.
- Small cleanups.
Mike Hearn <mh@codeweavers.com>
- Implement the COM stub manager, refactor the current stub code.
- Begin implementing interface stubs.
- Make apartment access thread-safe by introducing refcounting and
  wider usage of the apartment lock.
- Rework OLE TLS management to eliminate uninitialised apartments and
  parent chaining.
- Comment out an assert, as we don't yet implement IRemUnknown.
- Propagate apartments through the intermediate threads, make listener
  thread apartment scoped.
- Rename the STUBMGR thread to more accurately reflect its purpose.
- Add a DCOM todo list.
Mike McCormack <mike@codeweavers.com>
- Test and fix a few problems with OLE storage streams.
- Allow COM to start services containing COM servers.
- Tests and fixes for StgOpenStorage.
- Test and fix StgCreateDocFile grfModes.
Paul Vriens <Paul.Vriens@xs4all.nl>
- use Interlocked* functions in AddRef and Release.
- store the result of the Interlocked functions and use only this.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Alexandre Julliard <julliard@winehq.org>
- Janitorial: C booleans must not be compared against TRUE.
Bill Medland <billmedland@mercuryspeed.com>
- Corrected testing for multithreaded (based upon observations by Paul
  Vriens, Christian Costa and Robert Shearman).
- Added TRACE for investigating OXID errors.

svn path=/trunk/; revision=12952
2005-01-12 10:23:25 +00:00
Gé van Geldorp
f887ae590d Sync to Wine-20050111
svn path=/trunk/; revision=12951
2005-01-12 10:22:33 +00:00
Filip Navara
6ce344b434 Portability fixes.
svn path=/trunk/; revision=12950
2005-01-12 10:05:31 +00:00
Filip Navara
54b6cbb3a2 Portability fixes.
svn path=/trunk/; revision=12949
2005-01-12 10:05:05 +00:00
Gé van Geldorp
7fb581fc0b Sync to Wine-20050111:
Vitaly Lipatov <lav@etersoft.ru>
- Get real screen properties.
- Add description for MsiGetMode, MSIRUNMODE constants.
- Add ScreenX, ScreenY, ColorBits installer properties.
Mike McCormack <mike@codeweavers.com>
- Add a simple test case for MSI databases.
- Remove unneeded whitespace, indent correctly.
- Remove more fixed length buffers, rewrite functions to return
malloc'ed memory.
- Remove a lot of fixed length buffers.
- Implement thread safety for records.
- Fix selecting string columns and matching against a wildcard.
- Implement MsiRecordSetStreamA/W and add tests for records containing
streams.
- Fix records according to test cases.
- Fix transposition of 4 byte values when reading in table data from
storage.
- MsiCloseAllHandles only closes handles allocated in the calling
thread.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Aric Stewart <aric@codeweavers.com>
- Make all custom type 1 actions happen in a seperate thread and close
all handles for that thread when it exits. Honors the concept of
temporary MSI handles for custom actions.
- Properly deformat keys written to the registry.
- Because directory mappings can change between the CostFinalize step
  and the InstallFiles step we need to do a final resolution of the
  target file name before installing.
- When checking for an existing .lnk shortcut extension on the filename
do not just search for '.' but actually verify it is '.lnk'.
- CustomAction 35 should call SetTargetPath not just set the property.
- TARGETDIR and SOURCEDIR may not be entries 0 in the directory
  tables. So when resolving the folder we need to seek them out.
- When we handle SetTargetPath we need to be sure to recalculate the
  resulting paths as things with the now set Directory as the parent
  will change.
- Change how we install files so that we extract files as we need them,
cuts down on extraction time and unused files.
- Improve progress bar tracking.
- Be sure that set paths are terminated with a backslash.
- Free allocated buffers.
- Parse out the full features by using the ',' character and do
comparisons based on the full feature names.
- Continue when a duplicate component is found and loaded.
- Rework how we handle Feature and Component States. I have confirmed
  from testing that, although documented nowhere, having ADDLOCAL on
  the install line overrides INSTALLLEVEL.
- Track all files extracted from cabinents as tempfiles so they can be
  removed at the end of the install to not leave uninstalled but
  uncabbed files laying around.
- Move Install Features selection and evaluation into CostFinalize.
- Allow for end of install actions.
- Create the shortcut directory if it does not exist.
- Set the INSTALLLEVEL in CostFinalize if it is not set.
- Eliminate some fixed length buffers.
- Enable asynchronous dll custom action calls.
- Make sure to include trailing backslash in path.
- Move around and rename some functions.
- Fix incorrect return code check.
- Fix folder resolution.
- Let negative number be parsed correctly. Needed for accessing actions
with sequences such as -1.
- Added MsiSetExternalUIW.
- Include a System16Folder definition.
- Free allocated buffers.
- Blank the property buffers even if the property is not found.
- Include the trailing backslash on the Windows volume.
- Fix folder resolution.
Eric Pouech <pouech-eric@wanadoo.fr>
- Fixed some errors in function prototypes.
Steven Edwards <steven@codeweavers.com>
- Add and fix some stubs.
Ulrich Czekalla <ulrich@codeweavers.com>
- Set the out buffer count to zero on read error.
Michael Stefaniuc <mstefani@redhat.de>
- Add missing HeapFree's (found by smatch).
Paul Vriens <Paul.Vriens@xs4all.nl>
- Use Interlocked* functions in AddRef and Release.

svn path=/trunk/; revision=12948
2005-01-12 09:31:44 +00:00
Gunnar Dalsnes
e620ebee7f add MakeSureDirectoryPathExistsExA/W
svn path=/trunk/; revision=12945
2005-01-12 07:51:11 +00:00
Royce Mitchell III
9264ed7582 support for <if> tag
.PHONY must be output before the target gets defined


svn path=/branches/xmlbuildsystem/; revision=12944
2005-01-12 06:02:58 +00:00
Royce Mitchell III
4846c7b4a2 bugfix - patch by filip navara
svn path=/branches/xmlbuildsystem/; revision=12943
2005-01-12 05:01:49 +00:00
Gunnar Dalsnes
73c479f923 -move alert stuff into own file
-only use Thread->Alerted[0]. Alerted[1] is not used.
-misc

svn path=/trunk/; revision=12942
2005-01-11 23:31:58 +00:00
Gé van Geldorp
72a6852583 Sync to Wine-20050111:
Mike McCormack <mike@codeweavers.com>
- Add proxy authentication dialog.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.

svn path=/trunk/; revision=12941
2005-01-11 23:19:40 +00:00
Gé van Geldorp
eabf3955a8 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Christian Costa <titan.costa@wanadoo.fr>
- Handle device class in DX8 enumeration (found by Robert Reif).
- Fixed remaining DX8 device types.
- Factorized a bit GetCapabilities for keyboard and mouse.
- Fixed enumeration of joysticks in DX8.
- Fixed some traces.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Neil Olver <olver@math.mcgill.ca>
- The flag for a mouse button down in the structure returned by
GetDeviceState should be 0x80 (only the high bit set), not 0xff.

svn path=/trunk/; revision=12937
2005-01-11 23:11:18 +00:00
Gé van Geldorp
85527b3aaa Sync to Wine-20050111:
Robert Shearman <rob@codeweavers.com>
- Change dialog templates to not explicitly specify extended window
styles for the static rects on the Page Setup dialog as the ones
specified were wrong anyway.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Replace 'All xxx pages' text in common print dialog by simple 'All'.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Updated Spanish resource.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Moved save* strings to resources.
- Moved string to resources.
- Get rid of W->A calls.
- Unicodified fontdlg.
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
Paul Vriens <Paul.Vriens@xs4all.nl>
- use Interlocked* functions in AddRef and Release.
- store the result of the Interlocked functions and use only this.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Alexandre Julliard <julliard@winehq.org>
- Janitorial: C booleans must not be compared against TRUE.

svn path=/trunk/; revision=12935
2005-01-11 23:05:16 +00:00
Gé van Geldorp
fe687a094d Sync to Wine-20050111:
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Ulrich Czekalla <ulrich@codeweavers.com>
- Add partial handler for WM_PRINTCLIENT.
- WM_GETTEXTLENGTH should return zero for owner drawn status bars.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Remove unneeded headers to reduce unneeded rebuilds.
- Implement the remaining MRU functions, fix a couple of differences
from native comctl32, add tests of MRU behaviour and documentation.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Eric Kohl <eric.kohl@t-online.de>
- DrawStatusText() must not process prefix characters.
Filip Navara <xnavara@volny.cz>
- Don't use DrawEdge with NULL device context, it's invalid call and
  sets last error.
- Tooltip icons must be destroyed with DestroyIcon and not with
  DeleteObject.
- Rebar cursors must be destroyed with DestroyCursor and not with
  DeleteObject.
Robert Shearman <rob@codeweavers.com>
- Use the DrawFocusRect function to draw the focus rect, instead of a
broken home-brewed solution.
- Don't highlight text in non-TVS_TRACKSELECT mode.
- Add code for hot tracking.
- Draw hot items with underline and with highlight colour with
  TVS_TRACKSELECT style.
- Set cursor to hand cursor with TVS_TRACKSELECT style.
- Make sure uInternalStatus is consistent with actual scrollbar state
  by forcing scrollbars off in WM_CREATE handler.
- Make the month calendar child window auto-size instead of using a
  hard coded 200px.
- Use SetFocus when the control is clicked on to get the correct
  behaviour when another control clicked on.
- Force the WS_EX_CLIENTEDGE style, instead of emulating it.
- Implement WM_ENABLE handler to update cached control style when the
  control is disabled.
- Move background drawing into WM_ERASEBKGND handler and draw the
  background differently when disabled.
- Change WM_PAINT handler to draw text with transparent background and
  with the correct colour for the style.
- Initialize selected field to -1 instead of 0 so that the control
  notices when field 0 is selected.
Vitaly Lipatov <lav@etersoft.ru>
- Add comments, fix negative value from GetCurFocus.
Alexandre Julliard <julliard@winehq.org>:
- Janitorial: C booleans must not be compared against TRUE.
Mike McCormack <mike@codeweavers.com>
- Fix image list mask and blending.
Evan Deaubl <wine@warpedview.com>
- GetItemA/W on header controls should handle message even if index is
invalid.
Crestez Leonard <cleonard@go.ro>
- Fix bug with Treeview_SelectItem reselecting the same item.
Thomas Weidenmnller <w3seek@gmail.com>
- Free allocated font handles when control is destroyed.

svn path=/trunk/; revision=12933
2005-01-11 22:44:10 +00:00
Filip Navara
742527875b Fix comments to be recognized by Doxygen.
svn path=/trunk/; revision=12932
2005-01-11 22:15:41 +00:00
Gé van Geldorp
4702ede529 Sync to Wine-20050111:
Michael Stefaniuc <mstefani@redhat.de>
Missing HeapFree's + 1 LocalFree (found by smatch).

svn path=/trunk/; revision=12930
2005-01-11 21:37:29 +00:00
Hartmut Birr
011cd29d57 - Changed a forgotten MP to CONFIG_SMP.
svn path=/trunk/; revision=12927
2005-01-11 20:23:48 +00:00
Casper Hornstrup
6858112b10 Build ntdll.dll.
svn path=/branches/xmlbuildsystem/; revision=12926
2005-01-11 20:02:58 +00:00
Royce Mitchell III
444e4297dd create a couple more variables to reduce makefile size
preparations for <if> support

svn path=/branches/xmlbuildsystem/; revision=12925
2005-01-11 18:20:30 +00:00
Gunnar Dalsnes
b885ecfa57 add comments + small fix/change
svn path=/trunk/; revision=12924
2005-01-11 01:47:35 +00:00
Gunnar Dalsnes
5c84018967 remove duplicate macro
svn path=/trunk/; revision=12923
2005-01-11 01:12:36 +00:00
Gregor Anich
29ca1c4689 Fix compilation without NDEBUG.
svn path=/trunk/; revision=12922
2005-01-10 23:11:45 +00:00
Martin Fuchs
0afc3c7bef comment for _NO_ALPHABLEND in the makefile
svn path=/trunk/; revision=12921
2005-01-10 21:32:18 +00:00
Martin Fuchs
2ab1b0f2e1 _NO_ALPHABLEND compiler switch
svn path=/trunk/; revision=12920
2005-01-10 21:20:06 +00:00
Royce Mitchell III
72a0e1e6b7 make sure parentElement is set properly for <xi:include> elements
svn path=/branches/xmlbuildsystem/; revision=12918
2005-01-10 14:03:21 +00:00
Gé van Geldorp
c1746abda0 Sylvain Petreolle <spetreolle@yahoo.fr>:
Add French translation for timedate.cpl

svn path=/trunk/; revision=12917
2005-01-10 10:10:49 +00:00
Gé van Geldorp
8fd760ac87 Sylvain Petreolle <spetreolle@yahoo.fr>:
Add French translation for timedate.cpl

svn path=/trunk/; revision=12916
2005-01-10 10:10:02 +00:00
Art Yerkes
2a03d2626d Added a work item to prevent stack overflow.
svn path=/trunk/; revision=12915
2005-01-10 04:43:05 +00:00
Gunnar Dalsnes
31629a61a5 when echoing too much stuff on windows, a newline is generated and it tries to execute the stuff echoed...
svn path=/trunk/; revision=12914
2005-01-10 03:03:24 +00:00
Casper Hornstrup
b663342f01 * Nasm support
* Hal, rosrtl, pseh, string modules
* Build ntoskrnl


svn path=/branches/xmlbuildsystem/; revision=12913
2005-01-09 21:26:16 +00:00
Gunnar Dalsnes
f98b6e4125 small cleanup
svn path=/trunk/; revision=12912
2005-01-09 19:40:08 +00:00
Royce Mitchell III
e5130a546a added xi:fallback support
fixed some memory leaks in Project
detect and report "end of file looking for end tag" instead of just crashing

svn path=/branches/xmlbuildsystem/; revision=12911
2005-01-09 19:16:35 +00:00
Casper Hornstrup
51221a2b14 Fix compilation.
svn path=/branches/xmlbuildsystem/; revision=12910
2005-01-09 17:24:09 +00:00
Klemens Friedl
75b87b9d2c 8 german language files (update)
svn path=/trunk/; revision=12909
2005-01-09 16:44:14 +00:00
Casper Hornstrup
f361174e9b GCC assembler support.
svn path=/branches/xmlbuildsystem/; revision=12908
2005-01-09 16:36:57 +00:00
Filip Navara
aeaad43c1d Open the DLL files as FILE_SHARE_READ to prevent sharing violations.
svn path=/trunk/; revision=12907
2005-01-09 14:16:36 +00:00
Filip Navara
6947ecd976 - Output correct length and page to the controller on DMA transfers.
- Fix the value of AdapterObject->PagePort.
- Don't modify variables we're not supposed to modify in IoMapTransfer.

svn path=/trunk/; revision=12906
2005-01-09 14:11:25 +00:00
Filip Navara
df756bcc24 Allocate correct number of bytes for EABuffer.
svn path=/trunk/; revision=12905
2005-01-09 11:38:07 +00:00
Gé van Geldorp
2929a492fd Signal the ReactOSInitDone event like smss.exe does,
prevents bugcheck when usetup is done in less than 120 sec

svn path=/trunk/; revision=12904
2005-01-09 08:20:28 +00:00
Gunnar Dalsnes
5e6907f665 experimental/useless "pretty seh"
svn path=/trunk/; revision=12903
2005-01-09 04:40:01 +00:00
Royce Mitchell III
d16f78506a use enum instead of string in more places
svn path=/branches/xmlbuildsystem/; revision=12902
2005-01-09 03:43:26 +00:00
Royce Mitchell III
03e6c98e63 add 'location' information to a couple exceptions that should have it
fixed bug I introduced in MingwBackend::ProcessModule()
fixed bug in std::map usage, apparently map<const char*,...> is a bad idea
let make do some work, create variables to hold include list for each module

svn path=/branches/xmlbuildsystem/; revision=12901
2005-01-09 03:29:46 +00:00
Royce Mitchell III
10324ce772 replaced Backend Factory's vector with a map.
added a map of the MingwModuleHandlers that's created at startup time

svn path=/branches/xmlbuildsystem/; revision=12900
2005-01-09 01:58:53 +00:00
Casper Hornstrup
0f4b9848d1 Put global includes last.
svn path=/branches/xmlbuildsystem/; revision=12899
2005-01-09 01:25:16 +00:00
Casper Hornstrup
8fc0497edb Fix compile error
svn path=/branches/xmlbuildsystem/; revision=12898
2005-01-09 01:13:31 +00:00
Casper Hornstrup
2ddad45463 Precondition dependencies.
svn path=/branches/xmlbuildsystem/; revision=12897
2005-01-09 01:10:43 +00:00
Gé van Geldorp
325d499971 Install symbol files by default for DBG := 1 builds
svn path=/trunk/; revision=12896
2005-01-09 00:04:32 +00:00
Gé van Geldorp
5637b9f123 Include COFF symbols in our .sym files
svn path=/trunk/; revision=12895
2005-01-09 00:00:31 +00:00
Filip Navara
ad6ee8a5e1 Change vsprint to _vsnprintf in PrintString to prevent potential buffer overflows. Patch by Uwe Matthaeus <uwe.matthaeus@guehring.de>.
svn path=/trunk/; revision=12894
2005-01-08 23:36:03 +00:00
Gé van Geldorp
c7d2525d45 Change console class name for Windows compatibility.
Thanks to tonik <spammed@fromru.com> for reporting and
providing the correct name.
Fixes bug 462.

svn path=/trunk/; revision=12893
2005-01-08 22:08:29 +00:00
Gé van Geldorp
ec137eeb0e makefile.dos is not used anymore, remove to prevent confusion
svn path=/trunk/; revision=12892
2005-01-08 21:14:54 +00:00
Casper Hornstrup
87d6ec37a6 Invocation of buildtool modules.
svn path=/branches/xmlbuildsystem/; revision=12891
2005-01-08 19:38:51 +00:00
Eric Kohl
0a7494dd76 Start services again and call a services main routine.
svn path=/trunk/; revision=12890
2005-01-08 18:11:46 +00:00
Eric Kohl
de8627877c Connect a pipes client side as soon as a listening server side is available.
svn path=/trunk/; revision=12889
2005-01-08 14:54:59 +00:00
Eric Kohl
b8e8ef8580 Use string resources instead of hardcoded strings.
svn path=/trunk/; revision=12888
2005-01-08 12:56:07 +00:00
Casper Hornstrup
30e8e25cb7 BuildTool module type support.
svn path=/branches/xmlbuildsystem/; revision=12887
2005-01-08 12:54:43 +00:00
Hartmut Birr
742da9ba73 - Make the drive letter to uppercase in RtlDosPathNameToNtPathName_U.
svn path=/trunk/; revision=12886
2005-01-08 12:47:32 +00:00
Art Yerkes
cf16395eac Added spanish layout to the registry.
svn path=/trunk/; revision=12885
2005-01-08 11:59:41 +00:00
Art Yerkes
a042459d87 Solved an stupid error with kbdes.c
-- HUMA2000

svn path=/trunk/; revision=12884
2005-01-08 11:57:34 +00:00
Hartmut Birr
6dbed13c78 - Fixed the initialization of critical section objects.
svn path=/trunk/; revision=12883
2005-01-08 09:34:37 +00:00
Royce Mitchell III
3e6eb979d8 use ROS_TEMPORARY and ROS_INTERMEDIATE to allow builder to override locations for created files. Fix name conflict with temporary files
svn path=/branches/xmlbuildsystem/; revision=12882
2005-01-08 06:36:03 +00:00
Royce Mitchell III
2f837bf69e don't allow duplicate module names
svn path=/branches/xmlbuildsystem/; revision=12881
2005-01-08 05:22:02 +00:00
Royce Mitchell III
aead7a68f9 <include> now has attribute 'base' which allows to specify subdirectory of another module
svn path=/branches/xmlbuildsystem/; revision=12880
2005-01-08 04:33:01 +00:00
Royce Mitchell III
774f167e5e xml nodes now store the location they were parsed from; invalidbuildexceptions now required a location of the error; don't allow modules to process xml until all modules are created; don't allow libraries, defines, includes, etc to process xml until all modules have processed; don't allow module to link against itself or a non-existant module; don't allow library to specify non-existant module;
svn path=/branches/xmlbuildsystem/; revision=12879
2005-01-08 03:37:32 +00:00
Royce Mitchell III
de7c566b05 Don't pass objects ( particularly vectors ) by value unless absolutely necessary. Also applied some const-correctness
svn path=/branches/xmlbuildsystem/; revision=12878
2005-01-08 02:33:09 +00:00
Casper Hornstrup
5f69cb429e Static library module type.
svn path=/branches/xmlbuildsystem/; revision=12877
2005-01-08 00:25:48 +00:00
Casper Hornstrup
49a2dd8017 Include and define support.
svn path=/branches/xmlbuildsystem/; revision=12876
2005-01-07 21:46:18 +00:00
Art Yerkes
2c65e4355d Added makefile.
svn path=/trunk/; revision=12875
2005-01-07 19:24:54 +00:00
Art Yerkes
c0a9a2be94 Reverted some local changes that aren't meant to be checked in yet.
svn path=/trunk/; revision=12874
2005-01-07 19:16:19 +00:00
Art Yerkes
014a3fa6f0 Spanish Keyboard Layout
Contributed by HUMA2000

svn path=/trunk/; revision=12873
2005-01-07 18:57:43 +00:00
Alex Ionescu
5848b2d8e9 Move ke/zw.c to ex/zw.c
svn path=/trunk/; revision=12872
2005-01-07 16:10:50 +00:00
Gregor Anich
f5daa985c6 modified include/ntos/zwtypes.h Add SYSTEM_BATTERY_STATE from w32api.
modified   ntoskrnl/include/internal/mm.h   Add MmAllocPagesSpecifyRange (internal function)
modified   ntoskrnl/mm/freelist.c           Add MmAllocPagesSpecifyRange function (used by MmAllocatePagesForMdl)
modified   ntoskrnl/mm/mdl.c                Implemenet MmAllocatePagesForMdl, MmFreePagesFromMdl. Turn MmMapLockedPages into MmMapLockedPagesSpecifyCache (and make MmMapLockedPages a wrapper to it).
modified   ntoskrnl/po/power.c              Implement SystemBatteryState in NtPowerInformation (Thanks to Alex for testing the returned values on his windows desktop PC)

Windows 2000 NVIDIA driver should work now.

svn path=/trunk/; revision=12871
2005-01-07 16:10:48 +00:00
Martin Fuchs
679e6f6c09 fix case of XML.o
svn path=/branches/xmlbuildsystem/; revision=12870
2005-01-07 15:36:40 +00:00
Gunnar Dalsnes
7d7661d52d Fixed RtlGetFullPathName_U bug (didn't remove duplicate slashes) and general ugliness by rippin fresh version from wine. Makes w2k cmd.exe work (imo) 100%.
svn path=/trunk/; revision=12869
2005-01-07 15:07:52 +00:00
Royce Mitchell III
4e235dbcc9 parse, but ignore, <? ?> tags - eliminated duplicate code ala FixSeparator() - fix path separator issues
svn path=/branches/xmlbuildsystem/; revision=12868
2005-01-07 13:48:53 +00:00
Thomas Bluemel
8a3239aef3 GetProcessAffinityMask() should return correct system affinity mask
svn path=/trunk/; revision=12867
2005-01-07 13:34:47 +00:00
Gé van Geldorp
2637be230f Protect against unused variable warning
svn path=/trunk/; revision=12866
2005-01-07 13:06:11 +00:00
Gé van Geldorp
baf1b20d76 Silence debug messages
svn path=/trunk/; revision=12865
2005-01-07 13:04:36 +00:00
Eric Kohl
a366210998 RtlCutoverTimeToSystemTime(): The 4th argument determines whether the cutover time of the current year or the next cutover time is calculated.
svn path=/trunk/; revision=12864
2005-01-07 12:58:46 +00:00
Alex Ionescu
d6f646a37f Remove /nt directory, part two.
svn path=/trunk/; revision=12862
2005-01-07 06:57:30 +00:00
Alex Ionescu
3ce0266401 Remove /nt directory
svn path=/trunk/; revision=12861
2005-01-07 06:54:27 +00:00
Gregor Anich
f0c39c8ec6 added agp.c First try of implementing the AGP functions (Untested)
added      ddc.c         First try of implementing DDC functions (Untested)
modified   dispatch.c    Handle IRP_MJ_PNP:IRP_MN_START_DEVICE. Let AddDevice create the device object and call HwFindAdapter from IRP_MN_START_DEVICE.
modified   int10.c       Make VideoPortInt10 return ERROR_INVALID_PARAMETER when called while CSRSS is not initialized.
modified   Makefile      Add agp.o and ddc.o
modified   resource.c    Don't remember usermode mappings - they are valid only in the context of the process which they were created in. Add IntVideoPortMapPhysicalMemory() to map part of \Device\PhysicalMemory into UserMode. Make VideoPortGetAccessRanges use DeviceExtension->AllocatedResources (from the IRP_MJ_PNP:IRP_MN_START_DEVICE) if present.
modified   services.c    Implement VideoPortGetAgpServices. VideoPortQueryServices support for VideoPortServicesAGP.
modified   videoprt.c    Split IntVideoPortFindAdapter into IntVideoPortCreateAdapterDeviceObject and IntVideoPortFindAdapter. Basic implementation of VideoPortEnumerateChildren. Implement VideoPortAcquireDeviceLock/VideoPortReleaseDeviceLock.
modified   videoprt.def  Export VideoPortAcquireDeviceLock/VideoPortReleaseDeviceLock.
modified   videoprt.h    Various stuff.

svn path=/trunk/; revision=12860
2005-01-07 01:03:34 +00:00
Gregor Anich
9e8fbcf903 Add half-verbose output to target "clean".
svn path=/trunk/; revision=12859
2005-01-07 00:02:56 +00:00
Gregor Anich
e008fd8fc6 Forgot to commit this file - sorry!
svn path=/trunk/; revision=12858
2005-01-06 23:18:17 +00:00
Gregor Anich
a2189e5e4b eng/driverobj.c: DRIVEROBJ implementation.
eng/semaphor.c: Implement safe semaphore functions.
eng/window.c: Basic WNDOBJ implementation.
include/inteng.h: IntEngXxx functions for DRIVEROBJs.
main/dllmain.c: Cleanup DRIVEROBJs.
makefile: Add eng/driverobj.o and eng/window.o.
stubs/stubs.c, win32k.def: Add EngAllocPrivateUserMem and EngFreePrivateUserMem stubs.

svn path=/trunk/; revision=12857
2005-01-06 23:12:59 +00:00
Casper Hornstrup
f7257ee1be * Generate kernel
* Add static library module type
* Add build script for kjs


svn path=/branches/xmlbuildsystem/; revision=12856
2005-01-06 22:22:13 +00:00
Casper Hornstrup
b1ec82cd59 Generate dependencies for kernel module type.
svn path=/branches/xmlbuildsystem/; revision=12855
2005-01-06 20:38:14 +00:00
Klemens Friedl
019137fd50 Update ReactOS Icons:
Replace the radioactive icons with the newer ReactOS icon.

Files:
trunk/reactos/bootdata/icon.ico
trunk/reactos/lib/user32/resources/oic_reactos.ico

svn path=/trunk/; revision=12854
2005-01-06 19:22:01 +00:00
Gé van Geldorp
528b35b1df Don't return characters is key is up
svn path=/trunk/; revision=12853
2005-01-06 15:57:38 +00:00
Martin Fuchs
e228aadfe5 migrate substitution keywords to SVN
svn path=/trunk/; revision=12852
2005-01-06 13:58:04 +00:00
Martin Fuchs
505695d368 migrate substitution keywords to SVN
svn path=/branches/xmlbuildsystem/; revision=12851
2005-01-06 13:34:15 +00:00
Gé van Geldorp
f31ecfbd4a Copy correct number of bytes
svn path=/trunk/; revision=12850
2005-01-06 10:16:18 +00:00
Mark Tempel
5ccc6ee89d Update to remove some lines of code that broke the build.
svn path=/trunk/; revision=12849
2005-01-06 05:10:13 +00:00
Royce Mitchell III
8e5e9a4925 fix gcc warning
svn path=/branches/xmlbuildsystem/; revision=12848
2005-01-06 03:52:12 +00:00
Royce Mitchell III
199fca493d forgot to remove and unneeded #include
svn path=/branches/xmlbuildsystem/; revision=12847
2005-01-06 03:49:38 +00:00
Royce Mitchell III
1900ede13b much better factory implementation - thanks art yerkes
svn path=/branches/xmlbuildsystem/; revision=12846
2005-01-06 03:27:24 +00:00
Royce Mitchell III
477157b4d4 Factories for Backend creation
svn path=/branches/xmlbuildsystem/; revision=12845
2005-01-06 02:55:11 +00:00
Royce Mitchell III
8051633a4c file & line # reporting on xml syntax errors
svn path=/branches/xmlbuildsystem/; revision=12844
2005-01-06 02:06:44 +00:00
Royce Mitchell III
c6916243d1 fixed some warnings, and added some asserts
svn path=/branches/xmlbuildsystem/; revision=12843
2005-01-06 01:35:01 +00:00
Eric Kohl
f8b923d236 - Remove __USE_W32API support.
- Add definition of _ttoi64.

svn path=/trunk/; revision=12842
2005-01-06 01:28:10 +00:00
Art Yerkes
647e34dd0c Corrected off-by-one error retrieving adapter index.
svn path=/trunk/; revision=12841
2005-01-06 01:20:13 +00:00
Casper Hornstrup
7d876c4d0c Parse libraries.
svn path=/branches/xmlbuildsystem/; revision=12840
2005-01-05 22:36:17 +00:00
Casper Hornstrup
91d97cbc91 Parse module type.
svn path=/branches/xmlbuildsystem/; revision=12839
2005-01-05 21:29:54 +00:00
KJK::Hyperion
d33004b441 honor __USE_W32API
svn path=/trunk/; revision=12838
2005-01-05 21:00:51 +00:00
Casper Hornstrup
1568981925 Generate MinGW makefile in the backend.
svn path=/branches/xmlbuildsystem/; revision=12837
2005-01-05 20:59:10 +00:00
Casper Hornstrup
222bde955c Handle modules.
svn path=/branches/xmlbuildsystem/; revision=12836
2005-01-05 19:47:10 +00:00
Hartmut Birr
3d5ec80a67 - Used a system thread to shutdown various kernel components.
- Halt also the other processors on a smp machine. 

svn path=/trunk/; revision=12835
2005-01-05 19:28:55 +00:00
Hartmut Birr
6801048d57 - Replaced MP with CONFIG_SMP.
- Used interlocked function for accessing the page directories/tables.

svn path=/trunk/; revision=12834
2005-01-05 19:27:58 +00:00
Hartmut Birr
b0c84d931e - Replaced MP with CONFIG_SMP.
- Implemented an idle processor map.
- Fixed the initialisation of the first kernel stack for the application processors.

svn path=/trunk/; revision=12833
2005-01-05 19:26:51 +00:00
Hartmut Birr
f8d9c5d204 - Replaced MP with CONFIG_SMP.
svn path=/trunk/; revision=12832
2005-01-05 19:25:49 +00:00
KJK::Hyperion
be7247ba17 - makefile: use the native headers, don't bother with our hopelessly broken ones
- tickcount.c: also accept arbitrary tick counts as arguments or from standard input (initially conceived to convert the result of subtracting two Date objects in Javascript - which conveniently happens to be a count of milliseconds - into a human-readable format. Useful to write a batch file that calculates the exact difference between two dates). Also use typedef aliases for __int64 that won't conflict with standard C typedefs

(I had a craving for C code, too much Java for school was melting my brain. Thanks god for good ol' tickcount)

svn path=/trunk/; revision=12831
2005-01-05 19:09:38 +00:00
Hartmut Birr
a91d61b02e - Initialize the symbols for boot load driver before the driver entry routine is called.
- Store the symbols for boot load driver within the non paged pool.

svn path=/trunk/; revision=12830
2005-01-05 19:06:05 +00:00
Hartmut Birr
6f39b3e0e0 - Prevent from calling PsTerminateCurrentThread from within an apc if PsTerminateThread was already called.
svn path=/trunk/; revision=12829
2005-01-05 19:04:25 +00:00
Hartmut Birr
76fbb4d0bf - Removed an unused variable.
svn path=/trunk/; revision=12828
2005-01-05 19:03:21 +00:00
Hartmut Birr
7537381804 - Set the number of processors before initialize the critical sections.
svn path=/trunk/; revision=12827
2005-01-05 19:02:23 +00:00
Royce Mitchell III
b9bffbca54 beginnings of makefile output
svn path=/branches/xmlbuildsystem/; revision=12826
2005-01-05 19:02:00 +00:00
Hartmut Birr
00e2091fd8 - Silence a debug message.
svn path=/trunk/; revision=12825
2005-01-05 19:01:27 +00:00
Royce Mitchell III
00a8526f83 allow for other build systems
svn path=/branches/xmlbuildsystem/; revision=12824
2005-01-05 18:48:45 +00:00
Royce Mitchell III
f2f4ddff19 specify output filename
svn path=/branches/xmlbuildsystem/; revision=12823
2005-01-05 18:16:55 +00:00
Royce Mitchell III
f97516bc1c assume HOST is set to mingw32-windows until someone who knows how can have make fail when HOST isn't set
svn path=/branches/xmlbuildsystem/; revision=12822
2005-01-05 18:13:56 +00:00
Royce Mitchell III
5793157884 small XMLFile cleanup
svn path=/branches/xmlbuildsystem/; revision=12821
2005-01-05 17:59:08 +00:00
Alex Ionescu
49592c9234 Remove ROS-specific File Object Flags
svn path=/trunk/; revision=12820
2005-01-05 15:16:10 +00:00
Gé van Geldorp
d1a5b105f2 Neil Blackburn <neilb@iowatelecom.net>:
- Fixed a few spelling mistakes

svn path=/trunk/; revision=12819
2005-01-05 08:16:00 +00:00
Royce Mitchell III
039d7779de pch.h can be used as pre-compiled header
svn path=/branches/xmlbuildsystem/; revision=12818
2005-01-05 05:09:38 +00:00
Steven Edwards
ab8ef4b325 Make NtUserSetClipboardViewer return something that applications can deal with. This makes the vncviewer qusi-work.
svn path=/trunk/; revision=12817
2005-01-05 04:16:23 +00:00
Royce Mitchell III
4ee64fd1b7 handle comments while parsing, instead of returning them to the user
svn path=/branches/xmlbuildsystem/; revision=12816
2005-01-05 03:47:55 +00:00
Royce Mitchell III
0b755662dd don't define macros that conflict with MinGW system header files, causes very cryptic error messages
svn path=/branches/xmlbuildsystem/; revision=12815
2005-01-05 02:57:58 +00:00
Gunnar Dalsnes
4e4b7cff0b i'm pretty sure a non-inheritable handle _can_ be duplicated! This fixes compiling ros-on-ros w/w2k msvcrt.dll for me.
svn path=/trunk/; revision=12814
2005-01-05 02:50:50 +00:00
Nedko Arnaudov
7671e20ce8 Remove definitions now present in /reactos/include/ntos/security.h
svn path=/trunk/; revision=12813
2005-01-05 02:21:05 +00:00
Nedko Arnaudov
f671eb9004 Remove definitions now present in /reactos/include/ntos/security.h
svn path=/trunk/; revision=12812
2005-01-05 02:05:59 +00:00
Alex Ionescu
ad60ddbca6 Remove ROS-specific File Object Flags
svn path=/trunk/; revision=12811
2005-01-05 01:42:23 +00:00
Alex Ionescu
2b9f762918 Significantly improved performance of Critical Section code by using a static buffer. Increased debug info dramatically and, if enabled, leaks can be found with ease. Future revision will include Spincount support.
svn path=/trunk/; revision=12810
2005-01-05 01:09:30 +00:00
Steven Edwards
ff4ae27d2f add ftp to the bootcd as well
svn path=/trunk/; revision=12809
2005-01-05 00:08:45 +00:00
Steven Edwards
c645e0d34c add ftp to the build
svn path=/trunk/; revision=12808
2005-01-05 00:03:42 +00:00
Nedko Arnaudov
f765c59019 Use build helpers from /reactos/tools/
svn path=/trunk/; revision=12807
2005-01-04 23:36:14 +00:00
Alex Ionescu
4dba0925ac Use proper PISID pointer to SID structure, fix wrong LUID definition, and remove duplicate code in Security Manager
svn path=/trunk/; revision=12806
2005-01-04 22:44:50 +00:00
Casper Hornstrup
4e36b04d0d MinGW backend.
svn path=/branches/xmlbuildsystem/; revision=12805
2005-01-04 22:40:08 +00:00
Steven Edwards
ddd07cb377 Why is gcc stupid....
svn path=/trunk/; revision=12804
2005-01-04 22:11:50 +00:00
Nedko Arnaudov
c0ba0ea090 Fix personal info.
svn path=/trunk/; revision=12803
2005-01-04 21:40:25 +00:00
Nedko Arnaudov
d61f6e4c18 Fix personal info.
Replace tabs with spaces.

svn path=/trunk/; revision=12802
2005-01-04 21:36:26 +00:00
Casper Hornstrup
6f22300491 Add project and module tests.
svn path=/branches/xmlbuildsystem/; revision=12801
2005-01-04 21:29:09 +00:00
Filip Navara
fca5c9e765 Don't free the memory for LParam in NtUserPeekMessage if called with PM_NOREMOVE flag.
svn path=/trunk/; revision=12800
2005-01-04 21:25:20 +00:00
Filip Navara
c0f005d179 Remove a broken header that's not needed anymore.
svn path=/trunk/; revision=12799
2005-01-04 21:19:51 +00:00
Nedko Arnaudov
2981f57ae6 Use .exe postfix when building on non-windows hosts too.
We are always building Win32 executable.

svn path=/trunk/; revision=12798
2005-01-04 20:50:06 +00:00
Casper Hornstrup
8b3d554adb Exception handling.
svn path=/branches/xmlbuildsystem/; revision=12797
2005-01-04 20:37:48 +00:00
Eric Kohl
db2f53dc81 Implement RtlCutoverTimeToSystemTime().
svn path=/trunk/; revision=12796
2005-01-04 20:10:11 +00:00
Royce Mitchell III
6332037cc9 fix gcc incompatibilities
svn path=/branches/xmlbuildsystem/; revision=12795
2005-01-04 19:06:48 +00:00
Royce Mitchell III
9d52adaf02 ssprintf() family of functions for std::string + printf functionality
svn path=/branches/xmlbuildsystem/; revision=12794
2005-01-04 18:38:31 +00:00
Casper Hornstrup
47c197a607 Move project to its own file.
svn path=/branches/xmlbuildsystem/; revision=12793
2005-01-04 18:24:21 +00:00
Royce Mitchell III
ac754b1f06 break XML-parsing stuff into it's own files, and fix 'make test'
svn path=/branches/xmlbuildsystem/; revision=12792
2005-01-04 17:53:26 +00:00
Casper Hornstrup
650cbe59a3 Kill warnings.
svn path=/branches/xmlbuildsystem/; revision=12791
2005-01-04 17:19:43 +00:00
Hartmut Birr
d8b3bb21d1 - Removed the 'shadow' NtGlobalFlag from ntdll.dll.
- Initialized NumberOfProcessors from the PEB structure.

svn path=/trunk/; revision=12790
2005-01-04 16:23:29 +00:00
Royce Mitchell III
ee24430c57 parse a module's files into a vector ( conditions are still a TODO )
svn path=/branches/xmlbuildsystem/; revision=12789
2005-01-04 14:46:06 +00:00
Royce Mitchell III
b6ce86818c handle xml comments and added handling for some possible error conditions
svn path=/branches/xmlbuildsystem/; revision=12788
2005-01-04 14:27:27 +00:00
Royce Mitchell III
eced4673d4 each XMLElement now stores a pointer to it's parent node, so the tree can be traversed from the bottom
svn path=/branches/xmlbuildsystem/; revision=12787
2005-01-04 14:02:04 +00:00
Royce Mitchell III
0e49eb5441 create virtual attribute "top_href" for <xi:include> that is a path relative to top level of project to make it easier to generate non-recursive makefiles
svn path=/branches/xmlbuildsystem/; revision=12786
2005-01-04 13:40:05 +00:00
Eric Kohl
8caac8b834 Implement BuildExplicitAccessWithNameA/W() and BuildImpersonateExplicitAccessWithNameA/W().
svn path=/trunk/; revision=12785
2005-01-04 09:35:28 +00:00
Royce Mitchell III
83a90b1ff8 use ntoskrnl/module.xml
svn path=/branches/xmlbuildsystem/; revision=12784
2005-01-04 07:05:31 +00:00
Royce Mitchell III
767c4f1f9e xml file for ntoskrnl module
svn path=/branches/xmlbuildsystem/; revision=12783
2005-01-04 07:05:04 +00:00
Royce Mitchell III
7b85a3019d support for <xi:include href="foo/foo.xml">, including the "relative path-mucking" necessary
svn path=/branches/xmlbuildsystem/; revision=12782
2005-01-04 07:03:59 +00:00
Royce Mitchell III
e6258f2fa1 buffer overflow (& invalid registry path for device) bugfix: DataPtr != KeyInformation->Data on 2nd+ passes
svn path=/trunk/; revision=12781
2005-01-04 06:24:17 +00:00
Royce Mitchell III
d2cca7e010 dump first 128 bytes of violated memory blocks
svn path=/trunk/; revision=12780
2005-01-04 05:09:53 +00:00
Gunnar Dalsnes
708b29556c -move structs OBJECT_TYPE/OBJECT_HEADER into private headers
-correct OBJECT_TYPE_INFORMATION struct
-rename meaningless members OBJECT_TYPE->MaxObjects/MaxHandles to PeakObjects/PeakHandles and init to zero. Both are still unused.

svn path=/trunk/; revision=12779
2005-01-04 04:45:00 +00:00
Royce Mitchell III
4b6d28c5a2 proper destruction for Project objects
svn path=/branches/xmlbuildsystem/; revision=12778
2005-01-04 04:09:04 +00:00
Royce Mitchell III
0b41f2cc93 initial code to step through tree looking for modules, and calculating their relative paths, for now just print out our findings and clean up.
svn path=/branches/xmlbuildsystem/; revision=12777
2005-01-04 04:04:32 +00:00
Steven Edwards
34bf6de206 added a port of netkit ftp.exe
svn path=/trunk/; revision=12776
2005-01-04 04:03:57 +00:00
Royce Mitchell III
24bc72075e don't pass vector<pointer> by value unless you are looking for trouble, also fixed Assert() to take stdargs to make it's usage simpler and less error-prone. Also fixed IsTrue(), etc, to take file and line info by args and created macros to pass that info automatically.
svn path=/branches/xmlbuildsystem/; revision=12775
2005-01-04 03:10:07 +00:00
Alex Ionescu
8c065412f4 Add more Critical Section Debug Data and fix two bugs.
svn path=/trunk/; revision=12774
2005-01-04 01:51:16 +00:00
Filip Navara
b06887c39a Robert Shearman <rob@codeweavers.com>
- Fix colours used for SS_*RECT, SS_*FRAME.
- Implement SS_CENTERIMAGE for static control.

svn path=/trunk/; revision=12773
2005-01-04 01:49:08 +00:00
Alex Ionescu
27780dc59a Fix silly bugs in Critical section code. Thanks to Gunnar for finding one of them, thanks to mifritscher for finding the actual regression, and thanks to Filip for being understanding :P
svn path=/trunk/; revision=12772
2005-01-04 00:10:50 +00:00
Alex Ionescu
abd7686a78 Fix RtlCriticalSection dummy calls in ntoskrnl's libsupp, for consistency with previous patch and correctness of types.
svn path=/trunk/; revision=12771
2005-01-03 23:35:02 +00:00
Royce Mitchell III
ac0d1d2023 get rid of transitory junk
svn path=/branches/xmlbuildsystem/; revision=12770
2005-01-03 23:24:12 +00:00
Royce Mitchell III
7db6de29fc 1) vector<BaseClass> = bad juju, must use vector<BaseClass*>
2) BaseClass must have virtual dtor
3) make Run() pure virtual

svn path=/branches/xmlbuildsystem/; revision=12769
2005-01-03 23:21:25 +00:00
Gregor Anich
57cef8643d added ntagp.h
svn path=/trunk/; revision=12768
2005-01-03 23:12:56 +00:00
Casper Hornstrup
0f703e6c9b Add small testing framework.
svn path=/branches/xmlbuildsystem/; revision=12767
2005-01-03 23:04:52 +00:00
Alex Ionescu
352d524633 Rewrite ROS Critical Section implementation, which was slow and broken (because it always created an event, which is the slow path). Note that coincidentally, Gunnar also fixed this code and committed a patch this morning, taken from WINE. This code is also based on WINE, but adds more features which WINE does not support/need yet (regarding Debug CS). Hence, this code was a re-write of the original ROS code, not of Gunnar's, and we've both discussed the accidental conflict.
svn path=/trunk/; revision=12766
2005-01-03 23:02:15 +00:00
Gé van Geldorp
a3e3b56cca Since we can load .sym files when defined(DBG) now, enable
/PROFILE option for defined(DBG) too.

svn path=/trunk/; revision=12765
2005-01-03 22:53:21 +00:00
Gé van Geldorp
22244655d6 Reverse last change, as it causes problems for ReadConsole (line input)
svn path=/trunk/; revision=12764
2005-01-03 22:00:39 +00:00
Filip Navara
366252dce4 Don't crash if ShellFolder doesn't implement the IID_ISFHelper interface.
svn path=/trunk/; revision=12763
2005-01-03 21:19:25 +00:00
Casper Hornstrup
5b5cae1d8f Add makefile for rbuild.
svn path=/branches/xmlbuildsystem/; revision=12762
2005-01-03 20:43:23 +00:00
Art Yerkes
edc694086f Removed spaces, put tabs.
svn path=/trunk/; revision=12761
2005-01-03 19:51:26 +00:00
Art Yerkes
c60fc95e69 Added route.exe to bootcd.
Patch by WaxDragon.

svn path=/trunk/; revision=12760
2005-01-03 19:45:35 +00:00
Royce Mitchell III
af0029cf63 moved rbuild.cpp per Casper's request
svn path=/branches/xmlbuildsystem/; revision=12759
2005-01-03 19:29:19 +00:00
Gé van Geldorp
d9b4e88284 Make command-prompt-link creation code Unicode resistent
svn path=/trunk/; revision=12758
2005-01-03 18:44:36 +00:00
Gunnar Dalsnes
a4b36e0224 critical.c:
-don't allocate semaphore until its. actually needed (just like windows & wine)
Ripped from Wine

-correct InterlockedCompareExchange proto
-add Interlocked(Compare)ExchangePointer def.
-correct CRITICAL_SECTION_DEBUG struct

svn path=/trunk/; revision=12757
2005-01-03 14:58:44 +00:00
Filip Navara
1de5b28f80 Fix import of DBGHELP:
- StackWalk is now compilable.
- SymInitialize shouldn't try to find Wine loader.

svn path=/trunk/; revision=12756
2005-01-03 14:47:11 +00:00
Filip Navara
28f15433b0 Add wine_dbgstr_longlong.
svn path=/trunk/; revision=12755
2005-01-03 14:46:08 +00:00
Eric Kohl
fb1c02d7d1 Clean up the pipe type and mode mess.
svn path=/trunk/; revision=12754
2005-01-03 13:50:04 +00:00
Hartmut Birr
896ba320b8 - Fixed the searching for uninitialized (like .bss) segments.
svn path=/trunk/; revision=12753
2005-01-03 11:30:28 +00:00
Martin Fuchs
5e976e5bad update Explorer Jamfile
svn path=/trunk/; revision=12752
2005-01-03 11:25:40 +00:00
Gé van Geldorp
41c18f8e50 Silence stupid compiler which doesn't know what it is talking about
svn path=/trunk/; revision=12751
2005-01-03 10:59:19 +00:00
Gé van Geldorp
10763448ee Find other entries besides the first too...
svn path=/trunk/; revision=12750
2005-01-03 10:06:08 +00:00
Gé van Geldorp
0f86e212b1 Fix ref counting bug
svn path=/trunk/; revision=12749
2005-01-03 09:46:31 +00:00
Alex Ionescu
91fc5d1804 Fix incorrect LPC Object export...we export pointers not the object itself! Also remove more TIME stuff to be properly compatible with real structures.
svn path=/trunk/; revision=12748
2005-01-03 05:17:16 +00:00
Alex Ionescu
b429ae3287 Fix more wrong structure defintions... and use proper values for Thread/Process mapping, not some weird undocumented/reversed values with no explenation.
svn path=/trunk/; revision=12747
2005-01-03 04:06:24 +00:00
Steven Edwards
d222bec89c added support for building Wine tests along with CI tests
svn path=/trunk/; revision=12746
2005-01-03 03:54:00 +00:00
Steven Edwards
e9c2a13f25 move wine tests from tests to winetests
svn path=/trunk/; revision=12745
2005-01-03 02:37:10 +00:00
Alex Ionescu
01efd62aff Fix more wrong structure defintions that don't match official ones, plus fix little bug I introduced.
svn path=/trunk/; revision=12744
2005-01-03 01:13:10 +00:00
Royce Mitchell III
1698e638a2 XML parsing working with my local sample build script. Now we need to start coding the makefile-generation
svn path=/branches/xmlbuildsystem/; revision=12743
2005-01-03 01:02:26 +00:00
Gé van Geldorp
8c1121a5be Don't destroy cursors/icons prematurely.
svn path=/trunk/; revision=12742
2005-01-03 00:46:42 +00:00
Art Yerkes
c60f00807e Change temporary file creation to tmpfile(). FullName was not initialized
correctly before and it's only by chance that this worked at all.

svn path=/trunk/; revision=12741
2005-01-02 23:46:28 +00:00
Alex Ionescu
afbaa12f82 Fix my previous patch and fix ACCESS_TOKEN being declared as a structure. This is incompatible with DDK/W32API because ACCESS_TOKEN is a PVOID. The real structure is TOKEN. Also, structure has been updated.
svn path=/trunk/; revision=12740
2005-01-02 23:12:40 +00:00
Casper Hornstrup
4aa419fcb5 Add sample build script.
svn path=/branches/xmlbuildsystem/; revision=12739
2005-01-02 22:17:02 +00:00
Alex Ionescu
f862727d03 Fix KeRaiseUserException and rename Object Information Structure
svn path=/trunk/; revision=12738
2005-01-02 20:51:02 +00:00
Filip Navara
3e2aa03dcf Fix HEAP_free call.
svn path=/trunk/; revision=12737
2005-01-02 20:49:00 +00:00
KJK::Hyperion
f6466c9edd Patch to make the End Process Button working, by Michael Fritscher
svn path=/trunk/; revision=12736
2005-01-02 20:47:34 +00:00
KJK::Hyperion
dd387c42f0 Relaxed the validity checks for PE executables yet more (no limitation for the file layout anymore, as the memory manager doesn't really care and executables seen in the wild tend to be pretty eccentric). Documented with an ASSERT the fact that the file offset cannot overflow (MAXULONG + MAXULONG < MAXLONGLONG)
svn path=/trunk/; revision=12734
2005-01-02 20:09:39 +00:00
Filip Navara
724fce9fd9 Disable debugging message.
svn path=/trunk/; revision=12732
2005-01-02 19:27:53 +00:00
Filip Navara
e6f2a2f607 Rename MmOpenMemoryAreaBy[Address/Region] to MmLocateMemoryAreaBy[Address/Region].
svn path=/trunk/; revision=12731
2005-01-02 19:14:52 +00:00
Filip Navara
7581cc7fb9 Implement ExtCreateRegion.
svn path=/trunk/; revision=12730
2005-01-02 18:04:59 +00:00
Filip Navara
59aa5bd203 Allocate enough bytes for the adapter object.
svn path=/trunk/; revision=12729
2005-01-02 18:00:31 +00:00
Filip Navara
2644fdc88a Change the MEMORY_AREAs to be stored it a binary search tree instead of linked list. Thanks to Royce Mitchell III and Mike Nordell for helping me.
svn path=/trunk/; revision=12728
2005-01-02 17:55:06 +00:00
Aleksey Bragin
d57bd697fd Removed file/folder
svn path=/trunk/; revision=12727
2005-01-02 17:47:07 +00:00
Aleksey Bragin
b685e5d6be Removed file/folder
svn path=/trunk/; revision=12726
2005-01-02 17:46:51 +00:00
Aleksey Bragin
9837438cb2 Removed file/folder
svn path=/trunk/; revision=12725
2005-01-02 17:46:46 +00:00
Aleksey Bragin
d7a8b29d38 Removed file/folder
svn path=/trunk/; revision=12724
2005-01-02 17:46:36 +00:00
Aleksey Bragin
100e13b72c Removed file/folder
svn path=/trunk/; revision=12723
2005-01-02 17:46:28 +00:00
Aleksey Bragin
81426398fc svn path=/trunk/; revision=12722 2005-01-02 17:43:23 +00:00
Emanuele Aliberti
6299fc1186 Replace
POBJECT_TYPE ExPortType

with

OBJECT_TYPE LpcPortObjectType

and export it.

svn path=/trunk/; revision=12720
2005-01-02 16:45:50 +00:00
Martin Fuchs
b6b2885037 Updated years range in copyright note.
svn path=/trunk/; revision=12719
2005-01-02 16:24:32 +00:00
Casper Hornstrup
c3b38401e3 Correct location of freeldr.sys for livecd target.
svn path=/trunk/; revision=12718
2005-01-02 15:02:59 +00:00
Emanuele Aliberti
f264388c30 - Updated years range in copyright note.
What is the master now?
* resource.h
* version.rc

svn path=/trunk/; revision=12717
2005-01-02 14:34:17 +00:00
Eric Kohl
b0b4ad8a28 Remove pipe only if client fcb list and server fcb list are empty.
svn path=/trunk/; revision=12716
2005-01-02 12:02:42 +00:00
Alex Ionescu
d062e3d562 Fix more wrong Mm definitions and constants and sync up with proper ones.
svn path=/trunk/; revision=12715
2005-01-02 07:04:56 +00:00
Alex Ionescu
9b48875031 Fix some wrong Mm definitions and sync up with proper ones.
svn path=/trunk/; revision=12714
2005-01-02 05:36:43 +00:00
Alex Ionescu
3be1a720e8 Fix horribly wrong defintions of ULONG32 and ULONG, as well as elf support which depended on these wrong definitions.
svn path=/trunk/; revision=12713
2005-01-02 04:27:29 +00:00
Alex Ionescu
28dff13100 Don't use MmLowestUserAddress as a ULONG!
svn path=/trunk/; revision=12712
2005-01-02 01:06:17 +00:00
Alex Ionescu
6a5aa2060e More LDR constants changes.
svn path=/trunk/; revision=12711
2005-01-01 22:57:06 +00:00
Gé van Geldorp
38c0b28279 Fix copy command
svn path=/trunk/; revision=12710
2005-01-01 22:53:21 +00:00
Alex Ionescu
2ee2dcfd7e Use W32API/PSDK structures/constants. The whole /ldr code is in MAJOR need of re-writing. Amazing it even works.
svn path=/trunk/; revision=12709
2005-01-01 22:10:23 +00:00
Steven Edwards
863fb4e364 didnt mean to commit this
svn path=/trunk/; revision=12708
2005-01-01 20:44:34 +00:00
Steven Edwards
1c648feae0 add urlmon and shdocvw to the build and install cd to get the Mozilla ActiveX Control working
svn path=/trunk/; revision=12707
2005-01-01 20:32:43 +00:00
Emanuele Aliberti
e4f12e6d99 - Updated years range in copyright note.
svn path=/trunk/; revision=12706
2005-01-01 19:33:26 +00:00
Alex Ionescu
21a0462b92 Remove unneeded defines and fix hal operation function types.
svn path=/trunk/; revision=12705
2005-01-01 17:44:06 +00:00
Eric Kohl
292272eff4 Connect client and server side upon client side creation only if both sides were created by the same thread.
svn path=/trunk/; revision=12704
2005-01-01 14:54:25 +00:00
Hartmut Birr
88c78cbdd8 - Fixed a debug message in KeConnectInterrupt.
svn path=/trunk/; revision=12703
2005-01-01 14:35:46 +00:00
Eric Kohl
9e8add4928 CreatePipe(): Don't open client side in passive mode.
svn path=/trunk/; revision=12702
2005-01-01 14:06:39 +00:00
Eric Kohl
4cffccfe6f Don't flush the caches of CD/DVD drives.
svn path=/trunk/; revision=12699
2005-01-01 12:19:21 +00:00
Hartmut Birr
6bd1cc19a3 - Check the caller pointers in all cases.
- Simplified the thread info functions a little bit.

svn path=/trunk/; revision=12698
2005-01-01 11:57:53 +00:00
Hartmut Birr
38d12a5ce6 - Fixed a length calculation in IopInitializeDriverModule.
- Freed the memory from hal.dll.

svn path=/trunk/; revision=12697
2005-01-01 11:53:38 +00:00
Hartmut Birr
adecdb10c6 - Fixed the return values in some unimolemented functions.
svn path=/trunk/; revision=12696
2005-01-01 11:51:16 +00:00
Hartmut Birr
b95c9c0eba - Loaded symbols also for kernel mode dll's.
svn path=/trunk/; revision=12695
2005-01-01 11:49:57 +00:00
Hartmut Birr
2e5a5b050c - Simplified KeSetSystemAffinityThread and KeRevertToUserAffinityThread for non smp machines.
- Set the number of processors before calling PiInitProcessManager.  
- Lock the dispatcher database while accessing some values in the thread structure in KeWaitForMultipleObjects.  
- Used Ke-functions to initialize the idle thread.  
- Fixed the offset to the stack frame in PsDumpThreads.  
- Implemented KeSetAffinityThread.  
- Fixed KeSetPriorityThread for threads on the ready queue.

svn path=/trunk/; revision=12694
2005-01-01 11:47:33 +00:00
Martin Fuchs
879287ceb0 eliminate 'using uninitialized variable' warning
svn path=/trunk/; revision=12693
2005-01-01 11:42:12 +00:00
Hartmut Birr
b167684edc - Fixed the access to the KPCR in KiQuantumEnd.
svn path=/trunk/; revision=12692
2005-01-01 11:33:31 +00:00
Hartmut Birr
576224deec - Implemented the interrupt handling for smp machines.
- Enabled interrupts (irqs) on all processors.

svn path=/trunk/; revision=12691
2005-01-01 11:31:43 +00:00
Hartmut Birr
1dc7aa3d70 - Implemented KeAcquireInterruptSpinLock and KeReleaseInterruptSpinLock.
- Implemented the interrupt handling for smp machines.

svn path=/trunk/; revision=12690
2005-01-01 11:28:46 +00:00
Hartmut Birr
7060a9893e - Used interlocked functions to modify the values for the ipi functions on smp machines.
svn path=/trunk/; revision=12689
2005-01-01 11:22:12 +00:00
Hartmut Birr
2d760db23f - Implemented Ke386TestAndClearBit and Ke386TestAndSetBit.
- Fixed some interlocked functions.

svn path=/trunk/; revision=12688
2005-01-01 11:18:54 +00:00
Hartmut Birr
37d9e18817 - Used the parent fcb instead to determine it from parent fileobject.
svn path=/trunk/; revision=12687
2005-01-01 11:11:52 +00:00
Hartmut Birr
635e37f654 - Initialized the pointers for the init environment.
svn path=/trunk/; revision=12686
2005-01-01 11:02:35 +00:00
Hartmut Birr
aaa5b3b1d4 - Fixed the releasing of the memory from the init section.
svn path=/trunk/; revision=12685
2005-01-01 10:59:31 +00:00
Hartmut Birr
f0b1beeb8a - Set the page protection for the section header.
svn path=/trunk/; revision=12684
2005-01-01 10:57:39 +00:00
Hartmut Birr
095823bec8 - Fixed ROUND_UP.
- Simplified ROUND_DOWN.

svn path=/trunk/; revision=12683
2005-01-01 10:54:48 +00:00
Alex Ionescu
8f33dd1b68 Fix DMA_OPERATIONS to use stdcall.
svn path=/trunk/; revision=12682
2005-01-01 08:43:02 +00:00
Alex Ionescu
b9378b35ed Fix more old cruft.
svn path=/trunk/; revision=12681
2005-01-01 08:20:47 +00:00
Art Yerkes
67fe83b228 Use host compiler to build bin2c
svn path=/trunk/; revision=12680
2005-01-01 07:01:47 +00:00
Alex Ionescu
cd9f2f7964 Fix work item enumaration values.
svn path=/trunk/; revision=12679
2005-01-01 04:55:11 +00:00
Alex Ionescu
849dcb1be9 Use PROCESSOR_FEATURE_MAX instead of PROCESSOR_FEATURES_MAX. The latter is not official and a useless ducpliate. Use LARGE_INTEGER instead of TIME in ex/sysinfo.c
svn path=/trunk/; revision=12678
2005-01-01 04:05:42 +00:00
Alex Ionescu
d5882cfd80 Use proper name for the NtSetInformationKey Info classes/structures, as well as add new XP+ class/structure
svn path=/trunk/; revision=12677
2005-01-01 02:08:13 +00:00
Eric Kohl
56f3b59cfb Don't start services until the control pipe issues are fixed.
svn path=/trunk/; revision=12676
2005-01-01 01:53:48 +00:00
Alex Ionescu
7510a729c6 Fix my previous NtDelayExecution patch. Fix Cc function prototypes which were incorrect, and remove useless file.
svn path=/trunk/; revision=12675
2005-01-01 01:51:05 +00:00
Casper Hornstrup
b11715e1ab Add error reporting assistant.
svn path=/trunk/; revision=12674
2005-01-01 01:11:54 +00:00
Alex Ionescu
7b174da1fd Modified NtDelayExecution Prototype/Function to use LARGE_INTEGER and not TIME, and renamed EX_MAXIMUM_WAIT_OBJECTS to MAXIMUM_WAIT_OBJECTS, which is the correct define to use (the ex define was an unnecessary duplicate)
svn path=/trunk/; revision=12673
2005-01-01 01:03:31 +00:00
Casper Hornstrup
a32ae2ed8f Move freeldr to reactos\boot\freeldr.
svn path=/trunk/; revision=12672
2005-01-01 00:42:18 +00:00
Martin Fuchs
49f4d8010f Handle "." and ".." as special direcory names and move them at the very first beginning of directory listings
svn path=/branches/lean-explorer/; revision=10889
2004-09-17 16:56:47 +00:00
Martin Fuchs
62f920f0c7 display lean explorer version in about dialog
svn path=/branches/lean-explorer/; revision=10573
2004-08-16 19:12:31 +00:00
Martin Fuchs
6f15da7d91 fix clean target for new standard makefiles
svn path=/branches/lean-explorer/; revision=10399
2004-08-04 21:42:33 +00:00
Martin Fuchs
a3a634bd46 fix clean target for new standard makefiles
svn path=/branches/lean-explorer/; revision=10398
2004-08-04 21:42:33 +00:00
Steven Edwards
6c3634add7 Fix building the lean explorer
svn path=/branches/lean-explorer/; revision=10391
2004-08-04 14:21:52 +00:00
Martin Fuchs
cdf16e21fe get version number to display from RES_STR_PRODUCT_VERSION
svn path=/branches/lean-explorer/; revision=10373
2004-08-03 19:43:45 +00:00
Martin Fuchs
91aa9f2a2a get version number to display from RES_STR_PRODUCT_VERSION
svn path=/branches/lean-explorer/; revision=10372
2004-08-03 19:43:45 +00:00
Martin Fuchs
3010e741cd get version number to display from RES_STR_PRODUCT_VERSION
svn path=/branches/lean-explorer/; revision=10371
2004-08-03 19:43:45 +00:00
Martin Fuchs
b4b7900286 implement IServiceprovider interface
svn path=/branches/lean-explorer/; revision=10335
2004-08-01 09:26:27 +00:00
Martin Fuchs
94b18145e8 implement IServiceprovider interface
svn path=/branches/lean-explorer/; revision=10334
2004-08-01 09:26:27 +00:00
Martin Fuchs
3419d837b4 use same startmenu entries height as MS explorer
svn path=/branches/lean-explorer/; revision=10323
2004-07-31 08:53:19 +00:00
Martin Fuchs
aaaf91d697 precompiled header support for the lean version of explorer
svn path=/branches/lean-explorer/; revision=10293
2004-07-26 18:41:36 +00:00
Martin Fuchs
ef27e16221 eliminate useless GCC warning
svn path=/branches/lean-explorer/; revision=10282
2004-07-24 20:15:47 +00:00
Martin Fuchs
a5b6fb6224 recalculate start menu root position for any call
svn path=/branches/lean-explorer/; revision=10280
2004-07-24 20:09:31 +00:00
The ReactOS Team
953956d508 This commit was manufactured by cvs2svn to create branch
'lean-explorer'.

svn path=/branches/lean-explorer/; revision=10195
2004-07-18 13:03:06 +00:00
Martin Fuchs
64e7f90242 fix root path for folders opened from the desktop
svn path=/branches/lean-explorer/; revision=10136
2004-07-15 21:19:05 +00:00
Martin Fuchs
bb344f6544 ignore unexpected exceptions while extracting icons
svn path=/branches/lean-explorer/; revision=10134
2004-07-15 21:04:20 +00:00
Martin Fuchs
e92def1b07 scroll mode for very long start menus in lean explorer branch
svn path=/branches/lean-explorer/; revision=10131
2004-07-15 20:20:39 +00:00
The ReactOS Team
9dd56c39d7 This commit was manufactured by cvs2svn to create branch
'lean-explorer'.

svn path=/branches/lean-explorer/; revision=10130
2004-07-15 20:20:39 +00:00
Martin Fuchs
89c345f0f6 remove useless comment
svn path=/branches/lean-explorer/; revision=9772
2004-06-20 19:28:54 +00:00
Martin Fuchs
d80f04c021 adjustments for GCC 3.4
svn path=/branches/lean-explorer/; revision=9710
2004-06-18 17:05:44 +00:00
Martin Fuchs
6936b33b44 fix Entry::read_tree() and get_next_path_component()
svn path=/branches/lean-explorer/; revision=9104
2004-04-12 15:55:36 +00:00
Steven Edwards
61f0b4504d I hope I didnt mess up committing this to the lean-branch.....
Add Windows Explorer menus (File, Edit, View, Tools - Disabled atm)
Merge "explorer -install" support to lean-explorer.
Merge some of the traynotify cleanups.

svn path=/branches/lean-explorer/; revision=9049
2004-04-09 19:02:59 +00:00
Steven Edwards
ea30a0dc0f Testing something
svn path=/branches/lean-explorer/; revision=9048
2004-04-09 18:55:23 +00:00
Martin Fuchs
e7cd739664 option "display version on desktop background"
svn path=/branches/lean-explorer/; revision=8909
2004-03-28 20:32:23 +00:00
Martin Fuchs
283e814418 option "display version on desktop background"
svn path=/branches/lean-explorer/; revision=8908
2004-03-28 20:32:23 +00:00
Martin Fuchs
b7d05c55c1 lean version comments
svn path=/branches/lean-explorer/; revision=8812
2004-03-20 13:55:58 +00:00
Martin Fuchs
54fff5eacf UNICODE fix for Tooltips
svn path=/branches/lean-explorer/; revision=8740
2004-03-14 22:27:44 +00:00
Martin Fuchs
aa1994fbc7 resize taskbar buttons on WM_SIZE
svn path=/branches/lean-explorer/; revision=8730
2004-03-14 18:51:36 +00:00
Martin Fuchs
655eff3fef move create_absolute_pidl() member function implementation from Enry into WinEntry
svn path=/branches/lean-explorer/; revision=8707
2004-03-14 12:11:19 +00:00
Martin Fuchs
821980ba92 french translation for some start menu entries from Gge
svn path=/branches/lean-explorer/; revision=8692
2004-03-13 20:05:33 +00:00
Martin Fuchs
02818cac57 small 'Explorer' string adjustment for french
svn path=/branches/lean-explorer/; revision=8671
2004-03-12 21:20:03 +00:00
Martin Fuchs
2906835b92 adjust start button to text size
svn path=/branches/lean-explorer/; revision=8669
2004-03-12 21:12:28 +00:00
Martin Fuchs
a16e73576f adjust start button to text size
svn path=/branches/lean-explorer/; revision=8668
2004-03-12 21:12:28 +00:00
Martin Fuchs
982fa99488 add opened files to the "recent documents" list
svn path=/branches/lean-explorer/; revision=8522
2004-03-03 20:29:52 +00:00
Martin Fuchs
2436649677 add opened files to the "recent documents" list
svn path=/branches/lean-explorer/; revision=8521
2004-03-03 20:29:52 +00:00
Martin Fuchs
9f36b56be8 up/down navigation for shell views in SDI mode
svn path=/branches/lean-explorer/; revision=8461
2004-02-28 23:32:05 +00:00
Martin Fuchs
6788d779df disable context information for lean release builds
svn path=/branches/lean-explorer/; revision=8455
2004-02-28 17:38:55 +00:00
Martin Fuchs
d22ce95a23 "up" button
svn path=/branches/lean-explorer/; revision=8454
2004-02-28 17:38:34 +00:00
Martin Fuchs
1ed75817b2 - fix for restoring applications using task bar buttons
- project file maintainancement
- docu update

svn path=/branches/lean-explorer/; revision=8451
2004-02-28 16:41:55 +00:00
Martin Fuchs
696e9fab75 - fix for restoring applications using task bar buttons
- project file maintainancement
- docu update

svn path=/branches/lean-explorer/; revision=8450
2004-02-28 16:41:55 +00:00
Martin Fuchs
c0442f2fa3 compatibility fix for "Sleipnir" web browser: minimizing by clicks on taskbar
svn path=/branches/lean-explorer/; revision=8449
2004-02-28 16:05:34 +00:00
Martin Fuchs
df7a6033ec desktop switching: allow applications to be visible only on one desktop
svn path=/branches/lean-explorer/; revision=8447
2004-02-28 15:14:39 +00:00
Martin Fuchs
153276234c remember last foreground window when switching desktops
svn path=/branches/lean-explorer/; revision=8439
2004-02-28 13:45:33 +00:00
Martin Fuchs
91554083e0 remember last foreground window when switching desktops
svn path=/branches/lean-explorer/; revision=8437
2004-02-28 13:45:32 +00:00
Martin Fuchs
3b06f79ff4 another foreground window fix for clicks on notification icons
svn path=/branches/lean-explorer/; revision=8435
2004-02-28 10:57:02 +00:00
Martin Fuchs
55b5f0c114 implemented 'minimize all' feature
svn path=/branches/lean-explorer/; revision=8432
2004-02-28 10:27:39 +00:00
Martin Fuchs
1f3fa7df38 disable start menu entries for non-existing folders
svn path=/branches/lean-explorer/; revision=8417
2004-02-26 21:52:34 +00:00
Martin Fuchs
fb350b3059 fix admin and printer folders
svn path=/branches/lean-explorer/; revision=8415
2004-02-26 21:28:48 +00:00
Martin Fuchs
2c1003c0c6 include explorer windows in desktop switching
svn path=/branches/lean-explorer/; revision=8414
2004-02-26 21:20:51 +00:00
Martin Fuchs
9fe0326582 avoid displaying context menu for application button _and_ desktop bar at the same time
svn path=/branches/lean-explorer/; revision=8412
2004-02-26 20:38:33 +00:00
Martin Fuchs
83fbf6968d docu update
svn path=/branches/lean-explorer/; revision=8410
2004-02-26 20:26:11 +00:00
Martin Fuchs
2211cc9503 fix foreground window handling when clicking on notification area icons
svn path=/branches/lean-explorer/; revision=8409
2004-02-26 20:20:44 +00:00
Martin Fuchs
eb17639f37 resize taskbar buttons according to number of running applications
svn path=/branches/lean-explorer/; revision=8405
2004-02-26 19:47:39 +00:00
Martin Fuchs
73a9af76fa resize taskbar buttons according to number of running applications
svn path=/branches/lean-explorer/; revision=8404
2004-02-26 19:47:39 +00:00
Martin Fuchs
4f32541e64 fix taksbar icons after closing previous applications
svn path=/branches/lean-explorer/; revision=8380
2004-02-25 20:21:30 +00:00
Martin Fuchs
ea3d021bfd set background brush for the short moment of displaying the background color while moving foreground windows
svn path=/branches/lean-explorer/; revision=8374
2004-02-25 19:29:13 +00:00
Martin Fuchs
b5a4206184 fixed bug #224
svn path=/branches/lean-explorer/; revision=8372
2004-02-25 18:58:34 +00:00
Martin Fuchs
3f5fd6a3b2 fixed more GDI handle leaks
svn path=/branches/lean-explorer/; revision=8356
2004-02-24 22:15:41 +00:00
Martin Fuchs
f537ac11a5 - launch task manager
- set foregroundwindow when opening start menu (CTRL-ESC shortcut)

svn path=/branches/lean-explorer/; revision=8353
2004-02-24 20:00:03 +00:00
Martin Fuchs
48da412f74 keyboard navigation in start menu using first character of display names
svn path=/branches/lean-explorer/; revision=8343
2004-02-23 22:16:54 +00:00
Martin Fuchs
7bbbc66715 fixed icon handle leak in notification area
svn path=/branches/lean-explorer/; revision=8338
2004-02-23 20:39:16 +00:00
Martin Fuchs
479967c7f3 strip down resource images
svn path=/branches/lean-explorer/; revision=8270
2004-02-19 20:57:27 +00:00
Martin Fuchs
982ba5e7ea - eiminated compiler warning
- removed NTFS streams support since it never displayed in this version

svn path=/branches/lean-explorer/; revision=8247
2004-02-18 19:38:36 +00:00
Martin Fuchs
a8cf2dad56 SDI interface for lean explorer
svn path=/branches/lean-explorer/; revision=8240
2004-02-18 00:01:02 +00:00
Martin Fuchs
1707fd147a disable autostart if the SHIFT key is pressed
svn path=/branches/lean-explorer/; revision=8224
2004-02-17 20:20:03 +00:00
Martin Fuchs
361d931d0c - disable lazy icon extraction in start menu to be as fast as possible
- convert settings start menus into buttons

svn path=/branches/lean-explorer/; revision=8217
2004-02-16 23:32:30 +00:00
Martin Fuchs
d6a11826cd first draft of a lean explorer version
svn path=/branches/lean-explorer/; revision=8214
2004-02-16 22:53:38 +00:00
The ReactOS Team
aea6a56335 This commit was manufactured by cvs2svn to create branch
'lean-explorer'.

svn path=/branches/lean-explorer/; revision=8213
2004-02-16 22:53:38 +00:00
5814 changed files with 458636 additions and 555406 deletions

View File

@@ -1,45 +0,0 @@
#
# FreeLoader
# Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# Windows is default host environment
ifeq ($(HOST),)
HOST = mingw32-windows
endif
include rules.mak
all:
$(MAKE) -C tools
$(MAKE) -C bootsect
$(MAKE) -C freeldr
$(MAKE) -C install
$(MAKE) -C fdebug
freeldr:
$(MAKE) -C freeldr
.PHONY : freeldr
clean:
$(MAKE) -C bootsect clean
$(MAKE) -C freeldr clean
$(MAKE) -C install clean
$(MAKE) -C fdebug clean
$(MAKE) -C tools clean
.PHONY : clean

View File

@@ -1,3 +0,0 @@
*.exe
*.bin
*.h

View File

@@ -1,76 +0,0 @@
#
# FreeLoader
# Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
BOOTCD_DIR = ../../bootcd
.PHONY : clean bootcd
all: $(BIN2C) dosmbr.bin fat.bin fat32.bin isoboot.bin ext2.bin
$(BIN2C) :
@$(MAKE) --no-print-directory -C $(TOOLSDIR)
dosmbr.bin : dosmbr.asm
@echo ===================================================== Assembling dosmbr
@$(NASM_CMD) $(NFLAGS) -o dosmbr.bin -f bin dosmbr.asm
fat.bin : fat.asm $(BIN2C)
@echo ===================================================== 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
@$(NASM_CMD) $(NFLAGS) -o fat32.bin -f bin fat32.asm
@$(BIN2C) fat32.bin fat32.h fat32_data
isoboot.bin : isoboot.asm
@echo ===================================================== Assembling isoboot
@$(NASM_CMD) $(NFLAGS) -o isoboot.bin -f bin isoboot.asm
ext2.bin : ext2.asm
@echo ===================================================== Assembling ext2
@$(NASM_CMD) $(NFLAGS) -o ext2.bin -f bin ext2.asm
@$(BIN2C) ext2.bin ext2.h ext2_data
.PHONY : bootcd
bootcd: bootcd_dirs isoboot.bin
$(CP) isoboot.bin $(BOOTCD_DIR)
$(CP) dosmbr.bin $(BOOTCD_DIR)/disk/loader
$(CP) ext2.bin $(BOOTCD_DIR)/disk/loader
$(CP) fat.bin $(BOOTCD_DIR)/disk/loader
$(CP) fat32.bin $(BOOTCD_DIR)/disk/loader
$(CP) isoboot.bin $(BOOTCD_DIR)/disk/loader
.PHONY : bootcd_dirs
bootcd_dirs:
$(MKDIR) $(BOOTCD_DIR)
$(MKDIR) $(BOOTCD_DIR)/disk
$(MKDIR) $(BOOTCD_DIR)/disk/reactos
$(MKDIR) $(BOOTCD_DIR)/disk/install
$(MKDIR) $(BOOTCD_DIR)/disk/bootdisk
$(MKDIR) $(BOOTCD_DIR)/disk/loader
clean:
@-$(RM) *.bin
@-$(RM) *.h
@echo Clean ALL done.

View File

@@ -1,49 +0,0 @@
#
# FreeLoader
# Copyright (C) 1999 - 2003 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
FLAGS = -Wall
OBJS = rs232.o fdebug.o fdebug.res
.PHONY : clean
all: fdebug.exe
fdebug.exe: $(OBJS)
@echo ===================================================== LINKING fdebug
$(CC) $(FLAGS) -o fdebug.exe $(OBJS) -lgdi32 -lcomdlg32 -Wl,--subsystem,windows
fdebug.res: fdebug.rc resource.h
@echo ===================================================== Compiling $*
$(WINDRES) -o fdebug.res fdebug.rc -O coff
fdebug.o: fdebug.c rs232.h
@echo ===================================================== Compiling $*
$(CC) $(FLAGS) -o fdebug.o -c fdebug.c
rs232.o: rs232.c rs232.h
@echo ===================================================== Compiling $*
$(CC) $(FLAGS) -o rs232.o -c rs232.c
clean:
@-$(RM) *.o
@-$(RM) *.res
@-$(RM) *.exe
@echo Clean ALL done.

View File

@@ -1,413 +0,0 @@
#
# FreeLoader
# Copyright (C) 1998-2002 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#############################################
# CHANGE THESE FOR YOUR OUTPUT
#
TARGET = i386
ifeq ($(DEBUG),)
# Debugging information on (bigger binary)
#DEBUG = yes
# Debugging information off (smaller binary)
DEBUG = no
endif
OBJDIR = obj
OUTPUT_DIR = $(OBJDIR)/$(TARGET)
BOOTCD_DIR = ../../bootcd
#############################################
# COMPILER AND LINKER PROGRAMS
#
TOOLSDIR = $(SRCDIR)/../tools
RM = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)rdel
CP = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)rcopy
MKDIR = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)rmkdir
RMDIR = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)rrmdir
OBJCOPY = objcopy
NM = nm
OBJDUMP = objdump
DEPTOOL = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)deptool
HOSTTOOL = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)hosttype
TOOLS = $(DEPTOOL) $(HOSTTOOL)
HOSTTYPE = $(shell $(HOSTTOOL))
#-----------------------------------------------------------------------------------------------------
# TEST IF WE ARE IN THE TARGET DIRECTORY
# IF NOT WE WILL CHANGE TO THE TARGET DIRECTORY AND RUN MAKE FROM THERE
#-----------------------------------------------------------------------------------------------------
#ifeq (,$(filter $(CURDIR)/$(OUTPUT_DIR),$(notdir $(CURDIR))))
ifneq ($(CURDIR), $(SRCDIR)/$(OUTPUT_DIR))
SRCDIR = $(CURDIR)
.SUFFIXES:
#############################################
# VARIABLE TO CHANGE TO TARGET DIRECTORY AND INVOKE MAKE FROM THERE
#
MAKETARGET = $(MAKE) --no-print-directory -C $(OUTPUT_DIR) \
-f ../../Makefile SRCDIR=$(CURDIR) $(MAKECMDGOALS)
.PHONY: CHANGE_TO_TARGET
CHANGE_TO_TARGET setupldr : BUILD_TOOLS $(OBJDIR) $(OBJDIR)/$(TARGET)
@echo Calculating source file dependencies...
+@$(MAKETARGET)
.PHONY: BUILD_TOOLS
BUILD_TOOLS:
@$(MAKE) --no-print-directory -C $(TOOLSDIR)
$(OBJDIR):
@echo Creating directory: $(OBJDIR)
@$(MKDIR) $(OBJDIR)
$(OBJDIR)/$(TARGET): $(OBJDIR)
@echo Creating directory: $(OBJDIR)/$(TARGET)
@$(MKDIR) $(OBJDIR)/$(TARGET)
Makefile : ;
% :: CHANGE_TO_TARGET
#############################################
.PHONY : clean
clean:
@$(MAKE) --no-print-directory -C $(TOOLSDIR)
@echo Cleaning directory $(OBJDIR)/$(TARGET)
@-$(RM) $(OBJDIR)/$(TARGET)/*
@echo Removing directory $(OBJDIR)/$(TARGET)
@-$(RMDIR) $(OBJDIR)/$(TARGET)
@-$(RMDIR) $(OBJDIR)
@echo Clean ALL done.
#############################################
.PHONY : bootcd
bootcd : bootcd_dirs setup_loader boot_loader
.PHONY : bootcd_dirs
bootcd_dirs:
$(MKDIR) $(BOOTCD_DIR)
$(MKDIR) $(BOOTCD_DIR)/disk
$(MKDIR) $(BOOTCD_DIR)/disk/reactos
$(MKDIR) $(BOOTCD_DIR)/disk/install
$(MKDIR) $(BOOTCD_DIR)/disk/bootdisk
$(MKDIR) $(BOOTCD_DIR)/disk/loader
.PHONY : boot_loader
boot_loader : $(OBJDIR)/$(TARGET)/freeldr.sys
$(CP) $(OBJDIR)/$(TARGET)/freeldr.sys $(BOOTCD_DIR)/disk/loader/freeldr.sys
$(CP) ../freeldr.ini $(BOOTCD_DIR)/disk/loader/freeldr.ini
.PHONY : setup_loader
setup_loader : $(OBJDIR)/$(TARGET)/setupldr.sys
$(CP) $(OBJDIR)/$(TARGET)/setupldr.sys $(BOOTCD_DIR)/disk/loader/setupldr.sys
#############################################
#-----------------------------------------------------------------------------------------------------
# END MAGIC TARGET DIRECTORY CHANGE STUFF
#-----------------------------------------------------------------------------------------------------
else
#############################################
# COMPILER COMMAND LINE OPTIONS
#
COMPILER_OPTIONS = -Wall -Werror -nostdlib -nostdinc -ffreestanding -fno-builtin -fno-inline \
-fno-zero-initialized-in-bss -O1 -MD
# FreeLoader does not use any of the standard libraries, includes, or built-in functions
#############################################
# COMPILER DEFINES
#
ifeq ($(DEBUG),yes)
COMPILER_DEBUG_DEFINES = -DDEBUG
else
COMPILER_DEBUG_DEFINES =
endif
COMPILER_DEFINES = -D__$(TARGET)__ $(COMPILER_DEBUG_DEFINES)
#############################################
# INCLUDE DIRECTORY OPTIONS
#
COMPILER_INCLUDES = -I$(SRCDIR)/include
#############################################
# COMPILER FLAGS
#
CFLAGS = $(COMPILER_OPTIONS) \
$(COMPILER_DEFINES) \
$(COMPILER_INCLUDES)
#############################################
# LINKER COMMAND LINE OPTIONS
#
#LINKER_OPTIONS = -N -Ttext=0x8000 --oformat=binary -s
LINKER_OPTIONS = -N -Ttext=0x8000
#############################################
# LINKER FLAGS
#
LFLAGS = $(LINKER_OPTIONS)
#############################################
# NASM FLAGS
#
ifeq ($(HOSTTYPE), dos)
NASMFLAGS = -f coff
else
ifeq ($(HOSTTYPE), win32)
NASMFLAGS = -f win32
else
NASMFLAGS = -f elf
endif
endif
#############################################
# LIST ALL THE OBJECT FILE GROUPS
#
# fathelp.o must come first in the link line because it contains bootsector helper code
# arch.o must come second in the link line because it contains the startup code
ARCH_OBJS = fathelp.o \
arch.o \
i386idt.o \
i386trap.o \
i386cpu.o \
i386pnp.o \
boot.o \
linux.o \
mb.o \
i386rtl.o \
i386vid.o \
drvmap.o \
int386.o \
i386disk.o \
portio.o \
hardware.o \
hwacpi.o \
hwapm.o \
hwcpu.o \
hwpci.o \
archmach.o \
machpc.o \
machxbox.o \
pccons.o \
pcdisk.o \
pcmem.o \
pcrtc.o \
pcvideo.o \
xboxcons.o \
xboxdisk.o \
xboxfont.o \
xboxhw.o \
xboxmem.o \
xboxrtc.o \
xboxvideo.o \
_alloca.o # For Mingw32 builds
RTL_OBJS = print.o \
stdlib.o \
string.o \
list.o \
memcmp.o \
memcpy.o \
memmove.o \
memset.o
FS_OBJS = fs.o \
fat.o \
iso.o \
ext2.o \
ntfs.o \
fsrec.o
UI_OBJS = tui.o \
tuimenu.o \
ui.o \
gui.o
REACTOS_OBJS= arcname.o \
binhive.o \
registry.o
COMM_OBJS = rs232.o
DISK_OBJS = disk.o \
partition.o
MM_OBJS = mm.o \
meminit.o
CACHE_OBJS = cache.o \
blocklist.o
INIFILE_OBJS= inifile.o \
ini_init.o \
parse.o
INFFILE_OBJS= inffile.o
VIDEO_OBJS = video.o \
fade.o \
palette.o \
pixel.o \
bank.o
# libgcc2.o contains code (__udivdi3, __umoddi3) necessary to do
# 64-bit division on the i386 (and other 32-bit) architectures
# This code was taken from the GCC v3.1 source
MATH_OBJS = libgcc2.o
BASE_OBJS = freeldr.o \
debug.o \
multiboot.o \
version.o \
cmdline.o \
machine.o
FREELDR_OBJS= bootmgr.o \
drivemap.o \
miscboot.o \
options.o \
linuxboot.o \
oslist.o \
custom.o
ROSLDR_OBJS = reactos.o
SETUPLDR_OBJS= setupldr.o
COMMON_OBJS = $(ARCH_OBJS) \
$(RTL_OBJS) \
$(FS_OBJS) \
$(UI_OBJS) \
$(REACTOS_OBJS) \
$(COMM_OBJS) \
$(DISK_OBJS) \
$(MM_OBJS) \
$(CACHE_OBJS) \
$(VIDEO_OBJS) \
$(MATH_OBJS) \
$(BASE_OBJS)
SPECIAL_OBJS = $(INIFILE_OBJS) \
$(INFFILE_OBJS) \
$(FREELDR_OBJS) \
$(ROSLDR_OBJS) \
$(SETUPLDR_OBJS)
F_OBJS = $(COMMON_OBJS) \
$(INIFILE_OBJS) \
$(ROSLDR_OBJS) \
$(FREELDR_OBJS)
S_OBJS = $(COMMON_OBJS) \
$(INIFILE_OBJS) \
$(INFFILE_OBJS) \
$(SETUPLDR_OBJS)
#############################################
# ALL THE OBJECTS
#
ALL_OBJS = $(COMMON_OBJS) \
$(SPECIAL_OBJS)
#############################################
# SET THE VPATH SO MAKE CAN FIND THE SOURCE FILES
#
VPATH = $(SRCDIR)/ \
$(SRCDIR)/arch/$(TARGET) \
$(SRCDIR)/rtl \
$(SRCDIR)/fs \
$(SRCDIR)/ui \
$(SRCDIR)/reactos \
$(SRCDIR)/comm \
$(SRCDIR)/disk \
$(SRCDIR)/mm \
$(SRCDIR)/cache \
$(SRCDIR)/inifile \
$(SRCDIR)/inffile \
$(SRCDIR)/video \
$(SRCDIR)/math \
$(SRCDIR)/include
#############################################
all : freeldr.sys setupldr.sys
@echo Make ALL done.
#############################################
freeldr.sys : $(ALL_OBJS)
@echo ===================================================== LINKING $@
@$(LD) $(LFLAGS) -o freeldr.exe $(F_OBJS)
ifeq ($(FULL_MAP),yes)
@$(OBJDUMP) -d -S freeldr.exe > freeldr.map
else
@$(NM) --numeric-sort freeldr.exe > freeldr.map
endif
@$(OBJCOPY) -O binary freeldr.exe freeldr.sys
#############################################
setupldr.sys : $(ALL_OBJS)
@echo ===================================================== LINKING $@
@$(LD) $(LFLAGS) -Map setupldr.map -o setupldr.exe $(S_OBJS)
ifeq ($(FULL_MAP),yes)
@$(OBJDUMP) -d -S setupldr.exe > setupldr.map
else
@$(NM) --numeric-sort setupldr.exe > setupldr.map
endif
@$(OBJCOPY) -O binary setupldr.exe setupldr.sys
#############################################
%.o :: %.c
@echo ===================================================== Compiling $*
@$(CC) $(CFLAGS) -o $@ -c $<
@$(DEPTOOL) $*.d
%.o :: %.S
@echo ===================================================== Assembling $*
@$(CC) $(CFLAGS) -o $@ -c $<
@$(DEPTOOL) $*.d
%.o :: %.asm
@echo ===================================================== Assembling $*
@$(NASM_CMD) $(NASMFLAGS) -o $@ $<
#############################################
# Include the automagically generated dependencies
-include $(ALL_OBJS:%.o=%.d)
#############################################
endif

View File

@@ -1,52 +0,0 @@
/* $Id: archmach.c,v 1.2 2004/11/09 23:36:19 gvg Exp $
*
* FreeLoader
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "mm.h"
#include "machine.h"
#include "machpc.h"
#include "machxbox.h"
#include "portio.h"
#include "hardware.h"
#include "rtl.h"
VOID
MachInit(VOID)
{
U32 PciId;
memset(&MachVtbl, 0, sizeof(MACHVTBL));
/* Check for Xbox by identifying device at PCI 0:0:0, if it's
* 0x10de/0x02a5 then we're running on an Xbox */
WRITE_PORT_ULONG((U32*) 0xcf8, CONFIG_CMD(0, 0, 0));
PciId = READ_PORT_ULONG((U32*) 0xcfc);
if (0x02a510de == PciId)
{
XboxMachInit();
}
else
{
PcMachInit();
}
HalpCalibrateStallExecution();
}
/* EOF */

View File

@@ -1,200 +0,0 @@
/*
* FreeLoader
*
* Copyright (C) 2003 Eric Kohl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __I386_HARDWARE_H_
#define __I386_HARDWARE_H_
#ifndef __REGISTRY_H
#include "../../reactos/registry.h"
#endif
typedef enum
{
InterfaceTypeUndefined = -1,
Internal,
Isa,
Eisa,
MicroChannel,
TurboChannel,
PCIBus,
VMEBus,
NuBus,
PCMCIABus,
CBus,
MPIBus,
MPSABus,
ProcessorInternal,
InternalPowerBus,
PNPISABus,
MaximumInterfaceType
} INTERFACE_TYPE, *PINTERFACE_TYPE;
typedef enum _CM_RESOURCE_TYPE
{
CmResourceTypeNull = 0,
CmResourceTypePort,
CmResourceTypeInterrupt,
CmResourceTypeMemory,
CmResourceTypeDma,
CmResourceTypeDeviceSpecific,
CmResourceTypeMaximum
} CM_RESOURCE_TYPE;
typedef enum _CM_SHARE_DISPOSITION
{
CmResourceShareUndetermined = 0,
CmResourceShareDeviceExclusive,
CmResourceShareDriverExclusive,
CmResourceShareShared
} CM_SHARE_DISPOSITION;
typedef U64 PHYSICAL_ADDRESS;
typedef struct
{
U8 Type;
U8 ShareDisposition;
U16 Flags;
union
{
struct
{
PHYSICAL_ADDRESS Start;
U32 Length;
} __attribute__((packed)) Port;
struct
{
U32 Level;
U32 Vector;
U32 Affinity;
} __attribute__((packed)) Interrupt;
struct
{
PHYSICAL_ADDRESS Start;
U32 Length;
} __attribute__((packed)) Memory;
struct
{
U32 Channel;
U32 Port;
U32 Reserved1;
} __attribute__((packed)) Dma;
struct
{
U32 DataSize;
U32 Reserved1;
U32 Reserved2;
} __attribute__((packed)) DeviceSpecificData;
} __attribute__((packed)) u;
} __attribute__((packed)) CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags */
#define CM_RESOURCE_PORT_MEMORY 0x0000
#define CM_RESOURCE_PORT_IO 0x0001
#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000
#define CM_RESOURCE_INTERRUPT_LATCHED 0x0001
typedef struct
{
U16 Version;
U16 Revision;
U32 Count;
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
} __attribute__((packed))CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;
typedef struct
{
INTERFACE_TYPE InterfaceType;
U32 BusNumber;
CM_PARTIAL_RESOURCE_LIST PartialResourceList;
} __attribute__((packed)) CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR;
typedef struct _CM_COMPONENT_INFORMATION
{
U32 Flags;
U32 Version;
U32 Key;
U32 Affinity;
} __attribute__((packed)) CM_COMPONENT_INFORMATION, *PCM_COMPONENT_INFORMATION;
/* CM_COMPONENT_INFORMATION.Flags */
#define Failed 0x00000001
#define ReadOnly 0x00000002
#define Removable 0x00000004
#define ConsoleIn 0x00000008
#define ConsoleOut 0x00000010
#define Input 0x00000020
#define Output 0x00000040
#define CONFIG_CMD(bus, dev_fn, where) \
(0x80000000 | (((U32)(bus)) << 16) | (((dev_fn) & 0x1F) << 11) | (((dev_fn) & 0xE0) << 3) | ((where) & ~3))
/* PROTOTYPES ***************************************************************/
/* hardware.c */
VOID HalpCalibrateStallExecution(VOID);
VOID KeStallExecutionProcessor(U32 Microseconds);
VOID SetComponentInformation(HKEY ComponentKey,
U32 Flags,
U32 Key,
U32 Affinity);
/* hwacpi.c */
VOID DetectAcpiBios(HKEY SystemKey, U32 *BusNumber);
/* hwapm.c */
VOID DetectApmBios(HKEY SystemKey, U32 *BusNumber);
/* hwcpu.c */
VOID DetectCPUs(HKEY SystemKey);
/* hwpci.c */
VOID DetectPciBios(HKEY SystemKey, U32 *BusNumber);
/* i386cpu.S */
U32 CpuidSupported(VOID);
VOID GetCpuid(U32 Level,
U32 *eax,
U32 *ebx,
U32 *ecx,
U32 *edx);
U64 RDTSC(VOID);
/* i386pnp.S */
U32 PnpBiosSupported(VOID);
U32 PnpBiosGetDeviceNodeCount(U32 *NodeSize,
U32 *NodeCount);
U32 PnpBiosGetDeviceNode(U8 *NodeId,
U8 *NodeBuffer);
#endif /* __I386_HARDWARE_H_ */
/* EOF */

View File

@@ -1,175 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "disk.h"
#include "rtl.h"
#include "arch.h"
#include "debug.h"
#include "portio.h"
#include "machine.h"
/////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
/////////////////////////////////////////////////////////////////////////////////////////////
#ifdef __i386__
BOOL DiskResetController(U32 DriveNumber)
{
REGS RegsIn;
REGS RegsOut;
DbgPrint((DPRINT_DISK, "DiskResetController(0x%x) DISK OPERATION FAILED -- RESETTING CONTROLLER\n", DriveNumber));
// BIOS Int 13h, function 0 - Reset disk system
// AH = 00h
// DL = drive (if bit 7 is set both hard disks and floppy disks reset)
// Return:
// AH = status
// CF clear if successful
// CF set on error
RegsIn.b.ah = 0x00;
RegsIn.b.dl = DriveNumber;
// Reset the disk controller
Int386(0x13, &RegsIn, &RegsOut);
return INT386_SUCCESS(RegsOut);
}
BOOL DiskInt13ExtensionsSupported(U32 DriveNumber)
{
REGS RegsIn;
REGS RegsOut;
DbgPrint((DPRINT_DISK, "DiskInt13ExtensionsSupported()\n"));
// IBM/MS INT 13 Extensions - INSTALLATION CHECK
// AH = 41h
// BX = 55AAh
// DL = drive (80h-FFh)
// Return:
// CF set on error (extensions not supported)
// AH = 01h (invalid function)
// CF clear if successful
// BX = AA55h if installed
// AH = major version of extensions
// 01h = 1.x
// 20h = 2.0 / EDD-1.0
// 21h = 2.1 / EDD-1.1
// 30h = EDD-3.0
// AL = internal use
// CX = API subset support bitmap
// DH = extension version (v2.0+ ??? -- not present in 1.x)
//
// Bitfields for IBM/MS INT 13 Extensions API support bitmap
// Bit 0, extended disk access functions (AH=42h-44h,47h,48h) supported
// Bit 1, removable drive controller functions (AH=45h,46h,48h,49h,INT 15/AH=52h) supported
// Bit 2, enhanced disk drive (EDD) functions (AH=48h,AH=4Eh) supported
// extended drive parameter table is valid
// Bits 3-15 reserved
RegsIn.b.ah = 0x41;
RegsIn.w.bx = 0x55AA;
RegsIn.b.dl = DriveNumber;
// Reset the disk controller
Int386(0x13, &RegsIn, &RegsOut);
if (!INT386_SUCCESS(RegsOut))
{
// CF set on error (extensions not supported)
return FALSE;
}
if (RegsOut.w.bx != 0xAA55)
{
// BX = AA55h if installed
return FALSE;
}
// Note:
// The original check is too strict because some BIOSes report that
// extended disk access functions are not suported when booting
// from a CD (e.g. Phoenix BIOS v6.00PG). Argh!
#if 0
if (!(RegsOut.w.cx & 0x0001))
{
// CX = API subset support bitmap
// Bit 0, extended disk access functions (AH=42h-44h,47h,48h) supported
return FALSE;
}
#endif
// Use this relaxed check instead
if (RegsOut.w.cx == 0x0000)
{
// CX = API subset support bitmap
return FALSE;
}
return TRUE;
}
VOID DiskStopFloppyMotor(VOID)
{
WRITE_PORT_UCHAR((PUCHAR)0x3F2, 0);
}
BOOL DiskGetExtendedDriveParameters(U32 DriveNumber, PVOID Buffer, U16 BufferSize)
{
REGS RegsIn;
REGS RegsOut;
PU16 Ptr = (PU16)(BIOSCALLBUFFER);
DbgPrint((DPRINT_DISK, "DiskGetExtendedDriveParameters()\n"));
// Initialize transfer buffer
*Ptr = BufferSize;
// BIOS Int 13h, function 48h - Get drive parameters
// AH = 48h
// DL = drive (bit 7 set for hard disk)
// DS:SI = result buffer
// Return:
// CF set on error
// AH = status (07h)
// CF clear if successful
// AH = 00h
// DS:SI -> result buffer
RegsIn.b.ah = 0x48;
RegsIn.b.dl = DriveNumber;
RegsIn.x.ds = BIOSCALLBUFSEGMENT; // DS:SI -> result buffer
RegsIn.w.si = BIOSCALLBUFOFFSET;
// Get drive parameters
Int386(0x13, &RegsIn, &RegsOut);
if (!INT386_SUCCESS(RegsOut))
{
return FALSE;
}
memcpy(Buffer, Ptr, BufferSize);
return TRUE;
}
#endif // defined __i386__

View File

@@ -1,62 +0,0 @@
/* $Id: machpc.h,v 1.7 2004/11/28 22:42:40 gvg Exp $
*
* FreeLoader
*
* Copyright (C) 2003 Eric Kohl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __I386_MACHPC_H_
#define __I386_MACHPC_H_
#ifndef __MEMORY_H
#include "mm.h"
#endif
VOID PcMachInit(VOID);
VOID PcConsPutChar(int Ch);
BOOL PcConsKbHit();
int PcConsGetCh();
VOID PcVideoClearScreen(U8 Attr);
VIDEODISPLAYMODE PcVideoSetDisplayMode(char *DisplayMode, BOOL Init);
VOID PcVideoGetDisplaySize(PU32 Width, PU32 Height, PU32 Depth);
U32 PcVideoGetBufferSize(VOID);
VOID PcVideoSetTextCursorPosition(U32 X, U32 Y);
VOID PcVideoHideShowTextCursor(BOOL Show);
VOID PcVideoPutChar(int Ch, U8 Attr, unsigned X, unsigned Y);
VOID PcVideoCopyOffScreenBufferToVRAM(PVOID Buffer);
BOOL PcVideoIsPaletteFixed(VOID);
VOID PcVideoSetPaletteColor(U8 Color, U8 Red, U8 Green, U8 Blue);
VOID PcVideoGetPaletteColor(U8 Color, U8* Red, U8* Green, U8* Blue);
VOID PcVideoSync(VOID);
VOID PcVideoPrepareForReactOS(VOID);
U32 PcMemGetMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MaxMemoryMapSize);
BOOL PcDiskReadLogicalSectors(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer);
BOOL PcDiskGetPartitionEntry(U32 DriveNumber, U32 PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
BOOL PcDiskGetDriveGeometry(U32 DriveNumber, PGEOMETRY DriveGeometry);
U32 PcDiskGetCacheableBlockCount(U32 DriveNumber);
VOID PcRTCGetCurrentDateTime(PU32 Year, PU32 Month, PU32 Day, PU32 Hour, PU32 Minute, PU32 Second);
VOID PcHwDetect(VOID);
#endif /* __I386_MACHPC_H_ */
/* EOF */

View File

@@ -1,65 +0,0 @@
/* $Id: machxbox.h,v 1.7 2004/11/28 22:42:40 gvg Exp $
*
* FreeLoader
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __I386_MACHXBOX_H_
#define __I386_MACHXBOX_H_
#ifndef __MEMORY_H
#include "mm.h"
#endif
U8 XboxFont8x16[256 * 16];
VOID XboxMachInit(VOID);
VOID XboxConsPutChar(int Ch);
BOOL XboxConsKbHit();
int XboxConsGetCh();
VOID XboxVideoInit(VOID);
VOID XboxVideoClearScreen(U8 Attr);
VIDEODISPLAYMODE XboxVideoSetDisplayMode(char *DisplayModem, BOOL Init);
VOID XboxVideoGetDisplaySize(PU32 Width, PU32 Height, PU32 Depth);
U32 XboxVideoGetBufferSize(VOID);
VOID XboxVideoSetTextCursorPosition(U32 X, U32 Y);
VOID XboxVideoHideShowTextCursor(BOOL Show);
VOID XboxVideoPutChar(int Ch, U8 Attr, unsigned X, unsigned Y);
VOID XboxVideoCopyOffScreenBufferToVRAM(PVOID Buffer);
BOOL XboxVideoIsPaletteFixed(VOID);
VOID XboxVideoSetPaletteColor(U8 Color, U8 Red, U8 Green, U8 Blue);
VOID XboxVideoGetPaletteColor(U8 Color, U8* Red, U8* Green, U8* Blue);
VOID XboxVideoSync(VOID);
VOID XboxVideoPrepareForReactOS(VOID);
VOID XboxMemInit(VOID);
PVOID XboxMemReserveMemory(U32 MbToReserve);
U32 XboxMemGetMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MaxMemoryMapSize);
BOOL XboxDiskReadLogicalSectors(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer);
BOOL XboxDiskGetPartitionEntry(U32 DriveNumber, U32 PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
BOOL XboxDiskGetDriveGeometry(U32 DriveNumber, PGEOMETRY DriveGeometry);
U32 XboxDiskGetCacheableBlockCount(U32 DriveNumber);
VOID XboxRTCGetCurrentDateTime(PU32 Year, PU32 Month, PU32 Day, PU32 Hour, PU32 Minute, PU32 Second);
VOID XboxHwDetect(VOID);
#endif /* __I386_HWXBOX_H_ */
/* EOF */

View File

@@ -1,153 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2002 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
.text
.code16
#define ASM
#include <arch.h>
#include <multiboot.h>
/*
* Here we assume the kernel is loaded at 1mb
* This boots the kernel
*/
.code32
EXTERN(_boot_reactos)
call _MachVideoPrepareForReactOS
call _multi_boot
// Should never get here
cli
bootloop:
hlt
jmp bootloop
/*
* After you have setup the _mb_header and _mb_info structures
* then call this routine to transfer control to the kernel.
*/
EXTERN(_multi_boot)
cli
/*
* Load the absolute address of the multiboot information structure
*/
movl $_mb_info,%ebx
/*
* Initalize eflags
*/
pushl $0
popfl
/*
* Load the multiboot magic value into eax
*/
movl $0x2badb002,%eax
/*
* Jump to start of 32 bit code at 0xc0000000 + 0x1000
*/
pushl $KERNEL_CS
pushl _mb_entry_addr
lretl
EXTERN(_mb_header)
_mb_magic:
.long 0 // unsigned long magic;
_mb_flags:
.long 0 // unsigned long flags;
_mb_checksum:
.long 0 // unsigned long checksum;
_mb_header_addr:
.long 0 // unsigned long header_addr;
_mb_load_addr:
.long 0 // unsigned long load_addr;
_mb_load_end_addr:
.long 0 // unsigned long load_end_addr;
_mb_bss_end_addr:
.long 0 // unsigned long bss_end_addr;
_mb_entry_addr:
.long 0 // unsigned long entry_addr;
//
// Boot information structure
//
EXTERN(_mb_info)
_multiboot_flags:
.long 0
_multiboot_mem_lower:
.long 0
_multiboot_mem_upper:
.long 0
_multiboot_boot_device:
.long 0
_multiboot_cmdline:
.long 0
_multiboot_mods_count:
.long 0
_multiboot_mods_addr:
.long 0
_multiboot_syms:
.rept 12
.byte 0
.endr
_multiboot_mmap_length:
.long 0
_multiboot_mmap_addr:
.long 0
_multiboot_drives_count:
.long 0
_multiboot_drives_addr:
.long 0
_multiboot_config_table:
.long 0
_multiboot_boot_loader_name:
.long 0
_multiboot_apm_table:
.long 0
EXTERN(_multiboot_modules)
.rept (64 * /*multiboot_module_size*/ 16)
.byte 0
.endr
EXTERN(_multiboot_module_strings)
.rept (64*256)
.byte 0
.endr
EXTERN(_multiboot_memory_map_descriptor_size)
.long 0
EXTERN(_multiboot_memory_map)
.rept (32 * /*sizeof(memory_map_t)*/24)
.byte 0
.endr
EXTERN(_multiboot_kernel_cmdline)
.rept 255
.byte 0
.endr

View File

@@ -1,183 +0,0 @@
/* $Id: portio.c,v 1.1 2003/01/19 01:03:58 bpalmer Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/hal/x86/portio.c
* PURPOSE: Port I/O functions
* PROGRAMMER: Eric Kohl (ekohl@abo.rhein-zeitung.de)
* UPDATE HISTORY:
* Created 18/10/99
*/
//#include <ddk/ntddk.h>
#include <freeldr.h>
/* FUNCTIONS ****************************************************************/
/*
* This file contains the definitions for the x86 IO instructions
* inb/inw/inl/outb/outw/outl and the "string versions" of the same
* (insb/insw/insl/outsb/outsw/outsl). You can also use "pausing"
* versions of the single-IO instructions (inb_p/inw_p/..).
*
* This file is not meant to be obfuscating: it's just complicated
* to (a) handle it all in a way that makes gcc able to optimize it
* as well as possible and (b) trying to avoid writing the same thing
* over and over again with slight variations and possibly making a
* mistake somewhere.
*/
/*
* Thanks to James van Artsdalen for a better timing-fix than
* the two short jumps: using outb's to a nonexistent port seems
* to guarantee better timings even on fast machines.
*
* On the other hand, I'd like to be sure of a non-existent port:
* I feel a bit unsafe about using 0x80 (should be safe, though)
*
* Linus
*/
#ifdef SLOW_IO_BY_JUMPING
#define __SLOW_DOWN_IO __asm__ __volatile__("jmp 1f\n1:\tjmp 1f\n1:")
#else
#define __SLOW_DOWN_IO __asm__ __volatile__("outb %al,$0x80")
#endif
#ifdef REALLY_SLOW_IO
#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
#else
#define SLOW_DOWN_IO __SLOW_DOWN_IO
#endif
VOID /*STDCALL*/
READ_PORT_BUFFER_UCHAR (PUCHAR Port,
PUCHAR Buffer,
U32 Count)
{
__asm__ __volatile__ ("cld ; rep ; insb\n\t"
: "=D" (Buffer), "=c" (Count)
: "d" (Port),"0" (Buffer),"1" (Count));
}
VOID /*STDCALL*/
READ_PORT_BUFFER_USHORT (U16* Port,
U16* Buffer,
U32 Count)
{
__asm__ __volatile__ ("cld ; rep ; insw"
: "=D" (Buffer), "=c" (Count)
: "d" (Port),"0" (Buffer),"1" (Count));
}
VOID /*STDCALL*/
READ_PORT_BUFFER_ULONG (U32* Port,
U32* Buffer,
U32 Count)
{
__asm__ __volatile__ ("cld ; rep ; insl"
: "=D" (Buffer), "=c" (Count)
: "d" (Port),"0" (Buffer),"1" (Count));
}
UCHAR /*STDCALL*/
READ_PORT_UCHAR (PUCHAR Port)
{
UCHAR Value;
__asm__("inb %w1, %0\n\t"
: "=a" (Value)
: "d" (Port));
SLOW_DOWN_IO;
return(Value);
}
U16 /*STDCALL*/
READ_PORT_USHORT (U16* Port)
{
U16 Value;
__asm__("inw %w1, %0\n\t"
: "=a" (Value)
: "d" (Port));
SLOW_DOWN_IO;
return(Value);
}
U32 /*STDCALL*/
READ_PORT_ULONG (U32* Port)
{
U32 Value;
__asm__("inl %w1, %0\n\t"
: "=a" (Value)
: "d" (Port));
SLOW_DOWN_IO;
return(Value);
}
VOID /*STDCALL*/
WRITE_PORT_BUFFER_UCHAR (PUCHAR Port,
PUCHAR Buffer,
U32 Count)
{
__asm__ __volatile__ ("cld ; rep ; outsb"
: "=S" (Buffer), "=c" (Count)
: "d" (Port),"0" (Buffer),"1" (Count));
}
VOID /*STDCALL*/
WRITE_PORT_BUFFER_USHORT (U16* Port,
U16* Buffer,
U32 Count)
{
__asm__ __volatile__ ("cld ; rep ; outsw"
: "=S" (Buffer), "=c" (Count)
: "d" (Port),"0" (Buffer),"1" (Count));
}
VOID /*STDCALL*/
WRITE_PORT_BUFFER_ULONG (U32* Port,
U32* Buffer,
U32 Count)
{
__asm__ __volatile__ ("cld ; rep ; outsl"
: "=S" (Buffer), "=c" (Count)
: "d" (Port),"0" (Buffer),"1" (Count));
}
VOID /*STDCALL*/
WRITE_PORT_UCHAR (PUCHAR Port,
UCHAR Value)
{
__asm__("outb %0, %w1\n\t"
:
: "a" (Value),
"d" (Port));
SLOW_DOWN_IO;
}
VOID /*STDCALL*/
WRITE_PORT_USHORT (U16* Port,
U16 Value)
{
__asm__("outw %0, %w1\n\t"
:
: "a" (Value),
"d" (Port));
SLOW_DOWN_IO;
}
VOID /*STDCALL*/
WRITE_PORT_ULONG (U32* Port,
U32 Value)
{
__asm__("outl %0, %w1\n\t"
:
: "a" (Value),
"d" (Port));
SLOW_DOWN_IO;
}
/* EOF */

View File

@@ -1,411 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <rtl.h>
#include <ui.h>
#include <options.h>
#include <miscboot.h>
#include <debug.h>
#include <disk.h>
#include <arch.h>
#include <inifile.h>
#include <linux.h>
#include <reactos.h>
#include <drivemap.h>
#include <machine.h>
UCHAR BootDrivePrompt[] = "Enter the boot drive.\n\nExamples:\nfd0 - first floppy drive\nhd0 - first hard drive\nhd1 - second hard drive\ncd0 - first CD-ROM drive.\n\nBIOS drive numbers may also be used:\n0 - first floppy drive\n0x80 - first hard drive\n0x81 - second hard drive";
UCHAR BootPartitionPrompt[] = "Enter the boot partition.\n\nEnter 0 for the active (bootable) partition.";
UCHAR BootSectorFilePrompt[] = "Enter the boot sector file path.\n\nExamples:\n\\BOOTSECT.DOS\n/boot/bootsect.dos";
UCHAR LinuxKernelPrompt[] = "Enter the Linux kernel image path.\n\nExamples:\n/vmlinuz\n/boot/vmlinuz-2.4.18";
UCHAR LinuxInitrdPrompt[] = "Enter the initrd image path.\n\nExamples:\n/initrd.gz\n/boot/root.img.gz\n\nLeave blank for no initial ram disk.";
UCHAR LinuxCommandLinePrompt[] = "Enter the Linux kernel command line.\n\nExamples:\nroot=/dev/hda1\nroot=/dev/fd0 read-only\nroot=/dev/sdb1 init=/sbin/init";
UCHAR ReactOSSystemPathPrompt[] = "Enter the path to your ReactOS system directory.\n\nExamples:\n\\REACTOS\n\\ROS";
UCHAR ReactOSOptionsPrompt[] = "Enter the options you want passed to the kernel.\n\nExamples:\n/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200\n/FASTDETECT /SOS /NOGUIBOOT\n/BASEVIDEO /MAXMEM=64\n/KERNEL=NTKRNLMP.EXE /HAL=HALMPS.DLL";
UCHAR CustomBootPrompt[] = "Press ENTER to boot your custom boot setup.";
VOID OptionMenuCustomBoot(VOID)
{
PUCHAR CustomBootMenuList[] = { "Disk", "Partition", "Boot Sector File", "ReactOS", "Linux" };
U32 CustomBootMenuCount = sizeof(CustomBootMenuList) / sizeof(CustomBootMenuList[0]);
U32 SelectedMenuItem;
if (!UiDisplayMenu(CustomBootMenuList, CustomBootMenuCount, 0, -1, &SelectedMenuItem, TRUE, NULL))
{
// The user pressed ESC
return;
}
switch (SelectedMenuItem)
{
case 0: // Disk
OptionMenuCustomBootDisk();
break;
case 1: // Partition
OptionMenuCustomBootPartition();
break;
case 2: // Boot Sector File
OptionMenuCustomBootBootSectorFile();
break;
case 3: // ReactOS
OptionMenuCustomBootReactOS();
break;
case 4: // Linux
OptionMenuCustomBootLinux();
break;
}
}
VOID OptionMenuCustomBootDisk(VOID)
{
UCHAR SectionName[100];
UCHAR BootDriveString[20];
U32 SectionId;
U32 Year, Month, Day, Hour, Minute, Second;
RtlZeroMemory(SectionName, sizeof(SectionName));
RtlZeroMemory(BootDriveString, sizeof(BootDriveString));
if (!UiEditBox(BootDrivePrompt, BootDriveString, 20))
{
return;
}
// Generate a unique section name
MachRTCGetCurrentDateTime(&Year, &Month, &Day, &Hour, &Minute, &Second);
sprintf(SectionName, "CustomBootDisk%d%d%d%d%d%d", Year, Day, Month, Hour, Minute, Second);
// Add the section
if (!IniAddSection(SectionName, &SectionId))
{
return;
}
// Add the BootType
if (!IniAddSettingValueToSection(SectionId, "BootType", "Drive"))
{
return;
}
// Add the BootDrive
if (!IniAddSettingValueToSection(SectionId, "BootDrive", BootDriveString))
{
return;
}
UiMessageBox(CustomBootPrompt);
LoadAndBootDrive(SectionName);
}
VOID OptionMenuCustomBootPartition(VOID)
{
UCHAR SectionName[100];
UCHAR BootDriveString[20];
UCHAR BootPartitionString[20];
U32 SectionId;
U32 Year, Month, Day, Hour, Minute, Second;
RtlZeroMemory(SectionName, sizeof(SectionName));
RtlZeroMemory(BootDriveString, sizeof(BootDriveString));
RtlZeroMemory(BootPartitionString, sizeof(BootPartitionString));
if (!UiEditBox(BootDrivePrompt, BootDriveString, 20))
{
return;
}
if (!UiEditBox(BootPartitionPrompt, BootPartitionString, 20))
{
return;
}
// Generate a unique section name
MachRTCGetCurrentDateTime(&Year, &Month, &Day, &Hour, &Minute, &Second);
sprintf(SectionName, "CustomBootPartition%d%d%d%d%d%d", Year, Day, Month, Hour, Minute, Second);
// Add the section
if (!IniAddSection(SectionName, &SectionId))
{
return;
}
// Add the BootType
if (!IniAddSettingValueToSection(SectionId, "BootType", "Partition"))
{
return;
}
// Add the BootDrive
if (!IniAddSettingValueToSection(SectionId, "BootDrive", BootDriveString))
{
return;
}
// Add the BootPartition
if (!IniAddSettingValueToSection(SectionId, "BootPartition", BootPartitionString))
{
return;
}
UiMessageBox(CustomBootPrompt);
LoadAndBootPartition(SectionName);
}
VOID OptionMenuCustomBootBootSectorFile(VOID)
{
UCHAR SectionName[100];
UCHAR BootDriveString[20];
UCHAR BootPartitionString[20];
UCHAR BootSectorFileString[200];
U32 SectionId;
U32 Year, Month, Day, Hour, Minute, Second;
RtlZeroMemory(SectionName, sizeof(SectionName));
RtlZeroMemory(BootDriveString, sizeof(BootDriveString));
RtlZeroMemory(BootPartitionString, sizeof(BootPartitionString));
RtlZeroMemory(BootSectorFileString, sizeof(BootSectorFileString));
if (!UiEditBox(BootDrivePrompt, BootDriveString, 20))
{
return;
}
if (!UiEditBox(BootPartitionPrompt, BootPartitionString, 20))
{
return;
}
if (!UiEditBox(BootSectorFilePrompt, BootSectorFileString, 200))
{
return;
}
// Generate a unique section name
MachRTCGetCurrentDateTime(&Year, &Month, &Day, &Hour, &Minute, &Second);
sprintf(SectionName, "CustomBootSectorFile%d%d%d%d%d%d", Year, Day, Month, Hour, Minute, Second);
// Add the section
if (!IniAddSection(SectionName, &SectionId))
{
return;
}
// Add the BootType
if (!IniAddSettingValueToSection(SectionId, "BootType", "BootSector"))
{
return;
}
// Add the BootDrive
if (!IniAddSettingValueToSection(SectionId, "BootDrive", BootDriveString))
{
return;
}
// Add the BootPartition
if (!IniAddSettingValueToSection(SectionId, "BootPartition", BootPartitionString))
{
return;
}
// Add the BootSectorFile
if (!IniAddSettingValueToSection(SectionId, "BootSectorFile", BootSectorFileString))
{
return;
}
UiMessageBox(CustomBootPrompt);
LoadAndBootBootSector(SectionName);
}
VOID OptionMenuCustomBootReactOS(VOID)
{
UCHAR SectionName[100];
UCHAR BootDriveString[20];
UCHAR BootPartitionString[20];
UCHAR ReactOSSystemPath[200];
UCHAR ReactOSARCPath[200];
UCHAR ReactOSOptions[200];
U32 SectionId;
U32 Year, Month, Day, Hour, Minute, Second;
RtlZeroMemory(SectionName, sizeof(SectionName));
RtlZeroMemory(BootDriveString, sizeof(BootDriveString));
RtlZeroMemory(BootPartitionString, sizeof(BootPartitionString));
RtlZeroMemory(ReactOSSystemPath, sizeof(ReactOSSystemPath));
RtlZeroMemory(ReactOSOptions, sizeof(ReactOSOptions));
if (!UiEditBox(BootDrivePrompt, BootDriveString, 20))
{
return;
}
if (!UiEditBox(BootPartitionPrompt, BootPartitionString, 20))
{
return;
}
if (!UiEditBox(ReactOSSystemPathPrompt, ReactOSSystemPath, 200))
{
return;
}
if (!UiEditBox(ReactOSOptionsPrompt, ReactOSOptions, 200))
{
return;
}
// Generate a unique section name
MachRTCGetCurrentDateTime(&Year, &Month, &Day, &Hour, &Minute, &Second);
sprintf(SectionName, "CustomReactOS%d%d%d%d%d%d", Year, Day, Month, Hour, Minute, Second);
// Add the section
if (!IniAddSection(SectionName, &SectionId))
{
return;
}
// Add the BootType
if (!IniAddSettingValueToSection(SectionId, "BootType", "ReactOS"))
{
return;
}
// Construct the ReactOS ARC system path
ConstructArcPath(ReactOSARCPath, ReactOSSystemPath, DriveMapGetBiosDriveNumber(BootDriveString), atoi(BootPartitionString));
// Add the system path
if (!IniAddSettingValueToSection(SectionId, "SystemPath", ReactOSARCPath))
{
return;
}
// Add the CommandLine
if (!IniAddSettingValueToSection(SectionId, "Options", ReactOSOptions))
{
return;
}
UiMessageBox(CustomBootPrompt);
LoadAndBootReactOS(SectionName);
}
VOID OptionMenuCustomBootLinux(VOID)
{
UCHAR SectionName[100];
UCHAR BootDriveString[20];
UCHAR BootPartitionString[20];
UCHAR LinuxKernelString[200];
UCHAR LinuxInitrdString[200];
UCHAR LinuxCommandLineString[200];
U32 SectionId;
U32 Year, Month, Day, Hour, Minute, Second;
RtlZeroMemory(SectionName, sizeof(SectionName));
RtlZeroMemory(BootDriveString, sizeof(BootDriveString));
RtlZeroMemory(BootPartitionString, sizeof(BootPartitionString));
RtlZeroMemory(LinuxKernelString, sizeof(LinuxKernelString));
RtlZeroMemory(LinuxInitrdString, sizeof(LinuxInitrdString));
RtlZeroMemory(LinuxCommandLineString, sizeof(LinuxCommandLineString));
if (!UiEditBox(BootDrivePrompt, BootDriveString, 20))
{
return;
}
if (!UiEditBox(BootPartitionPrompt, BootPartitionString, 20))
{
return;
}
if (!UiEditBox(LinuxKernelPrompt, LinuxKernelString, 200))
{
return;
}
if (!UiEditBox(LinuxInitrdPrompt, LinuxInitrdString, 200))
{
return;
}
if (!UiEditBox(LinuxCommandLinePrompt, LinuxCommandLineString, 200))
{
return;
}
// Generate a unique section name
MachRTCGetCurrentDateTime(&Year, &Month, &Day, &Hour, &Minute, &Second);
sprintf(SectionName, "CustomLinux%d%d%d%d%d%d", Year, Day, Month, Hour, Minute, Second);
// Add the section
if (!IniAddSection(SectionName, &SectionId))
{
return;
}
// Add the BootType
if (!IniAddSettingValueToSection(SectionId, "BootType", "Linux"))
{
return;
}
// Add the BootDrive
if (!IniAddSettingValueToSection(SectionId, "BootDrive", BootDriveString))
{
return;
}
// Add the BootPartition
if (!IniAddSettingValueToSection(SectionId, "BootPartition", BootPartitionString))
{
return;
}
// Add the Kernel
if (!IniAddSettingValueToSection(SectionId, "Kernel", LinuxKernelString))
{
return;
}
// Add the Initrd
if (strlen(LinuxInitrdString) > 0)
{
if (!IniAddSettingValueToSection(SectionId, "Initrd", LinuxInitrdString))
{
return;
}
}
// Add the CommandLine
if (!IniAddSettingValueToSection(SectionId, "CommandLine", LinuxCommandLineString))
{
return;
}
UiMessageBox(CustomBootPrompt);
LoadAndBootLinux(SectionName, "Custom Linux Setup");
}

View File

@@ -1,411 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <debug.h>
#include <rtl.h>
#include <comm.h>
#include <portio.h>
#include <machine.h>
#ifdef DEBUG
//#define DEBUG_ALL
//#define DEBUG_INIFILE
//#define DEBUG_REACTOS
//#define DEBUG_CUSTOM
#define DEBUG_NONE
#if defined (DEBUG_ALL)
U32 DebugPrintMask = DPRINT_WARNING | DPRINT_MEMORY | DPRINT_FILESYSTEM |
DPRINT_UI | DPRINT_DISK | DPRINT_CACHE | DPRINT_REACTOS |
DPRINT_LINUX;
#elif defined (DEBUG_INIFILE)
U32 DebugPrintMask = DPRINT_INIFILE;
#elif defined (DEBUG_REACTOS)
U32 DebugPrintMask = DPRINT_REACTOS | DPRINT_REGISTRY;
#elif defined (DEBUG_CUSTOM)
U32 DebugPrintMask = DPRINT_WARNING|DPRINT_FILESYSTEM|DPRINT_MEMORY|DPRINT_LINUX;
#else //#elif defined (DEBUG_NONE)
U32 DebugPrintMask = 0;
#endif
#define SCREEN 0
#define RS232 1
#define BOCHS 2
#define COM1 1
#define COM2 2
#define COM3 3
#define COM4 4
#define BOCHS_OUTPUT_PORT 0xe9
U32 DebugPort = RS232;
//U32 DebugPort = SCREEN;
//U32 DebugPort = BOCHS;
U32 ComPort = COM1;
//U32 BaudRate = 19200;
U32 BaudRate = 115200;
BOOL DebugStartOfLine = TRUE;
VOID DebugInit(VOID)
{
if (DebugPort == RS232)
{
Rs232PortInitialize(ComPort, BaudRate);
}
}
VOID DebugPrintChar(UCHAR Character)
{
if (Character == '\n')
{
DebugStartOfLine = TRUE;
}
if (DebugPort == RS232)
{
if (Character == '\n')
{
Rs232PortPutByte('\r');
}
Rs232PortPutByte(Character);
}
else if (DebugPort == BOCHS)
{
WRITE_PORT_UCHAR((PUCHAR)BOCHS_OUTPUT_PORT, Character);
}
else
{
MachConsPutChar(Character);
}
}
VOID DebugPrintHeader(U32 Mask)
{
/* No header */
if (Mask == 0)
return;
switch (Mask)
{
case DPRINT_WARNING:
DebugPrintChar('W');
DebugPrintChar('A');
DebugPrintChar('R');
DebugPrintChar('N');
DebugPrintChar('I');
DebugPrintChar('N');
DebugPrintChar('G');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_MEMORY:
DebugPrintChar('M');
DebugPrintChar('E');
DebugPrintChar('M');
DebugPrintChar('O');
DebugPrintChar('R');
DebugPrintChar('Y');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_FILESYSTEM:
DebugPrintChar('F');
DebugPrintChar('I');
DebugPrintChar('L');
DebugPrintChar('E');
DebugPrintChar('S');
DebugPrintChar('Y');
DebugPrintChar('S');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_INIFILE:
DebugPrintChar('I');
DebugPrintChar('N');
DebugPrintChar('I');
DebugPrintChar('F');
DebugPrintChar('I');
DebugPrintChar('L');
DebugPrintChar('E');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_UI:
DebugPrintChar('U');
DebugPrintChar('I');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_DISK:
DebugPrintChar('D');
DebugPrintChar('I');
DebugPrintChar('S');
DebugPrintChar('K');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_CACHE:
DebugPrintChar('C');
DebugPrintChar('A');
DebugPrintChar('C');
DebugPrintChar('H');
DebugPrintChar('E');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_REGISTRY:
DebugPrintChar('R');
DebugPrintChar('E');
DebugPrintChar('G');
DebugPrintChar('I');
DebugPrintChar('S');
DebugPrintChar('T');
DebugPrintChar('R');
DebugPrintChar('Y');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_REACTOS:
DebugPrintChar('R');
DebugPrintChar('E');
DebugPrintChar('A');
DebugPrintChar('C');
DebugPrintChar('T');
DebugPrintChar('O');
DebugPrintChar('S');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_LINUX:
DebugPrintChar('L');
DebugPrintChar('I');
DebugPrintChar('N');
DebugPrintChar('U');
DebugPrintChar('X');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
case DPRINT_HWDETECT:
DebugPrintChar('H');
DebugPrintChar('W');
DebugPrintChar('D');
DebugPrintChar('E');
DebugPrintChar('T');
DebugPrintChar('E');
DebugPrintChar('C');
DebugPrintChar('T');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
default:
DebugPrintChar('U');
DebugPrintChar('N');
DebugPrintChar('K');
DebugPrintChar('N');
DebugPrintChar('O');
DebugPrintChar('W');
DebugPrintChar('N');
DebugPrintChar(':');
DebugPrintChar(' ');
break;
}
}
static VOID DebugPrintV(char *format, int *dataptr)
{
char c, *ptr, str[16];
int ll;
ll = 0;
while ((c = *(format++)))
{
if (c != '%')
{
DebugPrintChar(c);
}
else
{
if (*format == 'I' && *(format+1) == '6' && *(format+2) == '4')
{
ll = 1;
format += 3;
}
else
{
ll = 0;
}
switch (c = *(format++))
{
case 'd': case 'u': case 'x':
if (ll)
{
*convert_i64_to_ascii(str, c, *((unsigned long long*) dataptr)) = 0;
dataptr += 2;
}
else
{
*convert_to_ascii(str, c, *((unsigned long *) dataptr++)) = 0;
}
ptr = str;
while (*ptr)
{
DebugPrintChar(*(ptr++));
}
break;
case 'c':
DebugPrintChar((*(dataptr++))&0xff);
break;
case 's':
ptr = (char *)(*(dataptr++));
while ((c = *(ptr++)))
{
DebugPrintChar(c);
}
break;
case '%':
DebugPrintChar(c);
break;
default:
DebugPrint(DPRINT_WARNING, "\nDebugPrint() invalid format specifier - %%%c\n", c);
break;
}
}
}
if (DebugPort == SCREEN)
{
//getch();
}
}
VOID DebugPrint(U32 Mask, char *format, ...)
{
int *dataptr = (int *) &format;
// Mask out unwanted debug messages
if (!(Mask & DebugPrintMask))
{
return;
}
// Print the header if we have started a new line
if (DebugStartOfLine)
{
DebugPrintHeader(Mask);
DebugStartOfLine = FALSE;
}
DebugPrintV(format, ++dataptr);
}
VOID DebugPrint1(char *format, ...)
{
int *dataptr = (int *) &format;
DebugPrintV(format, ++dataptr);
}
VOID DebugDumpBuffer(U32 Mask, PVOID Buffer, U32 Length)
{
PUCHAR BufPtr = (PUCHAR)Buffer;
U32 Idx;
U32 Idx2;
// Mask out unwanted debug messages
if (!(Mask & DebugPrintMask))
{
return;
}
DebugStartOfLine = FALSE; // We don't want line headers
DebugPrint(Mask, "Dumping buffer at 0x%x with length of %d bytes:\n", Buffer, Length);
for (Idx=0; Idx<Length; )
{
DebugStartOfLine = FALSE; // We don't want line headers
if (Idx < 0x0010)
{
DebugPrint(Mask, "000%x:\t", Idx);
}
else if (Idx < 0x0100)
{
DebugPrint(Mask, "00%x:\t", Idx);
}
else if (Idx < 0x1000)
{
DebugPrint(Mask, "0%x:\t", Idx);
}
else
{
DebugPrint(Mask, "%x:\t", Idx);
}
for (Idx2=0; Idx2<16; Idx2++,Idx++)
{
if (BufPtr[Idx] < 0x10)
{
DebugPrint(Mask, "0");
}
DebugPrint(Mask, "%x", BufPtr[Idx]);
if (Idx2 == 7)
{
DebugPrint(Mask, "-");
}
else
{
DebugPrint(Mask, " ");
}
}
Idx -= 16;
DebugPrint(Mask, " ");
for (Idx2=0; Idx2<16; Idx2++,Idx++)
{
if ((BufPtr[Idx] > 20) && (BufPtr[Idx] < 0x80))
{
DebugPrint(Mask, "%c", BufPtr[Idx]);
}
else
{
DebugPrint(Mask, ".");
}
}
DebugPrint(Mask, "\n");
}
}
#endif // defined DEBUG

View File

@@ -1,697 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __EXT2_H
#define __EXT2_H
/*
* linux/include/linux/ext3_fs.h
*
* Copyright (C) 1992, 1993, 1994, 1995
* Remy Card (card@masi.ibp.fr)
* Laboratoire MASI - Institut Blaise Pascal
* Universite Pierre et Marie Curie (Paris VI)
*
* from
*
* linux/include/linux/minix_fs.h
*
* Copyright (C) 1991, 1992 Linus Torvalds
*/
#ifndef _LINUX_EXT3_FS_H
#define _LINUX_EXT3_FS_H
//#include <linux/types.h>
/*
* The second extended filesystem constants/structures
*/
/*
* Define EXT3FS_DEBUG to produce debug messages
*/
#undef EXT3FS_DEBUG
/*
* Define EXT3_PREALLOCATE to preallocate data blocks for expanding files
*/
#undef EXT3_PREALLOCATE /* @@@ Fix this! */
#define EXT3_DEFAULT_PREALLOC_BLOCKS 8
/*
* The second extended file system version
*/
#define EXT3FS_DATE "10 Jan 2002"
#define EXT3FS_VERSION "2.4-0.9.17"
/*
* Debug code
*/
#ifdef EXT3FS_DEBUG
#define ext3_debug(f, a...) \
do { \
printk (KERN_DEBUG "EXT3-fs DEBUG (%s, %d): %s:", \
__FILE__, __LINE__, __FUNCTION__); \
printk (KERN_DEBUG f, ## a); \
} while (0)
#else
#define ext3_debug(f, a...) do {} while (0)
#endif
/*
* Special inodes numbers
*/
#define EXT3_BAD_INO 1 /* Bad blocks inode */
#define EXT3_ROOT_INO 2 /* Root inode */
#define EXT3_ACL_IDX_INO 3 /* ACL inode */
#define EXT3_ACL_DATA_INO 4 /* ACL inode */
#define EXT3_BOOT_LOADER_INO 5 /* Boot loader inode */
#define EXT3_UNDEL_DIR_INO 6 /* Undelete directory inode */
#define EXT3_RESIZE_INO 7 /* Reserved group descriptors inode */
#define EXT3_JOURNAL_INO 8 /* Journal inode */
/* First non-reserved inode for old ext3 filesystems */
#define EXT3_GOOD_OLD_FIRST_INO 11
/*
* The second extended file system magic number
*/
#define EXT3_SUPER_MAGIC 0xEF53
/*
* Maximal count of links to a file
*/
#define EXT3_LINK_MAX 32000
/*
* Macro-instructions used to manage several block sizes
*/
#define EXT3_MIN_BLOCK_SIZE 1024
#define EXT3_MAX_BLOCK_SIZE 4096
#define EXT3_MIN_BLOCK_LOG_SIZE 10
#ifdef __KERNEL__
# define EXT3_BLOCK_SIZE(s) ((s)->s_blocksize)
#else
# define EXT3_BLOCK_SIZE(s) (EXT3_MIN_BLOCK_SIZE << (s)->s_log_block_size)
#endif
#define EXT3_ACLE_PER_BLOCK(s) (EXT3_BLOCK_SIZE(s) / sizeof (struct ext3_acl_entry))
#define EXT3_ADDR_PER_BLOCK(s) (EXT3_BLOCK_SIZE(s) / sizeof (__u32))
#ifdef __KERNEL__
# define EXT3_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits)
#else
# define EXT3_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
#endif
#ifdef __KERNEL__
#define EXT3_ADDR_PER_BLOCK_BITS(s) ((s)->u.ext3_sb.s_addr_per_block_bits)
#define EXT3_INODE_SIZE(s) ((s)->u.ext3_sb.s_inode_size)
#define EXT3_FIRST_INO(s) ((s)->u.ext3_sb.s_first_ino)
#else
#define EXT3_INODE_SIZE(s) (((s)->s_rev_level == EXT3_GOOD_OLD_REV) ? \
EXT3_GOOD_OLD_INODE_SIZE : \
(s)->s_inode_size)
#define EXT3_FIRST_INO(s) (((s)->s_rev_level == EXT3_GOOD_OLD_REV) ? \
EXT3_GOOD_OLD_FIRST_INO : \
(s)->s_first_ino)
#endif
/*
* Macro-instructions used to manage fragments
*/
#define EXT3_MIN_FRAG_SIZE 1024
#define EXT3_MAX_FRAG_SIZE 4096
#define EXT3_MIN_FRAG_LOG_SIZE 10
#ifdef __KERNEL__
# define EXT3_FRAG_SIZE(s) ((s)->u.ext3_sb.s_frag_size)
# define EXT3_FRAGS_PER_BLOCK(s) ((s)->u.ext3_sb.s_frags_per_block)
#else
# define EXT3_FRAG_SIZE(s) (EXT3_MIN_FRAG_SIZE << (s)->s_log_frag_size)
# define EXT3_FRAGS_PER_BLOCK(s) (EXT3_BLOCK_SIZE(s) / EXT3_FRAG_SIZE(s))
#endif
/*
* ACL structures
*/
struct ext3_acl_header /* Header of Access Control Lists */
{
__u32 aclh_size;
__u32 aclh_file_count;
__u32 aclh_acle_count;
__u32 aclh_first_acle;
};
struct ext3_acl_entry /* Access Control List Entry */
{
__u32 acle_size;
__u16 acle_perms; /* Access permissions */
__u16 acle_type; /* Type of entry */
__u16 acle_tag; /* User or group identity */
__u16 acle_pad1;
__u32 acle_next; /* Pointer on next entry for the */
/* same inode or on next free entry */
};
/*
* Structure of a blocks group descriptor
*/
struct ext3_group_desc
{
__u32 bg_block_bitmap; /* Blocks bitmap block */
__u32 bg_inode_bitmap; /* Inodes bitmap block */
__u32 bg_inode_table; /* Inodes table block */
__u16 bg_free_blocks_count; /* Free blocks count */
__u16 bg_free_inodes_count; /* Free inodes count */
__u16 bg_used_dirs_count; /* Directories count */
__u16 bg_pad;
__u32 bg_reserved[3];
};
/*
* Macro-instructions used to manage group descriptors
*/
#ifdef __KERNEL__
# define EXT3_BLOCKS_PER_GROUP(s) ((s)->u.ext3_sb.s_blocks_per_group)
# define EXT3_DESC_PER_BLOCK(s) ((s)->u.ext3_sb.s_desc_per_block)
# define EXT3_INODES_PER_GROUP(s) ((s)->u.ext3_sb.s_inodes_per_group)
# define EXT3_DESC_PER_BLOCK_BITS(s) ((s)->u.ext3_sb.s_desc_per_block_bits)
#else
# define EXT3_BLOCKS_PER_GROUP(s) ((s)->s_blocks_per_group)
# define EXT3_DESC_PER_BLOCK(s) (EXT3_BLOCK_SIZE(s) / sizeof (struct ext3_group_desc))
# define EXT3_INODES_PER_GROUP(s) ((s)->s_inodes_per_group)
#endif
/*
* Constants relative to the data blocks
*/
#define EXT3_NDIR_BLOCKS 12
#define EXT3_IND_BLOCK EXT3_NDIR_BLOCKS
#define EXT3_DIND_BLOCK (EXT3_IND_BLOCK + 1)
#define EXT3_TIND_BLOCK (EXT3_DIND_BLOCK + 1)
#define EXT3_N_BLOCKS (EXT3_TIND_BLOCK + 1)
/*
* Inode flags
*/
#define EXT3_SECRM_FL 0x00000001 /* Secure deletion */
#define EXT3_UNRM_FL 0x00000002 /* Undelete */
#define EXT3_COMPR_FL 0x00000004 /* Compress file */
#define EXT3_SYNC_FL 0x00000008 /* Synchronous updates */
#define EXT3_IMMUTABLE_FL 0x00000010 /* Immutable file */
#define EXT3_APPEND_FL 0x00000020 /* writes to file may only append */
#define EXT3_NODUMP_FL 0x00000040 /* do not dump file */
#define EXT3_NOATIME_FL 0x00000080 /* do not update atime */
/* Reserved for compression usage... */
#define EXT3_DIRTY_FL 0x00000100
#define EXT3_COMPRBLK_FL 0x00000200 /* One or more compressed clusters */
#define EXT3_NOCOMPR_FL 0x00000400 /* Don't compress */
#define EXT3_ECOMPR_FL 0x00000800 /* Compression error */
/* End compression flags --- maybe not all used */
#define EXT3_INDEX_FL 0x00001000 /* hash-indexed directory */
#define EXT3_IMAGIC_FL 0x00002000 /* AFS directory */
#define EXT3_JOURNAL_DATA_FL 0x00004000 /* file data should be journaled */
#define EXT3_RESERVED_FL 0x80000000 /* reserved for ext3 lib */
#define EXT3_FL_USER_VISIBLE 0x00005FFF /* User visible flags */
#define EXT3_FL_USER_MODIFIABLE 0x000000FF /* User modifiable flags */
/*
* Inode dynamic state flags
*/
#define EXT3_STATE_JDATA 0x00000001 /* journaled data exists */
#define EXT3_STATE_NEW 0x00000002 /* inode is newly created */
/*
* ioctl commands
*/
#define EXT3_IOC_GETFLAGS _IOR('f', 1, long)
#define EXT3_IOC_SETFLAGS _IOW('f', 2, long)
#define EXT3_IOC_GETVERSION _IOR('f', 3, long)
#define EXT3_IOC_SETVERSION _IOW('f', 4, long)
#define EXT3_IOC_GETVERSION_OLD _IOR('v', 1, long)
#define EXT3_IOC_SETVERSION_OLD _IOW('v', 2, long)
#ifdef CONFIG_JBD_DEBUG
#define EXT3_IOC_WAIT_FOR_READONLY _IOR('f', 99, long)
#endif
/*
* Structure of an inode on the disk
*/
struct ext3_inode {
__u16 i_mode; /* File mode */
__u16 i_uid; /* Low 16 bits of Owner Uid */
__u32 i_size; /* Size in bytes */
__u32 i_atime; /* Access time */
__u32 i_ctime; /* Creation time */
__u32 i_mtime; /* Modification time */
__u32 i_dtime; /* Deletion Time */
__u16 i_gid; /* Low 16 bits of Group Id */
__u16 i_links_count; /* Links count */
__u32 i_blocks; /* Blocks count */
__u32 i_flags; /* File flags */
union {
struct {
__u32 l_i_reserved1;
} linux1;
struct {
__u32 h_i_translator;
} hurd1;
struct {
__u32 m_i_reserved1;
} masix1;
} osd1; /* OS dependent 1 */
__u32 i_block[EXT3_N_BLOCKS];/* Pointers to blocks */
__u32 i_generation; /* File version (for NFS) */
__u32 i_file_acl; /* File ACL */
__u32 i_dir_acl; /* Directory ACL */
__u32 i_faddr; /* Fragment address */
union {
struct {
__u8 l_i_frag; /* Fragment number */
__u8 l_i_fsize; /* Fragment size */
__u16 i_pad1;
__u16 l_i_uid_high; /* these 2 fields */
__u16 l_i_gid_high; /* were reserved2[0] */
__u32 l_i_reserved2;
} linux2;
struct {
__u8 h_i_frag; /* Fragment number */
__u8 h_i_fsize; /* Fragment size */
__u16 h_i_mode_high;
__u16 h_i_uid_high;
__u16 h_i_gid_high;
__u32 h_i_author;
} hurd2;
struct {
__u8 m_i_frag; /* Fragment number */
__u8 m_i_fsize; /* Fragment size */
__u16 m_pad1;
__u32 m_i_reserved2[2];
} masix2;
} osd2; /* OS dependent 2 */
};
#define i_size_high i_dir_acl
#if defined(__KERNEL__) || defined(__linux__)
#define i_reserved1 osd1.linux1.l_i_reserved1
#define i_frag osd2.linux2.l_i_frag
#define i_fsize osd2.linux2.l_i_fsize
#define i_uid_low i_uid
#define i_gid_low i_gid
#define i_uid_high osd2.linux2.l_i_uid_high
#define i_gid_high osd2.linux2.l_i_gid_high
#define i_reserved2 osd2.linux2.l_i_reserved2
#elif defined(__GNU__)
#define i_translator osd1.hurd1.h_i_translator
#define i_frag osd2.hurd2.h_i_frag;
#define i_fsize osd2.hurd2.h_i_fsize;
#define i_uid_high osd2.hurd2.h_i_uid_high
#define i_gid_high osd2.hurd2.h_i_gid_high
#define i_author osd2.hurd2.h_i_author
#elif defined(__masix__)
#define i_reserved1 osd1.masix1.m_i_reserved1
#define i_frag osd2.masix2.m_i_frag
#define i_fsize osd2.masix2.m_i_fsize
#define i_reserved2 osd2.masix2.m_i_reserved2
#endif /* defined(__KERNEL__) || defined(__linux__) */
/*
* File system states
*/
#define EXT3_VALID_FS 0x0001 /* Unmounted cleanly */
#define EXT3_ERROR_FS 0x0002 /* Errors detected */
#define EXT3_ORPHAN_FS 0x0004 /* Orphans being recovered */
/*
* Mount flags
*/
#define EXT3_MOUNT_CHECK 0x0001 /* Do mount-time checks */
#define EXT3_MOUNT_GRPID 0x0004 /* Create files with directory's group */
#define EXT3_MOUNT_DEBUG 0x0008 /* Some debugging messages */
#define EXT3_MOUNT_ERRORS_CONT 0x0010 /* Continue on errors */
#define EXT3_MOUNT_ERRORS_RO 0x0020 /* Remount fs ro on errors */
#define EXT3_MOUNT_ERRORS_PANIC 0x0040 /* Panic on errors */
#define EXT3_MOUNT_MINIX_DF 0x0080 /* Mimics the Minix statfs */
#define EXT3_MOUNT_NOLOAD 0x0100 /* Don't use existing journal*/
#define EXT3_MOUNT_ABORT 0x0200 /* Fatal error detected */
#define EXT3_MOUNT_DATA_FLAGS 0x0C00 /* Mode for data writes: */
#define EXT3_MOUNT_JOURNAL_DATA 0x0400 /* Write data to journal */
#define EXT3_MOUNT_ORDERED_DATA 0x0800 /* Flush data before commit */
#define EXT3_MOUNT_WRITEBACK_DATA 0x0C00 /* No data ordering */
#define EXT3_MOUNT_UPDATE_JOURNAL 0x1000 /* Update the journal format */
#define EXT3_MOUNT_NO_UID32 0x2000 /* Disable 32-bit UIDs */
/* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
#ifndef _LINUX_EXT2_FS_H
#define clear_opt(o, opt) o &= ~EXT3_MOUNT_##opt
#define set_opt(o, opt) o |= EXT3_MOUNT_##opt
#define test_opt(sb, opt) ((sb)->u.ext3_sb.s_mount_opt & \
EXT3_MOUNT_##opt)
#else
#define EXT2_MOUNT_NOLOAD EXT3_MOUNT_NOLOAD
#define EXT2_MOUNT_ABORT EXT3_MOUNT_ABORT
#endif
#define ext3_set_bit ext2_set_bit
#define ext3_clear_bit ext2_clear_bit
#define ext3_test_bit ext2_test_bit
#define ext3_find_first_zero_bit ext2_find_first_zero_bit
#define ext3_find_next_zero_bit ext2_find_next_zero_bit
/*
* Maximal mount counts between two filesystem checks
*/
#define EXT3_DFL_MAX_MNT_COUNT 20 /* Allow 20 mounts */
#define EXT3_DFL_CHECKINTERVAL 0 /* Don't use interval check */
/*
* Behaviour when detecting errors
*/
#define EXT3_ERRORS_CONTINUE 1 /* Continue execution */
#define EXT3_ERRORS_RO 2 /* Remount fs read-only */
#define EXT3_ERRORS_PANIC 3 /* Panic */
#define EXT3_ERRORS_DEFAULT EXT3_ERRORS_CONTINUE
/*
* Structure of the super block
*/
struct ext3_super_block {
/*00*/ __u32 s_inodes_count; /* Inodes count */
__u32 s_blocks_count; /* Blocks count */
__u32 s_r_blocks_count; /* Reserved blocks count */
__u32 s_free_blocks_count; /* Free blocks count */
/*10*/ __u32 s_free_inodes_count; /* Free inodes count */
__u32 s_first_data_block; /* First Data Block */
__u32 s_log_block_size; /* Block size */
__s32 s_log_frag_size; /* Fragment size */
/*20*/ __u32 s_blocks_per_group; /* # Blocks per group */
__u32 s_frags_per_group; /* # Fragments per group */
__u32 s_inodes_per_group; /* # Inodes per group */
__u32 s_mtime; /* Mount time */
/*30*/ __u32 s_wtime; /* Write time */
__u16 s_mnt_count; /* Mount count */
__s16 s_max_mnt_count; /* Maximal mount count */
__u16 s_magic; /* Magic signature */
__u16 s_state; /* File system state */
__u16 s_errors; /* Behaviour when detecting errors */
__u16 s_minor_rev_level; /* minor revision level */
/*40*/ __u32 s_lastcheck; /* time of last check */
__u32 s_checkinterval; /* max. time between checks */
__u32 s_creator_os; /* OS */
__u32 s_rev_level; /* Revision level */
/*50*/ __u16 s_def_resuid; /* Default uid for reserved blocks */
__u16 s_def_resgid; /* Default gid for reserved blocks */
/*
* These fields are for EXT3_DYNAMIC_REV superblocks only.
*
* Note: the difference between the compatible feature set and
* the incompatible feature set is that if there is a bit set
* in the incompatible feature set that the kernel doesn't
* know about, it should refuse to mount the filesystem.
*
* e2fsck's requirements are more strict; if it doesn't know
* about a feature in either the compatible or incompatible
* feature set, it must abort and not try to meddle with
* things it doesn't understand...
*/
__u32 s_first_ino; /* First non-reserved inode */
__u16 s_inode_size; /* size of inode structure */
__u16 s_block_group_nr; /* block group # of this superblock */
__u32 s_feature_compat; /* compatible feature set */
/*60*/ __u32 s_feature_incompat; /* incompatible feature set */
__u32 s_feature_ro_compat; /* readonly-compatible feature set */
/*68*/ __u8 s_uuid[16]; /* 128-bit uuid for volume */
/*78*/ char s_volume_name[16]; /* volume name */
/*88*/ char s_last_mounted[64]; /* directory where last mounted */
/*C8*/ __u32 s_algorithm_usage_bitmap; /* For compression */
/*
* Performance hints. Directory preallocation should only
* happen if the EXT3_FEATURE_COMPAT_DIR_PREALLOC flag is on.
*/
__u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
__u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
__u16 s_padding1;
/*
* Journaling support valid if EXT3_FEATURE_COMPAT_HAS_JOURNAL set.
*/
/*D0*/ __u8 s_journal_uuid[16]; /* uuid of journal superblock */
/*E0*/ __u32 s_journal_inum; /* inode number of journal file */
__u32 s_journal_dev; /* device number of journal file */
__u32 s_last_orphan; /* start of list of inodes to delete */
/*EC*/ __u32 s_reserved[197]; /* Padding to the end of the block */
};
#ifdef __KERNEL__
#define EXT3_SB(sb) (&((sb)->u.ext3_sb))
#define EXT3_I(inode) (&((inode)->u.ext3_i))
#else
/* Assume that user mode programs are passing in an ext3fs superblock, not
* a kernel struct super_block. This will allow us to call the feature-test
* macros from user land. */
#define EXT3_SB(sb) (sb)
#endif
#define NEXT_ORPHAN(inode) (inode)->u.ext3_i.i_dtime
/*
* Codes for operating systems
*/
#define EXT3_OS_LINUX 0
#define EXT3_OS_HURD 1
#define EXT3_OS_MASIX 2
#define EXT3_OS_FREEBSD 3
#define EXT3_OS_LITES 4
/*
* Revision levels
*/
#define EXT3_GOOD_OLD_REV 0 /* The good old (original) format */
#define EXT3_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
#define EXT3_CURRENT_REV EXT3_GOOD_OLD_REV
#define EXT3_MAX_SUPP_REV EXT3_DYNAMIC_REV
#define EXT3_GOOD_OLD_INODE_SIZE 128
/*
* Feature set definitions
*/
#define EXT3_HAS_COMPAT_FEATURE(sb,mask) \
( EXT3_SB(sb)->s_es->s_feature_compat & cpu_to_le32(mask) )
#define EXT3_HAS_RO_COMPAT_FEATURE(sb,mask) \
( EXT3_SB(sb)->s_es->s_feature_ro_compat & cpu_to_le32(mask) )
#define EXT3_HAS_INCOMPAT_FEATURE(sb,mask) \
( EXT3_SB(sb)->s_es->s_feature_incompat & cpu_to_le32(mask) )
#define EXT3_SET_COMPAT_FEATURE(sb,mask) \
EXT3_SB(sb)->s_es->s_feature_compat |= cpu_to_le32(mask)
#define EXT3_SET_RO_COMPAT_FEATURE(sb,mask) \
EXT3_SB(sb)->s_es->s_feature_ro_compat |= cpu_to_le32(mask)
#define EXT3_SET_INCOMPAT_FEATURE(sb,mask) \
EXT3_SB(sb)->s_es->s_feature_incompat |= cpu_to_le32(mask)
#define EXT3_CLEAR_COMPAT_FEATURE(sb,mask) \
EXT3_SB(sb)->s_es->s_feature_compat &= ~cpu_to_le32(mask)
#define EXT3_CLEAR_RO_COMPAT_FEATURE(sb,mask) \
EXT3_SB(sb)->s_es->s_feature_ro_compat &= ~cpu_to_le32(mask)
#define EXT3_CLEAR_INCOMPAT_FEATURE(sb,mask) \
EXT3_SB(sb)->s_es->s_feature_incompat &= ~cpu_to_le32(mask)
#define EXT3_FEATURE_COMPAT_DIR_PREALLOC 0x0001
#define EXT3_FEATURE_COMPAT_IMAGIC_INODES 0x0002
#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004
#define EXT3_FEATURE_COMPAT_EXT_ATTR 0x0008
#define EXT3_FEATURE_COMPAT_RESIZE_INODE 0x0010
#define EXT3_FEATURE_COMPAT_DIR_INDEX 0x0020
#define EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001
#define EXT3_FEATURE_RO_COMPAT_LARGE_FILE 0x0002
#define EXT3_FEATURE_RO_COMPAT_BTREE_DIR 0x0004
#define EXT3_FEATURE_INCOMPAT_COMPRESSION 0x0001
#define EXT3_FEATURE_INCOMPAT_FILETYPE 0x0002
#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */
#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */
#define EXT3_FEATURE_COMPAT_SUPP 0
/*#define EXT3_FEATURE_INCOMPAT_SUPP (EXT3_FEATURE_INCOMPAT_FILETYPE| \
EXT3_FEATURE_INCOMPAT_RECOVER)*/
#define EXT3_FEATURE_INCOMPAT_SUPP (EXT3_FEATURE_INCOMPAT_FILETYPE)
#define EXT3_FEATURE_RO_COMPAT_SUPP (EXT3_FEATURE_RO_COMPAT_SPARSE_SUPER| \
EXT3_FEATURE_RO_COMPAT_LARGE_FILE| \
EXT3_FEATURE_RO_COMPAT_BTREE_DIR)
/*
* Default values for user and/or group using reserved blocks
*/
#define EXT3_DEF_RESUID 0
#define EXT3_DEF_RESGID 0
/*
* Structure of a directory entry
*/
#define EXT3_NAME_LEN 255
struct ext3_dir_entry {
__u32 inode; /* Inode number */
__u16 rec_len; /* Directory entry length */
__u16 name_len; /* Name length */
char name[EXT3_NAME_LEN]; /* File name */
};
/*
* The new version of the directory entry. Since EXT3 structures are
* stored in intel byte order, and the name_len field could never be
* bigger than 255 chars, it's safe to reclaim the extra byte for the
* file_type field.
*/
struct ext3_dir_entry_2 {
__u32 inode; /* Inode number */
__u16 rec_len; /* Directory entry length */
__u8 name_len; /* Name length */
__u8 file_type;
char name[EXT3_NAME_LEN]; /* File name */
};
/*
* Ext3 directory file types. Only the low 3 bits are used. The
* other bits are reserved for now.
*/
#define EXT3_FT_UNKNOWN 0
#define EXT3_FT_REG_FILE 1
#define EXT3_FT_DIR 2
#define EXT3_FT_CHRDEV 3
#define EXT3_FT_BLKDEV 4
#define EXT3_FT_FIFO 5
#define EXT3_FT_SOCK 6
#define EXT3_FT_SYMLINK 7
#define EXT3_FT_MAX 8
/*
* EXT3_DIR_PAD defines the directory entries boundaries
*
* NOTE: It must be a multiple of 4
*/
#define EXT3_DIR_PAD 4
#define EXT3_DIR_ROUND (EXT3_DIR_PAD - 1)
#define EXT3_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT3_DIR_ROUND) & \
~EXT3_DIR_ROUND)
#ifdef __KERNEL__
/*
* Describe an inode's exact location on disk and in memory
*/
struct ext3_iloc
{
struct buffer_head *bh;
struct ext3_inode *raw_inode;
unsigned long block_group;
};
#endif /* __KERNEL__ */
#endif /* _LINUX_EXT3_FS_H */
typedef struct ext3_super_block EXT2_SUPER_BLOCK, *PEXT2_SUPER_BLOCK;
typedef struct ext3_inode EXT2_INODE, *PEXT2_INODE;
typedef struct ext3_group_desc EXT2_GROUP_DESC, *PEXT2_GROUP_DESC;
typedef struct ext3_dir_entry_2 EXT2_DIR_ENTRY, *PEXT2_DIR_ENTRY;
// EXT2_INODE::i_mode values
#define EXT2_S_IRWXO 0x0007 // Other mask
#define EXT2_S_IXOTH 0x0001 // ---------x execute
#define EXT2_S_IWOTH 0x0002 // --------w- write
#define EXT2_S_IROTH 0x0004 // -------r-- read
#define EXT2_S_IRWXG 0x0038 // Group mask
#define EXT2_S_IXGRP 0x0008 // ------x--- execute
#define EXT2_S_IWGRP 0x0010 // -----w---- write
#define EXT2_S_IRGRP 0x0020 // ----r----- read
#define EXT2_S_IRWXU 0x01C0 // User mask
#define EXT2_S_IXUSR 0x0040 // ---x------ execute
#define EXT2_S_IWUSR 0x0080 // --w------- write
#define EXT2_S_IRUSR 0x0100 // -r-------- read
#define EXT2_S_ISVTX 0x0200 // Sticky bit
#define EXT2_S_ISGID 0x0400 // SGID
#define EXT2_S_ISUID 0x0800 // SUID
#define EXT2_S_IFMT 0xF000 // Format mask
#define EXT2_S_IFIFO 0x1000 // FIFO buffer
#define EXT2_S_IFCHR 0x2000 // Character device
#define EXT2_S_IFDIR 0x4000 // Directory
#define EXT2_S_IFBLK 0x6000 // Block device
#define EXT2_S_IFREG 0x8000 // Regular file
#define EXT2_S_IFLNK 0xA000 // Symbolic link
#define EXT2_S_IFSOCK 0xC000 // Socket
#define FAST_SYMLINK_MAX_NAME_SIZE (EXT3_N_BLOCKS * sizeof(U32)) /* 60 bytes */
typedef struct
{
U64 FileSize; // File size
U64 FilePointer; // File pointer
U32* FileBlockList; // File block list
U8 DriveNumber; // Drive number of open file
EXT2_INODE Inode; // File's inode
} EXT2_FILE_INFO, * PEXT2_FILE_INFO;
BOOL Ext2OpenVolume(U8 DriveNumber, U64 VolumeStartSector);
FILE* Ext2OpenFile(PUCHAR FileName);
BOOL Ext2LookupFile(PUCHAR FileName, PEXT2_FILE_INFO Ext2FileInfoPointer);
BOOL Ext2SearchDirectoryBufferForFile(PVOID DirectoryBuffer, U32 DirectorySize, PUCHAR FileName, PEXT2_DIR_ENTRY DirectoryEntry);
BOOL Ext2ReadFile(FILE *FileHandle, U64 BytesToRead, U64* BytesRead, PVOID Buffer);
U64 Ext2GetFileSize(FILE *FileHandle);
VOID Ext2SetFilePointer(FILE *FileHandle, U64 NewFilePointer);
U64 Ext2GetFilePointer(FILE *FileHandle);
BOOL Ext2ReadVolumeSectors(U8 DriveNumber, U64 SectorNumber, U64 SectorCount, PVOID Buffer);
BOOL Ext2ReadSuperBlock(VOID);
BOOL Ext2ReadGroupDescriptors(VOID);
BOOL Ext2ReadDirectory(U32 Inode, PVOID* DirectoryBuffer, PEXT2_INODE InodePointer);
BOOL Ext2ReadBlock(U32 BlockNumber, PVOID Buffer);
BOOL Ext2ReadPartialBlock(U32 BlockNumber, U32 StartingOffset, U32 Length, PVOID Buffer);
U32 Ext2GetGroupDescBlockNumber(U32 Group);
U32 Ext2GetGroupDescOffsetInBlock(U32 Group);
U32 Ext2GetInodeGroupNumber(U32 Inode);
U32 Ext2GetInodeBlockNumber(U32 Inode);
U32 Ext2GetInodeOffsetInBlock(U32 Inode);
BOOL Ext2ReadInode(U32 Inode, PEXT2_INODE InodeBuffer);
BOOL Ext2ReadGroupDescriptor(U32 Group, PEXT2_GROUP_DESC GroupBuffer);
U32* Ext2ReadBlockPointerList(PEXT2_INODE Inode);
U64 Ext2GetInodeFileSize(PEXT2_INODE Inode);
BOOL Ext2CopyIndirectBlockPointers(U32* BlockList, U32* CurrentBlockInList, U32 BlockCount, U32 IndirectBlock);
BOOL Ext2CopyDoubleIndirectBlockPointers(U32* BlockList, U32* CurrentBlockInList, U32 BlockCount, U32 DoubleIndirectBlock);
BOOL Ext2CopyTripleIndirectBlockPointers(U32* BlockList, U32* CurrentBlockInList, U32 BlockCount, U32 TripleIndirectBlock);
#endif // #defined __EXT2_H

View File

@@ -1,192 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __FAT_H
#define __FAT_H
typedef struct _FAT_BOOTSECTOR
{
U8 JumpBoot[3]; // Jump instruction to boot code
U8 OemName[8]; // "MSWIN4.1" for MS formatted volumes
U16 BytesPerSector; // Bytes per sector
U8 SectorsPerCluster; // Number of sectors in a cluster
U16 ReservedSectors; // Reserved sectors, usually 1 (the bootsector)
U8 NumberOfFats; // Number of FAT tables
U16 RootDirEntries; // Number of root directory entries (fat12/16)
U16 TotalSectors; // Number of total sectors on the drive, 16-bit
U8 MediaDescriptor; // Media descriptor byte
U16 SectorsPerFat; // Sectors per FAT table (fat12/16)
U16 SectorsPerTrack; // Number of sectors in a track
U16 NumberOfHeads; // Number of heads on the disk
U32 HiddenSectors; // Hidden sectors (sectors before the partition start like the partition table)
U32 TotalSectorsBig; // This field is the new 32-bit total count of sectors on the volume
U8 DriveNumber; // Int 0x13 drive number (e.g. 0x80)
U8 Reserved1; // Reserved (used by Windows NT). Code that formats FAT volumes should always set this byte to 0.
U8 BootSignature; // Extended boot signature (0x29). This is a signature byte that indicates that the following three fields in the boot sector are present.
U32 VolumeSerialNumber; // Volume serial number
U8 VolumeLabel[11]; // Volume label. This field matches the 11-byte volume label recorded in the root directory
U8 FileSystemType[8]; // One of the strings "FAT12 ", "FAT16 ", or "FAT "
U8 BootCodeAndData[448]; // The remainder of the boot sector
U16 BootSectorMagic; // 0xAA55
} PACKED FAT_BOOTSECTOR, *PFAT_BOOTSECTOR;
typedef struct _FAT32_BOOTSECTOR
{
U8 JumpBoot[3]; // Jump instruction to boot code
U8 OemName[8]; // "MSWIN4.1" for MS formatted volumes
U16 BytesPerSector; // Bytes per sector
U8 SectorsPerCluster; // Number of sectors in a cluster
U16 ReservedSectors; // Reserved sectors, usually 1 (the bootsector)
U8 NumberOfFats; // Number of FAT tables
U16 RootDirEntries; // Number of root directory entries (fat12/16)
U16 TotalSectors; // Number of total sectors on the drive, 16-bit
U8 MediaDescriptor; // Media descriptor byte
U16 SectorsPerFat; // Sectors per FAT table (fat12/16)
U16 SectorsPerTrack; // Number of sectors in a track
U16 NumberOfHeads; // Number of heads on the disk
U32 HiddenSectors; // Hidden sectors (sectors before the partition start like the partition table)
U32 TotalSectorsBig; // This field is the new 32-bit total count of sectors on the volume
U32 SectorsPerFatBig; // This field is the FAT32 32-bit count of sectors occupied by ONE FAT. BPB_FATSz16 must be 0
U16 ExtendedFlags; // Extended flags (fat32)
U16 FileSystemVersion; // File system version (fat32)
U32 RootDirStartCluster; // Starting cluster of the root directory (fat32)
U16 FsInfo; // Sector number of FSINFO structure in the reserved area of the FAT32 volume. Usually 1.
U16 BackupBootSector; // If non-zero, indicates the sector number in the reserved area of the volume of a copy of the boot record. Usually 6.
U8 Reserved[12]; // Reserved for future expansion
U8 DriveNumber; // Int 0x13 drive number (e.g. 0x80)
U8 Reserved1; // Reserved (used by Windows NT). Code that formats FAT volumes should always set this byte to 0.
U8 BootSignature; // Extended boot signature (0x29). This is a signature byte that indicates that the following three fields in the boot sector are present.
U32 VolumeSerialNumber; // Volume serial number
U8 VolumeLabel[11]; // Volume label. This field matches the 11-byte volume label recorded in the root directory
U8 FileSystemType[8]; // Always set to the string "FAT32 "
U8 BootCodeAndData[420]; // The remainder of the boot sector
U16 BootSectorMagic; // 0xAA55
} PACKED FAT32_BOOTSECTOR, *PFAT32_BOOTSECTOR;
typedef struct _FATX_BOOTSECTOR
{
U8 FileSystemType[4]; /* String "FATX" */
U32 VolumeSerialNumber; /* Volume serial number */
U32 SectorsPerCluster; /* Number of sectors in a cluster */
U16 NumberOfFats; /* Number of FAT tables */
U32 Unknown; /* Always 0? */
U8 Unused[494]; /* Actually size should be 4078 (boot block is 4096 bytes) */
} PACKED FATX_BOOTSECTOR, *PFATX_BOOTSECTOR;
/*
* Structure of MSDOS directory entry
*/
typedef struct //_DIRENTRY
{
UCHAR FileName[11]; /* Filename + extension */
U8 Attr; /* File attributes */
U8 ReservedNT; /* Reserved for use by Windows NT */
U8 TimeInTenths; /* Millisecond stamp at file creation */
U16 CreateTime; /* Time file was created */
U16 CreateDate; /* Date file was created */
U16 LastAccessDate; /* Date file was last accessed */
U16 ClusterHigh; /* High word of this entry's start cluster */
U16 Time; /* Time last modified */
U16 Date; /* Date last modified */
U16 ClusterLow; /* First cluster number low word */
U32 Size; /* File size */
} PACKED DIRENTRY, * PDIRENTRY;
typedef struct
{
U8 SequenceNumber; /* Sequence number for slot */
WCHAR Name0_4[5]; /* First 5 characters in name */
U8 EntryAttributes; /* Attribute byte */
U8 Reserved; /* Always 0 */
U8 AliasChecksum; /* Checksum for 8.3 alias */
WCHAR Name5_10[6]; /* 6 more characters in name */
U16 StartCluster; /* Starting cluster number */
WCHAR Name11_12[2]; /* Last 2 characters in name */
} PACKED LFN_DIRENTRY, * PLFN_DIRENTRY;
typedef struct
{
U8 FileNameSize; /* Size of filename (max 42) */
U8 Attr; /* File attributes */
UCHAR FileName[42]; /* Filename in ASCII, padded with 0xff (not zero-terminated) */
U32 StartCluster; /* Starting cluster number */
U32 Size; /* File size */
U16 Time; /* Time last modified */
U16 Date; /* Date last modified */
U16 CreateTime; /* Time file was created */
U16 CreateDate; /* Date file was created */
U16 LastAccessTime; /* Time file was last accessed */
U16 LastAccessDate; /* Date file was last accessed */
} PACKED FATX_DIRENTRY, * PFATX_DIRENTRY;
typedef struct
{
U32 FileSize; /* File size */
U32 FilePointer; /* File pointer */
U32* FileFatChain; /* File fat chain array */
U32 DriveNumber;
} FAT_FILE_INFO, * PFAT_FILE_INFO;
BOOL FatOpenVolume(U32 DriveNumber, U32 VolumeStartSector, U32 PartitionSectorCount);
U32 FatDetermineFatType(PFAT_BOOTSECTOR FatBootSector, U32 PartitionSectorCount);
PVOID FatBufferDirectory(U32 DirectoryStartCluster, U32* EntryCountPointer, BOOL RootDirectory);
BOOL FatSearchDirectoryBufferForFile(PVOID DirectoryBuffer, U32 EntryCount, PUCHAR FileName, PFAT_FILE_INFO FatFileInfoPointer);
BOOL FatLookupFile(PUCHAR FileName, PFAT_FILE_INFO FatFileInfoPointer);
void FatParseShortFileName(PUCHAR Buffer, PDIRENTRY DirEntry);
BOOL FatGetFatEntry(U32 Cluster, U32* ClusterPointer);
FILE* FatOpenFile(PUCHAR FileName);
U32 FatCountClustersInChain(U32 StartCluster);
U32* FatGetClusterChainArray(U32 StartCluster);
BOOL FatReadCluster(U32 ClusterNumber, PVOID Buffer);
BOOL FatReadClusterChain(U32 StartClusterNumber, U32 NumberOfClusters, PVOID Buffer);
BOOL FatReadPartialCluster(U32 ClusterNumber, U32 StartingOffset, U32 Length, PVOID Buffer);
BOOL FatReadFile(FILE *FileHandle, U32 BytesToRead, U32* BytesRead, PVOID Buffer);
U32 FatGetFileSize(FILE *FileHandle);
VOID FatSetFilePointer(FILE *FileHandle, U32 NewFilePointer);
U32 FatGetFilePointer(FILE *FileHandle);
BOOL FatReadVolumeSectors(U32 DriveNumber, U32 SectorNumber, U32 SectorCount, PVOID Buffer);
#define ATTR_NORMAL 0x00
#define ATTR_READONLY 0x01
#define ATTR_HIDDEN 0x02
#define ATTR_SYSTEM 0x04
#define ATTR_VOLUMENAME 0x08
#define ATTR_DIRECTORY 0x10
#define ATTR_ARCHIVE 0x20
#define ATTR_LONG_NAME (ATTR_READONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUMENAME)
#define FAT12 1
#define FAT16 2
#define FAT32 3
#define FATX16 4
#define FATX32 5
#define ISFATX(FT) ((FT) == FATX16 || (FT) == FATX32)
#endif // #defined __FAT_H

View File

@@ -1,419 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <fs.h>
#include "fat.h"
#include "iso.h"
#include "ext2.h"
#include "ntfs.h"
#include "fsrec.h"
#include <disk.h>
#include <rtl.h>
#include <ui.h>
#include <arch.h>
#include <debug.h>
#include <machine.h>
/////////////////////////////////////////////////////////////////////////////////////////////
// DATA
/////////////////////////////////////////////////////////////////////////////////////////////
U32 FileSystemType = 0; // Type of filesystem on boot device, set by FsOpenVolume()
/////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
/////////////////////////////////////////////////////////////////////////////////////////////
VOID FileSystemError(PUCHAR ErrorString)
{
DbgPrint((DPRINT_FILESYSTEM, "%s\n", ErrorString));
UiMessageBox(ErrorString);
}
/*
*
* BOOL FsOpenVolume(U32 DriveNumber, U32 PartitionNumber);
*
* This function is called to open a disk volume for file access.
* It must be called before any of the file functions will work.
* It takes two parameters:
*
* Drive: The BIOS drive number of the disk to open
* Partition: This is zero for floppy drives.
* If the disk is a hard disk then this specifies
* The partition number to open (1 - 4)
* If it is zero then it opens the active (bootable) partition
*
*/
BOOL FsOpenVolume(U32 DriveNumber, U32 PartitionNumber)
{
PARTITION_TABLE_ENTRY PartitionTableEntry;
UCHAR ErrorText[80];
U8 VolumeType;
DbgPrint((DPRINT_FILESYSTEM, "FsOpenVolume() DriveNumber: 0x%x PartitionNumber: 0x%x\n", DriveNumber, PartitionNumber));
// Check and see if it is a floppy drive
// If so then just assume FAT12 file system type
if (DiskIsDriveRemovable(DriveNumber))
{
DbgPrint((DPRINT_FILESYSTEM, "Drive is a floppy diskette drive. Assuming FAT12 file system.\n"));
FileSystemType = FS_FAT;
return FatOpenVolume(DriveNumber, 0, 0);
}
// Check for ISO9660 file system type
if (DriveNumber >= 0x80 && FsRecIsIso9660(DriveNumber))
{
DbgPrint((DPRINT_FILESYSTEM, "Drive is a cdrom drive. Assuming ISO-9660 file system.\n"));
FileSystemType = FS_ISO9660;
return IsoOpenVolume(DriveNumber);
}
// Set the boot partition
BootPartition = PartitionNumber;
// Get the requested partition entry
if (PartitionNumber == 0)
{
// Partition requested was zero which means the boot partition
if (DiskGetActivePartitionEntry(DriveNumber, &PartitionTableEntry) == FALSE)
{
FileSystemError("No active partition.");
return FALSE;
}
}
else
{
// Get requested partition
if (MachDiskGetPartitionEntry(DriveNumber, PartitionNumber, &PartitionTableEntry) == FALSE)
{
FileSystemError("Partition not found.");
return FALSE;
}
}
// Check for valid partition
if (PartitionTableEntry.SystemIndicator == PARTITION_ENTRY_UNUSED)
{
FileSystemError("Invalid partition.");
return FALSE;
}
// Try to recognize the file system
if (!FsRecognizeVolume(DriveNumber, PartitionTableEntry.SectorCountBeforePartition, &VolumeType))
{
FileSystemError("Unrecognized file system.");
return FALSE;
}
//switch (PartitionTableEntry.SystemIndicator)
switch (VolumeType)
{
case PARTITION_FAT_12:
case PARTITION_FAT_16:
case PARTITION_HUGE:
case PARTITION_XINT13:
case PARTITION_FAT32:
case PARTITION_FAT32_XINT13:
FileSystemType = FS_FAT;
return FatOpenVolume(DriveNumber, PartitionTableEntry.SectorCountBeforePartition, PartitionTableEntry.PartitionSectorCount);
case PARTITION_EXT2:
FileSystemType = FS_EXT2;
return Ext2OpenVolume(DriveNumber, PartitionTableEntry.SectorCountBeforePartition);
case PARTITION_NTFS:
FileSystemType = FS_NTFS;
return NtfsOpenVolume(DriveNumber, PartitionTableEntry.SectorCountBeforePartition);
default:
FileSystemType = 0;
sprintf(ErrorText, "Unsupported file system. Type: 0x%x", VolumeType);
FileSystemError(ErrorText);
return FALSE;
}
return TRUE;
}
PFILE FsOpenFile(PUCHAR FileName)
{
PFILE FileHandle = NULL;
//
// Print status message
//
DbgPrint((DPRINT_FILESYSTEM, "Opening file '%s'...\n", FileName));
//
// Check and see if the first character is '\' or '/' and remove it if so
//
while ((*FileName == '\\') || (*FileName == '/'))
{
FileName++;
}
//
// Check file system type and pass off to appropriate handler
//
switch (FileSystemType)
{
case FS_FAT:
FileHandle = FatOpenFile(FileName);
break;
case FS_ISO9660:
FileHandle = IsoOpenFile(FileName);
break;
case FS_EXT2:
FileHandle = Ext2OpenFile(FileName);
break;
case FS_NTFS:
FileHandle = NtfsOpenFile(FileName);
break;
default:
FileSystemError("Error: Unknown filesystem.");
break;
}
#ifdef DEBUG
//
// Check return value
//
if (FileHandle != NULL)
{
DbgPrint((DPRINT_FILESYSTEM, "FsOpenFile() succeeded. FileHandle: 0x%x\n", FileHandle));
}
else
{
DbgPrint((DPRINT_FILESYSTEM, "FsOpenFile() failed.\n"));
}
#endif // defined DEBUG
return FileHandle;
}
VOID FsCloseFile(PFILE FileHandle)
{
}
/*
* ReadFile()
* returns number of bytes read or EOF
*/
BOOL FsReadFile(PFILE FileHandle, U32 BytesToRead, U32* BytesRead, PVOID Buffer)
{
U64 BytesReadBig;
BOOL Success;
//
// Set the number of bytes read equal to zero
//
if (BytesRead != NULL)
{
*BytesRead = 0;
}
switch (FileSystemType)
{
case FS_FAT:
return FatReadFile(FileHandle, BytesToRead, BytesRead, Buffer);
case FS_ISO9660:
return IsoReadFile(FileHandle, BytesToRead, BytesRead, Buffer);
case FS_EXT2:
//return Ext2ReadFile(FileHandle, BytesToRead, BytesRead, Buffer);
Success = Ext2ReadFile(FileHandle, BytesToRead, &BytesReadBig, Buffer);
*BytesRead = (U32)BytesReadBig;
return Success;
case FS_NTFS:
return NtfsReadFile(FileHandle, BytesToRead, BytesRead, Buffer);
default:
FileSystemError("Unknown file system.");
return FALSE;
}
return FALSE;
}
U32 FsGetFileSize(PFILE FileHandle)
{
switch (FileSystemType)
{
case FS_FAT:
return FatGetFileSize(FileHandle);
case FS_ISO9660:
return IsoGetFileSize(FileHandle);
case FS_EXT2:
return Ext2GetFileSize(FileHandle);
case FS_NTFS:
return NtfsGetFileSize(FileHandle);
default:
FileSystemError("Unknown file system.");
break;
}
return 0;
}
VOID FsSetFilePointer(PFILE FileHandle, U32 NewFilePointer)
{
switch (FileSystemType)
{
case FS_FAT:
FatSetFilePointer(FileHandle, NewFilePointer);
break;
case FS_ISO9660:
IsoSetFilePointer(FileHandle, NewFilePointer);
break;
case FS_EXT2:
Ext2SetFilePointer(FileHandle, NewFilePointer);
break;
case FS_NTFS:
NtfsSetFilePointer(FileHandle, NewFilePointer);
break;
default:
FileSystemError("Unknown file system.");
break;
}
}
U32 FsGetFilePointer(PFILE FileHandle)
{
switch (FileSystemType)
{
case FS_FAT:
return FatGetFilePointer(FileHandle);
break;
case FS_ISO9660:
return IsoGetFilePointer(FileHandle);
break;
case FS_EXT2:
return Ext2GetFilePointer(FileHandle);
break;
case FS_NTFS:
return NtfsGetFilePointer(FileHandle);
break;
default:
FileSystemError("Unknown file system.");
break;
}
return 0;
}
BOOL FsIsEndOfFile(PFILE FileHandle)
{
if (FsGetFilePointer(FileHandle) >= FsGetFileSize(FileHandle))
{
return TRUE;
}
else
{
return FALSE;
}
}
/*
* FsGetNumPathParts()
* This function parses a path in the form of dir1\dir2\file1.ext
* and returns the number of parts it has (i.e. 3 - dir1,dir2,file1.ext)
*/
U32 FsGetNumPathParts(PUCHAR Path)
{
U32 i;
U32 num;
for (i=0,num=0; i<(int)strlen(Path); i++)
{
if ((Path[i] == '\\') || (Path[i] == '/'))
{
num++;
}
}
num++;
DbgPrint((DPRINT_FILESYSTEM, "FatGetNumPathParts() Path = %s NumPathParts = %d\n", Path, num));
return num;
}
/*
* FsGetFirstNameFromPath()
* This function parses a path in the form of dir1\dir2\file1.ext
* and puts the first name of the path (e.g. "dir1") in buffer
* compatible with the MSDOS directory structure
*/
VOID FsGetFirstNameFromPath(PUCHAR Buffer, PUCHAR Path)
{
U32 i;
// Copy all the characters up to the end of the
// string or until we hit a '\' character
// and put them in Buffer
for (i=0; i<(int)strlen(Path); i++)
{
if ((Path[i] == '\\') || (Path[i] == '/'))
{
break;
}
else
{
Buffer[i] = Path[i];
}
}
Buffer[i] = 0;
DbgPrint((DPRINT_FILESYSTEM, "FatGetFirstNameFromPath() Path = %s FirstName = %s\n", Path, Buffer));
}

View File

@@ -1,29 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __FSREC_H
#define __FSREC_H
BOOL FsRecognizeVolume(U32 DriveNumber, U32 VolumeStartSector, U8* VolumeType);
BOOL FsRecIsIso9660(U32 DriveNumber);
BOOL FsRecIsExt2(U32 DriveNumber, U32 VolumeStartSector);
BOOL FsRecIsFat(U32 DriveNumber, U32 VolumeStartSector);
BOOL FsRecIsNtfs(U32 DriveNumber, U32 VolumeStartSector);
#endif // #defined __FSREC_H

View File

@@ -1,115 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __ISO_H
#define __ISO_H
struct _DIR_RECORD
{
UCHAR RecordLength; // 1
UCHAR ExtAttrRecordLength; // 2
U32 ExtentLocationL; // 3-6
U32 ExtentLocationM; // 7-10
U32 DataLengthL; // 11-14
U32 DataLengthM; // 15-18
UCHAR Year; // 19
UCHAR Month; // 20
UCHAR Day; // 21
UCHAR Hour; // 22
UCHAR Minute; // 23
UCHAR Second; // 24
UCHAR TimeZone; // 25
UCHAR FileFlags; // 26
UCHAR FileUnitSize; // 27
UCHAR InterleaveGapSize; // 28
U32 VolumeSequenceNumber; // 29-32
UCHAR FileIdLength; // 33
UCHAR FileId[1]; // 34
} __attribute__((packed));
typedef struct _DIR_RECORD DIR_RECORD, *PDIR_RECORD;
/* Volume Descriptor header*/
struct _VD_HEADER
{
UCHAR VdType; // 1
UCHAR StandardId[5]; // 2-6
UCHAR VdVersion; // 7
} __attribute__((packed));
typedef struct _VD_HEADER VD_HEADER, *PVD_HEADER;
/* Primary Volume Descriptor */
struct _PVD
{
UCHAR VdType; // 1
UCHAR StandardId[5]; // 2-6
UCHAR VdVersion; // 7
UCHAR unused0; // 8
UCHAR SystemId[32]; // 9-40
UCHAR VolumeId[32]; // 41-72
UCHAR unused1[8]; // 73-80
U32 VolumeSpaceSizeL; // 81-84
U32 VolumeSpaceSizeM; // 85-88
UCHAR unused2[32]; // 89-120
U32 VolumeSetSize; // 121-124
U32 VolumeSequenceNumber; // 125-128
U32 LogicalBlockSize; // 129-132
U32 PathTableSizeL; // 133-136
U32 PathTableSizeM; // 137-140
U32 LPathTablePos; // 141-144
U32 LOptPathTablePos; // 145-148
U32 MPathTablePos; // 149-152
U32 MOptPathTablePos; // 153-156
DIR_RECORD RootDirRecord; // 157-190
UCHAR VolumeSetIdentifier[128]; // 191-318
UCHAR PublisherIdentifier[128]; // 319-446
/* more data ... */
} __attribute__((packed));
typedef struct _PVD PVD, *PPVD;
typedef struct
{
U32 FileStart; // File start sector
U32 FileSize; // File size
U32 FilePointer; // File pointer
BOOL Directory;
U32 DriveNumber;
} ISO_FILE_INFO, * PISO_FILE_INFO;
BOOL IsoOpenVolume(U32 DriveNumber);
FILE* IsoOpenFile(PUCHAR FileName);
BOOL IsoReadFile(FILE *FileHandle, U32 BytesToRead, U32* BytesRead, PVOID Buffer);
U32 IsoGetFileSize(FILE *FileHandle);
VOID IsoSetFilePointer(FILE *FileHandle, U32 NewFilePointer);
U32 IsoGetFilePointer(FILE *FileHandle);
#endif // #defined __FAT_H

View File

@@ -1,228 +0,0 @@
/*
* FreeLoader NTFS support
* Copyright (C) 2004 Filip Navara <xnavara@volny.cz>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __NTFS_H
#define __NTFS_H
#define NTFS_FILE_MFT 0
#define NTFS_FILE_MFTMIRR 1
#define NTFS_FILE_LOGFILE 2
#define NTFS_FILE_VOLUME 3
#define NTFS_FILE_ATTRDEF 4
#define NTFS_FILE_ROOT 5
#define NTFS_FILE_BITMAP 6
#define NTFS_FILE_BOOT 7
#define NTFS_FILE_BADCLUS 8
#define NTFS_FILE_QUOTA 9
#define NTFS_FILE_UPCASE 10
#define NTFS_ATTR_TYPE_STANDARD_INFORMATION 0x10
#define NTFS_ATTR_TYPE_ATTRIBUTE_LIST 0x20
#define NTFS_ATTR_TYPE_FILENAME 0x30
#define NTFS_ATTR_TYPE_SECURITY_DESCRIPTOR 0x50
#define NTFS_ATTR_TYPE_DATA 0x80
#define NTFS_ATTR_TYPE_INDEX_ROOT 0x90
#define NTFS_ATTR_TYPE_INDEX_ALLOCATION 0xa0
#define NTFS_ATTR_TYPE_BITMAP 0xb0
#define NTFS_ATTR_TYPE_SYMLINK 0xc0
#define NTFS_ATTR_TYPE_END 0xffffffff
#define NTFS_ATTR_NORMAL 0
#define NTFS_ATTR_COMPRESSED 1
#define NTFS_ATTR_RESIDENT 2
#define NTFS_ATTR_ENCRYPTED 0x4000
#define NTFS_SMALL_INDEX 0
#define NTFS_LARGE_INDEX 1
#define NTFS_INDEX_ENTRY_NODE 1
#define NTFS_INDEX_ENTRY_END 2
#define NTFS_FILE_NAME_POSIX 0
#define NTFS_FILE_NAME_WIN32 1
#define NTFS_FILE_NAME_DOS 2
#define NTFS_FILE_NAME_WIN32_AND_DOS 3
typedef struct
{
U8 JumpBoot[3]; // Jump to the boot loader routine
U8 SystemId[8]; // System Id ("NTFS ")
U16 BytesPerSector; // Bytes per sector
U8 SectorsPerCluster; // Number of sectors in a cluster
U8 Unused1[7];
U8 MediaDescriptor; // Media descriptor byte
U8 Unused2[2];
U16 SectorsPerTrack; // Number of sectors in a track
U16 NumberOfHeads; // Number of heads on the disk
U8 Unused3[8];
U8 DriveNumber; // Int 0x13 drive number (e.g. 0x80)
U8 CurrentHead;
U8 BootSignature; // Extended boot signature (0x80)
U8 Unused4;
U64 VolumeSectorCount; // Number of sectors in the volume
U64 MftLocation;
U64 MftMirrorLocation;
S8 ClustersPerMftRecord; // Clusters per MFT Record
U8 Unused5[3];
S8 ClustersPerIndexRecord; // Clusters per Index Record
U8 Unused6[3];
U64 VolumeSerialNumber; // Volume serial number
U8 BootCodeAndData[430]; // The remainder of the boot sector
U16 BootSectorMagic; // 0xAA55
} PACKED NTFS_BOOTSECTOR, *PNTFS_BOOTSECTOR;
typedef struct
{
U32 Magic;
U16 USAOffset; // Offset to the Update Sequence Array from the start of the ntfs record
U16 USACount;
} PACKED NTFS_RECORD, *PNTFS_RECORD;
typedef struct
{
U32 Magic;
U16 USAOffset; // Offset to the Update Sequence Array from the start of the ntfs record
U16 USACount;
U64 LogSequenceNumber;
U16 SequenceNumber;
U16 LinkCount;
U16 AttributesOffset;
U16 Flags;
U32 BytesInUse; // Number of bytes used in this mft record.
U32 BytesAllocated;
U64 BaseMFTRecord;
U16 NextAttributeInstance;
} PACKED NTFS_MFT_RECORD, *PNTFS_MFT_RECORD;
typedef struct
{
U32 Type;
U32 Length;
U8 IsNonResident;
U8 NameLength;
U16 NameOffset;
U16 Flags;
U16 Instance;
union
{
// Resident attributes
struct
{
U32 ValueLength;
U16 ValueOffset;
U16 Flags;
} PACKED Resident;
// Non-resident attributes
struct
{
U64 LowestVCN;
U64 HighestVCN;
U16 MappingPairsOffset;
U8 CompressionUnit;
U8 Reserved[5];
S64 AllocatedSize;
S64 DataSize;
S64 InitializedSize;
S64 CompressedSize;
} PACKED NonResident;
} PACKED;
} PACKED NTFS_ATTR_RECORD, *PNTFS_ATTR_RECORD;
typedef struct
{
U32 EntriesOffset;
U32 IndexLength;
U32 AllocatedSize;
U8 Flags;
U8 Reserved[3];
} PACKED NTFS_INDEX_HEADER, *PNTFS_INDEX_HEADER;
typedef struct
{
U32 Type;
U32 CollationRule;
U32 IndexBlockSize;
U8 ClustersPerIndexBlock;
U8 Reserved[3];
NTFS_INDEX_HEADER IndexHeader;
} PACKED NTFS_INDEX_ROOT, *PNTFS_INDEX_ROOT;
typedef struct
{
U64 ParentDirectory;
S64 CreationTime;
S64 LastDataChangeTime;
S64 LastMftChangeTime;
S64 LastAccessTime;
S64 AllocatedSize;
S64 DataSize;
U32 FileAttributes;
U16 PackedExtendedAttributeSize;
U16 Reserved;
U8 FileNameLength;
U8 FileNameType;
WCHAR FileName[0];
} PACKED NTFS_FILE_NAME_ATTR, *PNTFS_FILE_NAME_ATTR;
typedef struct {
union
{
struct
{
U64 IndexedFile;
} PACKED Directory;
struct
{
U16 DataOffset;
U16 DataLength;
U32 Reserved;
} PACKED ViewIndex;
} PACKED Data;
U16 Length;
U16 KeyLength;
U16 Flags;
U16 Reserved;
NTFS_FILE_NAME_ATTR FileName;
} PACKED NTFS_INDEX_ENTRY, *PNTFS_INDEX_ENTRY;
typedef struct
{
PNTFS_ATTR_RECORD Record;
PUCHAR CacheRun;
U64 CacheRunOffset;
S64 CacheRunStartLCN;
U64 CacheRunLength;
S64 CacheRunLastLCN;
U64 CacheRunCurrentOffset;
} NTFS_ATTR_CONTEXT, *PNTFS_ATTR_CONTEXT;
typedef struct
{
NTFS_ATTR_CONTEXT DataContext;
U64 Offset;
} PACKED NTFS_FILE_HANDLE, *PNTFS_FILE_HANDLE;
BOOL NtfsOpenVolume(U32 DriveNumber, U32 VolumeStartSector);
FILE* NtfsOpenFile(PUCHAR FileName);
BOOL NtfsReadFile(FILE *FileHandle, U32 BytesToRead, U32* BytesRead, PVOID Buffer);
U32 NtfsGetFileSize(FILE *FileHandle);
VOID NtfsSetFilePointer(FILE *FileHandle, U32 NewFilePointer);
U32 NtfsGetFilePointer(FILE *FileHandle);
#endif // #defined __NTFS_H

View File

@@ -1,88 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __DEBUG_H
#define __DEBUG_H
#ifdef DEBUG
#define DPRINT_NONE 0x00000000 // No debug print
#define DPRINT_WARNING 0x00000001 // OR this with DebugPrintMask to enable debugger messages and other misc stuff
#define DPRINT_MEMORY 0x00000002 // OR this with DebugPrintMask to enable memory management messages
#define DPRINT_FILESYSTEM 0x00000004 // OR this with DebugPrintMask to enable file system messages
#define DPRINT_INIFILE 0x00000008 // OR this with DebugPrintMask to enable .ini file messages
#define DPRINT_UI 0x00000010 // OR this with DebugPrintMask to enable user interface messages
#define DPRINT_DISK 0x00000020 // OR this with DebugPrintMask to enable disk messages
#define DPRINT_CACHE 0x00000040 // OR this with DebugPrintMask to enable cache messages
#define DPRINT_REGISTRY 0x00000080 // OR this with DebugPrintMask to enable registry messages
#define DPRINT_REACTOS 0x00000100 // OR this with DebugPrintMask to enable ReactOS messages
#define DPRINT_LINUX 0x00000200 // OR this with DebugPrintMask to enable Linux messages
#define DPRINT_HWDETECT 0x00000400 // OR this with DebugPrintMask to enable hardware detection messages
VOID DebugInit(VOID);
VOID DebugPrint(U32 Mask, char *format, ...);
VOID DebugPrint1(char *format, ...);
VOID DebugDumpBuffer(U32 Mask, PVOID Buffer, U32 Length);
#define DbgPrint(_x_) DebugPrint _x_ ;
#define DPRINT1 DebugPrint1
#define BugCheck(_x_) { DebugPrint(DPRINT_WARNING, "Fatal Error: %s:%d(%s)\n", __FILE__, __LINE__, __FUNCTION__); DebugPrint _x_ ; for (;;); }
#define DbgDumpBuffer(_x_, _y_, _z_) DebugDumpBuffer(_x_, _y_, _z_)
#ifdef __i386__
// Debugging support functions:
//
// BREAKPOINT() - Inserts an "int 3" instruction
// INSTRUCTION_BREAKPOINTX(x) - Enters exception handler right before instruction at address "x" is executed
// MEMORY_READWRITE_BREAKPOINTX(x) - Enters exception handler when a read or write occurs at address "x"
// MEMORY_WRITE_BREAKPOINTX(x) - Enters exception handler when a write occurs at address "x"
//
// You may have as many BREAKPOINT()'s as you like but you may only
// have up to four of any of the others.
#define BREAKPOINT() __asm__ ("int $3");
void INSTRUCTION_BREAKPOINT1(unsigned long addr);
void MEMORY_READWRITE_BREAKPOINT1(unsigned long addr);
void MEMORY_WRITE_BREAKPOINT1(unsigned long addr);
void INSTRUCTION_BREAKPOINT2(unsigned long addr);
void MEMORY_READWRITE_BREAKPOINT2(unsigned long addr);
void MEMORY_WRITE_BREAKPOINT2(unsigned long addr);
void INSTRUCTION_BREAKPOINT3(unsigned long addr);
void MEMORY_READWRITE_BREAKPOINT3(unsigned long addr);
void MEMORY_WRITE_BREAKPOINT3(unsigned long addr);
void INSTRUCTION_BREAKPOINT4(unsigned long addr);
void MEMORY_READWRITE_BREAKPOINT4(unsigned long addr);
void MEMORY_WRITE_BREAKPOINT4(unsigned long addr);
#endif // defined __i386__
#else
#define DebugInit()
#define DbgPrint(_x_)
#define DPRINT1(_x_)
#define BugCheck(_x_)
#define DbgDumpBuffer(_x_, _y_, _z_)
#endif // defined DEBUG
#define UNIMPLEMENTED() BugCheck((DPRINT_WARNING, "This function is unimplemented!\n"))
#endif // defined __DEBUG_H

View File

@@ -1,139 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __DISK_H
#define __DISK_H
typedef struct _GEOMETRY
{
U32 Cylinders; // Number of cylinders on the disk
U32 Heads; // Number of heads on the disk
U32 Sectors; // Number of sectors per track
U32 BytesPerSector; // Number of bytes per sector
} GEOMETRY, *PGEOMETRY;
//
// Extended disk geometry (Int13 / ah=48h)
//
typedef struct _EXTENDED_GEOMETRY
{
U16 Size;
U16 Flags;
U32 Cylinders;
U32 Heads;
U32 SectorsPerTrack;
U64 Sectors;
U16 BytesPerSector;
U32 PDPTE;
} __attribute__((packed)) EXTENDED_GEOMETRY, *PEXTENDED_GEOMETRY;
//
// Define the structure of a partition table entry
//
typedef struct _PARTITION_TABLE_ENTRY
{
U8 BootIndicator; // 0x00 - non-bootable partition, 0x80 - bootable partition (one partition only)
U8 StartHead; // Beginning head number
U8 StartSector; // Beginning sector (2 high bits of cylinder #)
U8 StartCylinder; // Beginning cylinder# (low order bits of cylinder #)
U8 SystemIndicator; // System indicator
U8 EndHead; // Ending head number
U8 EndSector; // Ending sector (2 high bits of cylinder #)
U8 EndCylinder; // Ending cylinder# (low order bits of cylinder #)
U32 SectorCountBeforePartition; // Number of sectors preceding the partition
U32 PartitionSectorCount; // Number of sectors in the partition
} PACKED PARTITION_TABLE_ENTRY, *PPARTITION_TABLE_ENTRY;
//
// Define the structure of the master boot record
//
typedef struct _MASTER_BOOT_RECORD
{
U8 MasterBootRecordCodeAndData[0x1b8]; /* 0x000 */
U32 Signature; /* 0x1B8 */
U16 Reserved; /* 0x1BC */
PARTITION_TABLE_ENTRY PartitionTable[4]; /* 0x1BE */
U16 MasterBootRecordMagic; /* 0x1FE */
} PACKED MASTER_BOOT_RECORD, *PMASTER_BOOT_RECORD;
//
// Partition type defines
//
#define PARTITION_ENTRY_UNUSED 0x00 // Entry unused
#define PARTITION_FAT_12 0x01 // 12-bit FAT entries
#define PARTITION_XENIX_1 0x02 // Xenix
#define PARTITION_XENIX_2 0x03 // Xenix
#define PARTITION_FAT_16 0x04 // 16-bit FAT entries
#define PARTITION_EXTENDED 0x05 // Extended partition entry
#define PARTITION_HUGE 0x06 // Huge partition MS-DOS V4
#define PARTITION_IFS 0x07 // IFS Partition
#define PARTITION_OS2BOOTMGR 0x0A // OS/2 Boot Manager/OPUS/Coherent swap
#define PARTITION_FAT32 0x0B // FAT32
#define PARTITION_FAT32_XINT13 0x0C // FAT32 using extended int13 services
#define PARTITION_XINT13 0x0E // Win95 partition using extended int13 services
#define PARTITION_XINT13_EXTENDED 0x0F // Same as type 5 but uses extended int13 services
#define PARTITION_NTFS 0x17 // NTFS
#define PARTITION_PREP 0x41 // PowerPC Reference Platform (PReP) Boot Partition
#define PARTITION_LDM 0x42 // Logical Disk Manager partition
#define PARTITION_UNIX 0x63 // Unix
#define PARTITION_LINUX_SWAP 0x82 // Linux Swap Partition
#define PARTITION_EXT2 0x83 // Linux Ext2/Ext3
///////////////////////////////////////////////////////////////////////////////////////
//
// i386 BIOS Disk Functions (i386disk.c)
//
///////////////////////////////////////////////////////////////////////////////////////
#ifdef __i386__
BOOL DiskResetController(U32 DriveNumber);
BOOL DiskInt13ExtensionsSupported(U32 DriveNumber);
//VOID DiskStopFloppyMotor(VOID);
BOOL DiskGetExtendedDriveParameters(U32 DriveNumber, PVOID Buffer, U16 BufferSize);
#endif // defined __i386__
///////////////////////////////////////////////////////////////////////////////////////
//
// FreeLoader Disk Functions
//
///////////////////////////////////////////////////////////////////////////////////////
VOID DiskReportError (BOOL bError);
VOID DiskError(PUCHAR ErrorString, U32 ErrorCode);
PUCHAR DiskGetErrorCodeString(U32 ErrorCode);
BOOL DiskReadLogicalSectors(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer); // Implemented in i386disk.c
BOOL DiskIsDriveRemovable(U32 DriveNumber);
VOID DiskStopFloppyMotor(VOID); // Implemented in i386disk.c
///////////////////////////////////////////////////////////////////////////////////////
//
// Fixed Disk Partition Management Functions
//
///////////////////////////////////////////////////////////////////////////////////////
BOOL DiskGetActivePartitionEntry(U32 DriveNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
BOOL DiskGetPartitionEntry(U32 DriveNumber, U32 PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
BOOL DiskGetFirstPartitionEntry(PMASTER_BOOT_RECORD MasterBootRecord, PPARTITION_TABLE_ENTRY PartitionTableEntry);
BOOL DiskGetFirstExtendedPartitionEntry(PMASTER_BOOT_RECORD MasterBootRecord, PPARTITION_TABLE_ENTRY PartitionTableEntry);
BOOL DiskReadBootRecord(U32 DriveNumber, U64 LogicalSectorNumber, PMASTER_BOOT_RECORD BootRecord);
#endif // defined __DISK_H

View File

@@ -1,43 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __DRIVEMAP_H
#define __DRIVEMAP_H
typedef struct
{
U8 DriveMapCount; // Count of drives currently mapped
U8 DriveMap[8]; // Map of BIOS drives
} PACKED DRIVE_MAP_LIST, *PDRIVE_MAP_LIST;
VOID DriveMapMapDrivesInSection(PUCHAR SectionName);
BOOL DriveMapIsValidDriveString(PUCHAR DriveString); // Checks the drive string ("hd0") for validity
U32 DriveMapGetBiosDriveNumber(PUCHAR DeviceName); // Returns a BIOS drive number for any given device name (e.g. 0x80 for 'hd0')
VOID DriveMapInstallInt13Handler(PDRIVE_MAP_LIST DriveMap); // Installs the int 13h handler for the drive mapper
VOID DriveMapRemoveInt13Handler(VOID); // Removes a previously installed int 13h drive map handler
extern PVOID DriveMapInt13HandlerStart;
extern PVOID DriveMapInt13HandlerEnd;
extern U32 DriveMapOldInt13HandlerAddress;
extern DRIVE_MAP_LIST DriveMapInt13HandlerMapList;
#endif // #defined __DRIVEMAP_H

View File

@@ -1,81 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __FREELDR_H
#define __FREELDR_H
#define NULL 0
#define TRUE 1
#define FALSE 0
#define BOOL int
#define BOOLEAN int
typedef BOOLEAN *PBOOLEAN;
#define CHAR char
#define PCHAR char *
#define UCHAR unsigned char
#define PUCHAR unsigned char *
#define WCHAR unsigned short
#define PWCHAR unsigned short *
#define VOID void
#define PVOID VOID*
#ifdef __i386__
#define size_t unsigned int
typedef unsigned char U8;
typedef char S8;
typedef unsigned short U16;
typedef short S16;
typedef unsigned long U32;
typedef long S32;
typedef unsigned long long U64;
typedef long long S64;
typedef U8 __u8;
typedef S8 __s8;
typedef U16 __u16;
typedef S16 __s16;
typedef U32 __u32;
typedef S32 __s32;
typedef U64 __u64;
typedef S64 __s64;
#endif // __i386__
typedef U8 *PU8;
typedef U16 *PU16;
typedef U32 *PU32;
#define ROUND_UP(N, S) ((N) + (S) - ((N) % (S)))
#define ROUND_DOWN(N, S) ((N) - ((N) % (S)))
#define PACKED __attribute__((packed))
extern U32 BootDrive; // BIOS boot drive, 0-A:, 1-B:, 0x80-C:, 0x81-D:, etc.
extern U32 BootPartition; // Boot Partition, 1-4
extern BOOL UserInterfaceUp; // Tells us if the user interface is displayed
void BootMain(char *CmdLine);
VOID RunLoader(VOID);
#endif // defined __FREELDR_H

View File

@@ -1,47 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __FS_H
#define __FS_H
#define EOF -1
#define FS_FAT 1
#define FS_NTFS 2
#define FS_EXT2 3
#define FS_REISER 4
#define FS_ISO9660 5
#define FILE VOID
#define PFILE FILE *
VOID FileSystemError(PUCHAR ErrorString);
BOOL FsOpenVolume(U32 DriveNumber, U32 PartitionNumber);
PFILE FsOpenFile(PUCHAR FileName);
VOID FsCloseFile(PFILE FileHandle);
BOOL FsReadFile(PFILE FileHandle, U32 BytesToRead, U32* BytesRead, PVOID Buffer);
U32 FsGetFileSize(PFILE FileHandle);
VOID FsSetFilePointer(PFILE FileHandle, U32 NewFilePointer);
U32 FsGetFilePointer(PFILE FileHandle);
BOOL FsIsEndOfFile(PFILE FileHandle);
U32 FsGetNumPathParts(PUCHAR Path);
VOID FsGetFirstNameFromPath(PUCHAR Buffer, PUCHAR Path);
#endif // #defined __FS_H

View File

@@ -1,35 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __PARSEINI_H
#define __PARSEINI_H
BOOL IniFileInitialize(VOID);
BOOL IniOpenSection(PUCHAR SectionName, U32* SectionId);
U32 IniGetNumSectionItems(U32 SectionId);
U32 IniGetSectionSettingNameSize(U32 SectionId, U32 SettingIndex);
U32 IniGetSectionSettingValueSize(U32 SectionId, U32 SettingIndex);
BOOL IniReadSettingByNumber(U32 SectionId, U32 SettingNumber, PUCHAR SettingName, U32 NameSize, PUCHAR SettingValue, U32 ValueSize);
BOOL IniReadSettingByName(U32 SectionId, PUCHAR SettingName, PUCHAR Buffer, U32 BufferSize);
BOOL IniAddSection(PUCHAR SectionName, U32* SectionId);
BOOL IniAddSettingValueToSection(U32 SectionId, PUCHAR SettingName, PUCHAR SettingValue);
#endif // defined __PARSEINI_H

View File

@@ -1,139 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <fs.h>
#ifndef __LINUX_H
#define __LINUX_H
#define LINUX_LOADER_TYPE_LILO 0x01
#define LINUX_LOADER_TYPE_LOADLIN 0x11
#define LINUX_LOADER_TYPE_BOOTSECT 0x21
#define LINUX_LOADER_TYPE_SYSLINUX 0x31
#define LINUX_LOADER_TYPE_ETHERBOOT 0x41
#define LINUX_LOADER_TYPE_FREELOADER 0x81
#define LINUX_COMMAND_LINE_MAGIC 0xA33F
#define LINUX_SETUP_HEADER_ID 0x53726448 // 'HdrS'
#define LINUX_BOOT_SECTOR_MAGIC 0xAA55
#define LINUX_KERNEL_LOAD_ADDRESS 0x100000
#define LINUX_FLAG_LOAD_HIGH 0x01
#define LINUX_FLAG_CAN_USE_HEAP 0x80
#define LINUX_MAX_INITRD_ADDRESS 0x38000000
typedef struct
{
U8 BootCode1[0x20];
U16 CommandLineMagic;
U16 CommandLineOffset;
U8 BootCode2[0x1CD];
U8 SetupSectors;
U16 RootFlags;
U16 SystemSize;
U16 SwapDevice;
U16 RamSize;
U16 VideoMode;
U16 RootDevice;
U16 BootFlag; // 0xAA55
} PACKED LINUX_BOOTSECTOR, *PLINUX_BOOTSECTOR;
typedef struct
{
U8 JumpInstruction[2];
U32 SetupHeaderSignature; // Signature for SETUP-header
U16 Version; // Version number of header format
U16 RealModeSwitch; // Default switch
U16 SetupSeg; // SETUPSEG
U16 StartSystemSeg;
U16 KernelVersion; // Offset to kernel version string
U8 TypeOfLoader; // Loader ID
// =0, old one (LILO, Loadlin,
// Bootlin, SYSLX, bootsect...)
// else it is set by the loader:
// 0xTV: T=0 for LILO
// T=1 for Loadlin
// T=2 for bootsect-loader
// T=3 for SYSLX
// T=4 for ETHERBOOT
// V = version
U8 LoadFlags; // flags, unused bits must be zero (RFU)
// LOADED_HIGH = 1
// bit within loadflags,
// if set, then the kernel is loaded high
// CAN_USE_HEAP = 0x80
// if set, the loader also has set heap_end_ptr
// to tell how much space behind setup.S
// can be used for heap purposes.
// Only the loader knows what is free!
U16 SetupMoveSize; // size to move, when we (setup) are not
// loaded at 0x90000. We will move ourselves
// to 0x90000 then just before jumping into
// the kernel. However, only the loader
// know how much of data behind us also needs
// to be loaded.
U32 Code32Start; // here loaders can put a different
// start address for 32-bit code.
//
// 0x1000 = default for zImage
//
// 0x100000 = default for big kernel
U32 RamdiskAddress; // address of loaded ramdisk image
// Here the loader (or kernel generator) puts
// the 32-bit address were it loaded the image.
U32 RamdiskSize; // its size in bytes
U16 BootSectKludgeOffset;
U16 BootSectKludgeSegment;
U16 HeapEnd; // space from here (exclusive) down to
// end of setup code can be used by setup
// for local heap purposes.
U16 Pad1;
U32 CommandLinePointer; // 32-bit pointer to the kernel command line
U32 InitrdAddressMax; // Highest legal initrd address
} PACKED LINUX_SETUPSECTOR, *PLINUX_SETUPSECTOR;
VOID BootNewLinuxKernel(VOID); // Implemented in linux.S
VOID BootOldLinuxKernel(U32 KernelSize); // Implemented in linux.S
VOID LoadAndBootLinux(PUCHAR OperatingSystemName, PUCHAR Description);
BOOL LinuxParseIniSection(PUCHAR OperatingSystemName);
BOOL LinuxReadBootSector(PFILE LinuxKernelFile);
BOOL LinuxReadSetupSector(PFILE LinuxKernelFile);
BOOL LinuxReadKernel(PFILE LinuxKernelFile);
BOOL LinuxCheckKernelVersion(VOID);
BOOL LinuxReadInitrd(PFILE LinuxInitrdFile);
#endif // defined __LINUX_H

View File

@@ -1,99 +0,0 @@
/* $Id: machine.h,v 1.7 2004/11/28 22:42:40 gvg Exp $
*
* FreeLoader
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __MACHINE_H_
#define __MACHINE_H_
#ifndef __DISK_H
#include "disk.h"
#endif
#ifndef __MEMORY_H
#include "mm.h"
#endif
typedef enum tagVIDEODISPLAYMODE
{
VideoTextMode,
VideoGraphicsMode
} VIDEODISPLAYMODE, *PVIDEODISPLAYMODE;
typedef struct tagMACHVTBL
{
VOID (*ConsPutChar)(int Ch);
BOOL (*ConsKbHit)(VOID);
int (*ConsGetCh)(VOID);
VOID (*VideoClearScreen)(U8 Attr);
VIDEODISPLAYMODE (*VideoSetDisplayMode)(char *DisplayMode, BOOL Init);
VOID (*VideoGetDisplaySize)(PU32 Width, PU32 Height, PU32 Depth);
U32 (*VideoGetBufferSize)(VOID);
VOID (*VideoSetTextCursorPosition)(U32 X, U32 Y);
VOID (*VideoHideShowTextCursor)(BOOL Show);
VOID (*VideoPutChar)(int Ch, U8 Attr, unsigned X, unsigned Y);
VOID (*VideoCopyOffScreenBufferToVRAM)(PVOID Buffer);
BOOL (*VideoIsPaletteFixed)(VOID);
VOID (*VideoSetPaletteColor)(U8 Color, U8 Red, U8 Green, U8 Blue);
VOID (*VideoGetPaletteColor)(U8 Color, U8* Red, U8* Green, U8* Blue);
VOID (*VideoSync)(VOID);
VOID (*VideoPrepareForReactOS)(VOID);
U32 (*GetMemoryMap)(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MaxMemoryMapSize);
BOOL (*DiskReadLogicalSectors)(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer);
BOOL (*DiskGetPartitionEntry)(U32 DriveNumber, U32 PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
BOOL (*DiskGetDriveGeometry)(U32 DriveNumber, PGEOMETRY DriveGeometry);
U32 (*DiskGetCacheableBlockCount)(U32 DriveNumber);
VOID (*RTCGetCurrentDateTime)(PU32 Year, PU32 Month, PU32 Day, PU32 Hour, PU32 Minute, PU32 Second);
VOID (*HwDetect)(VOID);
} MACHVTBL, *PMACHVTBL;
VOID MachInit(VOID);
extern MACHVTBL MachVtbl;
#define MachConsPutChar(Ch) MachVtbl.ConsPutChar(Ch)
#define MachConsKbHit() MachVtbl.ConsKbHit()
#define MachConsGetCh() MachVtbl.ConsGetCh()
#define MachVideoClearScreen(Attr) MachVtbl.VideoClearScreen(Attr)
#define MachVideoSetDisplayMode(Mode, Init) MachVtbl.VideoSetDisplayMode((Mode), (Init))
#define MachVideoGetDisplaySize(W, H, D) MachVtbl.VideoGetDisplaySize((W), (H), (D))
#define MachVideoGetBufferSize() MachVtbl.VideoGetBufferSize()
#define MachVideoSetTextCursorPosition(X, Y) MachVtbl.VideoSetTextCursorPosition((X), (Y))
#define MachVideoHideShowTextCursor(Show) MachVtbl.VideoHideShowTextCursor(Show)
#define MachVideoPutChar(Ch, Attr, X, Y) MachVtbl.VideoPutChar((Ch), (Attr), (X), (Y))
#define MachVideoCopyOffScreenBufferToVRAM(Buf) MachVtbl.VideoCopyOffScreenBufferToVRAM(Buf)
#define MachVideoIsPaletteFixed() MachVtbl.VideoIsPaletteFixed()
#define MachVideoSetPaletteColor(Col, R, G, B) MachVtbl.VideoSetPaletteColor((Col), (R), (G), (B))
#define MachVideoGetPaletteColor(Col, R, G, B) MachVtbl.VideoGetPaletteColor((Col), (R), (G), (B))
#define MachVideoSync() MachVtbl.VideoSync()
#define MachVideoPrepareForReactOS() MachVtbl.VideoPrepareForReactOS()
#define MachGetMemoryMap(MMap, Size) MachVtbl.GetMemoryMap((MMap), (Size))
#define MachDiskReadLogicalSectors(Drive, Start, Count, Buf) MachVtbl.DiskReadLogicalSectors((Drive), (Start), (Count), (Buf))
#define MachDiskGetPartitionEntry(Drive, Part, Entry) MachVtbl.DiskGetPartitionEntry((Drive), (Part), (Entry))
#define MachDiskGetDriveGeometry(Drive, Geom) MachVtbl.DiskGetDriveGeometry((Drive), (Geom))
#define MachDiskGetCacheableBlockCount(Drive) MachVtbl.DiskGetCacheableBlockCount(Drive)
#define MachRTCGetCurrentDateTime(Y, Mo, D, H, Mi, S) MachVtbl.RTCGetCurrentDateTime((Y), (Mo), (D), (H), (Mi), (S));
#define MachHwDetect() MachVtbl.HwDetect()
#endif /* __MACHINE_H_ */
/* EOF */

View File

@@ -1,51 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __MEMORY_H
#define __MEMORY_H
#define MEMTYPE_USABLE 0x01
#define MEMTYPE_RESERVED 0x02
#define MEMTYPE_ACPI_RECLAIM 0x03
#define MEMTYPE_ACPI_NVS 0x04
typedef struct
{
U64 BaseAddress;
U64 Length;
U32 Type;
U32 Reserved;
} PACKED BIOS_MEMORY_MAP, *PBIOS_MEMORY_MAP;
U32 GetSystemMemorySize(VOID); // Returns the amount of total memory in the system
//BOOL MmInitializeMemoryManager(U32 LowMemoryStart, U32 LowMemoryLength);
BOOL MmInitializeMemoryManager(VOID);
PVOID MmAllocateMemory(U32 MemorySize);
VOID MmFreeMemory(PVOID MemoryPointer);
//PVOID MmAllocateLowMemory(U32 MemorySize);
//VOID MmFreeLowMemory(PVOID MemoryPointer);
PVOID MmAllocateMemoryAtAddress(U32 MemorySize, PVOID DesiredAddress);
PVOID MmAllocateHighestMemoryBelowAddress(U32 MemorySize, PVOID DesiredAddress);
#endif // defined __MEMORY_H

View File

@@ -1,164 +0,0 @@
/* multiboot.h - the header for Multiboot */
/* Copyright (C) 1999 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __MULTIBOOT_H
#define __MULTIBOOT_H
/* Macros. */
/* The magic number for the Multiboot header. */
#define MULTIBOOT_HEADER_MAGIC 0x1BADB002
/* The flags for the Multiboot header. */
#define MULTIBOOT_HEADER_FLAGS 0x00010003
/* The magic number passed by a Multiboot-compliant boot loader. */
#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002
/* The size of our stack (16KB). */
#define STACK_SIZE 0x4000
/* C symbol format. HAVE_ASM_USCORE is defined by configure. */
#ifdef HAVE_ASM_USCORE
# define EXT_C(sym) _ ## sym
#else
# define EXT_C(sym) sym
#endif
#define MB_INFO_FLAG_MEM_SIZE 0x00000001
#define MB_INFO_FLAG_BOOT_DEVICE 0x00000002
#define MB_INFO_FLAG_COMMAND_LINE 0x00000004
#define MB_INFO_FLAG_MODULES 0x00000008
#define MB_INFO_FLAG_AOUT_SYMS 0x00000010
#define MB_INFO_FLAG_ELF_SYMS 0x00000020
#define MB_INFO_FLAG_MEMORY_MAP 0x00000040
#define MB_INFO_FLAG_DRIVES 0x00000080
#define MB_INFO_FLAG_CONFIG_TABLE 0x00000100
#define MB_INFO_FLAG_BOOT_LOADER_NAME 0x00000200
#define MB_INFO_FLAG_APM_TABLE 0x00000400
#define MB_INFO_FLAG_GRAPHICS_TABLE 0x00000800
#ifndef ASM
/* Do not include here in boot.S. */
/* Types. */
/* The Multiboot header. */
typedef struct multiboot_header
{
unsigned long magic;
unsigned long flags;
unsigned long checksum;
unsigned long header_addr;
unsigned long load_addr;
unsigned long load_end_addr;
unsigned long bss_end_addr;
unsigned long entry_addr;
} multiboot_header_t;
/* The symbol table for a.out. */
typedef struct aout_symbol_table
{
unsigned long tabsize;
unsigned long strsize;
unsigned long addr;
unsigned long reserved;
} aout_symbol_table_t;
/* The section header table for ELF. */
typedef struct elf_section_header_table
{
unsigned long num;
unsigned long size;
unsigned long addr;
unsigned long shndx;
} elf_section_header_table_t;
/* The Multiboot information. */
typedef struct multiboot_info
{
unsigned long flags;
unsigned long mem_lower;
unsigned long mem_upper;
unsigned long boot_device;
unsigned long cmdline;
unsigned long mods_count;
unsigned long mods_addr;
#if 0
/* reactos and loadros define this entry with a size of 12 byte but the union is 16 byte */
union
{
aout_symbol_table_t aout_sym;
elf_section_header_table_t elf_sec;
} u;
#else
char syms[12];
#endif
unsigned long mmap_length;
unsigned long mmap_addr;
} multiboot_info_t;
/* The module structure. */
typedef struct module
{
unsigned long mod_start;
unsigned long mod_end;
unsigned long string;
unsigned long reserved;
} module_t;
/* The memory map. Be careful that the offset 0 is base_addr_low
but no size. */
typedef struct memory_map
{
//unsigned long size;
unsigned long base_addr_low;
unsigned long base_addr_high;
unsigned long length_low;
unsigned long length_high;
unsigned long type;
unsigned long reserved;
} memory_map_t;
multiboot_header_t mb_header; // Multiboot header structure defined in kernel image file
multiboot_info_t mb_info; // Multiboot info structure passed to kernel
char multiboot_kernel_cmdline[255]; // Command line passed to kernel
module_t multiboot_modules[64]; // Array to hold boot module info loaded for the kernel
char multiboot_module_strings[64][256]; // Array to hold module names
unsigned long multiboot_memory_map_descriptor_size;
memory_map_t multiboot_memory_map[32]; // Memory map
void boot_reactos(void);
#include "fs.h" // Included FILE structure definition
BOOL MultiBootLoadKernel(FILE *KernelImage);
//BOOL MultiBootLoadModule(FILE *ModuleImage, char *ModuleName);
PVOID MultiBootLoadModule(FILE *ModuleImage, char *ModuleName, U32* ModuleSize);
int GetBootPartition(char *OperatingSystemName);
PVOID MultiBootCreateModule(char *ModuleName);
BOOL MultiBootCloseModule(PVOID ModuleBase, U32 dwModuleSize);
#endif /* ! ASM */
#endif // defined __MULTIBOOT_H

View File

@@ -1,28 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __OSLIST_H
#define __OSLIST_H
BOOL InitOperatingSystemList(PUCHAR **SectionNamesPointer, PUCHAR **DisplayNamesPointer, U32* OperatingSystemCountPointer);
U32 CountOperatingSystems(U32 SectionId);
BOOL AllocateListMemory(PUCHAR **SectionNamesPointer, PUCHAR **DisplayNamesPointer, U32 OperatingSystemCount);
BOOL RemoveQuotes(PUCHAR QuotedString);
#endif // #defined __OSLIST_H

View File

@@ -1,78 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
* Copyright (C) 2001 Eric Kohl
* Copyright (C) 2001 Emanuele Aliberti
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __PORTIO_H
#define __PORTIO_H
/*
* Port I/O functions
*/
VOID
/*STDCALL*/
READ_PORT_BUFFER_UCHAR (PUCHAR Port, PUCHAR Value, U32 Count);
VOID
/*STDCALL*/
READ_PORT_BUFFER_ULONG (U32* Port, U32* Value, U32 Count);
VOID
/*STDCALL*/
READ_PORT_BUFFER_USHORT (U16* Port, U16* Value, U32 Count);
UCHAR
/*STDCALL*/
READ_PORT_UCHAR (PUCHAR Port);
U32
/*STDCALL*/
READ_PORT_ULONG (U32* Port);
U16
/*STDCALL*/
READ_PORT_USHORT (U16* Port);
VOID
/*STDCALL*/
WRITE_PORT_BUFFER_UCHAR (PUCHAR Port, PUCHAR Value, U32 Count);
VOID
/*STDCALL*/
WRITE_PORT_BUFFER_ULONG (U32* Port, U32* Value, U32 Count);
VOID
/*STDCALL*/
WRITE_PORT_BUFFER_USHORT (U16* Port, U16* Value, U32 Count);
VOID
/*STDCALL*/
WRITE_PORT_UCHAR (PUCHAR Port, UCHAR Value);
VOID
/*STDCALL*/
WRITE_PORT_ULONG (U32* Port, U32 Value);
VOID
/*STDCALL*/
WRITE_PORT_USHORT (U16* Port, U16 Value);
#endif // defined __PORTIO_H

View File

@@ -1,95 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __UI_H
#define __UI_H
extern U32 UiScreenWidth; // Screen Width
extern U32 UiScreenHeight; // Screen Height
extern UCHAR UiStatusBarFgColor; // Status bar foreground color
extern UCHAR UiStatusBarBgColor; // Status bar background color
extern UCHAR UiBackdropFgColor; // Backdrop foreground color
extern UCHAR UiBackdropBgColor; // Backdrop background color
extern UCHAR UiBackdropFillStyle; // Backdrop fill style
extern UCHAR UiTitleBoxFgColor; // Title box foreground color
extern UCHAR UiTitleBoxBgColor; // Title box background color
extern UCHAR UiMessageBoxFgColor; // Message box foreground color
extern UCHAR UiMessageBoxBgColor; // Message box background color
extern UCHAR UiMenuFgColor; // Menu foreground color
extern UCHAR UiMenuBgColor; // Menu background color
extern UCHAR UiTextColor; // Normal text color
extern UCHAR UiSelectedTextColor; // Selected text color
extern UCHAR UiSelectedTextBgColor; // Selected text background color
extern UCHAR UiEditBoxTextColor; // Edit box text color
extern UCHAR UiEditBoxBgColor; // Edit box text background color
extern UCHAR UiTitleBoxTitleText[260]; // Title box's title text
extern BOOL UserInterfaceUp; // Tells us if the user interface is displayed
extern BOOL UiUseSpecialEffects; // Tells us if we should use fade effects
extern UCHAR UiMonthNames[12][15];
///////////////////////////////////////////////////////////////////////////////////////
//
// User Interface Functions
//
///////////////////////////////////////////////////////////////////////////////////////
BOOL UiInitialize(BOOLEAN ShowGui); // Initialize User-Interface
VOID UiUnInitialize(PUCHAR BootText); // Un-initialize User-Interface
VOID UiDrawBackdrop(VOID); // Fills the entire screen with a backdrop
VOID UiFillArea(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR FillChar, UCHAR Attr /* Color Attributes */); // Fills the area specified with FillChar and Attr
VOID UiDrawShadow(U32 Left, U32 Top, U32 Right, U32 Bottom); // Draws a shadow on the bottom and right sides of the area specified
VOID UiDrawBox(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR VertStyle, UCHAR HorzStyle, BOOL Fill, BOOL Shadow, UCHAR Attr); // Draws a box around the area specified
VOID UiDrawText(U32 X, U32 Y, PUCHAR Text, UCHAR Attr); // Draws text at coordinates specified
VOID UiDrawCenteredText(U32 Left, U32 Top, U32 Right, U32 Bottom, PUCHAR TextString, UCHAR Attr); // Draws centered text at the coordinates specified and clips the edges
VOID UiDrawStatusText(PUCHAR StatusText); // Draws text at the very bottom line on the screen
VOID UiUpdateDateTime(VOID); // Updates the date and time
VOID UiInfoBox(PUCHAR MessageText); // Displays a info box on the screen
VOID UiMessageBox(PUCHAR MessageText); // Displays a message box on the screen with an ok button
VOID UiMessageBoxCritical(PUCHAR MessageText); // Displays a message box on the screen with an ok button using no system resources
VOID UiDrawProgressBarCenter(U32 Position, U32 Range, PUCHAR ProgressText); // Draws the progress bar showing nPos percent filled
VOID UiDrawProgressBar(U32 Left, U32 Top, U32 Right, U32 Bottom, U32 Position, U32 Range, PUCHAR ProgressText); // Draws the progress bar showing nPos percent filled
VOID UiShowMessageBoxesInSection(PUCHAR SectionName); // Displays all the message boxes in a given section
VOID UiEscapeString(PUCHAR String); // Processes a string and changes all occurances of "\n" to '\n'
BOOL UiEditBox(PUCHAR MessageText, PUCHAR EditTextBuffer, U32 Length);
UCHAR UiTextToColor(PUCHAR ColorText); // Converts the text color into it's equivalent color value
UCHAR UiTextToFillStyle(PUCHAR FillStyleText); // Converts the text fill into it's equivalent fill value
VOID UiTruncateStringEllipsis(PUCHAR StringText, U32 MaxChars); // Truncates a string to MaxChars by adding an ellipsis on the end '...'
VOID UiFadeInBackdrop(VOID); // Draws the backdrop and fades the screen in
VOID UiFadeOut(VOID); // Fades the screen out
///////////////////////////////////////////////////////////////////////////////////////
//
// Menu Functions
//
///////////////////////////////////////////////////////////////////////////////////////
typedef BOOL (*UiMenuKeyPressFilterCallback)(U32 KeyPress);
BOOL UiDisplayMenu(PUCHAR MenuItemList[], U32 MenuItemCount, U32 DefaultMenuItem, S32 MenuTimeOut, U32* SelectedMenuItem, BOOL CanEscape, UiMenuKeyPressFilterCallback KeyPressFilter);
#endif // #defined __UI_H

View File

@@ -1,63 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __VIDEO_H
#define __VIDEO_H
typedef struct
{
U8 Red;
U8 Green;
U8 Blue;
} PACKED PALETTE_ENTRY, *PPALETTE_ENTRY;
extern PVOID VideoOffScreenBuffer;
U16 BiosIsVesaSupported(VOID); // Implemented in i386vid.S, returns the VESA version
PVOID VideoAllocateOffScreenBuffer(VOID); // Returns a pointer to an off-screen buffer sufficient for the current video mode
#if 0 /* Not used */
U32 VideoGetMemoryBankForPixel(U32 X, U32 Y);
U32 VideoGetMemoryBankForPixel16(U32 X, U32 Y);
U32 VideoGetBankOffsetForPixel(U32 X, U32 Y);
U32 VideoGetBankOffsetForPixel16(U32 X, U32 Y);
VOID VideoSetMemoryBank(U16 BankNumber);
U32 VideoGetOffScreenMemoryOffsetForPixel(U32 X, U32 Y);
#endif
VOID VideoCopyOffScreenBufferToVRAM(VOID);
VOID VideoSavePaletteState(PPALETTE_ENTRY Palette, U32 ColorCount);
VOID VideoRestorePaletteState(PPALETTE_ENTRY Palette, U32 ColorCount);
#if 0 /* Not used */
VOID VideoSetPixel16(U32 X, U32 Y, U8 Color);
VOID VideoSetPixel256(U32 X, U32 Y, U8 Color);
VOID VideoSetPixelRGB(U32 X, U32 Y, U8 Red, U8 Green, U8 Blue);
VOID VideoSetPixel16_OffScreen(U32 X, U32 Y, U8 Color);
VOID VideoSetPixel256_OffScreen(U32 X, U32 Y, U8 Color);
VOID VideoSetPixelRGB_OffScreen(U32 X, U32 Y, U8 Red, U8 Green, U8 Blue);
#endif
VOID VideoSetAllColorsToBlack(U32 ColorCount);
VOID VideoFadeIn(PPALETTE_ENTRY Palette, U32 ColorCount);
VOID VideoFadeOut(U32 ColorCount);
#endif // defined __VIDEO_H

View File

@@ -1,76 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __INI_H
#define __INI_H
#include <rtl.h>
#include <fs.h>
#define INI_FILE_COMMENT_CHAR ';'
// This structure describes a single .ini file item
// The item format in the .ini file is:
// Name=Value
typedef struct
{
LIST_ITEM ListEntry;
PUCHAR ItemName;
PUCHAR ItemValue;
} INI_SECTION_ITEM, *PINI_SECTION_ITEM;
// This structure describes a .ini file section
// The section format in the .ini file is:
// [Section Name]
// This structure has a list of section items with
// one INI_SECTION_ITEM for each line in the section
typedef struct
{
LIST_ITEM ListEntry;
PUCHAR SectionName;
U32 SectionItemCount;
PINI_SECTION_ITEM SectionItemList;
} INI_SECTION, *PINI_SECTION;
extern PINI_SECTION IniFileSectionListHead;
extern U32 IniFileSectionCount;
extern U32 IniFileSettingCount;
PFILE IniOpenIniFile(U8 BootDriveNumber, U8 BootPartitionNumber);
BOOL IniParseFile(PUCHAR IniFileData, U32 IniFileSize);
U32 IniGetNextLineSize(PUCHAR IniFileData, U32 IniFileSize, U32 CurrentOffset);
U32 IniGetNextLine(PUCHAR IniFileData, U32 IniFileSize, PUCHAR Buffer, U32 BufferSize, U32 CurrentOffset);
BOOL IniIsLineEmpty(PUCHAR LineOfText, U32 TextLength);
BOOL IniIsCommentLine(PUCHAR LineOfText, U32 TextLength);
BOOL IniIsSectionName(PUCHAR LineOfText, U32 TextLength);
U32 IniGetSectionNameSize(PUCHAR SectionNameLine, U32 LineLength);
VOID IniExtractSectionName(PUCHAR SectionName, PUCHAR SectionNameLine, U32 LineLength);
BOOL IniIsSetting(PUCHAR LineOfText, U32 TextLength);
U32 IniGetSettingNameSize(PUCHAR SettingNameLine, U32 LineLength);
U32 IniGetSettingValueSize(PUCHAR SettingValueLine, U32 LineLength);
VOID IniExtractSettingName(PUCHAR SettingName, PUCHAR SettingNameLine, U32 LineLength);
VOID IniExtractSettingValue(PUCHAR SettingValue, PUCHAR SettingValueLine, U32 LineLength);
#endif // defined __INI_H

View File

@@ -1,112 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include "ini.h"
#include <fs.h>
#include <rtl.h>
#include <mm.h>
#include <debug.h>
BOOL IniFileInitialize(VOID)
{
PFILE Freeldr_Ini; // File handle for freeldr.ini
PUCHAR FreeLoaderIniFileData;
U32 FreeLoaderIniFileSize;
BOOL Success;
// Open freeldr.ini
// BootDrive & BootPartition are passed
// in from the boot sector code in the
// DL & DH registers.
Freeldr_Ini = IniOpenIniFile(BootDrive, BootPartition);
// If we couldn't open freeldr.ini on the partition
// they specified in the boot sector then try
// opening the active (boot) partition.
if ((Freeldr_Ini == NULL) && (BootPartition != 0))
{
BootPartition = 0;
Freeldr_Ini = IniOpenIniFile(BootDrive, BootPartition);
return FALSE;
}
if (Freeldr_Ini == NULL)
{
printf("Error opening freeldr.ini or file not found.\n");
printf("You need to re-install FreeLoader.\n");
return FALSE;
}
// Get the file size & allocate enough memory for it
FreeLoaderIniFileSize = FsGetFileSize(Freeldr_Ini);
FreeLoaderIniFileData = MmAllocateMemory(FreeLoaderIniFileSize);
// If we are out of memory then return FALSE
if (FreeLoaderIniFileData == NULL)
{
printf("Out of memory while loading freeldr.ini.\n");
FsCloseFile(Freeldr_Ini);
return FALSE;
}
// Read freeldr.ini off the disk
if (!FsReadFile(Freeldr_Ini, FreeLoaderIniFileSize, NULL, FreeLoaderIniFileData))
{
FsCloseFile(Freeldr_Ini);
MmFreeMemory(FreeLoaderIniFileData);
return FALSE;
}
FsCloseFile(Freeldr_Ini);
// Parse the .ini file data
Success = IniParseFile(FreeLoaderIniFileData, FreeLoaderIniFileSize);
MmFreeMemory(FreeLoaderIniFileData);
return Success;
}
PFILE IniOpenIniFile(U8 BootDriveNumber, U8 BootPartitionNumber)
{
PFILE IniFileHandle; // File handle for freeldr.ini
if (!FsOpenVolume(BootDriveNumber, BootPartitionNumber))
{
if (BootPartitionNumber == 0)
{
printf("Error opening active (bootable) partition on boot drive 0x%x for file access.\n", BootDriveNumber);
}
else
{
printf("Error opening partition %d on boot drive 0x%x for file access.\n", BootPartitionNumber, BootDriveNumber);
}
return NULL;
}
// Try to open freeldr.ini
IniFileHandle = FsOpenFile("freeldr.ini");
return IniFileHandle;
}

View File

@@ -1,187 +0,0 @@
/* $Id: machine.c,v 1.7 2004/11/28 22:42:39 gvg Exp $
*
* FreeLoader
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "freeldr.h"
#include "machine.h"
#undef MachConsPutChar
#undef MachConsKbHit
#undef MachConsGetCh
#undef MachVideoClearScreen
#undef MachVideoSetDisplayMode
#undef MachVideoGetDisplaySize
#undef MachVideoGetBufferSize
#undef MachVideoSetTextCursorPosition
#undef MachVideoHideShowTextCursor
#undef MachVideoPutChar
#undef MachVideoCopyOffScreenBufferToVRAM
#undef MachVideoIsPaletteFixed
#undef MachVideoSetPaletteColor
#undef MachVideoGetPaletteColor
#undef MachVideoSync
#undef MachVideoPrepareForReactOS
#undef MachGetMemoryMap
#undef MachDiskReadLogicalSectors
#undef MachDiskGetPartitionEntry
#undef MachDiskGetDriveGeometry
#undef MachDiskGetCacheableBlockCount
#undef MachRTCGetCurrentDateTime
#undef MachHwDetect
MACHVTBL MachVtbl;
VOID
MachConsPutChar(int Ch)
{
MachVtbl.ConsPutChar(Ch);
}
BOOL
MachConsKbHit()
{
return MachVtbl.ConsKbHit();
}
int
MachConsGetCh()
{
return MachVtbl.ConsGetCh();
}
VOID
MachVideoClearScreen(U8 Attr)
{
MachVtbl.VideoClearScreen(Attr);
}
VIDEODISPLAYMODE
MachVideoSetDisplayMode(char *DisplayMode, BOOL Init)
{
return MachVtbl.VideoSetDisplayMode(DisplayMode, Init);
}
VOID
MachVideoGetDisplaySize(PU32 Width, PU32 Height, PU32 Depth)
{
return MachVtbl.VideoGetDisplaySize(Width, Height, Depth);
}
U32
MachVideoGetBufferSize(VOID)
{
return MachVtbl.VideoGetBufferSize();
}
VOID
MachVideoSetTextCursorPosition(U32 X, U32 Y)
{
return MachVtbl.VideoSetTextCursorPosition(X, Y);
}
VOID
MachVideoHideShowTextCursor(BOOL Show)
{
MachVtbl.VideoHideShowTextCursor(Show);
}
VOID
MachVideoPutChar(int Ch, U8 Attr, unsigned X, unsigned Y)
{
MachVtbl.VideoPutChar(Ch, Attr, X, Y);
}
VOID
MachVideoCopyOffScreenBufferToVRAM(PVOID Buffer)
{
MachVtbl.VideoCopyOffScreenBufferToVRAM(Buffer);
}
BOOL
MachVideoIsPaletteFixed(VOID)
{
return MachVtbl.VideoIsPaletteFixed();
}
VOID
MachVideoSetPaletteColor(U8 Color, U8 Red, U8 Green, U8 Blue)
{
return MachVtbl.VideoSetPaletteColor(Color, Red, Green, Blue);
}
VOID
MachVideoGetPaletteColor(U8 Color, U8 *Red, U8 *Green, U8 *Blue)
{
return MachVtbl.VideoGetPaletteColor(Color, Red, Green, Blue);
}
VOID
MachVideoSync(VOID)
{
MachVtbl.VideoSync();
}
VOID
MachVideoPrepareForReactOS(VOID)
{
MachVtbl.VideoPrepareForReactOS();
}
U32
MachGetMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MaxMemoryMapSize)
{
return MachVtbl.GetMemoryMap(BiosMemoryMap, MaxMemoryMapSize);
}
BOOL
MachDiskReadLogicalSectors(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer)
{
return MachVtbl.DiskReadLogicalSectors(DriveNumber, SectorNumber, SectorCount, Buffer);
}
BOOL
MachDiskGetPartitionEntry(U32 DriveNumber, U32 PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry)
{
return MachVtbl.DiskGetPartitionEntry(DriveNumber, PartitionNumber, PartitionTableEntry);
}
BOOL
MachDiskGetDriveGeometry(U32 DriveNumber, PGEOMETRY DriveGeometry)
{
return MachVtbl.DiskGetDriveGeometry(DriveNumber, DriveGeometry);
}
U32
MachDiskGetCacheableBlockCount(U32 DriveNumber)
{
return MachVtbl.DiskGetCacheableBlockCount(DriveNumber);
}
VOID
MachRTCGetCurrentDateTime(PU32 Year, PU32 Month, PU32 Day, PU32 Hour, PU32 Minute, PU32 Second)
{
MachVtbl.RTCGetCurrentDateTime(Year, Month, Day, Hour, Minute, Second);
}
VOID
MachHwDetect(VOID)
{
MachVtbl.HwDetect();
}
/* EOF */

File diff suppressed because it is too large Load Diff

View File

@@ -1,70 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __MEM_H
#define __MEM_H
#ifdef __i386__
#define MM_PAGE_SIZE 4096
#endif // defined __i386__
typedef struct
{
U32 PageAllocated; // Zero = free, non-zero = allocated
U32 PageAllocationLength; // Number of pages allocated (or zero if this isn't the first page in the chain)
} PACKED PAGE_LOOKUP_TABLE_ITEM, *PPAGE_LOOKUP_TABLE_ITEM;
//
// Define this to 1 if you want the entire contents
// of the memory allocation bitmap displayed
// when a chunk is allocated or freed
//
#define DUMP_MEM_MAP_ON_VERIFY 0
extern PVOID PageLookupTableAddress;
extern U32 TotalPagesInLookupTable;
extern U32 FreePagesInLookupTable;
extern U32 LastFreePageHint;
#ifdef DEBUG
PUCHAR MmGetSystemMemoryMapTypeString(U32 Type);
#endif
U32 MmGetPageNumberFromAddress(PVOID Address); // Returns the page number that contains a linear address
PVOID MmGetEndAddressOfAnyMemory(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MapCount); // Returns the last address of memory from the memory map
U32 MmGetAddressablePageCountIncludingHoles(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MapCount); // Returns the count of addressable pages from address zero including any memory holes and reserved memory regions
PVOID MmFindLocationForPageLookupTable(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MapCount); // Returns the address for a memory chunk big enough to hold the page lookup table (starts search from end of memory)
VOID MmSortBiosMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MapCount); // Sorts the BIOS_MEMORY_MAP array so the first element corresponds to the first address in memory
VOID MmInitPageLookupTable(PVOID PageLookupTable, U32 TotalPageCount, PBIOS_MEMORY_MAP BiosMemoryMap, U32 MapCount); // Inits the page lookup table according to the memory types in the memory map
VOID MmMarkPagesInLookupTable(PVOID PageLookupTable, U32 StartPage, U32 PageCount, U32 PageAllocated); // Marks the specified pages as allocated or free in the lookup table
VOID MmAllocatePagesInLookupTable(PVOID PageLookupTable, U32 StartPage, U32 PageCount); // Allocates the specified pages in the lookup table
U32 MmCountFreePagesInLookupTable(PVOID PageLookupTable, U32 TotalPageCount); // Returns the number of free pages in the lookup table
U32 MmFindAvailablePagesFromEnd(PVOID PageLookupTable, U32 TotalPageCount, U32 PagesNeeded); // Returns the page number of the first available page range from the end of memory
U32 MmFindAvailablePagesBeforePage(PVOID PageLookupTable, U32 TotalPageCount, U32 PagesNeeded, U32 LastPage); // Returns the page number of the first available page range before the specified page
VOID MmFixupSystemMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, U32* MapCount); // Removes entries in the memory map that describe memory above 4G
VOID MmUpdateLastFreePageHint(PVOID PageLookupTable, U32 TotalPageCount); // Sets the LastFreePageHint to the last usable page of memory
BOOL MmAreMemoryPagesAvailable(PVOID PageLookupTable, U32 TotalPageCount, PVOID PageAddress, U32 PageCount); // Returns TRUE if the specified pages of memory are available, otherwise FALSE
#endif // defined __MEM_H

View File

@@ -1,271 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <arch.h>
#include <rtl.h>
#include <fs.h>
#include <multiboot.h>
#include <ui.h>
#include <inifile.h>
#include <mm.h>
unsigned long next_module_load_base = 0;
module_t* pOpenModule = NULL;
BOOL MultiBootLoadKernel(FILE *KernelImage)
{
U32* ImageHeaders;
int Idx;
U32 dwHeaderChecksum;
U32 dwFileLoadOffset;
U32 dwDataSize;
U32 dwBssSize;
// Allocate 8192 bytes for multiboot header
ImageHeaders = (U32*)MmAllocateMemory(8192);
if (ImageHeaders == NULL)
{
return FALSE;
}
/*
* Load the first 8192 bytes of the kernel image
* so we can search for the multiboot header
*/
if (!FsReadFile(KernelImage, 8192, NULL, ImageHeaders))
{
MmFreeMemory(ImageHeaders);
return FALSE;
}
/*
* Now find the multiboot header and copy it
*/
for (Idx=0; Idx<2048; Idx++)
{
// Did we find it?
if (ImageHeaders[Idx] == MULTIBOOT_HEADER_MAGIC)
{
// Yes, copy it and break out of this loop
memcpy(&mb_header, &ImageHeaders[Idx], sizeof(multiboot_header_t));
break;
}
}
MmFreeMemory(ImageHeaders);
/*
* If we reached the end of the 8192 bytes without
* finding the multiboot header then return error
*/
if (Idx == 2048)
{
UiMessageBox("No multiboot header found!");
return FALSE;
}
/*printf("multiboot header:\n");
printf("0x%x\n", mb_header.magic);
printf("0x%x\n", mb_header.flags);
printf("0x%x\n", mb_header.checksum);
printf("0x%x\n", mb_header.header_addr);
printf("0x%x\n", mb_header.load_addr);
printf("0x%x\n", mb_header.load_end_addr);
printf("0x%x\n", mb_header.bss_end_addr);
printf("0x%x\n", mb_header.entry_addr);
getch();*/
/*
* Calculate the checksum and make sure it matches
*/
dwHeaderChecksum = mb_header.magic;
dwHeaderChecksum += mb_header.flags;
dwHeaderChecksum += mb_header.checksum;
if (dwHeaderChecksum != 0)
{
UiMessageBox("Multiboot header checksum invalid!");
return FALSE;
}
/*
* Get the file offset, this should be 0, and move the file pointer
*/
dwFileLoadOffset = (Idx * sizeof(U32)) - (mb_header.header_addr - mb_header.load_addr);
FsSetFilePointer(KernelImage, dwFileLoadOffset);
/*
* Load the file image
*/
dwDataSize = (mb_header.load_end_addr - mb_header.load_addr);
FsReadFile(KernelImage, dwDataSize, NULL, (void*)mb_header.load_addr);
/*
* Initialize bss area
*/
dwBssSize = (mb_header.bss_end_addr - mb_header.load_end_addr);
memset((void*)mb_header.load_end_addr, 0, dwBssSize);
next_module_load_base = ROUND_UP(mb_header.bss_end_addr, /*PAGE_SIZE*/4096);
return TRUE;
}
#if 0
BOOL MultiBootLoadModule(FILE *ModuleImage, char *ModuleName)
{
U32 dwModuleSize;
module_t* pModule;
char* ModuleNameString;
char * TempName;
/*
* Get current module data structure and module name string array
*/
pModule = &multiboot_modules[mb_info.mods_count];
do {
TempName = strchr( ModuleName, '\\' );
if( TempName )
ModuleName = TempName + 1;
} while( TempName );
ModuleNameString = multiboot_module_strings[mb_info.mods_count];
dwModuleSize = FsGetFileSize(ModuleImage);
pModule->mod_start = next_module_load_base;
pModule->mod_end = next_module_load_base + dwModuleSize;
strcpy(ModuleNameString, ModuleName);
pModule->string = (unsigned long)ModuleNameString;
/*
* Load the file image
*/
FsReadFile(ModuleImage, dwModuleSize, NULL, (void*)next_module_load_base);
next_module_load_base = ROUND_UP(pModule->mod_end, /*PAGE_SIZE*/4096);
mb_info.mods_count++;
return TRUE;
}
#endif
PVOID MultiBootLoadModule(FILE *ModuleImage, char *ModuleName, U32* ModuleSize)
{
U32 dwModuleSize;
module_t* pModule;
char* ModuleNameString;
char * TempName;
/*
* Get current module data structure and module name string array
*/
pModule = &multiboot_modules[mb_info.mods_count];
do {
TempName = strchr( ModuleName, '\\' );
if( TempName )
ModuleName = TempName + 1;
} while( TempName );
ModuleNameString = multiboot_module_strings[mb_info.mods_count];
dwModuleSize = FsGetFileSize(ModuleImage);
pModule->mod_start = next_module_load_base;
pModule->mod_end = next_module_load_base + dwModuleSize;
strcpy(ModuleNameString, ModuleName);
pModule->string = (unsigned long)ModuleNameString;
/*
* Load the file image
*/
FsReadFile(ModuleImage, dwModuleSize, NULL, (void*)next_module_load_base);
next_module_load_base = ROUND_UP(pModule->mod_end, /*PAGE_SIZE*/4096);
mb_info.mods_count++;
if (ModuleSize != NULL)
*ModuleSize = dwModuleSize;
return((PVOID)pModule->mod_start);
}
#if 0
int GetBootPartition(char *OperatingSystemName)
{
int BootPartitionNumber = -1;
char value[1024];
U32 SectionId;
if (IniOpenSection(OperatingSystemName, &SectionId))
{
if (IniReadSettingByName(SectionId, "BootPartition", value, 1024))
{
BootPartitionNumber = atoi(value);
}
}
return BootPartitionNumber;
}
#endif
PVOID MultiBootCreateModule(char *ModuleName)
{
module_t* pModule;
char* ModuleNameString;
/*
* Get current module data structure and module name string array
*/
pModule = &multiboot_modules[mb_info.mods_count];
ModuleNameString = multiboot_module_strings[mb_info.mods_count];
pModule->mod_start = next_module_load_base;
pModule->mod_end = -1;
strcpy(ModuleNameString, ModuleName);
pModule->string = (unsigned long)ModuleNameString;
pOpenModule = pModule;
return((PVOID)pModule->mod_start);
}
BOOL MultiBootCloseModule(PVOID ModuleBase, U32 dwModuleSize)
{
module_t* pModule;
if ((pOpenModule != NULL) &&
((module_t*)ModuleBase == (module_t*)pOpenModule->mod_start) &&
(pOpenModule->mod_end == -1))
{
pModule = pOpenModule;
pModule->mod_end = pModule->mod_start + dwModuleSize;
next_module_load_base = ROUND_UP(pModule->mod_end, /*PAGE_SIZE*/4096);
mb_info.mods_count++;
pOpenModule = NULL;
return(TRUE);
}
return(FALSE);
}

View File

@@ -1,141 +0,0 @@
/*
* FreeLoader - arcname.c
*
* Copyright (C) 2001 Brian Palmer <brianp@sginet.com>
* Copyright (C) 2001 Eric Kohl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <rtl.h>
BOOL DissectArcPath(char *ArcPath, char *BootPath, U32* BootDrive, U32* BootPartition)
{
char *p;
if (strnicmp(ArcPath, "multi(0)disk(0)", 15) != 0)
return FALSE;
p = ArcPath + 15;
if (strnicmp(p, "fdisk(", 6) == 0)
{
/*
* floppy disk path:
* multi(0)disk(0)fdisk(x)\path
*/
p = p + 6;
*BootDrive = atoi(p);
p = strchr(p, ')');
if (p == NULL)
return FALSE;
p++;
*BootPartition = 0;
}
else if (strnicmp(p, "rdisk(", 6) == 0)
{
/*
* hard disk path:
* multi(0)disk(0)rdisk(x)partition(y)\path
*/
p = p + 6;
*BootDrive = atoi(p) + 0x80;
p = strchr(p, ')');
if ((p == NULL) || (strnicmp(p, ")partition(", 11) != 0))
return FALSE;
p = p + 11;
*BootPartition = atoi(p);
p = strchr(p, ')');
if ((p == NULL) || (*BootPartition == 0))
return FALSE;
p++;
}
else
{
return FALSE;
}
strcpy(BootPath, p);
return TRUE;
}
void ConstructArcPath(PUCHAR ArcPath, PUCHAR SystemFolder, U32 Disk, U32 Partition)
{
char tmp[50];
strcpy(ArcPath, "multi(0)disk(0)");
if (Disk < 0x80)
{
/*
* floppy disk path:
* multi(0)disk(0)fdisk(x)\path
*/
sprintf(tmp, "fdisk(%d)", (int) Disk);
strcat(ArcPath, tmp);
}
else
{
/*
* hard disk path:
* multi(0)disk(0)rdisk(x)partition(y)\path
*/
sprintf(tmp, "rdisk(%d)partition(%d)", (int) (Disk - 0x80), (int) Partition);
strcat(ArcPath, tmp);
}
if (SystemFolder[0] == '\\' || SystemFolder[0] == '/')
{
strcat(ArcPath, SystemFolder);
}
else
{
strcat(ArcPath, "\\");
strcat(ArcPath, SystemFolder);
}
}
U32 ConvertArcNameToBiosDriveNumber(PUCHAR ArcPath)
{
char * p;
U32 DriveNumber = 0;
if (strnicmp(ArcPath, "multi(0)disk(0)", 15) != 0)
return 0;
p = ArcPath + 15;
if (strnicmp(p, "fdisk(", 6) == 0)
{
/*
* floppy disk path:
* multi(0)disk(0)fdisk(x)\path
*/
p = p + 6;
DriveNumber = atoi(p);
}
else if (strnicmp(p, "rdisk(", 6) == 0)
{
/*
* hard disk path:
* multi(0)disk(0)rdisk(x)partition(y)\path
*/
p = p + 6;
DriveNumber = atoi(p) + 0x80;
}
return DriveNumber;
}

View File

@@ -1,924 +0,0 @@
/*
* FreeLoader
*
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <debug.h>
#include <arch.h>
#include <reactos.h>
#include <rtl.h>
#include <disk.h>
#include <fs.h>
#include <ui.h>
#include <multiboot.h>
#include <mm.h>
#include <machine.h>
#include <inifile.h>
#include "registry.h"
#define NDEBUG
#define IsRecognizedPartition(P) \
((P) == PARTITION_FAT_12 || \
(P) == PARTITION_FAT_16 || \
(P) == PARTITION_HUGE || \
(P) == PARTITION_IFS || \
(P) == PARTITION_EXT2 || \
(P) == PARTITION_FAT32 || \
(P) == PARTITION_FAT32_XINT13 || \
(P) == PARTITION_XINT13)
static BOOL
LoadKernel(PCHAR szFileName, int nPos)
{
PFILE FilePointer;
PCHAR szShortName;
char szBuffer[256];
szShortName = strrchr(szFileName, '\\');
if (szShortName == NULL)
szShortName = szFileName;
else
szShortName = szShortName + 1;
FilePointer = FsOpenFile(szFileName);
if (FilePointer == NULL)
{
strcpy(szBuffer, szShortName);
strcat(szBuffer, " not found.");
UiMessageBox(szBuffer);
return(FALSE);
}
/*
* Update the status bar with the current file
*/
strcpy(szBuffer, "Reading ");
strcat(szBuffer, szShortName);
UiDrawStatusText(szBuffer);
/*
* Load the kernel
*/
MultiBootLoadKernel(FilePointer);
UiDrawProgressBarCenter(nPos, 100, "Loading ReactOS...");
return(TRUE);
}
static BOOL
LoadSymbolFile(PCHAR szSystemRoot,
PCHAR ModuleName,
int nPos)
{
CHAR SymbolFileName[1024];
PFILE FilePointer;
U32 Length;
PCHAR Start;
PCHAR Ext;
char value[256];
char *p;
/* Get the path to the symbol store */
strcpy(SymbolFileName, szSystemRoot);
strcat(SymbolFileName, "symbols\\");
/* Get the symbol filename from the module name */
Start = strrchr(ModuleName, '\\');
if (Start == NULL)
Start = ModuleName;
else
Start++;
Ext = strrchr(ModuleName, '.');
if (Ext != NULL)
Length = Ext - Start;
else
Length = strlen(Start);
strncat(SymbolFileName, Start, Length);
strcat(SymbolFileName, ".sym");
FilePointer = FsOpenFile((PCHAR)&SymbolFileName[0]);
if (FilePointer == NULL)
{
DbgPrint((DPRINT_REACTOS, "Symbol file %s not loaded.\n", SymbolFileName));
/* This is not critical */
return FALSE;
}
DbgPrint((DPRINT_REACTOS, "Symbol file %s is loaded.\n", SymbolFileName));
/*
* Update the status bar with the current file
*/
strcpy(value, "Reading ");
p = strrchr(SymbolFileName, '\\');
if (p == NULL)
strcat(value, SymbolFileName);
else
strcat(value, p + 1);
UiDrawStatusText(value);
/*
* Load the symbol file
*/
MultiBootLoadModule(FilePointer, SymbolFileName, NULL);
UiDrawProgressBarCenter(nPos, 100, "Loading ReactOS...");
return (TRUE);
}
static BOOL
LoadDriver(PCHAR szFileName, int nPos)
{
PFILE FilePointer;
char value[256];
char *p;
FilePointer = FsOpenFile(szFileName);
if (FilePointer == NULL)
{
strcpy(value, szFileName);
strcat(value, " not found.");
UiMessageBox(value);
return(FALSE);
}
/*
* Update the status bar with the current file
*/
strcpy(value, "Reading ");
p = strrchr(szFileName, '\\');
if (p == NULL)
strcat(value, szFileName);
else
strcat(value, p + 1);
UiDrawStatusText(value);
/*
* Load the driver
*/
MultiBootLoadModule(FilePointer, szFileName, NULL);
UiDrawProgressBarCenter(nPos, 100, "Loading ReactOS...");
return(TRUE);
}
static BOOL
LoadNlsFile(PCHAR szFileName, PCHAR szModuleName)
{
PFILE FilePointer;
char value[256];
char *p;
FilePointer = FsOpenFile(szFileName);
if (FilePointer == NULL)
{
strcpy(value, szFileName);
strcat(value, " not found.");
UiMessageBox(value);
return(FALSE);
}
/*
* Update the status bar with the current file
*/
strcpy(value, "Reading ");
p = strrchr(szFileName, '\\');
if (p == NULL)
strcat(value, szFileName);
else
strcat(value, p + 1);
UiDrawStatusText(value);
/*
* Load the driver
*/
MultiBootLoadModule(FilePointer, szModuleName, NULL);
return(TRUE);
}
static VOID
LoadBootDrivers(PCHAR szSystemRoot, int nPos)
{
S32 rc = 0;
HKEY hGroupKey, hOrderKey, hServiceKey, hDriverKey;
char GroupNameBuffer[512];
char ServiceName[256];
U32 OrderList[128];
U32 BufferSize;
U32 Index;
U32 TagIndex;
char *GroupName;
U32 ValueSize;
U32 ValueType;
U32 StartValue;
U32 TagValue;
UCHAR DriverGroup[256];
U32 DriverGroupSize;
UCHAR ImagePath[256];
UCHAR TempImagePath[256];
/* get 'service group order' key */
rc = RegOpenKey(NULL,
"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\ServiceGroupOrder",
&hGroupKey);
if (rc != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REACTOS, "Failed to open the 'ServiceGroupOrder' key (rc %d)\n", (int)rc));
return;
}
/* get 'group order list' key */
rc = RegOpenKey(NULL,
"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\GroupOrderList",
&hOrderKey);
if (rc != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REACTOS, "Failed to open the 'GroupOrderList' key (rc %d)\n", (int)rc));
return;
}
/* enumerate drivers */
rc = RegOpenKey(NULL,
"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Services",
&hServiceKey);
if (rc != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REACTOS, "Failed to open the 'Services' key (rc %d)\n", (int)rc));
return;
}
BufferSize = sizeof(GroupNameBuffer);
rc = RegQueryValue(hGroupKey, "List", NULL, (PUCHAR)GroupNameBuffer, &BufferSize);
DbgPrint((DPRINT_REACTOS, "RegQueryValue(): rc %d\n", (int)rc));
if (rc != ERROR_SUCCESS)
return;
DbgPrint((DPRINT_REACTOS, "BufferSize: %d \n", (int)BufferSize));
DbgPrint((DPRINT_REACTOS, "GroupNameBuffer: '%s' \n", GroupNameBuffer));
GroupName = GroupNameBuffer;
while (*GroupName)
{
DbgPrint((DPRINT_REACTOS, "Driver group: '%s'\n", GroupName));
BufferSize = sizeof(OrderList);
rc = RegQueryValue(hOrderKey, GroupName, NULL, (PUCHAR)OrderList, &BufferSize);
if (rc != ERROR_SUCCESS)
{
OrderList[0] = 0;
}
for (TagIndex = 1; TagIndex <= OrderList[0]; TagIndex++)
{
/* enumerate all drivers */
Index = 0;
while (TRUE)
{
ValueSize = sizeof(ServiceName);
rc = RegEnumKey(hServiceKey, Index, ServiceName, &ValueSize);
DbgPrint((DPRINT_REACTOS, "RegEnumKey(): rc %d\n", (int)rc));
if (rc == ERROR_NO_MORE_ITEMS)
break;
if (rc != ERROR_SUCCESS)
return;
DbgPrint((DPRINT_REACTOS, "Service %d: '%s'\n", (int)Index, ServiceName));
/* open driver Key */
rc = RegOpenKey(hServiceKey, ServiceName, &hDriverKey);
ValueSize = sizeof(U32);
rc = RegQueryValue(hDriverKey, "Start", &ValueType, (PUCHAR)&StartValue, &ValueSize);
DbgPrint((DPRINT_REACTOS, " Start: %x \n", (int)StartValue));
ValueSize = sizeof(U32);
rc = RegQueryValue(hDriverKey, "Tag", &ValueType, (PUCHAR)&TagValue, &ValueSize);
if (rc != ERROR_SUCCESS)
{
TagValue = (U32)-1;
}
DbgPrint((DPRINT_REACTOS, " Tag: %x \n", (int)TagValue));
DriverGroupSize = 256;
rc = RegQueryValue(hDriverKey, "Group", NULL, (PUCHAR)DriverGroup, &DriverGroupSize);
DbgPrint((DPRINT_REACTOS, " Group: '%s' \n", DriverGroup));
if ((StartValue == 0) && (TagValue == OrderList[TagIndex]) &&(stricmp(DriverGroup, GroupName) == 0))
{
ValueSize = 256;
rc = RegQueryValue(hDriverKey,
"ImagePath",
NULL,
(PUCHAR)TempImagePath,
&ValueSize);
if (rc != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REACTOS, " ImagePath: not found\n"));
strcpy(ImagePath, szSystemRoot);
strcat(ImagePath, "system32\\drivers\\");
strcat(ImagePath, ServiceName);
strcat(ImagePath, ".sys");
}
else if (TempImagePath[0] != '\\')
{
strcpy(ImagePath, szSystemRoot);
strcat(ImagePath, TempImagePath);
}
else
{
strcpy(ImagePath, TempImagePath);
DbgPrint((DPRINT_REACTOS, " ImagePath: '%s'\n", ImagePath));
}
DbgPrint((DPRINT_REACTOS, " Loading driver: '%s'\n", ImagePath));
if (nPos < 100)
nPos += 5;
LoadDriver(ImagePath, nPos);
LoadSymbolFile(szSystemRoot, ImagePath, nPos);
}
else
{
DbgPrint((DPRINT_REACTOS, " Skipping driver '%s' with Start %d, Tag %d and Group '%s' (Current Tag %d, current group '%s')\n",
ServiceName, StartValue, TagValue, DriverGroup, OrderList[TagIndex], GroupName));
}
Index++;
}
}
Index = 0;
while (TRUE)
{
ValueSize = sizeof(ServiceName);
rc = RegEnumKey(hServiceKey, Index, ServiceName, &ValueSize);
DbgPrint((DPRINT_REACTOS, "RegEnumKey(): rc %d\n", (int)rc));
if (rc == ERROR_NO_MORE_ITEMS)
break;
if (rc != ERROR_SUCCESS)
return;
DbgPrint((DPRINT_REACTOS, "Service %d: '%s'\n", (int)Index, ServiceName));
/* open driver Key */
rc = RegOpenKey(hServiceKey, ServiceName, &hDriverKey);
ValueSize = sizeof(U32);
rc = RegQueryValue(hDriverKey, "Start", &ValueType, (PUCHAR)&StartValue, &ValueSize);
DbgPrint((DPRINT_REACTOS, " Start: %x \n", (int)StartValue));
ValueSize = sizeof(U32);
rc = RegQueryValue(hDriverKey, "Tag", &ValueType, (PUCHAR)&TagValue, &ValueSize);
if (rc != ERROR_SUCCESS)
{
TagValue = (U32)-1;
}
DbgPrint((DPRINT_REACTOS, " Tag: %x \n", (int)TagValue));
DriverGroupSize = 256;
rc = RegQueryValue(hDriverKey, "Group", NULL, (PUCHAR)DriverGroup, &DriverGroupSize);
DbgPrint((DPRINT_REACTOS, " Group: '%s' \n", DriverGroup));
for (TagIndex = 1; TagIndex <= OrderList[0]; TagIndex++)
{
if (TagValue == OrderList[TagIndex])
break;
}
if ((StartValue == 0) && (TagIndex > OrderList[0]) && (stricmp(DriverGroup, GroupName) == 0))
{
ValueSize = 256;
rc = RegQueryValue(hDriverKey,
"ImagePath",
NULL,
(PUCHAR)TempImagePath,
&ValueSize);
if (rc != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REACTOS, " ImagePath: not found\n"));
strcpy(ImagePath, szSystemRoot);
strcat(ImagePath, "system32\\drivers\\");
strcat(ImagePath, ServiceName);
strcat(ImagePath, ".sys");
}
else if (TempImagePath[0] != '\\')
{
strcpy(ImagePath, szSystemRoot);
strcat(ImagePath, TempImagePath);
}
else
{
strcpy(ImagePath, TempImagePath);
DbgPrint((DPRINT_REACTOS, " ImagePath: '%s'\n", ImagePath));
}
DbgPrint((DPRINT_REACTOS, " Loading driver: '%s'\n", ImagePath));
if (nPos < 100)
nPos += 5;
LoadDriver(ImagePath, nPos);
LoadSymbolFile(szSystemRoot, ImagePath, nPos);
}
else
{
DbgPrint((DPRINT_REACTOS, " Skipping driver '%s' with Start %d, Tag %d and Group '%s' (Current group '%s')\n",
ServiceName, StartValue, TagValue, DriverGroup, GroupName));
}
Index++;
}
GroupName = GroupName + strlen(GroupName) + 1;
}
}
static BOOL
LoadNlsFiles(PCHAR szSystemRoot, PCHAR szErrorOut)
{
S32 rc = ERROR_SUCCESS;
HKEY hKey;
char szIdBuffer[80];
char szNameBuffer[80];
char szFileName[256];
U32 BufferSize;
/* open the codepage key */
rc = RegOpenKey(NULL,
"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage",
&hKey);
if (rc != ERROR_SUCCESS) {
strcpy(szErrorOut, "Couldn't open CodePage registry key");
return(FALSE);
}
/* get ANSI codepage */
BufferSize = 80;
rc = RegQueryValue(hKey, "ACP", NULL, (PUCHAR)szIdBuffer, &BufferSize);
if (rc != ERROR_SUCCESS) {
strcpy(szErrorOut, "Couldn't get ACP NLS setting");
return(FALSE);
}
BufferSize = 80;
rc = RegQueryValue(hKey, szIdBuffer, NULL, (PUCHAR)szNameBuffer, &BufferSize);
if (rc != ERROR_SUCCESS) {
strcpy(szErrorOut, "ACP NLS Setting exists, but isn't readable");
return(FALSE);
}
/* load ANSI codepage table */
strcpy(szFileName, szSystemRoot);
strcat(szFileName, "system32\\");
strcat(szFileName, szNameBuffer);
DbgPrint((DPRINT_REACTOS, "ANSI file: %s\n", szFileName));
if (!LoadNlsFile(szFileName, "ansi.nls")) {
strcpy(szErrorOut, "Couldn't load ansi.nls");
return(FALSE);
}
/* get OEM codepage */
BufferSize = 80;
rc = RegQueryValue(hKey, "OEMCP", NULL, (PUCHAR)szIdBuffer, &BufferSize);
if (rc != ERROR_SUCCESS) {
strcpy(szErrorOut, "Couldn't get OEMCP NLS setting");
return(FALSE);
}
BufferSize = 80;
rc = RegQueryValue(hKey, szIdBuffer, NULL, (PUCHAR)szNameBuffer, &BufferSize);
if (rc != ERROR_SUCCESS) {
strcpy(szErrorOut, "OEMCP NLS setting exists, but isn't readable");
return(FALSE);
}
/* load OEM codepage table */
strcpy(szFileName, szSystemRoot);
strcat(szFileName, "system32\\");
strcat(szFileName, szNameBuffer);
DbgPrint((DPRINT_REACTOS, "Oem file: %s\n", szFileName));
if (!LoadNlsFile(szFileName, "oem.nls")) {
strcpy(szErrorOut, "Couldn't load oem.nls");
return(FALSE);
}
/* open the language key */
rc = RegOpenKey(NULL,
"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\NLS\\Language",
&hKey);
if (rc != ERROR_SUCCESS) {
strcpy(szErrorOut, "Couldn't open Language registry key");
return(FALSE);
}
/* get the Unicode case table */
BufferSize = 80;
rc = RegQueryValue(hKey, "Default", NULL, (PUCHAR)szIdBuffer, &BufferSize);
if (rc != ERROR_SUCCESS) {
strcpy(szErrorOut, "Couldn't get Language Default setting");
return(FALSE);
}
BufferSize = 80;
rc = RegQueryValue(hKey, szIdBuffer, NULL, (PUCHAR)szNameBuffer, &BufferSize);
if (rc != ERROR_SUCCESS) {
strcpy(szErrorOut,
"Language Default setting exists, but isn't readable");
return(FALSE);
}
/* load Unicode case table */
strcpy(szFileName, szSystemRoot);
strcat(szFileName, "system32\\");
strcat(szFileName, szNameBuffer);
DbgPrint((DPRINT_REACTOS, "Casemap file: %s\n", szFileName));
if (!LoadNlsFile(szFileName, "casemap.nls")) {
strcpy(szErrorOut, "casemap.nls");
return(FALSE);
}
return(TRUE);
}
void
LoadAndBootReactOS(PUCHAR OperatingSystemName)
{
PFILE FilePointer;
char name[1024];
char value[1024];
char szKernelName[1024];
char szHalName[1024];
char szFileName[1024];
char szBootPath[256];
int i;
char MsgBuffer[256];
U32 SectionId;
char* Base;
U32 Size;
PARTITION_TABLE_ENTRY PartitionTableEntry;
U32 rosPartition;
//
// Open the operating system section
// specified in the .ini file
//
if (!IniOpenSection(OperatingSystemName, &SectionId))
{
sprintf(MsgBuffer,"Operating System section '%s' not found in freeldr.ini", OperatingSystemName);
UiMessageBox(MsgBuffer);
return;
}
/*
* Setup multiboot information structure
*/
mb_info.flags = MB_INFO_FLAG_MEM_SIZE | MB_INFO_FLAG_BOOT_DEVICE | MB_INFO_FLAG_COMMAND_LINE | MB_INFO_FLAG_MODULES;
mb_info.boot_device = 0xffffffff;
mb_info.cmdline = (unsigned long)multiboot_kernel_cmdline;
mb_info.mods_count = 0;
mb_info.mods_addr = (unsigned long)multiboot_modules;
mb_info.mmap_length = (unsigned long)MachGetMemoryMap((PBIOS_MEMORY_MAP)(PVOID)&multiboot_memory_map, 32) * sizeof(memory_map_t);
if (mb_info.mmap_length)
{
mb_info.mmap_addr = (unsigned long)&multiboot_memory_map;
mb_info.flags |= MB_INFO_FLAG_MEM_SIZE | MB_INFO_FLAG_MEMORY_MAP;
multiboot_memory_map_descriptor_size = sizeof(memory_map_t); // GetBiosMemoryMap uses a fixed value of 24
DbgPrint((DPRINT_REACTOS, "memory map length: %d\n", mb_info.mmap_length));
DbgPrint((DPRINT_REACTOS, "dumping memory map:\n"));
for (i=0; i<(mb_info.mmap_length/sizeof(memory_map_t)); i++)
{
if (MEMTYPE_USABLE == multiboot_memory_map[i].type &&
0 == multiboot_memory_map[i].base_addr_low)
{
mb_info.mem_lower = (multiboot_memory_map[i].base_addr_low + multiboot_memory_map[i].length_low) / 1024;
if (640 < mb_info.mem_lower)
{
mb_info.mem_lower = 640;
}
}
if (MEMTYPE_USABLE == multiboot_memory_map[i].type &&
multiboot_memory_map[i].base_addr_low <= 1024 * 1024 &&
1024 * 1024 <= multiboot_memory_map[i].base_addr_low + multiboot_memory_map[i].length_low)
{
mb_info.mem_upper = (multiboot_memory_map[i].base_addr_low + multiboot_memory_map[i].length_low) / 1024 - 1024;
}
DbgPrint((DPRINT_REACTOS, "start: %x\t size: %x\t type %d\n",
multiboot_memory_map[i].base_addr_low,
multiboot_memory_map[i].length_low,
multiboot_memory_map[i].type));
}
}
DbgPrint((DPRINT_REACTOS, "low_mem = %d\n", mb_info.mem_lower));
DbgPrint((DPRINT_REACTOS, "high_mem = %d\n", mb_info.mem_upper));
/*
* Initialize the registry
*/
RegInitializeRegistry();
/*
* Make sure the system path is set in the .ini file
*/
if (!IniReadSettingByName(SectionId, "SystemPath", value, 1024))
{
UiMessageBox("System path not specified for selected operating system.");
return;
}
/*
* Special case for Live CD.
*/
if (!stricmp(value, "LiveCD"))
{
strcpy(szBootPath, "\\reactos");
/* Set kernel command line */
sprintf(multiboot_kernel_cmdline,
"multi(0)disk(0)cdrom(%u)\\reactos /MININT",
(unsigned int)BootDrive);
}
else
{
/*
* Verify system path
*/
if (!DissectArcPath(value, szBootPath, &BootDrive, &BootPartition))
{
sprintf(MsgBuffer,"Invalid system path: '%s'", value);
UiMessageBox(MsgBuffer);
return;
}
/* recalculate the boot partition for freeldr */
i = 0;
rosPartition = 0;
while (1)
{
if (!MachDiskGetPartitionEntry(BootDrive, ++i, &PartitionTableEntry))
{
BootPartition = 0;
break;
}
if (IsRecognizedPartition(PartitionTableEntry.SystemIndicator))
{
if (++rosPartition == BootPartition)
{
BootPartition = i;
break;
}
}
}
if (BootPartition == 0)
{
sprintf(MsgBuffer,"Invalid system path: '%s'", value);
UiMessageBox(MsgBuffer);
return;
}
/* copy ARC path into kernel command line */
strcpy(multiboot_kernel_cmdline, value);
}
/* Set boot drive and partition */
((char *)(&mb_info.boot_device))[0] = (char)BootDrive;
((char *)(&mb_info.boot_device))[1] = (char)BootPartition;
/*
* Read the optional kernel parameters (if any)
*/
if (IniReadSettingByName(SectionId, "Options", value, 1024))
{
strcat(multiboot_kernel_cmdline, " ");
strcat(multiboot_kernel_cmdline, value);
}
/* append a backslash */
if ((strlen(szBootPath)==0) ||
szBootPath[strlen(szBootPath)] != '\\')
strcat(szBootPath, "\\");
DbgPrint((DPRINT_REACTOS,"SystemRoot: '%s'\n", szBootPath));
UiDrawBackdrop();
UiDrawStatusText("Detecting Hardware...");
/*
* Detect hardware
*/
MachHwDetect();
UiDrawStatusText("Loading...");
UiDrawProgressBarCenter(0, 100, "Loading ReactOS...");
/*
* Try to open boot drive
*/
if (!FsOpenVolume(BootDrive, BootPartition))
{
UiMessageBox("Failed to open boot drive.");
return;
}
/*
* Find the kernel image name
* and try to load the kernel off the disk
*/
if(IniReadSettingByName(SectionId, "Kernel", value, 1024))
{
/*
* Set the name and
*/
if (value[0] == '\\')
{
strcpy(szKernelName, value);
}
else
{
strcpy(szKernelName, szBootPath);
strcat(szKernelName, "SYSTEM32\\");
strcat(szKernelName, value);
}
}
else
{
strcpy(value, "NTOSKRNL.EXE");
strcpy(szKernelName, szBootPath);
strcat(szKernelName, "SYSTEM32\\");
strcat(szKernelName, value);
}
if (!LoadKernel(szKernelName, 5))
return;
/*
* Find the HAL image name
* and try to load the kernel off the disk
*/
if(IniReadSettingByName(SectionId, "Hal", value, 1024))
{
/*
* Set the name and
*/
if (value[0] == '\\')
{
strcpy(szHalName, value);
}
else
{
strcpy(szHalName, szBootPath);
strcat(szHalName, "SYSTEM32\\");
strcat(szHalName, value);
}
}
else
{
strcpy(value, "HAL.DLL");
strcpy(szHalName, szBootPath);
strcat(szHalName, "SYSTEM32\\");
strcat(szHalName, value);
}
if (!LoadDriver(szHalName, 10))
return;
/*
* Load the System hive from disk
*/
strcpy(szFileName, szBootPath);
strcat(szFileName, "SYSTEM32\\CONFIG\\SYSTEM");
DbgPrint((DPRINT_REACTOS, "SystemHive: '%s'", szFileName));
FilePointer = FsOpenFile(szFileName);
if (FilePointer == NULL)
{
UiMessageBox("Could not find the System hive!");
return;
}
/*
* Update the status bar with the current file
*/
strcpy(name, "Reading ");
strcat(name, value);
while (strlen(name) < 80)
strcat(name, " ");
UiDrawStatusText(name);
/*
* Load the System hive
*/
Base = MultiBootLoadModule(FilePointer, szFileName, &Size);
if (Base == NULL || Size == 0)
{
UiMessageBox("Could not load the System hive!\n");
return;
}
DbgPrint((DPRINT_REACTOS, "SystemHive loaded at 0x%x size %u", (unsigned)Base, (unsigned)Size));
/*
* Import the loaded system hive
*/
RegImportBinaryHive(Base, Size);
/*
* Initialize the 'CurrentControlSet' link
*/
RegInitCurrentControlSet(FALSE);
UiDrawProgressBarCenter(15, 100, "Loading ReactOS...");
/*
* Export the hardware hive
*/
Base = MultiBootCreateModule ("HARDWARE");
RegExportBinaryHive ("\\Registry\\Machine\\HARDWARE", Base, &Size);
MultiBootCloseModule (Base, Size);
UiDrawProgressBarCenter(20, 100, "Loading ReactOS...");
/*
* Load NLS files
*/
if (!LoadNlsFiles(szBootPath, MsgBuffer))
{
UiMessageBox(MsgBuffer);
return;
}
UiDrawProgressBarCenter(25, 100, "Loading ReactOS...");
/*
* Load symbol files
*/
LoadSymbolFile(szBootPath, szKernelName, 30);
LoadSymbolFile(szBootPath, szHalName, 30);
UiDrawProgressBarCenter(30, 100, "Loading ReactOS...");
/*
* Load boot drivers
*/
LoadBootDrivers(szBootPath, 30);
#if 0
/*
* Clear the screen and redraw the backdrop and status bar
*/
UiDrawBackdrop();
UiDrawStatusText("Press any key to boot");
/*
* Wait for user
*/
strcpy(name, "Kernel and Drivers loaded.\nPress any key to boot ");
strcat(name, OperatingSystemName);
strcat(name, ".");
MessageBox(name);
#endif
UiUnInitialize("Booting ReactOS...");
/*
* Now boot the kernel
*/
DiskStopFloppyMotor();
boot_reactos();
}
/* EOF */

View File

@@ -1,832 +0,0 @@
/*
* FreeLoader
*
* Copyright (C) 2001, 2002 Eric Kohl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <mm.h>
#include <rtl.h>
#include <debug.h>
#include "registry.h"
#include <ui.h>
static HKEY RootKey;
VOID
RegInitializeRegistry (VOID)
{
#if 0
HKEY TestKey;
#endif
/* Create root key */
RootKey = (HKEY) MmAllocateMemory (sizeof(KEY));
InitializeListHead (&RootKey->SubKeyList);
InitializeListHead (&RootKey->ValueList);
InitializeListHead (&RootKey->KeyList);
RootKey->SubKeyCount = 0;
RootKey->ValueCount = 0;
RootKey->NameSize = 2;
RootKey->Name = (PUCHAR)MmAllocateMemory (2);
strcpy (RootKey->Name, "\\");
RootKey->DataType = 0;
RootKey->DataSize = 0;
RootKey->Data = NULL;
/* Create 'SYSTEM' key */
RegCreateKey (RootKey,
"Registry\\Machine\\SYSTEM",
NULL);
/* Create 'HARDWARE' key */
RegCreateKey (RootKey,
"Registry\\Machine\\HARDWARE",
NULL);
/* Create 'HARDWARE\DESCRIPTION' key */
RegCreateKey (RootKey,
"Registry\\Machine\\HARDWARE\\DESCRIPTION",
NULL);
/* Create 'HARDWARE\DEVICEMAP' key */
RegCreateKey (RootKey,
"Registry\\Machine\\HARDWARE\\DEVICEMAP",
NULL);
/* Create 'HARDWARE\RESOURCEMAP' key */
RegCreateKey (RootKey,
"Registry\\Machine\\HARDWARE\\RESOURCEMAP",
NULL);
/* Testcode */
#if 0
RegCreateKey (RootKey,
"Registry\\Machine\\HARDWARE\\DESCRIPTION\\TestKey",
&TestKey);
RegSetValue (TestKey,
"TestValue",
REG_SZ,
(PUCHAR)"TestString",
11);
#endif
}
S32
RegInitCurrentControlSet(BOOL LastKnownGood)
{
CHAR ControlSetKeyName[80];
HKEY SelectKey;
HKEY SystemKey;
HKEY ControlSetKey;
HKEY LinkKey;
U32 CurrentSet = 0;
U32 DefaultSet = 0;
U32 LastKnownGoodSet = 0;
U32 DataSize;
S32 Error;
Error = RegOpenKey(NULL,
"\\Registry\\Machine\\SYSTEM\\Select",
&SelectKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REGISTRY, "RegOpenKey() failed (Error %u)\n", (int)Error));
return(Error);
}
DataSize = sizeof(U32);
Error = RegQueryValue(SelectKey,
"Default",
NULL,
(PUCHAR)&DefaultSet,
&DataSize);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REGISTRY, "RegQueryValue('Default') failed (Error %u)\n", (int)Error));
return(Error);
}
DataSize = sizeof(U32);
Error = RegQueryValue(SelectKey,
"LastKnownGood",
NULL,
(PUCHAR)&LastKnownGoodSet,
&DataSize);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REGISTRY, "RegQueryValue('Default') failed (Error %u)\n", (int)Error));
return(Error);
}
CurrentSet = (LastKnownGood == TRUE) ? LastKnownGoodSet : DefaultSet;
strcpy(ControlSetKeyName, "ControlSet");
switch(CurrentSet)
{
case 1:
strcat(ControlSetKeyName, "001");
break;
case 2:
strcat(ControlSetKeyName, "002");
break;
case 3:
strcat(ControlSetKeyName, "003");
break;
case 4:
strcat(ControlSetKeyName, "004");
break;
case 5:
strcat(ControlSetKeyName, "005");
break;
}
Error = RegOpenKey(NULL,
"\\Registry\\Machine\\SYSTEM",
&SystemKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REGISTRY, "RegOpenKey(SystemKey) failed (Error %u)\n", (int)Error));
return(Error);
}
Error = RegOpenKey(SystemKey,
ControlSetKeyName,
&ControlSetKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REGISTRY, "RegOpenKey(ControlSetKey) failed (Error %u)\n", (int)Error));
return(Error);
}
Error = RegCreateKey(SystemKey,
"CurrentControlSet",
&LinkKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REGISTRY, "RegCreateKey(LinkKey) failed (Error %u)\n", (int)Error));
return(Error);
}
Error = RegSetValue(LinkKey,
NULL,
REG_LINK,
(PUCHAR)&ControlSetKey,
sizeof(PVOID));
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_REGISTRY, "RegSetValue(LinkKey) failed (Error %u)\n", (int)Error));
return(Error);
}
return(ERROR_SUCCESS);
}
S32
RegCreateKey(HKEY ParentKey,
PCHAR KeyName,
PHKEY Key)
{
PLIST_ENTRY Ptr;
HKEY SearchKey = INVALID_HANDLE_VALUE;
HKEY CurrentKey;
HKEY NewKey;
PCHAR p;
PCHAR name;
int subkeyLength;
int stringLength;
DbgPrint((DPRINT_REGISTRY, "KeyName '%s'\n", KeyName));
if (*KeyName == '\\')
{
KeyName++;
CurrentKey = RootKey;
}
else if (ParentKey == NULL)
{
CurrentKey = RootKey;
}
else
{
CurrentKey = ParentKey;
}
/* Check whether current key is a link */
if (CurrentKey->DataType == REG_LINK)
{
CurrentKey = (HKEY)CurrentKey->Data;
}
while (*KeyName != 0)
{
DbgPrint((DPRINT_REGISTRY, "KeyName '%s'\n", KeyName));
if (*KeyName == '\\')
KeyName++;
p = strchr(KeyName, '\\');
if ((p != NULL) && (p != KeyName))
{
subkeyLength = p - KeyName;
stringLength = subkeyLength + 1;
name = KeyName;
}
else
{
subkeyLength = strlen(KeyName);
stringLength = subkeyLength;
name = KeyName;
}
Ptr = CurrentKey->SubKeyList.Flink;
while (Ptr != &CurrentKey->SubKeyList)
{
DbgPrint((DPRINT_REGISTRY, "Ptr 0x%x\n", Ptr));
SearchKey = CONTAINING_RECORD(Ptr,
KEY,
KeyList);
DbgPrint((DPRINT_REGISTRY, "SearchKey 0x%x\n", SearchKey));
DbgPrint((DPRINT_REGISTRY, "Searching '%s'\n", SearchKey->Name));
if (strnicmp(SearchKey->Name, name, subkeyLength) == 0)
break;
Ptr = Ptr->Flink;
}
if (Ptr == &CurrentKey->SubKeyList)
{
/* no key found -> create new subkey */
NewKey = (HKEY)MmAllocateMemory(sizeof(KEY));
if (NewKey == NULL)
return(ERROR_OUTOFMEMORY);
InitializeListHead(&NewKey->SubKeyList);
InitializeListHead(&NewKey->ValueList);
NewKey->SubKeyCount = 0;
NewKey->ValueCount = 0;
NewKey->DataType = 0;
NewKey->DataSize = 0;
NewKey->Data = NULL;
InsertTailList(&CurrentKey->SubKeyList, &NewKey->KeyList);
CurrentKey->SubKeyCount++;
NewKey->NameSize = subkeyLength + 1;
NewKey->Name = (PCHAR)MmAllocateMemory(NewKey->NameSize);
if (NewKey->Name == NULL)
return(ERROR_OUTOFMEMORY);
memcpy(NewKey->Name, name, subkeyLength);
NewKey->Name[subkeyLength] = 0;
DbgPrint((DPRINT_REGISTRY, "NewKey 0x%x\n", NewKey));
DbgPrint((DPRINT_REGISTRY, "NewKey '%s' Length %d\n", NewKey->Name, NewKey->NameSize));
CurrentKey = NewKey;
}
else
{
CurrentKey = SearchKey;
/* Check whether current key is a link */
if (CurrentKey->DataType == REG_LINK)
{
CurrentKey = (HKEY)CurrentKey->Data;
}
}
KeyName = KeyName + stringLength;
}
if (Key != NULL)
*Key = CurrentKey;
return(ERROR_SUCCESS);
}
S32
RegDeleteKey(HKEY Key,
PCHAR Name)
{
if (strchr(Name, '\\') != NULL)
return(ERROR_INVALID_PARAMETER);
return(ERROR_SUCCESS);
}
S32
RegEnumKey(HKEY Key,
U32 Index,
PCHAR Name,
U32* NameSize)
{
PLIST_ENTRY Ptr;
HKEY SearchKey;
U32 Count = 0;
U32 Size;
Ptr = Key->SubKeyList.Flink;
while (Ptr != &Key->SubKeyList)
{
if (Index == Count)
break;
Count++;
Ptr = Ptr->Flink;
}
if (Ptr == &Key->SubKeyList)
return(ERROR_NO_MORE_ITEMS);
SearchKey = CONTAINING_RECORD(Ptr,
KEY,
KeyList);
DbgPrint((DPRINT_REGISTRY, "Name '%s' Length %d\n", SearchKey->Name, SearchKey->NameSize));
Size = min(SearchKey->NameSize, *NameSize);
*NameSize = Size;
memcpy(Name, SearchKey->Name, Size);
return(ERROR_SUCCESS);
}
S32
RegOpenKey(HKEY ParentKey,
PCHAR KeyName,
PHKEY Key)
{
PLIST_ENTRY Ptr;
HKEY SearchKey = INVALID_HANDLE_VALUE;
HKEY CurrentKey;
PCHAR p;
PCHAR name;
int subkeyLength;
int stringLength;
DbgPrint((DPRINT_REGISTRY, "KeyName '%s'\n", KeyName));
*Key = NULL;
if (*KeyName == '\\')
{
KeyName++;
CurrentKey = RootKey;
}
else if (ParentKey == NULL)
{
CurrentKey = RootKey;
}
else
{
CurrentKey = ParentKey;
}
/* Check whether current key is a link */
if (CurrentKey->DataType == REG_LINK)
{
CurrentKey = (HKEY)CurrentKey->Data;
}
while (*KeyName != 0)
{
DbgPrint((DPRINT_REGISTRY, "KeyName '%s'\n", KeyName));
if (*KeyName == '\\')
KeyName++;
p = strchr(KeyName, '\\');
if ((p != NULL) && (p != KeyName))
{
subkeyLength = p - KeyName;
stringLength = subkeyLength + 1;
name = KeyName;
}
else
{
subkeyLength = strlen(KeyName);
stringLength = subkeyLength;
name = KeyName;
}
Ptr = CurrentKey->SubKeyList.Flink;
while (Ptr != &CurrentKey->SubKeyList)
{
DbgPrint((DPRINT_REGISTRY, "Ptr 0x%x\n", Ptr));
SearchKey = CONTAINING_RECORD(Ptr,
KEY,
KeyList);
DbgPrint((DPRINT_REGISTRY, "SearchKey 0x%x\n", SearchKey));
DbgPrint((DPRINT_REGISTRY, "Searching '%s'\n", SearchKey->Name));
if (strnicmp(SearchKey->Name, name, subkeyLength) == 0)
break;
Ptr = Ptr->Flink;
}
if (Ptr == &CurrentKey->SubKeyList)
{
return(ERROR_PATH_NOT_FOUND);
}
else
{
CurrentKey = SearchKey;
/* Check whether current key is a link */
if (CurrentKey->DataType == REG_LINK)
{
CurrentKey = (HKEY)CurrentKey->Data;
}
}
KeyName = KeyName + stringLength;
}
if (Key != NULL)
*Key = CurrentKey;
return(ERROR_SUCCESS);
}
S32
RegSetValue(HKEY Key,
PCHAR ValueName,
U32 Type,
PUCHAR Data,
U32 DataSize)
{
PLIST_ENTRY Ptr;
PVALUE Value = NULL;
DbgPrint((DPRINT_REGISTRY, "Key 0x%x, ValueName '%s', Type %d, Data 0x%x, DataSize %d\n",
(int)Key, ValueName, (int)Type, (int)Data, (int)DataSize));
if ((ValueName == NULL) || (*ValueName == 0))
{
/* set default value */
if ((Key->Data != NULL) && (Key->DataSize > sizeof(PUCHAR)))
{
MmFreeMemory(Key->Data);
}
if (DataSize <= sizeof(PUCHAR))
{
Key->DataSize = DataSize;
Key->DataType = Type;
memcpy(&Key->Data, Data, DataSize);
}
else
{
Key->Data = (PUCHAR)MmAllocateMemory(DataSize);
Key->DataSize = DataSize;
Key->DataType = Type;
memcpy(Key->Data, Data, DataSize);
}
}
else
{
/* set non-default value */
Ptr = Key->ValueList.Flink;
while (Ptr != &Key->ValueList)
{
Value = CONTAINING_RECORD(Ptr,
VALUE,
ValueList);
DbgPrint((DPRINT_REGISTRY, "Value->Name '%s'\n", Value->Name));
if (stricmp(Value->Name, ValueName) == 0)
break;
Ptr = Ptr->Flink;
}
if (Ptr == &Key->ValueList)
{
/* add new value */
DbgPrint((DPRINT_REGISTRY, "No value found - adding new value\n"));
Value = (PVALUE)MmAllocateMemory(sizeof(VALUE));
if (Value == NULL)
return(ERROR_OUTOFMEMORY);
InsertTailList(&Key->ValueList, &Value->ValueList);
Key->ValueCount++;
Value->NameSize = strlen(ValueName)+1;
Value->Name = (PCHAR)MmAllocateMemory(Value->NameSize);
if (Value->Name == NULL)
return(ERROR_OUTOFMEMORY);
strcpy(Value->Name, ValueName);
Value->DataType = REG_NONE;
Value->DataSize = 0;
Value->Data = NULL;
}
/* set new value */
if ((Value->Data != NULL) && (Value->DataSize > sizeof(PUCHAR)))
{
MmFreeMemory(Value->Data);
}
if (DataSize <= sizeof(PUCHAR))
{
Value->DataSize = DataSize;
Value->DataType = Type;
memcpy(&Value->Data, Data, DataSize);
}
else
{
Value->Data = (PUCHAR)MmAllocateMemory(DataSize);
if (Value->Data == NULL)
return(ERROR_OUTOFMEMORY);
Value->DataType = Type;
Value->DataSize = DataSize;
memcpy(Value->Data, Data, DataSize);
}
}
return(ERROR_SUCCESS);
}
S32
RegQueryValue(HKEY Key,
PCHAR ValueName,
U32* Type,
PUCHAR Data,
U32* DataSize)
{
U32 Size;
PLIST_ENTRY Ptr;
PVALUE Value = NULL;
if ((ValueName == NULL) || (*ValueName == 0))
{
/* query default value */
if (Key->Data == NULL)
return(ERROR_INVALID_PARAMETER);
if (Type != NULL)
*Type = Key->DataType;
if ((Data != NULL) && (DataSize != NULL))
{
if (Key->DataSize <= sizeof(PUCHAR))
{
Size = min(Key->DataSize, *DataSize);
memcpy(Data, &Key->Data, Size);
*DataSize = Size;
}
else
{
Size = min(Key->DataSize, *DataSize);
memcpy(Data, Key->Data, Size);
*DataSize = Size;
}
}
else if ((Data == NULL) && (DataSize != NULL))
{
*DataSize = Key->DataSize;
}
}
else
{
/* query non-default value */
Ptr = Key->ValueList.Flink;
while (Ptr != &Key->ValueList)
{
Value = CONTAINING_RECORD(Ptr,
VALUE,
ValueList);
DbgPrint((DPRINT_REGISTRY, "Searching for '%s'. Value name '%s'\n", ValueName, Value->Name));
if (stricmp(Value->Name, ValueName) == 0)
break;
Ptr = Ptr->Flink;
}
if (Ptr == &Key->ValueList)
return(ERROR_INVALID_PARAMETER);
if (Type != NULL)
*Type = Value->DataType;
if ((Data != NULL) && (DataSize != NULL))
{
if (Value->DataSize <= sizeof(PUCHAR))
{
Size = min(Value->DataSize, *DataSize);
memcpy(Data, &Value->Data, Size);
*DataSize = Size;
}
else
{
Size = min(Value->DataSize, *DataSize);
memcpy(Data, Value->Data, Size);
*DataSize = Size;
}
}
else if ((Data == NULL) && (DataSize != NULL))
{
*DataSize = Value->DataSize;
}
}
return(ERROR_SUCCESS);
}
S32
RegDeleteValue(HKEY Key,
PCHAR ValueName)
{
PLIST_ENTRY Ptr;
PVALUE Value = NULL;
if ((ValueName == NULL) || (*ValueName == 0))
{
/* delete default value */
if (Key->Data != NULL)
MmFreeMemory(Key->Data);
Key->Data = NULL;
Key->DataSize = 0;
Key->DataType = 0;
}
else
{
/* delete non-default value */
Ptr = Key->ValueList.Flink;
while (Ptr != &Key->ValueList)
{
Value = CONTAINING_RECORD(Ptr,
VALUE,
ValueList);
if (stricmp(Value->Name, ValueName) == 0)
break;
Ptr = Ptr->Flink;
}
if (Ptr == &Key->ValueList)
return(ERROR_INVALID_PARAMETER);
/* delete value */
Key->ValueCount--;
if (Value->Name != NULL)
MmFreeMemory(Value->Name);
Value->Name = NULL;
Value->NameSize = 0;
if (Value->DataSize > sizeof(PUCHAR))
{
if (Value->Data != NULL)
MmFreeMemory(Value->Data);
}
Value->Data = NULL;
Value->DataSize = 0;
Value->DataType = 0;
RemoveEntryList(&Value->ValueList);
MmFreeMemory(Value);
}
return(ERROR_SUCCESS);
}
S32
RegEnumValue(HKEY Key,
U32 Index,
PCHAR ValueName,
U32* NameSize,
U32* Type,
PUCHAR Data,
U32* DataSize)
{
PLIST_ENTRY Ptr;
PVALUE Value;
U32 Count = 0;
if (Key->Data != NULL)
{
if (Index > 0)
{
Index--;
}
else
{
/* enumerate default value */
if (ValueName != NULL)
*ValueName = 0;
if (Type != NULL)
*Type = Key->DataType;
if (Data != NULL)
{
if (Key->DataSize <= sizeof(PUCHAR))
{
memcpy(Data, &Key->Data, min(Key->DataSize, *DataSize));
}
else
{
memcpy(Data, Key->Data, min(Key->DataSize, *DataSize));
}
}
if (DataSize != NULL)
*DataSize = min(Key->DataSize, *DataSize);
return(ERROR_SUCCESS);
}
}
Ptr = Key->ValueList.Flink;
while (Ptr != &Key->ValueList)
{
if (Index == Count)
break;
Count++;
Ptr = Ptr->Flink;
}
if (Ptr == &Key->ValueList)
return(ERROR_NO_MORE_ITEMS);
Value = CONTAINING_RECORD(Ptr,
VALUE,
ValueList);
/* enumerate non-default value */
if (ValueName != NULL)
memcpy(ValueName, Value->Name, min(Value->NameSize, *NameSize));
if (Type != NULL)
*Type = Value->DataType;
if (Data != NULL)
{
if (Value->DataSize <= sizeof(PUCHAR))
{
memcpy(Data, &Value->Data, min(Value->DataSize, *DataSize));
}
else
{
memcpy(Data, Value->Data, min(Value->DataSize, *DataSize));
}
}
if (DataSize != NULL)
*DataSize = min(Value->DataSize, *DataSize);
return(ERROR_SUCCESS);
}
U32
RegGetSubKeyCount (HKEY Key)
{
return Key->SubKeyCount;
}
U32
RegGetValueCount (HKEY Key)
{
if (Key->DataSize != 0)
return Key->ValueCount + 1;
return Key->ValueCount;
}
/* EOF */

View File

@@ -1,304 +0,0 @@
/*
* FreeLoader - registry.h
*
* Copyright (C) 2001 Eric Kohl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __REGISTRY_H
#define __REGISTRY_H
#define INVALID_HANDLE_VALUE NULL
typedef struct _LIST_ENTRY
{
struct _LIST_ENTRY *Flink;
struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY;
typedef struct _REG_KEY
{
LIST_ENTRY KeyList;
LIST_ENTRY SubKeyList;
LIST_ENTRY ValueList;
U32 SubKeyCount;
U32 ValueCount;
U32 NameSize;
PUCHAR Name;
/* default data */
U32 DataType;
U32 DataSize;
PUCHAR Data;
} KEY, *HKEY, **PHKEY;
typedef struct _REG_VALUE
{
LIST_ENTRY ValueList;
/* value name */
U32 NameSize;
PUCHAR Name;
/* value data */
U32 DataType;
U32 DataSize;
PUCHAR Data;
} VALUE, *PVALUE;
#define ERROR_SUCCESS 0L
#define ERROR_PATH_NOT_FOUND 2L
#define ERROR_OUTOFMEMORY 14L
#define ERROR_INVALID_PARAMETER 87L
#define ERROR_MORE_DATA 234L
#define ERROR_NO_MORE_ITEMS 259L
#define assert(x)
/*
* VOID
* InitializeListHead (
* PLIST_ENTRY ListHead
* );
*
* FUNCTION: Initializes a double linked list
* ARGUMENTS:
* ListHead = Caller supplied storage for the head of the list
*/
#define InitializeListHead(ListHead) \
{ \
(ListHead)->Flink = (ListHead); \
(ListHead)->Blink = (ListHead); \
}
/*
* VOID
* InsertHeadList (
* PLIST_ENTRY ListHead,
* PLIST_ENTRY Entry
* );
*
* FUNCTION: Inserts an entry in a double linked list
* ARGUMENTS:
* ListHead = Head of the list
* Entry = Entry to insert
*/
#define InsertHeadList(ListHead, ListEntry) \
{ \
PLIST_ENTRY OldFlink; \
OldFlink = (ListHead)->Flink; \
(ListEntry)->Flink = OldFlink; \
(ListEntry)->Blink = (ListHead); \
OldFlink->Blink = (ListEntry); \
(ListHead)->Flink = (ListEntry); \
assert((ListEntry) != NULL); \
assert((ListEntry)->Blink!=NULL); \
assert((ListEntry)->Blink->Flink == (ListEntry)); \
assert((ListEntry)->Flink != NULL); \
assert((ListEntry)->Flink->Blink == (ListEntry)); \
}
/*
* VOID
* InsertTailList (
* PLIST_ENTRY ListHead,
* PLIST_ENTRY Entry
* );
*
* FUNCTION:
* Inserts an entry in a double linked list
*
* ARGUMENTS:
* ListHead = Head of the list
* Entry = Entry to insert
*/
#define InsertTailList(ListHead, ListEntry) \
{ \
PLIST_ENTRY OldBlink; \
OldBlink = (ListHead)->Blink; \
(ListEntry)->Flink = (ListHead); \
(ListEntry)->Blink = OldBlink; \
OldBlink->Flink = (ListEntry); \
(ListHead)->Blink = (ListEntry); \
assert((ListEntry) != NULL); \
assert((ListEntry)->Blink != NULL); \
assert((ListEntry)->Blink->Flink == (ListEntry)); \
assert((ListEntry)->Flink != NULL); \
assert((ListEntry)->Flink->Blink == (ListEntry)); \
}
/*
* BOOLEAN
* IsListEmpty (
* PLIST_ENTRY ListHead
* );
*
* FUNCTION:
* Checks if a double linked list is empty
*
* ARGUMENTS:
* ListHead = Head of the list
*/
#define IsListEmpty(ListHead) \
((ListHead)->Flink == (ListHead))
/*
*VOID
*RemoveEntryList (
* PLIST_ENTRY Entry
* );
*
* FUNCTION:
* Removes an entry from a double linked list
*
* ARGUMENTS:
* ListEntry = Entry to remove
*/
#define RemoveEntryList(ListEntry) \
{ \
PLIST_ENTRY OldFlink; \
PLIST_ENTRY OldBlink; \
assert((ListEntry) != NULL); \
assert((ListEntry)->Blink!=NULL); \
assert((ListEntry)->Blink->Flink == (ListEntry)); \
assert((ListEntry)->Flink != NULL); \
assert((ListEntry)->Flink->Blink == (ListEntry)); \
OldFlink = (ListEntry)->Flink; \
OldBlink = (ListEntry)->Blink; \
OldFlink->Blink = OldBlink; \
OldBlink->Flink = OldFlink; \
(ListEntry)->Flink = NULL; \
(ListEntry)->Blink = NULL; \
}
/*
* PURPOSE: Returns the byte offset of a field within a structure
*/
#define FIELD_OFFSET(Type,Field) (S32)(&(((Type *)(0))->Field))
/*
* PURPOSE: Returns the base address structure if the caller knows the
* address of a field within the structure
* ARGUMENTS:
* Address = address of the field
* Type = Type of the whole structure
* Field = Name of the field whose address is none
*/
#define CONTAINING_RECORD(Address,Type,Field) \
(Type *)(((S32)Address) - FIELD_OFFSET(Type,Field))
#define REG_NONE 0
#define REG_SZ 1
#define REG_EXPAND_SZ 2
#define REG_BINARY 3
#define REG_DWORD 4
#define REG_DWORD_BIG_ENDIAN 5
#define REG_DWORD_LITTLE_ENDIAN 4
#define REG_LINK 6
#define REG_MULTI_SZ 7
#define REG_RESOURCE_LIST 8
#define REG_FULL_RESOURCE_DESCRIPTOR 9
#define REG_RESOURCE_REQUIREMENTS_LIST 10
VOID
RegInitializeRegistry(VOID);
S32
RegInitCurrentControlSet(BOOL LastKnownGood);
S32
RegCreateKey(HKEY ParentKey,
PCHAR KeyName,
PHKEY Key);
S32
RegDeleteKey(HKEY Key,
PCHAR Name);
S32
RegEnumKey(HKEY Key,
U32 Index,
PCHAR Name,
U32* NameSize);
S32
RegOpenKey(HKEY ParentKey,
PCHAR KeyName,
PHKEY Key);
S32
RegSetValue(HKEY Key,
PCHAR ValueName,
U32 Type,
PUCHAR Data,
U32 DataSize);
S32
RegQueryValue(HKEY Key,
PCHAR ValueName,
U32* Type,
PUCHAR Data,
U32* DataSize);
S32
RegDeleteValue(HKEY Key,
PCHAR ValueName);
S32
RegEnumValue(HKEY Key,
U32 Index,
PCHAR ValueName,
U32* NameSize,
U32* Type,
PUCHAR Data,
U32* DataSize);
U32
RegGetSubKeyCount (HKEY Key);
U32
RegGetValueCount (HKEY Key);
BOOL
RegImportBinaryHive (PCHAR ChunkBase,
U32 ChunkSize);
BOOL
RegExportBinaryHive (PCHAR KeyName,
PCHAR ChunkBase,
U32* ChunkSize);
#endif /* __REGISTRY_H */
/* EOF */

View File

@@ -1,175 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <rtl.h>
VOID RtlListInitializeHead(PLIST_ITEM ListHead)
{
ListHead->ListPrev = NULL;
ListHead->ListNext = NULL;
}
VOID RtlListInsertHead(PLIST_ITEM ListHead, PLIST_ITEM Entry)
{
ListHead = RtlListGetHead(ListHead);
ListHead->ListPrev = Entry;
Entry->ListNext = ListHead;
Entry->ListPrev = NULL;
}
VOID RtlListInsertTail(PLIST_ITEM ListHead, PLIST_ITEM Entry)
{
ListHead = RtlListGetTail(ListHead);
ListHead->ListNext = Entry;
Entry->ListNext = NULL;
Entry->ListPrev = ListHead;
}
PLIST_ITEM RtlListRemoveHead(PLIST_ITEM ListHead)
{
PLIST_ITEM OldListHead = RtlListGetHead(ListHead);
ListHead = ListHead->ListNext;
ListHead->ListPrev = NULL;
return OldListHead;
}
PLIST_ITEM RtlListRemoveTail(PLIST_ITEM ListHead)
{
PLIST_ITEM ListTail;
ListTail = RtlListGetTail(ListHead);
ListHead = ListTail->ListPrev;
ListHead->ListNext = NULL;
return ListTail;
}
PLIST_ITEM RtlListGetHead(PLIST_ITEM ListHead)
{
while (ListHead->ListPrev != NULL)
{
ListHead = ListHead->ListPrev;
}
return ListHead;
}
PLIST_ITEM RtlListGetTail(PLIST_ITEM ListHead)
{
while (ListHead->ListNext != NULL)
{
ListHead = ListHead->ListNext;
}
return ListHead;
}
BOOL RtlListIsEmpty(PLIST_ITEM ListHead)
{
if (ListHead == NULL)
{
return TRUE;
}
return (ListHead->ListNext == NULL);
}
U32 RtlListCountEntries(PLIST_ITEM ListHead)
{
U32 Count = 0;
while (ListHead != NULL)
{
Count++;
ListHead = ListHead->ListNext;
}
return Count;
}
PLIST_ITEM RtlListGetPrevious(PLIST_ITEM ListEntry)
{
return ListEntry->ListPrev;
}
PLIST_ITEM RtlListGetNext(PLIST_ITEM ListEntry)
{
return ListEntry->ListNext;
}
PLIST_ITEM RtlListRemoveEntry(PLIST_ITEM ListEntry)
{
PLIST_ITEM ListNext = RtlListGetNext(ListEntry);
PLIST_ITEM ListPrev = RtlListGetPrevious(ListEntry);
if (ListPrev != NULL)
{
ListPrev->ListNext = ListNext;
}
if (ListNext != NULL)
{
ListNext->ListPrev = ListPrev;
}
return ListNext;
}
VOID RtlListInsertEntry(PLIST_ITEM InsertAfter, PLIST_ITEM ListEntry)
{
PLIST_ITEM ListNext = RtlListGetNext(InsertAfter);
InsertAfter->ListNext = ListEntry;
ListEntry->ListPrev = InsertAfter;
ListEntry->ListNext = ListNext;
}
VOID RtlListMoveEntryPrevious(PLIST_ITEM ListEntry)
{
PLIST_ITEM ListPrev = RtlListGetPrevious(ListEntry);
if (ListPrev == NULL)
{
return;
}
//
// Move the previous entry after this one
//
RtlListRemoveEntry(ListPrev);
RtlListInsertEntry(ListEntry, ListPrev);
}
VOID RtlListMoveEntryNext(PLIST_ITEM ListEntry)
{
PLIST_ITEM ListNext = RtlListGetNext(ListEntry);
if (ListNext == NULL)
{
return;
}
//
// Move this entry after the next entry
//
RtlListRemoveEntry(ListEntry);
RtlListInsertEntry(ListNext, ListEntry);
}

View File

@@ -1,178 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <machine.h>
#include <rtl.h>
/*
* print() - prints unformatted text to stdout
*/
void print(char *str)
{
int i;
for (i = 0; i < strlen(str); i++)
MachConsPutChar(str[i]);
}
/*
* printf() - prints formatted text to stdout
* originally from GRUB
*/
void printf(char *format, ... )
{
int *dataptr = (int *)(void *)&format;
char c, *ptr, str[16];
int ll;
dataptr++;
while ((c = *(format++)))
{
if (c != '%')
{
MachConsPutChar(c);
}
else
{
if (*format == 'I' && *(format+1) == '6' && *(format+2) == '4')
{
ll = 1;
format += 3;
}
else
{
ll = 0;
}
switch (c = *(format++))
{
case 'd': case 'u': case 'x':
if (ll)
{
*convert_i64_to_ascii(str, c, *((unsigned long long *) dataptr++)) = 0;
}
else
{
*convert_to_ascii(str, c, *((unsigned long *) dataptr++)) = 0;
}
ptr = str;
while (*ptr)
{
MachConsPutChar(*(ptr++));
}
break;
case 'c': MachConsPutChar((*(dataptr++))&0xff); break;
case 's':
ptr = (char *)(*(dataptr++));
while ((c = *(ptr++)))
{
MachConsPutChar(c);
}
break;
case '%':
MachConsPutChar(c);
break;
default:
printf("\nprintf() invalid format specifier - %%%c\n", c);
break;
}
}
}
}
void sprintf(char *buffer, char *format, ... )
{
int *dataptr = (int *)(void *)&format;
char c, *ptr, str[16];
char *p = buffer;
int ll;
dataptr++;
while ((c = *(format++)))
{
if (c != '%')
{
*p = c;
p++;
}
else
{
if (*format == 'I' && *(format+1) == '6' && *(format+2) == '4')
{
ll = 1;
format += 3;
}
else
{
ll = 0;
}
switch (c = *(format++))
{
case 'd': case 'u': case 'x':
if (ll)
{
*convert_i64_to_ascii(str, c, *((unsigned long long*) dataptr++)) = 0;
}
else
{
*convert_to_ascii(str, c, *((unsigned long *) dataptr++)) = 0;
}
ptr = str;
while (*ptr)
{
*p = *(ptr++);
p++;
}
break;
case 'c':
*p = (*(dataptr++))&0xff;
p++;
break;
case 's':
ptr = (char *)(*(dataptr++));
while ((c = *(ptr++)))
{
*p = c;
p++;
}
break;
case '%':
*p = c;
p++;
break;
default:
printf("\nsprintf() invalid format specifier - %%%c\n", c);
break;
}
}
}
*p=0;
}

View File

@@ -1,176 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <rtl.h>
int strlen(char *str)
{
int len;
for(len=0; str[len] != '\0'; len++);
return len;
}
char *strcpy(char *dest, char *src)
{
char *ret = dest;
while(*src)
*dest++ = *src++;
*dest = 0;
return ret;
}
char *strncpy(char *dest, char *src, size_t count)
{
char *ret = dest;
while((*src) && (count--))
*dest++ = *src++;
if (count)
*dest = 0;
return ret;
}
char *strcat(char *dest, char *src)
{
char *ret = dest;
while(*dest)
dest++;
while(*src)
*dest++ = *src++;
*dest = 0;
return ret;
}
char *strncat(char *dst, const char *src, size_t n)
{
if (n != 0)
{
char *d = dst;
const char *s = src;
while (*d != 0)
d++;
do
{
if ((*d = *s++) == 0)
break;
d++;
}
while (--n != 0);
*d = 0;
}
return dst;
}
char *strchr(const char *s, int c)
{
char cc = c;
while (*s)
{
if (*s == cc)
return (char *)s;
s++;
}
if (cc == 0)
return (char *)s;
return 0;
}
char *strrchr(const char *s, int c)
{
char cc = c;
const char *sp=(char *)0;
while (*s)
{
if (*s == cc)
sp = s;
s++;
}
if (cc == 0)
sp = s;
return (char *)sp;
}
int strcmp(const char *string1, const char *string2)
{
while(*string1 == *string2)
{
if(*string1 == 0)
return 0;
string1++;
string2++;
}
return *(unsigned const char *)string1 - *(unsigned const char *)(string2);
}
int stricmp(const char *string1, const char *string2)
{
while(tolower(*string1) == tolower(*string2))
{
if(*string1 == 0)
return 0;
string1++;
string2++;
}
return (int)tolower(*string1) - (int)tolower(*string2);
}
int strnicmp(const char *string1, const char *string2, size_t length)
{
if (length == 0)
return 0;
do
{
if (toupper(*string1) != toupper(*string2++))
return toupper(*(unsigned const char *)string1) - toupper(*(unsigned const char *)--string2);
if (*string1++ == 0)
break;
}
while (--length != 0);
return 0;
}
int strncmp(const char *string1, const char *string2, size_t length)
{
if (length == 0)
return 0;
do
{
if (*string1 != *string2++)
return *(unsigned const char *)string1 - *(unsigned const char *)--string2;
if (*string1++ == 0)
break;
}
while (--length != 0);
return 0;
}

View File

@@ -1,85 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <ui.h>
#include "gui.h"
#include <rtl.h>
#include <mm.h>
#include <debug.h>
#include <inifile.h>
#include <version.h>
VOID GuiDrawBackdrop(VOID)
{
}
VOID GuiFillArea(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR FillChar, UCHAR Attr /* Color Attributes */)
{
}
VOID GuiDrawShadow(U32 Left, U32 Top, U32 Right, U32 Bottom)
{
}
VOID GuiDrawBox(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR VertStyle, UCHAR HorzStyle, BOOL Fill, BOOL Shadow, UCHAR Attr)
{
}
VOID GuiDrawText(U32 X, U32 Y, PUCHAR Text, UCHAR Attr)
{
}
VOID GuiDrawStatusText(PUCHAR StatusText)
{
}
VOID GuiUpdateDateTime(VOID)
{
}
VOID GuiSaveScreen(PUCHAR Buffer)
{
}
VOID GuiRestoreScreen(PUCHAR Buffer)
{
}
VOID GuiMessageBox(PUCHAR MessageText)
{
}
VOID GuiMessageBoxCritical(PUCHAR MessageText)
{
}
VOID GuiDrawProgressBar(U32 Position, U32 Range)
{
}
UCHAR GuiTextToColor(PUCHAR ColorText)
{
return 0;
}
UCHAR GuiTextToFillStyle(PUCHAR FillStyleText)
{
return 0;
}

View File

@@ -1,56 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __GUI_H
#define __GUI_H
#define TUI_SCREEN_MEM 0xB8000
#define TITLE_BOX_CHAR_HEIGHT 5
///////////////////////////////////////////////////////////////////////////////////////
//
// Graphical User Interface Functions
//
///////////////////////////////////////////////////////////////////////////////////////
VOID GuiDrawBackdrop(VOID); // Fills the entire screen with a backdrop
VOID GuiFillArea(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR FillChar, UCHAR Attr /* Color Attributes */); // Fills the area specified with FillChar and Attr
VOID GuiDrawShadow(U32 Left, U32 Top, U32 Right, U32 Bottom); // Draws a shadow on the bottom and right sides of the area specified
VOID GuiDrawBox(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR VertStyle, UCHAR HorzStyle, BOOL Fill, BOOL Shadow, UCHAR Attr); // Draws a box around the area specified
VOID GuiDrawText(U32 X, U32 Y, PUCHAR Text, UCHAR Attr); // Draws text at coordinates specified
VOID GuiDrawStatusText(PUCHAR StatusText); // Draws text at the very bottom line on the screen
VOID GuiUpdateDateTime(VOID); // Updates the date and time
VOID GuiSaveScreen(PUCHAR Buffer); // Saves the screen so that it can be restored later
VOID GuiRestoreScreen(PUCHAR Buffer); // Restores the screen from a previous save
VOID GuiMessageBox(PUCHAR MessageText); // Displays a message box on the screen with an ok button
VOID GuiMessageBoxCritical(PUCHAR MessageText); // Displays a message box on the screen with an ok button using no system resources
VOID GuiDrawProgressBar(U32 Position, U32 Range); // Draws the progress bar showing nPos percent filled
UCHAR GuiTextToColor(PUCHAR ColorText); // Converts the text color into it's equivalent color value
UCHAR GuiTextToFillStyle(PUCHAR FillStyleText); // Converts the text fill into it's equivalent fill value
///////////////////////////////////////////////////////////////////////////////////////
//
// Menu Functions
//
///////////////////////////////////////////////////////////////////////////////////////
BOOL GuiDisplayMenu(PUCHAR MenuItemList[], U32 MenuItemCount, U32 DefaultMenuItem, S32 MenuTimeOut, U32* SelectedMenuItem);
#endif // #defined __GUI_H

View File

@@ -1,150 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __TUI_H
#define __TUI_H
#define TUI_SCREEN_MEM 0xB8000
#define TUI_TITLE_BOX_CHAR_HEIGHT 5
///////////////////////////////////////////////////////////////////////////////////////
//
// Textual User Interface Functions
//
///////////////////////////////////////////////////////////////////////////////////////
BOOL TuiInitialize(VOID); // Initialize User-Interface
VOID TuiUnInitialize(VOID); // Un-initialize User-Interface
VOID TuiDrawBackdrop(VOID); // Fills the entire screen with a backdrop
VOID TuiFillArea(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR FillChar, UCHAR Attr /* Color Attributes */); // Fills the area specified with FillChar and Attr
VOID TuiDrawShadow(U32 Left, U32 Top, U32 Right, U32 Bottom); // Draws a shadow on the bottom and right sides of the area specified
VOID TuiDrawBox(U32 Left, U32 Top, U32 Right, U32 Bottom, UCHAR VertStyle, UCHAR HorzStyle, BOOL Fill, BOOL Shadow, UCHAR Attr); // Draws a box around the area specified
VOID TuiDrawText(U32 X, U32 Y, PUCHAR Text, UCHAR Attr); // Draws text at coordinates specified
VOID TuiDrawCenteredText(U32 Left, U32 Top, U32 Right, U32 Bottom, PUCHAR TextString, UCHAR Attr); // Draws centered text at the coordinates specified and clips the edges
VOID TuiDrawStatusText(PUCHAR StatusText); // Draws text at the very bottom line on the screen
VOID TuiUpdateDateTime(VOID); // Updates the date and time
VOID TuiSaveScreen(PUCHAR Buffer); // Saves the screen so that it can be restored later
VOID TuiRestoreScreen(PUCHAR Buffer); // Restores the screen from a previous save
VOID TuiMessageBox(PUCHAR MessageText); // Displays a message box on the screen with an ok button
VOID TuiMessageBoxCritical(PUCHAR MessageText); // Displays a message box on the screen with an ok button using no system resources
VOID TuiDrawProgressBarCenter(U32 Position, U32 Range, PUCHAR ProgressText); // Draws the progress bar showing nPos percent filled
VOID TuiDrawProgressBar(U32 Left, U32 Top, U32 Right, U32 Bottom, U32 Position, U32 Range, PUCHAR ProgressText); // Draws the progress bar showing nPos percent filled
BOOL TuiEditBox(PUCHAR MessageText, PUCHAR EditTextBuffer, U32 Length);
UCHAR TuiTextToColor(PUCHAR ColorText); // Converts the text color into it's equivalent color value
UCHAR TuiTextToFillStyle(PUCHAR FillStyleText); // Converts the text fill into it's equivalent fill value
VOID TuiFadeInBackdrop(VOID); // Draws the backdrop and fades the screen in
VOID TuiFadeOut(VOID); // Fades the screen out
///////////////////////////////////////////////////////////////////////////////////////
//
// Menu Functions
//
///////////////////////////////////////////////////////////////////////////////////////
typedef struct
{
PUCHAR *MenuItemList;
U32 MenuItemCount;
S32 MenuTimeRemaining;
U32 SelectedMenuItem;
U32 Left;
U32 Top;
U32 Right;
U32 Bottom;
} TUI_MENU_INFO, *PTUI_MENU_INFO;
VOID TuiCalcMenuBoxSize(PTUI_MENU_INFO MenuInfo);
VOID TuiDrawMenu(PTUI_MENU_INFO MenuInfo);
VOID TuiDrawMenuBox(PTUI_MENU_INFO MenuInfo);
VOID TuiDrawMenuItem(PTUI_MENU_INFO MenuInfo, U32 MenuItemNumber);
U32 TuiProcessMenuKeyboardEvent(PTUI_MENU_INFO MenuInfo, UiMenuKeyPressFilterCallback KeyPressFilter);
BOOL TuiDisplayMenu(PUCHAR MenuItemList[], U32 MenuItemCount, U32 DefaultMenuItem, S32 MenuTimeOut, U32* SelectedMenuItem, BOOL CanEscape, UiMenuKeyPressFilterCallback KeyPressFilter);
/*
* Combines the foreground and background colors into a single attribute byte
*/
#define ATTR(cFore, cBack) ((cBack << 4)|cFore)
/*
* Fill styles for DrawBackdrop()
*/
#define LIGHT_FILL 0xB0
#define MEDIUM_FILL 0xB1
#define DARK_FILL 0xB2
/*
* Screen colors
*/
#define COLOR_BLACK 0
#define COLOR_BLUE 1
#define COLOR_GREEN 2
#define COLOR_CYAN 3
#define COLOR_RED 4
#define COLOR_MAGENTA 5
#define COLOR_BROWN 6
#define COLOR_GRAY 7
#define COLOR_DARKGRAY 8
#define COLOR_LIGHTBLUE 9
#define COLOR_LIGHTGREEN 10
#define COLOR_LIGHTCYAN 11
#define COLOR_LIGHTRED 12
#define COLOR_LIGHTMAGENTA 13
#define COLOR_YELLOW 14
#define COLOR_WHITE 15
/* Add COLOR_BLINK to a background to cause blinking */
#define COLOR_BLINK 8
/*
* Defines for IBM box drawing characters
*/
#define HORZ (0xc4) /* Single horizontal line */
#define D_HORZ (0xcd) /* Double horizontal line.*/
#define VERT (0xb3) /* Single vertical line */
#define D_VERT (0xba) /* Double vertical line. */
/* Definitions for corners, depending on HORIZ and VERT */
#define UL (0xda)
#define UR (0xbf) /* HORZ and VERT */
#define LL (0xc0)
#define LR (0xd9)
#define D_UL (0xc9)
#define D_UR (0xbb) /* D_HORZ and D_VERT */
#define D_LL (0xc8)
#define D_LR (0xbc)
#define HD_UL (0xd5)
#define HD_UR (0xb8) /* D_HORZ and VERT */
#define HD_LL (0xd4)
#define HD_LR (0xbe)
#define VD_UL (0xd6)
#define VD_UR (0xb7) /* HORZ and D_VERT */
#define VD_LL (0xd3)
#define VD_LR (0xbd)
#endif // #defined __TUI_H

View File

@@ -1,38 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <version.h>
#include <rtl.h>
UCHAR FreeLoaderVersionString[80];
PUCHAR GetFreeLoaderVersionString(VOID)
{
if (FREELOADER_PATCH_VERSION == 0)
{
sprintf(FreeLoaderVersionString, "FreeLoader v%d.%d", FREELOADER_MAJOR_VERSION, FREELOADER_MINOR_VERSION);
}
else
{
sprintf(FreeLoaderVersionString, "FreeLoader v%d.%d.%d", FREELOADER_MAJOR_VERSION, FREELOADER_MINOR_VERSION, FREELOADER_PATCH_VERSION);
}
return FreeLoaderVersionString;
}

View File

@@ -1,44 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <freeldr.h>
#include <video.h>
#include <portio.h>
#include <mm.h>
#include <machine.h>
PVOID VideoOffScreenBuffer = NULL;
PVOID VideoAllocateOffScreenBuffer(VOID)
{
U32 BufferSize;
if (VideoOffScreenBuffer != NULL)
{
MmFreeMemory(VideoOffScreenBuffer);
VideoOffScreenBuffer = NULL;
}
BufferSize = MachVideoGetBufferSize();
VideoOffScreenBuffer = MmAllocateMemory(BufferSize);
return VideoOffScreenBuffer;
}

View File

@@ -1,48 +0,0 @@
#
# FreeLoader
# Copyright (C) 1999, 2000, 2001 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
FLAGS = -Wall
OBJS = install.o volume.o
LIBS = -lkernel32
.PHONY : clean
all: ../bootsect/fat.h ../bootsect/fat32.h install.exe
../bootsect/fat.h ../bootsect/fat32.h :
@$(MAKE) --no-print-directory -C ../bootsect
install.exe: $(OBJS)
@echo ===================================================== LINKING install
$(CC) $(FLAGS) -o install.exe $(OBJS)
install.o: install.c install.h volume.h
@echo ===================================================== Compiling $*
$(CC) $(FLAGS) -o install.o -c install.c
volume.o: volume.c volume.h install.h
@echo ===================================================== Compiling $*
$(CC) $(FLAGS) -o volume.o -c volume.c
clean:
@-$(RM) *.o
@-$(RM) *.exe
@echo Clean ALL done.

View File

@@ -1,47 +0,0 @@
.EXPORT_ALL_VARIABLES:
#
# Choose various options
#
ifeq ($(HOST),mingw32-linux)
NASM_FORMAT = win32
PREFIX = mingw32-
EXE_POSTFIX :=
EXE_PREFIX := ./
DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as
NASM_CMD = nasm
DOSCLI =
FLOPPY_DIR = /mnt/floppy
SEP := /
PIPE :=
RM = rm -f
CP = cp -f
MKDIR = mkdir
endif
ifeq ($(HOST),mingw32-windows)
NASM_FORMAT = win32
PREFIX =
EXE_PREFIX :=
EXE_POSTFIX := .exe
DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as
NASM_CMD = nasmw
DOSCLI = yes
FLOPPY_DIR = A:
SEP := \$(EMPTY_VAR)
PIPE := -pipe
RM = cmd /C del
CP = copy /Y
MKDIR = md
endif
NFLAGS = -fwin32 -dwin32
BIN2C = ..$(SEP)tools$(SEP)bin2c
TOOLSDIR = ..$(SEP)tools
CC = $(PREFIX)gcc
LD = $(PREFIX)ld
AR = $(PREFIX)ar
NM = $(PREFIX)nm
WINDRES = $(PREFIX)windres

View File

@@ -1,61 +0,0 @@
#
# FreeLoader
# Copyright (C) 1998-2002 Brian Palmer <brianp@sginet.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#############################################
# PROGRAMS
#
CC = gcc
ifeq ($(HOST),mingw32-linux)
RM = rm -f
else
RM = cmd /C del
endif
#############################################
TOOLS = deptool$(EXE_POSTFIX) \
bin2c$(EXE_POSTFIX) \
hosttype$(EXE_POSTFIX) \
rdel$(EXE_POSTFIX) \
rcopy$(EXE_POSTFIX) \
rmkdir$(EXE_POSTFIX) \
rrmdir$(EXE_POSTFIX)
#############################################
all : $(TOOLS)
@echo Tools are up to date.
% :: all
#############################################
%$(EXE_POSTFIX): %.c
@echo ===================================================== Compiling $*
@$(CC) -Wall -O3 -o $@ $<
#############################################
.PHONY : clean
clean:
@-$(RM) $(TOOLS)
@echo Clean ALL done.

View File

@@ -1,2 +0,0 @@
*.ncb
*.opt

View File

@@ -1,102 +0,0 @@
ReactOS Microsoft Visual C/C++ 6.0 IDE files
This is the Microsoft Visual C/C++ 6.0 project workspace and project
files for a few of the ReactOS binaries. They are ONLY included as a
convenience, and is NOT to be considered supported, or even correct.
If you build a binary that misbehaves using these files, you _might_
be able to get in touch with someone to fix the problem
BUT DO NOT COUNT ON IT!
The only supported build system for ReactOS is the one documented at
www.reactos.com.
------------------------------------------------------------------
Please, before you start playing with this, read the whole of
this document.
Before you can use these project files, you _need_ to make a successful
build using the normal ReactOS build system. There are some vital files
that needs to be created, and currently only the normal build creates these.
Once that is done, you need to generate the kernel-mode service "table"
file by running nmake (from this point on you can use the "native"
MSVC tools) from the directory MSVC6\iface\native.
This will generate MSVC6\ntoskrnl\nt_zw_msvc.c, an MSVC compatible inline-
assembler version of the file otherwise known as reactos\ntoskrnl\nt\zw.c.
Next, go to def_converter and run nmake. This builds the tool to convert
the .def files for HAL and the kernel from the MinGW format to something
more suitable for the MSVC linker, and also generates these .def files
to their target location [1].
Now you should be set to fire up the IDE and load the project workspace.
When building HAL or the kernel for the first time using these
project files, just doing it the "normal" way _will not work_.
The linker will complain about missing library, and it will fail.
The reason for this is a circular dependency between these two binaries.
Currently you need to follow these procedures [2]:
- Select hal as your active project.
- Select Project/Settings.
- Select the Link tab.
- Select "General" from the Category drop-list.
- Temporary remove the explicit linker library
(e.g. "..\ntoskrnl\Debug\ntoskrnl.lib")
- Select "Customize" from the Category drop-list.
- Check the "Force file output" checkbox.
- Build hal.
- Uncheck "Force file output".
- Put back the removed import library.
- Now build the ntoskrnl. Do NOT try to build hal again until
you have sucessfully built the kernel, and the linker has
generated its import library!
- Now you can "Clean" hal, and build it as usual.
If everything worked as expected, you should now have both ntoskrnl.exe
and hal.dll freshly built.
LIMITATIONS/DEVIATIONS (from the MinGW build):
- Since there can only be one resource file/project, the kernel had
to choose between either its version resource, or its message table.
The messages won.
- Do NOT open the .rc files in the IDE's resource editor. Chances are
it will assume ownership over them and fill them up with at least
conditional compilation macros.
NOTES:
[1] This is needed due to differences in handling of decorated names
in .def files. While both MinGW GCC and MSVC generates decorated names
in the same way for at least plain cdecl and stdcall C functions, the
MSVC linker expects names in the .def file to be either
- an exact match of the decorated name, in case it exports the
decorated name from the linked binary, or
- just the name without any decoration, in case it exports just the
name of the symbol from the linked binary (to allow for e.g.
GetProcAddress using the undecorated name) - but keeps the decorated
names in the import library to handle and "redirect" linker requests
for those decorated symbols, and point them to the undercorated names
in the binary exporting them - so that a binary A, at link time,
importing symbols from binary B of the form "_name@0" will resolve
that symbol from the import library, but the linked binary A will
reference it as just "name".
The ROS .def files contains a mix, "half-decorated", where the leading
undescores are missing, but the trailing "@n" (for stdcall functions)
are present.
[2] Theoretically it could be possible to use a hal.lib generated by the
following procedure, removing the need for the manual steps above.
cd MSVC6\hal\Debug
lib \def:..\..\..\reactos\hal\hal\hal.def
but I have not tested it, and take no responsibility for its effectiveness.

View File

@@ -1,41 +0,0 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "hal"=.\hal\hal.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "ntoskrnl"=.\ntoskrnl\ntoskrnl.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -1,64 +0,0 @@
// Uses hard-coded filenames to require a minimum of input.
// You think this file should be licensed? OK then,
// Copyright (C) 2004, Mike Nordell. Use as you whish.
#include <fstream>
#include <string>
#include <algorithm>
const char szSrc1[] = "..\\..\\reactos\\ntoskrnl\\ntoskrnl.def";
const char szDst1[] = "..\\ntoskrnl\\ntoskrnl.def";
const char szSrc2[] = "..\\..\\reactos\\hal\\hal\\hal.def";
const char szDst2[] = "..\\hal\\hal.def";
enum File
{
Kernel,
HAL
};
std::string do_kernel_replacements(std::string& s)
{
std::string s2 = s.c_str(); // to fixup size after replacements
if (s2 == "ExAllocateFromPagedLookasideList") {
s2 += "=ExiAllocateFromPagedLookasideList";
} else
if (s2 == "ExFreeToPagedLookasideList") {
s2 += "=ExiFreeToPagedLookasideList";
} else
if (s2 == "MmLockPagableImageSection") {
s2 += "=MmLockPagableDataSection";
}
return s2;
}
void convert_def(const char* szSrc, const char* szDst, File file)
{
using namespace std;
ifstream in(szSrc);
ofstream out(szDst);
string s;
while (getline(in, s).good()) {
if (!s.size()) {
continue;
}
if (s[0] != ';') { // only replace non-comment lines
if (s[0] == '@') {
s.erase(0, 1);
}
replace(s.begin(), s.end(), '@', '\0');
if (file == Kernel) {
s = do_kernel_replacements(s);
}
}
out << s << endl;
}
}
int main()
{
convert_def(szSrc1, szDst1, Kernel);
convert_def(szSrc2, szDst2, HAL);
return 0;
}

View File

@@ -1,19 +0,0 @@
# $Id: makefile,v 1.1 2004/02/06 08:21:54 fireball Exp $
#
# ReactOS Operating System - .def converter for HAL and the kernel
#
DEF_HAL = ..\hal\hal.def
DEF_KRNL = ..\ntoskrnl\ntoskrnl.def
CPPFLAGS = /GX
all: def_converter.exe $(DEF_HAL) $(DEF_KRNL)
$(DEF_HAL) : ..\..\reactos\hal\hal\hal.def
def_converter.exe
$(DEF_KRNL) : ..\..\reactos\ntoskrnl\ntoskrnl.def
def_converter.exe
def_converter.exe : def_converter.cpp

View File

@@ -1,3 +0,0 @@
Debug
Release
hal.def

View File

@@ -1,243 +0,0 @@
# Microsoft Developer Studio Project File - Name="hal" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=hal - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "hal.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "hal.mak" CFG="hal - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "hal - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "hal - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "hal - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /Ot /Og /Os /Ob1 /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "i386" /D "__NTHAL__" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x41d /d "NDEBUG"
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /dll /machine:I386
# ADD LINK32 ..\ntoskrnl\Release\ntoskrnl.lib /nologo /dll /machine:I386 /fixed:no
# SUBTRACT LINK32 /pdb:none /force
!ELSEIF "$(CFG)" == "hal - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Z7 /Od /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "_WINDOWS" /D "__NTHAL__" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "i386" /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x41d /d "_DEBUG"
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\ntoskrnl\Debug\ntoskrnl.lib /nologo /dll /incremental:no /debug /machine:I386 /pdbtype:sept /fixed:no
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "hal - Win32 Release"
# Name "hal - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\adapter.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\beep.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\bus.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\display.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\dma.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\drive.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\enum.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\fmutex.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\fmutex_tmn.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halinit.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halx86mp.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halx86up.rc
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\irql.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\isa.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\kdbg.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mca.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\misc.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mp.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mpsirql.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\pci.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\portio.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\pwroff.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\reboot.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\spinlock.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\spinlock_tmn.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\sysbus.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\sysinfo.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\time.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\timer.c
# End Source File
# End Group
# Begin Group "include"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\bus.h
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\hal.h
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\mps.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Source File
SOURCE=.\hal.def
# End Source File
# End Target
# End Project

View File

@@ -1,392 +0,0 @@
/* $Id: genntdll.c,v 1.1 2004/02/06 08:21:56 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS version of ntdll
* FILE: iface/native/genntdll.c
* PURPOSE: Generates the system call stubs in ntdll
* CHANGE HISTORY: Added a '@xx' to deal with stdcall [ Ariadne ]
* 19990616 (ea)
* Four arguments now required; 4th is the file
* for ntoskrnl ZwXXX functions (which are merely calls
* to twin NtXXX calls, via int 0x2e (x86).
* 19990617 (ea)
* Fixed a bug in function numbers in kernel ZwXXX stubs.
*
*/
/* INCLUDE ******************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define PARAMETERIZED_LIBS
/* #define VERBOSE */
#define INPUT_BUFFER_SIZE 255
/* FUNCTIONS ****************************************************************/
void write_syscall_stub(FILE* out, FILE* out3, char* name, char* name2,
char* nr_args, unsigned int sys_call_idx)
{
int i;
int nArgBytes = atoi(nr_args);
#ifdef PARAMETERIZED_LIBS
fprintf(out,"__asm__(\"\\n\\t.global _%s@%s\\n\\t\"\n",name,nr_args);
fprintf(out,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
fprintf(out,"\"_%s@%s:\\n\\t\"\n",name,nr_args);
fprintf(out,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
#else
fprintf(out,"__asm__(\"\\n\\t.global _%s\\n\\t\"\n",name);
fprintf(out,"\".global _%s\\n\\t\"\n",name2);
fprintf(out,"\"_%s:\\n\\t\"\n",name);
fprintf(out,"\"_%s:\\n\\t\"\n",name2);
#endif
fprintf(out,"\t\"pushl\t%%ebp\\n\\t\"\n");
fprintf(out,"\t\"movl\t%%esp, %%ebp\\n\\t\"\n");
fprintf(out,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx);
fprintf(out,"\t\"lea\t8(%%ebp),%%edx\\n\\t\"\n");
fprintf(out,"\t\"int\t$0x2E\\n\\t\"\n");
fprintf(out,"\t\"popl\t%%ebp\\n\\t\"\n");
fprintf(out,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
/*
* Now write the NTOSKRNL stub for the
* current system call. ZwXXX does NOT
* alias the corresponding NtXXX call.
*/
#if 0
fprintf(out3,"__asm__(\n");
fprintf(out3,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
fprintf(out3,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
fprintf(out3,"\t\"pushl\t%%ebp\\n\\t\"\n");
fprintf(out3,"\t\"movl\t%%esp, %%ebp\\n\\t\"\n");
fprintf(out3,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx);
fprintf(out3,"\t\"lea\t8(%%ebp),%%edx\\n\\t\"\n");
fprintf(out3,"\t\"int\t$0x2E\\n\\t\"\n");
fprintf(out3,"\t\"popl\t%%ebp\\n\\t\"\n");
fprintf(out3,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
#else
fprintf(out3,"__declspec(naked) __stdcall\n");
fprintf(out3,"%s(", name2); // make it emit callconv, reval and full signature too
for (i=0; i*4 < nArgBytes; ++i) {
fprintf(out3,"int dummy%d", i);
if (((i+1)*4) < nArgBytes) fprintf(out3,",");
}
fprintf(out3,")\n{\n");
fprintf(out3,"\t__asm {\n");
fprintf(out3,"\t\tpush\tebp\n");
fprintf(out3,"\t\tmov\tebp, esp\n");
fprintf(out3,"\t\tmov\teax,%d\n",sys_call_idx);
fprintf(out3,"\t\tlea\tedx, 8[ebp]\n");
fprintf(out3,"\t\tint\t0x2E\n");
fprintf(out3,"\t\tpop\tebp\n");
fprintf(out3,"\t\tret\t%s\n",nr_args);
fprintf(out3,"\t}\n");
fprintf(out3,"}\n\n");
#endif
}
int makeSystemServiceTable(FILE *in, FILE *out)
{
char line [INPUT_BUFFER_SIZE];
char *s;
char *name;
char *name2;
int sys_call_idx;
char *nr_args;
char *stmp;
/*
* Main SSDT Header
*/
fprintf(out,"// Machine generated, don't edit\n");
fprintf(out,"\n\n");
/*
* First we build the Main SSDT
*/
fprintf(out,"\n\n\n");
fprintf(out,"SSDT MainSSDT[] = {\n");
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
if (sys_call_idx > 0)
{
fprintf(out,",\n");
}
/*
* Now write the current system call's name
* in the service table.
*/
fprintf(out,"\t\t{ (ULONG)%s }",name);
}
}
/* Close the service table (C syntax) */
fprintf(out,"\n};\n");
/*
* Now we build the Main SSPT
*/
rewind(in);
fprintf(out,"\n\n\n");
fprintf(out,"SSPT MainSSPT[] = {\n");
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
if (sys_call_idx > 0)
{
fprintf(out,",\n");
}
/*
* Now write the current system call's ID
* in the service table along with its Parameters Size.
*/
fprintf(out,"\t\t{ %s }",nr_args);
}
}
/*
* Close the service table (C syntax)
*/
fprintf(out,"\n};\n");
/*
* We write some useful defines
*/
fprintf(out, "\n\n#define MIN_SYSCALL_NUMBER 0\n");
fprintf(out, "#define MAX_SYSCALL_NUMBER %d\n", sys_call_idx-1);
fprintf(out, "#define NUMBER_OF_SYSCALLS %d\n", sys_call_idx);
return(0);
}
int
process(
FILE * in,
FILE * out,
FILE * out2,
FILE * out3
)
{
char line [INPUT_BUFFER_SIZE];
char * s;
char * name; /* NtXXX name */
char * name2; /* ZwXXX name */
int sys_call_idx; /* NtXXX index number in the service table */
char * nr_args; /* stack_size / machine_word_size */
char * stmp;
/*
* NTDLL stubs file header
*/
fprintf(out,"// Machine generated, don't edit\n");
fprintf(out,"\n\n");
/*
* NTOSKRNL Zw functions stubs header
*/
fprintf(out3,"// Machine generated by genntdll, don't edit\n");
fprintf(out3,"\n\n");
/*
* Scan the database. DB is a text file; each line
* is a record, which contains data for one system
* function. Each record has three columns:
*
* NT_NAME (e.g. NtCreateProcess)
* ZW_NAME (e.g. ZwCreateProcess)
* STACK_SIZE (in machine words: for x[3456]86
* processors a machine word is 4 bytes)
*/
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
/*
* Remove, if present, the trailing CR.
* (os specific?)
*/
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
/*
* Write the NTDLL stub for the current
* system call: NtXXX and ZwXXX symbols
* are aliases.
*/
write_syscall_stub(out, out3, name, name2,
nr_args, sys_call_idx);
}
}
return(0);
}
void usage(char * argv0)
{
printf("Usage: %s sysfuncs.lst napi.c napi.h zw.c\n"
" sysfuncs.lst system functions database\n"
" napi.c NTDLL stubs\n"
" napi.h NTOSKRNL service table\n"
" zw.c NTOSKRNL Zw stubs\n",
argv0
);
}
int main(int argc, char* argv[])
{
FILE * in; /* System calls database */
FILE * out1; /* NTDLL stubs */
FILE * out2; /* SERVICE_TABLE */
FILE * out3; /* NTOSKRNL Zw stubs */
int ret;
if (argc != 5)
{
usage(argv[0]);
return(1);
}
in = fopen(argv[1],"rb");
if (in == NULL)
{
perror("Failed to open input file (system calls database)");
return(1);
}
out1 = fopen(argv[2],"wb");
if (out1 == NULL)
{
perror("Failed to open output file (NTDLL stubs)");
return(1);
}
out2 = fopen(argv[3],"wb");
if (out2 == NULL)
{
perror("Failed to open output file (NTOSKRNL service table)");
return(1);
}
out3 = fopen(argv[4],"wb");
if (out3 == NULL)
{
perror("Failed to open output file (NTOSKRNL Zw stubs)");
return(1);
}
ret = process(in,out1,out2,out3);
rewind(in);
ret = makeSystemServiceTable(in, out2);
fclose(in);
fclose(out1);
fclose(out2);
fclose(out3);
return(ret);
}

View File

@@ -1,22 +0,0 @@
# $Id: makefile,v 1.1 2004/02/06 08:21:56 fireball Exp $
#
# ReactOS Operating System - MSVC6 Zw functions stubs to call generator
#
SYSTEM_CALLS_DB = ..\..\..\reactos\iface\native\sysfuncs.lst
KERNEL_ZW_CALLS =..\..\ntoskrnl\nt_zw_msvc.c
all: genntdll.exe $(KERNEL_ZW_CALLS)
$(KERNEL_ZW_CALLS) : $(SYSTEM_CALLS_DB)
genntdll.exe $(SYSTEM_CALLS_DB) foo1 foo2 $(KERNEL_ZW_CALLS)
-@del foo1
-@del foo2
genntdll.exe : genntdll.c
clean:
-@del *.exe
-@del *.obj
-@del $(KERNEL_ZW_CALLS)

View File

@@ -1,4 +0,0 @@
Debug
Release
nt_zw_msvc.c
ntoskrnl.def

View File

@@ -1,167 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: ke_i386_bthread.c,v 1.1 2004/02/06 08:21:56 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/ke/i386/bthread.S
* PURPOSE: Trap handlers
* PROGRAMMER: David Welch (david.welch@seh.ox.ac.uk)
*/
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
/* Values for contextflags */
#define CONTEXT_i386 0x10000
#ifndef CONTEXT_CONTROL
#define CONTEXT_CONTROL (CONTEXT_i386 | 1)
#endif
#ifndef CONTEXT_INTEGER
#define CONTEXT_INTEGER (CONTEXT_i386 | 2)
#endif
#ifndef CONTEXT_SEGMENTS
#define CONTEXT_SEGMENTS (CONTEXT_i386 | 4)
#endif
#ifndef CONTEXT_FLOATING_POINT
#define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 8)
#endif
#ifndef CONTEXT_DEBUG_REGISTERS
#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10)
#endif
#ifndef CONTEXT_FULL
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
#endif
/* FUNCTIONS *****************************************************************/
void KeReturnFromSystemCallWithHook();
VOID PiBeforeBeginThread(CONTEXT c);
/*
*
*/
__declspec(naked)
VOID PsBeginThread(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
{
/*
* This isn't really a function, we are called as the return address
* of the context switch function
*/
/*
* Do the necessary prolog after a context switch
*/
__asm
{
call PiBeforeBeginThread
/*
* Call the actual start of the thread
*/
// We must NOT use the arguments by name. VC then uses EBP-relative
// addressing, and with an EBP of 0 you can imagine what happens.
mov ebx, 4[esp] // StartRoutine
mov eax, 8[esp] // StartContext
push eax
call ebx /* Call the start routine */
add esp, 4
/*
* Terminate the thread
*/
push eax
call PsTerminateSystemThread
add esp, 4
}
/* If that fails then bug check */
KeBugCheck(0);
/* And if that fails then loop */
for (;;)
; // forever
}
__declspec(naked)
VOID PsBeginThreadWithContextInternal(VOID)
{
/*
* This isn't really a function, we are called as the return
* address of a context switch
*/
/*
* Do the necessary prolog before the context switch
*/
__asm
{
call PiBeforeBeginThread
/*
* Load the context flags.
*/
pop ebx
/*
* Load the debugging registers
*/
test ebx, (CONTEXT_DEBUG_REGISTERS & ~CONTEXT_i386)
jz L1
pop eax __asm mov dr0, eax
pop eax __asm mov dr1, eax
pop eax __asm mov dr2, eax
pop eax __asm mov dr3, eax
pop eax __asm mov dr6, eax
pop eax __asm mov dr7, eax
jmp L3
L1:
add esp, 24
L3:
/*
* Load the floating point registers
*/
mov eax, HardwareMathSupport
test eax,eax
jz L2
test ebx, (CONTEXT_FLOATING_POINT & ~CONTEXT_i386)
jz L2
frstor [esp]
L2:
add esp, 112
/* Load the rest of the thread's user mode context. */
mov eax, 0
jmp KeReturnFromSystemCallWithHook
}
}

View File

@@ -1,114 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
// no arg-list, but asm doesn't care anyway
void KiInterruptDispatch();
#define DEFINE_INT_HANDLER(N) \
__declspec(naked) \
void irq_handler_##N() \
{ \
__asm pushad \
__asm push ds \
__asm push es \
__asm push fs \
__asm mov eax, 0xceafbeef \
__asm push eax \
__asm mov ax, KERNEL_DS \
__asm mov ds, ax \
__asm mov es, ax \
__asm mov ax, PCR_SELECTOR \
__asm mov fs, ax \
__asm push esp \
__asm push N \
__asm call KiInterruptDispatch \
__asm pop eax \
__asm pop eax \
__asm pop eax \
__asm pop fs \
__asm pop es \
__asm pop ds \
__asm popad \
__asm iretd
// NOTE: The inline assembler can't deal with having the final brace,
// ending the function, on the same line as an __asm, why there is
// none here and it MUST be added when using the macro!
DEFINE_INT_HANDLER(0)
}
DEFINE_INT_HANDLER(1)
}
DEFINE_INT_HANDLER(2)
}
DEFINE_INT_HANDLER(3)
}
DEFINE_INT_HANDLER(4)
}
DEFINE_INT_HANDLER(5)
}
DEFINE_INT_HANDLER(6)
}
DEFINE_INT_HANDLER(7)
}
DEFINE_INT_HANDLER(8)
}
DEFINE_INT_HANDLER(9)
}
DEFINE_INT_HANDLER(10)
}
DEFINE_INT_HANDLER(11)
}
DEFINE_INT_HANDLER(12)
}
DEFINE_INT_HANDLER(13)
}
DEFINE_INT_HANDLER(14)
}
DEFINE_INT_HANDLER(15)
}

View File

@@ -1,655 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2003 Mike Nordell
* Based on multiboot.S (no copyright note present), but so heavily
* modified that it bears close to no resemblance to the original work.
*
* MSVC compatible combination of plain C and inline assembler to:
* 1 Relocated all the sections in the kernel - something I feel the
* bootloader should have done, but multiboot being just a "raw image"
* loader, it unfortunately had to be done here - in-place.
* 2 Set up page directories and stuff.
* 3 Load IDT, GDT and turn on paging, making us execute at the intended
* target address (as if the image was PE-loaded and parsed into that addr.)
* 4 Call _main, and let the rest of the startup run...
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
//
// TODO: Fix the MP parts
//
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <pe.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ps.h>
#include <internal/ldr.h>
// some notes:
// The MSVC linker (by defult) emits no special .bss section, but uses the data
// section with a rawsize smaller than virtualsize. The "slack" is BSS.
//////////////////////////////////////////////////////////////////
// Some macros we need
// some stuff straight from freeloaders multiboot.h
#define MULTIBOOT_HEADER_MAGIC (0x1BADB002)
#define MULTIBOOT_HEADER_FLAGS (0x00010003)
#define TARGET_LOAD_ADDR 0x00200000
#define BASE_TO_PHYS_DIST (KERNEL_BASE - TARGET_LOAD_ADDR)
#define V2P(x) (x - BASE_TO_PHYS_DIST)
#ifdef MP
#define AP_MAGIC (0x12481020)
#endif /* MP */
void initialize_page_directory(void);
void* relocate_pointer_log_to_phys(const void* p)
{
// DON'T CALL this function until relocation of .data and/or .rdata,
// is completed - but still be sure that we have not yet enabled paging!
return (void*)((DWORD)p - BASE_TO_PHYS_DIST);
}
#ifdef _DEBUG
// Macro to emit one character to Bochs debug-port (0x9e).
// We need to do it this way, since at this point of the startup, obviously
// we have neither HAL nor DbgPrint support.
#define BOCHS_OUT_CHAR(c1) __asm push eax __asm push edx __asm mov dx, 0xe9 __asm mov al, c1 __asm out dx, al __asm pop edx __asm pop eax
void boch_out_hex_digit(unsigned char ch1)
{
if (ch1 <= 9) { ch1 += '0'; } else { ch1 += 'a' - 10; }
BOCHS_OUT_CHAR(ch1)
}
void bochs_dump_hex(DWORD p)
{
unsigned char ch3 = (unsigned char)((p >> 28) & 0x0f);
unsigned char cl3 = (unsigned char)((p >> 24) & 0x0f);
unsigned char ch2 = (unsigned char)((p >> 20) & 0x0f);
unsigned char cl2 = (unsigned char)((p >> 16) & 0x0f);
unsigned char ch1 = (unsigned char)((p >> 12) & 0x0f);
unsigned char cl1 = (unsigned char)((p >> 8) & 0x0f);
unsigned char ch0 = (unsigned char)((p >> 4) & 0x0f);
unsigned char cl0 = (unsigned char)((p >> 0) & 0x0f);
BOCHS_OUT_CHAR('0') BOCHS_OUT_CHAR('x')
boch_out_hex_digit(ch3);
boch_out_hex_digit(cl3);
boch_out_hex_digit(ch2);
boch_out_hex_digit(cl2);
boch_out_hex_digit(ch1);
boch_out_hex_digit(cl1);
boch_out_hex_digit(ch0);
boch_out_hex_digit(cl0);
BOCHS_OUT_CHAR('\n')
}
static void bochs_out_string(const char* s /* logical address! */)
{
s = relocate_pointer_log_to_phys(s);
__asm
{
pushad
mov dx, 0xe9
mov ebx, s
L1:
cmp byte ptr[ebx], 0
je end
mov al, [ebx]
out dx, al
inc ebx
jmp L1
end:
popad
}
}
#else
#define BOCHS_OUT_CHAR(c1)
#define bochs_dump_hex(VAL)
#define bochs_out_string(STR)
#endif // _DEBUG
//////////////////////////////////////////////////////////////////
typedef char kernel_page_t[4096];
// Use 4096 (pagesize) more bytes that actually needed for each *_holder,
// to be able to make sure that the other stuff is page aligned.
// No other way to do this portably... :-(
//
// TODO: Consider allocating just one large block of BSS memory here, align
// just the first pointer, and then get the other ones just as offsets from
// this (now-aligned) pointer. That way we could get away with wasting just
// one page of memory, instead of 4 (like 16KB would matter... but still)
static kernel_page_t* startup_pagedirectory_holder[1024 * 2];
static kernel_page_t* lowmem_pagetable_holder[1024 * 2];
static kernel_page_t* kernel_pagetable_holder[32*1024 + 1];
static __int32 kpcr_pagetable_holder[4096/4 * 2];
#ifdef MP
char apic_pagetable[4096];
#endif /* MP */
__int32 unmap_me[4096/4];
__int32 unmap_me2[4096/4];
__int32 unmap_me3[4096/4];
__int32 init_stack[3*4096/4];
int init_stack_top;
__int32 trap_stack[3*4096/4];
int trap_stack_top;
void _main();
// lie a bit about types - since C is basically typeless anyway, it
// doesn't really matter what type we say it is here...
extern int KiGdtDescriptor;
extern int KiIdtDescriptor;
/*
* This is called by the realmode loader, with protected mode
* enabled, paging disabled and the segment registers pointing
* a 4Gb, 32-bit segment starting at zero.
*
* EAX = Multiboot magic or application processor magic
*
* EBX = Points to a structure in lowmem with data from the
* loader
*/
#pragma intrinsic(memset)
// We need to implement this ourself, to be able to get to it by short call's
void our_memmove(void* pDest, const void* pSrc, DWORD size)
{
char* pD = (char*)pDest;
const char* pS = (char*)pSrc;
if (pDest < pSrc)
{
while (size--)
{
*pD++ = *pS++;
}
}
else if (pSrc < pDest)
{
while (size--)
{
pD[size] = pS[size];
}
}
}
void dummy_placeholder(void)
{
// NOTE: This function MUST be placed JUST AFTER MultibootStub in memory.
// Yes, it's BEFORE it in this file, but linkorder.txt fixes this for us.
}
// This one is needed, since the boot loader hasn't relocated us
__declspec(naked)
void MultibootStub()
{
__asm
{
jmp _multiboot_entry
// This sucks, I know...
#define EMIT_DWORD(x) __asm __emit ((x) >> 0) & 0xff __asm _emit ((x) >> 8) & 0xff __asm _emit ((x) >> 16) & 0xff __asm _emit ((x) >> 24) & 0xff
ALIGN 4
EMIT_DWORD(MULTIBOOT_HEADER_MAGIC)
EMIT_DWORD(MULTIBOOT_HEADER_FLAGS)
EMIT_DWORD(-(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS))
EMIT_DWORD(TARGET_LOAD_ADDR + 0x0400 + 0x04)
// Now just make something up, since there is no way we can know, beforehand,
// where any BSS data is...
EMIT_DWORD((TARGET_LOAD_ADDR))
EMIT_DWORD((TARGET_LOAD_ADDR + 1*1024*1024)) /* assume ntoskrnel.exe is < 1MB! */
EMIT_DWORD((TARGET_LOAD_ADDR + 2*1024*1024)) /* just to have something, let's say BSS is 1MB too */
/* This is *REALLY* ugly! If MultibootStub is *EVER* at */
/* any other offset, this will crash like crazy! */
/* 0x0400 is the file alignment of the binary (ntoskrnl.exe) */
EMIT_DWORD((TARGET_LOAD_ADDR + 0x0400)) // entry_addr
_multiboot_entry:
cld // just for good measure
}
{
/* Save the multiboot or application processor magic */
DWORD saved_eax;
DWORD saved_ebx;
__asm mov saved_eax, eax
__asm mov saved_ebx, ebx
// bochs_out_string("MultibootStub()\n");
// OK, time to relocate the brute-loaded image in-place...
// If we don't watch it, we will overwrite ourselves here - imagine
// the fireworks! :-) That's why the function dummy_placeholder()
// MUST be placed JUST JUST AFTER this function.
{
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)TARGET_LOAD_ADDR);
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
const int count = NtHeader->FileHeader.NumberOfSections;
int i;
Section += count - 1; // make it point to the last section
// NOTE: We MUST walk the sections "backwards".
for (i = count-1; i >= 0; --i, --Section)
{
DWORD dwSrc = TARGET_LOAD_ADDR + Section->PointerToRawData;
DWORD dwDst = TARGET_LOAD_ADDR + Section->VirtualAddress;
DWORD dwSiz = Section->SizeOfRawData;
const char* pEndThisFunc;
if (dwSrc == dwDst)
{
continue;
}
//bochs_out_string("MultibootStub: relocating section\n");
if (Section->Characteristics & IMAGE_SCN_MEM_EXECUTE)
{
// can't get a pointer to a label from plain C :-(
__asm mov pEndThisFunc, offset dummy_placeholder
pEndThisFunc -= BASE_TO_PHYS_DIST;
if (dwDst < (DWORD)pEndThisFunc)
{
// We must not move the code from under our feet!
// This can only happen in the code segment - the first segment
DWORD diff = (DWORD)pEndThisFunc - dwDst;
dwDst += diff;
dwSrc += diff;
dwSiz -= diff;
}
}
// obviously we must use memmove, since memory can overlap
our_memmove((void*)dwDst, (void*)dwSrc, dwSiz);
// While at it, we might as well zero any uninitialized data in the section...
if (Section->SizeOfRawData < Section->Misc.VirtualSize)
{
memset((char*)(Section->VirtualAddress + Section->SizeOfRawData + TARGET_LOAD_ADDR),
0,
Section->Misc.VirtualSize - Section->SizeOfRawData);
}
}
// Now all sections are relocated to their intended in-memory layout,
// but we are still running int the low TARGET_LOAD_ADDR memory.
{
// Time to jump to the real startup, the entry-point function.
// We must do this using assembler, since both eax and ebx are assumed
// to hold some magic values.
typedef VOID (STDCALL* pfn_t)(PPEB);
pfn_t pfn = (pfn_t)(NtHeader->OptionalHeader.AddressOfEntryPoint + TARGET_LOAD_ADDR);
#if 1
__asm mov eax, saved_eax
__asm mov ebx, saved_ebx
__asm mov ecx, pfn
__asm jmp ecx
#else
__asm mov ebx, saved_ebx
(*pfn)((PPEB)saved_eax);
#endif
}
}
}
}
// TMN: TODO: Convert this to the extent possible to plain C code
// Due to the "magic" above, we enter this function with all kernel sections
// properly relocated wrt. offsets from start-of-mem. But, we are still running
// without paging, meaning that the address that is to be KERNEL_BASE+xyz is
// currently still TARGET_LOAD_ADDR+xyz.
// We get aways with a few of the functions call here since they are near calls
// (PC-relative), but don't even _think_ about calling any other functions
// until we have turned on paging!
VOID STDCALL
NtProcessStartup(
IN PPEB Peb
)
{
DWORD saved_ebx;
DWORD saved_eax;
__asm mov saved_ebx, ebx
__asm mov saved_eax, eax
bochs_out_string("NtProcessStartup: Just entered\n");
#ifdef MP
if (saved_eax != AP_MAGIC)
{
#endif /* MP */
bochs_out_string("NtProcessStartup: Calling initialize_page_directory()\n");
initialize_page_directory(); // Initialize the page directory
bochs_out_string("NtProcessStartup: Page directory initialized\n");
#ifdef MP
__asm
{
/*
* Initialize the page table that maps the APIC register address space
*/
/*
* FIXME: APIC register address space can be non-standard so do the
* mapping later
*/
mov esi, V2P(apic_pagetable)
mov edi, 0
mov eax, 0xFEC0001B
mov [esi+edi], eax
mov edi, 0x800
mov eax, 0xFEE0001B
mov [esi+edi], eax
}
}
#endif /* MP */
{
bochs_out_string("NtProcessStartup: Enabling paging...\n");
/*
* Enable paging and set write protect
* bit 31: PG, bit 16: WP
*/
__asm mov eax, cr0
__asm or eax, 0x80010000
__asm mov cr0, eax
bochs_out_string("NtProcessStartup: Paging enabled!\n");
bochs_out_string("NtProcessStartup: But we're still at the \"low\" address\n");
/*
* Do an absolute jump because we now want to execute above KERNEL_BASE
*/
__asm mov eax, offset l2_
__asm jmp eax
}
l2_:
bochs_out_string("We have now left \"low\" memory, and is flying at an altitude of...\n");
bochs_out_string("OK, we're not flying, we're just executing above KERNEL_BASE\n");
/*
* Load the GDTR and IDTR with new tables located above
* KERNEL_BASE
*/
#ifdef _DEBUG
{
DWORD val = (DWORD)&KiGdtDescriptor;
bochs_out_string("&KiGdtDescriptor: ");
bochs_dump_hex(val);
val = (DWORD)&KiIdtDescriptor;
bochs_out_string("&KiIdtDescriptor: ");
bochs_dump_hex(val);
}
#endif
bochs_out_string("Loading GDT and IDT...\n");
/* FIXME: Application processors should have their own GDT/IDT */
__asm lgdt KiGdtDescriptor
__asm lidt KiIdtDescriptor
bochs_out_string("GDT and IDT loaded\n");
__asm
{
/*
* Reload the data segment registers
*/
mov eax, KERNEL_DS
mov ds, ax
mov es, ax
mov gs, ax
mov ss, ax
mov eax, 0
mov fs, ax
}
bochs_out_string("NtProcessStartup: segment registers loaded\n");
#ifdef MP
if (saved_eax == AP_MAGIC)
{
__asm
{
/*
* This is an application processor executing
*/
/*
* Initialize EFLAGS
*/
push 0
popfd
/*
* Call the application processor initialization code
*/
push 0
push offset l7_
push KERNEL_CS
push KiSystemStartup
retf
/*
* Catch illegal returns from KiSystemStartup
*/
l7_:
pop eax
}
KeBugCheck(0);
for (;;)
; /*forever */
}
#endif /* MP */
bochs_out_string("Loading fs with PCR_SELECTOR\n");
/* Load the PCR selector */
__asm mov eax, PCR_SELECTOR
__asm mov fs, ax
bochs_out_string("Loading esp with init_stack_top : "); bochs_dump_hex((DWORD)&init_stack_top);
bochs_out_string("Just for interest, init_stack is at: "); bochs_dump_hex((DWORD)init_stack);
bochs_out_string("Meaing the init_stack in bytes is : "); bochs_dump_hex((DWORD)&init_stack_top - (DWORD)init_stack);
/* Load the initial kernel stack */
__asm mov esp, offset init_stack_top
bochs_out_string("Loaded esp with init_stack_top\n");
/*
* Initialize EFLAGS
*/
__asm push 0
__asm popfd
bochs_out_string("Loaded eflags\n");
/*
* Call the main kernel initialization
*/
bochs_out_string("TMN: Calling _main...\n");
__asm
{
xor ebp,ebp
push ebx
push edx
push offset l5_
push KERNEL_CS
push offset _main
retf
/*
* Catch illegal returns from main, try bug checking the system,
* if that fails then loop forever.
*/
l5_:
pop eax
pop eax
} // end of __asm block
bochs_out_string("TMN: Back from _main ?! Let's crash!\n");
KeBugCheck(0);
for (;;)
; /*forever */
}
void initialize_page_directory(void)
{
/*
* Initialize the page directory
*/
// First convert the pointers from the virtual address the compiler generated
// code thinks we are at, to the currently active physical address we actually
// got loaded into by the loader. At this point we have been relocated, so
// that there is a 1:1 mapping between KERNEL_BASE+n and TARGET_LOAD_ADDR+n.
kernel_page_t** startup_pagedirectory = startup_pagedirectory_holder;
kernel_page_t** lowmem_pagetable = lowmem_pagetable_holder;
kernel_page_t** kernel_pagetable = kernel_pagetable_holder;
__int32* kpcr_pagetable = kpcr_pagetable_holder;
bochs_out_string("startup_pagedirectory before reloc: ");
bochs_dump_hex((DWORD)startup_pagedirectory);
startup_pagedirectory = (kernel_page_t**)relocate_pointer_log_to_phys(startup_pagedirectory);
lowmem_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(lowmem_pagetable);
kernel_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(kernel_pagetable);
kpcr_pagetable = (__int32*) relocate_pointer_log_to_phys(kpcr_pagetable);
bochs_out_string("startup_pagedirectory after reloc : ");
bochs_dump_hex((DWORD)startup_pagedirectory);
// Now align the pointers to PAGE_SIZE...
startup_pagedirectory = (kernel_page_t**)(((ULONG_PTR)startup_pagedirectory + 4095) & ~4095);
lowmem_pagetable = (kernel_page_t**)(((ULONG_PTR)lowmem_pagetable + 4095) & ~4095);
kernel_pagetable = (kernel_page_t**)(((ULONG_PTR)kernel_pagetable + 4095) & ~4095);
kpcr_pagetable = (__int32* ) (((ULONG_PTR)kpcr_pagetable + 4095) & ~4095);
#ifdef _DEBUG
bochs_out_string("startup_pagedirectory aligned : ");
bochs_dump_hex((DWORD)startup_pagedirectory);
#endif
// Ugly macros, I know...
#define DEST(PAGE) startup_pagedirectory[(PAGE) + 0xc00 / 4]
#define SRC(PAGE) (kernel_page_t*)((char*)kernel_pagetable + (PAGE)*4096 + 0x7)
startup_pagedirectory[0] = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
{
unsigned int i;
for (i=0; i<32; ++i)
{
DEST(i) = SRC(i);
}
}
DEST( 64) = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
DEST(192) = (kernel_page_t*)((char*)startup_pagedirectory + 0x7);
#ifdef MP
DEST(251) = (kernel_page_t*)((char*)apic_pagetable + 0x7);
#endif /* MP */
DEST(252) = (kernel_page_t*)((char*)kpcr_pagetable + 0x7);
{
unsigned int i;
/* Initialize the page table that maps low memory */
for (i=0; i<1024; ++i) {
lowmem_pagetable[i] = (kernel_page_t*)(i*4096 + 7);
}
/* Initialize the page table that maps kernel memory */
for (i=0; i<6144/4 /* 1536 pages = 6MB */; ++i) {
kernel_pagetable[i] = (kernel_page_t*)(i*4096 + TARGET_LOAD_ADDR + 0x7);
}
/* Initialize the page table that maps the initial KPCR (at FF000000) */
kpcr_pagetable[0] = 0x1007;
}
/*
* Set up the PDBR
*/
__asm mov eax, startup_pagedirectory
__asm mov cr3, eax
}

View File

@@ -1,110 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
void KeReturnFromSystemCall();
/*
* FUNCTION: KeStackSwitchAndRet
* PURPOSE: Switch to a new stack and return from the first frame on
* the new stack which was assumed to a stdcall function with
* 8 bytes of arguments and which saved edi, esi and ebx.
*/
__declspec(naked)
VOID STDCALL
KeStackSwitchAndRet(PVOID NewStack)
{
__asm
{
push ebp
mov ebp, esp
cli
mov esp, NewStack
sti
pop edi
pop esi
pop ebx
pop ebp
ret 8
}
}
__declspec(naked)
VOID STDCALL
KePushAndStackSwitchAndSysRet(ULONG Push, PVOID NewStack)
{
__asm
{
push ebp
mov ebp, esp
push ebx
push esi
push edi
cli
push 8[ebp]
mov ebx, fs:KPCR_CURRENT_THREAD
mov KTHREAD_CALLBACK_STACK[ebx], esp
mov esp, 12[ebp]
sti
push 0
call KeLowerIrql
jmp KeReturnFromSystemCall
}
}

View File

@@ -1,325 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Converted to MSVC-compatible inline assembler by Mike Nordell, 2003.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: MSVC6/ntoskrnl/ke_i386_syscall.c
* based on ntoskrnl/ke/i386/syscall.s
* PURPOSE: syscall dispatching and support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#define KernelMode (0)
#define UserMode (1)
// TMN: Replicated here to reduce mess-time
#ifdef STATUS_INVALID_SYSTEM_SERVICE
#undef STATUS_INVALID_SYSTEM_SERVICE
#endif
#define STATUS_INVALID_SYSTEM_SERVICE 0xc000001c
/*
*
*/
void KiServiceCheck (ULONG Nr);
ULONG KiAfterSystemCallHook(ULONG NtStatus, PKTRAP_FRAME TrapFrame);
VOID KiSystemCallHook(ULONG Nr, ...);
void KeReturnFromSystemCallWithHook();
void KeReturnFromSystemCall();
__declspec(naked)
void interrupt_handler2e(void)
{
__asm
{
/* Construct a trap frame on the stack */
/* Error code */
push 0
push ebp
push ebx
push esi
push edi
push fs
/* Load PCR selector into fs */
mov ebx, PCR_SELECTOR
mov fs, bx
/* Save the old exception list */
mov ebx, fs:KPCR_EXCEPTION_LIST
push ebx
/* Set the exception handler chain terminator */
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
/* Get a pointer to the current thread */
mov esi, fs:KPCR_CURRENT_THREAD
/* Save the old previous mode */
xor ebx,ebx
mov bl, ss:KTHREAD_PREVIOUS_MODE[esi]
push ebx
/* Set the new previous mode based on the saved CS selector */
mov ebx, 0x24[esp]
and ebx, 0x0000FFFF
cmp ebx, KERNEL_CS
#if 0
// TODO: Verify implementation change and use this code path
// to remove two conditional jumps.
setnz bl
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
#else
jne L1
mov ss:KTHREAD_PREVIOUS_MODE[esi], KernelMode
jmp L3
L1:
mov ss:KTHREAD_PREVIOUS_MODE[esi], UserMode
L3:
#endif
/* Save other registers */
push eax
push ecx
push edx
push ds
push es
push gs
push 0 /* DR7 */
push 0 /* DR6 */
push 0 /* DR3 */
push 0 /* DR2 */
push 0 /* DR1 */
push 0 /* DR0 */
push 0 /* XXX: TempESP */
push 0 /* XXX: TempCS */
push 0 /* XXX: DebugPointer */
push 0 /* XXX: DebugArgMark */
mov ebx, 0x60[esp]
push ebx /* DebugEIP */
push ebp /* DebugEBP */
/* Load the segment registers */
mov bx, KERNEL_DS
mov ds, bx
mov es, bx
mov gs, bx
/*
* Save the old trap frame pointer over where we would save the EDX
* register.
*/
mov ebx, KTHREAD_TRAP_FRAME[esi]
mov 0x3C[esp], ebx
/* Save a pointer to the trap frame in the TCB */
mov KTHREAD_TRAP_FRAME[esi], esp
/* Set ES to kernel segment */
mov bx, KERNEL_DS
mov es, bx
/* Allocate new Kernel stack frame */
mov ebp, esp
/* Users's current stack frame pointer is source */
mov esi, edx
/* Determine system service table to use */
cmp eax, 0x0fff
ja new_useShadowTable
/* Check to see if EAX is valid/inrange */
cmp eax, es:KeServiceDescriptorTable + 8
jbe new_serviceInRange
mov eax, STATUS_INVALID_SYSTEM_SERVICE
jmp KeReturnFromSystemCall
new_serviceInRange:
/* Allocate room for argument list from kernel stack */
mov ecx, es:KeServiceDescriptorTable + 12
mov ecx, es:[ecx + eax * 4]
sub esp, ecx
/* Copy the arguments from the user stack to the kernel stack */
mov edi, esp
cld
repe movsb
/* DS is now also kernel segment */
mov ds, bx
/* Call system call hook */
push eax
call KiSystemCallHook
pop eax
/* Make the system service call */
mov ecx, es:KeServiceDescriptorTable
mov eax, es:[ecx + eax * 4]
call eax
#if CHECKED
/* Bump Service Counter */
#endif
/* Deallocate the kernel stack frame */
mov esp, ebp
/* Call the post system call hook and deliver any pending APCs */
push ebp
push eax
call KiAfterSystemCallHook
add esp, 8
jmp KeReturnFromSystemCall
new_useShadowTable:
sub eax, 0x1000
/* Check to see if EAX is valid/inrange */
cmp eax, es:KeServiceDescriptorTableShadow + 24
jbe new_shadowServiceInRange
mov eax, STATUS_INVALID_SYSTEM_SERVICE
jmp KeReturnFromSystemCall
new_shadowServiceInRange:
/* Allocate room for argument list from kernel stack */
mov ecx, es:KeServiceDescriptorTableShadow + 28
mov ecx, es:[ecx + eax * 4]
sub esp, ecx
/* Copy the arguments from the user stack to the kernel stack */
mov edi, esp
cld
repe movsb
/* DS is now also kernel segment */
mov ds, bx
/* Call system call hook */
// pushl %eax
// call _KiSystemCallHook
// popl %eax
/* Call service check routine */
push eax
call KiServiceCheck
pop eax
/* Make the system service call */
mov ecx, es:KeServiceDescriptorTableShadow + 16
mov eax, es:[ecx + eax * 4]
call eax
#if CHECKED
/* Bump Service Counter */
#endif
/* Deallocate the kernel stack frame */
mov esp, ebp
// TMN: Added, to be able to separate this into different functions
jmp KeReturnFromSystemCallWithHook
}
}
__declspec(naked)
void KeReturnFromSystemCallWithHook()
{
__asm
{
/* Call the post system call hook and deliver any pending APCs */
push esp
push eax
call KiAfterSystemCallHook
add esp, 8
// TMN: Added, to be able to separate this into different functions
jmp KeReturnFromSystemCall
}
}
__declspec(naked)
void KeReturnFromSystemCall()
{
__asm
{
/* Restore the user context */
/* Get a pointer to the current thread */
mov esi, fs:0x124
/* Restore the old trap frame pointer */
mov ebx, 0x3c[esp]
mov KTHREAD_TRAP_FRAME[esi], ebx
/* Skip debug information and unsaved registers */
add esp, 0x30
pop gs
pop es
pop ds
pop edx
pop ecx
add esp, 4 /* Don't restore eax */
/* Restore the old previous mode */
pop ebx
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
/* Restore the old exception handler list */
pop ebx
mov fs:KPCR_EXCEPTION_LIST, ebx
pop fs
pop edi
pop esi
pop ebx
pop ebp
add esp, 4 /* Ignore error code */
iretd
}
}

View File

@@ -1,468 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
void KiV86Complete(void);
void KiTrapHandler(void);
void KiDoubleFaultHandler(void);
extern int KiPcrInitDone;
/*
* Epilog for exception handlers
*/
__declspec(naked)
void KiTrapEpilog()
{
__asm
{
cmp eax, 1 /* Check for v86 recovery */
jne _KiTrapRet
jmp KiV86Complete
_KiTrapRet:
/* Skip debug information and unsaved registers */
add esp, 0x30
pop gs
pop es
pop ds
pop edx
pop ecx
pop eax
/* Restore the old previous mode */
pop ebx
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
/* Restore the old exception handler list */
pop ebx
mov fs:KPCR_EXCEPTION_LIST, ebx
pop fs
pop edi
pop esi
pop ebx
pop ebp
add esp, 4 /* Ignore error code */
iretd
}
}
__declspec(naked)
void KiTrapProlog()
{
__asm
{
push edi
push fs
/*
* Check that the PCR exists, very early in the boot process it may
* not
*/
cmp ss:KiPcrInitDone, 0
je L5_
/* Load the PCR selector into fs */
mov ebx, PCR_SELECTOR
mov fs, bx
/* Save the old exception list */
mov ebx, fs:KPCR_EXCEPTION_LIST
push ebx
/* Put the exception handler chain terminator */
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
/* Get a pointer to the current thread */
mov edi, fs:KPCR_CURRENT_THREAD
/* The current thread may be NULL early in the boot process */
cmp edi, 0
je L4_
/* Save the old previous mode */
xor ebx, ebx
mov bl, ss:KTHREAD_PREVIOUS_MODE[edi]
push ebx
/* Set the new previous mode based on the saved CS selector */
mov ebx, 0x24[esp]
and ebx, 0x0000FFFF
cmp ebx, KERNEL_CS
jne L1_
mov ss:KTHREAD_PREVIOUS_MODE[edi], KernelMode
jmp L3_
L1_:
mov ss:KTHREAD_PREVIOUS_MODE[edi], UserMode
L3_:
/* Save other registers */
push eax
push ecx
push edx
push ds
push es
push gs
push 0 /* DR7 */
push 0 /* DR6 */
push 0 /* DR3 */
push 0 /* DR2 */
push 0 /* DR1 */
push 0 /* DR0 */
push 0 /* XXX: TempESP */
push 0 /* XXX: TempCS */
push 0 /* XXX: DebugPointer */
push 0 /* XXX: DebugArgMark */
mov ebx, 0x60[esp]
push ebx /* XXX: DebugEIP */
push ebp /* XXX: DebugEBP */
/* Load the segment registers */
mov ebx, KERNEL_DS
mov ds, bx
mov es, bx
mov gs, bx
/* Set ES to kernel segment */
mov bx, KERNEL_DS
mov es, bx
mov ebx, esp
mov ebp, esp
/* Save the old trap frame. */
cmp edi, 0
je L7_
mov edx, ss:KTHREAD_TRAP_FRAME[edi]
push edx
jmp L8_
L7_:
push 0
L8_:
/* Save a pointer to the trap frame in the current KTHREAD */
cmp edi, 0
je L6_
mov ss:KTHREAD_TRAP_FRAME[edi], ebx
L6_:
/* Call the C exception handler */
push esi
push ebx
call KiTrapHandler
add esp, 8
/* Get a pointer to the current thread */
mov esi, fs:KPCR_CURRENT_THREAD
/* Restore the old trap frame pointer */
pop ebx
mov KTHREAD_TRAP_FRAME[esi], ebx
/* Return to the caller */
jmp KiTrapEpilog
/* Handle the no-pcr case out of line */
L5_:
push 0
/* Handle the no-thread case out of line */
L4_:
push 0
jmp L3_
} // end of __asm block
}
__declspec(naked)
void KiTrap0()
{
__asm
{
/* No error code */
push 0
push ebp
push ebx
push esi
mov esi, 0
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap1()
{
__asm
{
/* No error code */
push 0
push ebp
push ebx
push esi
mov esi, 1
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap2()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 2
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap3()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 3
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap4()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 4
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap5()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 5
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap6()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 6
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap7()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 7
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap8()
{
__asm
{
call KiDoubleFaultHandler
iretd
}
}
__declspec(naked)
void KiTrap9()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 9
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap10()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 10
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap11()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 11
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap12()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 12
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap13()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 13
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap14()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 14
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap15()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 15
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap16()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 16
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrapUnknown()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 255
jmp KiTrapProlog
}
}
/* EOF */

View File

@@ -1,217 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
extern KSPIN_LOCK PiThreadListLock;
extern ULONG PiNrThreadsAwaitingReaping;
extern ULONG MmGlobalKernelPageDirectory[1024];
VOID STDCALL PiWakeupReaperThread(VOID);
VOID KeSetBaseGdtSelector(ULONG Entry, PVOID Base);
/*
* FUNCTIONS: Switches to another thread's context
* ARGUMENTS:
* Thread = Thread to switch to
* OldThread = Thread to switch from
*/
__declspec(naked)
VOID
Ki386ContextSwitch(struct _KTHREAD* NewThread, struct _KTHREAD* OldThread)
{
__asm
{
push ebp
mov ebp, esp
/* Save callee save registers. */
push ebx
push esi
push edi
cli /* This is a critical section for this processor. */
/* Get the pointer to the new thread. */
mov ebx, NewThread
/*
* Set the base of the TEB selector to the base of the TEB for
* this thread.
*/
push ebx
push KTHREAD_TEB[ebx]
push TEB_SELECTOR
call KeSetBaseGdtSelector
add esp, 8
pop ebx
/*
* Load the PCR selector.
*/
mov eax, PCR_SELECTOR
mov fs, ax
/*
* Set the current thread information in the PCR.
*/
mov fs:KPCR_CURRENT_THREAD, ebx
/*
* Set the current LDT
*/
xor eax, eax
mov edi, ETHREAD_THREADS_PROCESS[ebx]
test word ptr KPROCESS_LDT_DESCRIPTOR0[edi], 0xFFFF
jz L4
push KPROCESS_LDT_DESCRIPTOR1[edi]
push KPROCESS_LDT_DESCRIPTOR0[edi]
push LDT_SELECTOR
call KeSetGdtSelector
add esp, 12
mov eax, LDT_SELECTOR
L4:
lldt ax
/*
* Load up the iomap offset for this thread in
* preparation for setting it below.
*/
mov eax, KPROCESS_IOPM_OFFSET[edi]
/*
* FIXME: Save debugging state.
*/
/*
* FIXME: Save floating point state.
*/
/*
* Switch stacks
*/
mov ebx, 12[ebp]
mov KTHREAD_KERNEL_STACK[ebx], esp
mov ebx, 8[ebp]
mov esp, KTHREAD_KERNEL_STACK[ebx]
mov edi, KTHREAD_STACK_LIMIT[ebx]
/*
* Set the stack pointer in this processors TSS
*/
mov esi, fs:KPCR_TSS
/*
* Set current IOPM offset in the TSS
*/
mov KTSS_IOMAPBASE[esi], ax
mov eax, KTHREAD_INITIAL_STACK[ebx]
mov KTSS_ESP0[esi], eax
/*
* Change the address space
*/
mov ebx, ETHREAD_THREADS_PROCESS[ebx]
mov eax, KPROCESS_DIRECTORY_TABLE_BASE[ebx]
mov cr3, eax
/*
* Set up the PDE for the top of the new stack.
*/
mov ebx, 0
L2:
mov esi, edi
shr esi, 22
mov eax, 0xF03C0000[esi*4]
cmp eax, 0
jne L1
mov eax, MmGlobalKernelPageDirectory[esi*4]
mov 0xF03C0000[esi*4], eax
L1:
add edi, 4096
inc ebx
cmp ebx, (MM_STACK_SIZE / 4096)
jl L2
/*
* FIXME: Restore floating point state
*/
/*
* FIXME: Restore debugging state
*/
/*
* Exit the critical section
*/
sti
}
KeReleaseSpinLockFromDpcLevel(&PiThreadListLock);
if (PiNrThreadsAwaitingReaping) {
PiWakeupReaperThread();
}
__asm
{
/*
* Restore the saved register and exit
*/
pop edi
pop esi
pop ebx
pop ebp
ret
}
}

View File

@@ -1,256 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ps.h>
// Taken from ntoskrnl/include/internal/v86m.h, since that one must be fixed
// a bit before it could be used from here.
#define KV86M_REGISTERS_EBP (0x0)
#define KV86M_REGISTERS_EDI (0x4)
#define KV86M_REGISTERS_ESI (0x8)
#define KV86M_REGISTERS_EDX (0xC)
#define KV86M_REGISTERS_ECX (0x10)
#define KV86M_REGISTERS_EBX (0x14)
#define KV86M_REGISTERS_EAX (0x18)
#define KV86M_REGISTERS_DS (0x1C)
#define KV86M_REGISTERS_ES (0x20)
#define KV86M_REGISTERS_FS (0x24)
#define KV86M_REGISTERS_GS (0x28)
#define KV86M_REGISTERS_EIP (0x2C)
#define KV86M_REGISTERS_CS (0x30)
#define KV86M_REGISTERS_EFLAGS (0x34)
#define KV86M_REGISTERS_ESP (0x38)
#define KV86M_REGISTERS_SS (0x3C)
void KiV86Complete();
/*
* Starts in v86 mode with the registers set to the
* specified values.
*/
__declspec(naked)
VOID Ki386RetToV86Mode(KV86M_REGISTERS* InRegs,
KV86M_REGISTERS* OutRegs)
{
__asm
{
/*
* Setup a stack frame
*/
push ebp
mov ebp, esp
pushad /* Save registers */
mov ebx, InRegs
/*
* Save ebp
*/
push ebp
/*
* Save a pointer to IN_REGS which the v86m exception handler will
* use to handle exceptions
*/
push ebx
/*
* Since we are going to fiddle with the stack pointer this must be
* a critical section for this processor
*/
/*
* Save the old initial stack
*/
mov esi, fs:KPCR_CURRENT_THREAD
mov edi, KTHREAD_INITIAL_STACK[esi]
push edi
/*
* We also need to set the stack in the kthread structure
*/
mov KTHREAD_INITIAL_STACK[esi], esp
/*
* The stack used for handling exceptions from v86 mode in this thread
* will be the current stack adjusted so we don't overwrite the
* existing stack frames
*/
mov esi, fs:KPCR_TSS
mov KTSS_ESP0[esi], esp
/*
* Create the stack frame for an iret to v86 mode
*/
push KV86M_REGISTERS_GS[ebx]
push KV86M_REGISTERS_FS[ebx]
push KV86M_REGISTERS_DS[ebx]
push KV86M_REGISTERS_ES[ebx]
push KV86M_REGISTERS_SS[ebx]
push KV86M_REGISTERS_ESP[ebx]
push KV86M_REGISTERS_EFLAGS[ebx]
push KV86M_REGISTERS_CS[ebx]
push KV86M_REGISTERS_EIP[ebx]
/*
* Setup the CPU registers
*/
mov eax, KV86M_REGISTERS_EAX[ebx]
mov ecx, KV86M_REGISTERS_ECX[ebx]
mov edx, KV86M_REGISTERS_EDX[ebx]
mov esi, KV86M_REGISTERS_ESI[ebx]
mov edi, KV86M_REGISTERS_EDI[ebx]
mov ebp, KV86M_REGISTERS_EBP[ebx]
mov ebx, KV86M_REGISTERS_EBX[ebx]
/*
* Go to v86 mode
*/
iretd
/*
* Handle the completion of a vm86 routine. We are called from
* an exception handler with the registers at the point of the
* exception on the stack.
*/
jmp KiV86Complete // TMN: Function-splitting
}
}
__declspec(naked)
void KiV86Complete()
{
__asm
{
/* Restore the original ebp */
mov ebp, TF_ORIG_EBP[esp]
/* Get a pointer to the OUT_REGS structure */
mov ebx, 12[ebp] // OutRegs
/* Skip debug information and unsaved registers */
add esp, 0x30
/* Ignore 32-bit segment registers */
add esp, 12
/* Save the vm86 registers into the OUT_REGS structure */
pop dword ptr KV86M_REGISTERS_EDX[ebx]
pop dword ptr KV86M_REGISTERS_ECX[ebx]
pop dword ptr KV86M_REGISTERS_EAX[ebx]
/* Restore the old previous mode */
pop eax
mov ss:KTHREAD_PREVIOUS_MODE[esi], al
/* Restore the old exception handler list */
pop eax
mov fs:KPCR_EXCEPTION_LIST, eax
/* Ignore the 32-bit fs register */
add esp, 4
pop dword ptr KV86M_REGISTERS_EDI[ebx]
pop dword ptr KV86M_REGISTERS_ESI[ebx]
pop dword ptr KV86M_REGISTERS_EBX[ebx]
pop dword ptr KV86M_REGISTERS_EBP[ebx]
/* Ignore error code */
add esp, 4
pop dword ptr KV86M_REGISTERS_EIP[ebx]
pop dword ptr KV86M_REGISTERS_CS[ebx]
pop dword ptr KV86M_REGISTERS_EFLAGS[ebx]
pop dword ptr KV86M_REGISTERS_ESP[ebx]
pop dword ptr KV86M_REGISTERS_SS[ebx]
pop dword ptr KV86M_REGISTERS_ES[ebx]
pop dword ptr KV86M_REGISTERS_DS[ebx]
pop dword ptr KV86M_REGISTERS_FS[ebx]
pop dword ptr KV86M_REGISTERS_GS[ebx]
/*
* We are going to fiddle with the stack so this must be a critical
* section for this process
*/
cli
/*
* Restore the initial stack
*/
pop eax
mov esi, fs:KPCR_TSS
mov KTSS_ESP0[esi], eax
/*
* We also need to set the stack in the kthread structure
*/
mov esi, fs:KPCR_CURRENT_THREAD
mov edi, KTHREAD_INITIAL_STACK[esi]
mov KTHREAD_INITIAL_STACK[esi], eax
/* Exit the critical section */
sti
/* Ignore IN_REGS pointer */
add esp, 4
/* Ignore ebp restored above */
add esp, 4
/* Return to caller */
popad
mov esp, ebp
pop ebp
ret
} // end of __asm block
}

View File

@@ -1,15 +0,0 @@
; This file is vital. It tells the linker how to order some functions
; and some data, that unfortunately is assumed to be at low location
; and in known order to eachother respectively?
MultibootStub
our_memmove
dummy_placeholder
NtProcessStartup@4
initialize_page_directory
relocate_pointer_log_to_phys
; Order some data that there is some assumptions about...
init_stack
init_stack_top
trap_stack
trap_stack_top

View File

@@ -1,126 +0,0 @@
#include <ddk/ntddk.h>
void MmSafeCopyToUserRestart();
void MmSafeCopyToUserUnsafeStart();
void MmSafeCopyFromUserUnsafeStart();
void MmSafeCopyFromUserRestart();
/*
* NTSTATUS MmSafeCopyFromUser(PVOID Dest, PVOID Src,
* ULONG NumberOfBytes)
*/
__declspec(naked)
NTSTATUS MmSafeCopyFromUser(PVOID Dest, const VOID *Src, ULONG Count)
{
__asm
{
push ebp
mov ebp,esp
push esi
push edi
push ecx
mov edi, 8[ebp]
mov esi, 12[ebp]
mov ecx, 16[ebp]
/*
* Default return code
*/
xor eax,eax
jmp MmSafeCopyFromUserUnsafeStart
}
}
__declspec(naked)
void MmSafeCopyFromUserUnsafeStart()
{
__asm
{
/*
* This is really a synthetic instruction since if we incur a
* pagefault then eax will be set to an appropiate STATUS code
*/
cld
rep movsb
jmp MmSafeCopyFromUserRestart
}
}
__declspec(naked)
void MmSafeCopyFromUserRestart()
{
__asm
{
pop ecx
pop edi
pop esi
pop ebp
ret
}
}
/*****************************************************************************/
/*
* NTSTATUS MmSafeCopyToUser(PVOID Dest, PVOID Src,
* ULONG NumberOfBytes)
*/
NTSTATUS MmSafeCopyToUser(PVOID Dest, const VOID *Src, ULONG Count)
{
__asm
{
push ebp
mov esp,ebp
push esi
push edi
push ecx
mov edi, 8[ebp]
mov esi, 12[ebp]
mov ecx, 16[ebp]
/*
* Default return code
*/
xor eax,eax
jmp MmSafeCopyToUserUnsafeStart
}
}
__declspec(naked)
void MmSafeCopyToUserUnsafeStart()
{
__asm
{
/*
* This is really a synthetic instruction since if we incur a
* pagefault then eax will be set to an appropiate STATUS code
*/
cld
rep movsb
jmp MmSafeCopyToUserRestart
}
}
__declspec(naked)
void MmSafeCopyToUserRestart()
{
__asm
{
pop ecx
pop edi
pop esi
pop ebp
ret
}
}

View File

@@ -1,574 +0,0 @@
/* $Id: mm_mminit_msvc.c,v 1.1 2004/02/06 08:22:01 fireball Exp $
*
* COPYRIGHT: See COPYING in the top directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/mm/mminit.c
* PURPOSE: kernel memory managment initialization functions
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 9/4/98
*/
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <roscfg.h>
#include <internal/i386/segment.h>
#include <internal/mm.h>
#include <internal/ntoskrnl.h>
#include <internal/io.h>
#include <internal/ps.h>
#include <internal/pool.h>
#define NDEBUG
#include <internal/debug.h>
/* GLOBALS *****************************************************************/
/*
* Size of extended memory (kb) (fixed for now)
*/
#define EXTENDED_MEMORY_SIZE (3*1024*1024)
/*
* Compiler defined symbols
*/
#if defined(_MSC_VER)
#pragma intrinsic(strcmp)
static PIMAGE_SECTION_HEADER FindSection(const char* szSeg)
{
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)KERNEL_BASE);
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
const int count = NtHeader->FileHeader.NumberOfSections;
int i;
for (i = 0; i < count; ++i, ++Section)
{
if (!strcmp(szSeg, Section->Name))
{
return Section;
}
}
return NULL;
}
static void* FindSegmentStart(const char* szSeg)
{
PIMAGE_SECTION_HEADER Section = FindSection(szSeg);
if (Section)
{
return (void*)(KERNEL_BASE + Section->VirtualAddress);
}
return NULL;
}
static void* FindSegmentEnd(const char* szSeg)
{
PIMAGE_SECTION_HEADER Section = FindSection(szSeg);
if (Section)
{
return (void*)(KERNEL_BASE + Section->VirtualAddress + Section->Misc.VirtualSize);
}
return NULL;
}
#endif // defined(_MSC_VER)
static BOOLEAN IsThisAnNtAsSystem = FALSE;
static MM_SYSTEM_SIZE MmSystemSize = MmSmallSystem;
static MEMORY_AREA* kernel_text_desc = NULL;
static MEMORY_AREA* kernel_init_desc = NULL;
static MEMORY_AREA* kernel_map_desc = NULL;
static MEMORY_AREA* kernel_kpcr_desc = NULL;
static MEMORY_AREA* kernel_data_desc = NULL;
static MEMORY_AREA* kernel_param_desc = NULL;
static MEMORY_AREA* kernel_pool_desc = NULL;
static MEMORY_AREA* kernel_shared_data_desc = NULL;
static MEMORY_AREA* kernel_mapped_low_mem_desc = NULL;
static MEMORY_AREA* MiKernelMapDescriptor = NULL;
static MEMORY_AREA* MiPagedPoolDescriptor = NULL;
PHYSICAL_ADDRESS MmSharedDataPagePhysicalAddress;
PVOID MiNonPagedPoolStart;
ULONG MiNonPagedPoolLength;
PVOID MiKernelMapStart;
ULONG MiKernelMapLength;
/* FUNCTIONS ****************************************************************/
/*
* @implemented
*/
BOOLEAN STDCALL MmIsThisAnNtAsSystem(VOID)
{
return(IsThisAnNtAsSystem);
}
/*
* @implemented
*/
MM_SYSTEM_SIZE STDCALL MmQuerySystemSize(VOID)
{
return(MmSystemSize);
}
VOID MiShutdownMemoryManager(VOID)
{
}
VOID INIT_FUNCTION
MmInitVirtualMemory(ULONG LastKernelAddress,
ULONG KernelLength)
/*
* FUNCTION: Intialize the memory areas list
* ARGUMENTS:
* bp = Pointer to the boot parameters
* kernel_len = Length of the kernel
*/
{
PVOID BaseAddress;
ULONG Length;
ULONG ParamLength = KernelLength;
NTSTATUS Status;
PHYSICAL_ADDRESS BoundaryAddressMultiple;
//ULONG i;
DPRINT("MmInitVirtualMemory(%x, %x)\n",LastKernelAddress, KernelLength);
BoundaryAddressMultiple.QuadPart = 0;
LastKernelAddress = PAGE_ROUND_UP(LastKernelAddress);
MmInitMemoryAreas();
/* Don't change the start of kernel map. Pte's must always exist for this region. */
MiKernelMapStart = (char*)LastKernelAddress + PAGE_SIZE;
MiKernelMapLength = MM_KERNEL_MAP_SIZE;
MiNonPagedPoolStart = (char*)MiKernelMapStart + MiKernelMapLength + PAGE_SIZE;
MiNonPagedPoolLength = MM_NONPAGED_POOL_SIZE;
MmPagedPoolBase = (char*)MiNonPagedPoolStart + MiNonPagedPoolLength + PAGE_SIZE;
MmPagedPoolSize = MM_PAGED_POOL_SIZE;
MiInitKernelMap();
MiInitializeNonPagedPool();
/*
* Setup the system area descriptor list
*/
BaseAddress = (PVOID)0xf0000000;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
0x400000,
0,
&kernel_map_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)KPCR_BASE;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
PAGE_SIZE * MAXIMUM_PROCESSORS,
0,
&kernel_kpcr_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)0xd0000000;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
0x100000,
0,
&kernel_mapped_low_mem_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)KERNEL_BASE;
Length = PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".text"))) - KERNEL_BASE;
ParamLength = ParamLength - Length;
/*
* No need to lock the address space at this point since no
* other threads are running.
*/
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_text_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
// TODO: Here we REALLY should iterate the PE's sections and set protection
// accordingly for each and every one of them.
// NOTE This code ONLY works because of the assumption that the .text
// segment is the first in the PE, and the .reloc segment is the last.
// Link in a way to make this assumtion false, and the kernel won't work.
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".text")));
Length = PAGE_ROUND_UP(((ULONG)FindSegmentStart(".reloc"))) - (ULONG_PTR)BaseAddress;
ParamLength = ParamLength - Length;
DPRINT1("Data Length %x\n",Length);
DPRINT1("Data BaseAddress %x\n",BaseAddress);
/*
* No need to lock the address space at this point since we are
* the only thread running.
*/
// For GCC-compiled, kernel_data_desc contains:
// .data, .edata, .idata, .bss and .rsrc. E.i. all but .text and .reloc
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_data_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
// BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".edata")));
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentStart(".reloc")));
Length = LastKernelAddress - (ULONG)BaseAddress;
// For GCC-compiled, kernel_param_desc contains .reloc
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_param_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MiNonPagedPoolStart;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
MiNonPagedPoolLength,
0,
&kernel_pool_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MiKernelMapStart;
Status = MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
MiKernelMapLength,
0,
&MiKernelMapDescriptor,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MmPagedPoolBase;
Status = MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_PAGED_POOL,
&BaseAddress,
MmPagedPoolSize,
0,
&MiPagedPoolDescriptor,
FALSE,
FALSE,
BoundaryAddressMultiple);
MmInitializePagedPool();
/*
* Create the kernel mapping of the user/kernel shared memory.
*/
BaseAddress = (PVOID)KI_USER_SHARED_DATA;
Length = PAGE_SIZE;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_shared_data_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
Status = MmRequestPageMemoryConsumer(MC_NPPOOL, TRUE,
&MmSharedDataPagePhysicalAddress);
Status = MmCreateVirtualMapping(NULL,
(PVOID)KI_USER_SHARED_DATA,
PAGE_READWRITE,
MmSharedDataPagePhysicalAddress,
TRUE);
if (!NT_SUCCESS(Status))
{
DbgPrint("Unable to create virtual mapping\n");
KEBUGCHECK(0);
}
RtlZeroMemory(BaseAddress, Length);
/*
*
*/
MmInitializeMemoryConsumer(MC_USER, MmTrimUserMemory);
}
VOID INIT_FUNCTION
MmInit1(ULONG FirstKrnlPhysAddr,
ULONG LastKrnlPhysAddr,
ULONG LastKernelAddress,
PADDRESS_RANGE BIOSMemoryMap,
ULONG AddressRangeCount,
ULONG MaxMem)
/*
* FUNCTION: Initalize memory managment
*/
{
ULONG i;
ULONG kernel_len;
#ifndef MP
extern unsigned int unmap_me, unmap_me2, unmap_me3;
#endif
DPRINT("MmInit1(FirstKrnlPhysAddr, %x, LastKrnlPhysAddr %x, LastKernelAddress %x)\n",
FirstKrnlPhysAddr,
LastKrnlPhysAddr,
LastKernelAddress);
if ((BIOSMemoryMap != NULL) && (AddressRangeCount > 0))
{
// If we have a bios memory map, recalulate the memory size
ULONG last = 0;
for (i = 0; i < AddressRangeCount; i++)
{
if (BIOSMemoryMap[i].Type == 1
&& (BIOSMemoryMap[i].BaseAddrLow + BIOSMemoryMap[i].LengthLow + PAGE_SIZE -1) / PAGE_SIZE > last)
{
last = (BIOSMemoryMap[i].BaseAddrLow + BIOSMemoryMap[i].LengthLow + PAGE_SIZE -1) / PAGE_SIZE;
}
}
if ((last - 256) * 4 > KeLoaderBlock.MemHigher)
{
KeLoaderBlock.MemHigher = (last - 256) * 4;
}
}
if (KeLoaderBlock.MemHigher >= (MaxMem - 1) * 1024)
{
KeLoaderBlock.MemHigher = (MaxMem - 1) * 1024;
}
/*
* FIXME: Set this based on the system command line
*/
MmSystemRangeStart = (PVOID)KERNEL_BASE; // 0xC0000000
MmUserProbeAddress = (PVOID)0x7fff0000;
MmHighestUserAddress = (PVOID)0x7ffeffff;
MmInitGlobalKernelPageDirectory();
/*
* Initialize memory managment statistics
*/
MmStats.NrTotalPages = 0;
MmStats.NrSystemPages = 0;
MmStats.NrUserPages = 0;
MmStats.NrReservedPages = 0;
MmStats.NrUserPages = 0;
MmStats.NrFreePages = 0;
MmStats.NrLockedPages = 0;
MmStats.PagingRequestsInLastMinute = 0;
MmStats.PagingRequestsInLastFiveMinutes = 0;
MmStats.PagingRequestsInLastFifteenMinutes = 0;
/*
* Initialize the kernel address space
*/
MmInitializeKernelAddressSpace();
/*
* Unmap low memory
*/
#ifndef MP
/* In SMP mode we unmap the low memory in MmInit3.
The APIC needs the mapping of the first pages
while the processors are starting up. */
MmDeletePageTable(NULL, 0);
#endif
/*
* Free all pages not used for kernel memory
* (we assume the kernel occupies a continuous range of physical
* memory)
*/
DPRINT("first krnl %x\nlast krnl %x\n",FirstKrnlPhysAddr,
LastKrnlPhysAddr);
/*
* Free physical memory not used by the kernel
*/
MmStats.NrTotalPages = KeLoaderBlock.MemHigher/4;
if (!MmStats.NrTotalPages)
{
DbgPrint("Memory not detected, default to 8 MB\n");
MmStats.NrTotalPages = 2048;
}
else
{
/* add 1MB for standard memory (not extended) */
MmStats.NrTotalPages += 256;
}
#ifdef BIOS_MEM_FIX
MmStats.NrTotalPages += 16;
#endif
DbgPrint("Used memory %dKb\n", (MmStats.NrTotalPages * PAGE_SIZE) / 1024);
LastKernelAddress = (ULONG)MmInitializePageList((PVOID)FirstKrnlPhysAddr,
(PVOID)LastKrnlPhysAddr,
MmStats.NrTotalPages,
PAGE_ROUND_UP(LastKernelAddress),
BIOSMemoryMap,
AddressRangeCount);
kernel_len = LastKrnlPhysAddr - FirstKrnlPhysAddr;
/*
* Create a trap for null pointer references and protect text
* segment
*/
CHECKPOINT;
#if defined(_MSC_VER)
DPRINT(".text start: %x, .data start: %x\n",
(int)FindSegmentStart(".text"),
(int)FindSegmentStart(".data"));
{
const char* pCode = FindSegmentStart(".text");
const char* pData = FindSegmentEnd(".text");
while (pCode < pData)
{
MmSetPageProtect(NULL, (PVOID)pCode, PAGE_EXECUTE_READ);
pCode += PAGE_SIZE;
}
}
#else
DPRINT("_text_start__ %x _init_end__ %x\n",(int)&_text_start__,(int)&_init_end__);
for (i=PAGE_ROUND_DOWN(((int)&_text_start__));
i<PAGE_ROUND_UP(((int)&_init_end__));i=i+PAGE_SIZE)
{
MmSetPageProtect(NULL,
(PVOID)i,
PAGE_EXECUTE_READ);
}
#endif
DPRINT("Invalidating between %x and %x\n",
LastKernelAddress, 0xc0600000);
for (i=(LastKernelAddress); i<0xc0600000; i+=PAGE_SIZE)
{
MmRawDeleteVirtualMapping((PVOID)(i));
}
DPRINT("Invalidating between %x and %x\n",
0xd0100000, 0xd0400000);
for (i=0xd0100000; i<0xd0400000; i+=PAGE_SIZE)
{
MmRawDeleteVirtualMapping((PVOID)(i));
}
DPRINT("Almost done MmInit()\n");
#ifndef MP
/* FIXME: This is broken in SMP mode */
#if !defined(_MSC_VER) // FIXME: I don't trust using this from MSVC yet!
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me, TRUE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me2, TRUE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me3, TRUE, NULL, NULL);
#endif // _MSC_VER
#endif
/*
* Intialize memory areas
*/
MmInitVirtualMemory(LastKernelAddress, kernel_len);
MmInitializeMdlImplementation();
}
VOID INIT_FUNCTION
MmInit2(VOID)
{
MmInitializeRmapList();
MmInitializePageOp();
MmInitSectionImplementation();
MmInitPagingFile();
}
VOID INIT_FUNCTION
MmInit3(VOID)
{
/*
* Unmap low memory
*/
#ifdef MP
/* In SMP mode we can unmap the low memory
if all processors are started. */
MmDeletePageTable(NULL, 0);
#endif
MmInitZeroPageThread();
MmCreatePhysicalMemorySection();
MiInitBalancerThread();
/*
* Initialise the modified page writer.
*/
MmInitMpwThread();
/* FIXME: Read parameters from memory */
}
VOID STATIC
MiFreeInitMemoryPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
PHYSICAL_ADDRESS PhysAddr, SWAPENTRY SwapEntry,
BOOLEAN Dirty)
{
assert(SwapEntry == 0);
if (PhysAddr.QuadPart != 0)
{
MmReleasePageMemoryConsumer(MC_NPPOOL, PhysAddr);
}
}
VOID
MiFreeInitMemory(VOID)
{
#if defined(_MSC_VER)
DPRINT1("Can not yet free .init memory for MSVC compiled kernel\n");
#else
MmLockAddressSpace(MmGetKernelAddressSpace());
MmFreeMemoryArea(MmGetKernelAddressSpace(),
(PVOID)&_init_start__,
PAGE_ROUND_UP((ULONG)&_init_end__) - (ULONG)_init_start__,
MiFreeInitMemoryPage,
NULL);
MmUnlockAddressSpace(MmGetKernelAddressSpace());
#endif
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,299 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#define EXCEPTION_UNWINDING 0x02
#define EREC_FLAGS 0x04
#define ExceptionContinueExecution 0
#define ExceptionContinueSearch 1
#define ExceptionNestedException 2
#define ExceptionCollidedUnwind 3
//.globl _RtlpExecuteHandlerForException
//.globl _RtlpExecuteHandlerForUnwind
#define CONTEXT_FLAGS 0x00
#define CONTEXT_SEGGS 0x8C
#define CONTEXT_SEGFS 0x90
#define CONTEXT_SEGES 0x94
#define CONTEXT_SEGDS 0x98
#define CONTEXT_EDI 0x9C
#define CONTEXT_ESI 0xA0
#define CONTEXT_EBX 0xA4
#define CONTEXT_EDX 0xA8
#define CONTEXT_ECX 0xAC
#define CONTEXT_EAX 0xB0
#define CONTEXT_EBP 0xB4
#define CONTEXT_EIP 0xB8
#define CONTEXT_SEGCS 0xBC
#define CONTEXT_EFLAGS 0xC0
#define CONTEXT_ESP 0xC4
#define CONTEXT_SEGSS 0xC8
#define RCC_CONTEXT 0x08
VOID STDCALL
AsmDebug(ULONG Value);
// EAX = value to print
__declspec(naked)
void do_debug()
{
__asm
{
pusha
push eax
call AsmDebug
popa
ret
}
}
#define REH_ERECORD 0x08
#define REH_RFRAME 0x0C
#define REH_CONTEXT 0x10
#define REH_DCONTEXT 0x14
#define REH_EROUTINE 0x18
// Parameters:
// None
// Registers:
// [EBP+08h] - PEXCEPTION_RECORD ExceptionRecord
// [EBP+0Ch] - PEXCEPTION_REGISTRATION RegistrationFrame
// [EBP+10h] - PVOID Context
// [EBP+14h] - PVOID DispatcherContext
// [EBP+18h] - PEXCEPTION_HANDLER ExceptionRoutine
// EDX - Address of protecting exception handler
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// Setup the protecting exception handler and call the exception
// handler in the right context.
__declspec(naked)
void RtlpExecuteHandler()
{
__asm
{
push ebp
mov ebp, esp
push REH_RFRAME[ebp]
push edx
push fs:0x0
mov fs:0x0, esp
// Prepare to call the exception handler
push REH_DCONTEXT[ebp]
push REH_CONTEXT[ebp]
push REH_RFRAME[ebp]
push REH_ERECORD[ebp]
// Now call the exception handler
mov eax, REH_EROUTINE[ebp]
call eax
cmp fs:0x0, -1
jne reh_stack_looks_ok
// This should not happen
push 0
push 0
push 0
push 0
call RtlAssert
reh_loop:
jmp reh_loop
reh_stack_looks_ok:
mov esp, fs:0x0
// Return to the 'front-end' for this function
pop dword ptr fs:0x0
mov esp, ebp
pop ebp
ret
}
}
#if 0
#endif // 0
#define REP_ERECORD 0x04
#define REP_RFRAME 0x08
#define REP_CONTEXT 0x0C
#define REP_DCONTEXT 0x10
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// This exception handler protects the exception handling
// mechanism by detecting nested exceptions.
__declspec(naked)
void RtlpExceptionProtector()
{
__asm
{
mov eax, ExceptionContinueSearch
mov ecx, REP_ERECORD[esp]
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
jnz rep_end
// Unwinding is not taking place, so return ExceptionNestedException
// Set DispatcherContext field to the exception registration for the
// exception handler that executed when a nested exception occurred
mov ecx, REP_DCONTEXT[esp]
mov eax, REP_RFRAME[esp]
mov [ecx], eax
mov eax, ExceptionNestedException
rep_end:
ret
}
}
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// Front-end
__declspec(naked)
void RtlpExecuteHandlerForException()
{
__asm
{
mov edx, RtlpExceptionProtector
jmp RtlpExecuteHandler
}
}
#define RUP_ERECORD 0x04
#define RUP_RFRAME 0x08
#define RUP_CONTEXT 0x0C
#define RUP_DCONTEXT 0x10
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// This exception handler protects the exception handling
// mechanism by detecting collided unwinds.
__declspec(naked)
void RtlpUnwindProtector()
{
__asm
{
mov eax, ExceptionContinueSearch
mov RUP_ERECORD[esp], ecx
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
jz rup_end
// Unwinding is taking place, so return ExceptionCollidedUnwind
mov ecx, RUP_RFRAME[esp]
mov edx, RUP_DCONTEXT[esp]
// Set DispatcherContext field to the exception registration for the
// exception handler that executed when a collision occurred
mov eax, RUP_RFRAME[ecx]
mov [edx], eax
mov eax, ExceptionCollidedUnwind
rup_end:
ret
}
}
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
__declspec(naked)
void RtlpExecuteHandlerForUnwind()
{
__asm mov edx, RtlpUnwindProtector
__asm jmp RtlpExecuteHandler
}

View File

@@ -1,3 +0,0 @@
*.exe
*.o
*.sym

View File

@@ -1,37 +0,0 @@
# $Id: Makefile,v 1.2 2003/01/07 16:23:10 robd Exp $
#
#
PATH_TO_TOP = ../../../reactos
PATH_TO_OS2_TOP = ../..
TARGET_TYPE = program
TARGET_NORC = yes
#TARGET_APPTYPE = console
TARGET_APPTYPE = windows
TARGET_NAME = bepslep
TARGET_CFLAGS = -D__SUBSYSTEM_WINDOWS__
TARGET_LFLAGS = -nostartfiles
TARGET_SDKLIBS = doscalls.a
TARGET_GCCLIBS = stdc++
#TARGET_LIBS = $(PATH_TO_OS2_TOP)/lib/crt0w32.o \
# $(PATH_TO_TOP)/dk/psx/lib/psxdll.a
# $(PATH_TO_OS2_TOP)/dll/doscalls.dll
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,20 +0,0 @@
#define INCL_DOSPROCESS
#include "../../include/os2.h"
//#include "../../include/ros2.h"
void Eingang()
{
DosBeep(3000,300);
DosSleep(1000);
DosBeep(4000,200);
DosExit(0,0);
}
void WinMainCRTStartup()
{
int a, b;
a= b+3;
b=a+3;
Eingang();
}

View File

@@ -1,50 +0,0 @@
Win32 and os2ss sight to the system partition
+C < contains under os2ss a autogenerated config.sys
|
+-ROS
+-NATIVE < NTDLL, ntoskrnl, hal.dll, csrss.exe os2.exe psx.exe ...
| +-DRIVERS < *.SYS
| +-CONFIG < registry
+-WIN32
| +-SYSTEM < user32.dll kernel32.dll ...
| +-FONTS
| +...
+-OS2
| +-DLL < doscalls.dll ....
| +-SYSTEM
| +-...
+-PSX
+-etc < mountpoint for posix apps
+-bin
+-dev
+-lib < posix.dll
+-tmp
+-var
+-mnt < empty
posix sight to the system partition
/
+-etc < mountpoint for posix apps
+-bin
+-dev < link to OB-mans Devices
+-lib < posix.dll
+-tmp < alias to systemtemp
+-var
+-mnt
+-C < win32-driveletters
| |
| +-ROS
| +-NATIVE < NTDLL, ntoskrnl, hal.dll, csrss.exe os2.exe psx.exe ...
| | +-DRIVERS < *.SYS
| | +-CONFIG < registry
| +-WIN32
| | +-SYSTEM < user32.dll kernel32.dll ...
| | +-FONTS
| | +...
| +-OS2 <some apps
| | +-DLL < doscalls.dll ....
| | +-SYSTEM
| | +-...
| +-PSX < empty
+-D
+-E...

View File

@@ -1,16 +0,0 @@
Beginning ROS/2-Developement
============================
ROS/2-Developement means building the OS/2 subsystem for ReactOS. In order to start the developement you should have CVS-access. For the CVS-access see the reactos-Homepage.
Setting up a build environment
------------------------------
For the native components (OS2SS.EXE and OS2.EXE) you'll need the same compiler and tools as you need for the rest of ReactOS. If you haven't already set it up, go to the reactos home and see the description there. For now this is the only compiler you need. At some point you'll need a compiler that can generate LX-EXEs. But now also the core dlls and even programs are compiled as PE-win32.
Getting documentation
---------------------
I'm not the inventor of OS/2. IBM still did the work, and they did also good work in terms of documentation. If you plan to do core-dll work, you'll also need NT-Native-API documentation. There exists a book called "The Native API", but there should be a preliminary PDF-file floating around. OS/2-API documentation is available on the CDs belonging to your OS/2-compiler. If you develope under OS/2 you have an INF-viewer on board. If your developementsystem is NT, I recomend you OVIEW (http://hobbes.nmsu.edu/pub/windows/win_inf.zip). This two 'books' should be, what you need.
Contacting me
-------------
Bevore you start, have a talk with me. We don't want to do useless work or do work twice. So write to ros2@dantepark.de

View File

@@ -1,67 +0,0 @@
<html>
<head>
<title>OS/2 subsystem for ReactOS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1><b>OS/2 subsystem for ReactOS (ROS/2)</b></h1>
<h2><font color="#009966">Introduction</font></h2>
<p>The OS/2 subsystem is being developed to enable NT-like systems (like WinNT
and ReactOS) to run 32-Bit OS/2 applications natively. With this it shall provide
binary compatiblility on x86-Based systems. It is intended to port the ROS/2
also to other platforms supported by ReactOS / NT. It is planned to provide
source code compatibility on these platforms. Yeeahh, OS/2 for PowerPC is in
sight.</p>
<h2><font color="#009966">Components</font></h2>
<p>ROS/2 consists of the following components:</p>
<ul>
<li>OS2SS.EXE - A native application that implements the personality of the
OS/2 kernel.</li>
<li>OS2.EXE - A win32 application that does the interaction of the OS/2 apps
with the desktop.</li>
<li>Core DLLs - These DLLs that make OS/2 programs interface with the kernel/sub
system (i.E. DOSCALLS.DLL). </li>
<li>Additional DLLs - DLLs that provide additional APIs for OS/2 apps. This
includes Presentation Manager.</li>
</ul>
<h2><font color="#009966">Current state</font></h2>
<p>Up to now just a fragment of DOSCALLS.DLL exists. The biggest problem are the
os2 API headers which are (C) by IBM. So help is still welcome.</p>
<h2><font color="#009966">16-Bit issues</font></h2>
<p>It is not intended to support 16-bit OS/2 applications. This would make the
system inconsistent and produce much more work that use. But there is still
one issue: Current textmode applications are either 16-bit or use thunking to
call the 16-bit APIs. These 32-Bit thunking applications have to be supported.
We are still thinking how to accomplish that. </p>
<h2><font color="#009966">32-Bit issues</font></h2>
<p>It is planned to replace the current MOU- KBD- MSG- and VIO- subsystems with
the <a href="http://homepages.tesco.net/%7EJ.deBoynePollard/Softwares/conapi.html">Unicode
Console API</a>. This is also the foundation for other platforms we want to
provide source code compatibility with. So nearly every 32-Bit processor can
be supported. It sould even be possible to implement a 64-bit OS/2 API.</p>
<h2><font color="#009966">Architecture</font></h2>
<p>To understand the architecture of ReactOS or WinNT read a book from the &quot;Inside
Windows NT&quot;-series. The architecture of ROS/2 is like every normal subsystem.
When OS2SS.EXE starts, it creates an object directory named os2 and therein
it creates a port object with the name Os2API. A port is something like a socket.
Two programs can comunicate with each other via a port. The port Os2API provides
the LPC API of the OS2SS.EXE - the actual subsystem. <br>
Every OS/2 program that is loaded, is linked with DOSCALLS.DLL and NTDLL.DLL
- the interface to the NT-kernel. Since DOSCALLS is implemented using NTDLL.DLL,
every OS/2 app has it in its adress space. Many functions in DOSCALLS.DLL are
implemented by just wrapping NTDLL.DLL functions. Some functions however need
assistance by the subsystem. For this reason the app makes an LPC to OS2SS.EXE.
LPC means local procedure call and it is a very fast version of RPC. Together
with the first application also OS2.EXE starts up. OS2.EXE runs in the win32
subsystem with the security of the current user. OS2.EXE is used to gather keyboard
and mouse input and to show console windows and PM-windows of all OS/2 programms
of the current user. In order to accomplish this OS2.EXE creates a port object
in the os2 object directory named Os2Interact. OS/2 applications have a connection
to OS2.EXE, too. OS2SS.EXE and OS2.EXE also talk to each other. An OS/2 application
then makes LPCs either to OS2.EXE directly or if required via OS2SS.EXE.</p>
<p>Details</p>
<p>&nbsp;</p>
<p>LPC Documentation</p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,91 +0,0 @@
/* $ $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* FILE: dll/doscalls.c
* PURPOSE: supportheader for Kernelservices.
* Use this file if your dll or application
* is going to use both, the os2 base services
* as well as the native API of NTDLL.DLL
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 1-08-2002 Created
*/
/* How to use:
History got us another time. If you want to write a module
that uses either native-api or os2-services...no problem.
But if you want to use both of them you run into type conflicts.
BOOL is not very surprising. But there are many other types
whose names are equal. This results from the fact that NT
should originally become OS/2 3.0.
So your solution lies in including this file instead of os2.h
and ntddk.h. What this file here does is, it puts the os2-types+
functions into the namespace OS2 while the nt-types+functions are
put into the namespace NT. The still conflicting #defines are handled
like this: If ntddk.h defintes a symbol FOO and os2.h does the same,
this file here undefines the ntddk.h-one and renames it to NT_FOO.
This is only done for conflicting symbols. Of course, this list is a
source for errors. But is there a better solution than renaming
all of the symbols?
*/
#ifndef __ROS2_H__
#define __ROS2_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
namespace NT
{
#include <ddk/ntddk.h>
#include <napi/types.h>
}
/* rename all the symbols */
#define NT_FILE_CREATE FILE_CREATE
#undef FILE_CREATE
#define NT_CREATE_SUSPENDED CREATE_SUSPENDED
#undef CREATE_SUSPENDED
namespace OS2
{
#include "os2.h"
}
using namespace OS2;
APIRET STDCALL Dos32Open(PSZ pszFileName, PHFILE pHf,
PULONG pulAction, ULONG cbFile,
ULONG ulAttribute, ULONG fsOpenFlags,
ULONG fsOpenMode, PVOID reserved ); //ULONGPEAOP2 peaop2)
APIRET STDCALL Dos32Close(HFILE hFile);
APIRET STDCALL Dos32Read(HFILE hFile, PVOID pBuffer,
ULONG cbRead, PULONG pcbActual);
APIRET STDCALL Dos32Write(HFILE hFile, PVOID pBuffer,
ULONG cbWrite, PULONG pcbActual);
ULONG STDCALL DosSleep (ULONG ulInterval);
ULONG STDCALL DosBeep (ULONG ulFrequency, ULONG ulDuration);
VOID STDCALL DosExit (ULONG ulAction, ULONG ulResult);
//ULONG STDCALL DosDevIOCtl (HFILE hDevice, ULONG ulCategory, ULONG ulFunction,
// PVOID pParams, ULONG ulParamsLengthMax, PULONG pulParamsLength,
// PVOID pData, ULONG ulDataLengthMax, PULONG pulDataLength);
typedef ULONG foo_TID;
typedef foo_TID* foo_PTID;
typedef void (*foo_PFNTHREAD)(ULONG ulThreadArg);
ULONG STDCALL DosCreateThread (foo_PTID ptidThreadID, foo_PFNTHREAD pfnThreadAddr,
ULONG ulThreadArg, ULONG ulFlags, ULONG ulStackSize);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __ROS2_H__ */

View File

@@ -1,20 +0,0 @@
@echo off
if "%1" == "" goto NoParameter
set ROS_INSTALL=%1
goto Install
:NoParameter
set ROS_INSTALL=c:\reactos
:Install
echo Installing to %ROS_INSTALL%
@echo off
md %ROS_INSTALL%
md %ROS_INSTALL%\bin
md %ROS_INSTALL%\symbols
md %ROS_INSTALL%\system32
copy ..\os2\apps\bepslep\bepslep.exe %ROS_INSTALL%\bin
copy ..\os2\lib\doscalls\doscalls.dll %ROS_INSTALL%\system32
copy ..\os2\lib\doscalls\doscalls.sym %ROS_INSTALL%\symbols
copy ..\os2\server\os2ss.exe %ROS_INSTALL%\system32
copy ..\os2\server\os2ss.sym %ROS_INSTALL%\symbols

View File

@@ -1,5 +0,0 @@
*.exe
*.o
*.sym
*.dll
*.coff

View File

@@ -1 +0,0 @@
*.o

View File

@@ -1,65 +0,0 @@
/* $Id: devices.cpp,v 1.5 2004/01/31 01:29:11 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: devices.cpp
* CONTAINS: device io ctl main function.
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
* 10-11-2002 Done som little things
*/
#define INCL_DOSDEVICES
#define INCL_DOSERRORS
#include "ros2.h"
/*******************************************/
/* DosDevIOCtl performs control functions */
/* on a device specified by an opened */
/* device handle. */
/*******************************************/
/*HFILE hDevice; Device handle returned by DosOpen, or a standard (open) device handle. */
/*ULONG category; Device category. */
/*ULONG function; Device-specific function code. */
/*PVOID pParams; Address of the command-specific argument list. */
/*ULONG cbParmLenMax; Length, in bytes, of pParams. */
/*PULONG pcbParmLen; Pointer to the length of parameters. */
/*PVOID pData; Address of the data area. */
/*ULONG cbDataLenMax; Length, in bytes, of pData. */
/*PULONG pcbDataLen; Pointer to the length of data. */
/*APIRET ulrc; Return Code.
ulrc (APIRET) - returns
Return Code.
DosDevIOCtl returns one of the following values:
0 NO_ERROR
1 ERROR_INVALID_FUNCTION
6 ERROR_INVALID_HANDLE
15 ERROR_INVALID_DRIVE
31 ERROR_GEN_FAILURE
87 ERROR_INVALID_PARAMETER
111 ERROR_BUFFER_OVERFLOW
115 ERROR_PROTECTION_VIOLATION
117 ERROR_INVALID_CATEGORY
119 ERROR_BAD_DRIVER_LEVEL
163 ERROR_UNCERTAIN_MEDIA
165 ERROR_MONITORS_NOT_SUPPORTED
*/
APIRET STDCALL DosDevIOCtl(HFILE hDevice, ULONG category, ULONG function,
PVOID pParams,ULONG cbParmLenMax,PULONG pcbParmLen,
PVOID pData,ULONG cbDataLenMax,PULONG pcbDataLen)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,97 +0,0 @@
/* $Id: ioctl_async.cpp,v 1.2 2004/01/31 01:29:11 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: ipctl_async.cpp
* PURPOSE: This file is to be directly included into devices.cpp
* CONTAINS: implementation of the category 1 (async I/O)
* ioctl functioncodes.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 10-11-2002 Created
*/
/* This function implements the async ioctls. It
is called from the real DosIOCtl function. This
function implies that it is only called, if the
cathegory was 0x01.
All other parameters are the same as DosIoCtl.
FIXME: implement me
*/
APIRET EvaluateAsyncIoCtl( HFILE hDevice, ULONG function,
PVOID pParams, ULONG cbParmLenMax, PULONG pcbParmLen,
PVOID pData, ULONG cbDataLenMax, PULONG pcbDataLen)
{
switch( function )
{
case 0x41: //ASYNC_SETBAUDRATE
//+------------------------------------+
//|Field Length C Datatype |
//|------------------------------------|
//|Bit Rate WORD USHORT |
//+------------------------------------+
break;
case 0x42: // Set Line Characteristics (stop, parity, data bits)
return ERROR_INVALID_PARAMETER; // example
break;
case 0x43: // Extended Set Bit Rate .
break;
case 0x44: // Transmit Byte Immediate .
break;
case 0x45: // Set Break OFF .
break;
case 0x46: // Set Modem Control Signals .
break;
case 0x47: // Behave as if XOFF Received (stop transmit) .
break;
case 0x48: // Behave as if XON Received (start transmit) .
break;
case 0x49: // Reserved .
break;
case 0x53: // Set Device Control Block (DCB) Parameters .
break;
case 0x54: // Set Enhanced Mode Parameters .
break;
case 0x61: // Query Current Bit Rate .
break;
case 0x62: // Query Line Characteristics .
break;
case 0x63: // Extended Query Bit Rate .
break;
case 0x64: // Query COM Status .
break;
case 0x65: // Query Transmit Data Status .
break;
case 0x66: // Query Modem Control Output Signals .
break;
case 0x67: // Query Current Modem Input Signals .
break;
case 0x68: // Query Number of Characters in Receive Queue .
break;
case 0x69: // Query Number of Characters in Transmit Queue .
break;
case 0x72: // Query COM Event Information .
break;
case 0x73: // Query Device Control Block (DCB) Parameters .
break;
case 0x74: // Query Enhanced Mode Parameters .
break;
default:
return ERROR_INVALID_FUNCTION;
break;
}
return ERROR_INVALID_FUNCTION;
}
/* EOF */

View File

@@ -1,35 +0,0 @@
; $Id: doscalls.def,v 1.6 2004/01/31 01:29:11 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
<<<<<<< doscalls.def
DosSleep
DosClose
DosOpen
DosRead
DosWrite
DosDevIOCtl
DosBeep
DosExit
DosCreateThread
=======
DosSleep
Dos32Close
Dos32Open
Dos32Read
Dos32Write
;DosDevIOCtl
DosBeep
DosExit
DosCreateThread
>>>>>>> 1.5
; EOF

View File

@@ -1,23 +0,0 @@
; $Id: doscalls.def.bak,v 1.1 2002/09/04 22:19:47 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
Dos32Sleep@4 @229
Dos32Close@4 @257
Dos32Open@32 @273
Dos32Read@16 @281
Dos32Write@16 @282
Dos32DevIOCtl@36 @284
Dos32Beep@8 @286
Dos32Exit@8 @234
Dos32CreateThread@20 @311
; EOF

View File

@@ -1,35 +0,0 @@
; $Id: doscalls.edf,v 1.4 2004/01/31 01:29:11 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
<<<<<<< doscalls.edf
DosSleep=DosSleep
DosClose=DosClose
DosOpen=DosOpen
DosRead=DosRead
DosWrite=DosWrite
DosDevIOCtl=DosDevIOCtl
DosBeep=DosBeep
DosExit=DosExit
DosCreateThread=DosCreateThread
=======
DosSleep=DosSleep@4 @229
Dos32Close=Dos32Close@4 @257
Dos32Open=Dos32Open@32 @273
Dos32Read=Dos32Read@16 @281
Dos32Write=Dos32Write@16 @282
;DosDevIOCtl=DosDevIOCtl@36 @284
DosBeep=DosBeep@8 @286
DosExit=DosExit@8 @234
DosCreateThread=DosCreateThread@20 @311
>>>>>>> 1.3
; EOF

View File

@@ -1,38 +0,0 @@
#include <defines.h>
#include <reactos/resource.h>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
VS_VERSION_INFO VERSIONINFO
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "OS2 subsystem base services\0"
VALUE "FileVersion", RES_STR_FILE_VERSION
VALUE "InternalName", "doscalls\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
VALUE "OriginalFilename", "doscalls.dll\0"
VALUE "ProductName", RES_STR_PRODUCT_NAME
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

View File

@@ -1 +0,0 @@
*.o

View File

@@ -1,179 +0,0 @@
/* $Id: directory.cpp,v 1.1 2002/09/04 22:19:47 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: directory.cpp
* PURPOSE: Kernelservices for OS/2 apps
* CONTAINS: Directory related CP-functions.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 10-11-2002 Created
*/
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#include "ros2.h"
/******************************************
DosDelete removes a file name from a
directory. The deleted file may be
recoverable.
pszFile (PSZ) - input
Address of the name of the file to be deleted.
ulrc (APIRET) - returns
Return Code.
DosDelete returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
26 ERROR_NOT_DOS_DISK
32 ERROR_SHARING_VIOLATION
36 ERROR_SHARING_BUFFER_EXCEEDED
87 ERROR_INVALID_PARAMETER
206 ERROR_FILENAME_EXCED_RANGE
*******************************************/
APIRET DosDelete(PSZ pszFile)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/******************************************
DosDeleteDir removes a subdirectory
from the specified disk.
pszDir (PSZ) - input
Address of the fully qualified path name of the subdirectory to be removed.
ulrc (APIRET) - returns
Return Code.
DosDeleteDir returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
16 ERROR_CURRENT_DIRECTORY
26 ERROR_NOT_DOS_DISK
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
206 ERROR_FILENAME_EXCED_RANGE
******************************************/
APIRET DosDeleteDir(PSZ pszDir)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/*******************************************
DosCopy copies the source file or
subdirectory to the destination file or
subdirectory.
pszOld (PSZ) - input
Address of the ASCIIZ path name of the source file,
subdirectory, or character device.
Global file-name characters are not allowed.
pszNew (PSZ) - input
Address of the ASCIIZ path name of the target file,
subdirectory, or character device.
Global file-name characters are not allowed.
option (ULONG) - input
ULONG bit flags that define how the DosCopy
function is done.
Bit Description
31-3 Reserved. These bits must be set to
zero.
2 DCPY_FAILEAS (0x00000004)
Discard the EAs if the source file
contains EAs and the destination file
system does not support EAs.
0 Discard the EAs (extended attributes) if
the destination file system does not
support EAs.
1 Fail the copy if the destination file
system does not support EAs.
1 DCPY_APPEND (x00000002)
Append the source file to the target
file's end of data.
0 Replace the target file with the source
file.
1 Append the source file to the target file's
end of data.
This is ignored when copying a
directory, or if the target file does not
exist.
0 DCPY_EXISTING (0x00000001)
Existing Target File Disposition.
0 Do not copy the source file to the target
if the file name already exists within the
target directory. If a single file is being
copied and the target already exists, an
error is returned.
1 Copy the source file to the target even if
the file name already exists within the
target directory.
Bit flag DCPY_FAILEAS can be used in
combination with bit flag DCPY_APPEND or
DCPY_EXISTING.
ulrc (APIRET) - returns
Return Code.
DosCopy returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
26 ERROR_NOT_DOS_DISK
32 ERROR_SHARING_VIOLATION
36 ERROR_SHARING_BUFFER_EXCEEDED
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
112 ERROR_DISK_FULL
206 ERROR_FILENAME_EXCED_RANGE
267 ERROR_DIRECTORY
282 ERROR_EAS_NOT_SUPPORTED
283 ERROR_NEED_EAS_FOUND
*******************************************/
APIRET DosCopy(PSZ pszOld,PSZ pszNew, ULONG option)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,199 +0,0 @@
/* $Id: openclose.cpp,v 1.5 2004/01/31 01:29:11 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: openclose.cpp
* PURPOSE: Kernelservices for OS/2 apps
* CONTAINS: Open close write and handle related stuff.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
*/
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#include "ros2.h"
<<<<<<< openclose.cpp
APIRET STDCALL DosOpen(PSZ pszFileName, PHFILE pHf,
=======
APIRET STDCALL Dos32Open(PSZ pszFileName, PHFILE pHf,
>>>>>>> 1.4
PULONG pulAction, ULONG cbFile,
ULONG ulAttribute, ULONG fsOpenFlags,
ULONG fsOpenMode, PVOID reserved ) //ULONGPEAOP2 peaop2)
{
/* NTAPI
ZwCreateFile(
OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER AllocationSize OPTIONAL,
IN ULONG FileAttributes,
IN ULONG ShareAccess,
IN ULONG CreateDisposition,
IN ULONG CreateOptions,
IN PVOID EaBuffer OPTIONAL,
IN ULONG EaLength
);*/
/*
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK IoStatusBlock;
UNICODE_STRING NtPathU;
HANDLE FileHandle;
NTSTATUS Status;
ULONG Flags = 0;
switch (dwCreationDisposition)
{
case CREATE_NEW:
dwCreationDisposition = FILE_CREATE;
break;
case CREATE_ALWAYS:
dwCreationDisposition = FILE_OVERWRITE_IF;
break;
case OPEN_EXISTING:
dwCreationDisposition = FILE_OPEN;
break;
case OPEN_ALWAYS:
dwCreationDisposition = OPEN_ALWAYS;
break;
case TRUNCATE_EXISTING:
dwCreationDisposition = FILE_OVERWRITE;
}
DPRINT("CreateFileW(lpFileName %S)\n",lpFileName);
if (dwDesiredAccess & GENERIC_READ)
dwDesiredAccess |= FILE_GENERIC_READ;
if (dwDesiredAccess & GENERIC_WRITE)
dwDesiredAccess |= FILE_GENERIC_WRITE;
if (!(dwFlagsAndAttributes & FILE_FLAG_OVERLAPPED))
{
Flags |= FILE_SYNCHRONOUS_IO_ALERT;
}
if (!RtlDosPathNameToNtPathName_U ((LPWSTR)lpFileName,
&NtPathU,
NULL,
NULL))
return INVALID_HANDLE_VALUE;
DPRINT("NtPathU \'%S\'\n", NtPathU.Buffer);
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
ObjectAttributes.RootDirectory = NULL;
ObjectAttributes.ObjectName = &NtPathU;
ObjectAttributes.Attributes = OBJ_CASE_INSENSITIVE;
ObjectAttributes.SecurityDescriptor = NULL;
ObjectAttributes.SecurityQualityOfService = NULL;
Status = NtCreateFile (&FileHandle,
dwDesiredAccess,
&ObjectAttributes,
&IoStatusBlock,
NULL,
dwFlagsAndAttributes,
dwShareMode,
dwCreationDisposition,
Flags,
NULL,
0);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus (Status);
return INVALID_HANDLE_VALUE;
}
return FileHandle;*/
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* close a Handle. seems finished */
APIRET STDCALL DosClose(HFILE hFile)
{
NT::NTSTATUS nErrCode;
nErrCode = NT::ZwClose( (NT::HANDLE)hFile );
switch( nErrCode )
{
/*
case STATUS_SUCCESS:
return NO_ERROR;
case STATUS_INVALID_HANDLE:
return ERROR_INVALID_HANDLE;
case STATUS_HANDLE_NOT_CLOSABLE:
return ERROR_FILE_NOT_FOUND;
*/
}
return nErrCode;
}
APIRET STDCALL DosRead(HFILE hFile, PVOID pBuffer,
ULONG cbRead, PULONG pcbActual)
{
NT::NTSTATUS nErrCode;
NT::IO_STATUS_BLOCK isbStatus;
// read data from file
nErrCode = NT::ZwReadFile( (NT::HANDLE)hFile, NULL, NULL, NULL,
&isbStatus, pBuffer, cbRead,
NULL, NULL );
// contains the # bytes actually read.
*pcbActual = isbStatus.Information;
switch(nErrCode)
{
/*
case STATUS_INVALID_HANDLE:
return ERROR_INVALID_HANDLE;
// FIXME: complete this
*/
}
return NO_ERROR;
}
/* Generic write to a stream given by hFile */
APIRET STDCALL DosWrite(HFILE hFile, PVOID pBuffer,
ULONG cbWrite, PULONG pcbActual)
{
NT::NTSTATUS nErrCode;
NT::IO_STATUS_BLOCK StatusBlk;
nErrCode = NtWriteFile( (NT::HANDLE)hFile, NULL, NULL, NULL,
&StatusBlk, pBuffer, cbWrite, 0, NULL );
// FIXME *pcbActual = StatusBlk.Information;
// do an errorcode translation FIXME: correct
return ERROR_CALL_NOT_IMPLEMENTED;
switch(nErrCode)
{
/*
case STATUS_SUCCESS:
case STATUS_PENDING:
case STATUS_ACCESS_DENIED:
case STATUS_INVALID_HANDLE:
case STATUS_FILE_LOCK_CONFLICT:
return 0;
*/
}
return 0;
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More