Compare commits

...

5461 Commits

Author SHA1 Message Date
Gunnar Dalsnes
eb74a3a209 mostly naming changes
svn path=/branches/win32k rewrite attempt/; revision=17607
2005-09-02 20:45:56 +00:00
Gunnar Dalsnes
4db821ae05 forgot to commit thisone
svn path=/branches/win32k rewrite attempt/; revision=17599
2005-08-31 14:46:04 +00:00
Gunnar Dalsnes
2ee898e30b mostly structural changes (reorg). nothing really fixed and hopefully nothing broken
svn path=/branches/win32k rewrite attempt/; revision=17590
2005-08-29 14:24:38 +00:00
Gunnar Dalsnes
e24caf21d0 -merge from head 16828-17390
-misc

svn path=/branches/win32k rewrite attempt/; revision=17409
2005-08-16 00:27:39 +00:00
Gunnar Dalsnes
183d1f7277 -revert some prev. changes (using wthread instead of queue) bcause filip didnt like it
-misc queue/thread-input changes

svn path=/branches/win32k rewrite attempt/; revision=17392
2005-08-15 01:19:24 +00:00
Gunnar Dalsnes
867aca0d44 change proto
svn path=/branches/win32k rewrite attempt/; revision=17391
2005-08-15 01:16:58 +00:00
Gunnar Dalsnes
138d39eb35 more stuff
svn path=/branches/win32k rewrite attempt/; revision=17267
2005-08-10 19:52:35 +00:00
Gunnar Dalsnes
691d82883f some stuff
svn path=/branches/win32k rewrite attempt/; revision=17266
2005-08-10 19:52:19 +00:00
Filip Navara
16e21ce809 Fix NULL pointer dereference when clicking on desktop window.
svn path=/branches/win32k rewrite attempt/; revision=17168
2005-08-07 15:16:52 +00:00
Filip Navara
18c80f7c64 Fix queuing of mouse move messages.
svn path=/branches/win32k rewrite attempt/; revision=17163
2005-08-07 12:10:54 +00:00
Filip Navara
a2b6189197 Fix translation of extended keys.
svn path=/branches/win32k rewrite attempt/; revision=17161
2005-08-07 11:52:27 +00:00
Filip Navara
3952a38f5e Fix a wrong size calculation.
svn path=/branches/win32k rewrite attempt/; revision=17052
2005-08-05 01:25:43 +00:00
Filip Navara
f01e0acb02 You would think that two commits are enough for fixing formulations in the document, but I can easily prove you wrong...
svn path=/branches/win32k rewrite attempt/; revision=17047
2005-08-04 18:11:03 +00:00
Filip Navara
1bfb63e65a Fix grammar...
svn path=/branches/win32k rewrite attempt/; revision=17046
2005-08-04 18:01:47 +00:00
Filip Navara
9da5d63bb5 Update comments.
svn path=/branches/win32k rewrite attempt/; revision=17045
2005-08-04 17:49:53 +00:00
Gunnar Dalsnes
ba7a31ef38 -fix timerbug (abiword splash)
-misc

Somewhat works now (thanks to filip), but closing gui consoles makes ros go 100% cpu

svn path=/branches/win32k rewrite attempt/; revision=17044
2005-08-04 16:32:18 +00:00
Filip Navara
b291c417ec Deliver timers only to corresponding message queues.
svn path=/branches/win32k rewrite attempt/; revision=17032
2005-08-03 21:18:24 +00:00
Filip Navara
2eca87b88b Return correct error value in NtUserDestroyCursorIcon.
svn path=/branches/win32k rewrite attempt/; revision=16996
2005-08-03 13:45:18 +00:00
Filip Navara
10fa6dfc70 - Add comment explaining the primitive message queue and fix IntTranslateKbdMessage to work with it.
- Fix one windows locking case in IntPeekMessage.
- Zero memory allocated for HOOKs, MENU_OBJECTs and MONITORs to avoid accessing uninitialized variables.
- Add check for hWnd == NULL to IntGetWindowObject. We mustn't access the window station in that case (it can happen to be call from the primitive message queue thread).

svn path=/branches/win32k rewrite attempt/; revision=16995
2005-08-03 12:42:50 +00:00
Filip Navara
8c8176f951 Use mapped sections for fonts instead of paged pool memory.
svn path=/branches/win32k rewrite attempt/; revision=16978
2005-08-02 20:34:51 +00:00
Filip Navara
3727f7f579 Change comment.
svn path=/branches/win32k rewrite attempt/; revision=16880
2005-07-29 20:24:48 +00:00
Gunnar Dalsnes
754d1c86a3 merge from trunk 16686-16827
misc stuff
still crash often due to referencing problems/freed message queue

svn path=/branches/win32k rewrite attempt/; revision=16829
2005-07-28 13:40:52 +00:00
Gunnar Dalsnes
faed506038 delete stuff (will this ever end?)
svn path=/branches/win32k rewrite attempt/; revision=16821
2005-07-27 21:31:15 +00:00
Gunnar Dalsnes
b653367d15 move stuff, again
svn path=/branches/win32k rewrite attempt/; revision=16820
2005-07-27 21:30:22 +00:00
Gunnar Dalsnes
625b89ccf4 hardon cant svn
svn path=/branches/win32k rewrite attempt/; revision=16819
2005-07-27 21:23:31 +00:00
Gunnar Dalsnes
51e354bbfa move stuff:-|
svn path=/branches/win32k rewrite attempt/; revision=16818
2005-07-27 21:22:26 +00:00
Gunnar Dalsnes
95e0fa9313 give better name
svn path=/branches/hardons1stbranch/; revision=16817
2005-07-27 21:09:08 +00:00
Gunnar Dalsnes
9ace89631d give better name
svn path=/branches/win32k rewrite attempt/; revision=16817
2005-07-27 21:09:08 +00:00
Gunnar Dalsnes
2cf308079f explorer starts but crash due to missing/lost winsta (ref/deref problem?)
svn path=/branches/hardons1stbranch/; revision=16799
2005-07-27 13:18:11 +00:00
Gunnar Dalsnes
b0b68753ff fix compile
svn path=/branches/hardons1stbranch/; revision=16798
2005-07-27 12:01:05 +00:00
Gunnar Dalsnes
5d915742e5 move stuff
svn path=/branches/hardons1stbranch/; revision=16795
2005-07-27 11:33:49 +00:00
Gunnar Dalsnes
98dd342a5e my 1st
svn path=/branches/hardons1stbranch/; revision=16794
2005-07-27 11:08:35 +00:00
Gunnar Dalsnes
9c6c715330 my 1st
svn path=/branches/hardons1stbranch/; revision=16793
2005-07-27 11:06:08 +00:00
Magnus Olsen
58f5ef812e fix a small bug, write out time like HH:MM:SS,ms as ms cmd does.
svn path=/trunk/; revision=16681
2005-07-21 16:28:20 +00:00
Hartmut Birr
0d62ee8f06 Set MmUserProbeAddress and MmHighestUserAddress according to the system range start.
svn path=/trunk/; revision=16680
2005-07-21 15:46:07 +00:00
Magnus Olsen
4ecc4b94c9 Fix copy /B filename + , , bug (touch) and fix whitespace for copy /B file + file + file2
by Brandon Turner

svn path=/trunk/; revision=16679
2005-07-21 14:15:42 +00:00
Magnus Olsen
c4341bddc3 Update with right reactos logo by mf
svn path=/trunk/; revision=16678
2005-07-21 13:55:36 +00:00
Thomas Bluemel
409e9165aa removed the ros-specific (and unused) functions ExRosDumpPagedPoolByTag, ExRosQueryPagedPoolTag and ExRosQueryPoolTag
svn path=/trunk/; revision=16677
2005-07-21 10:31:29 +00:00
Magnus Olsen
0da3627c3b add touch to copy by Brandon Turner
svn path=/trunk/; revision=16676
2005-07-21 10:03:01 +00:00
Alex Ionescu
c6262e3b0f - Freetype Update to 2.1.10. Reduces memory usage, increases speed and fixes drawing bugs.
- Enable Bytecode. Weird_W's fonts finally look humanly readable.

Thanks to Waxdragon for testing.
 
<http://www.freetype.org>

LATEST CHANGES BETWEEN 2.1.10 and 2.1.9

  I. IMPORTANT BUG FIXES

    - The size comparison for BDF and PCF files could fail sometimes.

    - Some  CFF files  were still not  loaded  correctly.   Patch from
      Derek Noonburg.

    - The stroker still had some serious bugs.

    - Boris  Letocha  fixed a  bug in  the  TrueType interpreter:  The
      NPUSHW instruction wasn't skipped correctly in IF clauses.  Some
      fonts like `Helvetica 75 Bold' failed.

    - Another  serious  bug  in  handling  TrueType hints  caused many
      distortions.  It has been introduced in version 2.1.8, and it is
      highly recommended to upgrade.

    - FreeType didn't properly parse empty Type 1 glyphs.
    
    - An unbound dynamic buffer growth was fixed in the PFR loader.
    
    - Several bugs have been fixed in the cache sub-system.

    - FreeType behaved incorrectly when resizing two distinct but very
      close character pixel sizes through `FT_Set_Char_Size' (Savannah
      bug #12263).
      
    - The auto-hinter didn't work properly for fonts without a Unicode
      charmap -- it even refused to load the glyphs.


  II. IMPORTANT CHANGES

    - Many fixes have been applied to drastically reduce the amount of
      heap   memory   used   by   FreeType,   especially   when  using
      memory-mapped font files  (which is the default on Unix  systems
      which support them).

    - The auto-hinter  has been replaced with a new module, called the
      `auto-fitter'.  It consumes  less memory  than its  predecessor,
      and it is  prepared to support non-latin scripts  better in next
      releases.

    - George Williams  contributed code to read  kerning data from PFM
      files.

    - FreeType   now   uses    the   TT_NAME_ID_PREFERRED_FAMILY   and
      TT_NAME_ID_PREFERRED_SUBFAMILY   strings   (if   available)  for
      setting  family  and  style in SFNT  fonts  (patch from Kornfeld
      Eliyahu Peter).

    - A  new  API `FT_Sfnt_Table_Info'  (in FT_TRUETYPE_TABLES_H)  has
      been added to retrieve name and size information of SFNT tables.

    - A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has
      been added to validate OpenType tables  (BASE, GDEF, GPOS, GSUB,
      JSTF).   After validation  it is  no longer  necessary to  check
      for errors in those tables while accessing them.

      Note that  this module might  be moved to another library in the
      future  to avoid  a tight  dependency between  FreeType and  the
      OpenType specification.

    - A new API in FT_BITMAP_H  (`FT_Bitmap_New', `FT_Bitmap_Convert',
      `FT_Bitmap_Copy',  `FT_Bitmap_Embolden',  `FT_Bitmap_Done')  has
      been added.   Its  use is  to convert an  FT_Bitmap structure in
      1bpp, 2bpp,  4bpp, or 8bpp  format into  another 8bpp FT_Bitmap,
      probably using a different pitch, and to further manipulate it.

    - A new  API `FT_Outline_Embolden'  (in FT_OUTLINE_H) gives  finer
      control how  outlines are embolded.

    - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H)  now handles bitmaps
      also (code contributed  by Chia I Wu).  Note that this  function
      is still experimental and may be replaced with a better API.

    - The method  how BDF and PCF  bitmap fonts  are accessed has been
      refined.   Formerly,   FT_Set_Pixel_Sizes  and  FT_Set_Char_Size
      were  synonyms in  FreeType's  BDF and PCF interface.  This  has
      changed now.  FT_Set_Pixel_Sizes  should be  used to  select the
      actual  font dimensions  (the `strike',  which is the sum of the
      `FONT_ASCENT'    and    `FONT_DESCENT'    properties),     while
      FT_Set_Char_Size  selects  the  `nominal' size  (the `PIXELSIZE'
      property).  In both functions, the width parameter is ignored.


  III. MISCELLANEOUS

    - The BDF driver  no longer converts  all returned bitmaps  with a
      depth of 2bpp or 4bpp to a depth of 8bpp.  The documentation has
      not  mentioned  this  explicitly,  but  implementors  might have
      relied on this after looking into the source files.

    - A new option `--ftversion' has been  added to freetype-config to
      return the FreeType version.

    - The  memory  debugger  has  been  updated   to  dump  allocation
      statistics on  all allocation  sources in the library.   This is
      useful to  spot greedy  allocations when  loading and processing
      fonts.

    - We removed a huge array of constant pointers to constant strings
      in the `psnames' module.   The problem was that  compilations in
      PIC mode (i.e.,  when generating a  Unix shared object/dll)  put
      the array  into the non-shared  writable section of  the library
      since absolute pointers are not relocatable by nature.
      
      This reduces the memory consumption by approximately 16KByte per
      process linked  to FreeType.   We now also store  the array in a
      compressed form (as a trie) which saves about 20KByte of code as
      well.

    - Kirill  Smelkov provided  patches to make  src/raster/ftraster.c
      compile stand-alone again.

svn path=/trunk/; revision=16675
2005-07-21 04:38:26 +00:00
Alex Ionescu
e4549de4a3 - Fix "cd" usage when the initial directory is a directory right on top of the root drive. (Brandon Turner)
svn path=/trunk/; revision=16674
2005-07-21 03:26:42 +00:00
Thomas Bluemel
f479dd02aa - Removed the Rtlp* string functions from the shared rtl library since they don't make sense in umode
- Moved RtlpCreateUnicodeString to ntoskrnl for now, it however is depreciated but still used in various places
- Added RtlpAllocateMemory and RtlpFreeMemory for rtl memory allocations (from paged pool in ntoskrnl and from the process heap in ntdll) that replace the ExAllocatePool* and ExFreePool implementations in ntdll

svn path=/trunk/; revision=16673
2005-07-20 23:35:59 +00:00
Thomas Bluemel
7b6225c3b5 fixed kdbg build
svn path=/trunk/; revision=16672
2005-07-20 21:38:17 +00:00
Magnus Olsen
2e13f4640d fix more cmd goto bugs. found labels bugs, and search label bugs, param bugs. now it should work fine
svn path=/trunk/; revision=16671
2005-07-20 19:44:47 +00:00
Magnus Olsen
368f39faad fix another bug in goto it is internel label :eof jump to end of the bat file
svn path=/trunk/; revision=16670
2005-07-20 18:43:01 +00:00
Magnus Olsen
4365851492 fix one bug with cmd goto so WBAT will work bit more now. thx gasmann to report it.
svn path=/trunk/; revision=16668
2005-07-20 17:06:53 +00:00
Alex Ionescu
8e5b438930 - Final fix.
svn path=/trunk/; revision=16667
2005-07-20 15:56:24 +00:00
Alex Ionescu
9b3250ce17 - Fix one more breakage (funny, the thing built without it for me?!)
svn path=/trunk/; revision=16666
2005-07-20 15:21:52 +00:00
Alex Ionescu
3134614de5 - Fix afd build for real (sorry...rbuild...)
svn path=/trunk/; revision=16665
2005-07-20 14:46:24 +00:00
Alex Ionescu
7ba312f725 - Fix AFD Build.
svn path=/trunk/; revision=16664
2005-07-20 14:45:33 +00:00
Alex Ionescu
0e0a951483 Fix build; sorry, I was waiting for Filip.
svn path=/trunk/; revision=16663
2005-07-20 14:40:20 +00:00
Filip Navara
0be32fc8d7 Build fixes.
svn path=/trunk/; revision=16662
2005-07-20 07:48:10 +00:00
Filip Navara
5fa260d21f Get rid of windows.h include in win32k. Fixes bug #666.
svn path=/trunk/; revision=16661
2005-07-20 07:27:09 +00:00
Alex Ionescu
692af5f653 Dmitry Philippov <shedon@mail.ru>:
- Implemented FindFirstFileExW() and have removed InternalFindFirstFile() in /lib/kernel32/file/find.c, now FindFirstFileA (), FindFirstFileExA () and FindFirstFileW called FindFirstFileExW ()

NOTE: Filip has asked revision "16661" (the next one) to be done by him... sorry if this sounds silly, but please respect his wish :)

svn path=/trunk/; revision=16660
2005-07-20 04:43:12 +00:00
Alex Ionescu
e8ebef770f - Move rosdhcp_public.h to dhcp library include directory.
svn path=/trunk/; revision=16659
2005-07-20 03:50:50 +00:00
Alex Ionescu
86f7b177e0 - Deleted ddk folder
- Moved afd headers to driver include directory

svn path=/trunk/; revision=16658
2005-07-20 03:43:20 +00:00
Alex Ionescu
0452118dc0 - Created include/libs and moved all library headers there.
- Created include/drivers and moved driver headers there.
 - Brought back core.h as diskdump.h, and re-enabled diskdump...it seems even though I was told it doesn't work, it's still very much used.

svn path=/trunk/; revision=16657
2005-07-20 03:42:05 +00:00
Alex Ionescu
f7270f23c4 - Build cdfs, ntfs, vfatfs with PCH
- Remove core.h and disable diskdump driver (never worked, was told it's an abandonned, obsolete driver and I tend to agree.)
 - Rename ROS ntifs.h to ccros.h and moved to root include directory (where all the "temporary" includes are for now).
 - Moved ROS class2.h to drivers/storage/include, per my own and other's recommendation, to make it clear that it's a ros-intenral file only useful for low-level storage drivers (no 3rd party driver needs this, which is why MS doesn't export it).

svn path=/trunk/; revision=16656
2005-07-20 02:52:52 +00:00
Alex Ionescu
832b1aa035 - Move asm.h to NDK.
svn path=/trunk/; revision=16655
2005-07-20 00:33:06 +00:00
Magnus Olsen
3de4927bd6 fixing bug copy file c: by Brandon Turner
svn path=/trunk/; revision=16654
2005-07-19 23:44:22 +00:00
Magnus Olsen
f48a391bbd Make CMD rember startpath when you change from start drive to another drive.
svn path=/trunk/; revision=16653
2005-07-19 23:36:59 +00:00
Magnus Olsen
7928f042c0 Fix some pipe and revirt one erly change as harumt sugest. and add alot errorlevel most command handle the errorlevel right but it is alot work todo
svn path=/trunk/; revision=16652
2005-07-19 23:25:50 +00:00
Magnus Olsen
6e7d8b2e8d add ConErrMessage to deal with error msg and ConOutMessage for other msg. Copy error msg are always pipe with ConOut and CD error msg with ConErr. Thx harmut that remmid me about it. All error msg need to check if they goes with ConErr or ConOut
svn path=/trunk/; revision=16651
2005-07-19 22:48:35 +00:00
Alex Ionescu
73e69c9d9e - 4th out of 5 patch part of ROSRTL removal. This touches fibers:
* Support SxS when available (add new fiber member for this as well).
        * Support FLS when available.
        * Added new Fiber Members for new features in XP/2003 (GuaranteedStackBytes and FlsData)
        * Support FPU State Restore/Save in switch code.
        * Use new common stack/context initialization routines instead of ROSRTL.
        * Change Fiber structure to use CONTEXT directly in order to speed up and generalize
          context creation.
        * Fix BaseFiberStartup to send right parameters.

Note: not yet fully tested with fibertest, I will do this later today and fix any bugs.

svn path=/trunk/; revision=16650
2005-07-19 21:04:19 +00:00
Alex Ionescu
22ef1b4558 - Update ASM header file with more offsets.
svn path=/trunk/; revision=16649
2005-07-19 20:56:38 +00:00
Alex Ionescu
f25f86cc02 - Fix LDR_DATA_TABLE_ENTRY definition.
svn path=/trunk/; revision=16648
2005-07-19 20:55:13 +00:00
Casper Hornstrup
4a454cb7d6 Generate RPC interface headers in intermediate directory
svn path=/trunk/; revision=16647
2005-07-19 18:46:13 +00:00
Magnus Olsen
b44c46dccd Fix all bugs in cmd commands cd, make it rember the last directory for each drive. make c: working, make cd f f working. We can not found any more bugs cd rewriting was done by BrandonTurner and me, Brandon rewrite cmd_chdir and I add two functions that we will use for cd and other commands to get and set current drive path. The /D are also implement in CD
svn path=/trunk/; revision=16646
2005-07-19 18:15:32 +00:00
Eric Kohl
5b843df690 - Implement CM_Get_Depth[_Ex] and CM_Get_DevNode_Status[_Ex].
- Add dummy code for CM_Get_Child_Ex, CM_Get_Parent_Ex and CM_Get_Sibling_Ex. WIDL doesn't support this yet.

svn path=/trunk/; revision=16645
2005-07-19 15:57:30 +00:00
Aleksey Bragin
4e94521b41 usb stack "upgrade", fixes issues with timing, host controller reset, new devices discovery, other small things (better to see diff :) ).
svn path=/trunk/; revision=16644
2005-07-19 14:11:53 +00:00
Aleksey Bragin
1e4f24a1e8 usbcore "upgrade", fixes issues with timing, host controller reset, new devices discovery, other small things (better to see diff :) ).
svn path=/trunk/; revision=16643
2005-07-19 14:06:19 +00:00
Aleksey Bragin
52d68cf938 Implemented needed DMA functions (pool alloc/free, create/destroy, map/unmap single), manipulations with timers (schedule_timeout, schedule_wait).
svn path=/trunk/; revision=16642
2005-07-19 13:19:04 +00:00
James Tabor
8e78ac6a62 Implement GdiGetCharDimensions by Robert Shearman rob@codeweavers.com.
svn path=/trunk/; revision=16641
2005-07-19 11:18:40 +00:00
James Tabor
6f5624c2a4 Fixup UnrealizeObject so it can return the correct state for a Brush Object.
svn path=/trunk/; revision=16640
2005-07-19 03:13:11 +00:00
Magnus Olsen
a6fd14c5c8 Cd does rember the cd c:\gcc and you can do c:
and it jump to c:\gcc not tested in reactos yet. but cd have other bugs that need to be fix. 

svn path=/trunk/; revision=16639
2005-07-19 01:55:16 +00:00
Magnus Olsen
3925d142b0 make GetRootPath bit smarter
svn path=/trunk/; revision=16638
2005-07-19 01:36:54 +00:00
Magnus Olsen
758d835b13 make GetRootPath bit faster if it does not get a drive name with :
svn path=/trunk/; revision=16637
2005-07-18 23:04:39 +00:00
Magnus Olsen
07a3a7ec8e add a new interal function call GetRootPath(TCHAR *InPath,TCHAR *OutPath,INT size) it get the a driver current path without change the current driver directory, it is not in use yet, prep for copy, cd, rm, and all other commands.
svn path=/trunk/; revision=16636
2005-07-18 22:44:13 +00:00
Alex Ionescu
ce7fb8c1b9 - Fix nasty APC delivery bug (in case a Kernel-Mode Special APC still returned with a Normal Routine, the Normal Routine was called with incorrect values (Special Routines take PVOID* arguments, while Normal Routines do not!))
- Remove APC from list before setting it to non-inserted.
 - Do proper thread termination piggybacking; terminate threads in user-mode as Hartmut correctly fixed.

svn path=/trunk/; revision=16635
2005-07-18 19:50:23 +00:00
Hartmut Birr
269fab698e Removed the message also from the senders queue (in MsqCleanupMessageQueue).
svn path=/trunk/; revision=16634
2005-07-18 15:05:58 +00:00
Hervé Poussineau
b9edb4f6e3 Forward more exports to setupapi.dll
svn path=/trunk/; revision=16633
2005-07-18 14:10:56 +00:00
Hervé Poussineau
08711eda61 Move serial ports and mice classes parameters to their own .inf files. They would be regenerated during 2nd stage setup
svn path=/trunk/; revision=16632
2005-07-18 11:57:16 +00:00
Hervé Poussineau
02b9843370 Implement SetupDiGetDeviceRegistryPropertyA/W
Change the way devices are enumerated in SetupDiGetClassDevsExW. Now, it enumerates subkeys of HKLM\SYSTEM\CurrentControlSet\Enum instead of HLKM\SYSTEM\CurrentControlSet\Control\Class ones.
Free the temp buffer in SetupDiGetDeviceRegistryPropertyA only when it is no more usefull
Replace RegOpenKeyEx by RegOpenKeyExW

svn path=/trunk/; revision=16631
2005-07-18 07:17:53 +00:00
James Tabor
d09f528ad2 Implement ShowOwnedPopups and ArrangeIconicWindows. Based on Wine. More work is needed on both.
svn path=/trunk/; revision=16630
2005-07-18 03:13:11 +00:00
James Tabor
35b93a79d6 Implement ShowOwnedPopups and ArrangeIconicWindows. Based on Wine.
svn path=/trunk/; revision=16629
2005-07-18 03:12:01 +00:00
Thomas Bluemel
0825640a24 fixed signed/unsigned comparison warning
svn path=/trunk/; revision=16628
2005-07-17 19:20:12 +00:00
Hartmut Birr
53f97f1bee If the user mode is intercepted by an interrupt, we must deliver user mode apc's.
svn path=/trunk/; revision=16627
2005-07-17 18:36:01 +00:00
Hartmut Birr
2adf26048d - PsKillMostProcesses must be running in the context of the system process.
- The thread terminating apc is a special user mode apc.

svn path=/trunk/; revision=16626
2005-07-17 18:34:23 +00:00
Hartmut Birr
d3493295ab Request the APC_INTERRUPT for the correct processor on smp machines.
svn path=/trunk/; revision=16625
2005-07-17 18:27:46 +00:00
Hartmut Birr
d40d2d7c83 Initialized SetMember as mask of the current processor.
svn path=/trunk/; revision=16624
2005-07-17 18:11:08 +00:00
Hartmut Birr
08e09be28a Changed the type of SetMember within KPRCB structure.
svn path=/trunk/; revision=16623
2005-07-17 18:08:19 +00:00
Hervé Poussineau
6d83f83840 Implement SetupDiGetDeviceInterfaceDetailA/W
svn path=/trunk/; revision=16622
2005-07-17 15:57:41 +00:00
Casper Hornstrup
ad59c91e1b Clean referenced object libraries when cleaning a module
svn path=/trunk/; revision=16621
2005-07-17 15:10:03 +00:00
Hervé Poussineau
d3d7a7f34b Return CR_FAILURE when the function is not implemented
Call the right *_Ex function in CM_Get_Child and CM_Get_Parent

svn path=/trunk/; revision=16620
2005-07-17 14:09:57 +00:00
Hervé Poussineau
28cb187427 Add registry key for PNP root device
svn path=/trunk/; revision=16619
2005-07-17 13:56:22 +00:00
Martin Fuchs
b635d34a4f fix build of ctm
svn path=/trunk/; revision=16618
2005-07-17 13:14:44 +00:00
Martin Fuchs
9c93090a1f replace TIME struct by LARGE_INTEGER
svn path=/trunk/; revision=16617
2005-07-17 12:51:28 +00:00
Martin Fuchs
2a0636a4ef fix ndk header usage
svn path=/trunk/; revision=16616
2005-07-17 12:50:56 +00:00
Martin Fuchs
85da1524b5 fix argc type
svn path=/trunk/; revision=16615
2005-07-17 12:31:31 +00:00
Martin Fuchs
2210ddb826 replace old <defines.h> by <windows.h>
svn path=/trunk/; revision=16614
2005-07-17 12:31:16 +00:00
Martin Fuchs
583ed2bdab replace old <defines.h> by <windows.h>
svn path=/trunk/; revision=16613
2005-07-17 12:30:09 +00:00
James Tabor
56d1785ca5 Implemented NtUser-GetMenuItemRect.
svn path=/trunk/; revision=16612
2005-07-17 12:26:24 +00:00
Filip Navara
612346a8b7 DPC stands for Deferred Procedure Call.
svn path=/trunk/; revision=16611
2005-07-17 12:24:15 +00:00
Casper Hornstrup
07e1646825 Avoid GNU make warnings
svn path=/trunk/; revision=16610
2005-07-17 11:15:55 +00:00
Casper Hornstrup
a04a10667a Add missing directory tag
svn path=/trunk/; revision=16609
2005-07-17 11:07:14 +00:00
Casper Hornstrup
d4ff3d81a2 Prepare cmd for testing
svn path=/trunk/; revision=16608
2005-07-17 10:57:38 +00:00
Martin Fuchs
92106004ec add explorer-ro.rc
svn path=/trunk/; revision=16607
2005-07-17 10:40:43 +00:00
Casper Hornstrup
acbcf1c29a Fix building of tests
svn path=/trunk/; revision=16605
2005-07-17 10:20:18 +00:00
Martin Fuchs
49c3197c28 remove winfile - it's superseded by winefile.
svn path=/trunk/; revision=16604
2005-07-17 09:56:38 +00:00
Eric Kohl
108c748343 - Implement CM_Locate_DevNode_ExW, CM_Get_Device_ID_Size[_Ex] and CM_Get_Device_ID[_Ex]W.
- Add flags for CM_Get_Global_State[_Ex].

svn path=/trunk/; revision=16603
2005-07-17 09:43:54 +00:00
Hartmut Birr
b4d21f4107 Fixed the determining of the file from the output redirection.
svn path=/trunk/; revision=16602
2005-07-17 07:02:20 +00:00
Magnus Olsen
14733418a7 /D /Z are implement in ros cmd copy by BrandonTurner but reactos CopyFile and CopyFileEx does not support it yet, for /D are COPY_FILE_ALLOW_DECRYPTED_DESTNATION for decypt the file when it copy to dest and /Z are COPY_FILE_RESTARTABLE for network. so it is working in windows
svn path=/trunk/; revision=16601
2005-07-17 00:44:33 +00:00
Magnus Olsen
0f1a1d9269 add CopyFileEx flags #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION, COPY_FILE_FAIL_IF_EXISTS, COPY_FILE_RESTARTABLE, COPY_FILE_OPEN_SOURCE_FOR_WRITE
svn path=/trunk/; revision=16600
2005-07-16 23:44:16 +00:00
Eric Kohl
9ebf08eac5 - For bugs for in-string parameters.
- Implement out-string parameters (untested).

svn path=/trunk/; revision=16599
2005-07-16 23:21:36 +00:00
Hartmut Birr
b0c939bf13 Used the kernel base address from the loader structure instead MmSystemRangeStart.
MmSystemRangeStart isn't the base address with the 3GB switch.

svn path=/trunk/; revision=16597
2005-07-16 13:01:18 +00:00
Hartmut Birr
ada13b04e0 Replaced KERNEL_BASE by MmSystemRangeStart.
svn path=/trunk/; revision=16596
2005-07-16 12:35:34 +00:00
Magnus Olsen
5ec1eff5db crop mf logo to 30x280 and it showing right rember do not design higher that 280 on the startmenu logo change.
svn path=/trunk/; revision=16595
2005-07-16 12:18:16 +00:00
Jens Collin
431d4a6295 GetMenuStringA and GetMenuStringW inverted the MF_BYPOSITION parameter. Buffers were incorrectly copied in and wrong size returned in GetMenuItemInfoA ansi-structures.
GetMenuString now works the same on both windows and ROS.

svn path=/trunk/; revision=16594
2005-07-16 11:45:28 +00:00
Maarten Bosma
5638b3729f HUMA2000: Spanish translation
svn path=/trunk/; revision=16593
2005-07-16 10:23:10 +00:00
Hartmut Birr
6088c647a3 - Fixed the size of the hyperspace area (thanks to Filip Navara).
- Enabled Pae mode in freeldr if it is requested.

svn path=/trunk/; revision=16592
2005-07-16 09:01:07 +00:00
Magnus Olsen
6d92ae56c6 part1 of move bug from a volume to another have been solve, the part two are in Reactos MoveFileEx
svn path=/trunk/; revision=16591
2005-07-15 19:15:59 +00:00
Magnus Olsen
eb4fb35571 I should not write code when it is hot outside
clean up a if statement for realloc

svn path=/trunk/; revision=16590
2005-07-15 18:38:01 +00:00
Magnus Olsen
6850597254 in cress COPYCMD param search speed before w3seek does it
svn path=/trunk/; revision=16589
2005-07-15 18:31:42 +00:00
Magnus Olsen
8aa7fc3fb8 last try to fix NULL bug
svn path=/trunk/; revision=16588
2005-07-15 18:25:03 +00:00
Magnus Olsen
8b10660c85 last bugfix did forget use tchar * 512 in malloc I did only use 512 in malloc
svn path=/trunk/; revision=16587
2005-07-15 18:21:17 +00:00
Magnus Olsen
486636c37b did forget check malloc and realloc was NULL and set size to zero. thx w3seek that did see this mistake
svn path=/trunk/; revision=16586
2005-07-15 18:18:40 +00:00
Magnus Olsen
023ebef222 implement $s
svn path=/trunk/; revision=16585
2005-07-15 17:46:26 +00:00
Magnus Olsen
199110e78f bug fix $t so it write out time instead for "current time is xxxxxxx" not it write the time. bug fix $h so it did jump back and erase the char that was there before.
svn path=/trunk/; revision=16584
2005-07-15 17:31:12 +00:00
Magnus Olsen
81517874a0 crop the height of mf new logo so it show right
svn path=/trunk/; revision=16583
2005-07-15 15:31:14 +00:00
Hartmut Birr
050b5c1946 Revert my last commit (r16578).
svn path=/trunk/; revision=16582
2005-07-15 15:30:23 +00:00
Magnus Olsen
9f9dfd53cf revert back startmenu.cpp the change are not complite for mf new logo
svn path=/trunk/; revision=16581
2005-07-15 15:25:34 +00:00
Magnus Olsen
03a11e092f update swedish .rc and rename it from sw to sv, remove the german part in swedish rc. all swedish rc should have sv,
svn path=/trunk/; revision=16580
2005-07-15 15:22:26 +00:00
Magnus Olsen
97d546c77a Forget set some error level and some msg that should have goto ConOut not to ConErr so pipe are working with thuse msg
svn path=/trunk/; revision=16579
2005-07-15 14:50:46 +00:00
Hartmut Birr
bde6eea1e8 Fixed a test condition in IntWaitMessage.
svn path=/trunk/; revision=16578
2005-07-15 14:40:47 +00:00
Hartmut Birr
dfaed2eb99 Returned STATUS_NOT_IMPLEMENTED for requests other than read or write.
svn path=/trunk/; revision=16577
2005-07-15 14:29:58 +00:00
Magnus Olsen
e75662b821 fix a bug from me in COPYCMD check code it was two /V
it should only have been one /N = short file name (dos 8.3 file mname not /S) 

svn path=/trunk/; revision=16576
2005-07-15 14:18:45 +00:00
Magnus Olsen
84dc5b02f3 fix errorlevel for copy. left to do is /D = copy encrypte file and decypte to destinations (NT3.51) /S = make destfile name 8.3 compatible (NT3.51) /Z = restart copy if it fails
svn path=/trunk/; revision=16575
2005-07-15 14:12:48 +00:00
Magnus Olsen
2e307cf29e Add environment variable COPYCMD to copy
svn path=/trunk/; revision=16574
2005-07-15 13:51:38 +00:00
James Tabor
cc3f2972eb Fix up WM_ENABLE ScrollBarWndProc. Looks like we can disable and enable SB Ctrls.
svn path=/trunk/; revision=16573
2005-07-15 11:46:38 +00:00
James Tabor
2aed25b015 Fixed wParam in WM_ENABLE ScrollBarWndProc.
svn path=/trunk/; revision=16572
2005-07-15 02:16:12 +00:00
James Tabor
3c13baae03 Fixing WM_ENABLE ScrollBarWndProc. Tested it with 7-Zip, AbiWord, RegEdit and Winefile, all seem not to use it. Please test this.
svn path=/trunk/; revision=16571
2005-07-15 01:42:22 +00:00
Thomas Bluemel
a8f77a38bd don't allow changing the allow and deny checkbox state to checked at the same time
svn path=/trunk/; revision=16569
2005-07-14 21:57:57 +00:00
Hartmut Birr
f0300f5044 Mark the DispatchingListEntry as removed (in MsqSendMessage).
svn path=/trunk/; revision=16568
2005-07-14 21:07:14 +00:00
Magnus Olsen
2032b01e66 fix the second bug for 1>text.txt pipe
svn path=/trunk/; revision=16567
2005-07-14 20:51:39 +00:00
Magnus Olsen
3a00c096a3 fix echo osd 1>text: bug now it should pipe instead it is printing text out text on the screen. need to found the second bug now. but now this pipe are implement.
svn path=/trunk/; revision=16566
2005-07-14 20:26:37 +00:00
Magnus Olsen
98d6ba9ebf std_output does handle the : as ms does at pipe and we have also extend it to handle >test.txt: that is not vaild on ms but it should need more code to handle the : as ms does. we can call it reactos extend at cmd
svn path=/trunk/; revision=16564
2005-07-14 19:18:37 +00:00
Magnus Olsen
a292f28ef5 Change some error msg from ConErr to ConOut for they are being pipe so the behover are equal with ms windows cmd
svn path=/trunk/; revision=16563
2005-07-14 18:39:07 +00:00
Magnus Olsen
3aae85b431 Fix a weird bug in piping in some case if you pipe to no exists >pipe: then to a exists >pipe: it did make cmd crash for createfile only SetLastErrror when it fails. and the old one was in the loop. to solv it is to rest the GetLastError code before it is call.
svn path=/trunk/; revision=16562
2005-07-14 18:16:57 +00:00
Magnus Olsen
521a302ab8 Brandon Turner turnerb7@msu.edu Rewrite to clean up copy and support wildcard. and alot of other small bugfix, like does not crash when a file does not exists.
svn path=/trunk/; revision=16561
2005-07-14 14:51:35 +00:00
James Tabor
ad6a045f5b Typo fix. I was thinking oct not dec.
svn path=/trunk/; revision=16560
2005-07-14 00:27:53 +00:00
James Tabor
be123f5a26 Implemented VkKeyScan, GetKeyboardTypeand, GetKeyboardLayout and some Wine ports.
svn path=/trunk/; revision=16559
2005-07-13 23:22:20 +00:00
James Tabor
f84f0b7a10 Implemented VkKeyScan, GetKeyboardTypeand GetKeyboardLayout.
svn path=/trunk/; revision=16558
2005-07-13 23:19:59 +00:00
Hartmut Birr
537bcb48fa Fixed the allocation of the buffer for the environment variable in ProcessInput.
svn path=/trunk/; revision=16557
2005-07-13 17:59:37 +00:00
Hartmut Birr
7a0a377edd Fixed a bug in IsConsoleHandle which was introduced by r16540.
svn path=/trunk/; revision=16556
2005-07-13 17:32:39 +00:00
Thomas Bluemel
d31647b31f only NULL-terminate the string in GetEnvironmentVariableW if the buffer size is greater than 0. Thanks to Joseph Galbraith for the hint
svn path=/trunk/; revision=16555
2005-07-13 16:36:24 +00:00
Alex Ionescu
698dee2b87 Fix macro to be optimized out, thanks to Filip
svn path=/trunk/; revision=16554
2005-07-13 15:46:59 +00:00
Thomas Bluemel
a56f2840b3 handle memory allocation errors in GetEnvironmentVariable() and ensure the string is always null-terminated
svn path=/trunk/; revision=16553
2005-07-13 15:09:52 +00:00
Art Yerkes
90be5e4d9b stop exporting MmCopyFromCaller and kin and make a local version in the
last place we use it, now based on SEH.
we'll remove the copy from caller hack from ntoskrnl soon.

svn path=/trunk/; revision=16552
2005-07-13 08:48:49 +00:00
Alex Ionescu
5f9eec4d04 fix bizarre build error
svn path=/trunk/; revision=16551
2005-07-13 02:45:53 +00:00
Alex Ionescu
2c8f96ecf4 Silence more warnings. Patch by Waxdragon.
svn path=/trunk/; revision=16550
2005-07-13 02:02:08 +00:00
Alex Ionescu
c855fc1edb Expand the wine debug macros in all cases. the actual code will get optimized away, but the variables will appear in use. removes about 100-150 warnings. also fix hidden build breakages when the macros are actually used. thanks to art
svn path=/trunk/; revision=16549
2005-07-13 01:41:13 +00:00
Alex Ionescu
c01f0050df Fix executing applications. Sorry for the delay, this was like finding a needle in a hay stack. Gotta love splitting patches..
svn path=/trunk/; revision=16548
2005-07-13 00:11:11 +00:00
Casper Hornstrup
6f84809a47 Add copyright notices and GPL headers to rbuild
svn path=/trunk/; revision=16547
2005-07-12 16:47:34 +00:00
Casper Hornstrup
b8be54888b Have nci output files depend on input files
svn path=/trunk/; revision=16546
2005-07-12 16:11:30 +00:00
Casper Hornstrup
1f9b723f25 Install freeloader installer.
svn path=/trunk/; revision=16545
2005-07-12 15:04:17 +00:00
Eric Kohl
5e61398fc3 Add CM_Get_Global_State and CM_Get_Global_State_Ex prototypes.
svn path=/trunk/; revision=16544
2005-07-12 12:29:25 +00:00
Alex Ionescu
358a2167ab Part three of patch...
- Created utils.c for the following new functions:
        * BasepCreateStack - Creates a stack for a Thread or Fiber
        * BasepInitializeContext - Initializes the Context for a Process, a Thread, or a Fiber
        * BasepConvertObjectAttributes - Creates a OBJECT_ATTRIBUTES structure based on Win32
                                         lpSecurityAttributes and name.
        * BasepFreestack - Frees the stack created in case of a failure inside code using it.
        * BasepMapFile - Converts a Win32 Path to NT Path and maps a file into a section.
        * Base 8-bit String conversion functions - Use new, more efficient way to select
          between OEM/ANSI strings, based on MSDN Article by Matt Pietrek. Other code needs
          to be chand to use them.
Also added the new ASM for the startup thunks. All of this is still unused and only being committed to simply the diff output. Credits go to Matt Pietrek and his excellent MSDN article for the 8-bit conversion functions and implementaion details.

svn path=/trunk/; revision=16543
2005-07-12 05:00:33 +00:00
Alex Ionescu
e6523bb71e Second part of patch, implements the new RTL functions which will be used (not used by kernel yet).
- RtlCreateUserProcess:
        * Created RtlpInitEnvironment to manage Environment Block creation. Rougly based on
          old KlInitPeb code but with some optimizations.
        * Don't ignore Process Security Descriptor if one was specified.
        * Don't ignore ZeroBits, get correct entrypoint, and don't assume PEB address.
        * Don't close handle of section before closing process handle on failure.
        * Support new undocumented flag which pre-allocates 1MB of memory for Native Processes
        * FIXME: Hande duplication should be done, but wasn't and still isn't.
    
    - RtlpCreateUserStack:
        * New function to create a stack for a Thread, similar to BasepCreateStack but
          has some differences related to StackCommit/StackReserve.
        * Also create Guard Page
        
    - RtlpFreeUserStack:
        * Undoes what the function above does, in case of failure in code using it.
        
    - RtlCreateUserThread:
        * Use the new functions instead of rosrtl.
        
    - RtlInitializeContext:
        * New function similar to BasepInitializeContext but;
            > Uses a single entrypoint, not many possible thunks like Kernel32 (no need)
            > The starting EFLAGS is Interrupts Enabled, not IOPL 3.
            > We don't initialize the same Context Flags
            > The initial context registers are different
            
    - RtlFreeUserThreadStack
        * Don't assume the TEB address
          
    - RtlExitUserThread
        * Remove deprecated stack-switching semantics and use new TEB flag to tell the Kernel
          to deallocate the stack for us.

svn path=/trunk/; revision=16542
2005-07-12 04:41:41 +00:00
James Tabor
36a1230e2b Start integrating and implementing key board functions. More Wine porting with ROS.
svn path=/trunk/; revision=16541
2005-07-12 02:45:33 +00:00
Alex Ionescu
a10ed009b7 Partial patch of larger rosrtl removal patch. This one merely is a structure fix patch, and renames/corrects RTL_USER_PROCESS_INFORMATION (which had the totally wrong names) as well as updates the TEB to the latest version. It also fixes SECTION_IMAGE_INFORMATION to have the right format and names. Also, some callers of CreateProcessW are modified to not send a constant string as lpCommandLine (this was illegal and will crash on Windows/my patch). INITIAL_TEB was also renamed to the more correct fields, although they won't make sense with the current rosrtl/rtl implementation, the names will only make sense with the next patch. Finally NtTerminateThread was fixed to support sending NULL as handle, and PspExitThread was updated to work with the new FreestackOnExit flag, both of which will be used in the next patch.
svn path=/trunk/; revision=16540
2005-07-12 01:56:14 +00:00
Filip Navara
e36f90a9f9 Move Interlocked* routines from ROSRTL to separate INTRLCK library since ROSRTL is going to be removed.
svn path=/trunk/; revision=16539
2005-07-11 23:32:55 +00:00
Thomas Bluemel
fcc95c66a8 return the length of the string excluding the null-termination character on success in GetEnvironmentVariable(). Thanks to Hartmut.
svn path=/trunk/; revision=16536
2005-07-11 20:30:33 +00:00
Hartmut Birr
9b991b83fd Check for a valid console handle in SetConsoleMode.
svn path=/trunk/; revision=16535
2005-07-11 18:22:53 +00:00
Alex Ionescu
eb4f7c8b2f IPConfig Rewrite (Tim Jobling <tjob800@yahoo.co.uk>)
*  Relicense to GPL. 
    *  Display NodeType with meaningfull Human readable names.
    *  Exclusively use TCHAR strings.
    *  Display Physical Address, DHCP enabled state, IP Addresses/Netmasks,
    *  Default Gateway, DHCP server and DHCP Lease times.
    *  Parse command line options.
    *  Default to only showing the IP/SM/DG is no options specified
    *  Handel option: /All and /?
    *  Display message about all unimplemented options.
    *  Changed C++ style commenting to C style

svn path=/trunk/; revision=16534
2005-07-11 17:55:15 +00:00
Gé van Geldorp
34fd8c7135 Sebastian Gasiorek <zebasoftis@gmail.com>
Polish resource files

svn path=/trunk/; revision=16533
2005-07-11 07:51:09 +00:00
James Tabor
c81ba78f7b Connect UnrealizeObject and test debug prints. I assume arg count is one not two. If wrong please correct me.
svn path=/trunk/; revision=16532
2005-07-11 04:56:04 +00:00
James Tabor
6a38a2f69d Fix error return for WIN_ListChildren.
svn path=/trunk/; revision=16531
2005-07-11 02:43:24 +00:00
Magnus Olsen
5c73d34569 forget clean up after me
svn path=/trunk/; revision=16530
2005-07-10 22:23:00 +00:00
Magnus Olsen
58d41e3c76 second try, thx w3seek found out it should be charterer not byte
svn path=/trunk/; revision=16529
2005-07-10 22:19:57 +00:00
Magnus Olsen
e43573196c The return size calculation's of GetEnvironmentVariable string was wrong. Thx to <Bizzy_D> to find out cd %windir% did not work. Now it will
svn path=/trunk/; revision=16528
2005-07-10 22:12:07 +00:00
Gé van Geldorp
67af25e720 i386DX . <i386dx@hotmail.com>
Belgian (point/Flemish) keyboard layout

svn path=/trunk/; revision=16527
2005-07-10 22:05:48 +00:00
Magnus Olsen
fe2f78c54c quick dirty hack getting our copy working with 1>null by me
so we can create reactos iso on ros. bug reported by harteex and Brandon Turner, thanks to Brandon to hunt down where the bug was. 

svn path=/trunk/; revision=16526
2005-07-10 21:26:51 +00:00
Eric Kohl
a5b363cd94 - Implement CM_Get_Global_State/CM_Get_Global_State_Ex.
- All RPC-Calls to umpnpmgr return CONFIGRET.

svn path=/trunk/; revision=16525
2005-07-10 11:49:10 +00:00
Eric Kohl
de63015392 Fix a string length calculation bug in StringTableDuplicate.
svn path=/trunk/; revision=16524
2005-07-09 15:22:07 +00:00
Aleksey Bragin
122bcd196f Add dependence from pnp_client also, since in fact it uses it (includes pnp_c.h). It worked before only because lib/setupapi depends on pnp_c, and it's build earlier than umpnpmgr.
svn path=/trunk/; revision=16523
2005-07-09 13:23:05 +00:00
Thomas Bluemel
97679e7210 fixed the prototypes of GetConsoleAlias, GetConsoleAliasExes and GetConsoleAliasesLength
svn path=/trunk/; revision=16522
2005-07-09 10:31:30 +00:00
James Tabor
c0fb7448b1 Implement MDICascade, MDITile and WIN_ListChildren. This will help Winefile cascade and tile windows. WIN_ListChildren is tmp located here in mdi.c for now.
svn path=/trunk/; revision=16521
2005-07-09 08:54:43 +00:00
Casper Hornstrup
6c73106dfd Don't rebuild the module if a library is changed. Relinking the module is enough.
svn path=/trunk/; revision=16520
2005-07-09 07:50:48 +00:00
James Tabor
5dd6792d1d Fix masking.
svn path=/trunk/; revision=16519
2005-07-09 05:21:10 +00:00
James Tabor
ff7e7c8ae6 Kill debug print out.
svn path=/trunk/; revision=16518
2005-07-09 04:54:01 +00:00
James Tabor
7022204505 Implement ModifyMenu A & W.
svn path=/trunk/; revision=16517
2005-07-09 04:23:34 +00:00
James Tabor
b2bf468fad Implement GetMenuString A & W. Not fully tested.
svn path=/trunk/; revision=16516
2005-07-09 04:19:35 +00:00
James Tabor
5e3cc7bc94 Implement CheckMenuRadioItem. Not fully tested.
svn path=/trunk/; revision=16515
2005-07-09 04:15:44 +00:00
James Tabor
6b36fb6848 Implement DrawMenuBar.
svn path=/trunk/; revision=16514
2005-07-09 04:11:36 +00:00
Casper Hornstrup
91269f987b Check automatic dependencies of referenced object library modules on make <module>_depends
svn path=/trunk/; revision=16513
2005-07-08 19:55:30 +00:00
Thomas Bluemel
876fc32e53 Fixed enumerating the drive strings in SetupCreateDiskSpaceListW
svn path=/trunk/; revision=16512
2005-07-08 19:51:37 +00:00
Thomas Bluemel
d556da508d allocate enough memory for strings, lstrlenW returns the length of the string in characters, not bytes.
svn path=/trunk/; revision=16511
2005-07-08 19:21:28 +00:00
KJK::Hyperion
4c9e39ee83 PE loader: corrected an assertion (fixes bug reported by GvG), added a sanity check, return STATUS_INVALID_IMAGE_PROTECT in case of unrecognized PE signature (to match Windows behavior), removed evil STATUS_UNSUCCESSFUL, corrected successful return code
Memory manager: return STATUS_INVALID_IMAGE_NOT_MZ when no loader accepts the format (to match Windows behavior)

svn path=/trunk/; revision=16510
2005-07-08 16:37:07 +00:00
James Tabor
622c4d86e9 Implement NtUserGetAsyncKeyState and support for TrackMouseEvent.
svn path=/trunk/; revision=16509
2005-07-08 12:16:47 +00:00
James Tabor
6c4cbed9a2 Implement TrackMouseEvent.
svn path=/trunk/; revision=16508
2005-07-08 12:15:07 +00:00
James Tabor
e6ce20818e Add defines for TrackMouseEvent.
svn path=/trunk/; revision=16507
2005-07-08 12:13:23 +00:00
Gé van Geldorp
a340c27ec1 zebasoftis <zebasoftis@gmail.com>:
Polish Resource File for setupapi

svn path=/trunk/; revision=16506
2005-07-08 09:01:23 +00:00
Gé van Geldorp
d3558a7c23 zebasoftis <zebasoftis@gmail.com>:
Polish Resource File for user32

svn path=/trunk/; revision=16505
2005-07-08 08:56:07 +00:00
Gé van Geldorp
8895954185 zebasoftis <zebasoftis@gmail.com>
Polish Resource File for desk.cpl

svn path=/trunk/; revision=16504
2005-07-08 08:50:46 +00:00
James Tabor
953b49324b Kill debug messages.
svn path=/trunk/; revision=16503
2005-07-08 02:06:33 +00:00
James Tabor
31c9627540 Add MIIM_BITMAP & MNS_CHECKORBMP support in menu. Based on Wine port.
svn path=/trunk/; revision=16502
2005-07-07 23:29:53 +00:00
Hervé Poussineau
74346861b0 Minimize differences between GCC and MSVC in header file
Don't define SR_MSR_DSR as it already exists under the name SERIAL_DSR_STATE
Remove $Id: tags

svn path=/trunk/; revision=16501
2005-07-07 23:10:35 +00:00
Magnus Olsen
daafc242e6 Set right %ERRORLEVEL% value, fixing end of line for /? after implement of page break.
svn path=/trunk/; revision=16500
2005-07-07 22:27:30 +00:00
Hervé Poussineau
f7289e9d4a Add missing registry entries for serial ports
svn path=/trunk/; revision=16499
2005-07-07 22:23:26 +00:00
Magnus Olsen
19b47127b0 Set right %ERRORLEVEL% value, fixing end of line for /? for most commands after implement of page break.
svn path=/trunk/; revision=16498
2005-07-07 20:41:13 +00:00
Hartmut Birr
93fc422f43 Fixed a bug which was introduced by r16441.
svn path=/trunk/; revision=16497
2005-07-07 19:54:25 +00:00
Magnus Olsen
2bd961bd1d set right value of %ERRORLEVEL% for vol
svn path=/trunk/; revision=16496
2005-07-07 19:51:09 +00:00
Magnus Olsen
bff830321b add %CMDEXTVERSION% example to use it echo %CMDEXTVERSION% the value are hardcode to 2. for it is that value ms win2k / winxp report back. thx arty to test it in win xp.
svn path=/trunk/; revision=16495
2005-07-07 19:26:46 +00:00
Magnus Olsen
610ec85471 adding %cmdcmdline%, example how to use it echo %CMDCMDLINE%
svn path=/trunk/; revision=16494
2005-07-07 19:16:46 +00:00
Martin Fuchs
497eba8519 Sync to Wine:
- switch to UNICODE compilaton in Wine
- remove separate unixcalls.c file
- don't crash in set_curdir() for NULL in the 'entry' pointer

svn path=/trunk/; revision=16493
2005-07-07 18:44:08 +00:00
Magnus Olsen
dfcc16249d Did forget instate in for loop the patternX, the right way. thx GvG to spot it and tell me how to fix.
svn path=/trunk/; revision=16492
2005-07-07 18:21:44 +00:00
Martin Fuchs
c2db525161 Jonathan Ernst <Jonathan@ErnstFamily.ch>
Updated winefile French resources.

svn path=/trunk/; revision=16491
2005-07-07 18:07:40 +00:00
Magnus Olsen
7d58c61349 move PatternX initiate calculation out from for loop, it should have been outside of the for loop.
svn path=/trunk/; revision=16490
2005-07-07 17:54:50 +00:00
Magnus Olsen
5620de4ea7 adding %RANDOM% example how to use it echo %random%
svn path=/trunk/; revision=16489
2005-07-07 17:09:56 +00:00
Filip Navara
ac3457f145 #include "precomp.h" -> #include <precomp.h>
svn path=/trunk/; revision=16488
2005-07-07 16:45:42 +00:00
Hervé Poussineau
71183fb50d Enumerate serial interfaces by calling QueryDosDevice on Wine
Wine-ify th whole file by removing the L"..." strings, by using debugstr_w(), ...

svn path=/trunk/; revision=16487
2005-07-07 16:32:34 +00:00
Magnus Olsen
7d472ee662 Fix bug "mv foo.txt c:\temp gives you c:\tempfoo.txt" by Brandon Turner
svn path=/trunk/; revision=16486
2005-07-07 16:22:45 +00:00
Magnus Olsen
4e39fcafa0 add %DATE% example echo %date% are working now. Bugfix date so it print out the week days names.
svn path=/trunk/; revision=16485
2005-07-07 16:06:43 +00:00
Gé van Geldorp
d7990aa664 Sync to Wine-20050628:
Alexandre Julliard <julliard@winehq.org>
- Sort entry points in the same order as Windows.
- Added magic comments to all Wine-specific registry accesses to make
  them easier to grep.

svn path=/trunk/; revision=16484
2005-07-07 15:05:36 +00:00
Magnus Olsen
4fedfe1bf7 add %time% and %cd% internal value. Example echo %cd% or echo %time%.
svn path=/trunk/; revision=16483
2005-07-07 13:43:03 +00:00
Magnus Olsen
5aa3039278 Update command help text with \n at the end of the text
svn path=/trunk/; revision=16482
2005-07-07 11:44:15 +00:00
Magnus Olsen
be0b8327dd Fix minior bug in ConPrintfPaging so it count line right and do pause on the screen before it getting full. Fix the row size calc code. Move in page break code to the for. Write one char at time. Need to be fixed so it can write more that one char at time.
svn path=/trunk/; revision=16481
2005-07-07 11:26:38 +00:00
Filip Navara
e64361f015 Once more, this time with proper character encoding.
svn path=/trunk/; revision=16480
2005-07-07 09:56:47 +00:00
Filip Navara
52e8ffce44 Correct the copyright headers.
svn path=/trunk/; revision=16479
2005-07-07 09:48:44 +00:00
Filip Navara
8407954c54 Fix the problems introduced in r16449 by changing "-mdll --dll" to "-shared" and letting the linker generate the relocations in all cases.
svn path=/trunk/; revision=16478
2005-07-07 08:57:03 +00:00
Magnus Olsen
d1c9fb08f5 adding page break on almost all help param and on help command.
svn path=/trunk/; revision=16477
2005-07-07 08:29:22 +00:00
James Tabor
c296b39f61 Added MNS_ defines for MenuInfo dwStyle. Misc Wine Menu porting.
svn path=/trunk/; revision=16476
2005-07-07 00:21:21 +00:00
Gé van Geldorp
af07d5f933 Sync to Wine-20050628:
Alexandre Julliard <julliard@winehq.org>
- Sort entry points in the same order as Windows.

svn path=/trunk/; revision=16475
2005-07-06 22:49:08 +00:00
Hervé Poussineau
23c534f821 Open remote registry if needed in SetupDiCreateDeviceInfoListExW and SetupDiOpenClassRegKeyExW
Set last error in more places
Add my name to copyright due to my recent changes

svn path=/trunk/; revision=16474
2005-07-06 22:47:23 +00:00
Gé van Geldorp
8322ac0d33 Sync to Wine-20050628:
Juan Lang <juan_lang@yahoo.com>
- Fix return code abuse (don't use HRESULT when it isn't meant), make
  functions static where possible, remove unused prototypes.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Make some of the OLE interface vtables const.
Michael Jung <mjung@iss.tu-darmstadt.de>
- Use IShellFolder::GetDisplayNameOf instead of SHGetPathFromIDList to
  be able to browse shell namespace extensions.
Vitaly Lipatov <lav@etersoft.ru>
- Add some descriptions for PageSetupDlg functions.
- Implement user paint hook support and PSD_ENABLEPAGEPAINTHOOK
  checking.
Huw Davies <huw@codeweavers.com>
- If a folder is selected on Open then browse into it, otherwise we
  should return the path in the edit box whether that be a folder or a
  file.
- Don't add extensions to a folder.
- Use DWLP_MSGRESULT to return values from the dialog proc.
- Send CDN_FOLDERCHANGE whenever we change folder.

svn path=/trunk/; revision=16473
2005-07-06 22:40:35 +00:00
Gé van Geldorp
8a79bd9b46 Sync to Wine-20050628:
Robert Shearman <rob@codeweavers.com>
- Document how the native lays out the internal components of
  buttons.
- Fix control to follow these rules.
- Don't redraw disabled buttons.
- Padding is never less that GetSystemMetrics(SM_{CX,CY}EDGE).
- Change default iListGap value to 4 to match native.
- Fix a regression in IE where the Favourites menu didn't appear
  correctly because the height and width were swapped in the pager
  control.
Stefan Huehner <stefan@huehner.org>
- Fix more -Wstrict-prototypes warnings.
Mike McCormack <mike@codeweavers.com>
- Warning fixes for -Wmissing-declarations and -Wwrite-strings.
Felix Nawothnig <felix.nawothnig@t-online.de>
- Fix some missed invalidations after column resize.
- Pass the right hwnd to ReleaseDC().
Kouji Sasaki <taro-x@justsystem.co.jp>
- Added the feature to change row height in owner draw controls.
- Added the callback item processing for LISTVIEW_EndEditLabelT
  function.
- Corrected the priority of operators for LISTVIEW_GetNextItem
  function.
Huw Davies <huw@codeweavers.com>
- For modal propsheets we should run our own message loop rather than
  use a modal dialogbox just like Windows does.  This helps apps that
  subclass the propsheet's wndproc.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
James Hawkins <truiken@gmail.com>
- Audit the Tab control.
- Factor out common text shifting logic.
- Shift selected tab text up instead of down.
Alex Zorach <info@suscomputing.com>
- Fixed SetFocus behavior.
Krzysztof Foltman <wdev@foltman.com>
- Don't send TVN_SELCHANGING nor TVN_SELCHANGED if the same item is
  selected again.

svn path=/trunk/; revision=16472
2005-07-06 22:33:11 +00:00
Gé van Geldorp
44efc84fb4 Sync to Wine-20050628:
Thomas Weidenmueller <wine-patches@reactsoft.com>
- Removed local variables only used in TRACE statements.
Gerold Jens Wucherpfennig <gjwucherpfennig@gmx.net>
- Some FCI work.

svn path=/trunk/; revision=16471
2005-07-06 22:24:04 +00:00
Gé van Geldorp
0ddd1be07e Sync to Wine-20050628:
Robert Shearman <rob@codeweavers.com>
- Add more struct types for TLB generation.
Stefan Huehner <stefan@huehner.org>
- Fix some -Wmissing-declarations by making functions static.
Huw Davies <huw@codeweavers.com>
- Add comments describing the first DWORD in an import table entry.
Alexandre Julliard <julliard@winehq.org>
- Workaround to allow using the async keyword as method name.

svn path=/trunk/; revision=16470
2005-07-06 22:16:28 +00:00
Gé van Geldorp
28277f305b Sync to Wine-20050628:
Mike McCormack <mike@codeweavers.com>
- Move function prototypes to header.
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=16469
2005-07-06 21:40:07 +00:00
Hervé Poussineau
40c9cd2c5d SetupDiGetClassDevsExW: implement DIGCF_ALLCLASSES and DIGCF_DEVICEINTERFACE. use deviceset and enumstr parameters if provided
Set right last error (if needed) in SetupDiCreateDeviceInfoListExW, SetupDiEnumDeviceInfo, SetupDiEnumDeviceInterfaces, SetupDiGetDeviceRegistryPropertyW
Replace some constants by constant names

svn path=/trunk/; revision=16468
2005-07-06 21:32:16 +00:00
Gé van Geldorp
bb29508c33 zebasoftis <zebasoftis@gmail.com>:
Polish Resource File for control.exe

svn path=/trunk/; revision=16467
2005-07-06 21:24:11 +00:00
Gé van Geldorp
dc2b5795d3 zebasoftis <zebasoftis@gmail.com>
Polish Resource File for timedate.cpl

svn path=/trunk/; revision=16466
2005-07-06 21:21:30 +00:00
Magnus Olsen
67984c6757 adding %errorlevel% code for date
it is always 0 

svn path=/trunk/; revision=16465
2005-07-06 20:50:21 +00:00
Eric Kohl
8655ed62ef Move undocumented GUIDs to a new NDK header file.
svn path=/trunk/; revision=16464
2005-07-06 20:20:02 +00:00
Magnus Olsen
7ee590086a set right errorlevel for cd / chdir, left to do we do not have /d param that are new in win2k maby in older windows also
svn path=/trunk/; revision=16463
2005-07-06 20:15:36 +00:00
Magnus Olsen
721be9ec7b remove rem errorlevel it was never set stupied mistake by me.fix call setting errorlevel to 1
svn path=/trunk/; revision=16462
2005-07-06 19:42:41 +00:00
Magnus Olsen
78df6635f5 set %errorlevel% for rem
svn path=/trunk/; revision=16461
2005-07-06 19:13:24 +00:00
Thomas Bluemel
2936d05aa3 don't use the DS_NOFAILCREATE style which I accidentally committed earlier
svn path=/trunk/; revision=16460
2005-07-06 17:18:48 +00:00
Casper Hornstrup
8a1b2d5c2b Generate pre-compiled headers in intermediate directory tree
svn path=/trunk/; revision=16459
2005-07-06 16:56:28 +00:00
Gé van Geldorp
c82da07ee2 Change license to LGPL
svn path=/trunk/; revision=16458
2005-07-06 16:27:58 +00:00
Magnus Olsen
c9b36033d8 hopeful it is last bug in choice.c when you type choice "sadsa" it did not response on key press at all.
svn path=/trunk/; revision=16457
2005-07-06 14:06:33 +00:00
Magnus Olsen
1369d1649e fix a small bug in choice.c so it does print out choice "sadsad" right
svn path=/trunk/; revision=16456
2005-07-06 13:50:08 +00:00
Filip Navara
2fc5a38d16 Remove definitions that are already present in the DDK headers.
svn path=/trunk/; revision=16455
2005-07-06 13:46:42 +00:00
Filip Navara
db15209f07 - Move ReactOS specific code to ReactOS specific files/directories.
- Use NDK instead of redefining the loader structures.

svn path=/trunk/; revision=16454
2005-07-06 13:41:51 +00:00
Magnus Olsen
3b440449dd Add proper memory alloc ProcessInput, the error handling for memory handling need to be improve
svn path=/trunk/; revision=16453
2005-07-06 13:09:23 +00:00
Magnus Olsen
04480b3be7 translate %errorlevel% to a value when it pass at command line. Now is errorlevel implement as it should. left todo check all cmd command that they are setting right value
svn path=/trunk/; revision=16452
2005-07-06 12:20:57 +00:00
Filip Navara
9254444a9c Don't continue processing after displaying the usage screen.
svn path=/trunk/; revision=16451
2005-07-06 11:31:03 +00:00
Filip Navara
8064f8c236 Fix some compilation issues.
svn path=/trunk/; revision=16450
2005-07-06 09:27:08 +00:00
Filip Navara
b6e80ebb53 Generating relocations twice for DLLs? Oh, what a clever idea ... not.
svn path=/trunk/; revision=16449
2005-07-06 08:43:36 +00:00
Filip Navara
8e4e06d0de Report correct system space start address in /3GB case.
svn path=/trunk/; revision=16448
2005-07-06 08:22:13 +00:00
Filip Navara
2773203033 Kernel base address and system space start can be distinct addresses, so use KERNEL_BASE and MmSystemRangeStart accordingly in the code.
svn path=/trunk/; revision=16447
2005-07-06 08:20:26 +00:00
Gé van Geldorp
d64e8b4096 zebasoftis <zebasoftis@gmail.com>:
Polish Resource File for winlogon

svn path=/trunk/; revision=16446
2005-07-06 07:54:04 +00:00
Filip Navara
902a400b19 Put the page tables and hyperspace at the right place in memory (ie. Windows compatible).
svn path=/trunk/; revision=16445
2005-07-06 00:29:39 +00:00
Thomas Bluemel
4ea9392a55 fix gcc4 warnings and indention
svn path=/trunk/; revision=16444
2005-07-06 00:24:08 +00:00
Thomas Bluemel
c75115824f fix warnings with -Wsign-compare for MP builds
svn path=/trunk/; revision=16443
2005-07-05 23:15:22 +00:00
Thomas Bluemel
5979e80363 fix warnings with -Wsign-compare and -Wpointer-arith
svn path=/trunk/; revision=16442
2005-07-05 22:58:11 +00:00
Thomas Bluemel
cc6ffdce48 fixed some signed/unsigned comparison warnings with -Wsign-compare
svn path=/trunk/; revision=16441
2005-07-05 22:35:29 +00:00
Alex Ionescu
c3e6b1f6a4 Ged Murpy <gedmurphy@gmail.com>
* ARP Rewrite, 90% complete (still in progress)

svn path=/trunk/; revision=16440
2005-07-05 22:14:07 +00:00
Alex Ionescu
d9cbcc2128 Fix the build by adding KDPC_DATA as a shared arch structure. Kind of a hack but I could not find another way to avoid the undelrying recursive dependencies that not doing this would cause. Also made an arch-specific fix to KPROCESS and wrote a little comment on it
svn path=/trunk/; revision=16439
2005-07-05 21:57:55 +00:00
Gé van Geldorp
d005fc9f1a Sync to Wine-20050628:
Alexandre Julliard <julliard@winehq.org>
- Generate the resource data directly inside the resource directory.
- Replaced all uses of the __ASM_NAME macro by the asm_name function to
  allow run-time determination of the correct format.
- Beginnings of an infrastructure to allow specifying the target CPU and
  platform at run-time.
- Output the exported names as a C string so that they end up in the
  correct section.
- Reuse output_dll_init for the constructor of debug files.
- Moved all assembly code to the end of the generated C files to avoid
  conflicting with the compiler over section changes.
- Switch back to .data at the end of asm sections to work around an
  optimization in recent gcc versions.
- Remove some i386 ifdefs for 16-bit entry points since they are no
  longer used by default on other platforms anyway.
- Make import thunks position-independent to avoid text relocations.
- Generate proper PIC code for CALL32_CBClient.
- Store a relative pointer for registry entry points to avoid some text
  relocations.
- Allocate ordinals in the order of the declarations in the spec file.
Wolfgang Thaller <wolfgang.thaller@gmx.net>
- Winebuild darwin/x86-specific fixes:
  - Assembler interprets .align as power-of-two
  - Add .weak_reference to output where gcc 3.3 swallows it
- Use __ASM_NAME and HAVE_ASM_DOT_SIZE in a few places in winebuild
  where they have been missing (needed for Darwin/x86).
Pierre d'Herbemont <stegefin@free.fr>
- Use .mod_*_func sections on Mac OS X/i386 instead of the elf
  constructor/destructor.

svn path=/trunk/; revision=16438
2005-07-05 21:17:01 +00:00
Eric Kohl
40dc1919bc Add architecture-specific headers and move I386-specific definitions into them.
svn path=/trunk/; revision=16437
2005-07-05 21:03:46 +00:00
Gé van Geldorp
93232de775 Sync to Wine-20050628:
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.
Mike McCormack <mike@codeweavers.com>
- Fix some declaration and write string warnings.

svn path=/trunk/; revision=16436
2005-07-05 20:47:48 +00:00
Filip Navara
dd349cfd8b Remove spurious "#define _OLEIDL_H".
svn path=/trunk/; revision=16433
2005-07-05 17:13:01 +00:00
Gé van Geldorp
3b9c960f59 Always return a meaningfull status code
svn path=/trunk/; revision=16432
2005-07-05 17:10:52 +00:00
Gé van Geldorp
8e86b33472 Prevent warning in optimized builds
svn path=/trunk/; revision=16431
2005-07-05 17:10:19 +00:00
Gé van Geldorp
f29b15b285 Code generator for 16bpp DIB Blt operations
svn path=/trunk/; revision=16430
2005-07-05 17:08:58 +00:00
Filip Navara
d6ebf05ea0 Get rid of the (incorrect) __attribute__((packed)) usage.
svn path=/trunk/; revision=16429
2005-07-05 17:08:48 +00:00
Filip Navara
51c604714a - Convert pure inline assembler .c files to .S files.
- Move SMP IRQ handlers to irqhand.s (at the same place where the UP ones are).

svn path=/trunk/; revision=16428
2005-07-05 16:40:01 +00:00
Hervé Poussineau
7afd05c217 Fix compilation due to revision 16425.
I forgot a parameter in SetupDiGetClassDevsExA/W ...

svn path=/trunk/; revision=16427
2005-07-05 14:00:33 +00:00
Hervé Poussineau
9b619507af Implement SetupDiGetClassDescriptionExA, by calling SetupDiGetClassDescriptionExW
svn path=/trunk/; revision=16426
2005-07-05 13:15:10 +00:00
Hervé Poussineau
4a200035de Implement SetupDiGetClassDevs(Ex)A/W
svn path=/trunk/; revision=16425
2005-07-05 12:59:14 +00:00
Magnus Olsen
3c215ef287 Brandon Turner turnerb7@msu.edu. Bug fix color now it working as ms cmd color. Please everyone that have done translate of cmd, update the language's file. some text have been modify and add in cmd en.rc
svn path=/trunk/; revision=16424
2005-07-05 12:06:27 +00:00
Hervé Poussineau
a314f1c4ad - Implement SetupDiCreateDeviceInfoListExW
- Do according changes in SetupDiDestroyDeviceInfoList
- Implement SetupDiEnumDeviceInfo
- Don't open registry with full rights in SetupDiClassGuidsFromNameExW
- Set last error in SetupDiClassNameFromGuidExW in case of problem
- Do W->A conversion for InfSectionWithExt string in SetupDiGetActualSectionToInstallA

Following changes break serial port devices enumeration on Wine. I'll work on this problem later.
- Implement SetupDiGetClassDevsW
- Disable some code in SetupDiEnumDeviceInterfaces and SetupDiGetDeviceInterfaceDetailA

Now, you should be able to list devices classes, and enumerate devices related to each class

svn path=/trunk/; revision=16423
2005-07-05 08:48:43 +00:00
Thomas Bluemel
9766bda54e globally enable the -Wpointer-arith warning to prevent usage of GCC's pointer arithmetics extension
svn path=/trunk/; revision=16422
2005-07-05 01:18:07 +00:00
Thomas Bluemel
bd691c850c fix code that depends on GCC's void* pointer arithmetic extension
svn path=/trunk/; revision=16421
2005-07-05 00:57:47 +00:00
Thomas Bluemel
945ed508b6 fix code that depends on GCC's void* pointer arithmetic extension
svn path=/trunk/; revision=16420
2005-07-05 00:24:36 +00:00
Thomas Bluemel
a4a9299b16 fix code that depends on GCC's void* pointer arithmetic extension
svn path=/trunk/; revision=16419
2005-07-04 23:05:17 +00:00
Thomas Bluemel
eea2c1d47c some %x -> %p fixes
svn path=/trunk/; revision=16418
2005-07-04 22:25:46 +00:00
Gunnar Dalsnes
cf3c6e6296 fix premature close og reg key
svn path=/trunk/; revision=16417
2005-07-04 22:22:22 +00:00
Thomas Bluemel
541151ea53 some %x -> %p fixes
svn path=/trunk/; revision=16416
2005-07-04 22:11:00 +00:00
Gunnar Dalsnes
d8e78cc66b hopefully fix something in CreateClassKey
svn path=/trunk/; revision=16415
2005-07-04 21:54:36 +00:00
Filip Navara
199b9bce22 Yet another DPRINT fix.
svn path=/trunk/; revision=16414
2005-07-04 21:46:20 +00:00
Filip Navara
8f08cb04c9 Fix more DPRINTs.
svn path=/trunk/; revision=16413
2005-07-04 21:12:35 +00:00
Hervé Poussineau
382e1c8635 Remove entries that are created by 2nd stage setup, using media/inf/NET_NIC.inf
Fix some obvious wrong copy/pastes
Add correct registry entries for kbdclass and mouclass classes
Fix hard-coded values for serial mice (Serenum doesn't report the exact hardwa

svn path=/trunk/; revision=16412
2005-07-04 21:08:00 +00:00
Alex Ionescu
9b63d671e9 Dprint fixes by our lovely Filip
svn path=/trunk/; revision=16411
2005-07-04 21:01:46 +00:00
Thomas Bluemel
12e95836ec add a quick search feature to the checklist control
svn path=/trunk/; revision=16410
2005-07-04 17:22:18 +00:00
Thomas Bluemel
a11dac9b2a properly handle WM_UPDATEUISTATE
svn path=/trunk/; revision=16409
2005-07-04 13:37:02 +00:00
Thomas Bluemel
8e3b9a7f21 - hide the keyboard focus when appropriate
- add missing definitions to w32api

svn path=/trunk/; revision=16408
2005-07-04 13:21:14 +00:00
Thomas Bluemel
0140b609d9 fixed some scrolling issues
svn path=/trunk/; revision=16407
2005-07-04 11:52:16 +00:00
Thomas Bluemel
48e0fe423b handle resizing of the control
svn path=/trunk/; revision=16406
2005-07-04 11:05:04 +00:00
Thomas Bluemel
a0f4cc2feb get rid of the obsolete Makefile.ros-template files
svn path=/trunk/; revision=16405
2005-07-04 09:46:50 +00:00
Thomas Bluemel
7661ff0d5f properly handle clicks outside a checkbox
svn path=/trunk/; revision=16404
2005-07-04 00:30:23 +00:00
Thomas Bluemel
9d1991ed72 minor bugfixes
svn path=/trunk/; revision=16403
2005-07-04 00:06:52 +00:00
Thomas Bluemel
68a5299cd2 enable editing of the checkboxes and minor bugfixes
svn path=/trunk/; revision=16402
2005-07-03 23:29:36 +00:00
Eric Kohl
fae2febad9 Remove trailing whitespace and fix indentation
svn path=/trunk/; revision=16401
2005-07-03 21:37:16 +00:00
Hervé Poussineau
d3bf39b1f2 Delete unused makefiles
svn path=/trunk/; revision=16400
2005-07-03 21:35:41 +00:00
Eric Kohl
2bdea48b49 - Implement PlugPlayControlProperty and PlugPlayControlGetDeviceDepth
- Move documentation from NDK headers

svn path=/trunk/; revision=16399
2005-07-03 21:25:00 +00:00
Hervé Poussineau
3988ea5599 Implement SetupDiGetDeviceRegistryPropertyA
Add stub for SetupDiGetDeviceRegistryPropertyW

svn path=/trunk/; revision=16398
2005-07-03 20:19:55 +00:00
Martin Fuchs
1d354a90fe fix compile errors
svn path=/trunk/; revision=16397
2005-07-03 20:12:16 +00:00
Thomas Bluemel
7a42053e8b actually disable it, sorry
svn path=/trunk/; revision=16396
2005-07-03 19:32:55 +00:00
Thomas Bluemel
ef28baf965 add support for XP themes (disabled by default)
svn path=/trunk/; revision=16395
2005-07-03 19:32:30 +00:00
Thomas Bluemel
4be9703fa6 - imported uxtheme.dll from WINE-20050703
- added missing definitions in w32api
- imported schemadef.h from WINE and replaced most of tmschema.h with WINE's version (which is much more correct)

svn path=/trunk/; revision=16394
2005-07-03 18:32:22 +00:00
Eric Kohl
89ac547ef5 - Move definitions from ntpnp.h into NDK and DDK
- Remove ntpnp.h

svn path=/trunk/; revision=16393
2005-07-03 15:21:19 +00:00
Martin Fuchs
d46e87dfdb prepare for WINE UNICODE patch
svn path=/trunk/; revision=16392
2005-07-03 13:49:05 +00:00
Hervé Poussineau
5c050fc41f Implement SetupDiGetActualSectionToInstallA
Implement SetupDiCreateDeviceInfoA
Add SetupDiCreateDeviceInfoW stub
Fix SetupDiOpenClassRegKeyExW, by adding { } around the GUID string when opening the registry key
Don't use L"..." notation for wide strings

svn path=/trunk/; revision=16391
2005-07-03 13:46:33 +00:00
Eric Kohl
89d4545331 - Define and use PLUGPLAY_CONTROL_CLASS
- PNP_GetVersion should return an error code
- Rename structs used by NtPlugPlayControl

svn path=/trunk/; revision=16390
2005-07-03 12:18:23 +00:00
Hervé Poussineau
3eb22d7480 Implement CM_Enumerate_Classes and CM_Enumerate_Classes_Ex
svn path=/trunk/; revision=16389
2005-07-03 10:35:56 +00:00
Hervé Poussineau
151fe7f976 Add some missing constants and prototypes related to setupapi/cfgmgr
svn path=/trunk/; revision=16388
2005-07-03 10:33:51 +00:00
Martin Fuchs
7e100086d3 switch to WIN32 API string functions
svn path=/trunk/; revision=16387
2005-07-03 09:39:11 +00:00
James Tabor
c21d161abd Half way implement NtGdiUnrealizedObject.
svn path=/trunk/; revision=16386
2005-07-03 06:43:49 +00:00
Thomas Bluemel
51e10671c0 don't look up list items with negative index
svn path=/trunk/; revision=16385
2005-07-03 02:02:47 +00:00
Thomas Bluemel
79811989d8 - allow changing the focus of the check boxes in the checklist control
- minor fixes

svn path=/trunk/; revision=16384
2005-07-03 01:44:25 +00:00
Eric Kohl
d23d39a743 Implement StringTableDuplicate.
svn path=/trunk/; revision=16383
2005-07-02 21:32:37 +00:00
Eric Kohl
396b274742 Implement GetVersionInfoFromImage.
Add missing prototypes to w32api.

svn path=/trunk/; revision=16382
2005-07-02 19:26:43 +00:00
Martin Fuchs
5f53398bd1 Henning Gerhardt <henning.gerhardt@web.de>: Update German resource files.
svn path=/trunk/; revision=16381
2005-07-02 17:57:51 +00:00
Hervé Poussineau
8925d0aca7 Implement PoRequestPowerIrp
svn path=/trunk/; revision=16380
2005-07-02 14:50:22 +00:00
Eric Kohl
6c58ea3cd7 Implement CenterWindowRelativeToParent.
svn path=/trunk/; revision=16379
2005-07-02 14:05:38 +00:00
Thomas Bluemel
50c2bb7322 - query the domain server if specified by the server
- fixed some minor bugs

svn path=/trunk/; revision=16378
2005-07-02 13:49:23 +00:00
Filip Navara
65ecbfa03d Use RtlExitUserThread instead of NtTerminateThread, so the stack is properly freed.
svn path=/trunk/; revision=16377
2005-07-02 13:45:23 +00:00
Filip Navara
f15bf7924f Add prototypes for RtlExitUserThread and RtlInitializeContext.
svn path=/trunk/; revision=16376
2005-07-02 13:42:43 +00:00
Thomas Bluemel
16c7672bfd enumerate the permission names and display them
svn path=/trunk/; revision=16375
2005-07-02 01:34:18 +00:00
Thomas Bluemel
15436e184a initial (not yet complete) implementation of the checklist control for the permissions editor
svn path=/trunk/; revision=16374
2005-07-01 23:33:34 +00:00
Hervé Poussineau
46903e60ea Set svn:eol-style property to native
svn path=/trunk/; revision=16373
2005-07-01 23:26:01 +00:00
Alex Ionescu
c18f64ffe6 fix tlist
svn path=/trunk/; revision=16372
2005-07-01 19:53:02 +00:00
Magnus Olsen
e2a3507651 Brandon Turner turnerb7@msu.edu
Added ConPrintfPaging and ConOutPrintfPaging
Added /p back in using ConOutPrintfPaging

Me
correct small mistake in en.rc adding newline 
for dir_help text, so it looking bit better when it 
printout

svn path=/trunk/; revision=16371
2005-07-01 18:20:10 +00:00
Alex Ionescu
dca78ab993 remove acledit.h, the interfaces are nt4-only and deprecated, programmers must use ISecurityInformation (which is what Thomas has started to implement as well)
svn path=/trunk/; revision=16370
2005-07-01 16:04:07 +00:00
Alex Ionescu
ff230341e0 Fix DHCP bug (a ReadFile was being done on a BOOLEAN return value instead of the handle, and a thread was never returning), fix 99% of warnings and use PCH
svn path=/trunk/; revision=16369
2005-07-01 15:40:52 +00:00
Hervé Poussineau
5cda38b218 Add '\' between "System\CurrentControlSet\Class" and the GUID when creating the registry key name
Don't return FALSE but INVALID_HANDLE_VALUE in SetupDiOpenClassRegKeyExW

svn path=/trunk/; revision=16368
2005-07-01 15:29:06 +00:00
Thomas Bluemel
15d5aa6c62 query the dacl from the ISecurityInformation server, query the domains name from lsass and list them in the dialog box
svn path=/trunk/; revision=16367
2005-07-01 12:09:04 +00:00
Alex Ionescu
a51afa23e7 These two escaped... fix them too
svn path=/trunk/; revision=16366
2005-07-01 03:58:55 +00:00
Alex Ionescu
aa9df5babf Fix breakage caused by accidental commit in the last revision
svn path=/trunk/; revision=16364
2005-07-01 03:40:52 +00:00
Alex Ionescu
79ab4b5644 Fix explorer/ibrowser build
svn path=/trunk/; revision=16363
2005-07-01 03:25:35 +00:00
Alex Ionescu
919125b189 Kill off more of rosrtl
svn path=/trunk/; revision=16362
2005-07-01 03:14:40 +00:00
Alex Ionescu
14e3b7395b PCH for csrss and win32csr, and remove rosrtl usage
svn path=/trunk/; revision=16361
2005-07-01 03:03:06 +00:00
Alex Ionescu
267707560d PCH for SMSS, and remove rosrtl usage
svn path=/trunk/; revision=16360
2005-07-01 02:47:15 +00:00
Alex Ionescu
4eb4922aad Kill large parts of rosrtl. devmode conversion implented in gdi32 because it's actually an exported api, 2nd converstion used only once so inlined. logfont conversion implented as functions directly in the ddl. rtlrosmin/max replaced by actual macros, and resource rtlros function in aclui replace by actual win32 call. other rosrtl code was already deprecated.
svn path=/trunk/; revision=16359
2005-07-01 01:54:55 +00:00
Alex Ionescu
2125679164 Move some internal headers to /reactos, set it as a default include path, move pseh and elf headers to their respective directories
svn path=/trunk/; revision=16358
2005-06-30 22:40:36 +00:00
Thomas Bluemel
755c848950 - Get rid of GCC specific typecasts to PVOID for pointer arithmetics
- Decrement the AceCount in RtlDeleteAce instead of incrementing it

svn path=/trunk/; revision=16357
2005-06-30 21:38:39 +00:00
Alex Ionescu
084cc36104 rollback change
svn path=/trunk/; revision=16356
2005-06-30 17:00:19 +00:00
Alex Ionescu
077fa44358 rollback change
svn path=/trunk/; revision=16355
2005-06-30 16:59:07 +00:00
Alex Ionescu
30a6f296fd kill rosrtl from system modules
svn path=/trunk/; revision=16354
2005-06-30 16:57:06 +00:00
Alex Ionescu
493ca2fe71 remove roscfg.h
svn path=/trunk/; revision=16353
2005-06-30 16:52:26 +00:00
Alex Ionescu
8539083b08 Add windows.h back, is it futile to remove it
svn path=/trunk/; revision=16352
2005-06-30 16:48:14 +00:00
Alex Ionescu
8209b87210 Remove windows.h from external win32k headers
svn path=/trunk/; revision=16351
2005-06-30 16:39:17 +00:00
Alex Ionescu
5420982bbb Math.c wasn't using the pch header, thanks for the catch, Steven
svn path=/trunk/; revision=16350
2005-06-30 16:31:15 +00:00
Alex Ionescu
eaf273b4ef remove windows.h dependency. Filip said it couldn't be done, so please watch out for flying pigs and hell freezing over
svn path=/trunk/; revision=16349
2005-06-30 16:20:40 +00:00
Alex Ionescu
02bd986e69 Fix win32k warnings, get rid of windowsx.h dependency
svn path=/trunk/; revision=16348
2005-06-30 16:17:45 +00:00
Alex Ionescu
d280ce9240 Kill rosrtl
svn path=/trunk/; revision=16347
2005-06-30 16:04:08 +00:00
Filip Navara
bc4215dca5 Don't use ROSRTL.
svn path=/trunk/; revision=16346
2005-06-30 14:38:53 +00:00
Filip Navara
046d85a84a Use RtlQueryRegistryValues instead of RosReadRegistryValue.
svn path=/trunk/; revision=16345
2005-06-30 13:50:21 +00:00
Alex Ionescu
2170f23f23 Manually define undocumented MS GLU constants
svn path=/trunk/; revision=16344
2005-06-30 12:42:57 +00:00
Thomas Bluemel
444df32c83 implemented NeedCurrentDirectoryForExePathA/W
svn path=/trunk/; revision=16343
2005-06-30 12:33:12 +00:00
Alex Ionescu
005201f320 Delete ddentry.h and create official ddrawgdi.h header instead, delete duplicate GL include folder, move internal headers to internal libs, delete tcpmisc.h and move its defines to official tcpioctl.h, fix up winddi.h and cleanup gdi32 header.
svn path=/trunk/; revision=16342
2005-06-30 12:31:36 +00:00
Filip Navara
56ac965dc9 Move ROSKY to a separate SVN module.
svn path=/trunk/; revision=16341
2005-06-30 12:22:27 +00:00
Filip Navara
f992a4e417 Move ROSKY to a separate SVN module.
svn path=/trunk/; revision=16340
2005-06-30 12:21:30 +00:00
Filip Navara
f5dfe7db02 Move ROSKY to a separate SVN module.
svn path=/trunk/; revision=16339
2005-06-30 12:19:21 +00:00
Filip Navara
ff9c6f6419 Move ROSKY out of the main module.
svn path=/trunk/; revision=16338
2005-06-30 12:17:36 +00:00
Filip Navara
9a7a1b2147 Move ROSKY out of the main module.
svn path=/trunk/; revision=16337
2005-06-30 12:17:30 +00:00
Filip Navara
8ab1501eb8 Move ROSKY out of the main module.
svn path=/trunk/; revision=16336
2005-06-30 12:16:27 +00:00
Alex Ionescu
625fd620c6 Fix warning
svn path=/trunk/; revision=16335
2005-06-30 02:17:47 +00:00
Filip Navara
73970db31b Allow YASM to be used instead of NASM.
svn path=/trunk/; revision=16334
2005-06-29 22:19:47 +00:00
Steven Edwards
3fd1a79ff3 silence some warnings and break it even more
svn path=/trunk/; revision=16333
2005-06-29 20:13:51 +00:00
Steven Edwards
235fba2f3b already moved this to the PSDK
svn path=/trunk/; revision=16332
2005-06-29 20:03:12 +00:00
Steven Edwards
13da42279f correctly convert to all lower case
svn path=/trunk/; revision=16331
2005-06-29 19:47:57 +00:00
Steven Edwards
dbf298de73 correct case of included headers
svn path=/trunk/; revision=16330
2005-06-29 19:36:54 +00:00
Alex Ionescu
8ebf837814 Add a nice little KIDT_ACCESS structure for setting IDT entries in a pretty way
svn path=/trunk/; revision=16329
2005-06-29 19:06:28 +00:00
Alex Ionescu
356bf8d78c Fix halmp build for real
svn path=/trunk/; revision=16328
2005-06-29 19:05:46 +00:00
Filip Navara
f08cae7194 Use the correct structure in SetInterruptGate.
svn path=/trunk/; revision=16327
2005-06-29 18:33:39 +00:00
Filip Navara
06bd6d6ba8 We don't need to have uuids.h in each folder of the source tree, do we?
svn path=/trunk/; revision=16326
2005-06-29 18:26:30 +00:00
Filip Navara
99cf3f8baa I feel like trying to fit a cube into a circle-shaped hole on those little things kids play with... but however ugly the change can look it makes the MP HAL not freeze during boot.
svn path=/trunk/; revision=16325
2005-06-29 18:21:31 +00:00
Gé van Geldorp
28f775e06d zebasoftis <zebasoftis@gmail.com>:
Add Polish translation

svn path=/trunk/; revision=16324
2005-06-29 18:18:19 +00:00
Alex Ionescu
70c62c571a Fix idt descriptor code properly
svn path=/trunk/; revision=16323
2005-06-29 17:36:05 +00:00
Alex Ionescu
ba4e11025f Fix HALMP build
svn path=/trunk/; revision=16322
2005-06-29 17:22:57 +00:00
Filip Navara
a6114ec37f Fix warnings.
svn path=/trunk/; revision=16321
2005-06-29 09:35:02 +00:00
Filip Navara
db07afe07a Move the inclusion of <debug.h> to individual files and consolidate the inclusion of DDRAW/D3D headers a bit.
svn path=/trunk/; revision=16320
2005-06-29 07:09:25 +00:00
Steven Edwards
1d02274287 move a few more headers to the PSDK
svn path=/trunk/; revision=16319
2005-06-29 00:11:39 +00:00
Gunnar Dalsnes
fb6b25f553 use correct resourcefile
svn path=/trunk/; revision=16318
2005-06-28 23:36:28 +00:00
Steven Edwards
753209adc2 move ipexport.h to PSDK
svn path=/trunk/; revision=16317
2005-06-28 23:31:38 +00:00
Steven Edwards
9a714d7f55 remove inclusion of basetsd.h, I did not mean to commit this
svn path=/trunk/; revision=16316
2005-06-28 22:56:09 +00:00
Gé van Geldorp
5a9947460c Start off atoms in life with a ReferenceCount of 1
svn path=/trunk/; revision=16315
2005-06-28 22:33:48 +00:00
Steven Edwards
6d73043da8 move some wine headers to the PSDK
svn path=/trunk/; revision=16314
2005-06-28 22:09:03 +00:00
Alex Ionescu
af4ad253eb Move MS DDK files to DDK
svn path=/trunk/; revision=16313
2005-06-28 21:01:50 +00:00
Alex Ionescu
19fedef475 Copy more official headers to psdk directory
svn path=/trunk/; revision=16312
2005-06-28 20:30:26 +00:00
Alex Ionescu
0b4e482a01 Copy more official headers to psdk directory
svn path=/trunk/; revision=16311
2005-06-28 20:30:21 +00:00
Alex Ionescu
0a57f377c6 Add PSDK headers from ./include to ./w32api, delete some outdated headers and place some in ddk properly
svn path=/trunk/; revision=16310
2005-06-28 16:59:43 +00:00
Eric Kohl
f03def7913 Implement private object security functions.
svn path=/trunk/; revision=16309
2005-06-27 22:42:28 +00:00
Eric Kohl
53dea75f28 - Add Rtl*SecurityObject stubs.
- Export RtlpUnWaitCriticalSection and RtlWaitForCriticalSection.
- Replace DWORDs by ULONGs.

svn path=/trunk/; revision=16308
2005-06-27 21:11:29 +00:00
Hartmut Birr
a484af08a4 Fixed the rule for wrc.o.
svn path=/trunk/; revision=16307
2005-06-27 18:56:50 +00:00
Magnus Olsen
3da468a670 remove blank space at end of line 143 did not see it
sorry for compiling waring

svn path=/trunk/; revision=16306
2005-06-27 18:53:37 +00:00
Magnus Olsen
ef09f963dd Brandon Turner <turnerb7@msu.edu> Implemented /A example "del /A:H /A:-R *.exe -ping.exe"
svn path=/trunk/; revision=16305
2005-06-27 18:46:07 +00:00
Alex Ionescu
9734b13b5c Delete last trace of old headers in NDIS, and clean up some more old headers
svn path=/trunk/; revision=16304
2005-06-26 22:16:39 +00:00
Thomas Bluemel
c717085add - don't use the UNIMPLEMENTED macro in ObFindHandleForObject because it's actually used by win32k already
- set the right generic mapping for desktop and window station handles during win32k startup

svn path=/trunk/; revision=16303
2005-06-26 21:42:30 +00:00
Alex Ionescu
0c07cf98ad Fix boot
svn path=/trunk/; revision=16302
2005-06-26 21:32:48 +00:00
Eric Kohl
566e4b53a3 Build LSASS.
svn path=/trunk/; revision=16301
2005-06-26 21:01:19 +00:00
Eric Kohl
a35b024258 Remove useless Nt*Chanel and NtQueryOleDirectoryFile() prototypes.
svn path=/trunk/; revision=16300
2005-06-26 19:57:29 +00:00
Alex Ionescu
4710304a0d Fix kdbg build and some more header cleanups: add csq.q to ntifs, since it's now fully documented by MS (kept vizzini's comments though), moved af_irda to w32api because it's part of PSDK, moved ntbootvid.h to bootvid directory, removed ldrfuncs.h and add ndk's ldrfuncs.h to umode ndk (it was missing)
svn path=/trunk/; revision=16298
2005-06-26 19:29:12 +00:00
Eric Kohl
7132276795 Revert patch 16283 because it breaks PSDK compatibility.
svn path=/trunk/; revision=16297
2005-06-26 18:04:20 +00:00
Alex Ionescu
025d7c475c Seems I forgot to commit this, sorry
svn path=/trunk/; revision=16296
2005-06-26 18:00:22 +00:00
Eric Kohl
954200311b Add missing base address for cfgmgr32.dll and lsasrv.dll.
svn path=/trunk/; revision=16295
2005-06-26 17:22:34 +00:00
Alex Ionescu
67c200f2f9 Fix build
svn path=/trunk/; revision=16294
2005-06-26 17:11:20 +00:00
Alex Ionescu
3562ba1c03 Finalize organization of rtlfuncs.h and update FIXME status.
svn path=/trunk/; revision=16293
2005-06-26 16:35:51 +00:00
Alex Ionescu
edbcb1e0f4 Remove depcrecated constant
svn path=/trunk/; revision=16292
2005-06-26 16:35:17 +00:00
Alex Ionescu
6a9d46a3bb Update FIXME status.
svn path=/trunk/; revision=16291
2005-06-26 16:07:49 +00:00
Alex Ionescu
fef9d4dc69 Fixes for NDK compatibily (and plain ol' good design): - Use correct LDRP_ flags instead of our own made up ones. - Remove extra Process Info Classes that aren't in winddk, and use an add-on enumeration in the NDK. - Make ntoskrnl even more unaware of Win32K Internals by removing the deprecated PsCreateWin32Process function, moving w32process/thread allocation to win32k, and fixing the PsEstablishWin32Callouts function to use the latest NT prototype and callout data. These changes are similar to the ones done in NT.
svn path=/trunk/; revision=16290
2005-06-26 16:06:32 +00:00
James Tabor
7c91ae9295 Setup support for ShowOwnedPopups and expand new function in NtUserCallTwoParam.
svn path=/trunk/; revision=16289
2005-06-26 15:49:56 +00:00
Alex Ionescu
ce50274dc3 Satisfy blight's excessively arrogant attitude and overblown ego
svn path=/trunk/; revision=16288
2005-06-26 15:22:44 +00:00
Alex Ionescu
7cf07db3d7 Add NDK FIXME List.
svn path=/trunk/; revision=16287
2005-06-26 14:52:15 +00:00
Eric Kohl
ef8c4070db Build lsasrv.dll.
svn path=/trunk/; revision=16286
2005-06-26 14:02:36 +00:00
Hervé Poussineau
daae3048fd Move variable declaration at the top of the function
Remove unneeded affectation of hProcessHeap (already initialized in DllMain)

svn path=/trunk/; revision=16285
2005-06-26 12:51:17 +00:00
Eric Kohl
489bda971f Add cfgmgr32 dll.
This is a forwarder dll that passes all calls to setupapi.dll.

svn path=/trunk/; revision=16284
2005-06-26 12:17:27 +00:00
Eric Kohl
8f6865c18a Don't redefine ANSI_STRING, UNICODE_STRING and OBJECT_ATTRIBUTES if the NDK already defines them.
svn path=/trunk/; revision=16283
2005-06-26 11:14:48 +00:00
Eric Kohl
f0365b3d7a Add missing resource function prototypes.
svn path=/trunk/; revision=16282
2005-06-26 11:07:15 +00:00
Alex Ionescu
ee15175e82 Hasta la vista ntdll/napi headers
svn path=/trunk/; revision=16281
2005-06-26 06:27:34 +00:00
Alex Ionescu
e91e67f144 fix diskdump build
svn path=/trunk/; revision=16280
2005-06-26 06:06:51 +00:00
Alex Ionescu
80a245fca0 Kill NTOS headers. So long, and thanks for all the fish
svn path=/trunk/; revision=16279
2005-06-26 05:52:40 +00:00
Alex Ionescu
068dd36e8b make usb miniports not to use old header
svn path=/trunk/; revision=16278
2005-06-26 05:06:38 +00:00
Alex Ionescu
2d4d9762bb make lsass, win32k and vbe/xbox miniports use ndk instead of old headers
svn path=/trunk/; revision=16277
2005-06-26 05:04:12 +00:00
Alex Ionescu
499eae2bd2 Revert accidental commit
svn path=/trunk/; revision=16276
2005-06-26 04:50:07 +00:00
Alex Ionescu
3251827a3d Imitate NT and set some of the private object info for desktop/winsta inside win32k, not inside the kernel, so we don't need to know about win32k's private objects
svn path=/trunk/; revision=16275
2005-06-26 04:49:10 +00:00
Alex Ionescu
c6af94415d Build videoprt with NDK
svn path=/trunk/; revision=16274
2005-06-26 04:00:25 +00:00
Eric Kohl
ae46f5aa6a Hal needs KPCR_BASE
svn path=/trunk/; revision=16273
2005-06-26 01:12:21 +00:00
Eric Kohl
b9345f5cd1 Fix indentation, remove trailing whitespace and sort prototypes.
svn path=/trunk/; revision=16272
2005-06-26 01:08:55 +00:00
Alex Ionescu
c12e487549 build win32k with NDK, finally\!
svn path=/trunk/; revision=16271
2005-06-25 20:05:56 +00:00
Alex Ionescu
a01ddd88cf fix most parts of the build except win32k
svn path=/trunk/; revision=16270
2005-06-25 18:18:01 +00:00
Alex Ionescu
c6e139c501 Add many more structures to NDK which were incorrectly in the w32api IFS
svn path=/trunk/; revision=16269
2005-06-25 18:08:47 +00:00
Alex Ionescu
deb7a80fdd Large partial cleanup of ntoskrnl internal headers, mostly to delete obsoleted or non-useful headers, to reformat some horrible tab, spaces, etc mixups, and to move to NDK some public structures and remove all the include headers so that the standard one can be added. Note the word partial, meaning more will come in order to fully fix the mess.
svn path=/trunk/; revision=16268
2005-06-25 17:01:17 +00:00
Hervé Poussineau
1e4c8ee564 Remove mouse type selection in usetup.
i8042prt driver is always loaded for keyboard and auto-detects the PS/2 mouse (if any)
sermouse driver is loaded if a serial mouse is enumerated by serenum driver

svn path=/trunk/; revision=16267
2005-06-25 16:01:27 +00:00
Alex Ionescu
95f0ca7fdb Build ntoskrnl with NDK, and don't use rosrtl
svn path=/trunk/; revision=16266
2005-06-25 14:04:56 +00:00
Alex Ionescu
a9a36a579f Forgot this, sorry
svn path=/trunk/; revision=16265
2005-06-25 14:03:51 +00:00
Alex Ionescu
4169a5a54b Build secur32 with NDK
svn path=/trunk/; revision=16264
2005-06-25 13:55:24 +00:00
Alex Ionescu
767c5ce44f Fix token structure, add aux_data, fix KeDisconnectInterrupt and add NtBuildNumber (fixes for NDK)
svn path=/trunk/; revision=16263
2005-06-25 05:01:29 +00:00
Magnus Olsen
8a99b51cbf Brandon Turner <turnerb7@msu.edu>) simple check to fix > and | bug with 'rem' I (greatlord / Magnus Olsen) did small change on his patch so it did null terminate the strings right
svn path=/trunk/; revision=16262
2005-06-24 22:52:21 +00:00
Alex Ionescu
5c2b2a05bf Add missing privileges to winddk
svn path=/trunk/; revision=16261
2005-06-24 20:58:18 +00:00
Casper Hornstrup
59605ac1e7 Search current directory first for #include "".
svn path=/trunk/; revision=16260
2005-06-24 19:39:47 +00:00
Hervé Poussineau
5444c47450 Change STATUS error codes to winerror ones
svn path=/trunk/; revision=16259
2005-06-24 18:28:22 +00:00
Hervé Poussineau
a434b1aa6d Dmitry Philippov (shedon@mail.ru): implement GetCommConfig and SetCommConfig
svn path=/trunk/; revision=16258
2005-06-24 18:19:40 +00:00
Thomas Bluemel
469c016da3 - Moved ntdll's atom table implementation to rtl, rewrote it to use proper structures and share the generic implementation between ntoskrnl and ntdll
- Updated the rtl handle table implementation to use proper structures. Reserved handles are not yet supported correctly.

svn path=/trunk/; revision=16257
2005-06-24 18:11:16 +00:00
Alex Ionescu
ff3d5dbe7d Fix rtshared, didn't know about this module
svn path=/trunk/; revision=16256
2005-06-24 16:39:49 +00:00
Alex Ionescu
c78d9b68e1 Build regtess with standard windows header only, not NTOS
svn path=/trunk/; revision=16255
2005-06-24 15:38:29 +00:00
Alex Ionescu
4a320e11d6 Forgot to commit this fix to ntifs
svn path=/trunk/; revision=16254
2005-06-24 15:34:40 +00:00
Alex Ionescu
758ab5ab61 Build HAL with NDK
svn path=/trunk/; revision=16253
2005-06-24 01:37:08 +00:00
Alex Ionescu
7f2ec8aa5d Build eventlog, umpnpmgr, rpcss with NDK
svn path=/trunk/; revision=16252
2005-06-24 01:31:23 +00:00
Hervé Poussineau
64016b704d Add COMMPROP_INITIALIZED constant. It is used in COMMPROP structure, for dwProvSpec1 field
svn path=/trunk/; revision=16251
2005-06-23 21:36:40 +00:00
Hervé Poussineau
130a036ab2 Assign provider-specific fields in IOCTL_SERIAL_GET_PROPERTIES
Big clean up in serial.h header
Fix header text (remove $Id...)

svn path=/trunk/; revision=16250
2005-06-23 20:34:17 +00:00
Steven Edwards
13c65b3f47 convert all of the gdiplus stuff to lowercase
svn path=/trunk/; revision=16249
2005-06-23 18:15:04 +00:00
Magnus Olsen
366a911edc (Brandon Turner) <turnerb7@msu.edu>) Fixed bug to allow MS style wildcards + code clean up added /y and /-y
svn path=/trunk/; revision=16248
2005-06-23 18:12:17 +00:00
Gé van Geldorp
f887cf0f05 Don't draw 0-width HLine
svn path=/trunk/; revision=16247
2005-06-23 17:54:22 +00:00
Alex Ionescu
7143bd0824 Build stub hal with NDK
svn path=/trunk/; revision=16246
2005-06-23 15:58:03 +00:00
Alex Ionescu
96507ffe7c Fix bug in interrupt code
svn path=/trunk/; revision=16245
2005-06-23 15:29:20 +00:00
Steven Edwards
236ce44dac properly break it. correct typo
svn path=/trunk/; revision=16244
2005-06-23 13:31:33 +00:00
Steven Edwards
f6259d7ec4 break the tree for gcc 3.4.1 and gcc 4 at the request of Alex
svn path=/trunk/; revision=16243
2005-06-23 13:26:18 +00:00
Steven Edwards
efbd608bb5 one has to wonder if I am fixing a kernel build.....
svn path=/trunk/; revision=16242
2005-06-23 12:38:13 +00:00
Alex Ionescu
c0d381402e Revert accidental change
svn path=/trunk/; revision=16241
2005-06-23 12:22:32 +00:00
Thomas Bluemel
4f18890314 flag IsTokenRestricted() as @implemented
svn path=/trunk/; revision=16240
2005-06-23 10:34:16 +00:00
Alex Ionescu
1a1adca582 Fix two more build issues caused by greatlod's d3d header change and ndk bug
svn path=/trunk/; revision=16239
2005-06-23 05:07:25 +00:00
Alex Ionescu
5eefe9bdd1 use DDK for rossym
svn path=/trunk/; revision=16238
2005-06-23 04:53:57 +00:00
Alex Ionescu
f8707b368d fix build...sigh...sorry, my ntoskrnl builds with NDK
svn path=/trunk/; revision=16237
2005-06-23 04:52:27 +00:00
Alex Ionescu
ad71bcda91 Fix more ddk/ndk missing defintions
svn path=/trunk/; revision=16236
2005-06-23 04:42:49 +00:00
Alex Ionescu
610b6a4048 Fix build (my fault now :P)
svn path=/trunk/; revision=16235
2005-06-23 03:24:42 +00:00
Alex Ionescu
3e1728b45b Fix some NDK things and missing w32api defines.
svn path=/trunk/; revision=16234
2005-06-23 03:18:20 +00:00
Alex Ionescu
65fd7f2386 Fix build (no, not because of me, casper)
svn path=/trunk/; revision=16233
2005-06-23 01:36:58 +00:00
Steven Edwards
20e1654594 mark IopCsqCancelRoutine as static. Vizzini really does write good code.
svn path=/trunk/; revision=16232
2005-06-22 23:47:53 +00:00
Alex Ionescu
680c995ee1 Fix typo
svn path=/trunk/; revision=16231
2005-06-22 23:12:49 +00:00
Alex Ionescu
705a57e075 Build diskdump with NDK
svn path=/trunk/; revision=16230
2005-06-22 23:12:24 +00:00
Alex Ionescu
d1258e99fa Fix definition of KINTERRUPT in ROS headers so that moving to NDK will be easier. Also fix KeDisconnectInterrupt to return the old state instead of VOID, and re-write the I/O Interrupt code to work with an array and first object for better speed
svn path=/trunk/; revision=16229
2005-06-22 23:10:15 +00:00
Steven Edwards
9925309a13 added msxmldid.h from wine
svn path=/trunk/; revision=16228
2005-06-22 21:55:43 +00:00
Magnus Olsen
e3ed3792ca move ddrawi.h to ddk there it belong
svn path=/trunk/; revision=16227
2005-06-22 21:51:30 +00:00
Thomas Bluemel
204ad68d21 implemented RtlHashUnicodeString and export it in ntdll
svn path=/trunk/; revision=16226
2005-06-22 21:01:13 +00:00
Steven Edwards
9900f1ee91 remove unnneed function declariation
svn path=/trunk/; revision=16225
2005-06-22 20:51:22 +00:00
Maarten Bosma
588a9bc3cb Removed ddk/ddrawi.h because we have it twice, also removed some defines from ddrawint.h that are already in ddrawi.h
svn path=/trunk/; revision=16224
2005-06-22 19:51:01 +00:00
Alex Ionescu
2778f92cc3 Fix build (eh, Casper? :P)
svn path=/trunk/; revision=16223
2005-06-22 19:33:26 +00:00
Thomas Bluemel
07c4b32cdd close extern "C" block for c++ code
svn path=/trunk/; revision=16222
2005-06-22 19:18:21 +00:00
Alex Ionescu
d3a3c52a0a Fix build
svn path=/trunk/; revision=16221
2005-06-22 18:06:47 +00:00
Hartmut Birr
9633616f5b Added PFILE_ALIGNMENT_INFORMATION.
svn path=/trunk/; revision=16220
2005-06-22 18:03:32 +00:00
Maarten Bosma
5276f2c8bb Change NtGdiD3dContextDestroyAll@4 to @0
svn path=/trunk/; revision=16219
2005-06-22 18:02:33 +00:00
Alex Ionescu
2ab26c9f4d Build tcpip with NDK
svn path=/trunk/; revision=16218
2005-06-22 17:58:42 +00:00
Alex Ionescu
9e8e05cf39 Fix one more bug in NDK, and fix w32api headers to use FLOWSPEC structure inside NDIS.h, and use qos.h instead of winsock2, and implement FLOWSPEC in qos.h, moving it outside from winsock2.
svn path=/trunk/; revision=16217
2005-06-22 17:58:19 +00:00
Hartmut Birr
b5a67666e6 - Initialized Reply with NULL for the first call to NtReplyWaitReceivePort.
- Removed LpcReply because it wasn't really used.

svn path=/trunk/; revision=16216
2005-06-22 17:43:59 +00:00
Magnus Olsen
73abbbd77e Brandon Turner <turnerb7@msu.edu> Added exclusive deletion "del * -abc.txt -text*.txt"
svn path=/trunk/; revision=16215
2005-06-22 17:39:10 +00:00
Alex Ionescu
164b25c391 Fix some NDK issues when attempting to use it from kmode, and fix some winddk/ntifs inconsistencies aswell (move PFILE_QUOTA_INFORMATION and remove all RtlRange functions from the DDK, plus add PPEB)
svn path=/trunk/; revision=16214
2005-06-22 05:04:02 +00:00
Alex Ionescu
3e604d23e7 Large change to modify NTDLL'S CSR Functions to be compatible with NT. They are external and we should at least try to match the number of arguments (one vs eight? come on!). Because this is also the direction that Emanuele wants to be taking, the whole external calling interface was modified to be more compatible with NT (although internally it still isn't, and does not have a reason to be). API Names are now generated by a macro from the Server ID, like Emanuele and I noticed from traces, and I've entirely removed the concept of a reply structure. CSRSS uses full-duplex one-way structures, not dual-strutures (this would've been incompatible with the external interface anyways). I don't seem to have introduced any new bugs (console-ROS works great for me, as does the GUI), but there is still a chance some obscure bug might happen, so please bear with me, I had to hand-edit over 250 calls. Also, this now allows full removal of ntdll headers and the next commits will clean this up
svn path=/trunk/; revision=16213
2005-06-22 04:02:32 +00:00
KJK::Hyperion
321df5d69c Partial merge from the ROX-U branch (various fixes for Visual C++ compilation, see logs for r16198 and r16208)
svn path=/trunk/; revision=16212
2005-06-21 23:42:58 +00:00
Magnus Olsen
1af2b69826 add error code for file not found it was missing on one place
svn path=/trunk/; revision=16211
2005-06-21 22:07:44 +00:00
Hervé Poussineau
a6d58d5291 Silent debug messages
svn path=/trunk/; revision=16210
2005-06-21 21:35:07 +00:00
Maarten Bosma
c9d742f6cf Martin Rottensteiner (2005only@pianonote.at):
- set errorlevel to 9009 if command not found
- implemented exit /b # in batchfiles

svn path=/trunk/; revision=16209
2005-06-21 19:17:49 +00:00
Maarten Bosma
8e3623c1af Copy ddk ddrawi.h to include since it's more uptodate.
svn path=/trunk/; revision=16207
2005-06-21 17:16:25 +00:00
Gé van Geldorp
e3f555a8c9 Patch by Hartmut Birr
Work around what seems to be a bug in GCC for optimized builds. See
http://reactos.com:8080/archives/public/ros-dev/2005-June/003842.html

svn path=/trunk/; revision=16206
2005-06-21 16:35:41 +00:00
Alex Ionescu
3596d2a339 Build kernel32, ntdll, csrss fully with NDK and remove ntdll header usage
svn path=/trunk/; revision=16205
2005-06-21 04:52:46 +00:00
Alex Ionescu
e3cfe86657 Use correct TlsCount/LoadCount definition and fix incorrect usage i code
svn path=/trunk/; revision=16204
2005-06-21 04:28:03 +00:00
Alex Ionescu
77f673dd82 Use LDR_DATA_TABLE_ENTRY instead of LDR_MODULE. the former is the actual structure. would be wise to fix the defs too.
svn path=/trunk/; revision=16203
2005-06-21 04:10:45 +00:00
Alex Ionescu
1595459dbc Last build fix...sorry
svn path=/trunk/; revision=16202
2005-06-21 02:58:22 +00:00
Alex Ionescu
b5e1fdb37a Fix build
svn path=/trunk/; revision=16201
2005-06-21 02:47:55 +00:00
Alex Ionescu
58f27e918c Add uncleaned start of internal ntdll header
svn path=/trunk/; revision=16200
2005-06-21 02:11:45 +00:00
Alex Ionescu
3b2016d0ac Add new header for native user-mode functios inside the NT library inside the NDK, it will end up replacing most of the exported parts of the ntdll headers. It's not used yet as it would conflict, I added a temporary guard for that. Also added many more types to rtlfuncs.h so that it's almost entirely complete, and took out non rtl-stuff and put it into the user-mode NT header
svn path=/trunk/; revision=16199
2005-06-21 02:08:42 +00:00
Alex Ionescu
1d7902f557 Make scsi header um friendly
svn path=/trunk/; revision=16197
2005-06-20 22:54:01 +00:00
Alex Ionescu
4650be627f Remove rosrtl usage from usetup
svn path=/trunk/; revision=16196
2005-06-20 22:51:54 +00:00
Alex Ionescu
ce068ea890 Build usetup with NDK
svn path=/trunk/; revision=16195
2005-06-20 22:49:45 +00:00
Filip Navara
2e4d4d6dfd Remove some non-__USE_W32API guarded blocks.
svn path=/trunk/; revision=16194
2005-06-20 22:48:50 +00:00
Alex Ionescu
8b83fb933a Build winlogon with NDK
svn path=/trunk/; revision=16193
2005-06-20 22:19:18 +00:00
Alex Ionescu
d8de94af8a Build taskmgr with NDK
svn path=/trunk/; revision=16192
2005-06-20 22:15:59 +00:00
Alex Ionescu
725169d745 Build autochk with NDK
svn path=/trunk/; revision=16191
2005-06-20 21:50:02 +00:00
Filip Navara
be5ad51996 Fix build.
svn path=/trunk/; revision=16190
2005-06-20 21:49:00 +00:00
Alex Ionescu
e04c28b61f Build dhcp with ndk
svn path=/trunk/; revision=16189
2005-06-20 21:45:19 +00:00
Alex Ionescu
4d21e1f410 Build format with NDK
svn path=/trunk/; revision=16188
2005-06-20 21:43:14 +00:00
Alex Ionescu
2c52e31b61 Build ntvdm with NDK
svn path=/trunk/; revision=16187
2005-06-20 21:42:52 +00:00
Filip Navara
d373bd32e7 Build GDI32 with NDK and without DDK.
svn path=/trunk/; revision=16186
2005-06-20 21:35:05 +00:00
Alex Ionescu
9eea30f8b3 Build smss with NDK
svn path=/trunk/; revision=16185
2005-06-20 21:16:59 +00:00
Alex Ionescu
c618c35523 Build services with NDK
svn path=/trunk/; revision=16183
2005-06-20 21:04:03 +00:00
Alex Ionescu
5cc3617a10 Build sm with NDK
svn path=/trunk/; revision=16182
2005-06-20 21:03:51 +00:00
Filip Navara
b97fb9c707 Make winddi.h UM-friendly.
svn path=/trunk/; revision=16181
2005-06-20 21:03:41 +00:00
Hartmut Birr
f4d5dc8eb3 Fixed a bug within the calculation of the memory load.
svn path=/trunk/; revision=16180
2005-06-20 20:27:10 +00:00
Alex Ionescu
1bb602a345 Don't use DDK, use NDK for wshirda and ws2help
svn path=/trunk/; revision=16179
2005-06-20 20:26:14 +00:00
Alex Ionescu
0669fda144 Don't use ntdll headers in crt, use ndk
svn path=/trunk/; revision=16178
2005-06-20 20:22:54 +00:00
Alex Ionescu
de322e6992 Build iphlpapi with NDK instead of DDK
svn path=/trunk/; revision=16177
2005-06-20 20:20:40 +00:00
Alex Ionescu
26fca9d4cf Use NDK instead of DDK
svn path=/trunk/; revision=16176
2005-06-20 20:13:58 +00:00
Alex Ionescu
f239820920 jingle bells batman smells, robin laid an egg (build rosrtl with NDK)
svn path=/trunk/; revision=16175
2005-06-20 20:07:52 +00:00
Alex Ionescu
f9eab6bf5e Syssetup has fallen to the dark side
svn path=/trunk/; revision=16174
2005-06-20 19:58:43 +00:00
Alex Ionescu
7fdb1a2266 Build userenv and samlib with NDK
svn path=/trunk/; revision=16173
2005-06-20 19:50:52 +00:00
Alex Ionescu
a1a5cdb7ca Buid vfat(x)lib with NDK
svn path=/trunk/; revision=16172
2005-06-20 19:46:09 +00:00
Alex Ionescu
aa1e7d31e8 Build psapi with NDK
svn path=/trunk/; revision=16171
2005-06-20 19:38:25 +00:00
Alex Ionescu
0bbb2a98cd build lsasrv with NDK
svn path=/trunk/; revision=16170
2005-06-20 19:34:39 +00:00
Alex Ionescu
b19d74062e Build smdll with NDK
svn path=/trunk/; revision=16169
2005-06-20 19:33:08 +00:00
Alex Ionescu
0856013938 Build ws2_32 with NDK
svn path=/trunk/; revision=16168
2005-06-20 19:30:55 +00:00
Alex Ionescu
07d22c372d Compile msafd with NDK
svn path=/trunk/; revision=16167
2005-06-20 19:28:45 +00:00
Alex Ionescu
4cf87b40e7 Build secur32 with NDK
svn path=/trunk/; revision=16166
2005-06-20 19:19:23 +00:00
Hartmut Birr
747c64b7c4 Moved the TRACE_LDR macro from ntdll.h to utils.c.
svn path=/trunk/; revision=16165
2005-06-20 19:18:35 +00:00
Alex Ionescu
ae955c39ed Build epsapi with NDK
svn path=/trunk/; revision=16164
2005-06-20 19:14:08 +00:00
Alex Ionescu
c3151ba005 Build dnsapi with NDK
svn path=/trunk/; revision=16163
2005-06-20 19:05:25 +00:00
Alex Ionescu
d53d55734a build smlib with NDK
svn path=/trunk/; revision=16162
2005-06-20 19:02:23 +00:00
Alex Ionescu
44b8b1697a Remove rosrtl from advapi
svn path=/trunk/; revision=16161
2005-06-20 18:58:56 +00:00
Alex Ionescu
cf9968925b Switch Advapi32 to NDK
svn path=/trunk/; revision=16160
2005-06-20 18:55:05 +00:00
Alex Ionescu
29075cd391 Add missing types to NDK
svn path=/trunk/; revision=16159
2005-06-20 18:54:47 +00:00
Martin Fuchs
0f3a2ad610 sync with Wine's repository
svn path=/trunk/; revision=16158
2005-06-20 18:48:32 +00:00
Alex Ionescu
88b8879367 Compile user32 with NDK, clean up its headers, and separate it from the intenral win32k stuff
svn path=/trunk/; revision=16157
2005-06-20 18:21:07 +00:00
Martin Fuchs
8e0a6b7b07 Sync with Wine repo
svn path=/trunk/; revision=16156
2005-06-20 16:53:47 +00:00
Martin Fuchs
a609b028a1 Stefan Huehner <stefan@huehner.org>:
Remove some -Wstrict-prototypes warnings.

svn path=/trunk/; revision=16155
2005-06-20 16:52:02 +00:00
Maarten Bosma
e133ad2f81 g++ seams to have a problem with this dummy union names.
svn path=/trunk/; revision=16154
2005-06-20 16:32:42 +00:00
Filip Navara
7bf3a79d15 Remove Jamfiles.
svn path=/trunk/; revision=16153
2005-06-20 14:30:44 +00:00
Filip Navara
f266cbb1c2 Fix warnings.
svn path=/trunk/; revision=16152
2005-06-20 14:23:13 +00:00
Filip Navara
d69a2a31dd Fix a cut & paste error.
svn path=/trunk/; revision=16151
2005-06-20 14:08:06 +00:00
Filip Navara
81175de9c1 Fix warnings.
svn path=/trunk/; revision=16150
2005-06-20 13:59:40 +00:00
Filip Navara
6479d4526a Forgot this file in r16147.
svn path=/trunk/; revision=16149
2005-06-20 13:54:52 +00:00
Filip Navara
3b0038292f Remove Jamfiles.
svn path=/trunk/; revision=16148
2005-06-20 13:43:26 +00:00
Filip Navara
cdad35b774 Fix warnings and remove Jamfiles.
svn path=/trunk/; revision=16147
2005-06-20 13:43:05 +00:00
Filip Navara
d160d80677 Fix warnings.
svn path=/trunk/; revision=16146
2005-06-20 13:17:21 +00:00
Filip Navara
aa82a6a072 The DK directory doesn't seem to be used anymore.
svn path=/trunk/; revision=16145
2005-06-20 12:10:46 +00:00
Filip Navara
e0df17c6fd Compile CSRSS and WIN32CSR with NDK headers.
svn path=/trunk/; revision=16144
2005-06-20 11:56:10 +00:00
Gé van Geldorp
59057f2e70 Exclusively lock surface bits before reading or writing them
svn path=/trunk/; revision=16143
2005-06-20 08:31:48 +00:00
Filip Navara
113cab2be5 Fix definition of LPC_MESSAGE_BASE_SIZE.
svn path=/trunk/; revision=16142
2005-06-20 07:18:20 +00:00
Filip Navara
21616080f6 Remove InitializeMessageHeader definition.
svn path=/trunk/; revision=16141
2005-06-20 07:16:51 +00:00
Filip Navara
31ad5f02a9 Fix the definion of SharedUserData.
svn path=/trunk/; revision=16140
2005-06-20 07:06:41 +00:00
Hervé Poussineau
57074db1aa Implement IOCTL_USB_GET_NODE_CONNECTION_NAME, IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME
Fix indices in IOCTL_USB_GET_NODE_CONNECTION_INFORMATION

svn path=/trunk/; revision=16139
2005-06-20 05:54:19 +00:00
Alex Ionescu
0ee8822197 Major cleanup to rtlfuncs.h. Not yet perfect but much better organized.
svn path=/trunk/; revision=16138
2005-06-20 05:36:32 +00:00
Alex Ionescu
4b83cb1f77 Cleanup kernel usage to decrease compilation time/memory
svn path=/trunk/; revision=16136
2005-06-20 04:30:23 +00:00
Alex Ionescu
eb67c61944 Remove rosrtl string macros
svn path=/trunk/; revision=16135
2005-06-20 04:18:03 +00:00
Alex Ionescu
497256b40e Build kernel32 with NDK
svn path=/trunk/; revision=16134
2005-06-20 04:07:49 +00:00
Alex Ionescu
d98066b2aa Final NDK fixes for kernel32
svn path=/trunk/; revision=16133
2005-06-20 04:07:34 +00:00
Alex Ionescu
4a0a216d3e Apply kjk's change to thread.c too
svn path=/trunk/; revision=16132
2005-06-20 04:07:19 +00:00
Alex Ionescu
3bfd20f396 Some NDK Fixes, kernel32 almost compiles
svn path=/trunk/; revision=16131
2005-06-20 03:55:42 +00:00
KJK::Hyperion
8cd2554cff Converted kernel32 process creation to use PSEH (untested change to help Alex)
svn path=/trunk/; revision=16130
2005-06-20 03:42:05 +00:00
Alex Ionescu
f5e002e1c9 Fixed incorrect SetNamedPipeHandleState implementation to use the actual APIs/Structures it should and added one of the missing ones to NTIFS.
svn path=/trunk/; revision=16129
2005-06-20 01:52:47 +00:00
Alex Ionescu
aaad0af903 Add missing stuff to NDK
svn path=/trunk/; revision=16128
2005-06-19 23:59:40 +00:00
Alex Ionescu
16c356bfa1 Ditto for HAL
svn path=/trunk/; revision=16127
2005-06-19 22:53:49 +00:00
Alex Ionescu
b4cb154b4a Blight is cool. oh, right..this is a commt message. err.. oh. include debug.h per-file isntead of globally, or else this breaks NDEBUG
svn path=/trunk/; revision=16126
2005-06-19 22:50:59 +00:00
Filip Navara
94b818d7c0 TIME -> LARGE_INTEGER
svn path=/trunk/; revision=16125
2005-06-19 22:32:51 +00:00
Hervé Poussineau
697e997b8f Implement IRP_MJ_CLEANUP for UHCI controller
svn path=/trunk/; revision=16124
2005-06-19 22:19:11 +00:00
Filip Navara
8098dc0a97 - Don't include ntddk.h from most of the DDK headers and move the includes out of the "extern C" blocks.
- Fix order of STDCALL in few callback defintions.
- Get the sources to build again with these changes.

svn path=/trunk/; revision=16123
2005-06-19 22:13:41 +00:00
Hervé Poussineau
9bd5178ad2 Implement IOCTL_GET_HCD_DRIVERKEY_NAME
Better check for arguments in IOCTL_*
Let IOCTL_USB_GET_ROOT_HUB_NAME use the right structure type
Initialize wrapper around linux code after setting the device extension field

svn path=/trunk/; revision=16122
2005-06-19 22:11:09 +00:00
Alex Ionescu
b76b475c32 Build RTL with NDK
svn path=/trunk/; revision=16121
2005-06-19 22:05:50 +00:00
Alex Ionescu
aec8d2f143 Move internal rtlp functions out of ntos and into internal rosrtl header
svn path=/trunk/; revision=16120
2005-06-19 22:05:18 +00:00
Alex Ionescu
1754d20379 Add free to libsupp
svn path=/trunk/; revision=16119
2005-06-19 21:50:05 +00:00
Alex Ionescu
d3e93a6629 Add include to rosrtl where needed
svn path=/trunk/; revision=16118
2005-06-19 21:40:29 +00:00
Alex Ionescu
9deb8137ef Fix cshort definition
svn path=/trunk/; revision=16117
2005-06-19 21:39:58 +00:00
Alex Ionescu
ef09428e85 Add libsupp.h for rtl's Kernel Allocation functions
svn path=/trunk/; revision=16116
2005-06-19 21:37:01 +00:00
Alex Ionescu
38765d4930 Add missing security types in winnt.h
svn path=/trunk/; revision=16115
2005-06-19 21:35:57 +00:00
Alex Ionescu
a43ea85ae0 User helper header and don't use RTLROS string macros naymore
svn path=/trunk/; revision=16114
2005-06-19 21:08:39 +00:00
Alex Ionescu
4d69a0fddb Fix Build
svn path=/trunk/; revision=16113
2005-06-19 21:03:41 +00:00
Filip Navara
61eed1a9da Fxi build.
svn path=/trunk/; revision=16112
2005-06-19 20:56:11 +00:00
Alex Ionescu
299cedf334 Use RTL_CONSTANT_STRING instead of RtlRos macro
svn path=/trunk/; revision=16111
2005-06-19 20:43:13 +00:00
Alex Ionescu
3b65c45a7c Build NTDLL with NDK
svn path=/trunk/; revision=16110
2005-06-19 20:28:20 +00:00
Alex Ionescu
d3d66f5e68 Final NDK fixes for ntdll
svn path=/trunk/; revision=16109
2005-06-19 20:18:30 +00:00
Filip Navara
514f6f4626 Remove PNP_VETO_TYPE from winddk.h.
svn path=/trunk/; revision=16108
2005-06-19 20:09:32 +00:00
Alex Ionescu
448fd2a82a More NDK fixes, remove duplicated debug functions from ntdll, use rosrtl header where neded in ntdll.
svn path=/trunk/; revision=16107
2005-06-19 20:01:07 +00:00
Filip Navara
fd45cff559 Fix packing.
svn path=/trunk/; revision=16106
2005-06-19 19:56:01 +00:00
Alex Ionescu
3ff128077e More NDK fixes/additions
svn path=/trunk/; revision=16105
2005-06-19 19:36:05 +00:00
Alex Ionescu
93d9bcad1a More NDK fixes (user-mode NDK now works) and guard some stuff in include/ntdll so that ntdll can be build with NDK, but so that other apps not yet using it, but using those headers, can also build
svn path=/trunk/; revision=16104
2005-06-19 19:15:46 +00:00
James Tabor
7d84d6b837 Adding ps.exe to build process.
svn path=/trunk/; revision=16103
2005-06-19 18:54:02 +00:00
James Tabor
b3bc018212 Adding ps.exe to build process.
svn path=/trunk/; revision=16102
2005-06-19 18:53:19 +00:00
Filip Navara
ac4f85a89e Forgot to commit this file in r16097.
svn path=/trunk/; revision=16101
2005-06-19 18:34:35 +00:00
Alex Ionescu
1b74c03fb1 Major cleanup of User-Mode NDK
svn path=/trunk/; revision=16100
2005-06-19 18:21:58 +00:00
Filip Navara
8b3da072dd Cleanup header usage in USER32.
svn path=/trunk/; revision=16099
2005-06-19 18:06:53 +00:00
Filip Navara
3dcd5f1ff6 Remove duplicate header.
svn path=/trunk/; revision=16098
2005-06-19 17:34:05 +00:00
Filip Navara
f2ff7df489 (Re)move USER32 headers from include/user32.
svn path=/trunk/; revision=16097
2005-06-19 17:27:44 +00:00
Filip Navara
8625b6ac08 Remove duplicate headers.
svn path=/trunk/; revision=16096
2005-06-19 16:30:52 +00:00
Filip Navara
2954ec2db0 Better header redefiniton guards.
svn path=/trunk/; revision=16095
2005-06-19 15:40:47 +00:00
Filip Navara
ae8bd99934 - Add definition of DRIVE_LAYOUT_INFORMATION_EX.
- Move CLS defintions from winddk.h to ntnls.h.
- Move EVENT_TRACE_HEADER defintion from winddk.h to evntrace.h.

svn path=/trunk/; revision=16094
2005-06-19 15:27:10 +00:00
Hervé Poussineau
d4719c91ec Implement IRP_MN_QUERY_DEVICE_RELATIONS for USB hubs
Implement IRP_MN_QUERY_ID for devices enumerated by USB hubs

svn path=/trunk/; revision=16093
2005-06-19 14:15:39 +00:00
Magnus Olsen
30eee0c5d1 revert my lattes change some part of head did break
sorry all. 

svn path=/trunk/; revision=16092
2005-06-19 14:12:59 +00:00
Casper Hornstrup
a5e4e00e8a Count only scheduled time when running performance tests
svn path=/trunk/; revision=16091
2005-06-19 12:41:22 +00:00
Magnus Olsen
2caba7c355 add struct DDRAWI_DIRECTDRAW_GBL
svn path=/trunk/; revision=16090
2005-06-19 12:14:31 +00:00
Magnus Olsen
e661bfdc12 Correct the DD_GETDRIVERINFODATA struct it did missing a pointer to DDRAWI_DIRECTDRAW_GBL struct. Some need really check this file if more mistake exists
svn path=/trunk/; revision=16089
2005-06-19 12:13:57 +00:00
Magnus Olsen
17c0f2829a add TAG macro
svn path=/trunk/; revision=16088
2005-06-19 10:10:34 +00:00
Hartmut Birr
499a2712a9 Initialized the system call entry independent of the real type of SystemCall.
svn path=/trunk/; revision=16087
2005-06-19 09:48:14 +00:00
Filip Navara
fbf1722197 Couple of build fixes.
svn path=/trunk/; revision=16086
2005-06-19 09:07:44 +00:00
Filip Navara
068cf10896 Add TAG macro definition.
svn path=/trunk/; revision=16085
2005-06-19 08:21:35 +00:00
Filip Navara
b63e292fbd Add TAG macro definition.
svn path=/trunk/; revision=16084
2005-06-19 08:20:08 +00:00
Filip Navara
d864df4b3b Move the TAG define.
svn path=/trunk/; revision=16083
2005-06-19 08:15:10 +00:00
Filip Navara
887716169a Add TAG macro definition.
svn path=/trunk/; revision=16082
2005-06-19 08:14:18 +00:00
Filip Navara
b76c3856ee Move the TAG define.
svn path=/trunk/; revision=16081
2005-06-19 08:05:01 +00:00
Alex Ionescu
6048617aab Some more NDK fixes
svn path=/trunk/; revision=16080
2005-06-19 07:41:35 +00:00
Alex Ionescu
1311a0191c Fix rtl/rossym
svn path=/trunk/; revision=16079
2005-06-19 07:15:07 +00:00
Alex Ionescu
469fa69ab7 Add NtcurrentThread, ALTERNATIVE_ARCHITECTURE_TYPE, KSYSTEM_TIME, KUSER_SHARED_DATA, REG_CREATED_NEW_KEY, REG_OPENED_EXISTING_KEY, KeRaiseIrqlToSynchLevel to DDK. Remove HANDLE_TABLE_ENTRY_INFO and HANDLE_TABLE_ENTRY from NTIFS. Add NT_PRODUCT_TYPE
svn path=/trunk/; revision=16078
2005-06-19 07:11:49 +00:00
Alex Ionescu
10c1c40139 Fix some ntoskrnl things, like using Rtl instead of RosRtl, and undefining ROUND macros
svn path=/trunk/; revision=16077
2005-06-19 07:11:38 +00:00
Filip Navara
e960d42247 Use RTL_CONSTANT_STRING instead of ROSRTL macros.
svn path=/trunk/; revision=16076
2005-06-19 07:07:52 +00:00
Alex Ionescu
9d04f9a976 More NDK Fixes
svn path=/trunk/; revision=16075
2005-06-19 07:03:18 +00:00
Alex Ionescu
a6c04adbb2 Fix building issues caused by previous patch
svn path=/trunk/; revision=16074
2005-06-19 04:49:14 +00:00
Alex Ionescu
cbe3dc72cb Move Exported functions away from internal/ke.h, move exported data from internal/ex.h, add internal structures to internal/ifs.h, include ntdddisk.h in internal/xhal.h for access to PDRIVE_LAYOUT_INFORMATION, remove DDK function from internal/nls.h, remove KTRAP_FRAME from internal/i386/ke.h, add some more temporary types to krnltypes.h, protect PNP_VETO_TYPE, move EVENT_TRACE_HEADER to DDK, guard disk.h properly, correct DRIVE_LAYOUT_INFORMATION typedef in DDK, add PNP_VETO_TYPE, NLSTABLEINFO, CPTABLEINFO, remove KDPC_DATA, PP_LOOKASIDE_LIST. remove PROCESSOR_POWER_STATE from ntpoapi, remove MAILSLOT_CREATE_PARAMETERS, NAMED_PIPE_CREATE_PARAMETERS, IO_COMPLETION_INFORMATION_CLASS, PAGEFAULT_HISTORY, SECTION_XXX_INFORMATION, RtlSelfRelativeToAbsoluteSD, ZwQuerySection/Object, ZwQuerySystemInformation, ZwSetInformationObject, ZwSetSystemInformation from IFS
svn path=/trunk/; revision=16073
2005-06-19 03:55:48 +00:00
Alex Ionescu
428572a138 Move Exported functions away from internal/ke.h, move exported data from internal/ex.h, add internal structures to internal/ifs.h, include ntdddisk.h in internal/xhal.h for access to PDRIVE_LAYOUT_INFORMATION, remove DDK function from internal/nls.h, remove KTRAP_FRAME from internal/i386/ke.h, add some more temporary types to krnltypes.h, protect PNP_VETO_TYPE, move EVENT_TRACE_HEADER to DDK, guard disk.h properly, correct DRIVE_LAYOUT_INFORMATION typedef in DDK, add PNP_VETO_TYPE, NLSTABLEINFO, CPTABLEINFO, remove KDPC_DATA, PP_LOOKASIDE_LIST. remove PROCESSOR_POWER_STATE from ntpoapi, remove MAILSLOT_CREATE_PARAMETERS, NAMED_PIPE_CREATE_PARAMETERS, IO_COMPLETION_INFORMATION_CLASS, PAGEFAULT_HISTORY, SECTION_XXX_INFORMATION, RtlSelfRelativeToAbsoluteSD, ZwQuerySection/Object, ZwQuerySystemInformation, ZwSetInformationObject, ZwSetSystemInformation from IFS
svn path=/trunk/; revision=16072
2005-06-19 03:55:34 +00:00
Alex Ionescu
0af7b6f7a0 Many fixes to NDK
svn path=/trunk/; revision=16071
2005-06-19 03:25:33 +00:00
Alex Ionescu
5a4296bcec Remove PAGED_CODE, PAGED_CODE_RTL and RTL_ONSTANT_STRING from ntoskrnl.h. The first and last are in DDK, and the second is not used in the kernel and already defined
svn path=/trunk/; revision=16070
2005-06-19 01:10:08 +00:00
Filip Navara
5be76fa181 Use RTL_CONSTANT_STRING instead of ROSRTL macros.
svn path=/trunk/; revision=16069
2005-06-19 00:28:46 +00:00
Filip Navara
cc03f70b55 Use RTL_CONSTANT_STRING instead of ROSRTL macros.
svn path=/trunk/; revision=16068
2005-06-19 00:21:54 +00:00
Filip Navara
7971e8425b - Use regular PE structures in NTOSKRNL/NTDLL/DISKDUMP.
- Add WDMGUID library.
- Get rid of few more headers.

svn path=/trunk/; revision=16067
2005-06-19 00:06:08 +00:00
Alex Ionescu
c09b52bf01 Add NDK 1.00-pre. Needs some TLC in umtypes.h and a lot of fixes. Not used anywhere yet.
svn path=/trunk/; revision=16066
2005-06-18 23:33:40 +00:00
Magnus Olsen
46f26a073b make inline asm -O3 compatible (remove L1 and L2 label) thx blight and alex to explain how to do that.
svn path=/trunk/; revision=16065
2005-06-18 22:54:12 +00:00
Filip Navara
bc47c238df Remove duplicate definition of KdPrintEx.
svn path=/trunk/; revision=16064
2005-06-18 22:06:54 +00:00
Magnus Olsen
5e0373034a make gcc stop nag about uninitialized value in 114: and make -O3 working
svn path=/trunk/; revision=16063
2005-06-18 21:55:59 +00:00
Filip Navara
dc337def98 Get rid of ROS DDK SCSI headers (forgot these files in r16060).
svn path=/trunk/; revision=16061
2005-06-18 21:02:59 +00:00
Filip Navara
fd44a4b514 Get rid of ROS DDK SCSI headers.
svn path=/trunk/; revision=16060
2005-06-18 20:55:09 +00:00
Gé van Geldorp
39da2fef47 Thanks to GreatLord for spotting that we shouldn't access pixels outside the
source surface in EngBitBlt.

svn path=/trunk/; revision=16059
2005-06-18 20:29:31 +00:00
Filip Navara
91a2889e07 - Convert mouclass and sermouse to use official DDK prototypes.
- Get rid of the old ROS DDK headers.

svn path=/trunk/; revision=16058
2005-06-18 20:25:08 +00:00
Gé van Geldorp
95d1b8ae62 Use correct dest rect when preventing copy outside source surf
svn path=/trunk/; revision=16057
2005-06-18 19:53:49 +00:00
Filip Navara
434303caa3 Don't include internal headers.
svn path=/trunk/; revision=16056
2005-06-18 19:30:47 +00:00
Filip Navara
8b43bd8c4c Add __ASM__ guard.
svn path=/trunk/; revision=16055
2005-06-18 19:30:15 +00:00
Filip Navara
31b7f64f58 Fix build. :/
svn path=/trunk/; revision=16054
2005-06-18 19:13:29 +00:00
Filip Navara
52f8761d3a Use W32API for NTOSKRNL.
svn path=/trunk/; revision=16053
2005-06-18 18:32:29 +00:00
Filip Navara
ff246534c9 Fix build.
svn path=/trunk/; revision=16052
2005-06-18 17:22:21 +00:00
Filip Navara
fb0959e85a - Move few non-DDK types from ROS DDK to NTOS headers.
- Fix some __USE_W32API guards.


svn path=/trunk/; revision=16051
2005-06-18 17:17:52 +00:00
Filip Navara
4d14d7da13 Define DRVO_UNLOAD_INVOKED, DRVO_LEGACY_DRIVER, DRVO_BUILTIN_DRIVER, DRVO_REINIT_REGISTERED, DRVO_INITIALIZED, DRVO_BOOTREINIT_REGISTERED and DRVO_LEGACY_RESOURCES. Thanks Alex.
svn path=/trunk/; revision=16050
2005-06-18 16:56:41 +00:00
Filip Navara
bb40279864 Move non-DDK Ps* function prototypes and types from ROS DDK to NTOS headers.
svn path=/trunk/; revision=16049
2005-06-18 16:53:34 +00:00
Filip Navara
a7753f898e Move non-DDK Se* function prototypes and types from ROS DDK to NTOS headers.
svn path=/trunk/; revision=16048
2005-06-18 16:21:46 +00:00
Filip Navara
c818943efa Move InsertAscendingListFIFO, InsertDescendingListFIFO, InsertAscendingList and InsertDescendingList out of the __USE_W32API guarded region.
svn path=/trunk/; revision=16047
2005-06-18 15:58:39 +00:00
Filip Navara
2d6c9998be - Move non-DDK HAL function prototypes from ROS DDK to NTOS headers.
svn path=/trunk/; revision=16046
2005-06-18 15:55:23 +00:00
Filip Navara
73d83fbb2b Fix build.
svn path=/trunk/; revision=16045
2005-06-18 15:50:23 +00:00
Alex Ionescu
7bbb54b0e7 Fix XML bug in hal makefiles
svn path=/trunk/; revision=16044
2005-06-18 15:24:30 +00:00
Filip Navara
0f030a82b0 - Move non-DDK Ke* function prototypes from ROS DDK to NTOS headers.
- Fix calling convention for KeI386* functions.

svn path=/trunk/; revision=16043
2005-06-18 15:15:25 +00:00
Alex Ionescu
99cc88158b Use generic HAL header
svn path=/trunk/; revision=16040
2005-06-18 14:30:09 +00:00
Alex Ionescu
f8d053290e Build Generic HAL with w32api
svn path=/trunk/; revision=16039
2005-06-18 14:29:31 +00:00
Alex Ionescu
06e00cb9c9 Build XBOX HAL with w32api
svn path=/trunk/; revision=16038
2005-06-18 14:29:17 +00:00
Alex Ionescu
762e020a20 Build UP HAL with w32api
svn path=/trunk/; revision=16037
2005-06-18 14:28:55 +00:00
Alex Ionescu
3e334c65fc Build MP HAL with w32api
svn path=/trunk/; revision=16036
2005-06-18 14:28:28 +00:00
Alex Ionescu
a5579f945f Build stub HAL with w32api
svn path=/trunk/; revision=16035
2005-06-18 14:27:44 +00:00
Alex Ionescu
01251016ad Remove weird header and add a missing prototype in halfuncs.h
svn path=/trunk/; revision=16034
2005-06-18 14:26:22 +00:00
Alex Ionescu
eb4f82ce4d Remove IoAdapterObjectType defintion, it doesn't belong in public headers
svn path=/trunk/; revision=16033
2005-06-18 14:10:28 +00:00
Filip Navara
cc6150fb29 Fix SMP version of ASSERT and assert.
svn path=/trunk/; revision=16032
2005-06-18 14:05:56 +00:00
Filip Navara
14b69747a2 Remove duplicate definition of EVENT_QUERY_STATE.
svn path=/trunk/; revision=16031
2005-06-18 13:15:07 +00:00
Filip Navara
6a7e9f4bf7 Correctly pack the KIPCR structure.
svn path=/trunk/; revision=16030
2005-06-18 12:56:11 +00:00
Filip Navara
4fd0801d50 Fix position of the STDCALL keyword. Spotted by KJK::Hyperion.
svn path=/trunk/; revision=16029
2005-06-18 12:55:02 +00:00
Filip Navara
186c8b72d1 ntapi.h:
- Define LANGID and fix definition of PLANGID.
- Define PVM_COUNTERS, SYSTEM_CACHE_INFORMATION and SYSTEM_INTERRUPT_INFORMATION.
- Match the ROS version of LPC_MESSAGE (the structure itself should be named PORT_MESSAGE and belongs to ntifs.h).
- Move KEY_SET_INFORMATION_CLASS definiton to winddk.h.
- Make the first parameter of NtAllocateUuids PULARGE_INTEGER.
- Declare NtSetUuidSeed.
- Fix definition of ATOM_INFORMATION_CLASS and ATOM_BASIC_INFORMATION to match ReactOS versions.
winddk.h:
- Define NTHALAPI and use it to mark HAL exports instead of NTOSAPI.
- Define PADAPTER_OBJECT, EVENT_QUERY_STATE, EVENT_MODIFY_STATE, EVENT_ALL_ACCESS, SEMAPHORE_QUERY_STATE, SEMAPHORE_MODIFY_STATE, SEMAPHORE_ALL_ACCESS, IRP_QUOTA_CHARGED, IRP_ALLOCATED_MUST_SUCCEED, IRP_ALLOCATED_FIXED_SIZE, IRP_LOOKASIDE_ALLOCATION, HalDispatchTableVersion, HalQuerySystemInformation, HalSetSystemInformation, HalQueryBusSlots, HalDeviceControl, HalIoAssignDriveLetters, HalIoReadPartitionTable, HalIoSetPartitionInformation, HalIoWritePartitionTable, HalReferenceHandlerForBus, HalReferenceBusHandler, HalDereferenceBusHandler, IO_TYPE_ADAPTER, IO_TYPE_CONTROLLER, IO_TYPE_DEVICE, IO_TYPE_DRIVER,
IO_TYPE_FILE, IO_TYPE_IRP, IO_TYPE_MASTER_ADAPTER, IO_TYPE_OPEN_PACKET,
IO_TYPE_TIMER, IO_TYPE_VPB, IO_TYPE_ERROR_LOG, IO_TYPE_ERROR_MESSAGE,
IO_TYPE_DEVICE_OBJECT_EXTENSION, IO_FORCE_ACCESS_CHECK and IO_NO_PARAMETER_CHECKING.
- Remove declaration of HalPrivateDispatchTable, it doesn't belong to public headers.
- Fix declaration of WAIT_CONTEXT_BLOCK, HalDispatchTable, DRIVER_EXTENSION, GENERAL_LOOKASIDE, NPAGED_LOOKASIDE_LIST, PAGED_LOOKASIDE_LIST, KPCR_TIB, MmHighestUserAddress, MmSystemRangeStart, MmUserProbeAddress, KdDebuggerNotPresent and KdDebuggerEnabled.
- Declare KEY_WRITE_TIME_INFORMATION, KEY_USER_FLAGS_INFORMATION, KEY_SET_INFORMATION_CLASS, KfAcquireSpinLock, KfReleaseSpinLock and ExfInterlockedCompareExchange64.
winnt4.h:
- Declare HalAcquireDisplayOwnership and HalAllocateAdapterChannel.
ntifs.h:
- Fix definition of NTKERNELAPI.
- Fix declaration of FsRtlLegalAnsiCharacterArray, FsRtlNotifyInitializeSync, FsRtlNotifyUninitializeSync, IoCheckFunctionAccess and PsGetProcessExitTime.
- Declare IoStatisticsLock, IoReadOperationCount, IoWriteOperationCount, IoOtherOperationCount, IoReadTransferCount, IoWriteTransferCount,
IoOtherTransferCount, FSRTL_ADVANCED_FCB_HEADER, FSRTL_PER_STREAM_CONTEXT, PFILTER_REPORT_CHANGE, FS_FILTER_SECTION_SYNC_TYPE, FS_FILTER_PARAMETERS, FS_FILTER_CALLBACK_DATA, PFS_FILTER_CALLBACK, PFS_FILTER_COMPLETION_CALLBACK, FS_FILTER_CALLBACKS, READ_LIST, ExInitializeRundownProtection, ExReInitializeRundownProtection, ExAcquireRundownProtection, ExAcquireRundownProtectionEx, ExReleaseRundownProtection, ExReleaseRundownProtectionEx, ExRundownCompleted, ExWaitForRundownProtectionRelease, FsRtlMdlReadDev, FsRtlPrepareMdlWriteDev, PFSRTL_STACK_OVERFLOW_ROUTINE, FsRtlPostStackOverflow, FsRtlPostPagingFileStackOverflow, IoAttachDeviceToDeviceStackSafe, IoQueueThreadIrp, KeInitializeMutant, KeReadStateMutant, KeReleaseMutant and PsIsSystemThread.
- Define FSRTL_FAT_LEGAL, FSRTL_HPFS_LEGAL, FSRTL_NTFS_LEGAL, FSRTL_WILD_CHARACTER, FSRTL_OLE_LEGAL, FSRTL_NTFS_STREAM_LEGAL, EX_RUNDOWN_ACTIVE, EX_RUNDOWN_COUNT_SHIFT, EX_RUNDOWN_COUNT_INC, FsRtlIsLeadDbcsCharacter and FsRtlIsAnsiCharacterWild.
- Remove declaration of SYSTEM_CACHE_INFORMATION and SeCreateAccessState, they don't belong to public headers.

svn path=/trunk/; revision=16028
2005-06-18 12:39:24 +00:00
Filip Navara
69b04c6fd2 Define PAGE_WRITECOMBINE, IMAGE_OPTIONAL_HEADER32, IMAGE_OPTIONAL_HEADER64, IMAGE_NT_HEADERS32 and IMAGE_NT_HEADERS64.
svn path=/trunk/; revision=16027
2005-06-18 12:12:41 +00:00
Gregor Anich
eb4f850ff3 Fix stupid bug...
svn path=/trunk/; revision=16026
2005-06-18 11:42:42 +00:00
Eric Kohl
65a5620cd8 Implement basic string table functions
svn path=/trunk/; revision=16025
2005-06-18 11:30:49 +00:00
Casper Hornstrup
1ac8300db4 DIB_24BPP_ColorFill performance test
svn path=/trunk/; revision=16024
2005-06-18 08:04:30 +00:00
Martin Fuchs
2486be430f remove superfluous include
svn path=/trunk/; revision=16023
2005-06-18 07:43:49 +00:00
Casper Hornstrup
37e38723e7 Prepare win32k for tests
svn path=/trunk/; revision=16022
2005-06-18 06:17:10 +00:00
Filip Navara
fbf52b7050 Fix "make test".
svn path=/trunk/; revision=16021
2005-06-17 22:59:39 +00:00
Alex Ionescu
b7754ab78d Add KIPCR which will be needed soon and add one more internal function
svn path=/trunk/; revision=16020
2005-06-17 22:05:16 +00:00
Filip Navara
7cee43970a Remove few more dead headers.
svn path=/trunk/; revision=16019
2005-06-17 21:35:33 +00:00
Gé van Geldorp
c37765923c - Correctly translate output rect
- Don't call DIB routines for empty (clipped away) rectangles

svn path=/trunk/; revision=16018
2005-06-17 20:54:24 +00:00
Martin Fuchs
5d7043ea5a remove tabs for proper indenting
svn path=/trunk/; revision=16017
2005-06-17 20:32:22 +00:00
Casper Hornstrup
da4957ec53 External modules area
svn path=/trunk/; revision=16016
2005-06-17 20:30:57 +00:00
Martin Fuchs
f53f915435 sync to Wine's latest "warning fixes"
svn path=/trunk/; revision=16015
2005-06-17 20:28:06 +00:00
Martin Fuchs
836c8f9265 remove old headerfile "license.h"
svn path=/trunk/; revision=16014
2005-06-17 20:23:31 +00:00
Martin Fuchs
3f0cb9fa9f Update Copyright information from Wine's repository
svn path=/trunk/; revision=16013
2005-06-17 20:22:08 +00:00
Filip Navara
609922c292 Add definition of PKBUGCHECK_REASON_CALLBACK_ROUTINE, KBUGCHECK_REASON_CALLBACK_RECORD and KBUGCHECK_CALLBACK_REASON.
svn path=/trunk/; revision=16012
2005-06-17 20:09:20 +00:00
Filip Navara
6c512c6430 Cleanup the indenting of HAL types and move the STDCALL/FASTCALL keywords at the right place in the declarations.
svn path=/trunk/; revision=16011
2005-06-17 20:01:51 +00:00
Filip Navara
d1dbe1be23 Remove definiton of PHAL_RESET_DISPLAY_PARAMETERS.
svn path=/trunk/; revision=16010
2005-06-17 19:43:51 +00:00
Filip Navara
a8f8cec2a4 Be W32API friendly.
svn path=/trunk/; revision=16009
2005-06-17 19:27:49 +00:00
Alex Ionescu
d143eebd0f Add missing HAL types to DDK
svn path=/trunk/; revision=16008
2005-06-17 18:02:31 +00:00
Alex Ionescu
4b08e9770a Oops. Thanks w3seek
svn path=/trunk/; revision=16007
2005-06-17 17:59:11 +00:00
Filip Navara
0a48555ba9 - Comment out the call to SHObjectProperties. The one who added it must have been complete freak since the parameters were completely wrong. Don't let me do "svn log" ...
- Remove duplicate definition from version.h.

svn path=/trunk/; revision=16006
2005-06-17 17:44:39 +00:00
Filip Navara
7af0efc0bc - Define SHOP_PRINTERNAME, SHOP_FILEPATH and SHOP_VOLUMEGUID.
- Declare SHObjectProperties.

svn path=/trunk/; revision=16005
2005-06-17 17:37:54 +00:00
Gregor Anich
3ab6c437cc longjmp() should return 1 if 0 is passed as return value (0 should only be returned by setjmp)
svn path=/trunk/; revision=16004
2005-06-17 17:33:47 +00:00
Gregor Anich
402b13b071 Fix another broken setjmp.
svn path=/trunk/; revision=16003
2005-06-17 17:27:03 +00:00
Gregor Anich
faeb567e1c Fix setjmp (didn't save correct ESP, so it crashed after longjmp).
Fix the kernel debugger.

svn path=/trunk/; revision=16002
2005-06-17 17:25:02 +00:00
Hervé Poussineau
8502799382 Implement IRP_MN_QUERY_CAPABILITIES, IRP_MN_QUERY_RESOURCES, IRP_MN_QUERY_RESOURCE_REQUIREMENTS
svn path=/trunk/; revision=16001
2005-06-17 17:22:57 +00:00
Alex Ionescu
ffe54a1108 Enable PCH for NTDLL. This is commit 16000. Alex pwns you all.
svn path=/trunk/; revision=16000
2005-06-17 17:22:44 +00:00
Alex Ionescu
2df663e3fe Use NTDLL Common Header.
svn path=/trunk/; revision=15999
2005-06-17 17:22:27 +00:00
Alex Ionescu
5e400ded46 Add NTDLL Common Header
svn path=/trunk/; revision=15998
2005-06-17 17:22:19 +00:00
Alex Ionescu
46794424c7 Enable PCH for rtl
svn path=/trunk/; revision=15997
2005-06-17 17:22:12 +00:00
Gregor Anich
bfe3229a7d Remove #include <poppack.h> - there is no pshpack beeing included.
svn path=/trunk/; revision=15996
2005-06-17 17:18:58 +00:00
Filip Navara
ef09f86407 Use W32API.
svn path=/trunk/; revision=15995
2005-06-17 17:15:55 +00:00
Filip Navara
580b785a18 Fix the export of HalExamineMBR. It mustn't be aliased since we need to have it named correctly in the import library.
svn path=/trunk/; revision=15994
2005-06-17 17:14:57 +00:00
Filip Navara
b4a5cd914f - Move DRIVE_LAYOUT_INFORMATION_MBR, DRIVE_LAYOUT_INFORMATION_GPT and
PARTITION_INFORMATION_MBR structures from winddk.h to ntdddisk.h.
- Add definitions of IOCTL_DISK_HISTOGRAM_STRUCTURE, IOCTL_DISK_HISTOGRAM_DATA,
  IOCTL_DISK_HISTOGRAM_RESET, IOCTL_DISK_LOGGING, IOCTL_DISK_REQUEST_DATA,
  IOCTL_DISK_REQUEST_STRUCTURE, PARTITION_INFORMATION_MBR,
  DRIVE_LAYOUT_INFORMATION and IO_QUERY_DEVICE_DATA_FORMAT.

svn path=/trunk/; revision=15993
2005-06-17 17:12:17 +00:00
Filip Navara
0794ad5aa6 - Get rid of STDCALL_FUNC usage in napi/core.h.
- Allow including ntos.h and ntdddisk.h at the same time.

svn path=/trunk/; revision=15992
2005-06-17 17:08:04 +00:00
Filip Navara
c57e3d0690 Fix definition of LPC_MAX_MESSAGE for __USE_W32API case.
svn path=/trunk/; revision=15991
2005-06-17 16:58:15 +00:00
Filip Navara
300fd866a2 Fix packing of structures.
svn path=/trunk/; revision=15990
2005-06-17 16:35:17 +00:00
Thomas Bluemel
dfe571622c - fixed a possible deadlock in SmBeginClientInitialization
- fixed SmCompleteClientInitialization to return success when the client data could be found
- don't copy the program name to a NULL pointer in SmCreateClient in case allocating the storage failed

svn path=/trunk/; revision=15989
2005-06-17 16:26:04 +00:00
Casper Hornstrup
ac243d95f2 Build wrc in output tree.
Patch by Sylvain Petreolle [spetreolle@yahoo.fr].


svn path=/trunk/; revision=15988
2005-06-17 16:12:33 +00:00
Hervé Poussineau
a9a05b022d Disable some code in cromwell, as you get an infinite loop on some hardware ("ERR: drivers\usb\cromwell\uhci\uhci-hcd.c: 1060: host controller halted. very bad during boot")
svn path=/trunk/; revision=15987
2005-06-17 15:48:15 +00:00
Magnus Olsen
2e71724ae1 New icon from mf. same as cmd icon
svn path=/trunk/; revision=15986
2005-06-17 15:47:10 +00:00
Filip Navara
ddec33b110 Use W32API.
svn path=/trunk/; revision=15985
2005-06-17 15:10:01 +00:00
Filip Navara
f44cbee050 Get rid of obsolete makefile.
svn path=/trunk/; revision=15984
2005-06-17 14:00:19 +00:00
Filip Navara
e37f6810a5 CSQ is linked to the kernel also, so make that work.
svn path=/trunk/; revision=15983
2005-06-17 13:59:47 +00:00
Filip Navara
7554c281d5 Use W32API.
svn path=/trunk/; revision=15982
2005-06-17 13:24:50 +00:00
Filip Navara
8342ea7301 Remove KEBUGCHECK and KEBUGCHECKEX definitions.
svn path=/trunk/; revision=15981
2005-06-17 13:22:12 +00:00
Filip Navara
3f77a1c166 Fix a typo. :(
svn path=/trunk/; revision=15980
2005-06-17 13:17:46 +00:00
Filip Navara
a4cb3017e6 Define KEBUGCHECK and KEBUGCHECKEX here.
svn path=/trunk/; revision=15979
2005-06-17 13:13:37 +00:00
Filip Navara
05548c5587 A bit of W32API friendliness...
svn path=/trunk/; revision=15978
2005-06-17 13:12:45 +00:00
Filip Navara
bae68b41b1 Use W32API.
svn path=/trunk/; revision=15977
2005-06-17 13:05:11 +00:00
Filip Navara
6a36797b61 Allow csq.h to be included along with ntddk.h.
svn path=/trunk/; revision=15976
2005-06-17 13:00:03 +00:00
Filip Navara
1b5f61f4e6 Include the prototypes for CcRosInitializeFileCache and CcRosReleaseFileCache even when compiling w/ W32API.
svn path=/trunk/; revision=15975
2005-06-17 12:59:27 +00:00
Filip Navara
4cd0b32494 - Fix prototype of IoCsqInitialize.
- Define IO_TYPE_CSQ and IO_TYPE_CSQ_IRP_CONTEXT.

svn path=/trunk/; revision=15974
2005-06-17 12:57:31 +00:00
Filip Navara
a965b968f2 Get rid of obsolete makefile.
svn path=/trunk/; revision=15973
2005-06-17 12:31:49 +00:00
Filip Navara
e0463986d3 Build file system drivers w/ W32API headers.
svn path=/trunk/; revision=15972
2005-06-17 12:29:33 +00:00
Filip Navara
b0d3f5b991 Make the ASSERT macros GCC friendly.
svn path=/trunk/; revision=15971
2005-06-17 12:24:29 +00:00
Filip Navara
317d4942bd Use W32API.
svn path=/trunk/; revision=15970
2005-06-17 11:40:11 +00:00
Filip Navara
d604caaaf3 Get rid of the prehistoric GNU Windows32 headers.
svn path=/trunk/; revision=15969
2005-06-17 11:29:07 +00:00
Filip Navara
14e5873c84 Do NOT include defines.h in .rc files.
svn path=/trunk/; revision=15968
2005-06-17 11:28:23 +00:00
Filip Navara
bd0ef4def4 Use W32API.
svn path=/trunk/; revision=15967
2005-06-17 11:22:47 +00:00
Filip Navara
aab0294f3b Use W32API.
svn path=/trunk/; revision=15966
2005-06-17 11:05:49 +00:00
Filip Navara
ab4dfd00f0 Don't include windows.h in drivers.
svn path=/trunk/; revision=15965
2005-06-17 10:54:34 +00:00
Filip Navara
3fb65d4597 - Use W32API.
- Fix some protoypes.

svn path=/trunk/; revision=15964
2005-06-17 10:43:58 +00:00
Filip Navara
19955a57e1 Fix declaration of AdvancedDocumentProperties[AW].
svn path=/trunk/; revision=15963
2005-06-17 10:43:16 +00:00
Thomas Bluemel
acfd0635dd implemented the TokenRestrictedSids information class for NtQueryInformationToken, however restricted SIDs are not yet supported!
svn path=/trunk/; revision=15962
2005-06-17 10:30:59 +00:00
Filip Navara
785eb54c6a Use W32API.
svn path=/trunk/; revision=15961
2005-06-17 10:15:21 +00:00
Filip Navara
37bfae8d86 Use W32API.
svn path=/trunk/; revision=15960
2005-06-17 09:57:53 +00:00
Filip Navara
ba98c65d7a - Declare IO_ERROR_LOG_MESSAGE.
- Define ERROR_LOG_LIMIT_SIZE and IO_ERROR_LOG_MESSAGE_HEADER_LENGTH.

svn path=/trunk/; revision=15959
2005-06-17 09:57:28 +00:00
Thomas Bluemel
f6e5d12f4c implemented IsTokenRestricted(), inspired by a patch to winehq by James Hawkins
svn path=/trunk/; revision=15958
2005-06-17 09:46:29 +00:00
Filip Navara
a50fde81ae Use W32API.
svn path=/trunk/; revision=15957
2005-06-17 09:46:21 +00:00
Filip Navara
204dc0088b Use W32API.
svn path=/trunk/; revision=15956
2005-06-17 09:46:03 +00:00
Filip Navara
826e4d001b Use W32API.
svn path=/trunk/; revision=15955
2005-06-17 09:45:42 +00:00
Filip Navara
99e07a1ddf Use W32API.
svn path=/trunk/; revision=15954
2005-06-17 08:12:20 +00:00
Filip Navara
138bbbaa3a Use W32API.
svn path=/trunk/; revision=15953
2005-06-17 08:08:58 +00:00
Filip Navara
05061cedaa Use W32API.
svn path=/trunk/; revision=15952
2005-06-17 08:05:58 +00:00
Filip Navara
63ac2d0f1f Cleanup the usage of W32API.
svn path=/trunk/; revision=15951
2005-06-17 08:02:05 +00:00
Filip Navara
754ccb0eb6 Use W32API.
svn path=/trunk/; revision=15950
2005-06-17 08:00:30 +00:00
Filip Navara
3814e88279 Use W32API.
svn path=/trunk/; revision=15949
2005-06-17 07:59:43 +00:00
Filip Navara
d4e71ef096 Use W32API.
svn path=/trunk/; revision=15948
2005-06-17 07:57:37 +00:00
Filip Navara
7ccf07aecc A bit of W32API friendliness...
svn path=/trunk/; revision=15947
2005-06-17 07:55:45 +00:00
Filip Navara
81405a8541 Use W32API.
svn path=/trunk/; revision=15946
2005-06-17 07:53:58 +00:00
Filip Navara
c893e787ea - Use standard TLS instead of custom TEB field.
- Use W32API.

svn path=/trunk/; revision=15945
2005-06-17 07:53:34 +00:00
Filip Navara
c7ccd70dbd Add definitions of ACCESS_MAX_MS_V2_ACE_TYPE, ACCESS_ALLOWED_COMPOUND_ACE_TYPE, ACCESS_MAX_MS_V3_ACE_TYPE, ACCESS_MIN_MS_OBJECT_ACE_TYPE, ACCESS_ALLOWED_OBJECT_ACE_TYPE, ACCESS_DENIED_OBJECT_ACE_TYPE, SYSTEM_AUDIT_OBJECT_ACE_TYPE, SYSTEM_ALARM_OBJECT_ACE_TYPE, ACCESS_MAX_MS_OBJECT_ACE_TYPE, ACCESS_MAX_MS_V4_ACE_TYPE, ACCESS_MAX_MS_ACE_TYPE, ACCESS_ALLOWED_CALLBACK_ACE_TYPE, ACCESS_DENIED_CALLBACK_ACE_TYPE, ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE, ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE, SYSTEM_AUDIT_CALLBACK_ACE_TYPE, SYSTEM_ALARM_CALLBACK_ACE_TYPE, SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE, SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE, ACCESS_MAX_MS_V5_ACE_TYPE, SID_MAX_SUB_AUTHORITIES, SID_RECOMMENDED_SUB_AUTHORITIES, SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_PRESENT, SE_DACL_DEFAULTED, SE_SACL_PRESENT, SE_SACL_DEFAULTED, SE_DACL_UNTRUSTED, SE_SERVER_SECURITY, SE_DACL_AUTO_INHERIT_REQ, SE_SACL_AUTO_INHERIT_REQ, SE_DACL_AUTO_INHERITED, SE_SACL_AUTO_INHERITED, SE_DACL_PROTECTED, SE_SACL_PROTECTED, SE_RM_CONTROL_VALID and SE_SELF_RELATIVE.
svn path=/trunk/; revision=15944
2005-06-17 07:16:01 +00:00
Filip Navara
59801357f9 - Declare POLICY_NOTIFICATION_INFORMATION_CLASS and SECURITY_LOGON_SESSION_DATA.
- Fix declaration of CRITICAL_SECTION and RTL_CRITICAL_SECTION.

svn path=/trunk/; revision=15943
2005-06-17 07:12:16 +00:00
Alex Ionescu
314e0eaf59 Fix bug in gate code
svn path=/trunk/; revision=15942
2005-06-17 00:13:44 +00:00
Alex Ionescu
c2167ebb58 Fix strpbrk
svn path=/trunk/; revision=15941
2005-06-17 00:13:10 +00:00
Gé van Geldorp
66c72376e1 Declare Guarded Mutex functions and export them
svn path=/trunk/; revision=15940
2005-06-16 22:15:43 +00:00
Hervé Poussineau
f104c62bd6 Add "depends" target for makefiles
svn path=/trunk/; revision=15939
2005-06-16 21:02:52 +00:00
James Tabor
11ae17704c Plugging in CallMsgFilter.
svn path=/trunk/; revision=15938
2005-06-16 20:47:47 +00:00
James Tabor
1284e1351f Pluged in CallMsgFilter.
svn path=/trunk/; revision=15937
2005-06-16 20:47:09 +00:00
Hervé Poussineau
192c84808f Use <ifnot property="ARCH" value="i386"> instead of <if property="ARCH" value="unknown">, because ARCH would never be defined to unknown
svn path=/trunk/; revision=15936
2005-06-16 20:46:48 +00:00
James Tabor
2054ea72e9 Pluged in CallMsgFilter, I tested this and no crashes on real hardware.
svn path=/trunk/; revision=15935
2005-06-16 20:46:39 +00:00
Hervé Poussineau
8f5dd38cdd Implement <ifnot>
svn path=/trunk/; revision=15934
2005-06-16 20:37:50 +00:00
Gé van Geldorp
2cc8819bc6 Fix warning
svn path=/trunk/; revision=15933
2005-06-16 09:25:51 +00:00
Hartmut Birr
f31239f089 Changed InterlockedIncrement and InterlockedDecrement to return the modified value.
svn path=/trunk/; revision=15932
2005-06-15 23:08:33 +00:00
Hartmut Birr
c8ba8dd860 Removed intrlck.c, because it is already in lib\rtl.
svn path=/trunk/; revision=15931
2005-06-15 23:00:10 +00:00
Hartmut Birr
3ab1c49a3e Removed strpbrk.c.
svn path=/trunk/; revision=15930
2005-06-15 22:52:03 +00:00
Hartmut Birr
251cbb167f Add an optimized version of strpbrk to the string library.
svn path=/trunk/; revision=15929
2005-06-15 22:47:12 +00:00
Hartmut Birr
60410fb891 Used the assembler source for the i386 architecture.
svn path=/trunk/; revision=15928
2005-06-15 22:39:03 +00:00
KJK::Hyperion
cba0f39ae7 No reason KiDoubleFaultHandler should return a value - in fact it doesn't return at all
svn path=/trunk/; revision=15927
2005-06-15 21:55:36 +00:00
Steven Edwards
f050a320ca Added new better tracert replacement by Ged Murphy
svn path=/trunk/; revision=15926
2005-06-15 20:24:31 +00:00
Steven Edwards
4345881c2a Use w32api
svn path=/trunk/; revision=15925
2005-06-15 20:05:54 +00:00
Steven Edwards
6dfaa9b3a5 some magic to make w32api happy when using a [arch]-linux compiler rather than mingw32
svn path=/trunk/; revision=15924
2005-06-15 19:45:28 +00:00
Maarten Bosma
87ee9dfafb delete .cvsignore
svn path=/trunk/; revision=15923
2005-06-15 17:51:54 +00:00
Maarten Bosma
84321058f9 removed rules.mak and outdated entries from readme.txt
svn path=/trunk/; revision=15922
2005-06-15 17:42:12 +00:00
Maarten Bosma
f30aac562d remove old makefile
svn path=/trunk/; revision=15921
2005-06-15 17:37:14 +00:00
Maarten Bosma
3bf9dce002 Created XML makefiles for rosapps. You need to checkout /rosapps in your /reactos folder to use it. This projects do not build: /lib/dflat32 and /welcome (I don't know if they did before). Winemine does not work. (but it builds) /test makefiles are not done yet.
svn path=/trunk/; revision=15920
2005-06-15 17:19:52 +00:00
Hervé Poussineau
0d5c780913 Add Green driver, that emulates a VT100 compatible server.
Input won't work as long as we don't have a kdbclass driver.Add stubs for IOCTL_USB_GET_NODE_CONNECTION_NAME, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION, IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION

svn path=/trunk/; revision=15919
2005-06-15 17:11:36 +00:00
KJK::Hyperion
390d16bed5 Removed empty directory
svn path=/trunk/; revision=15918
2005-06-14 22:08:13 +00:00
Filip Navara
9e9a326ead Add Nokia/Ericsson vitrual key codes.
svn path=/trunk/; revision=15917
2005-06-14 21:59:07 +00:00
Filip Navara
095faa8449 - Remove KeAttachProcess and KeDetachProcess prototypes from winddk.h.
- Remove non-public object manager stuff from W32API and ROS headers.

svn path=/trunk/; revision=15916
2005-06-14 20:41:49 +00:00
Filip Navara
a6b2363ea0 Use KeStackAttachProcess/KeUnstackDetachProcess instead of KeAttachProcess/KeDetachProcess.
svn path=/trunk/; revision=15915
2005-06-14 20:24:02 +00:00
Filip Navara
56f5461bff Revert r15906 change.
svn path=/trunk/; revision=15914
2005-06-14 18:39:12 +00:00
Gregor Anich
88e9416cb8 Fix compilation.
svn path=/trunk/; revision=15913
2005-06-14 18:33:59 +00:00
Hartmut Birr
83ff161361 It was a bad idea to manipulate the length of the given unicode string if we don't like the the starting back slash.
svn path=/trunk/; revision=15912
2005-06-14 18:33:02 +00:00
Alex Ionescu
d101bc4e2d Add an ARC Header for future purposes (PPC, ARM, etc, ARCLoader) and implement KeFindConfigurationNextEntry and fix the definition
svn path=/trunk/; revision=15911
2005-06-14 17:37:07 +00:00
Filip Navara
f4ff6e70b3 Accidently removed one line in the last commit ... gotta love this header hell. :/
svn path=/trunk/; revision=15910
2005-06-14 14:44:11 +00:00
Filip Navara
83210a64d6 A bit of W32API magic.
svn path=/trunk/; revision=15909
2005-06-14 13:50:23 +00:00
Filip Navara
17990a22f5 Fix compilation error (try 2).
svn path=/trunk/; revision=15908
2005-06-14 13:46:32 +00:00
Filip Navara
cd1a3da016 Fix compilation error.
svn path=/trunk/; revision=15907
2005-06-14 13:45:31 +00:00
Filip Navara
b2970c097e - Fix the declarations of PDRIVER_CANCEL, KeGetCurrentProcessorNumber and KPCR in ROS headers.
- Fix the declarations of KeGetCurrentProcessorNumber, PIO_QUERY_DEVICE_ROUTINE, THREAD_STATE, KPCR and KeAttachProcess in W32API headers.
- Remove KeInitializeApc, KEVENT_PAIR and TERMINATION_PORT declarations from W32API, they don't belong there.
- Correct the STDCALL order in callback declarations in winddk.h.

svn path=/trunk/; revision=15906
2005-06-14 13:10:40 +00:00
Hervé Poussineau
819d60094a Enumerate root hub connected to UHCI controller
Use Cromwell USB stack to initialize UHCI controller

svn path=/trunk/; revision=15905
2005-06-14 12:31:51 +00:00
Alex Ionescu
2e0ff75066 Remove excessive debugging messages used during testing
svn path=/trunk/; revision=15904
2005-06-14 03:35:23 +00:00
Alex Ionescu
28c50308c7 Fix OB Bug and port ObQueryNameString from my branch so Herve can get back to working on USB. Sorry for taking so long, hpoussin\!
svn path=/trunk/; revision=15903
2005-06-14 03:33:21 +00:00
Gé van Geldorp
9c3a32fd9e Re-apply r15878 as it wasn't the cause of the problems
svn path=/trunk/; revision=15902
2005-06-13 22:27:09 +00:00
Gé van Geldorp
08d5e5e7e5 We were changing the edi register, but not informing the compiler about this.
For certain optimization combinations, the compiler would assume edi was
unchanged. Fixed by adding %edi to the clobber list.

svn path=/trunk/; revision=15901
2005-06-13 22:24:28 +00:00
Hervé Poussineau
f5f855488d Handle DeviceId property
Change InstanceId to Serenum\Mouse

svn path=/trunk/; revision=15900
2005-06-13 21:51:42 +00:00
Hervé Poussineau
a189416191 Fix string returned by IoRegisterDeviceInterface()
svn path=/trunk/; revision=15899
2005-06-13 21:44:32 +00:00
Hervé Poussineau
d520f41934 Add registry entries related to USB hub driver
svn path=/trunk/; revision=15898
2005-06-13 20:51:07 +00:00
Hervé Poussineau
ed558f123b Silent some debug messages
svn path=/trunk/; revision=15897
2005-06-13 20:45:52 +00:00
Hervé Poussineau
925b767f99 Add usb hub driver. It is linked with cromwell usb stack
svn path=/trunk/; revision=15896
2005-06-13 20:41:59 +00:00
Hervé Poussineau
6b3ec8469e Disable some usb empty drivers. We will use thoses in drivers/usb/cromwell
svn path=/trunk/; revision=15895
2005-06-13 20:37:33 +00:00
KJK::Hyperion
f5b60bc69e longjmp should restore the stack pointer as it would be *after* setjmp returns. Since the PSEH implementation of setjmp is __stdcall, this value differs from the usual esp+4, because *after* return *two* doublewords are popped (return IP and parameter). Thanks to blight_ for reporting
svn path=/trunk/; revision=15894
2005-06-13 20:31:55 +00:00
Maarten Bosma
ca33e9fc4f set svn:eol-style native
svn path=/trunk/; revision=15893
2005-06-13 18:33:08 +00:00
Maarten Bosma
ab2a7524d0 remove empty dir
svn path=/trunk/; revision=15892
2005-06-13 18:09:27 +00:00
Maarten Bosma
9631980621 remove empty dir
svn path=/trunk/; revision=15891
2005-06-13 18:09:22 +00:00
Maarten Bosma
9038f375f7 remove empty dir
svn path=/trunk/; revision=15890
2005-06-13 18:09:16 +00:00
Maarten Bosma
c1d7682a91 remove empty dir
svn path=/trunk/; revision=15889
2005-06-13 18:09:11 +00:00
Maarten Bosma
c50ea61c80 remove empty dir
svn path=/trunk/; revision=15888
2005-06-13 18:09:05 +00:00
Maarten Bosma
d4e3987bad remove empty dir
svn path=/trunk/; revision=15887
2005-06-13 18:07:56 +00:00
Maarten Bosma
45c9cc8bde remove content of empty dir (cvsignore)
svn path=/trunk/; revision=15886
2005-06-13 18:06:30 +00:00
Gregor Anich
584e9b9488 Fix warnings in inline assembly (I hope this doesnt expose a GCC bug and thus break the build for others, using 3.4.2 myself and everything works)
svn path=/trunk/; revision=15884
2005-06-13 15:29:05 +00:00
KJK::Hyperion
e3502f710b did I miss a "the tree isn't supposed to build anymore" memo or what? fixes for compilation with GCC 3.3.3
svn path=/trunk/; revision=15883
2005-06-13 14:36:02 +00:00
Maarten Bosma
5347091d15 XML Makefiles
svn path=/trunk/; revision=15882
2005-06-13 13:21:34 +00:00
Magnus Olsen
0aec39dcbe revert back to 15869 for current change break 32 / 8 bpp for vbe drv, and vmware drv the mouse did not redaw some dialog box was wrong. and alot more
svn path=/trunk/; revision=15881
2005-06-13 02:02:21 +00:00
Magnus Olsen
99848068d0 32dib remove one of color fill optimizing until it can be fix for oarch=pentiun2 DBG=0 with vmware drv
svn path=/trunk/; revision=15880
2005-06-13 01:58:57 +00:00
Magnus Olsen
9d5a92b86b fix bug in color fill inline asm code. Did crash cirrus drv, vmware 5 drv and if the buffer was not align. Clean up inline asm code.
svn path=/trunk/; revision=15879
2005-06-12 19:23:40 +00:00
Gé van Geldorp
8ab10b3efd Clip lines totally outside the clip region
svn path=/trunk/; revision=15878
2005-06-12 19:06:38 +00:00
Hartmut Birr
f4732fef7d Print more informations on a BSOD by enabling the debug prints to the screen.
svn path=/trunk/; revision=15877
2005-06-12 16:20:10 +00:00
Casper Hornstrup
45a93411a7 Show execution time of tests
svn path=/trunk/; revision=15876
2005-06-12 15:33:34 +00:00
Martin Fuchs
4f0032f8d7 remove duplicate toolbar button
svn path=/trunk/; revision=15875
2005-06-12 14:09:39 +00:00
Gé van Geldorp
83804c9749 Allow logging of calls into display driver (disabled by default)
svn path=/trunk/; revision=15874
2005-06-12 13:11:36 +00:00
Martin Fuchs
53a8f66404 small adjustements:
- #ifdef for WINE specific menu item
- C style comment
- white space

svn path=/trunk/; revision=15873
2005-06-12 11:30:17 +00:00
Casper Hornstrup
ad1bdc040e Document well-known targets
svn path=/trunk/; revision=15872
2005-06-12 10:52:18 +00:00
Hartmut Birr
ad04a63867 Preinitialize the Provider to prevent from crashing if no sockets were given.
svn path=/trunk/; revision=15871
2005-06-12 10:33:22 +00:00
Hartmut Birr
95aa074b1e - Fixed the calculation of some offset values.
- Used the correct flag for testing of a bss section.

svn path=/trunk/; revision=15870
2005-06-12 10:25:49 +00:00
Hartmut Birr
b2f1b36fd9 - Fixed the inline assembler in DIB_16BPP_ColorFill.
- Calculated the color value outside of the loop in DIB_16BPP_ColorFill.

svn path=/trunk/; revision=15869
2005-06-12 10:23:04 +00:00
Casper Hornstrup
321c3545d8 Support module_depends target
svn path=/trunk/; revision=15868
2005-06-12 10:18:51 +00:00
Martin Fuchs
639193ca53 - standardize resource scripts: align code and remove tabs
- ifdef __WINE__ for ID_ABOUT_WINE

svn path=/trunk/; revision=15867
2005-06-12 10:14:37 +00:00
Casper Hornstrup
bfef768a76 Make test pass
svn path=/trunk/; revision=15866
2005-06-12 09:36:25 +00:00
Martin Fuchs
bef9eaff74 remove unnecessary paint code
svn path=/trunk/; revision=15865
2005-06-12 09:17:06 +00:00
Martin Fuchs
ed5cf2efc8 remove unsued compilation unit
svn path=/trunk/; revision=15864
2005-06-12 09:14:12 +00:00
Martin Fuchs
c25cc23eb8 remove unused variable
svn path=/trunk/; revision=15863
2005-06-12 09:13:45 +00:00
Aleksey Bragin
8addb6ae11 Fix pdo->fdo typo, causing serious errors, ending up driver unloadable at all.
svn path=/trunk/; revision=15862
2005-06-11 21:29:59 +00:00
Magnus Olsen
6eab0b40a0 fix fill color and hline asm code
thx tamlin to notice some mistake

svn path=/trunk/; revision=15861
2005-06-11 19:56:12 +00:00
Hervé Poussineau
03586e2534 Patch by Sylvain Petreolle <spetreolle@yahoo.fr>: Fix bug 646
- Remove duplicate dll entries in reactos.dff,
- Move some at their correct place.

svn path=/trunk/; revision=15860
2005-06-11 19:09:42 +00:00
Magnus Olsen
c1643db40b speed up 24bpp small fill and fill
svn path=/trunk/; revision=15859
2005-06-11 13:36:00 +00:00
Magnus Olsen
7c9de0d8d6 Speed up Fill and Small fill. for 16bpp
svn path=/trunk/; revision=15858
2005-06-11 12:13:28 +00:00
Magnus Olsen
c507c88f25 adding __volatile__ on all DIB32 inline asm to ensure it doesn't get modified when optimizations are enabled
Thx w3seek 

svn path=/trunk/; revision=15857
2005-06-11 10:19:33 +00:00
Magnus Olsen
1503cdc0b4 Fix align 4 problem with color fill and hline.
Now OARCH=pentium2 working with 32bpp


svn path=/trunk/; revision=15856
2005-06-11 09:53:14 +00:00
Hervé Poussineau
df3ceea77c Set svn:eol-style property to native
svn path=/trunk/; revision=15855
2005-06-10 22:54:11 +00:00
Alex Ionescu
2dc107e012 Support QEMU Hardware Acceleration
svn path=/trunk/; revision=15854
2005-06-10 21:46:16 +00:00
Hervé Poussineau
64bd0a6bd1 Add a pointer to the root hub PDO in the usb controller device extension
svn path=/trunk/; revision=15853
2005-06-10 21:25:55 +00:00
Aleksey Bragin
988bbc4f12 Add scrollbar to timezone selection comboboxes. Patch by unC0Rr.
svn path=/trunk/; revision=15852
2005-06-10 21:13:15 +00:00
Martin Fuchs
d92ffc0b93 Patch from WineHQ:
Mike McCormack <mike@codeweavers.com>
Fix more warnings.

svn path=/trunk/; revision=15851
2005-06-10 20:41:26 +00:00
Gé van Geldorp
15e83c5e04 Re-apply fix to dib16bpp and fix the root cause
svn path=/trunk/; revision=15850
2005-06-09 20:40:44 +00:00
Magnus Olsen
5ecd1f57d9 dib16_hline revert GvG change until some rewrite the asm code to handler the 4 align right. for now it does
the test 0x01,%%edi is wrong it must be test 0x03,%%edi
for not break cmd in 16bpp and other apps

svn path=/trunk/; revision=15849
2005-06-09 20:18:32 +00:00
Gé van Geldorp
bb18fc25e9 Speed up 24bpp fills
svn path=/trunk/; revision=15848
2005-06-09 19:04:32 +00:00
Magnus Olsen
ecb9480129 correct the spelling for some comment thx w3seek
svn path=/trunk/; revision=15847
2005-06-09 18:33:45 +00:00
Magnus Olsen
e4d12844dc fix a comment
svn path=/trunk/; revision=15846
2005-06-09 18:03:05 +00:00
Magnus Olsen
a89c7dcf3d fix a bug in hline for 16bpp it did not do Align to fullword boundary correct GvG did spot this lite bug. fix fill bug in 8bpp now it will boot agein thx waxdragon that did spot this problem.
svn path=/trunk/; revision=15845
2005-06-09 17:58:33 +00:00
James Tabor
ba8d788967 Added HcdInterfaceName from hpoussin new uhci devctrl.c.
svn path=/trunk/; revision=15844
2005-06-09 02:12:33 +00:00
James Tabor
26d0d00e72 Attached Linux device to Device Extension.
svn path=/trunk/; revision=15843
2005-06-09 02:01:06 +00:00
James Tabor
7240f0cf76 Fixing to start pnp of usb drivers.
svn path=/trunk/; revision=15842
2005-06-09 01:43:07 +00:00
Magnus Olsen
e87cc02785 add my self to CREDITS
svn path=/trunk/; revision=15841
2005-06-08 17:29:59 +00:00
Magnus Olsen
f0881728a7 Optimze DIB32_bitblt for both DGB=0 and DGB=1
Can not geting it faster with current c code


svn path=/trunk/; revision=15840
2005-06-08 16:28:41 +00:00
Gé van Geldorp
ec70aa71b0 Revert r15838 since it breaks the build
svn path=/trunk/; revision=15839
2005-06-07 23:11:35 +00:00
Gé van Geldorp
5fb6c9fc9c Add getnameinfoA/W
svn path=/trunk/; revision=15838
2005-06-07 22:04:54 +00:00
Filip Navara
e5541e23e6 Fix prototypes for non-GDI_DEBUG case.
svn path=/trunk/; revision=15837
2005-06-07 21:23:30 +00:00
Hartmut Birr
b494dd6e5e Changed back to the GPL.
svn path=/trunk/; revision=15836
2005-06-07 20:15:16 +00:00
Filip Navara
cb3ec720bd Fix a cut & paste mistake.
svn path=/trunk/; revision=15835
2005-06-07 20:10:16 +00:00
Filip Navara
7aea00d1d6 - Repair GDI handle debugging functionality.
- Fix locking in NtGdiGetTextFace.

svn path=/trunk/; revision=15834
2005-06-07 20:02:22 +00:00
Martin Fuchs
7a4b2f8d8f sync winefile resource wcripts with WINE and adjust INFO entries
svn path=/trunk/; revision=15833
2005-06-07 17:13:38 +00:00
Hartmut Birr
b4f774ec1e - Removed the process member from the memory area structure.
- Add the copyright notice and all programmers.

svn path=/trunk/; revision=15832
2005-06-07 17:07:34 +00:00
Filip Navara
cc0fc0d35c Implementation of DragDetect. Based on Wine code (C) 1993, 1994 Alexandre Julliard.
svn path=/trunk/; revision=15831
2005-06-07 16:54:15 +00:00
Filip Navara
4619446ed0 - Unlock GDI objects by pointer, not by handle.
- Fix a few invalid lock cases.
- Add support for shared GDI object locks and use it for locking surfaces.

svn path=/trunk/; revision=15830
2005-06-07 16:34:07 +00:00
Filip Navara
e7f345e0a2 Fix buffer size checks for IOCTL_VIDEO_SET_COLOR_REGISTERS.
svn path=/trunk/; revision=15829
2005-06-07 16:26:14 +00:00
Gregor Anich
d06d236296 Add 'l' suffix to shr in DIB_16BPP_VLine.
svn path=/trunk/; revision=15828
2005-06-07 15:13:14 +00:00
Gregor Anich
2b005b9bfa Remove a comment which i forgot to remove, oops.
svn path=/trunk/; revision=15827
2005-06-07 15:10:56 +00:00
Gregor Anich
85b03712d5 Assembly for DIB_16BPP_VLine, nearly no performance increase, but could be useful later anyway.
svn path=/trunk/; revision=15826
2005-06-07 15:09:02 +00:00
Thomas Bluemel
72448a5e50 use %lu instead of %d for unsigned formatting
svn path=/trunk/; revision=15825
2005-06-07 13:53:37 +00:00
Thomas Bluemel
1413f0bd4c delete obsolete folder
svn path=/trunk/; revision=15824
2005-06-07 13:51:58 +00:00
Eric Kohl
518bede98c Use #if 0 ... #endif to disable source code.
svn path=/trunk/; revision=15823
2005-06-06 20:39:25 +00:00
Eric Kohl
a344dd8f15 NtPlugPlayControl: Implement PLUGPLAY_GET_RELATED_DEVICE and PLUGPLAY_DEVICE_STATUS.
svn path=/trunk/; revision=15822
2005-06-06 20:31:56 +00:00
Hartmut Birr
700e2c8098 - Changed the calculation of the base address of an image section.
- Removed some unnecessary members from section object.  
- Changed the allocation of a section object back to paged pool.

svn path=/trunk/; revision=15821
2005-06-06 20:27:49 +00:00
Klemens Friedl
6193faf9cd cmd update:
* add 'help' command: list all available commands plus show a short description
* update english and german language resource files

svn path=/trunk/; revision=15820
2005-06-06 20:05:14 +00:00
Eric Kohl
794ac95666 Disable patch 15796 because it breaks the bootcd.
svn path=/trunk/; revision=15819
2005-06-06 19:34:36 +00:00
Hartmut Birr
5e938a6c68 Allocate the section object from non paged pool because the storage for a spin lock must be in non paged memory.
svn path=/trunk/; revision=15818
2005-06-05 23:07:51 +00:00
Hartmut Birr
9ea1665416 Fixed the clean rule.
svn path=/trunk/; revision=15817
2005-06-05 21:30:41 +00:00
Hartmut Birr
1272e9ca67 Revert my changes from rev 15805.
svn path=/trunk/; revision=15816
2005-06-05 21:24:36 +00:00
Hartmut Birr
f97e4e54cd Allocate the section segments from non paged pool because the storage for fast mutex must be in non paged memory.
svn path=/trunk/; revision=15815
2005-06-05 21:12:30 +00:00
Gé van Geldorp
be1ac79fa0 Implement /LOADSYMBOLS and /NOLOADSYMBOLS command line option
Note to self: send shipping address for coffee mug to Alex

svn path=/trunk/; revision=15814
2005-06-05 20:56:14 +00:00
Hervé Poussineau
170980ae6f Include French resources in explorer
svn path=/trunk/; revision=15813
2005-06-05 20:05:56 +00:00
Magnus Olsen
3ed044e92e more optimze of bitblt for dib32
svn path=/trunk/; revision=15812
2005-06-05 18:15:08 +00:00
Casper Hornstrup
012786bd8f Clean proxy makefiles on 'make clean'
svn path=/trunk/; revision=15810
2005-06-05 16:47:42 +00:00
Casper Hornstrup
5c0d2bc84c Remove old makefiles
svn path=/trunk/; revision=15809
2005-06-05 16:32:33 +00:00
Casper Hornstrup
2163a01133 Generate proxy makefiles in output tree.
svn path=/trunk/; revision=15808
2005-06-05 15:59:18 +00:00
James Tabor
4c7bbd9c39 Adding symbolic link to USBFDO.
svn path=/trunk/; revision=15807
2005-06-05 15:50:55 +00:00
Hartmut Birr
34fea9606b Forgot this file.
Make the bochs debug output in the very early boot phase available, if AUTO_ENABLE_BOCHS is defined.

svn path=/trunk/; revision=15806
2005-06-05 14:03:55 +00:00
Hartmut Birr
09b3ff1ebb Don't lock the kernel address space while solving faults from the paged pool.
It is possible, that someone try to access memory from paged pool 
while the kernel address space is already locked.

svn path=/trunk/; revision=15805
2005-06-05 14:01:58 +00:00
Casper Hornstrup
00457dbaa6 Document rbuild flags.
svn path=/trunk/; revision=15804
2005-06-05 12:53:22 +00:00
Martin Fuchs
ef499ee12a refresh window content after context menu popups only if any command has been executed
svn path=/trunk/; revision=15803
2005-06-05 12:20:07 +00:00
Casper Hornstrup
dba8d6b88a Correct dependencies for 'make <module>_install'
svn path=/trunk/; revision=15802
2005-06-05 12:08:39 +00:00
Casper Hornstrup
1aa91e26e5 * Support enabling/disabling modules depending on configuration.
* Enable halup for MP=0 configuration and halmp for MP=1 configuration.


svn path=/trunk/; revision=15801
2005-06-05 11:22:16 +00:00
Gé van Geldorp
34ef0d66de Use standard debug macros
svn path=/trunk/; revision=15800
2005-06-05 11:05:47 +00:00
Gé van Geldorp
0d7ebb711c Lucio Diaz-Flores Varela <reactos_translate@yahoo.es>
Add Spanish translation

svn path=/trunk/; revision=15799
2005-06-05 08:33:52 +00:00
James Tabor
a104816de4 Fixed Interface.
svn path=/trunk/; revision=15798
2005-06-05 00:40:40 +00:00
Eric Kohl
355593bafa - Create device instance key for root device node.
- Add DeviceReference value for each non-root device node.

svn path=/trunk/; revision=15796
2005-06-04 22:55:58 +00:00
Aleksey Bragin
607f793fc0 Fix a few critical typos/mistakes (like interruptvector/interruptlevel), stdcall for thread's func, etc. Also added some "hacks" into hub's thread, but at least it leads to first steps to device enumeration.
Driver (OHCI) bugchecks on my_pci_pool_allocation now (when trying to send URB).

svn path=/trunk/; revision=15795
2005-06-04 21:35:07 +00:00
Alex Ionescu
2fb48b3787 Fix filip's fixme and alex's fixme (ie: make IRP cancellation work properly). This should appease Hartmut even more =).
svn path=/trunk/; revision=15794
2005-06-04 21:07:00 +00:00
Martin Fuchs
14245cb4ed german resource for property dialog
svn path=/trunk/; revision=15793
2005-06-04 20:48:51 +00:00
Martin Fuchs
9dafeab3da sync winefile's header between WINE and ReactOS
svn path=/trunk/; revision=15792
2005-06-04 20:37:15 +00:00
Filip Navara
4b55dd45ab Correctly handle NOT operator in window style definitions.
svn path=/trunk/; revision=15788
2005-06-04 19:44:50 +00:00
Klemens Friedl
f40c4fef66 add property page winapi (not finished, I will implement it)
svn path=/trunk/; revision=15787
2005-06-04 19:21:15 +00:00
Magnus Olsen
633fbd38c8 fix head so it compile agein
svn path=/trunk/; revision=15786
2005-06-04 19:11:11 +00:00
Magnus Olsen
de07d08907 sorry revert to 15772
svn path=/trunk/; revision=15777
2005-06-04 18:43:39 +00:00
Magnus Olsen
33798a8e08 dib32 more speed optimze
svn path=/trunk/; revision=15774
2005-06-04 17:36:59 +00:00
Magnus Olsen
daaeafc22b small optimze and bug fix optimze color fill for DIB32_BltBit
svn path=/trunk/; revision=15772
2005-06-04 16:09:39 +00:00
Alex Ionescu
59b2cea3cd Sorry I was errm a bit...dizzy
svn path=/trunk/; revision=15771
2005-06-04 13:38:48 +00:00
Alex Ionescu
fd884b9ca2 Fix HEader
svn path=/trunk/; revision=15770
2005-06-04 13:24:50 +00:00
Alex Ionescu
e24313d28a Optimized DstInvert32
svn path=/trunk/; revision=15769
2005-06-04 13:20:34 +00:00
Hartmut Birr
e13bb66f6e Make the bochs debug output in the very early boot phase available, if AUTO_ENABLE_BOCHS is defined.
svn path=/trunk/; revision=15768
2005-06-04 10:05:20 +00:00
Alex Ionescu
651c6eedd3 Add inbv header, stub InvbDisplayString, fix BSOD to always show on screen like it should, make bugcheck macros show the bugcheck data in the debug output. I hope this appeases Hartmut a bit =)
svn path=/trunk/; revision=15763
2005-06-04 00:25:04 +00:00
Magnus Olsen
9f03cb709d more optimze of blt. icon draw lite faster
svn path=/trunk/; revision=15762
2005-06-03 23:21:21 +00:00
Hervé Poussineau
bf82efbfa5 Don't define asm macros that are not used
svn path=/trunk/; revision=15761
2005-06-03 22:44:38 +00:00
Gé van Geldorp
238b5dae79 Fix DBG := 0 build
svn path=/trunk/; revision=15760
2005-06-03 21:18:09 +00:00
Martin Fuchs
44917b7007 remove resrc1.h
svn path=/trunk/; revision=15759
2005-06-03 19:54:52 +00:00
Martin Fuchs
4a13ec527a split the big explorer resource file into smaller language specific rescource scripts
svn path=/trunk/; revision=15758
2005-06-03 19:36:03 +00:00
Magnus Olsen
1ec0b9da80 sorry foregt test one optimze
remove it until futer

svn path=/trunk/; revision=15757
2005-06-03 19:11:10 +00:00
Magnus Olsen
bf66d82efc optimze for bitblt dib32bpp.c
NOTSRCERASE, DSTINVERT
you can gain more speed from these

svn path=/trunk/; revision=15756
2005-06-03 18:57:53 +00:00
Klemens Friedl
3c262aeb05 update resource file (convert linux file to windows linebreak-compatible)
svn path=/trunk/; revision=15755
2005-06-03 18:33:15 +00:00
Klemens Friedl
c46d9a027b Add german language resource file
svn path=/trunk/; revision=15754
2005-06-03 18:23:18 +00:00
Klemens Friedl
a41298140f Add german language resource to the ReactOS Command Processor
(not completely finished, I will update it as soon as possible)

svn path=/trunk/; revision=15753
2005-06-03 18:21:50 +00:00
Maarten Bosma
5fd1b3d346 Some new features like Login, Config.h and Idle message
svn path=/trunk/; revision=15752
2005-06-03 17:28:53 +00:00
Hervé Poussineau
525d26d031 Wait the opening of mouclass device to connect the underlying mouse port driver
svn path=/trunk/; revision=15751
2005-06-03 17:09:47 +00:00
Magnus Olsen
5a2cbdf365 bitblt srcpy optimze it can be more optimze
svn path=/trunk/; revision=15750
2005-06-03 16:57:55 +00:00
Hervé Poussineau
47418050f9 Save DriverObject pointer to device extension
Use INTERFACE_TYPE type instead of ULONG
Use OBJ_KERNEL_HANDLE when opening \Device\PhysicalMemory

svn path=/trunk/; revision=15749
2005-06-03 16:56:27 +00:00
Hartmut Birr
2bb29cba04 Fixed the compiling with DBG set to 1.
svn path=/trunk/; revision=15748
2005-06-03 16:04:40 +00:00
Magnus Olsen
0bbffbfe78 activate 32 to 32 bitblt code
svn path=/trunk/; revision=15747
2005-06-03 12:30:09 +00:00
Hervé Poussineau
8c8bc52df8 Delete unneeded makefile
svn path=/trunk/; revision=15746
2005-06-03 12:03:44 +00:00
Gregor Anich
e631ea01ae DIB_32BPP_BitBlt: Fix ROP4_SRCCOPY case for 32bpp.
This file is ugly!

svn path=/trunk/; revision=15745
2005-06-03 01:45:26 +00:00
Magnus Olsen
f240bd9f61 blt fill did broke winquake fix it now.
svn path=/trunk/; revision=15744
2005-06-03 01:18:02 +00:00
Magnus Olsen
253b2e8c8a thx agein blight and alex.
we got alot faster blt for source copy for 
32bpp to 32bpp now.

svn path=/trunk/; revision=15743
2005-06-03 00:35:31 +00:00
Magnus Olsen
848d499f3d sorry wrong optimze for black and white fixing the start menu
svn path=/trunk/; revision=15742
2005-06-03 00:10:18 +00:00
Martin Fuchs
5416ad8915 Sync from Wine - Henning Gerhardt <henning.gerhardt@web.de>: Update German resource files
svn path=/trunk/; revision=15741
2005-06-02 22:14:53 +00:00
Martin Fuchs
d0551f0760 convert info strings to UTF-16
svn path=/trunk/; revision=15740
2005-06-02 22:09:06 +00:00
Martin Fuchs
9719715092 implemented file properties dialog (partly based on Rob D.'s winfile code)
svn path=/trunk/; revision=15739
2005-06-02 21:39:00 +00:00
Martin Fuchs
dcf3800a39 fix column headers
svn path=/trunk/; revision=15738
2005-06-02 21:32:21 +00:00
Aleksey Bragin
c7f2fa3f15 First version of Explorer's translation into Russian. Done by Dmitry Philippov, checked by me, DarkHobbit and others.
But still needs extensive checking.

svn path=/trunk/; revision=15737
2005-06-02 21:09:29 +00:00
Aleksey Bragin
ab4e0e3543 Changed dialog's size, and sizes of its elements, so russian translation looks nice in it.
By M. Zvyozdochkin.

svn path=/trunk/; revision=15736
2005-06-02 20:47:15 +00:00
Magnus Olsen
34b6e5c4e2 sorry did foregt ;
svn path=/trunk/; revision=15735
2005-06-02 20:47:11 +00:00
Aleksey Bragin
65c31ced72 Fix grammar typo (notinserted -> not inserted) in russian translation.
By M. Zvyozdochkin.

svn path=/trunk/; revision=15734
2005-06-02 20:38:18 +00:00
Steven Edwards
fbb262fc76 add cabinet.dll to the cd
svn path=/trunk/; revision=15733
2005-06-02 20:14:23 +00:00
Magnus Olsen
bd38382acb lite Optimze only for dib32bpp.c
thanks Blight for the inline asm for hline 
bitblt have got optimze for fill black and white color
only. more will come

svn path=/trunk/; revision=15732
2005-06-02 20:12:58 +00:00
Gregor Anich
83c66bb1c1 Make formatting of half-verbose output the same for linux as for windows (add quotes to the echos)
svn path=/trunk/; revision=15731
2005-06-02 19:56:12 +00:00
Emanuele Aliberti
4276c73ec9 svn propset
svn path=/trunk/; revision=15730
2005-06-02 13:20:04 +00:00
Emanuele Aliberti
da87b75712 SM/CSR: move win32k.sys loading from the SM to the Win32 user mode server.
svn path=/trunk/; revision=15729
2005-06-02 13:17:37 +00:00
Emanuele Aliberti
114fa63aa5 Correct midimap location.
svn path=/trunk/; revision=15728
2005-06-02 13:10:57 +00:00
Alex Ionescu
2565867874 Fix midimap/wavemap build
svn path=/trunk/; revision=15727
2005-06-02 03:21:17 +00:00
Steven Edwards
278d41accc this was moved
svn path=/trunk/; revision=15726
2005-06-02 02:12:48 +00:00
James Tabor
13d5ffb301 Removed makefiles.
svn path=/trunk/; revision=15725
2005-06-02 01:37:38 +00:00
James Tabor
bdcd967755 Fixed xml problem.
svn path=/trunk/; revision=15724
2005-06-02 01:36:20 +00:00
James Tabor
59a36a978f Fixed xml problem.
svn path=/trunk/; revision=15723
2005-06-02 01:36:07 +00:00
Hervé Poussineau
c5bcf76042 Don't close port if opening failed
svn path=/trunk/; revision=15722
2005-06-01 23:09:36 +00:00
Eric Kohl
793415253c - Start the logging thread from ServiceMain.
- Move UNICODE definition to the configuration file.
- Code cleanup.

svn path=/trunk/; revision=15721
2005-06-01 21:57:52 +00:00
James Tabor
372172fd93 Adding Cromwell to usb.
svn path=/trunk/; revision=15720
2005-06-01 21:55:36 +00:00
James Tabor
e8d9ee409c Adding Cromwell to usb.
svn path=/trunk/; revision=15719
2005-06-01 21:55:09 +00:00
Eric Kohl
8ebdfa0f0d Build the UNICODE version of the eventlog service.
svn path=/trunk/; revision=15718
2005-06-01 19:43:32 +00:00
Thomas Bluemel
592490d2ae fixed warnings
svn path=/trunk/; revision=15717
2005-06-01 19:01:12 +00:00
Magnus Olsen
1983bc6012 small optimze for StretchBlt
Thanks Alex for the idea with neg for statement
it is still a ref implemnet and have some limits


svn path=/trunk/; revision=15716
2005-06-01 18:11:26 +00:00
Casper Hornstrup
0e6919a8c0 Build with MP=1
svn path=/trunk/; revision=15715
2005-06-01 17:28:51 +00:00
Casper Hornstrup
2786a429ac Remove unneded file
svn path=/trunk/; revision=15714
2005-06-01 17:27:55 +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
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
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
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
Casper Hornstrup
cb0e7b1029 Build sm
svn path=/branches/xmlbuildsystem/; revision=15371
2005-05-17 06:17:35 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Alex Ionescu
9311f8ddc4 Fix some Rtl Prototype inconsistencies, more are in ntifs/winddk but i have fixed those in my header branch for when ntoskrnl will use them.
svn path=/trunk/; revision=12671
2004-12-31 21:31:39 +00:00
Alex Ionescu
1464aa0ecb Remove generated file
svn path=/trunk/; revision=12670
2004-12-31 21:26:43 +00:00
Alex Ionescu
73e868d565 Removed HEAP_NO_VALLOC from Heap Manager because the flag is redunant. Removed Version Differentation in epsapi because it's only meant to run on ROS, and we decide what to emulate. KJK agrees.
svn path=/trunk/; revision=12669
2004-12-31 20:05:16 +00:00
Art Yerkes
438aa3123b Avoid including dep rules if the previous makefile had an empty dep set,
because -include can't tolerate zero include files.

svn path=/trunk/; revision=12660
2004-12-31 19:38:47 +00:00
Alex Ionescu
9274918700 Changed CVS tag to SVN for buildno
svn path=/trunk/; revision=12652
2004-12-31 19:18:23 +00:00
Gé van Geldorp
97b9077773 Update status
svn path=/trunk/; revision=12651
2004-12-31 17:10:32 +00:00
Gé van Geldorp
f68f38c2cc Add svn:ignore properties back
svn path=/trunk/; revision=12650
2004-12-31 17:08:14 +00:00
Gé van Geldorp
15b937dfec Import and merge Wine-20041201
svn path=/trunk/; revision=12642
2004-12-31 16:48:25 +00:00
Gé van Geldorp
0cfb700271 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12641
2004-12-31 16:44:51 +00:00
Gé van Geldorp
5a0eafb788 Import and merge Wine-20041201
svn path=/trunk/; revision=12637
2004-12-31 16:30:04 +00:00
Gé van Geldorp
5e732eb747 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12636
2004-12-31 16:29:21 +00:00
Gé van Geldorp
449ae7cef2 Import and merge Wine-20041201
svn path=/trunk/; revision=12628
2004-12-31 16:21:45 +00:00
Gé van Geldorp
552bbfd1a5 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12625
2004-12-31 16:20:30 +00:00
Gé van Geldorp
c57663f076 Import and merge Wine-20041201
svn path=/trunk/; revision=12613
2004-12-31 16:12:23 +00:00
Gé van Geldorp
11e2ec38d3 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12609
2004-12-31 16:10:48 +00:00
Gé van Geldorp
1b515d5749 Import and merge Wine-20041201
svn path=/trunk/; revision=12603
2004-12-31 16:07:59 +00:00
Gé van Geldorp
dc540e8946 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12602
2004-12-31 16:06:52 +00:00
Gé van Geldorp
038eebbf4e Import and merge Wine-20041201
svn path=/trunk/; revision=12599
2004-12-31 16:00:23 +00:00
Gé van Geldorp
0004a79f81 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12598
2004-12-31 15:57:39 +00:00
Gé van Geldorp
995dc47fd0 Import and merge Wine-20041201
svn path=/trunk/; revision=12595
2004-12-31 15:52:05 +00:00
Gé van Geldorp
b622dd0602 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12594
2004-12-31 15:50:08 +00:00
Gé van Geldorp
5bcd5409f3 Import and merge Wine-20041201
svn path=/trunk/; revision=12591
2004-12-31 15:44:47 +00:00
Gé van Geldorp
231d02b6af Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12590
2004-12-31 15:43:49 +00:00
Gé van Geldorp
0069d808c0 Import and merge Wine-20041201
svn path=/trunk/; revision=12587
2004-12-31 15:41:00 +00:00
Gé van Geldorp
9bc23e307d Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12586
2004-12-31 15:39:51 +00:00
Gé van Geldorp
d2b43c9093 Import and merge Wine-20041201
svn path=/trunk/; revision=12583
2004-12-31 15:35:07 +00:00
Gé van Geldorp
448e644f09 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12582
2004-12-31 15:34:15 +00:00
Gé van Geldorp
d8a1cb88e7 Import and merge Wine-20041201
svn path=/trunk/; revision=12579
2004-12-31 15:28:42 +00:00
Gé van Geldorp
eaf65abccd Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12578
2004-12-31 15:27:32 +00:00
Gé van Geldorp
c270c6db34 Import and merge Wine-20041201
svn path=/trunk/; revision=12575
2004-12-31 15:20:48 +00:00
Gé van Geldorp
53af5ece75 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12574
2004-12-31 15:19:40 +00:00
Gé van Geldorp
da5c413758 Import and merge Wine-20041201
svn path=/trunk/; revision=12569
2004-12-31 15:11:31 +00:00
Gé van Geldorp
412382b514 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12567
2004-12-31 15:10:21 +00:00
Gé van Geldorp
c606eeb39a Import and merge Wine-20041201
svn path=/trunk/; revision=12551
2004-12-31 15:06:50 +00:00
Gé van Geldorp
329aa380dd Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12550
2004-12-31 15:05:54 +00:00
Gé van Geldorp
811db616d2 Import and merge Wine-20041201
svn path=/trunk/; revision=12533
2004-12-31 15:01:00 +00:00
Gé van Geldorp
3d47600ac9 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12528
2004-12-31 15:00:01 +00:00
Gé van Geldorp
7b0b16d102 Import and merge Wine-20041201
svn path=/trunk/; revision=12507
2004-12-31 14:52:07 +00:00
Gé van Geldorp
672316dd13 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12506
2004-12-31 14:50:49 +00:00
Gé van Geldorp
13db281fa1 Import and merge Wine-20041201
svn path=/trunk/; revision=12496
2004-12-31 14:46:26 +00:00
Gé van Geldorp
0b58caa931 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12492
2004-12-31 14:43:15 +00:00
Gé van Geldorp
7019e45c1e Import and merge Wine-20041201
svn path=/trunk/; revision=12486
2004-12-31 14:38:10 +00:00
Gé van Geldorp
560189fa51 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12485
2004-12-31 14:36:08 +00:00
Gé van Geldorp
e0004d8405 Import and merge Wine-20041201
svn path=/trunk/; revision=12470
2004-12-31 14:19:43 +00:00
Gé van Geldorp
2e2a9d4897 Need to remove existing files before doing vendor import
svn path=/trunk/; revision=12465
2004-12-31 14:17:57 +00:00
Gé van Geldorp
6b36db792e Add back missing files
svn path=/trunk/; revision=12440
2004-12-31 14:03:51 +00:00
Gé van Geldorp
12ee80de00 Merge Wine-20041201
svn path=/trunk/; revision=12436
2004-12-31 14:01:01 +00:00
Gé van Geldorp
cd7253e298 Try to fix import mess
svn path=/trunk/; revision=12433
2004-12-31 13:58:48 +00:00
Gé van Geldorp
6e2fe87e5c Import of Wine-20041201
svn path=/trunk/; revision=12426
2004-12-31 13:47:13 +00:00
Gé van Geldorp
f8179ef1d9 Need to delete before doing initial vendor import
svn path=/trunk/; revision=12425
2004-12-31 13:45:51 +00:00
Casper Hornstrup
8fabf8b0ad Remove .cvsignore files.
svn path=/trunk/; revision=12417
2004-12-31 12:29:26 +00:00
Casper Hornstrup
3a156b0bac Remove ChangeLog
svn path=/trunk/; revision=12414
2004-12-31 11:38:20 +00:00
Casper Hornstrup
2ea5bbad67 Fix building dbghelp.dll on Windows.
Patch by Filip Navara (xnavara@volny.cz)

svn path=/trunk/; revision=12412
2004-12-30 20:24:20 +00:00
Alex Ionescu
88bb3cec55 Added dbghelp.dll to bootcd
svn path=/trunk/; revision=12411
2004-12-30 18:56:40 +00:00
Alex Ionescu
2c31701a8c Added dbghelp to build because it builds for now.
svn path=/trunk/; revision=12410
2004-12-30 18:31:43 +00:00
Alex Ionescu
ac1c6873a1 Added SEH support to NtReadVirtualMemory. Allows OllyDbg to load (and probably a load of other applications too).
svn path=/trunk/; revision=12409
2004-12-30 18:30:44 +00:00
Alex Ionescu
88454ea69a Implemented:
ExSetResourceOwnerPointer, FsRtlDissectDbcs, FsRtlDoesDbcsContainWildCards, FsRtlAcquireFileExclusive, FsRtlReleaseFile, FsRtlGetNextMcbEntry, FsRtlLookupLastMcbEntry, FsRtlLookupMcbEntry, FsRtlRemoveMcbEntry, FsRtlIncrementCcFastReadResourceMiss, FsRtlIncrementCcFastReadNotPossible, FsRtlIncrementCcFastReadWait, FsRtlIncrementCcFastReadNoWait , FsRtlAreNamesEqual, FsRtlDoesNameContainWildCards, IoCreateDriver, IoDeleteDriver

Thanks to Filip for reviewing some of these.

svn path=/trunk/; revision=12408
2004-12-30 18:30:05 +00:00
Alex Ionescu
b3ba03af69 Make dbghelp build. Very buggy, very wine-ized, haven't looked much at the code yet, work in progress for my upcoming Debug API support.
svn path=/trunk/; revision=12407
2004-12-30 18:24:19 +00:00
Eric Kohl
216311551a - Use ShareAccess FILE_SHARE_READ | FILE_SHARE_WRITE to indicate passive mode for client end pipes.
svn path=/trunk/; revision=12406
2004-12-30 16:15:46 +00:00
Royce Mitchell III
78c79c31e7 msvc6 and gcc4 support
svn path=/trunk/; revision=12405
2004-12-30 16:02:12 +00:00
Gé van Geldorp
365dff816f tmHeight calculation
svn path=/trunk/; revision=12404
2004-12-30 15:15:01 +00:00
Filip Navara
d673e21b8c Fix by WaxDragon: Pass the Metric parameter from RouterCreateRoute to RouterAddRoute. This only needs to be hard-coded in *one* place.
svn path=/trunk/; revision=12403
2004-12-30 13:54:21 +00:00
Eric Kohl
4801e8cc23 Use a new passive pipe state (0) to ensure that client ends don't connect to server ends in calls to WaitNamed Pipe().
svn path=/trunk/; revision=12402
2004-12-30 12:34:27 +00:00
KJK::Hyperion
da6d4e37b3 Disable debug messages
svn path=/trunk/; revision=12401
2004-12-30 08:13:00 +00:00
KJK::Hyperion
6948c64efb ELF_support, welcome to HEAD! (just in time for the freeze, too!)
svn path=/trunk/; revision=12400
2004-12-30 08:05:12 +00:00
KJK::Hyperion
ca61e32c5c The right header to include is <pseh.h>
svn path=/trunk/; revision=12399
2004-12-30 06:55:18 +00:00
KJK::Hyperion
395ae7d908 - PSEH changes imported in the main tree
- initial (dead, disabled) import of ELF support

svn path=/trunk/; revision=12398
2004-12-30 05:59:11 +00:00
Filip Navara
269d17ca59 - Fix prototype of NtGdiExtCreatePen.
svn path=/trunk/; revision=12396
2004-12-30 04:11:19 +00:00
Filip Navara
c70497e059 I accidently removed objects/metafile.o from the makefile...adding back.
svn path=/trunk/; revision=12395
2004-12-30 03:42:03 +00:00
Filip Navara
ead9e85bda - Reimplementation of CreateCursor (now the correct way).
- Various small fixes in the cursors/icon implementation.
- Print the message about InSendMessage being unimplemented only once (per process).

svn path=/trunk/; revision=12394
2004-12-30 02:32:26 +00:00
Filip Navara
a0d295de59 - Move implemented functions from stubs[aw].c to appropriate files.
- Replace GDI functions that were just calling NtGdi functions with forwarders in the .def file.
- Port GetTextFaceA from Wine.

svn path=/trunk/; revision=12393
2004-12-30 02:32:24 +00:00
Filip Navara
1cbf5899cf - Use pvScan0 instead of pvBits as the first scan line in AlphaBltMask.
- Fix setting of icon size in NtUserCreateCursorIconHandle for icons with boths color and mask bitmaps.
- Fix size check in NtGdiSetBitmapBits.
- Don't flip images in BITMAPOBJ_CopyBitmap if we're passed a top-down bitmap.
- IntSetDIBits shouldn't just silently ignore the ScanLines and StartScan parameters.
- Hack in place of NtGdiExtCreatePen implementation.

svn path=/trunk/; revision=12392
2004-12-30 02:32:19 +00:00
Gunnar Dalsnes
c97559f3c5 filelock.c:
-general cleanup
-fix signed -> unsigned comparsion
-allow zero length unlocks to complete with success
-makes some more wine reg. tests pass
ntdef.h: add macros LIST_FOR_EACH and LIST_FOR_EACH_SAFE

svn path=/trunk/; revision=12391
2004-12-30 02:30:40 +00:00
Thomas Bluemel
f5e28a77d1 very beginning of a reactos volume control application, not really usable yet
svn path=/trunk/; revision=12389
2004-12-29 22:37:14 +00:00
Gé van Geldorp
13b05d6081 Fix crash when closing unconnected socket
svn path=/trunk/; revision=12388
2004-12-29 21:44:44 +00:00
Gé van Geldorp
cffcbe1d74 Generate timer messages instead of queueing them
svn path=/trunk/; revision=12387
2004-12-29 19:55:01 +00:00
Gé van Geldorp
3149ec5ad0 Fix rosapps build
svn path=/trunk/; revision=12385
2004-12-29 00:31:45 +00:00
Gé van Geldorp
1d1a9c5708 Minor version number update because of xbox support
svn path=/trunk/; revision=12384
2004-12-28 23:59:14 +00:00
Filip Navara
a69f115882 - Implement connection-less Connect and Send.
svn path=/trunk/; revision=12383
2004-12-28 17:05:19 +00:00
Gé van Geldorp
5398292e64 Call TdiReceive when local buffer is empty
svn path=/trunk/; revision=12382
2004-12-28 16:53:26 +00:00
Eric Kohl
1b7ee37237 Move 'Command Prompt' link creation from setup.exe to syssetup.dll.
svn path=/trunk/; revision=12381
2004-12-28 14:41:46 +00:00
Eric Kohl
9af695bf7b Implement CopyProfileDirectoryA/W.
svn path=/trunk/; revision=12380
2004-12-28 13:30:18 +00:00
Thomas Bluemel
59951cd18f don't allocate movable memory and use the returned handle as a pointer, allocate fixed memory instead
svn path=/trunk/; revision=12379
2004-12-28 13:11:02 +00:00
Filip Navara
3ad6d76cf9 - Don't try to free uninitialized pointer in error case.
svn path=/trunk/; revision=12378
2004-12-28 12:18:08 +00:00
Filip Navara
be70ea04aa - Don't continue if WarmSocketForConnection fails.
svn path=/trunk/; revision=12377
2004-12-28 11:41:29 +00:00
Filip Navara
a7c62fa529 - Fix WSPSelect.
- Partial implementation of WSPGetSockOpt.

svn path=/trunk/; revision=12376
2004-12-28 11:39:05 +00:00
Gé van Geldorp
27679de8f1 Implement ToAscii() and ToAsciiEx()
svn path=/trunk/; revision=12375
2004-12-28 08:58:35 +00:00
Gé van Geldorp
430c468657 Don't return characters is key is up
svn path=/trunk/; revision=12374
2004-12-28 08:50:10 +00:00
Gé van Geldorp
c8bcc7b2c8 Set transition state bit in WM_KEY messages
svn path=/trunk/; revision=12373
2004-12-28 08:49:06 +00:00
Alex Ionescu
190c2b5fc1 Fully support AsyncSelect by re-enabling events. Also, FD_CONNECT stuff isn't quite right, I need to investigate more.
svn path=/trunk/; revision=12372
2004-12-27 21:18:07 +00:00
Filip Navara
dc88a45c29 - Minor fixes to get Wine NTDLL environment tests pass.
svn path=/trunk/; revision=12371
2004-12-27 20:43:42 +00:00
Gé van Geldorp
af72a293ff Import libs now have a "lib" prefix
svn path=/trunk/; revision=12370
2004-12-27 20:09:57 +00:00
Gé van Geldorp
befed0390b Consolidate filling of TEXTMETRICS to a single location.
svn path=/trunk/; revision=12369
2004-12-27 20:06:55 +00:00
Art Yerkes
8bd8d19886 Fix by WaxDragon: don't use before initialize.
svn path=/trunk/; revision=12368
2004-12-27 16:50:56 +00:00
Filip Navara
f5e5ae6874 - Implement MsgWaitForMultipleObjects.
svn path=/trunk/; revision=12367
2004-12-27 16:48:29 +00:00
Filip Navara
f87aca3585 - Set last error in CreateDIBSection.
svn path=/trunk/; revision=12366
2004-12-27 16:47:02 +00:00
Filip Navara
7d8d83ff01 - BitmapFormat should handle BI_BITFIELDS compression type.
svn path=/trunk/; revision=12365
2004-12-27 16:45:19 +00:00
Filip Navara
5848acdc90 - Implement _onexit.
- Port __dllonexit from Wine.
- Fix vsscanf stream initialization.

svn path=/trunk/; revision=12364
2004-12-27 16:43:49 +00:00
Filip Navara
691f45eb54 - RtlExpandEnvironmentStrings_U and ExpandEnvironmentStrings[AW] should return the total length needed for the string with all the environment variables expanded.
svn path=/trunk/; revision=12363
2004-12-27 16:40:14 +00:00
Eric Kohl
ea579e1a95 Detect and report ACPI- and APM-BIOS support.
svn path=/trunk/; revision=12362
2004-12-27 16:13:41 +00:00
Eric Kohl
280e3627d8 Enumerate all devices on the 'ACPI bus'.
svn path=/trunk/; revision=12361
2004-12-27 14:24:00 +00:00
Eric Kohl
e81ecb35ce Enumerate FILE_DEVICE_BUS_EXTENDER and FILE_DEVICE_ACPI devices.
svn path=/trunk/; revision=12360
2004-12-27 14:21:35 +00:00
Martin Fuchs
d8d3883496 fix GPF for clicks in the favorites folder
svn path=/trunk/; revision=12359
2004-12-27 13:54:19 +00:00
Gé van Geldorp
7a1b4194e2 Use ListEntry->Flink before ListEntry is freed by SignalSocket()
svn path=/trunk/; revision=12358
2004-12-27 11:00:01 +00:00
Gé van Geldorp
4b48423b86 Make AsyncData point to the allocated memory instead of overwriting some
random memory locations

svn path=/trunk/; revision=12357
2004-12-27 10:38:06 +00:00
Filip Navara
89ae96ff47 - Free all memory in error case of GetClassInfoExCommon.
- Fix RegisterClassExA for menu-less window classes.

svn path=/trunk/; revision=12353
2004-12-26 23:56:16 +00:00
Filip Navara
f6f130ea4b - Fix size returned by NtUserGetClassInfo.
svn path=/trunk/; revision=12352
2004-12-26 23:54:54 +00:00
Gé van Geldorp
e4514c3fed Dynamically resize buffer as needed
svn path=/trunk/; revision=12350
2004-12-26 23:31:00 +00:00
Gé van Geldorp
8bbd20efdc Don't write outside buffer
svn path=/trunk/; revision=12349
2004-12-26 23:09:51 +00:00
Gé van Geldorp
0afb1fb12d Move the I/O completion port setting to second stage and fix the async I/O
test. Thanks to Alex Ionescu for explaining this stuff to me.

svn path=/trunk/; revision=12348
2004-12-26 21:18:34 +00:00
Filip Navara
46016205f7 DceResetActiveDCEs fixes:
- Don't check ownership because window DCs are global now.
- Correctly reposition client DCs (if window style changes).

svn path=/trunk/; revision=12347
2004-12-26 20:34:49 +00:00
Filip Navara
fe67fad88a - Fix building on Linux.
svn path=/trunk/; revision=12346
2004-12-26 18:55:26 +00:00
Filip Navara
11d39be5b5 - Export ExSemaphoreObjectType.
svn path=/trunk/; revision=12345
2004-12-26 17:48:19 +00:00
Gé van Geldorp
cbfd8c1020 Set I/O completion port on completion of the IRP
svn path=/trunk/; revision=12344
2004-12-26 15:55:14 +00:00
Gé van Geldorp
f5639215be Implement IoSetIoCompletion()
svn path=/trunk/; revision=12343
2004-12-26 15:36:23 +00:00
Gé van Geldorp
eb9bfeca2c Thomas pointed out that we can just use PostMessageW() instead of going
through WPUPostMessage()

svn path=/trunk/; revision=12342
2004-12-26 15:21:23 +00:00
Gé van Geldorp
fb8f8407b9 Handle AFD_EVENT_CONNECT notifications
svn path=/trunk/; revision=12341
2004-12-26 15:04:33 +00:00
Gé van Geldorp
fbabeaaf58 - Don't use boolean NOT when bitwise NOT is intended
- Add break to end of switch cases

svn path=/trunk/; revision=12340
2004-12-26 14:55:51 +00:00
Gé van Geldorp
aa94246f81 Don't free AsyncData if we're still using it
svn path=/trunk/; revision=12339
2004-12-26 14:47:57 +00:00
Gé van Geldorp
65c509fce1 Implemented WPUPostMessage()
svn path=/trunk/; revision=12338
2004-12-26 14:43:01 +00:00
Filip Navara
ec977e2072 - Set the popup menu flag in IntSetMenuItemInfo when setting the handle of submenu.
svn path=/trunk/; revision=12337
2004-12-25 23:40:47 +00:00
Filip Navara
adc5944468 - Partial implementation of RealMsgWaitForMultipleObjectsEx and message queue wake mask.
- Fix setting of menu item type and strings.

svn path=/trunk/; revision=12336
2004-12-25 22:59:10 +00:00
Gé van Geldorp
0dedd084f1 Don't return uninitialized variable
svn path=/trunk/; revision=12335
2004-12-25 22:58:59 +00:00
Art Yerkes
af8cd05c99 Added a (currently unworking) accept implementation. Needs work, but doesn't
break anything.
Committed a patch by GvG:
 - SignalSocket: Removed collected parameter, changed Information to actual
   number of bytes returned.

svn path=/trunk/; revision=12333
2004-12-25 21:30:20 +00:00
Filip Navara
bcf559d5f2 - Fix compilation with MinGW runtime 3.5.
svn path=/trunk/; revision=12332
2004-12-25 21:05:19 +00:00
Filip Navara
681a0743e5 - Fix finding of windows by classes in NtUserFindWindow.
- Marshal WM_COPYDATA messages.

svn path=/trunk/; revision=12331
2004-12-25 20:30:50 +00:00
Filip Navara
2d0fbe6020 - Fix KDBG build that I've broken.
svn path=/trunk/; revision=12330
2004-12-25 19:38:17 +00:00
Filip Navara
2aab39efbd - Fix a typo.
svn path=/trunk/; revision=12329
2004-12-25 15:33:30 +00:00
Filip Navara
373381ed59 - Fix comparsion that I broke with my last commit.
svn path=/trunk/; revision=12328
2004-12-25 14:22:57 +00:00
Filip Navara
32dfb00066 - Fix yet another double completition error.
svn path=/trunk/; revision=12327
2004-12-25 12:07:24 +00:00
Filip Navara
c7505530e0 - Fix compilation with GCC 4.0-20041219.
svn path=/trunk/; revision=12326
2004-12-25 11:22:37 +00:00
Filip Navara
37dca7acbd - Fix compilation with GCC 4.0-20041219.
- Don't try to stick (1 << 8) into entry.delivery_mode which is 3-bit integer.

svn path=/trunk/; revision=12325
2004-12-25 11:21:48 +00:00
Filip Navara
f73524a056 - Don't pass uninitialized variables to PropertySheet,
svn path=/trunk/; revision=12324
2004-12-25 11:17:10 +00:00
Magnus Olsen
89384064a9 regsettings for acpi and
fix powerdown when reactos shortdown by Herv� Poussineau

svn path=/trunk/; revision=12323
2004-12-25 00:46:07 +00:00
Magnus Olsen
2b91825e80 fix powerdown when reactos shortdown by Herv� Poussineau
svn path=/trunk/; revision=12322
2004-12-25 00:44:49 +00:00
Filip Navara
63dde03aef - Fix compilation with GCC 4.0-20041219.
svn path=/trunk/; revision=12321
2004-12-24 23:01:35 +00:00
Magnus Olsen
2c0d95525f change NtUserChangeDisplaySettings stub so it report res not supported
geting quake1 working direcly form console with out any extra switch

svn path=/trunk/; revision=12320
2004-12-24 19:02:32 +00:00
Thomas Bluemel
e07e530aa6 revert my temporary class hacks and remove my desktop handling changes temporarily as they cause some trouble
svn path=/trunk/; revision=12319
2004-12-24 17:45:59 +00:00
Eric Kohl
68bf1ffa6a Add simple first stage GUI setup application.
svn path=/trunk/; revision=12317
2004-12-24 17:31:07 +00:00
Eric Kohl
f9131a7f31 - Move english resource to a separate file.
- Keep language-independent resources in welcome.rc.
- Run 'reactos.exe' to install ReactOS.

svn path=/trunk/; revision=12316
2004-12-24 17:19:44 +00:00
Eric Kohl
102860f1bd Add simple first stage GUI setup application.
svn path=/trunk/; revision=12315
2004-12-24 17:17:12 +00:00
Filip Navara
f4e0630b1d - Fix compilation with GCC 4.0-20041219.
svn path=/trunk/; revision=12314
2004-12-24 17:07:00 +00:00
Royce Mitchell III
9f1fc57758 IntEngGradientFill() fix ASSERT statements
svn path=/trunk/; revision=12312
2004-12-24 06:00:53 +00:00
Gunnar Dalsnes
699702d6ce -add some asserts to catch abuse (double insertions, unititialized items etc.)
-add asserts for KeRemoveQueue NTSTATUS returns

svn path=/trunk/; revision=12311
2004-12-24 02:09:12 +00:00
Gunnar Dalsnes
11deb707d5 add bugcode: INVALID_WORK_QUEUE_ITEM
svn path=/trunk/; revision=12310
2004-12-24 02:05:26 +00:00
Gunnar Dalsnes
8d1d54877f ExInitializeWorkItem: synch with Windows (only NULL the Flink)
svn path=/trunk/; revision=12309
2004-12-24 01:39:50 +00:00
Alex Ionescu
8b4b5441b4 Fix building with DBG=1, OPTIMIZED=1. Patch by Stephen Hodges.
svn path=/trunk/; revision=12308
2004-12-24 01:32:38 +00:00
Eric Kohl
38615c56e8 - Pass create parameters for named pipes and mailslots in the stack location.
- Call NpfsFindPipe to search for an existing pipe.

svn path=/trunk/; revision=12307
2004-12-23 23:58:44 +00:00
Eric Kohl
9b7ba3e6fb Pass create parameters for named pipes and mailslots in the stack location.
svn path=/trunk/; revision=12306
2004-12-23 23:56:33 +00:00
Filip Navara
630b572695 - Check the return value of LdrProcessModule instead of uninitialized variable.
svn path=/trunk/; revision=12305
2004-12-23 23:33:54 +00:00
Eric Kohl
09e71d4f7d Fix the signature of Nt/ZwCreateNamedPipe, the 8th to 10th arguments are ULONGs instead of BOOLEANs.
svn path=/trunk/; revision=12303
2004-12-23 20:13:38 +00:00
Gé van Geldorp
52bbffc39f Free process data when LPC port is closed, not when process is terminated,
'cause there now might be a "hide desktop" request coming in after process
termination

svn path=/trunk/; revision=12302
2004-12-23 18:02:12 +00:00
Eric Kohl
ceedef9d54 Merge EXTENDED_IO_STACK_LOCATION into IO_STACK_LOCATION and fix the resulting errors.
svn path=/trunk/; revision=12301
2004-12-23 12:39:16 +00:00
Gé van Geldorp
0b8f1f6126 Rollback last change since it's causing problems on Linux
svn path=/trunk/; revision=12300
2004-12-23 12:05:40 +00:00
Gé van Geldorp
80fe6c33b9 CVS maintenance
svn path=/trunk/; revision=12299
2004-12-23 09:15:18 +00:00
Gé van Geldorp
5eddab1bad Import shdocvw from Wine
svn path=/trunk/; revision=12297
2004-12-23 08:55:00 +00:00
Royce Mitchell III
eba02683e2 give Arch a little more variety
svn path=/trunk/; revision=12296
2004-12-23 02:24:04 +00:00
Gé van Geldorp
0b50bd52b2 Reimport of urlmon from Wine
svn path=/trunk/; revision=12295
2004-12-22 23:15:15 +00:00
Mike Nordell
3d7aa0b923 Tamlin was tired. Now byte order should _really_ be fixed
svn path=/trunk/; revision=12294
2004-12-22 23:05:12 +00:00
Mike Nordell
0a7987564c Remove bad declaration of htons
svn path=/trunk/; revision=12293
2004-12-22 22:57:19 +00:00
Mike Nordell
0fa4a286ba Fix order-of-evalutation bug-to-be
svn path=/trunk/; revision=12292
2004-12-22 22:48:02 +00:00
Royce Mitchell III
e386edfdb9 commited the wrong source for the bot.. sorry
svn path=/trunk/; revision=12291
2004-12-22 21:53:02 +00:00
Royce Mitchell III
5e7ce7f6f5 forgot to commit responses file
svn path=/trunk/; revision=12290
2004-12-22 18:57:09 +00:00
Royce Mitchell III
089686cac2 ArchBlackmann irc bot - works in ReactOS - happy hacking
svn path=/trunk/; revision=12289
2004-12-22 18:25:29 +00:00
Art Yerkes
f781714ac5 This corresponds to the change made in dispatch.c on the 20th.
svn path=/trunk/; revision=12288
2004-12-22 16:23:03 +00:00
Royce Mitchell III
4cf6b9f489 MiQueryVirtualMemory(): created because ZwQueryVirtualMemory() didn't work for me, added cases for memory area types that I needed to walk stack traces.
Stack traces now use MiQueryVirtualMemory to make sure they never step outside the allocated stack they started in ( this prevents page faults at high irql ) - for some reason this patch eliminates the NtW32Callback() crash everybody is seeing with GDI_DEBUG enabled, tho I don't understand why.

svn path=/trunk/; revision=12286
2004-12-22 05:17:44 +00:00
Royce Mitchell III
5dcad29338 msvc compatibility
svn path=/trunk/; revision=12285
2004-12-22 05:06:59 +00:00
Filip Navara
7ea5ac8d87 - Run UserInit program instead of running shell directly.
svn path=/trunk/; revision=12282
2004-12-22 01:22:08 +00:00
Filip Navara
9769f53baa - Wait for the shell process to finish execution.
svn path=/trunk/; revision=12281
2004-12-22 01:20:52 +00:00
Gunnar Dalsnes
d509bf9f98 forgot to add this when making chages to status.c earlier
svn path=/trunk/; revision=12280
2004-12-22 00:58:53 +00:00
Thomas Bluemel
02388014ad - initialize system window classes when creating window stations
- when creating consoles tell CSRSS the window station/desktop where they should created in, if there's information available

svn path=/trunk/; revision=12279
2004-12-21 21:38:27 +00:00
Magnus Olsen
6b4db70aba add dsound include files from wine
svn path=/trunk/; revision=12278
2004-12-21 19:31:07 +00:00
Gé van Geldorp
67cde50ddc - Don't pass a timeout (which wasn't initialized btw), just hang around forever
- Call completion routine

svn path=/trunk/; revision=12277
2004-12-21 18:38:49 +00:00
Gé van Geldorp
ea8bd9a5d2 - Standardize I/O Completion Port initialization function
- Actually call it

svn path=/trunk/; revision=12276
2004-12-21 18:37:28 +00:00
Magnus Olsen
b4ad77b7ad activate wine own guid for dsound ?
first step geting dsound compile
wine dsound compile agein
need todo some clean work now

svn path=/trunk/; revision=12275
2004-12-21 18:14:11 +00:00
Mike Nordell
f651c1283c Command line completion fix (uninitialized memory)
svn path=/trunk/; revision=12274
2004-12-21 16:30:24 +00:00
Filip Navara
df23944ec6 *** empty log message ***
svn path=/trunk/; revision=12273
2004-12-21 15:07:01 +00:00
Filip Navara
75f1fd495c - Add CLSID entries for CLSID_DragDropHelper.
svn path=/trunk/; revision=12272
2004-12-21 14:33:59 +00:00
Royce Mitchell III
d56daebd24 blasted sym files just aren't always in address-order, must search entire sym file to find correct function for our offset.
svn path=/trunk/; revision=12270
2004-12-21 04:32:11 +00:00
Royce Mitchell III
73df8e0872 wrap stack walks in SEH - this doesn't fix page faults tho, so something else is going to have to be done :(
svn path=/trunk/; revision=12269
2004-12-21 04:05:18 +00:00
Gunnar Dalsnes
93af2278c0 NtRemoveIoCompletion: didn't check for possible NTSTATUS codes returned from KeRemoveQueue
Spotted by GvG

svn path=/trunk/; revision=12268
2004-12-21 02:34:32 +00:00
Filip Navara
ff32df1937 - Add registry entries for DXDIAG.
svn path=/trunk/; revision=12267
2004-12-21 00:39:34 +00:00
Magnus Olsen
cd064303bb add devenum to the bootcd
svn path=/trunk/; revision=12266
2004-12-20 22:33:01 +00:00
Magnus Olsen
476dd07c96 add devenum to the build
svn path=/trunk/; revision=12265
2004-12-20 22:26:18 +00:00
Magnus Olsen
cd77453af5 spell error
svn path=/trunk/; revision=12264
2004-12-20 22:18:41 +00:00
Magnus Olsen
8e962ca524 add devnum.dll base adress
svn path=/trunk/; revision=12263
2004-12-20 22:12:43 +00:00
Magnus Olsen
0a80f15977 header file from wine
small change in one of these

svn path=/trunk/; revision=12262
2004-12-20 22:11:56 +00:00
Magnus Olsen
1117373fd8 port over devnum from wine only small change to createdevnum.c
svn path=/trunk/; revision=12261
2004-12-20 22:09:31 +00:00
Hartmut Birr
a736766cac Fixed the include of utime.h. (I should read the mails from others more exactly.)
svn path=/trunk/; revision=12260
2004-12-20 21:50:41 +00:00
Gé van Geldorp
b41e30eb6d Set ownership to NULL for both cursor and mask bitmaps
svn path=/trunk/; revision=12258
2004-12-20 21:34:23 +00:00
Magnus Olsen
026cdb6db3 fix some fualt here.
svn path=/trunk/; revision=12257
2004-12-20 21:09:40 +00:00
Hartmut Birr
22b8e65551 Used stat, utime and utimbuf instead of _stat, _utime and _utimbuf.
svn path=/trunk/; revision=12256
2004-12-20 19:55:26 +00:00
Magnus Olsen
7f6d0de950 rename dxdigan to dxdiagn
now wee remove dxdigan

svn path=/trunk/; revision=12255
2004-12-20 19:55:07 +00:00
Gé van Geldorp
259079e083 Add some stubs to allow msvcp60.dll to load
svn path=/trunk/; revision=12254
2004-12-20 17:32:05 +00:00
Magnus Olsen
3e2ae1fc05 rename dxdigan to dxdiagn
now wee remove dxdigan

svn path=/trunk/; revision=12253
2004-12-20 16:34:47 +00:00
Magnus Olsen
21a54bca5b rename dxdigan to dxdiagn
svn path=/trunk/; revision=12252
2004-12-20 16:32:43 +00:00
Eric Kohl
c443a93492 NtAllocateUuids(): Improve randomness of initial sequence count.
svn path=/trunk/; revision=12251
2004-12-20 14:07:34 +00:00
Magnus Olsen
e49daf9671 add dxdigan.dll to the bootcd
svn path=/trunk/; revision=12250
2004-12-20 06:58:23 +00:00
Magnus Olsen
003b5a6949 add strmiids and dxdigan to the build
svn path=/trunk/; revision=12249
2004-12-20 06:55:28 +00:00
Filip Navara
e9808cae5d - Don't try to free string that isn't allocated.
svn path=/trunk/; revision=12248
2004-12-20 02:31:48 +00:00
Filip Navara
28196d0b54 - Fix calling convention of OpenDriverA.
svn path=/trunk/; revision=12247
2004-12-20 02:16:19 +00:00
Filip Navara
70ea1560fe - Fix RosRtlDevModeA2W and RosRtlDevModeW2A for older versions of DEVMODE[AW] structures.
svn path=/trunk/; revision=12246
2004-12-20 01:52:01 +00:00
Filip Navara
5888259db6 - Fix parameter handling in EnumDisplaySettingsExA.
svn path=/trunk/; revision=12245
2004-12-20 01:50:39 +00:00
Magnus Olsen
27a6be65a9 port from wine
thanks filip to help me with some changes

svn path=/trunk/; revision=12244
2004-12-20 01:10:17 +00:00
Magnus Olsen
566bc4e279 port from wine
Directx digansotic dll
it is working in windows but fails some program in reactos

svn path=/trunk/; revision=12243
2004-12-20 01:08:18 +00:00
Magnus Olsen
10a38eaddf add static lib strmiids for directx
svn path=/trunk/; revision=12242
2004-12-20 00:59:11 +00:00
Magnus Olsen
6199c85de8 add TARGET_BASE = $(TARGET_BASE_LIB_DINPUT8)
svn path=/trunk/; revision=12241
2004-12-20 00:57:38 +00:00
Filip Navara
99eb3217fb - Pass correct parameters to UDPReceiveDatagram.
svn path=/trunk/; revision=12240
2004-12-20 00:55:27 +00:00
Magnus Olsen
4991937434 fix TARGET_BASE_LIB_DINPUT
fix TARGET_BASE_LIB_DINPUT8
fix TARGET_BASE_LIB_DXDIAGN

svn path=/trunk/; revision=12239
2004-12-20 00:54:56 +00:00
Magnus Olsen
56ebacd78f add TARGET_BASE = $(TARGET_BASE_LIB_DINPUT)
svn path=/trunk/; revision=12238
2004-12-20 00:53:54 +00:00
Alex Ionescu
4814e3518f Update AFD Include for WSPCloseSocket
svn path=/trunk/; revision=12237
2004-12-19 22:18:59 +00:00
Hartmut Birr
427f167cae - Set the time of the copied file to the time of the source file.
svn path=/trunk/; revision=12236
2004-12-19 21:49:13 +00:00
Hartmut Birr
7e6f1ac93b - Used the last write time instead of the last access time in GetFileTimes (only on windows).
svn path=/trunk/; revision=12235
2004-12-19 21:45:34 +00:00
Gé van Geldorp
0950c88772 Version number bump on HEAD
svn path=/trunk/; revision=12233
2004-12-19 20:57:53 +00:00
Alex Ionescu
28bce6709b Implemented WSPCloseSocket.
svn path=/trunk/; revision=12232
2004-12-19 20:13:28 +00:00
Filip Navara
9367e001e8 - Fix compilation errors with GCC 4.0-20041212.
svn path=/trunk/; revision=12230
2004-12-19 19:35:05 +00:00
Filip Navara
2513acd5bf - Don't ignore status returned by IOCTLs in WSPAccept.
- Wait for IOCTL_AFD_WAIT_FOR_LISTEN request to finish in pending case.

svn path=/trunk/; revision=12228
2004-12-19 17:28:07 +00:00
Thomas Bluemel
5e9dedd497 use GDI_DEBUG
svn path=/trunk/; revision=12227
2004-12-19 16:53:57 +00:00
Filip Navara
016f144f5b - Remove unused and broken MmSplitMemoryArea function.
- Don't allow releasing section with NtFreeVirtualMemory.
- Implement TokenDefaultDacl case of NtSetInformationToken.

svn path=/trunk/; revision=12226
2004-12-19 16:16:58 +00:00
Filip Navara
e469cf0000 - Fix compilation errors with GCC 4.0-20041212.
svn path=/trunk/; revision=12225
2004-12-19 15:56:53 +00:00
Filip Navara
c30b427a20 - Store the device object we're attached to in the device extension.
svn path=/trunk/; revision=12224
2004-12-19 15:51:51 +00:00
Eric Kohl
e84c9310a5 NtAllocateUuids(): Load and save sequence counter.
svn path=/trunk/; revision=12223
2004-12-19 12:52:42 +00:00
Eric Kohl
1d48593faa Add timezone index mapping value and Rpc key.
svn path=/trunk/; revision=12222
2004-12-19 12:50:55 +00:00
Mike Nordell
51f96d5871 Fix crash clicking desktop during setup (NULL pointer was unchecked)
svn path=/trunk/; revision=12221
2004-12-19 11:05:48 +00:00
Art Yerkes
b950b4dd97 Return error on every read after the first that returns EOF.
svn path=/trunk/; revision=12220
2004-12-19 10:26:01 +00:00
Art Yerkes
08f643dfc4 Recognize and deal with STATUS_END_OF_FILE.
svn path=/trunk/; revision=12219
2004-12-19 10:24:52 +00:00
Royce Mitchell III
4439ab0fb9 small bugfix to KeRosDumpStackFrames
svn path=/trunk/; revision=12218
2004-12-19 05:08:53 +00:00
Royce Mitchell III
b27cf5b226 much improved reporting on gdi handle leaks ( you must completely run out of handles tho - which is rare now that quotas are implemented )
svn path=/trunk/; revision=12217
2004-12-19 05:03:29 +00:00
Royce Mitchell III
4a371112ec gdi handle leak fixed - taskmgr no longer leaks gdi handles whilest sitting still. (why on earth was this commented out?!?!??!)
svn path=/trunk/; revision=12216
2004-12-19 05:00:22 +00:00
Royce Mitchell III
b4101d22b8 HACK: hard-coded gdi handle quotas, excepting code paths I haven't found yet, reactos can handle gdi leaky apps without bsoding or getting hosed now. This is a hack, because we should properly read the quota from the registry upon session initialization and use that value instead.
svn path=/trunk/; revision=12215
2004-12-19 00:03:56 +00:00
Royce Mitchell III
c39a4131db IntSetCursor() don't BSOD in low-resource conditions
svn path=/trunk/; revision=12214
2004-12-18 23:55:26 +00:00
Art Yerkes
60f819d761 Removed some badly formatted checkpoints.
svn path=/trunk/; revision=12213
2004-12-18 23:12:23 +00:00
Art Yerkes
9f1235eb99 Added some extra printing.
Fixed numerous places where we assume lpErrno is non-null.

svn path=/trunk/; revision=12212
2004-12-18 23:09:30 +00:00
Gé van Geldorp
0df032976f Add some DPRINTs
svn path=/trunk/; revision=12211
2004-12-18 22:54:37 +00:00
Gé van Geldorp
edf496d8c5 Add olepro32.dll to build
svn path=/trunk/; revision=12210
2004-12-18 22:28:42 +00:00
Gé van Geldorp
6385199930 Sync to Wine-20041201:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Ensure DllCanUnloadNow is a truly void function, and give it a unique
name so it can be documented per-dll.

svn path=/trunk/; revision=12209
2004-12-18 22:19:52 +00:00
Gé van Geldorp
b51b7135a4 Add some stubs
svn path=/trunk/; revision=12208
2004-12-18 22:15:07 +00:00
Gregor Anich
c37ff99746 Support mapping of video device memory into usermode - unfortunately this is not correctly supported by the memory manager yet.
svn path=/trunk/; revision=12207
2004-12-18 22:14:39 +00:00
Royce Mitchell III
5016bfecf7 dump some statistics on the gdi handle table when it runs out of handles
svn path=/trunk/; revision=12206
2004-12-18 21:41:17 +00:00
Royce Mitchell III
de1d28fabc NtGdiExtTextOut(): fixed some double-frees I introduced, initialize variables that need it, put {} around DPRINT(1) where needed
svn path=/trunk/; revision=12205
2004-12-18 21:35:35 +00:00
Royce Mitchell III
ef53a44b8a added non-magic-dependant double-free detection via 'status' variable
svn path=/trunk/; revision=12204
2004-12-18 21:30:17 +00:00
Royce Mitchell III
97d6fccc69 use KeRosPrintAddress in RPoolMgr
svn path=/trunk/; revision=12203
2004-12-18 21:27:27 +00:00
Gé van Geldorp
598fa7fea7 Set version info to NT 4.0 Build 1381 Service Pack 6 and include ReactOS
version number after Windows version in szCSDVersion

svn path=/trunk/; revision=12202
2004-12-18 21:06:25 +00:00
Royce Mitchell III
8afda8f04f added KeRosPrintAddress
svn path=/trunk/; revision=12201
2004-12-18 20:55:54 +00:00
Filip Navara
a67fbba8ec - Minor fix in MiniportDpc.
svn path=/trunk/; revision=12200
2004-12-18 20:32:41 +00:00
Royce Mitchell III
8e3c98a05f fix stack dumps from printing an infinite amount of <0> in some cases
svn path=/trunk/; revision=12199
2004-12-18 20:26:03 +00:00
Art Yerkes
91bbf4471d Added missing pending check (pointed out by filip).
svn path=/trunk/; revision=12198
2004-12-18 20:10:39 +00:00
Gé van Geldorp
2fa970d484 Fix harddisk detection for seriously broken BIOS
svn path=/trunk/; revision=12197
2004-12-18 19:53:30 +00:00
Art Yerkes
e8861acfb2 Filip and I have hopefully fixed the ndis completion problem on sends.
After calls to delayed miniport send routines, we check status and if not
pending, do NdisMSendComplete and set the miniport busy flag off.

svn path=/trunk/; revision=12196
2004-12-18 19:32:40 +00:00
Gé van Geldorp
e0c43e5c83 Handle failures better (i.e. without crashing)
svn path=/trunk/; revision=12195
2004-12-18 19:23:05 +00:00
Gregor Anich
35d320bd71 Fix handling of breakpoint exceptions in KDB.
svn path=/trunk/; revision=12194
2004-12-18 19:22:10 +00:00
Art Yerkes
fd0590d3cc Add a busy flag for the receive worker. This needs something better.
Remove #if 0 on send completion.  We need these.  Packets still aren't
getting completed however.  Need to investigate more.

svn path=/trunk/; revision=12193
2004-12-18 18:27:22 +00:00
Art Yerkes
1a2e000397 Check for a bad return from AllocatePacketWithBuffer.
svn path=/trunk/; revision=12192
2004-12-18 18:22:47 +00:00
Royce Mitchell III
f4354d8f89 NtGdiExtTextOut(): improved error handling
svn path=/trunk/; revision=12191
2004-12-18 18:21:02 +00:00
Royce Mitchell III
e6a6a8e434 IntGdiInitBrushInstance(): assume callers pass us valid parameters
svn path=/trunk/; revision=12190
2004-12-18 18:19:24 +00:00
Hartmut Birr
d7be13618b - Fixed the timer calibration for processors without a tsc, spotted by Casper Hornstrup.
svn path=/trunk/; revision=12189
2004-12-18 18:04:18 +00:00
Royce Mitchell III
4bd03f70f7 EngMaskBitBlt() ASSERT instead of if(), this function should trust it's callers
IntEngMaskBlt() trust caller to send required parameters

svn path=/trunk/; revision=12188
2004-12-18 17:52:30 +00:00
Royce Mitchell III
6dce633245 add error checking
svn path=/trunk/; revision=12187
2004-12-18 17:50:22 +00:00
Royce Mitchell III
e35792c4ed BUGFIX: EngMaskBitBlt() shouldn't BSOD if Mask is NULL
svn path=/trunk/; revision=12186
2004-12-18 17:36:13 +00:00
Hartmut Birr
43ccb648b2 - Fixed the definitions of HEAP_GROWABLE and HEAP_NO_VALLOC.
svn path=/trunk/; revision=12185
2004-12-18 17:30:27 +00:00
Royce Mitchell III
4076ea8740 BUGFIX: Missing error handling in IntSetDIBits()
svn path=/trunk/; revision=12184
2004-12-18 17:15:10 +00:00
Royce Mitchell III
9b125b75bd BUGFIX: EngCreateBitmap() - don't call GDIOBJ_SetOwnerShip() with invalid handle
svn path=/trunk/; revision=12183
2004-12-18 17:12:32 +00:00
Steven Edwards
eec9a15bd8 Merged most of the recent changes from the Wine edit control.
We now pass all of the Wine edit regression tests.

Vitaliy Margolen <wine-patch@kievinfo.com>
- return "want all keys" for WM_GETDLGCODE when multi-line
- single-line edit control does not want all messages
- additional style combinations are possible for both multi-line and
  single-line edit controls
- tests to confirm it

James Hawkins <truiken@gmail.com>
Limit scrolling of the edit control to the last line of text.

Ulrich Czekalla <ulrich@codeweavers.com>
Handle painting the border if WS_EX_CLIENTEDGE is not set.

Ulrich Czekalla <ulrich@codeweavers.com>
Allow copying selection when control is read only.

svn path=/trunk/; revision=12182
2004-12-18 16:06:23 +00:00
Hartmut Birr
3d5519a309 - PsUnblockThread must be called with dispatcher database lock held.
svn path=/trunk/; revision=12181
2004-12-18 15:52:51 +00:00
Thomas Bluemel
98d6439521 silence debug message i accidently added
svn path=/trunk/; revision=12180
2004-12-18 13:35:15 +00:00
Thomas Bluemel
b79bb15644 guard SetConsoleInputExeNameW() with SEH to properly release the console lock in case of failure
svn path=/trunk/; revision=12179
2004-12-18 13:33:09 +00:00
Eric Kohl
0ad5627d13 Implement NtAllocateUuids() partially.
svn path=/trunk/; revision=12178
2004-12-18 13:27:58 +00:00
Thomas Bluemel
db7aca35ef implemented undocumented GetConsoleInputExeNameA/W() and SetConsoleInputExeNameA/W() used by NT's cmd.exe
svn path=/trunk/; revision=12177
2004-12-18 13:26:57 +00:00
Hartmut Birr
a653ae39ad - Allocated a zero filled memory block for the font.
- Restored Ge's last changes.

svn path=/trunk/; revision=12176
2004-12-18 11:05:03 +00:00
Gé van Geldorp
04cae08bbc Rollback last change
svn path=/trunk/; revision=12175
2004-12-18 09:39:14 +00:00
Art Yerkes
478a3a1bd2 Added a few forwards to ws2_32.
svn path=/trunk/; revision=12172
2004-12-18 01:17:35 +00:00
Gunnar Dalsnes
68b0228983 IntReadConsole: in case of unicode read, not all chars were copied
W2k cmd.exe now works for me

svn path=/trunk/; revision=12171
2004-12-18 00:28:16 +00:00
Filip Navara
69c462a21c - Fix issues with DCE clip region ownership.
svn path=/trunk/; revision=12170
2004-12-17 19:42:46 +00:00
Royce Mitchell III
6aa427939e BUGFIX: stabs lookup ( particularly line # lookup )
svn path=/trunk/; revision=12169
2004-12-17 17:51:57 +00:00
Gé van Geldorp
26b1a392bf Pass parameters in correct order
svn path=/trunk/; revision=12168
2004-12-17 17:40:29 +00:00
Filip Navara
7b483dc2f7 - Don't allow changing ownership of foreign GDI handles.
svn path=/trunk/; revision=12167
2004-12-17 15:12:37 +00:00
Filip Navara
c79373c4c1 - Fix ownership issues with DCEs.
svn path=/trunk/; revision=12166
2004-12-17 14:44:19 +00:00
Royce Mitchell III
0fe4682b80 completely rewritten PagedPool.
- more than 800% faster
- support for multiple pools (SpecialPool, etc anyone?)
- can be used for NPool if wanted, too
- tries not to immediately reallocate a block that's just freed for allocations of <= 512 (helps find memory abusers)

svn path=/trunk/; revision=12165
2004-12-17 13:20:05 +00:00
Gregor Anich
7cbb0d7e6e Remove unused defines and structures.
svn path=/trunk/; revision=12164
2004-12-17 13:19:44 +00:00
Gé van Geldorp
af4cfbfdec Don't mess with WNDCLASS contents if class doesn't exist
svn path=/trunk/; revision=12163
2004-12-17 09:56:10 +00:00
Aleksey Bragin
74e4b45769 Include link to IoCsq...() funcs
svn path=/trunk/; revision=12162
2004-12-17 07:31:11 +00:00
Gunnar Dalsnes
0bf2982f43 IntReadConsole: don't tell we failed just because we didn't fill up the read buffer!
svn path=/trunk/; revision=12161
2004-12-17 00:44:46 +00:00
Eric Kohl
ac61295ec2 Simplify time conversion functions.
svn path=/trunk/; revision=12160
2004-12-16 23:46:41 +00:00
Eric Kohl
a2b3047314 Remove 'unassigned' error codes.
svn path=/trunk/; revision=12159
2004-12-16 23:06:07 +00:00
Gé van Geldorp
77e8ed7c6f Implement NtFlushInstructionCache()
svn path=/trunk/; revision=12158
2004-12-16 22:36:09 +00:00
Steven Edwards
8d2782b2fa Added regex support
svn path=/trunk/; revision=12157
2004-12-16 18:37:28 +00:00
Steven Edwards
99a066e54b We need this for now.
svn path=/trunk/; revision=12156
2004-12-16 18:02:32 +00:00
Steven Edwards
682154185b This should not be in CVS
svn path=/trunk/; revision=12155
2004-12-16 18:01:14 +00:00
Steven Edwards
b7ce6af053 KJK::Hyperion has PSEH'ifyed msc.c
svn path=/trunk/; revision=12154
2004-12-16 17:50:36 +00:00
Steven Edwards
1aea28360c First shot at importing dbghelp. Its broken. Dont enable it
until KJK and Alex have a look.

svn path=/trunk/; revision=12153
2004-12-16 17:42:10 +00:00
Steven Edwards
d057566f59 add dbghelp.h and cvconst.h for importing dbghelp.dll
svn path=/trunk/; revision=12152
2004-12-16 17:34:54 +00:00
Gunnar Dalsnes
9cbb3d72e1 -link heaps together instead of using stupid table past peb
-RtlValidateProcessHeaps/RtlGetProcessHeaps/RtlEnumProcessHeaps  didn't process all heaps
-correct RtlDestroyHeap proto. / return value
All changes based on Wine

svn path=/trunk/; revision=12151
2004-12-16 15:10:01 +00:00
Art Yerkes
4d8fc530e9 We can arrive here early on, before the filter is set. Check for a null
filter.

svn path=/trunk/; revision=12150
2004-12-16 07:50:06 +00:00
Alex Ionescu
25c4daa164 Freeldr will not load a UI if Timeout = 0, and will instead immediately load the default OS.
svn path=/trunk/; revision=12149
2004-12-16 07:09:33 +00:00
Alex Ionescu
d986574df1 Set default Freeldr Timeout to 5 seconds (requested).
svn path=/trunk/; revision=12148
2004-12-16 07:08:48 +00:00
Richard Campbell
0132fcd8f1 - Implemented SwitchToThisWindow, not 100% correct more then likely...but it should work well enough, considering the function is deprecated.
- Implemented BringWindowToTop

svn path=/trunk/; revision=12147
2004-12-16 03:57:35 +00:00
Gunnar Dalsnes
f7adabb3ca add InternetOpenUrlA/W stubs
svn path=/trunk/; revision=12146
2004-12-16 03:00:06 +00:00
Richard Campbell
c75ff223da Final Touchups:
- Removed potential copyrighted microsoft icon.  Replaced with ROS icon.

TODO:
 - localize
 - implement code that makes the cpl work
 - sleep.

svn path=/trunk/; revision=12145
2004-12-16 02:09:16 +00:00
Richard Campbell
bfaf8bf9be - Added the remaining two dialog layouts
svn path=/trunk/; revision=12144
2004-12-16 01:56:53 +00:00
Richard Campbell
d9f9895b85 - center some things that i realized weren't centered when actually RUNNING the cpl. (damn visual studio...)
svn path=/trunk/; revision=12143
2004-12-16 01:26:06 +00:00
Richard Campbell
353463b34c - oops...
- added screen saver controls

svn path=/trunk/; revision=12142
2004-12-16 01:12:40 +00:00
Richard Campbell
f7977f0c1c - added background page controls...no code yet, just the resources.
svn path=/trunk/; revision=12141
2004-12-16 00:51:01 +00:00
Richard Campbell
bf25913468 - Removed extra 'properties' in window caption.
svn path=/trunk/; revision=12140
2004-12-16 00:21:40 +00:00
Steven Edwards
965e9ee858 revert change from lastnight.
svn path=/trunk/; revision=12139
2004-12-15 23:34:37 +00:00
Eric Kohl
935e412f83 Fix GetInheritanceSource[A/W] signature.
svn path=/trunk/; revision=12138
2004-12-15 14:23:11 +00:00
Eric Kohl
2f57c7dc4f Remove aclapi.h from include. User the w32api version instead.
svn path=/trunk/; revision=12137
2004-12-15 14:13:34 +00:00
Eric Kohl
6fd5df9a7b Implement simple trustee functions:
- BuildImpersonateTrustee[A/W]
 - GetMultipleTrustee[A/W]
 - GetMultipleTrusteeOperation[A/W]
 - GetTrusteeForm[A/W]
 - GetTrusteeName[A/W]
 - GetTrusteeType[A/W]

svn path=/trunk/; revision=12136
2004-12-15 12:29:36 +00:00
Gé van Geldorp
473143e808 Allocate correct amount of memory.
Fixes bug 451.

svn path=/trunk/; revision=12135
2004-12-15 11:34:52 +00:00
Steven Edwards
54897a486b add notepad to the bootcd
svn path=/trunk/; revision=12134
2004-12-15 06:10:24 +00:00
Steven Edwards
7be51c63cb Disable check for invalid chars in string.
svn path=/trunk/; revision=12133
2004-12-15 05:27:17 +00:00
Steven Edwards
2288ba398c Moved notepad to main CVS module.
svn path=/trunk/; revision=12132
2004-12-15 05:09:32 +00:00
Steven Edwards
d1a61871aa Add notepad to the makefile
svn path=/trunk/; revision=12131
2004-12-15 05:08:44 +00:00
Steven Edwards
d9ccbedded Added Wine notepad to main tree.
svn path=/trunk/; revision=12130
2004-12-15 05:07:53 +00:00
Royce Mitchell III
13277fb296 change a few #ifdefs to allow loading of SYM files for user modules in DBG builds
svn path=/trunk/; revision=12129
2004-12-15 03:00:33 +00:00
Royce Mitchell III
8236f00175 filter out invalid S_FUN entries
svn path=/trunk/; revision=12128
2004-12-15 02:24:35 +00:00
Royce Mitchell III
66468c3013 RSYM: force all sym files to have 0-based function offsets.
NTOSKRNL: look for 0-based offsets instead of absolute offsets.

svn path=/trunk/; revision=12127
2004-12-15 01:49:37 +00:00
Filip Navara
262a6b4866 - Implement NtUserMonitorFromWindow.
svn path=/trunk/; revision=12126
2004-12-14 23:38:14 +00:00
Filip Navara
3b2955e805 - Fix bug in IntCallHookProc for window classes specified with atom.
svn path=/trunk/; revision=12125
2004-12-14 23:14:15 +00:00
Casper Hornstrup
023fe261e3 2004-12-14 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/freetype/rosglue.c: Use native line-endings.
	* drivers/lib/bzip2/sample2.ref: Ditto.
	* lib/freetype/builds/mac/ftlib.prj: Ditto.
	* apps/utils/net/telnet/src/tnmsg.h: Ditto.

svn path=/trunk/; revision=12124
2004-12-14 22:57:35 +00:00
Gé van Geldorp
4bd813253a This is a generated file, doesn't belong in CVS
svn path=/trunk/; revision=12123
2004-12-14 22:27:02 +00:00
Gregor Anich
4b5de6d7f7 Fixed compilation with GCC 3.4.2
svn path=/trunk/; revision=12122
2004-12-14 22:15:52 +00:00
Thomas Bluemel
7af8972536 implemented GetUserNameA()
svn path=/trunk/; revision=12121
2004-12-14 22:11:16 +00:00
Art Yerkes
ddd8ede921 Cleaned up a bit. Sorry, I should edit more carefully.
svn path=/trunk/; revision=12120
2004-12-14 21:56:44 +00:00
Thomas Bluemel
dc39a75a6c fixed typo in comment
svn path=/trunk/; revision=12119
2004-12-14 21:26:53 +00:00
Thomas Bluemel
2c84739e31 implemented LookupAccountSidA()
svn path=/trunk/; revision=12118
2004-12-14 21:25:21 +00:00
James Tabor
0056248f6d Update files from WineHq.
svn path=/trunk/; revision=12117
2004-12-14 20:42:02 +00:00
Gé van Geldorp
eb3db535d2 Make GDB work again
svn path=/trunk/; revision=12116
2004-12-14 10:18:57 +00:00
Art Yerkes
a95a04eb35 Store interface speed to retrieve later.
svn path=/trunk/; revision=12115
2004-12-14 08:00:48 +00:00
Royce Mitchell III
c3168d10e5 implemented LookupAccountSidW() thx to the help of Alex Ionescu - this function is needed for GetUserNameA/W().
svn path=/trunk/; revision=12114
2004-12-14 06:40:50 +00:00
Royce Mitchell III
a80be8cc45 ASSERT parameter assumptions
svn path=/trunk/; revision=12113
2004-12-14 04:55:43 +00:00
Royce Mitchell III
9df9a16c4d BUGFIX: bad params to MouseSafetyOnDrawStart() in IntEngTransparentBlt(), also ASSERT parameter assumptions
svn path=/trunk/; revision=12112
2004-12-14 04:40:16 +00:00
Royce Mitchell III
3bbc2dd8e3 ASSERT parameter assumptions in IntEngLineTo()
svn path=/trunk/; revision=12111
2004-12-14 04:30:58 +00:00
Royce Mitchell III
6d6cf25eee ASSERT parameter assumptions in IntEngGradientFill()
svn path=/trunk/; revision=12110
2004-12-14 04:26:49 +00:00
Royce Mitchell III
2e027c01b7 ASSERT parameter assumptions in EngCopyBits()
svn path=/trunk/; revision=12109
2004-12-14 04:22:00 +00:00
Royce Mitchell III
be95834e02 fix infinite loop in KeRosDumpStackFrames()
svn path=/trunk/; revision=12108
2004-12-14 03:46:10 +00:00
Royce Mitchell III
6484c7e5b5 ASSERT parameter assumptions in IntEngStretchBlt() and IntEngMaskBlt()
svn path=/trunk/; revision=12107
2004-12-14 03:36:46 +00:00
Royce Mitchell III
adf92baa5e IntEngBitBlt() ASSERT() some assumptions
svn path=/trunk/; revision=12106
2004-12-14 03:28:34 +00:00
Royce Mitchell III
0dfc0d93bd came across small potential kmode crash while researching another bug fix
svn path=/trunk/; revision=12105
2004-12-14 03:23:14 +00:00
Gunnar Dalsnes
241ac18672 STATUSBAR_SetTextT:
-ntext wasn't freed on return if text was unicode
-part->text was allways freed, but if the previous style was SBT_OWNERDRAW, part->text would contain 32bit data (not a buffer ptr.)

svn path=/trunk/; revision=12104
2004-12-14 01:12:51 +00:00
Gunnar Dalsnes
43ca7fca1f zw.h: correct ZwDuplicateToken proto.
advapi32\token\token.c: DuplicateTokenEx: pass correct values to NtDuplicateToken
security.c: RtlImpersonateSelf: pass correct values to NtDuplicateToken
ntoskrnl\token.c:
-NtSetInformationToken: lie and say we succeded
-NtDuplicateToken: don't deref. nullpointer

svn path=/trunk/; revision=12103
2004-12-14 00:41:24 +00:00
Thomas Bluemel
31a9a2b464 sorry for defining structures twice...
svn path=/trunk/; revision=12102
2004-12-14 00:00:41 +00:00
Filip Navara
d7b522cba2 - Modify RtlGetNtVersionNumbers to allow loading of WinXP SP2 MSVCRT.DLL.
svn path=/trunk/; revision=12101
2004-12-13 23:11:13 +00:00
Thomas Bluemel
f49768c160 cache free gdi handles
svn path=/trunk/; revision=12100
2004-12-13 21:59:28 +00:00
Filip Navara
b02dd7c73d - Remove duplicate typedefs.
svn path=/trunk/; revision=12099
2004-12-13 21:45:36 +00:00
Art Yerkes
402db44755 I had put an IOSB on the stack in TdiConnect. Now we use a PendingIrp
struct that associates it with an IRP.  Better.

svn path=/trunk/; revision=12098
2004-12-13 21:20:38 +00:00
Eric Kohl
c4f4ef9ea2 - Remove Wine-isms from the profile code.
- Wrap single-line if-statements.
- Cleanup the indentation.

svn path=/trunk/; revision=12097
2004-12-13 21:16:26 +00:00
Eric Kohl
c11fd7a860 Don't link kernel32.dll against wine.a.
svn path=/trunk/; revision=12096
2004-12-13 21:11:45 +00:00
Thomas Bluemel
51f494a42c forgot this file
svn path=/trunk/; revision=12095
2004-12-13 20:53:25 +00:00
Art Yerkes
91ff22985a Added stack frames and Tag printing to used blocks. This allows redzone
violations on used blocks to tell where the block was allocated.

svn path=/trunk/; revision=12094
2004-12-13 20:11:08 +00:00
Art Yerkes
0492a94c6f Allocate a final WCHAR for the NUL put on by wcsncat.
svn path=/trunk/; revision=12093
2004-12-13 20:09:26 +00:00
Thomas Bluemel
3340e6eecd added stubs for SetSecurityInfo(), GetInheritanceSourceA/W() and FreeInheritedFromArray()
svn path=/trunk/; revision=12092
2004-12-13 19:06:28 +00:00
Hartmut Birr
1d2f603b9d - Replaced HeapAlloc, HeapFree and HeapReAlloc with alloc, free and realloc.
svn path=/trunk/; revision=12091
2004-12-13 18:30:08 +00:00
Thomas Bluemel
e2e32b1c11 cvs maintainance
svn path=/trunk/; revision=12090
2004-12-13 18:20:28 +00:00
Thomas Bluemel
c88782cd9c cvs maintainance
svn path=/trunk/; revision=12089
2004-12-13 18:06:39 +00:00
Filip Navara
6320501cf5 I was wrong, MiniSendComplete shouldn't be called at all by NDIS except if explicitly asked to by the miniport (in pending case).
svn path=/trunk/; revision=12088
2004-12-13 17:16:36 +00:00
Filip Navara
f687a8456d REVERT:
- Don't call ProtocolSendComplete after NdisSend (NDIS should call it).

svn path=/trunk/; revision=12087
2004-12-13 17:13:24 +00:00
Filip Navara
04afe309b7 - Don't call ProtocolSendComplete after NdisSend (NDIS should call it).
svn path=/trunk/; revision=12086
2004-12-13 16:53:38 +00:00
Filip Navara
48048914c0 MiniSendComplete should be called if MiniportSend routine returns STATUS_SUCCESS even for deserialized miniports.
svn path=/trunk/; revision=12085
2004-12-13 16:50:21 +00:00
Filip Navara
b5fa0b44a1 - Fix compilation errors with GCC 4.0-20041205.
svn path=/trunk/; revision=12084
2004-12-13 16:36:39 +00:00
Filip Navara
963cbda1e0 - Fix compilation errors with GCC 4.0-20041205.
svn path=/trunk/; revision=12082
2004-12-13 15:39:52 +00:00
Filip Navara
dc866ac5b0 Don't pass UNICODE_STRINGs in the dwTypeData of MENUITEMINFO. Pass the usual strings here.
svn path=/trunk/; revision=12081
2004-12-13 15:38:19 +00:00
Gé van Geldorp
6d6f09144e Fix double-spaced output in crash report
svn path=/trunk/; revision=12080
2004-12-13 15:07:33 +00:00
Filip Navara
b2a1d58158 - Get handling of unhandled exceptions working again.
svn path=/trunk/; revision=12079
2004-12-13 13:32:24 +00:00
Thomas Bluemel
56a8abdfa4 decrement process gdi object counter on object deletion
svn path=/trunk/; revision=12078
2004-12-13 12:51:51 +00:00
Royce Mitchell III
55c08f71b9 implemented GetUserNameA() and GetUserNameW() - thanks to kjk_hyperion and Alex Ionescu for help on how to implement them.
svn path=/trunk/; revision=12075
2004-12-13 07:09:56 +00:00
Royce Mitchell III
d2b0c045cd BUGFIX: unhandled error conditions IntGdiCreateDC()
svn path=/trunk/; revision=12073
2004-12-13 05:23:59 +00:00
Gregor Anich
6298e65633 Changed half-verbose build output a bit:
- Do not print "Entering directory ..." messages
 - Do not print "Nothing to be done for ..." messages
 - Print the target name before the command which is executed (does not work with wine dlls yet)

Added/Changed stuff in rules.mak:
FULL_MAP was renamed to BUILD_MAP and can be set to
 - full (default, like FULL_MAP=yes was - build maps with objdump)
 - yes (like FULL_MAP=no was - build maps with nm)
 - no (don't build maps at all)
BUILD_SYM was added - can be set to yes/no (defaults to yes)

svn path=/trunk/; revision=12071
2004-12-13 02:20:09 +00:00
Royce Mitchell III
ed3a9ff266 BUGFIX: get rid of an incorrect ASSERT
svn path=/trunk/; revision=12070
2004-12-13 01:45:18 +00:00
Thomas Bluemel
ce3ef02040 revert some of the changes i did to IntDestroyWindow()
svn path=/trunk/; revision=12069
2004-12-13 00:11:59 +00:00
Thomas Bluemel
29be8a4058 unmark dirty windows on destruction so no painting messages get generated afterwards
svn path=/trunk/; revision=12068
2004-12-12 23:42:35 +00:00
Filip Navara
ed10a7b01f - Acquire the dispatcher lock in KeRevertToUserAffinityThread instead of just using uninintialized oldIrql variable.
svn path=/trunk/; revision=12067
2004-12-12 23:18:55 +00:00
Eric Kohl
f51fcb3a2b Replace assert by ASSERT.
svn path=/trunk/; revision=12066
2004-12-12 23:09:13 +00:00
Filip Navara
eeeb963b9d - Fix compilation errors with GCC 4.0-20041205.
svn path=/trunk/; revision=12065
2004-12-12 23:08:13 +00:00
Thomas Bluemel
02f77a0c2a initialize the unhandled exception filter automatically
svn path=/trunk/; revision=12064
2004-12-12 23:03:56 +00:00
Thomas Bluemel
f920a98034 make SetunhandledExceptionFilter() thread-safe
svn path=/trunk/; revision=12063
2004-12-12 22:39:45 +00:00
Eric Kohl
68f22d804d - Replace hive locks and hive list lock by a global lock to make the registry thread-safe.
svn path=/trunk/; revision=12062
2004-12-12 22:36:10 +00:00
Royce Mitchell III
50a975cc08 BUGFIX: NtGdiGetDeviceCaps() called NtGdiEscape() with hDC when it already had it locked.
BUGFIX: fixed condition surrounding failed ASSERT in NtGdiGetTextExtentPoint32().

svn path=/trunk/; revision=12061
2004-12-12 21:58:42 +00:00
Royce Mitchell III
522137c499 add missing assertion
svn path=/trunk/; revision=12060
2004-12-12 21:43:17 +00:00
Royce Mitchell III
63fcc0cffd BUGFIX: MouseSafety does it's own parameter validation, and this calculation was flat-out wrong anyway
svn path=/trunk/; revision=12059
2004-12-12 21:38:25 +00:00
Thomas Bluemel
4e843a2af2 * Implement EnumDisplayDevicesA
* Better implementation of LookupAccountSidA/W stubs
* Allow enumeration of display settings in CLI mode
* Add route app to compile/install target
* Correct debug messages

Patch by Herv� Poussineau.

svn path=/trunk/; revision=12058
2004-12-12 21:25:05 +00:00
Royce Mitchell III
9530713f4b testing reveals that source rect must be constrained to the boundaries of the source image. Adjust dest rect so that output still lands where user expected it. This fixes kmode crash from comctl32 handing bad data off to StretchBlt().
svn path=/trunk/; revision=12057
2004-12-12 20:58:09 +00:00
Thomas Bluemel
d2cc7ec4a0 MessageBoxIndirectA() should check whether the MB_USERICON bit was set, otherwise in case the lpszIcon field of the MSGBOXPARAMS structure, the application passed to it, was never initialized and is not being interpreted as an atom, it takes this random pointer and tries to convert the string inside it to unicode - which might cause an exception. it solves a problem with winzip hardon discovered.
The bug also exists in wine but doesn't appear to arise.

svn path=/trunk/; revision=12056
2004-12-12 20:40:06 +00:00
Hartmut Birr
803a12e7fe - Split KdInitSystem in two phases, to enable debug prints (serial line and bochs)
in the very early boot stage (before the initialisation from hal).

svn path=/trunk/; revision=12055
2004-12-12 20:14:01 +00:00
Filip Navara
311bcaca5c *** empty log message ***
svn path=/trunk/; revision=12054
2004-12-12 18:14:22 +00:00
Steven Edwards
face862633 added .cvsignore
svn path=/trunk/; revision=12053
2004-12-12 18:07:44 +00:00
Filip Navara
db8aa43455 - Remove -DCOBJMACROS from oleaut32 makefile.
- Minor fixes to OLE interface prototypes.

svn path=/trunk/; revision=12052
2004-12-12 18:01:23 +00:00
Thomas Bluemel
0ced40be8e fixed problems with mouse cursor handling
svn path=/trunk/; revision=12051
2004-12-12 17:56:52 +00:00
Hartmut Birr
e3bd28c5ae - Fixed the definition of SYNCH_LEVEL.
svn path=/trunk/; revision=12050
2004-12-12 17:52:06 +00:00
Hartmut Birr
7e26d1bc15 - Used the lock prefix on smp builds.
svn path=/trunk/; revision=12049
2004-12-12 17:48:20 +00:00
Filip Navara
a714d73871 Hans Leidekker <hans@it.vu.nl>
Fix compilation with GCC 4.

svn path=/trunk/; revision=12048
2004-12-12 17:46:53 +00:00
Hartmut Birr
e2b1bfab2b - Improved KeBugCheckWithTf for smp machines.
svn path=/trunk/; revision=12047
2004-12-12 17:42:00 +00:00
Hartmut Birr
1fcc37658f - Redefined OldIrql. It was lost while my code cleanup.
svn path=/trunk/; revision=12046
2004-12-12 17:36:00 +00:00
Hartmut Birr
973ea3b0bc - Replaced PiThreadLock with the dispatcher databae lock.
- Fixed some problems while setting/changing the affinity of a thread.

svn path=/trunk/; revision=12045
2004-12-12 17:25:53 +00:00
Filip Navara
6d37ab99d0 - Reformulate comment.
svn path=/trunk/; revision=12044
2004-12-12 17:24:30 +00:00
Filip Navara
4bceb917d1 - Workaround infinite loop on loopback connect.
svn path=/trunk/; revision=12043
2004-12-12 17:03:01 +00:00
Filip Navara
7660dbd930 - Don't call IntReleaseWindowObject with handle.
svn path=/trunk/; revision=12042
2004-12-12 16:47:52 +00:00
Filip Navara
1d43b533ec - Fix compilation of non-DBG builds.
svn path=/trunk/; revision=12041
2004-12-12 15:57:15 +00:00
Eric Kohl
a643581101 - Remove Wine-isms from advapi32 because it's a ReactOS DLL!
- Enforce a consistent coding style.
- Remove -D__REACTOS__

svn path=/trunk/; revision=12040
2004-12-12 15:17:38 +00:00
Filip Navara
33c558065f - Fix receiving of loopback packets.
- Fix recursive spinlock acquire in NBQueuePacket.
- Don't pend connect requests if they're satisfied during the call.
- Basic implementation of listen.

svn path=/trunk/; revision=12039
2004-12-12 11:48:04 +00:00
Steven Edwards
3e1fe0ceaa Update the Wine porting documentation.
svn path=/trunk/; revision=12038
2004-12-12 04:43:36 +00:00
James Tabor
ef9b305cdf Need -D__REACTOS__ in makefile for porting from wine.
svn path=/trunk/; revision=12037
2004-12-12 04:34:23 +00:00
Thomas Bluemel
e9615cc222 accidently committed this file, revert changes
svn path=/trunk/; revision=12036
2004-12-12 02:15:23 +00:00
Thomas Bluemel
50b193239b 1. remove mouse cursor hacks from eng/mouse
2. implemented more win2k-like gdi handle table (handle entry lookup is not yet optimized/cached!)
3. moved cursoricon.c from objects to ntuser as it's part of the user api and not of the gdi
4. get rid of the eng handle table
5. minor fixes

svn path=/trunk/; revision=12035
2004-12-12 01:40:39 +00:00
Thomas Bluemel
f6de8b04ac don't leak resources
svn path=/trunk/; revision=12034
2004-12-11 22:39:38 +00:00
Thomas Bluemel
2e7cd83da3 silence some debug output
svn path=/trunk/; revision=12033
2004-12-11 21:19:41 +00:00
Art Yerkes
ab5972cd97 Fixed warnings of mismatched format and arg type.
svn path=/trunk/; revision=12032
2004-12-11 21:07:20 +00:00
Art Yerkes
2dc5f4df19 Added double complete protection so that we never call an upper-level
completion routine more than once for the same packet.  This alleviates
a bug i observe with the realtek 8139, as reported by gge.

Define BREAK_ON_DOUBLE_COMPLETE to get a bugcheck if a send completion
handler would be called more than once.  This define is intended to help
us determine if the actual bug is in our ndis.

svn path=/trunk/; revision=12031
2004-12-11 20:48:33 +00:00
Filip Navara
aeee5da01c - Minor fixes to MenuGetRosMenuItemInfo.
svn path=/trunk/; revision=12030
2004-12-11 20:18:06 +00:00
Steven Edwards
2298445fdd disable 2 environ tests that fail under ros.
svn path=/trunk/; revision=12029
2004-12-11 20:01:50 +00:00
Steven Edwards
686bc7deab Disable a cpp test. We need dbghelp support for name de-mangling.
svn path=/trunk/; revision=12028
2004-12-11 19:51:31 +00:00
Filip Navara
33f1fed6b5 - Fix yet another heap free error.
svn path=/trunk/; revision=12027
2004-12-11 19:45:10 +00:00
Thomas Bluemel
ed47eaa79a 1. don't dispatch sent messages to windows during destruction
2. fixed class lookup in a hacky way (get's rewritten soon anyway)

svn path=/trunk/; revision=12026
2004-12-11 19:39:18 +00:00
Steven Edwards
38520a606d Added Wine msvcrt regression tests.
I am working on making us pass all of them and disabling the ones that fail.

svn path=/trunk/; revision=12025
2004-12-11 19:31:46 +00:00
Steven Edwards
aac9c446c3 Wineism cleanup has started.
svn path=/trunk/; revision=12024
2004-12-11 19:21:35 +00:00
Steven Edwards
6581094403 Remove some of the unneeded internal headers in a further effort
to de-wineify my bad import of msvcrt last year.

svn path=/trunk/; revision=12023
2004-12-11 19:21:11 +00:00
Steven Edwards
46e27ab423 msvcrt lock functions have been dewine-ifyed.
svn path=/trunk/; revision=12022
2004-12-11 19:20:19 +00:00
Steven Edwards
d9b42ea553 de-wineifying parts of msvcrt.
svn path=/trunk/; revision=12021
2004-12-11 19:19:38 +00:00
Steven Edwards
dfe99f3cf7 add wrapper code for the VkKeyScan functions around
VkKeyScanExW and GetKeyboardLayout.
(Both still need to be implemented)

svn path=/trunk/; revision=12020
2004-12-11 18:43:06 +00:00
Gregor Anich
78f1b75052 Fix output of the build system for VERBOSE=yes, add output for "make install" in half-verbose mode.
svn path=/trunk/; revision=12019
2004-12-11 17:53:12 +00:00
Filip Navara
21fc8bafa5 - Manage TCP ports using port set and dynamically assign TCP port number if sin_port == 0.
svn path=/trunk/; revision=12018
2004-12-11 16:36:06 +00:00
Steven Edwards
84d1a39be9 remove accctrl.h from include. The w32api version works fine for us.
svn path=/trunk/; revision=12017
2004-12-11 16:02:22 +00:00
Gregor Anich
78c5a766c0 Add half-verbose output to build system and make it the default (the old output is available via setting VERBOSE=yes)
svn path=/trunk/; revision=12016
2004-12-11 16:02:22 +00:00
Thomas Bluemel
8a11bbf017 RtlLargeIntegerArithmeticShift() shouldn't return uninitialized data from the stack
svn path=/trunk/; revision=12015
2004-12-11 15:23:51 +00:00
Filip Navara
cfabacaaa5 - Implement WSPGetSockName.
- Minor AFD fixes.

svn path=/trunk/; revision=12014
2004-12-11 14:59:32 +00:00
Gé van Geldorp
57bdb75d51 - Detect HDTV output
- Increase scrolling speed
- Blacklist more PCI slots

svn path=/trunk/; revision=12013
2004-12-11 14:45:00 +00:00
Martin Fuchs
090e4f33b3 update Doxyfile format
svn path=/trunk/; revision=12012
2004-12-11 14:15:57 +00:00
Martin Fuchs
01c82c0b58 enable new Doxygen option SHOW_DIRECTORIES
svn path=/trunk/; revision=12011
2004-12-11 13:40:24 +00:00
Filip Navara
309075c9f8 - Don't try to free pointer from union that isn't used.
svn path=/trunk/; revision=12010
2004-12-11 00:33:13 +00:00
Filip Navara
bc537c1d3e - Use malloc/free in C++ new/delete operator implementation (resolves heap issues with Mozilla Firefox).
svn path=/trunk/; revision=12009
2004-12-11 00:24:03 +00:00
Thomas Bluemel
da5463c04a forgot this file
svn path=/trunk/; revision=12008
2004-12-11 00:22:25 +00:00
Thomas Bluemel
4173776e7b port crypt and trustee support from Wine. Patch by Steven Edwards.
svn path=/trunk/; revision=12007
2004-12-11 00:21:33 +00:00
Royce Mitchell III
2c781cf79e PagedPool improvements: differenciate between hiredzone and loredzone, added double-free detection including stack trace of free'er, keep track of Tags, two new utility functions for debugging ( VOID ExRosDumpPagedPoolByTag(ULONG) and ULONG ExRosQueryPoolTag(PVOID) ).
svn path=/trunk/; revision=12006
2004-12-11 00:13:37 +00:00
Thomas Bluemel
0bcccac59e fixed a bug that caused locking a not anymore existing message queue while dispatching a message. Thanks to Royce for helping me :)
svn path=/trunk/; revision=12005
2004-12-10 22:40:29 +00:00
Filip Navara
79ebef95eb - Update registry keys for sound blaster driver.
svn path=/trunk/; revision=12004
2004-12-10 19:09:02 +00:00
Filip Navara
40d1739c83 - Fix HalGetAdapter for ISA adapters.
- Fix layout of EISA_CONTROL structure.

svn path=/trunk/; revision=12003
2004-12-10 19:05:33 +00:00
Gregor Anich
821da7d6f9 Use static buffer for DbgPrint message queueing instead of ExAllocatePool.
svn path=/trunk/; revision=12002
2004-12-10 18:31:04 +00:00
Gé van Geldorp
5898f3701e Add video miniport driver for Xbox, to be used in conjunction with
framebuf.dll DDI

svn path=/trunk/; revision=12001
2004-12-10 17:11:35 +00:00
Filip Navara
7cde3a39e7 - Move desktop code from NtUserUpdatePerUserSystemParameters to IntDesktopUpdatePerUserSettings.
svn path=/trunk/; revision=12000
2004-12-10 16:52:04 +00:00
Filip Navara
c5adfe4512 - Fix definitions of SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation.
- Fix prototype of NtDuplicateToken and change DuplicateTokenEx accordingly.
- Implement NtOpenThreadToken[Ex] (complete rewrite), PsDisableImpersonation and PsRestoreImpersonation.

svn path=/trunk/; revision=11999
2004-12-10 16:50:38 +00:00
Gregor Anich
bc28145d48 Add an option to serialize DbgPrint - don't worry, it's disabled by default and meant only for those who are tired of reading mixed debug messages.
svn path=/trunk/; revision=11998
2004-12-10 14:58:26 +00:00
Thomas Bluemel
30fd9c8072 implemented GetThreadIOPendingFlag() (only kernel32 part)
svn path=/trunk/; revision=11996
2004-12-09 19:11:07 +00:00
Thomas Bluemel
865bf755ca implemented CheckRemoteDebuggerPresent() (only kernel32 part)
svn path=/trunk/; revision=11995
2004-12-09 19:03:33 +00:00
Thomas Bluemel
e6bc6ec79d implemented SetDllDirectory() and GetDllDirectory(). LoadLibrary(Ex)() should be extended to use the dll directory when present!
svn path=/trunk/; revision=11994
2004-12-09 17:28:10 +00:00
Royce Mitchell III
c29e190650 allow data from SYM files to be used in stack traces in DBG builds
svn path=/trunk/; revision=11993
2004-12-09 14:20:06 +00:00
Steven Edwards
ce5b02a4d0 Started cleaning up the mess from my old import of
Wine code in to msvcrt.

I will start looking at cleaning up the memory allocation problems soon.

svn path=/trunk/; revision=11992
2004-12-09 06:10:06 +00:00
Steven Edwards
48ec3578a0 add dsound to the top makefile.
svn path=/trunk/; revision=11991
2004-12-09 06:04:40 +00:00
Steven Edwards
46b1a8f34e Fix a compile error I was seeing due to lack of mbstowcs.
Please let me know if this breaks anything for anyone else.

svn path=/trunk/; revision=11990
2004-12-09 05:53:47 +00:00
Steven Edwards
f6e33ed19b Doing some work on the msvcrt Wine mess.
Added .cvsignore to make it less trouble to see whats going on.

svn path=/trunk/; revision=11989
2004-12-09 05:34:07 +00:00
Steven Edwards
698924b5ec Disregard that last change. The line endings were messed up.
svn path=/trunk/; revision=11988
2004-12-09 04:47:20 +00:00
Steven Edwards
79d7258886 remove C++ style comments.
svn path=/trunk/; revision=11987
2004-12-09 04:41:13 +00:00
Gé van Geldorp
e00f8cf1fd Don't write to blacklisted PCI functions either
svn path=/trunk/; revision=11984
2004-12-08 21:53:24 +00:00
Richard Campbell
de75857e68 - Add DSOUND.DLL to the bootcd
svn path=/trunk/; revision=11982
2004-12-08 16:49:38 +00:00
Gé van Geldorp
284d5b4b23 Disk partitioning handling
svn path=/trunk/; revision=11981
2004-12-08 11:42:28 +00:00
Gé van Geldorp
f4ad8be090 Sync to Wine-20041201
svn path=/trunk/; revision=11980
2004-12-07 23:08:34 +00:00
Gé van Geldorp
125d613073 Sync to Wine-20041201
svn path=/trunk/; revision=11979
2004-12-07 22:45:09 +00:00
Gé van Geldorp
223a2d7ff7 Sync to Wine-20041201
Alexandre Julliard <julliard@winehq.org>
- Avoid using gettimeofday.

svn path=/trunk/; revision=11978
2004-12-07 22:32:28 +00:00
Gé van Geldorp
d50ca5db0b Sync to Wine-20041201
svn path=/trunk/; revision=11977
2004-12-07 22:19:10 +00:00
Gé van Geldorp
c7a5d769f6 Sync to Wine-20041201
Filip Navara <xnavara@volny.cz>
- Check the return value from *_GETNUMDEVS message as per KB90562.
- Fix typo in MMDRV_InstallMap.
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.
Robert Shearman <rob@codeweavers.com>
- Fix broken thread start routines.
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.
Jeremy White <jwhite@codeweavers.com>
- The Sleep(0) in this loop is incorrect, and should be removed.  This
  fixes iTunes and a game reported by che.
Remi Assailly <remi.assailly@free.fr>
- Add some missing error values in WINMM_ErrorToString.

svn path=/trunk/; revision=11976
2004-12-07 21:41:02 +00:00
Royce Mitchell III
7a672d567c SetDllDirectoryA/W(): lie to caller and indicate that their request completed successfully
svn path=/trunk/; revision=11975
2004-12-07 20:18:49 +00:00
Royce Mitchell III
902d0f0826 removed an ASSERT that occured when system ran out of GDI handles, and added more correct error handling for the condition
svn path=/trunk/; revision=11974
2004-12-07 19:53:44 +00:00
Gé van Geldorp
4b3c9f12ad Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=11973
2004-12-07 19:35:19 +00:00
Gé van Geldorp
bc927431e4 Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=11972
2004-12-07 19:28:49 +00:00
James Tabor
2899606a4b Code cleanup and sink with WindHq CVS.
svn path=/trunk/; revision=11971
2004-12-07 08:13:01 +00:00
Gé van Geldorp
12c35f6b5a Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.
Juan Lang <juan_lang@yahoo.com>
- Fix CSIDL_CONTROLS and CSIDL_PRINTERS PIDL types, and update tests now
  that they pass.
Robert Shearman <rob@codeweavers.com>
- Use more specific error codes than E_FAIL, where possible.
- Move vtable to end, give it the const modifier, and remove unneeded
  function declarations.
Juan Lang <juan_lang@yahoo.com>
- the correct registry location to override is User Shell Folders, not
  Shell Folders
- if User Shell Folders doesn't exist in HKCU, HKLM should be tried
- SHGetSpecialFolderPath should call SHGetFolderPath, not vice-versa
- the default values should be localizable
- some of the parameter checking and returned LPITEMIDLISTs were a bit
  off
- _SHExpandEnvironmentStrings should return input string if no % found
to expand, and should call ExpandEnvironmentStringsW if it doesn't
handle an environment variable directly.  Based on a patch from Dan
Kegel.
- Avoid copying invalid data on error.
- Update shell32's version to WinXP level.
Aric Stewart <aric@codeweavers.com>
- Implementation of PathCleanupSpec.
Fabrice Menard <menard.fabrice@wanadoo.fr>
- Some French translations added.
- Check the type of error returned by SHCreateDirectoryExW.
Rolf Kalbermatter <rolf.kalbermatter@citeng.com>
- Use SHCreateDirectoryEx function instead of doing explicit recursive
  directory creation.
- Fix bad memory allocation for unicode buffer.
- SHCreateDirectory should create intermediate directories if
  necessary.
- Remove extra boolean parameter in SHNotifyMoveFile as it is not
  used.
- Use in SHFileOperation the function SHNotifyCreateDirectory instead
  of SHCreateDirectoryEx as it does not anymore what is needed here.
- Fix several unsigned/signed mismatch warnings.
Alexandre Julliard <julliard@winehq.org>
- Avoid copying invalid data on error.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Tom Wickline <twickline@sitestar.net>
- Version resources cleanup.

svn path=/trunk/; revision=11970
2004-12-06 23:55:46 +00:00
Gunnar Dalsnes
c1a2a1d3de corrected the last error to check for when determining if the file already exists (when using CreateFile with CREATE_NEW)
svn path=/trunk/; revision=11969
2004-12-06 14:45:47 +00:00
Gunnar Dalsnes
018e3f9601 -correct return value/last error
-make use of macros for stu conversion
-pass NULL timeout for INFINITE wait instead of waiting for 292000 years;-D

svn path=/trunk/; revision=11968
2004-12-06 14:37:11 +00:00
Gunnar Dalsnes
aab32a11b0 -add TYPE_ALIGNMENT macro
-add macros for easy conversion to system time units (100ns)
(dunno if this is the right place to put it)

svn path=/trunk/; revision=11967
2004-12-06 14:34:43 +00:00
Gunnar Dalsnes
7a214c6c4b set correct last error
svn path=/trunk/; revision=11966
2004-12-06 14:24:51 +00:00
Gunnar Dalsnes
dd196f60cb replace NtCreateFile with ZwCreateFile
svn path=/trunk/; revision=11965
2004-12-06 13:46:43 +00:00
Gé van Geldorp
e3b65070e7 Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=11964
2004-12-06 10:20:26 +00:00
Gé van Geldorp
4b2aba9a6f Sync to Wine-20041201
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.

svn path=/trunk/; revision=11963
2004-12-06 10:15:04 +00:00
Gé van Geldorp
87ac9421e8 Sync to Wine-20041201
Robert Shearman <rob@codeweavers.com>
- Add some function declarations to objbase.h.
- Add stubs for server ref counting.
- Implement HRESULT marshaling.
- Implement OleDuplicateData.
Eric Pouech <pouech-eric@wanadoo.fr>
- Const correctness fixes.
Mike Hearn <mh@codeweavers.com>
- Improve OLE function documentation.
- Bail out with CO_E_NOTINITIALIZED when apt is null.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Remove bogus use of nStatCounter and hOleAut32 in CoSetState.
- Remove a comment about protecting per thread data by a critical section.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Mike Hearn <mh@codeweavers.com>
- Trace the OLE error info strings.

svn path=/trunk/; revision=11962
2004-12-06 10:07:19 +00:00
Gé van Geldorp
8679951253 Sync to Wine-20041201
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Ensure DllCanUnloadNow is a truly void function, and give it a unique
  name so it can be documented per-dll.
Tom Wickline <twickline@sitestar.net>
- Version resources cleanup.

svn path=/trunk/; revision=11961
2004-12-06 09:57:06 +00:00
Gé van Geldorp
cc46c6f887 Sync to Wine-20041201
Mike McCormack <mike@codeweavers.com>
- CFM_GETSPEC always returns a space-separated list.
- Fix ofn.nFileOffset when multiple files are selected.

svn path=/trunk/; revision=11960
2004-12-06 09:51:03 +00:00
Richard Campbell
1d2d1a4b45 commented out the progress page in setup because it doesn't currently do anything.
svn path=/trunk/; revision=11959
2004-12-06 09:13:28 +00:00
Alex Ionescu
de8be4fff6 Filip and Richard are both smoking something.
Replaced syntax error and incorrect inversion.

dwUnknown is a reserved parameter (dwReserved is more correct) that is never used, but it's still incorrect to pass 0 because we should respect what the user is sending us.

svn path=/trunk/; revision=11958
2004-12-06 08:41:38 +00:00
Richard Campbell
67c8670a31 - More fixes related to the removal of the 'lib' prefix on various libraries.
- BootCD is working again now.

svn path=/trunk/; revision=11957
2004-12-06 08:33:42 +00:00
Richard Campbell
c07d07cd1a Fixed a typo that prevented ROS from booting properly.
svn path=/trunk/; revision=11956
2004-12-06 08:01:57 +00:00
Richard Campbell
4e8102a8ec - Filip is smoking something :-)
- Replaced a syntax error with 0 for now, as we don't know anything about NtUserUpdatePerUserSystemParameters.

svn path=/trunk/; revision=11955
2004-12-06 07:14:47 +00:00
Filip Navara
fc08e5303b - Basic implementation of (NtUser)UpdatePerUserSystemParameters.
- Move code querying for "PaintDesktopVersion" to NtUserUpdatePerUserSystemParameters.

svn path=/trunk/; revision=11954
2004-12-06 02:23:05 +00:00
Gunnar Dalsnes
3bfcecdd7d fix broken ShareAccess set/update. makes 80+ wine regtests pass
svn path=/trunk/; revision=11953
2004-12-06 00:26:47 +00:00
Gé van Geldorp
88f1bf6c5c Sync to Wine-20041201
Ulrich Czekalla <ulrich@codeweavers.com>
- Prevent the animation thread from waiting on itself when it stops.
Robert Shearman <rob@codeweavers.com>
- Remove unnecessary WNDPROC casts.
Alexandre Julliard <julliard@winehq.org>
- Avoid using the MAKEPOINTS macro, it's broken on big endian.
- Use correct type instead of void* in item linked list.
Dimitrie O. Paun <dpaun@rogers.com>
- Minor cleanups.
- Implement proper GWL_STYLE handling, proper reaction to style changes.
- Merge {{Inc,Dec}rement,Reset{Up,Down}}Field into one method. Fix a
  bunch of bugs in the process.  Implement DTM_[GS]ETMCFONT. Indentation
  fixes, cleanups.
- Use typesafe signature where possible.
- Use Unicode functions where possible.
- Send notification messages in the format dictated by
  infoPtr->notifyFormat.
- Audit the month calendar.
- Rename STATUSWINDOWINFO to STATUS_INFO, for consistency with other
  controls. Fix some prototypes. Always pass infoPtr around.
- Use only Unicode functions, it makes it easier to see we are fully
  Unicode compliant.
Robert Shearman <rob@codeweavers.com>
- Always remove WS_BORDER style from ComboBoxEx control.
- Correct the date of the completeness audit.
- Store the new style before redrawing and repositioning the control.
- Set cache bitmap dimensions correctly when a 0x0 image list is used.
- Optimize WM_STYLECHANGED handler to only redraw when a CCS_* style
  is changed, like native.
- bNtfUnicode is a dup' of bUnicode so remove it and fix the few
  places where it was used.
- Remove a load of useless NULL infoPtr checks.
- Hardcode the default padding like native instead of using a wacky formula.
- Replace some tabs with spaces and remove NMHDR casts.
- Implement TBN_RESTORE notification.
- Don't fill in any more information than native does for notifications.
- Store hit code in a signed integer so that we can see whether it is
  less than zero.
- Draw with ILD_TRANSPARENT instead of ILD_NORMAL to draw bitmaps from
  the native shell image list properly (reported by Thorsten Kani).
- Rewrite TOOLBAR_NotifyFormat to avoid side-effects.
James Hawkins <truiken@gmail.com>
- Fixed a few memory leaks.
Zach Gorman <zach@archetypeauction.com>
- Add the DT_NOPREFIX flag when calling DrawText() for single-line
  listview controls.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Pass infoPtr around in month calendar control.
- Add support for WM_SETFONT and WM_GETFONT messages.
- Dimensions of month calendar control should not depend on the client
  window size.
- Convert NativeFont control to unicode, use hbrBackground as in native.
- Do not retrieve infoPtr twice in ToolbarWindowProc entry.
- do not move updown control and buddy if an alignment was not requested
- in UDM_SETACCEL handler do not forget to update number of accelerators
- update arrows info in WM_LBUTTONDOWN as well as in WM_MOUSEMOVE
- use accelerators in WM_LBUTTONDOWN handler
Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
- Monthcal_SetRange: Set proper value for min date.
Thorsten Kani <beebix@gmx.net>
- Use address of tab_item.extra when building drawitemstruct.
- Don't add extra OFFSET_X/Y to the calculation of rcBitmap.top/left,
  just use GetSystemMetrics.
Huw Davies <huw@codeweavers.com>
- The default font for the treeview should be the icon title font.

svn path=/trunk/; revision=11952
2004-12-05 23:09:27 +00:00
Gé van Geldorp
a0b99a485e Another lib prefix killed: libexpat.dll -> expat.dll
svn path=/trunk/; revision=11951
2004-12-05 23:07:22 +00:00
Gé van Geldorp
d753f25ac5 libwine_unicode.dll is better known as wine_unicode.dll these days
svn path=/trunk/; revision=11950
2004-12-05 23:03:22 +00:00
Filip Navara
9a8220ce63 - Fix RtlInitUnicodeStringEx for NULL case (spotted by Herv� Poussineau).
svn path=/trunk/; revision=11949
2004-12-05 21:42:54 +00:00
Gé van Geldorp
3d7ae60229 Sync to Wine-20041201
James Hawkins <truiken@gmail.com>
- Fix cabextract memory leak.

svn path=/trunk/; revision=11948
2004-12-05 21:30:16 +00:00
Filip Navara
03ac59451e - Implement RtlInitUnicodeStringEx.
svn path=/trunk/; revision=11947
2004-12-05 21:16:01 +00:00
Gé van Geldorp
44109026ba hpoussin <poussine@freesurf.fr>:
- Add full FATX support
- Add volume label setting to FAT volumes
- Change all ANSI_STRING to OEM_STRING (thanks Filip!)
- Correct one bug in VfatUpdateEntry
- Correct one bug in VfatShutdown
Fixes bugs 286, 434 and 442

svn path=/trunk/; revision=11946
2004-12-05 16:31:51 +00:00
Gé van Geldorp
cb48d72333 Copy "halup.dll" to bootcd as "hal.dll"
svn path=/trunk/; revision=11945
2004-12-05 16:27:45 +00:00
Thomas Bluemel
9221b12484 get rid of the "global" system process handle since handles are only vaild in the context of the process that they belong to
svn path=/trunk/; revision=11944
2004-12-05 15:42:42 +00:00
Art Yerkes
61a1526935 Removed my preprocessor hack. DBG appeared to be getting swallowed.
Needs some investigation.

svn path=/trunk/; revision=11943
2004-12-05 08:39:09 +00:00
Gunnar Dalsnes
5f6525bc2b KJK:Hyperion: new macro _SEH_STATIC_FILTER, some changes
svn path=/trunk/; revision=11942
2004-12-05 06:05:52 +00:00
Filip Navara
bddec4f91a - Allocate the MDI client context structure only once (and don't create a second one in WM_CREATE and leak the first one).
- Don't call SetScrollInfo with SB_BOTH.
- Don't add empty system icon to the client menu.

svn path=/trunk/; revision=11941
2004-12-05 03:50:47 +00:00
Filip Navara
abd0ead395 - Fix conversion of messages from Unicode to Ansi and back.
svn path=/trunk/; revision=11940
2004-12-05 03:50:33 +00:00
Filip Navara
20aebf67c0 - Don't delete the "first bitmap" of memory DC. It's done by DeleteDC.
svn path=/trunk/; revision=11939
2004-12-05 01:13:29 +00:00
Filip Navara
ace6b4cce4 - Rebar cursors must be destroyed with DestroyCursor and not with DeleteObject.
svn path=/trunk/; revision=11938
2004-12-05 01:12:56 +00:00
Filip Navara
245bf5efa5 - Update .cvsignore files.
- Remove makefile.ros files from CVS.

svn path=/trunk/; revision=11937
2004-12-05 00:40:28 +00:00
Filip Navara
a40265b10e - Correctly destroy tooltip icons.
- Don't use DrawEdge with NULL device context.

svn path=/trunk/; revision=11936
2004-12-05 00:22:03 +00:00
Filip Navara
326cdb4ba6 - Change DPRINT1 to DPRINT in NtUserCreateDesktop.
- Make the pattern brush bitmap objects global to prevent ownership problems.

svn path=/trunk/; revision=11935
2004-12-05 00:20:41 +00:00
Filip Navara
70a0c8d832 - Disable debugging messages.
svn path=/trunk/; revision=11934
2004-12-05 00:20:22 +00:00
Art Yerkes
e6c94e606c afd/connect.c:
- only pend the irp if we got a pending return from tcpip.
afd/info.c:
- info stub for blocking mode info.
afd/main.c:
- added disconnect plumbing.
- some reformatting, add break after each inactive case.
afd/read.c:
- early return for already closed socket.
- function to correctly complete pending recv irps on a closed socket.
- fixed read completion bug, content properly zeroed before buffer is
  replenished.
- only attempt to fulfill read irps if we got data back.
- call ProcessClose in the no data case.
- major changes to AfdConnectedSocketRead due to connection close.  we now
  recognize the case where the request to tcpip returns zero bytes immediately
  and take action, doing processclose.
afd/tdi.c:
- Added TdiDisconnect.
route.c:
- router: fixed routing bug.  we used to reject the default route if the
  address didn't match at least one bit of the target network, even if the
  netmask is zero.
if.c:
- change RouterGetRoute to RouteGetRouteToDestination
tcp.c:
- simplify TCPReceiveData by removing eof clause.  not needed.
- added SEL_FIN branch in signalling.
- added TCPTranslateError to TCPConnect
- added TCPDisconnect
dispatch.c:
- Implement disconnect
ip_output.c:
- Make a contiguous area from each output packet.  We need to streamline this.
msafd:
- Added MsafdReturnWithErrno
- streamlined function returns with standardize errno selection.

svn path=/trunk/; revision=11933
2004-12-04 23:29:56 +00:00
Gé van Geldorp
b0145a85fe Probing functions 1 and 2 of device 0 on bus 0 completely freezes the Xbox,
blacklist those functions

svn path=/trunk/; revision=11932
2004-12-04 22:52:59 +00:00
Filip Navara
b5cbaeae0c - Don't stop backtrace at the first address that can't be displayed with module name (ie. backtrace over syscalls).
svn path=/trunk/; revision=11931
2004-12-04 22:13:09 +00:00
Filip Navara
f8e3085f08 - Don't try to delete stock font.
svn path=/trunk/; revision=11930
2004-12-04 22:09:02 +00:00
Filip Navara
bf002ea532 - Correct freeing of heap memory.
svn path=/trunk/; revision=11929
2004-12-04 22:08:30 +00:00
Filip Navara
86d655cae7 - Set the ownership of NCUpdateRegion before returning the WM_NCPAINT message, so it's possible to delete it.
svn path=/trunk/; revision=11928
2004-12-04 22:07:24 +00:00
Gé van Geldorp
14db5c210e Forgot to remove the space reservation for hal_pagetable
svn path=/trunk/; revision=11927
2004-12-04 21:48:45 +00:00
Gé van Geldorp
6352c035d1 Add beginnings of HAL for Xbox
svn path=/trunk/; revision=11926
2004-12-04 21:43:37 +00:00
Gé van Geldorp
a0422cb524 Use MmMapIoSpace() instead of messing around with the page tables directly
when mapping the video frame buffer for HAL

svn path=/trunk/; revision=11925
2004-12-04 21:40:55 +00:00
Gé van Geldorp
eb23bc5111 Current versions of VMware provide a correct BIOS memory map
svn path=/trunk/; revision=11924
2004-12-04 20:58:13 +00:00
Filip Navara
5958bb419b - Implement SetMenuItemInfo[AW].
svn path=/trunk/; revision=11923
2004-12-04 19:53:55 +00:00
Filip Navara
495274f192 - Implement lstr[i]cmp[AW] using CompareString[AW] and properly handle NULL parameters.
svn path=/trunk/; revision=11922
2004-12-04 19:52:55 +00:00
Filip Navara
7b11cf526c - Implement QueueUserAPC.
svn path=/trunk/; revision=11921
2004-12-04 19:45:56 +00:00
Filip Navara
8ea045450c - Fix the return value of WaitForMultipleObjectsEx.
svn path=/trunk/; revision=11920
2004-12-04 19:31:26 +00:00
Filip Navara
2cb4c8a744 - Implement QueueUserAPC.
svn path=/trunk/; revision=11919
2004-12-04 19:30:09 +00:00
Thomas Bluemel
5070bf0c61 fixed some function prototypes
svn path=/trunk/; revision=11918
2004-12-04 19:28:47 +00:00
Gé van Geldorp
529f4da133 Let HAL handle its own mapping of the video frame buffer
svn path=/trunk/; revision=11917
2004-12-04 17:22:47 +00:00
Gregor Anich
0291044900 Remove some unused files, little cosmetic changes.
svn path=/trunk/; revision=11916
2004-12-04 17:10:52 +00:00
Gregor Anich
7acc56f32e Added InterlockedCompareExchangePointer macro and 64 bit versions for Interlocked[Compare]ExchangePointer macros for use in ntoskrnl.
svn path=/trunk/; revision=11915
2004-12-04 16:56:20 +00:00
Gregor Anich
666228254c Use InterlockedCompareExchange64 instead of InterlockedCompareExchange for 64bit builds.
svn path=/trunk/; revision=11914
2004-12-04 15:49:20 +00:00
Gregor Anich
0467e4ac56 Remove "lib" suffix from "libwine" because it's added by the build system automatically.
svn path=/trunk/; revision=11913
2004-12-04 15:45:38 +00:00
Hartmut Birr
88ab19cd71 - Split up the handling if the fsd returns STATUS_NOT_IMPLEMENTED in MoveFileWithProgressW.
- Converted the destination name before calling NtSetInformationFile in MoveFileWithProgressW.

svn path=/trunk/; revision=11912
2004-12-04 15:38:22 +00:00
Eric Kohl
98ac389c31 Implement GetSystemDefaultUILanguage() and IsValidLocale().
svn path=/trunk/; revision=11911
2004-12-04 13:59:41 +00:00
Gregor Anich
181afb23d6 Prefix libs in dk/w32 and dk/nkm with "lib" to make use of GCC -l switch possible.
svn path=/trunk/; revision=11910
2004-12-03 23:37:44 +00:00
Gé van Geldorp
92ed2da0da Reorganise HAL so multiple HAL versions can be built in parallel
svn path=/trunk/; revision=11909
2004-12-03 20:10:45 +00:00
James Tabor
bd2288fed5 Fix and add missing files, and will allow the use of bison as an option of choice.
svn path=/trunk/; revision=11907
2004-12-03 06:21:44 +00:00
Thomas Bluemel
67ca81e36d no need to copy the buffers to the stack
svn path=/trunk/; revision=11906
2004-12-02 21:22:36 +00:00
Thomas Bluemel
9786cae211 the time zone buffers need to be large enough, applications like firefox might attempt to write into it
svn path=/trunk/; revision=11905
2004-12-02 21:19:56 +00:00
Filip Navara
3c09abb096 - Remove duplicate definitions.
svn path=/trunk/; revision=11904
2004-12-02 21:01:11 +00:00
Filip Navara
44ed30d08a *** empty log message ***
svn path=/trunk/; revision=11903
2004-12-02 19:46:16 +00:00
Filip Navara
80686a352c - Update OLEAUT32 to Wine-20041202
svn path=/trunk/; revision=11902
2004-12-02 19:38:49 +00:00
Eric Kohl
ccfff75080 Use the GMT timezone by default.
svn path=/trunk/; revision=11901
2004-12-02 14:09:25 +00:00
Eric Kohl
9fbe02e539 - RegQueryValueExA: Return the correct data size for binary data types.
svn path=/trunk/; revision=11900
2004-12-02 14:08:27 +00:00
Gregor Anich
bfbb47d39e Fixed handling of exceptions in memory read/write functions, moved ASSERT(0) to the right place.
svn path=/trunk/; revision=11898
2004-12-02 01:33:02 +00:00
Emanuele Aliberti
78b654db33 I removed an old comment about replacing PAGESIZE with PAGE_SIZE, which somebody else already did.
svn path=/trunk/; revision=11897
2004-12-01 23:51:11 +00:00
Gregor Anich
383304c284 Catch hang-up regtests, added _DispatcherTimeout macros for tests to specify timeout (default is 5000ms)
svn path=/trunk/; revision=11896
2004-12-01 23:23:47 +00:00
Emanuele Aliberti
550e5093ca *** empty log message ***
svn path=/trunk/; revision=11895
2004-12-01 23:05:37 +00:00
Magnus Olsen
70f9a164de Thx filps
> This is wrong and this file should be autogenerated. Only the
> dinput.spec file should be in CVS!
>
> - Filip

svn path=/trunk/; revision=11894
2004-12-01 20:46:33 +00:00
Filip Navara
b1ac258a6d - Get full OLEAUT32 to compile.
svn path=/trunk/; revision=11893
2004-12-01 20:06:15 +00:00
Thomas Bluemel
18ef45edfe Always use the PSEH names for NLG to avoid conflicts when _SEH_NO_NATIVE_NLG is defined but <setjmp.h> is included nevertheless. This fixes the use of PSEH in win32k. Also declared the _SEHCompilerSpecificHandler as __inline so that GCC will ignore it when it's unused. This fixes the inclusion of <pseh.h> in a PCH
Patch by KJK

svn path=/trunk/; revision=11892
2004-12-01 19:20:53 +00:00
Thomas Bluemel
572a3a13c5 removed unused definitions
svn path=/trunk/; revision=11891
2004-12-01 18:38:04 +00:00
Magnus Olsen
a5e8dcaa7d add
opengl32.dll, glu32.dll, dinput.dll, dinput8.dll to reactos bootcd

svn path=/trunk/; revision=11890
2004-12-01 16:09:03 +00:00
Magnus Olsen
ed830f0425 Build
Dxguid, dinput and dinput8
from reactos make file

svn path=/trunk/; revision=11889
2004-12-01 16:07:57 +00:00
Magnus Olsen
3da7540959 forget add file dinput.spec.def
other wise dinput8 will not build

svn path=/trunk/; revision=11888
2004-12-01 16:05:39 +00:00
Magnus Olsen
d77247b55e forget add file dinput.spec.def
other wise dinput will not build

svn path=/trunk/; revision=11887
2004-12-01 15:58:32 +00:00
Magnus Olsen
3e1bd42330 forget add file dinput.spec.def
other wise dinput will not build

svn path=/trunk/; revision=11886
2004-12-01 15:20:13 +00:00
Eric Kohl
019c9076ee Set timezone without changing the local time.
svn path=/trunk/; revision=11885
2004-12-01 14:28:54 +00:00
Art Yerkes
ceeb351515 - sanity check: assert DISPATCH_LEVEL for the dpc.
- Added a DEBUG_LOCK that shows lock activity.
- Moved crummy externs from event.c to tcp.h
- Withdraw TCPCancelReceiveRequest: i didn't mean to commit that
- Added signalled sockets list to TCP so that we don't do reentrant stuff from
  inside oskit.  The signal list holds sockets that have been identified by
  oskit as needing service.
- After packet receive and on the timer we drain this list, designalling each
  socket and completing relevant irps.
- According to msdn, the io cancellation routine must release the cancel spin
  lock, but we're entered with it acquired.  Our implementation in ntoskrnl
  matches this so the tcpip implementation was wrong.  Removed acquire.
- DDKAPI on DispCancelRequest.  Avoid some stack corruption on DPCs that now
  shows up.
- Make sure to IpMarkIrpPending and not edit flags by hand on Irps in dispatch.

svn path=/trunk/; revision=11884
2004-12-01 08:14:15 +00:00
Art Yerkes
89dd06fa40 miniport:
Make sure MiniQueueDpc is not called from PASSIVE_LEVEL.
Moved NdisMQueryInformationComplete so that the function and not the macro
is called from the DPC.  This was breaking stuff severely.
The adapter lock needn't be held when doing MiniDequeueWorkItem because we're
at DISPATCH_LEVEL already by virtue of being in a DPC target.
protocol:
Make sure MiniQueueWorkItem is called at DISPATCH_LEVEL.

svn path=/trunk/; revision=11883
2004-12-01 08:02:28 +00:00
Richard Campbell
ad7e640f0c msiexec requires msi, so don't build that either, as it breaks the tree.
svn path=/trunk/; revision=11882
2004-12-01 05:49:23 +00:00
Magnus Olsen
c40648eb2d add mouse support to dinput
note the mouse buffer are bit broke. do not expect some games working with the mouse

I hope this will dispary when gdi hooks comes

svn path=/trunk/; revision=11881
2004-11-30 20:29:48 +00:00
Thomas Bluemel
6f1f653942 don't build msi for now as it uses a 3rd party build utility until situation is cleared
svn path=/trunk/; revision=11880
2004-11-30 20:21:33 +00:00
James Tabor
5679e292f7 Added msi.dll and msiexec to the build system.
svn path=/trunk/; revision=11879
2004-11-30 19:19:48 +00:00
James Tabor
a9a6f59924 Sync msiexec with winehq cvs
svn path=/trunk/; revision=11878
2004-11-30 19:16:37 +00:00
James Tabor
34151c8b26 First port of Wine projects msi.dll
svn path=/trunk/; revision=11877
2004-11-30 19:10:50 +00:00
Art Yerkes
6b4f09638b connect: Allow async connections, and assume that concurrent operations
(like write) can happen.
main: Allow empty EaInfo in open, re: async select and the special control
socket.
read + write: assertions
tdi: don't wait for connect to return, remove event.

svn path=/trunk/; revision=11876
2004-11-30 04:49:50 +00:00
Art Yerkes
38ac0afdbb Make packet printing obey debug bits.
svn path=/trunk/; revision=11875
2004-11-30 04:23:42 +00:00
Art Yerkes
3fcb2d5efc Turned off printing in oskittcp.
svn path=/trunk/; revision=11874
2004-11-30 04:17:34 +00:00
Gunnar Dalsnes
00641f6f5b can't free non-allocated memory
svn path=/trunk/; revision=11873
2004-11-30 02:28:00 +00:00
Gunnar Dalsnes
bcf7f5403f don't free non allocated memory
svn path=/trunk/; revision=11872
2004-11-30 02:26:25 +00:00
Art Yerkes
fa6c7ae193 - Defined __NTDRIVER__ to turn on some code that is meant only for kernel mode.
- Removed another address object (AddrBuildAddress)
- Removed ROUTE_CACHE_NODE everywhere and replaced it with NEIGHBOR_CACHE_ENTRY
  anywhere it was used, since NCE contains sufficient information.
  - We will need to reintroduce PathMTU (the only unique information) in RCN.
    I intend to do that by expanding the NCE to contain an entry for each
    remote contact (not only neighbors), and add an MTU field there.
- ICMP, TCP, UDP, RawIP, IPSendDatagram - Changed RCN to NCE
- Protect ip timer work item from being multiply queued under load.
- Router: Add RouteGetRouteToDestination (the only function preserved from
  route.c).  This function is cut down to only calling FindOnLinkInterface
  and RouterGetRoute.
- Added DefaultGateway handling (The default route is automatically added).
- Cleaning in CONNECTION_ENDPOINT (removed ReceivedSegments)
- iinfo: Return correct type number for loopback adapter.

svn path=/trunk/; revision=11871
2004-11-30 00:10:41 +00:00
Gunnar Dalsnes
1abe87090e make some wine reg. tests pass
svn path=/trunk/; revision=11870
2004-11-29 17:31:21 +00:00
Filip Navara
dc2d3110e4 Dmitry Timoshkov <dmitry@codeweavers.com>
DrawTextEx should allocate text buffer on stack for thread safeness.

svn path=/trunk/; revision=11869
2004-11-29 16:51:10 +00:00
Eric Kohl
17f1fe8577 - FileTimeToLocalFileTime() and LocalFileTimeToFileTime() take timezone bias into account.
svn path=/trunk/; revision=11868
2004-11-29 15:02:33 +00:00
Eric Kohl
df74513933 - Convert boot time and system time from local time to UTC as soon as the timezone information is available.
- ExLocalTimeToSystemTime() and ExSystemTimeToLocalTime() take timezone bias into account.

svn path=/trunk/; revision=11867
2004-11-29 15:00:46 +00:00
Steven Edwards
456c0f4377 Removed inclusion of stdio.h as it causes a build error under one of my gccs
svn path=/trunk/; revision=11866
2004-11-29 04:10:31 +00:00
Gunnar Dalsnes
0e4455e169 forgot to remove something
svn path=/trunk/; revision=11865
2004-11-29 01:42:03 +00:00
Magnus Olsen
aafa6f0a89 first port of wine directx support to reactos
add wine dinput and dinput8 it have been modify to working in windows and reactos.
when reactos got hooks implant remove all #ifdef __REACTOS__  and code that belong it compelete, then
remove all #ifndef __REACTOS__  to geting in working in reactos and windows.
dxguid comes from mingw with some modify

todo
rewrite dection code of keyboard, mouse, joystick to using windows registers to get what type of hardware.

Limit
Only keyboard are working in reactos for moment.

svn path=/trunk/; revision=11864
2004-11-29 00:15:23 +00:00
Magnus Olsen
7fed5c71ae remove it for wine dinput
svn path=/trunk/; revision=11863
2004-11-29 00:13:08 +00:00
Gunnar Dalsnes
e108cd331f "import" profiles.c from wine. all Wine's profile reg. tests now pass
svn path=/trunk/; revision=11862
2004-11-29 00:08:59 +00:00
Gunnar Dalsnes
c084bd7f6f add missing glue
svn path=/trunk/; revision=11861
2004-11-29 00:06:22 +00:00
Gunnar Dalsnes
1b870b2636 RtlDetermineDosPathNameType_U: give meaningfull names to constands (from wine)
svn path=/trunk/; revision=11860
2004-11-29 00:05:31 +00:00
Gé van Geldorp
6e001376f9 Add hardware detection stub for Xbox
svn path=/trunk/; revision=11859
2004-11-28 22:42:40 +00:00
Gregor Anich
7123f1d088 Cleaned config.h a bit...
svn path=/trunk/; revision=11858
2004-11-28 22:07:19 +00:00
Gregor Anich
7be720f8ec Move some ntoskrnl compiletime configuration defines into ntoskrnl/include/config.h (new file)
svn path=/trunk/; revision=11857
2004-11-28 22:06:25 +00:00
Gé van Geldorp
90a424deea Adjust screen width if HDTV cable in use
svn path=/trunk/; revision=11856
2004-11-28 21:54:11 +00:00
Gregor Anich
bbc25623e4 Add Mesa3D, FreeBSD and adns to the list of acknowledged projects.
svn path=/trunk/; revision=11855
2004-11-28 21:52:08 +00:00
Art Yerkes
6a56469c5a Turned off debug output in CVS (we need a better way to do this).
svn path=/trunk/; revision=11854
2004-11-28 21:21:11 +00:00
Gunnar Dalsnes
baad262a94 deny usage of too long strings in add/find atom. makes wine reg. tests happy.
svn path=/trunk/; revision=11853
2004-11-28 21:16:15 +00:00
Gregor Anich
e0f64b28d5 There's no reason to set TS in cr0 when returning from a w32 callback - either the thread will have used the FPU, in this case we don't do anything, or it has not used the FPU and we copy it's saved FPU state (if any) into the original's stack FPU area (in this case TS in cr0 will already be set and we don't need to set it)
svn path=/trunk/; revision=11852
2004-11-28 18:14:02 +00:00
Gé van Geldorp
947403dfc8 Fix vertical position of text in single-line edit controls.
svn path=/trunk/; revision=11851
2004-11-28 16:51:18 +00:00
Eric Kohl
d899ea5ca7 Set system time and update boot time and relative timers.
svn path=/trunk/; revision=11850
2004-11-28 12:59:33 +00:00
Hartmut Birr
e8e894de92 - Dipped the code between HalInitializeProcessor and HalStartNextProcessor. Used the functions according its names.
- Changed the init sequence in KeInit1 and KePrepareForApplicationProcessorInit.
- Fixed the pae mode initialisation for application processors.

svn path=/trunk/; revision=11849
2004-11-28 01:31:08 +00:00
Hartmut Birr
e67ae130d4 - Improved smp functions.
- Fixed the enabling/disabling of the higher irqs in Enable8259AIrq/Disable8259AIrq.
- Moved the local apic functions into its own file.
- Implemented the IpiInterrupt.
- Changed the destination of the startup ipis.
- Enabled interrupts on calls to KiDispatchInterrupt and KiDeliverApc.
- Delivered dpcs always on HalEndSystemInterrupt.
- Set the logical apic id according to the processor number from ntoskrnl.
- Dipped the code between HalInitializeProcessor and HalStartNextProcessor.
  Used the functions according its names.

svn path=/trunk/; revision=11848
2004-11-28 01:30:02 +00:00
Hartmut Birr
4ed81178eb - Canceled my last changes.
svn path=/trunk/; revision=11847
2004-11-27 23:50:27 +00:00
Hartmut Birr
7eacfe074f - Used a fast mutex for the client id structure.
svn path=/trunk/; revision=11846
2004-11-27 19:41:55 +00:00
Hartmut Birr
ae233008f1 - Enabled interrupts on page faults also for V86 mode.
svn path=/trunk/; revision=11845
2004-11-27 19:32:57 +00:00
Hartmut Birr
63e5456684 - Fixed a debug message.
svn path=/trunk/; revision=11844
2004-11-27 19:29:22 +00:00
Hartmut Birr
f3a288609e - Fixed the processor number at the call to KiIpiSendRequest.
svn path=/trunk/; revision=11843
2004-11-27 19:27:31 +00:00
Hartmut Birr
728ecbbafb - Simplified the irq lock table.
- Enabled interrupts while calling KiDeliverApc.

svn path=/trunk/; revision=11842
2004-11-27 19:24:15 +00:00
Hartmut Birr
e0b921f698 - Removed the timer value lock, because this lock isn't necessary.
- Update the kernel and user time from the kpcr.

svn path=/trunk/; revision=11841
2004-11-27 16:57:03 +00:00
Hartmut Birr
e64b5d5945 - Acquire the dispatcher database lock in PsBlockThread if the caller didn't
acquire this lock. This prevents from dead locks on smp machines.

svn path=/trunk/; revision=11840
2004-11-27 16:52:35 +00:00
Hartmut Birr
6c0c99c180 - Prevent from terminate a thread for twice.
- Don't call KeCancelTimer for the thread timer if the thread lock is held.

svn path=/trunk/; revision=11839
2004-11-27 16:47:05 +00:00
Hartmut Birr
be30cb2cf0 - Update the page directories for the stack outside of the code where the dispatcher database lock is held.
svn path=/trunk/; revision=11838
2004-11-27 16:42:50 +00:00
Eric Kohl
0a7852d87c - F4 key flips the listbox in default (not extended UI) mode.
svn path=/trunk/; revision=11837
2004-11-27 16:38:28 +00:00
Hartmut Birr
2c9eb4b5f2 - Made a tlb entry invalid on all processors if the mapping is deleted or changed.
svn path=/trunk/; revision=11836
2004-11-27 16:37:52 +00:00
Eric Kohl
460b7f79ca - User ASSERT instead of assert.
svn path=/trunk/; revision=11835
2004-11-27 16:36:01 +00:00
Eric Kohl
79f4538d98 - User ROUND_UP macros to calculate the ACL size.
- Fix potential 64 bit issues.

svn path=/trunk/; revision=11834
2004-11-27 16:33:21 +00:00
Hartmut Birr
79a75d3246 - Implemented KiIpiSendRequest for simple requests.
- Removed KeIpiCallForBootProcessor.
- Used the KPCR of the processors for storing the ipi data.

svn path=/trunk/; revision=11833
2004-11-27 16:32:10 +00:00
Hartmut Birr
b51c0305db - Saved the fpu state before the actual thread switching occurs (only for smp machines).
svn path=/trunk/; revision=11832
2004-11-27 16:19:22 +00:00
Hartmut Birr
2b6de7c143 - Saved the state of the fpu at a win32 call and restored the state
after the call to the previous state.

svn path=/trunk/; revision=11831
2004-11-27 16:12:26 +00:00
Eric Kohl
73c4349b14 Enlarge the timezone combobox so that more timezones are displayed.
svn path=/trunk/; revision=11830
2004-11-27 13:33:40 +00:00
Filip Navara
0548bf639e - Fix calling convention of IoReadPartitionTable, IoSetPartitionInformation and IoWritePartitionTable.
svn path=/trunk/; revision=11829
2004-11-27 13:04:06 +00:00
Eric Kohl
aeda3e3f55 Remove the DPRINT containing SharedData->DosDeviceMap entirely because it doesn't exist any more.
svn path=/trunk/; revision=11828
2004-11-27 11:42:56 +00:00
Casper Hornstrup
dd3ebaf245 2004-11-27 WaxDragon <waxdragon@gmail.com>
* bootdata/packages/reactos.dff: Add dnsapi.dll, iphlpapi.dll,
	rpcrt4.dll, and ole32.dll.

svn path=/trunk/; revision=11827
2004-11-27 00:56:28 +00:00
Casper Hornstrup
2e0a20f0c4 2004-11-27 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/driver/load/.cvsignore: Use native line-endings.
	* apps/utils/driver/load/makefile: Ditto.
	* apps/utils/driver/unload/.cvsignore: Ditto.
	* apps/utils/driver/unload/makefile: Ditto.
	* apps/utils/infinst/.cvsignore: Ditto.
	* drivers/fs/ntfs/notes.txt: Ditto.
	* drivers/lib/csq/MAKEFILE: Ditto.
	* drivers/test/csqtest/Makefile: Ditto.
	* drivers/test/csqtest/SOURCES: Ditto.
	* drivers/video/displays/vga/main/enable.c: Ditto.
	* drivers/video/displays/vga/objects/copybits.c: Ditto.
	* include/tgetopt.h: Ditto.
	* include/ntos/kdbgsyms.h: Ditto.
	* lib/freetype/i386/setjmplongjmp.s: Ditto.
	* lib/icmp/icmp.dsp: Ditto.
	* lib/msvcrt/setjmp/i386/setjmp.s: Ditto.
	* lib/string/strncpy.c: Ditto.
	* tools/rgenstat/web/.cvsignore: Ditto.
	* tools/wmc/y_tab.c: Ditto.

svn path=/trunk/; revision=11826
2004-11-27 00:46:25 +00:00
Art Yerkes
e0e18ffc09 Correct silly bugcheck when a packet will not be routed. Not exposed before
because of false positives on loopback adapter.
We need to expect NCE to be NULL.

svn path=/trunk/; revision=11825
2004-11-26 21:17:22 +00:00
Art Yerkes
80178bd318 Removed RouteFriendlyAddRoute. Not needed.
Router now chooses a route correctly:
- Only choose a route if the prefix length is greater than or equal to the
  netmask. for the target route.  (We still choose the most specific route).
- Changed NBAddNeighbor to NBFindOrCreateNeighbor in
  RouteAddRouteToDestination because it triggers an ARP probe.  Setting the
  ARP cache state initially to PROBE skips the first ARP query and runs a
  bit afoul of the cache entry state machine.

svn path=/trunk/; revision=11824
2004-11-26 20:32:54 +00:00
Aleksey Bragin
ca85c39272 Removed DPRINT containing SharedData->DosDeviceMap, since there is no DosDeviceMap in this struct.
If someone thinks this is wrong, please correct me (I asked in channel, but no reaction at all)

svn path=/trunk/; revision=11823
2004-11-26 17:36:18 +00:00
Thomas Bluemel
2a76e70cbe fixed line endings
svn path=/trunk/; revision=11822
2004-11-26 12:53:51 +00:00
Art Yerkes
fe500719a5 Moved pseh.h away from precomp.h to avoid 'defined but not used' warning.
svn path=/trunk/; revision=11821
2004-11-26 08:26:24 +00:00
Art Yerkes
01e1531802 Converted eols.
svn path=/trunk/; revision=11820
2004-11-26 07:41:25 +00:00
Art Yerkes
e593105229 Fixed ws2_32 for __USE_W32API and dnsapi.
svn path=/trunk/; revision=11819
2004-11-26 07:24:17 +00:00
Art Yerkes
b3c9021b8f - Added add and delete route primitives in tcpip/ninfo.c
- Changed signature of RouterRemoveRoute to better match the information
  provided at the time when we delete a route.
- Changed signature of RouterCreateRoute for consistency.
- Cleaned up ninfo, get route info a bit.  Removed 'bad' case, not needed.
  Made magic 2 into TDI_ADDRESS_TYPE_IP, shortened code.
- Added AddrWidenAddress to generate a network address from a target and
  netmask.
- Changed the main mib to contain the number of fib entries, not the number
  of route cache entries.

svn path=/trunk/; revision=11818
2004-11-26 06:55:17 +00:00
Art Yerkes
9eef3a6021 Used IP_FORWARD_ADD and IP_FORWARD_DEL constants instead of numbers.
svn path=/trunk/; revision=11817
2004-11-26 06:52:59 +00:00
Art Yerkes
5f4756c3f5 Added simple route utility that uses iphlpapi to change the route table.
svn path=/trunk/; revision=11816
2004-11-26 06:51:47 +00:00
Art Yerkes
9ee12f6e6e Forwarder for __USE_W32API.
svn path=/trunk/; revision=11815
2004-11-26 06:21:45 +00:00
Art Yerkes
f968d716fa Converted registry functions to unicode.
HeapFree -> RtlFreeHeap and similar.
Populated resinfo_reactos.  We will now pull the nameservers from the
primary list in Services\Tcpip\Parameters, as well as from per-adapter
lists.

svn path=/trunk/; revision=11814
2004-11-26 00:32:59 +00:00
Art Yerkes
d06ac05a3c Fixed dnsapi for use with w32api headers by adjusting a few names (mostly
DNS_RECORDA,W -> DNS_RECORD)
Fixed bug in DnsQuery, we weren't checking NULL on result->rrs.addr.

svn path=/trunk/; revision=11813
2004-11-26 00:12:57 +00:00
Art Yerkes
bcfb287416 - Removed prefix.c and the prefix list. Adapter and route netmasks are now
checked directly.
- Removed ADE lists on adapters and associated functions.  Adapters now have
  a set of address fields with well-known meanings.
- Removed functions that allocate IP_ADDRESS.  No IP_ADDRESS is ever allocated
  alone any longer.  This saves management overhead and heap traffic.
- Removed NET_TABLE_ENTRY and NTE list and associated functions.  Lookups are
  now done against the original information sources, the adapter list, the
  neighbor cache and the route table.
- Propogated NTE removal throughout, changing NTE to IP_INTERFACE in every
  case.
- When we have alias support, we'll create multiple interfaces referencing
  the same adapter.  This is consistent with the way BSDs do it and I feel
  it provides sufficient abstraction.
- Allow a zero-length buffer request in info to return the number of bytes
  needed for the request to succeed.

svn path=/trunk/; revision=11812
2004-11-25 23:56:59 +00:00
Art Yerkes
fd54d2585c Added Exclusive flag in afd, which is used by WSAAsyncSelect. Previous
exclusive selects should be completed with STATUS_CANCELLED when a new
exclusive one is posted.
Minor hack for the locked handle set.  Not dangerous but should be made
better.

svn path=/trunk/; revision=11811
2004-11-25 23:36:36 +00:00
Art Yerkes
c350a8df8c Added WSPEnumNetworkEvents, some reformatting.
Will be modified by alex_ionescu shortly.

svn path=/trunk/; revision=11810
2004-11-25 23:35:06 +00:00
Art Yerkes
773d644b11 Added gethostbyname implementation written by Adam Kelly (insulanus).
- Mostly complete, does not support multiple returned a records or hosts file
  though
- Relies on dnsapi
- Stores hostent struct in teb->Hostent

svn path=/trunk/; revision=11809
2004-11-25 23:32:54 +00:00
Filip Navara
077765450f - Send the WM_ACTIVATE message with WA_INACTIVE when deactivating window to the window being deactivated (ie. revert last w3seek's change).
- Send the deactivation messages *before* setting the active window for message queue.

svn path=/trunk/; revision=11808
2004-11-25 22:18:59 +00:00
Alex Ionescu
1623a0079f Fix IO completion APIs/Structures.
Implement WSPASyncSelect and friends. Event re-enabling functionality missing and will be added tonight.

svn path=/trunk/; revision=11807
2004-11-25 22:18:17 +00:00
Eric Kohl
3379855217 - Replace WIN32 types by corresponding native types.
- Replace debug macros and fix potential 64bit issues (pointers casted to DWORDs).

svn path=/trunk/; revision=11804
2004-11-25 19:25:06 +00:00
KJK::Hyperion
3bd2eb22b1 blight's elf.h
svn path=/trunk/; revision=11803
2004-11-25 18:24:08 +00:00
Gregor Anich
0662980bf4 Multiprocessor support for FPU/SSE state saving.
svn path=/trunk/; revision=11802
2004-11-25 13:22:54 +00:00
Eric Kohl
0229e6cb3a Preselect the timezone based on the current user language.
svn path=/trunk/; revision=11801
2004-11-24 23:09:46 +00:00
Eric Kohl
c5881e6a93 Add acknowledgement page and license dialog and update title strings.
svn path=/trunk/; revision=11800
2004-11-24 21:28:14 +00:00
Gé van Geldorp
1f759dcf55 If stub name is of the form function@0, output as function@0@0 in the .def
file because the last @0 will be stripped later on

svn path=/trunk/; revision=11799
2004-11-24 20:11:52 +00:00
Filip Navara
6e2b742680 - Fix pointer arithmetic on FileName variable in NtCreateProcess (spotted by Arty).
svn path=/trunk/; revision=11798
2004-11-24 18:13:18 +00:00
Filip Navara
eee803acf7 - Add PCNET driver to the boot CD.
svn path=/trunk/; revision=11797
2004-11-24 17:57:14 +00:00
Filip Navara
5a384bebca - Fix call to RtlInitializeBitMap (spotted and debugged by Arty).
svn path=/trunk/; revision=11796
2004-11-24 17:54:38 +00:00
Eric Kohl
11bc9ef5f4 Replace assert_irql by ASSERT_IRQL.
svn path=/trunk/; revision=11795
2004-11-24 11:12:19 +00:00
Eric Kohl
4605029c67 Don't use a hardcoded sector size of 512 bytes.
svn path=/trunk/; revision=11794
2004-11-24 11:09:49 +00:00
Eric Kohl
0b6ffe64b0 Replace assert by ASSERT.
svn path=/trunk/; revision=11793
2004-11-24 11:02:15 +00:00
Art Yerkes
d1ad9c04ee simple gethostbyname test case
svn path=/trunk/; revision=11792
2004-11-24 04:08:44 +00:00
Thomas Bluemel
a0811f8010 don't send WM_ACTIVATE messages to the previous active window which caused the infinite loop in regedit
svn path=/trunk/; revision=11791
2004-11-24 00:11:06 +00:00
Filip Navara
842b2d68dc Merge:
MiniLocateAdapter never zeroed Adapter if the adapter didn't match,
  and never actually ever matched a name.  It always returned the
  last adapter in the list.

svn path=/trunk/; revision=11790
2004-11-23 23:51:01 +00:00
Filip Navara
f8246d2f62 Merge from ndis_wip_22102004 branch:
- Compile with W32API headers.
- Remove obsolate and no more exported functions (as of NDIS 5.1).
- Shrink the LOGICAL_ADAPTER structure a bit and use NDIS_MINIPORT_BLOCK fields instead.
- Make the WrapperConfigurationHandle an opaque structure instead of registry key handle.
- Use PnP DMA interface instead of the HAL one (TODO: Add reference counting).
- Move Ethernet filter routines from 40gone.c/miniport.c to separate file (efilter.c).
- Add PnP IRP handler and move device intitialization to IRP_MN_START_DEVICE handler.
- Implement device shutdown in IRP_MN_STOP_DEVICE.
- Minor fix for sending packets with deserialized miniports.
- Read bus type, bus number and slot number from registry if the PnP manager doesn't supply them.
- NdisMFreeMapRegisters shouldn't crash if no map registers were allocated.
- Implement NdisMQueryAdapterResources, NdisMGetDmaAlignment and NdisMReadDmaCounter.
- Implement NdisMPciAssignResources (Eric Kohl).
- Fix Ndis[Read/Write]PciSlotInformation to work for non-primary PCI buses (Eric Kohl).

svn path=/trunk/; revision=11789
2004-11-23 18:58:47 +00:00
Gé van Geldorp
0b66faaabd Make transfer of control to kernel work on Xbox
svn path=/trunk/; revision=11787
2004-11-23 11:28:02 +00:00
Magnus Olsen
6de4a5c738 remove -werror to get it compile agein
svn path=/trunk/; revision=11786
2004-11-23 11:14:41 +00:00
Gé van Geldorp
bb446ae87d Change dialog sizes to fit into 640x480
svn path=/trunk/; revision=11783
2004-11-22 20:35:56 +00:00
Art Yerkes
ce8fea9728 Changed Context to PC(NdisPacket)->Context in DLComplete call in
LoopTransmit.  We were passing the wrong context (our own) when we
should have passed the client's context.  Silly bug made possible
by use of void *.

svn path=/trunk/; revision=11782
2004-11-22 17:08:33 +00:00
Eric Kohl
e4b1bafb21 RegQueryValueExA: Free ValueName Unicode string when it is no loger in use.
svn path=/trunk/; revision=11781
2004-11-22 16:11:25 +00:00
Thomas Bluemel
adb7404b3d install msimg32.dll which is required by explorer
svn path=/trunk/; revision=11780
2004-11-22 12:45:23 +00:00
Gé van Geldorp
a652e3b1ee - Add automatic dependency tracking
- Add acknowledgements/license page

svn path=/trunk/; revision=11779
2004-11-22 11:01:45 +00:00
Gé van Geldorp
b87b03682a Zach Gorman <zach@archetypeauction.com>
The initial dialog focus should be established by the default handler
for SetFocus(), not in the dialog creation code.

svn path=/trunk/; revision=11778
2004-11-22 10:59:01 +00:00
Casper Hornstrup
7982beed9e 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/Makefile (UTIL_APPS): Remove regsvr32.

svn path=/trunk/; revision=11777
2004-11-21 23:00:18 +00:00
Casper Hornstrup
2f2747b9dd 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/regsvr32: Move to subsys/system/regsvr32.

svn path=/trunk/; revision=11776
2004-11-21 22:45:51 +00:00
Martin Fuchs
178f3ae085 fix UTF8 conversion for the bookmarks list
svn path=/trunk/; revision=11775
2004-11-21 22:42:51 +00:00
Casper Hornstrup
dd1feec678 * Remove arp, finger, ipconfig, netstat, ping, telnet, and whois; Moved to reactos.
svn path=/trunk/; revision=11774
2004-11-21 22:33:50 +00:00
Casper Hornstrup
4a35f24013 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/Makefile (UTIL_NET_APPS): Add arp, finger, ipconfig,
	netstat, ping, telnet, and whois.
	* bootdata/packages/reactos.dff: Add arp.exe, finger.exe, ipconfig.exe,
	netstat.exe, ping.exe, telnet.exe, and whois.exe.
	* apps\utils\net\arp: New directory; Move from rosapps.
	* apps\utils\net\finger: Ditto.
	* apps\utils\net\ipconfig: Ditto.
	* apps\utils\net\netstat: Ditto.
	* apps\utils\net\ping: Ditto.
	* apps\utils\net\telnet: Ditto.
	* apps\utils\net\whois: Ditto.

svn path=/trunk/; revision=11773
2004-11-21 22:27:01 +00:00
Alex Ionescu
58eb955e58 Put back 1.5 Revision. CVS messed up the update and kept the old mps.h when I comitted.
svn path=/trunk/; revision=11772
2004-11-21 22:01:11 +00:00
Alex Ionescu
1fe3441f75 Hal DMA Patch: Implemented correct AdapterObject, updated some AdapterFunctions, which are much more complete and correct now. Implemented EISA structure for port access instead of hard-coded offsets.
svn path=/trunk/; revision=11771
2004-11-21 21:53:07 +00:00
Gé van Geldorp
ac33643ce2 After creating the nice error message, actually pass it on to the error
reporting routine. Thanks Casper.

svn path=/trunk/; revision=11770
2004-11-21 21:33:04 +00:00
Thomas Bluemel
587b831bb2 don't use uninitialized variable
svn path=/trunk/; revision=11769
2004-11-21 21:23:24 +00:00
Thomas Bluemel
ad45691d40 1. don't allow the ProcessImageFileName information class for NtSetInformationProcess() anymore
2. implemented the ProcessImageFileName class for NtQueryInformationProcess
3. changed NtCreateProcess to obtain the file name of the loaded image

svn path=/trunk/; revision=11768
2004-11-21 21:09:43 +00:00
Casper Hornstrup
19f47c9b4f * Remove calc, regedt32, and regsvr32; Moved to reactos.
svn path=/trunk/; revision=11767
2004-11-21 21:07:33 +00:00
Casper Hornstrup
fd70584747 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile (SYS_APPS): Add calc, regedt32, and regsvr32.
	* bootdata/packages/reactos.dff: Add calc.exe, regedt32.exe, and
	regsvr32.exe.
	* subsys/system/calc: New directory; Move here from rosapps.
	* subsys/system/regedt32: Ditto.
	* subsys/system/regsvr32: Ditto.

svn path=/trunk/; revision=11766
2004-11-21 21:02:04 +00:00
Art Yerkes
23398b098d - Improvements for select/implementation of event select.
- Added EventSelect PKEVENT, and other bits needed in AFD_FCB to implement
  event select.
- Select and event select are now properly notified on socket hangup.
- Added more places where state changes are needed.
- PollReeval now has the alternate goal of firing the event select event.
- Fixed crash with unsupported protocols, re: null device
- Set AFD_EVENT_SEND and AFD_EVENT_RECEIVE appropriately on connect complete.
- Fixed sending FIN from a dying socket and receiving SEL_FIN on one in tcpip,
  by adding an additional way to lookup sockets.
- Removed even more spew.
- Small speedup: don't need to redo checksum in tcp_input.  It's already done
  in our ip defrag code.

svn path=/trunk/; revision=11765
2004-11-21 20:54:52 +00:00
Gunnar Dalsnes
55ff4ad170 add stubs GetSecurityInfoExA/W
svn path=/trunk/; revision=11764
2004-11-21 20:14:36 +00:00
Casper Hornstrup
98e47a5b69 * Replace bzero with memset and bcopy with memcpy
svn path=/trunk/; revision=11763
2004-11-21 20:10:22 +00:00
Art Yerkes
3adacc20ec Correct uninitialized warnings for Status in two places.
svn path=/trunk/; revision=11762
2004-11-21 19:51:37 +00:00
Steven Edwards
27e4ae606f Most of what is needed is already in w32api/include.
svn path=/trunk/; revision=11761
2004-11-21 19:18:01 +00:00
Casper Hornstrup
9cfd7436ac 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* bootdata/hivesys.inf: Remove kmregtests.

svn path=/trunk/; revision=11760
2004-11-21 19:11:31 +00:00
Gunnar Dalsnes
b424efdf6b kill.c: remove useless call to KeRemoveAllWaitsThread + misc
usecall.c: fix apc delivery
debug.c: add irql asserts

svn path=/trunk/; revision=11759
2004-11-21 18:42:58 +00:00
Casper Hornstrup
e4a0875a54 2004-11-21 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile (DLLS_KBD): Add kbdda.
	* bootdata/txtsetup.sif: Add Danish language 406.
	* bootdata/hivesys.inf: Add kbdda.dll for Danish language 406.
	* bootdata/packages/reactos.dff: Ditto.
	* lib/kbdda: New directory.
	* lib/kbdda/.cvsignore: New file.
	* lib/kbdda/kbdda.c: Ditto.
	* lib/kbdda/kbdda.def: Ditto.
	* lib/kbdda/kbdda.rc: Ditto.
	* lib/kbdda/makefile: Ditto.

svn path=/trunk/; revision=11758
2004-11-21 18:40:38 +00:00
Gunnar Dalsnes
eedd0d823f work.c: reimpl. using kernel queues
resource.c: add asserts

svn path=/trunk/; revision=11757
2004-11-21 18:38:51 +00:00
Gunnar Dalsnes
4635919140 call KiDeliverAPc at correct irql
svn path=/trunk/; revision=11756
2004-11-21 18:37:56 +00:00
Gunnar Dalsnes
24dc4f3595 add missing KeEnter/LeaveCriticalRegion before/after aquireing/releasing resource lock
svn path=/trunk/; revision=11755
2004-11-21 18:35:05 +00:00
Gunnar Dalsnes
0c5a9ba4f5 fix kernel queues + misc fixes/cleanups
svn path=/trunk/; revision=11754
2004-11-21 18:33:54 +00:00
Hartmut Birr
0f6f4de9e1 - Acquire always the dpc lock on smp systems.
- Set/reset DpcRoutineActive at HIGH_LEVEL (or if the dpc queue is locked).

svn path=/trunk/; revision=11753
2004-11-21 18:13:47 +00:00
Filip Navara
7af1a71e33 Revert:
- Fix prototype of FsRtlInitializeLargeMcb and FsRtlInitializeMcb.

svn path=/trunk/; revision=11752
2004-11-21 17:47:22 +00:00
Filip Navara
f2b2fe0a5d - Fix prototype of FsRtlInitializeLargeMcb and FsRtlInitializeMcb.
- Fix some FsRtl* exports.

svn path=/trunk/; revision=11751
2004-11-21 16:34:57 +00:00
Martin Fuchs
af60a0a9e2 cleanup resource script
svn path=/trunk/; revision=11750
2004-11-21 15:46:16 +00:00
Martin Fuchs
7ce0322c85 decode HTML-encoded bookmark names
svn path=/trunk/; revision=11749
2004-11-21 15:35:15 +00:00
Martin Fuchs
4e66d23d42 work around GCC's wide string constant bug when compiling inline functions
svn path=/trunk/; revision=11748
2004-11-21 14:26:14 +00:00
Gregor Anich
e1e1824939 Properly fix "Unused variable" warning.
svn path=/trunk/; revision=11747
2004-11-21 13:33:34 +00:00
Gé van Geldorp
ea32cbced0 Don't print "sector size" message, it is causing confusion
svn path=/trunk/; revision=11746
2004-11-21 13:30:44 +00:00
Thomas Bluemel
7f363e4ceb use ASSERT instead of assert
svn path=/trunk/; revision=11745
2004-11-21 13:18:19 +00:00
Thomas Bluemel
c116c5fefe fixed crash on shutdown
svn path=/trunk/; revision=11744
2004-11-21 13:02:02 +00:00
Thomas Bluemel
d23655f8c4 export AlphaBlend(), GradientFill() and TransparentBlt() as STDCALL
svn path=/trunk/; revision=11743
2004-11-21 12:55:05 +00:00
Gé van Geldorp
ad4cf3bf0b Report on which drive we couldn't find a partition table
svn path=/trunk/; revision=11742
2004-11-21 12:28:12 +00:00
Gé van Geldorp
4d111bdd6c Work around broken BIOSes which report random API subset support bitmaps
when checking for extended INT13 availability for CDROMs

svn path=/trunk/; revision=11741
2004-11-21 12:27:01 +00:00
Filip Navara
df6bd1fced - Use IntGdiSetRect instead of NtGdiSetRect.
svn path=/trunk/; revision=11740
2004-11-21 12:14:34 +00:00
Martin Fuchs
425c131de1 avoid "unused variable" warning
svn path=/trunk/; revision=11739
2004-11-21 11:58:55 +00:00
Hartmut Birr
5eb96dfc97 - Set also FS and GS on a debug service call.
svn path=/trunk/; revision=11738
2004-11-21 11:37:22 +00:00
Thomas Bluemel
afc7938b56 check the status code NtQueryInformationProcess returned
svn path=/trunk/; revision=11737
2004-11-21 11:03:17 +00:00
Thomas Bluemel
f290137ce4 properly copy the device map - it's still not initialized properly
svn path=/trunk/; revision=11736
2004-11-21 10:59:11 +00:00
Filip Navara
dcdb5fefb0 - Use absolute value of width in NtGdiCreateBitmap.
svn path=/trunk/; revision=11735
2004-11-21 10:55:29 +00:00
Martin Fuchs
375d7004a4 alpha-blend hidden notification icons
svn path=/trunk/; revision=11734
2004-11-21 10:53:55 +00:00
Hartmut Birr
d69a931982 - Fixed the check for the empty (or not empty) dpc queue in KeInsertQueueDpc.
svn path=/trunk/; revision=11733
2004-11-21 10:48:33 +00:00
Thomas Bluemel
dc61134cf1 fixed building problems
svn path=/trunk/; revision=11732
2004-11-21 10:39:12 +00:00
Alex Ionescu
2a42da87f2 1) Updated KUSER_SHARED_DATA to NT5+ exported documented defintiion, which meant the removal of DosDevices. Used proper NT _DEVICE_MAP Structure for this, but did it in a "hack" way, ie, not a fully implementation, but enough to keep the basic old functionality as before. This will need an review once the Ob Manager is overhaulted. Modified kernel32 to request the _DEVICE_MAP for the current process, implemented the query routine (but made it return the default systme device map intead of per process) and changed the kernel code to use the default device map instead.
2) Updated the HalDispatchTable to Version 3.0. Not a huge change, just added/updated some functions.
3) Rewrote most of the DPC Code to take advantage of the CPU/Importance "laws". Stress testing on my machine revealed no issues on CVS HEAD. Still needs some review to make it so that idle threads can call dpcs (so that low importance dpcs will be dispatched by the idle thread). I will modify this later.

svn path=/trunk/; revision=11731
2004-11-21 06:51:18 +00:00
Art Yerkes
5fea7dac8b Patch to correct multiple adapter bind from protocols. There were two
bugs here:
1) The loop in protocol.c was wrong and was rewritten by Andrew Munger
   with help from Thomas Weidenmueller
2) MiniLocateAdapter never zeroed Adapter if the adapter didn't match,
   and never actually ever matched a name.  It always returned the
   last adapter in the list (spotted and fixed after the above fixes).

svn path=/trunk/; revision=11730
2004-11-21 04:20:38 +00:00
Art Yerkes
30be599db3 Add a null check to prevent crashes during the vulnerable time when Filter
is not set.

svn path=/trunk/; revision=11729
2004-11-21 03:02:57 +00:00
Gregor Anich
8119f6f384 FPU/SSE state saving on taskswitching, FPU and SSE exception support.
svn path=/trunk/; revision=11728
2004-11-20 23:46:37 +00:00
Martin Fuchs
ede5e4a1f9 update doxygen script
svn path=/trunk/; revision=11727
2004-11-20 23:06:52 +00:00
Martin Fuchs
716bc3dbb3 notification area button to toggle hidden icons
svn path=/trunk/; revision=11726
2004-11-20 22:35:06 +00:00
Art Yerkes
110f1eeb5e Forgot to update a prototype in here. Also, a while ago, I stopped getting
the LDR_MODULE definition, so I fixed that.

svn path=/trunk/; revision=11725
2004-11-20 22:21:35 +00:00
Gé van Geldorp
25dc91ca69 Make it compile
svn path=/trunk/; revision=11724
2004-11-20 22:20:12 +00:00
Filip Navara
f5c76d2826 - Add IRQL assert to ExFreePagedPool.
svn path=/trunk/; revision=11723
2004-11-20 21:16:38 +00:00
Filip Navara
c7802eb216 - Allocate buffer for sub keys from NonPagedPool in order to prevent crashes in CmiAddKeyToList where the buffer is accessed at DISPATCH_LEVEL.
svn path=/trunk/; revision=11722
2004-11-20 21:14:16 +00:00
Martin Fuchs
a4efd45e84 display notification icon change times
svn path=/trunk/; revision=11721
2004-11-20 19:30:41 +00:00
Thomas Bluemel
ba5522cda3 silence debug message
svn path=/trunk/; revision=11720
2004-11-20 19:08:37 +00:00
Steven Edwards
9a2f072607 added riched20 to the build
svn path=/trunk/; revision=11719
2004-11-20 18:30:52 +00:00
Steven Edwards
984b8c4f6a Added dummy riched20.dll by Aric Stewart from CrossOver.
This is not a correct implementation, it is just enough to get some applications
to work. A fully working riched20 will be developed in winehq.

svn path=/trunk/; revision=11718
2004-11-20 18:26:16 +00:00
Casper Hornstrup
0315098375 2004-11-20 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/net/tcpip/tests/tests/ipreceive.c (RunTest): Switch parameters
	to _AssertEqualValue.
	* drivers/net/tcpip/tests/stubs.tst: Add missing stubs.
	* lib/ws2_32/tests/stubs.tst: Ditto.
	* ntoskrnl/tests/stubs.tst: Ditto.
	* regtests/shared/regtests.h: Use unsigned format specifiers.

svn path=/trunk/; revision=11717
2004-11-20 17:56:23 +00:00
Thomas Bluemel
74ce6443c2 added missing definitions
svn path=/trunk/; revision=11715
2004-11-20 17:55:41 +00:00
Casper Hornstrup
68e9370d78 2004-11-20 Casper S. Hornstrup <chorns@users.sourceforge.net>
* config (SEH): Remove.
	* regtests/shared/regtests.c (_alloca): Remove; Use from malloca.h
	instead.
	(PerformTest): Use PSEH to catch exceptions while running tests.
	* tools/config.mk (CONFIG): Don't add SEH.
	* tools/helper.mk: Link tests with pseh.a.

svn path=/trunk/; revision=11714
2004-11-20 17:48:38 +00:00
Art Yerkes
e2632afc71 Fixed continue in the GDB stub. Sorry for breaking it.
svn path=/trunk/; revision=11713
2004-11-20 17:45:15 +00:00
Thomas Bluemel
b7100ed2fc 1. removed window station/desktop hacks from ntoskrnl
2. implemented window station/desktop inheritance on thread/process startup
3. implemented process locking
4. fixed some fields in the EPROCESS structure

svn path=/trunk/; revision=11712
2004-11-20 16:46:06 +00:00
Martin Fuchs
76bd18b75f update change list
svn path=/trunk/; revision=11710
2004-11-20 16:23:35 +00:00
Eric Kohl
75d4557d4c Add UpdatePerUserSystemParameters stub and call it from winlogon.
svn path=/trunk/; revision=11709
2004-11-20 15:55:45 +00:00
Gé van Geldorp
65708377d8 Implement NtUserGetClipboardOwner
svn path=/trunk/; revision=11707
2004-11-20 09:34:43 +00:00
KJK::Hyperion
34149e19fc Use _alloca instead of stack variables, because the compiler feels too damn smart
svn path=/trunk/; revision=11706
2004-11-19 23:58:33 +00:00
Gé van Geldorp
c99ffa31ca At least show the window when wParam is TRUE and the window is currently
invisible

svn path=/trunk/; revision=11705
2004-11-19 23:07:09 +00:00
Gunnar Dalsnes
90125b20eb return correct ExitCode for non-terminated threads
svn path=/trunk/; revision=11704
2004-11-19 22:19:33 +00:00
Filip Navara
6699c721fc - Correctly calculate size of the CM_RESOURCE_LIST structure.
svn path=/trunk/; revision=11703
2004-11-19 21:31:02 +00:00
Thomas Bluemel
7857b6c7e9 report proper buffer sizes as documented
svn path=/trunk/; revision=11701
2004-11-19 20:02:47 +00:00
Thomas Bluemel
b260dfd4b0 buffers are calculated properly, no need to allocate more memory for safety anymore
svn path=/trunk/; revision=11700
2004-11-19 19:34:11 +00:00
Steven Edwards
35ab538802 Add more non-standard LANG_* ids.
svn path=/trunk/; revision=11699
2004-11-19 13:00:12 +00:00
Thomas Bluemel
cd57e3d41d 1. fixed definition of the DEBUG_MODULE_INFORMATION structure
2. implemented module and heap list enumeration for toolhelp

svn path=/trunk/; revision=11698
2004-11-19 01:30:35 +00:00
Filip Navara
c145b0b293 - Allocate the memory from paged pool instead of non-paged pool as almost all code (and none of the font code) in Win32k runs at IRQL < DISPATCH_LEVEL.
svn path=/trunk/; revision=11697
2004-11-18 22:22:46 +00:00
Eric Kohl
f5912089d2 Pass a fake translated resource list to a driver when a device is started.
svn path=/trunk/; revision=11695
2004-11-18 11:46:07 +00:00
Gé van Geldorp
583f2092ad Rollback identify code (Filip reluctantly agrees)
svn path=/trunk/; revision=11694
2004-11-18 08:32:32 +00:00
Art Yerkes
f404e670d5 Removed bad assertion. It's ok for TCPSendData to return immediately if the
data has been copied into the tcp buffer.  Requiring STATUS_PENDING here is
definately an error.

svn path=/trunk/; revision=11693
2004-11-18 05:02:10 +00:00
Art Yerkes
a2f6011b3d Changed kdbg a bit by adding some new flags (and a new command):
condition [all|umode|kmode]

condition all -> Handle all exceptions.  This is like the current kdbg
condition umode -> Handle unhandled usermode exceptions and all kmode
	exceptions.
condition kmode -> Handle only unhandled kernelmode exceptions (default)

svn path=/trunk/; revision=11692
2004-11-18 02:10:28 +00:00
Gunnar Dalsnes
4af944d53d revert incorrect fix
svn path=/trunk/; revision=11691
2004-11-17 23:55:36 +00:00
Gé van Geldorp
c9e0a17bab Get rid of global volume boot sector and store required info in separate
variables

svn path=/trunk/; revision=11690
2004-11-17 22:07:45 +00:00
Filip Navara
4d21897222 - Don't report CmResourceTypeNull resources for unused PCI descriptor resource entries.
svn path=/trunk/; revision=11688
2004-11-17 20:39:27 +00:00
Eric Kohl
9a7c335263 Implement NdisOverrideBusNumber.
svn path=/trunk/; revision=11686
2004-11-17 13:10:01 +00:00
Art Yerkes
ce37c3ed04 Member unknown renamed internaluse.
svn path=/trunk/; revision=11685
2004-11-17 07:12:27 +00:00
Art Yerkes
2c9bba03b5 tcpip: fix for udp socket close.
ws2_32: unstub WSAFDIsSet, small amount of work on select
msafd: select fixes
afd: major select overhaul
- 1 exit point for poll objects from the deviceext
- make sure to cancel the timer
- UpdatePollWithFCB now runs at DISPATCH_LEVEL in every case
- Added handle locks so we can signal and check handles properly

svn path=/trunk/; revision=11684
2004-11-17 05:17:22 +00:00
Martin Fuchs
4a7d199e30 make read_directory_unix() static
svn path=/trunk/; revision=11682
2004-11-16 19:42:08 +00:00
Martin Fuchs
36c518427e fix german menu text
svn path=/trunk/; revision=11681
2004-11-16 19:41:54 +00:00
Casper Hornstrup
59f81f9539 2004-11-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/lib/ip/network/arp.c: Assert certain conditions.
	* drivers/lib/ip/network/loopback.c: Ditto.
	* drivers/lib/ip/network/neighbor.c: Ditto.
	* drivers/lib/ip/transport/tcp/tcp.c: Ditto.
	* drivers/net/tcpip/datalink/lan.c: Ditto.
	* drivers/net/tcpip/datalink/loopback.c: Ditto.
	* drivers/net/tcpip/include/debug.h (ASSERT_KM_POINTER): Define.
	* drivers/lib/ip/transport/tcp/if.c: Remove disabled code.
	* drivers/net/afd/afd/main.c (AfdDispatch): Print known unimplemented
	IOCTLs.
	* drivers/net/tcpip/include/precomp.h: Include roscfg.h.
	* drivers/net/tcpip/tcpip/dispatch.c (DispTdiListen): Pass the right
	connection object to TCPListen.
	* drivers/net/tcpip/tcpip/mocklock.c: Fix some assertions.

svn path=/trunk/; revision=11680
2004-11-16 18:07:58 +00:00
Gregor Anich
845737a0c6 Simple implementation of some multi-monitor APIs (I hope this was the last one)
svn path=/trunk/; revision=11679
2004-11-16 17:36:37 +00:00
Gregor Anich
ad2c067338 Simple implementation of some multi-monitor APIs.
svn path=/trunk/; revision=11678
2004-11-16 17:25:47 +00:00
Gregor Anich
3de1bbc635 Simple implementation of some multi-monitor APIs.
svn path=/trunk/; revision=11677
2004-11-16 16:29:21 +00:00
Eric Kohl
43d65f019d - Make WrapperConfigurationContext a pointer to a WRAPPER_CONTEXT structure.
- Use correct bus number in NtImmediateReadPciSlotInformation, NdisImmediateWritePciSlotInformation, NdisReadPciSlotInformation and NdisWritePciSlotInformation.

svn path=/trunk/; revision=11676
2004-11-16 16:21:09 +00:00
Gunnar Dalsnes
1d44f8fade fix broken work item impl.
svn path=/trunk/; revision=11675
2004-11-15 23:14:36 +00:00
Gé van Geldorp
22e0d4d8eb Create Int versions of Rect functions
svn path=/trunk/; revision=11674
2004-11-15 23:10:42 +00:00
Art Yerkes
ccc0695954 Need AFD_IMMEDIATE.
svn path=/trunk/; revision=11673
2004-11-15 20:17:48 +00:00
Gunnar Dalsnes
d06c68bb99 add some error checking
svn path=/trunk/; revision=11672
2004-11-15 19:20:23 +00:00
Art Yerkes
28bfa5fcdd Implemented non-blocking recv and recvfrom.
Fixed address pass-through in afd.
Fixed some address cruft in udp and datagram regarding incoming
datagrams.

svn path=/trunk/; revision=11671
2004-11-15 18:24:57 +00:00
Eric Kohl
f44ad86cf8 Silence debug messages.
svn path=/trunk/; revision=11670
2004-11-15 16:36:28 +00:00
Eric Kohl
514e74cba8 Remove the default locale id.
svn path=/trunk/; revision=11669
2004-11-15 14:43:55 +00:00
Eric Kohl
42991379db Don't set the default locale id.
svn path=/trunk/; revision=11668
2004-11-15 14:41:25 +00:00
Eric Kohl
4d1046ee76 Don't retrieve the system locale id from the registry, use ZwQueryDefaultLocale instead.
svn path=/trunk/; revision=11667
2004-11-15 14:40:14 +00:00
Eric Kohl
f838190b50 NtSetDefaultLocale must only store the lanuage id (lower half) of the given system locale id.
svn path=/trunk/; revision=11666
2004-11-15 14:38:37 +00:00
Eric Kohl
0fafbcbcf4 Use autogenerated device names for PDOs on PCI buses.
svn path=/trunk/; revision=11665
2004-11-15 11:49:37 +00:00
Eric Kohl
d0da55a427 Add support for FILE_AUTOGENERATED_DEVICE_NAME to IoCreateDevice.
svn path=/trunk/; revision=11664
2004-11-15 11:41:33 +00:00
Eric Kohl
3b5c8f81f3 Register handler for PCI bus 2.
svn path=/trunk/; revision=11663
2004-11-15 09:18:19 +00:00
Gé van Geldorp
be441ae62f Don't need flashleds
svn path=/trunk/; revision=11662
2004-11-14 22:07:53 +00:00
Gé van Geldorp
4e5131fd86 Add UI support on the Xbox
svn path=/trunk/; revision=11661
2004-11-14 22:04:39 +00:00
Art Yerkes
b055a01bc8 Added port allocation.
Datagram: only match a sender if a sender match was specified.

svn path=/trunk/; revision=11660
2004-11-14 21:28:21 +00:00
Art Yerkes
e280e1272c Fixed UDP.
- Header size adjustments corrected.
- Added callback specified by caller.
- Port allocation added.

svn path=/trunk/; revision=11659
2004-11-14 21:27:15 +00:00
Hartmut Birr
9c5da940f0 - Started the implementation of the ipi calls.
svn path=/trunk/; revision=11658
2004-11-14 20:00:06 +00:00
Art Yerkes
323b7c4460 UDP working.
svn path=/trunk/; revision=11657
2004-11-14 19:45:16 +00:00
Hartmut Birr
1dcd7629c6 - Stored the apc/dpc requests in the KPCR.
svn path=/trunk/; revision=11656
2004-11-14 19:04:42 +00:00
Hartmut Birr
35636e998d - Used the time stamp counter from a pentium if it is available
(in KeStallExecutionProcessor/KeQueryPerformanceCounter).

svn path=/trunk/; revision=11655
2004-11-14 19:01:31 +00:00
Hartmut Birr
b39c7349f9 - Used the shared user data page instead of NtQuerySystemTime to get the time.
svn path=/trunk/; revision=11654
2004-11-14 18:53:11 +00:00
Hartmut Birr
349e167cae - Implemented waitable console handles.
- Removed a fake event after a input event to empty the queue in CsrReadInputEvent.

svn path=/trunk/; revision=11653
2004-11-14 18:47:10 +00:00
Gregor Anich
26b8d50a75 Fix handling of debug traps in GDB stub/KiDispatchException (This time for real I hope, sorry for the breakage)
svn path=/trunk/; revision=11652
2004-11-14 16:00:02 +00:00
Eric Kohl
e9d3254541 Set the current date/time and update the current time zone name on the date/time page.
svn path=/trunk/; revision=11651
2004-11-14 12:28:21 +00:00
Art Yerkes
11070b8093 Fixed bug in ne2000 driver, re: copying ethernet frame header when only
payload should be copied in MiniportTransferData.

Changed tcpip to not consider the ethernet header anywhere above
ProtocolReceive.

svn path=/trunk/; revision=11650
2004-11-14 10:13:17 +00:00
Steven Edwards
62e00f3e2f Enabled the ReactOS pcnet driver by default.
Added 1 line note about how to use the vendor driver rather than ours.

svn path=/trunk/; revision=11649
2004-11-14 03:51:26 +00:00
Hartmut Birr
ea6e7df66a - Stored the informations from the cpuid instruction within the KPCR of each processor.
svn path=/trunk/; revision=11648
2004-11-13 23:08:35 +00:00
Gregor Anich
59881376cd Fix handling of debug traps in GDB stub/KiDispatchException.
svn path=/trunk/; revision=11647
2004-11-13 23:00:15 +00:00
Hartmut Birr
60c952c6ce - Fixed the scanning for boot options.
svn path=/trunk/; revision=11646
2004-11-13 22:30:18 +00:00
Hartmut Birr
5260bf08c8 - Removed some unnecessary type casts.
svn path=/trunk/; revision=11645
2004-11-13 22:27:16 +00:00
Casper Hornstrup
9f05cd01e3 2004-11-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/net/roshttpd/include/list.h (CList<Item>::Get): Declare i
	before use.

svn path=/trunk/; revision=11644
2004-11-13 17:20:30 +00:00
Thomas Bluemel
3e0c6c7994 implemented MmGetSystemRoutineAddress()
svn path=/trunk/; revision=11643
2004-11-13 13:09:07 +00:00
Filip Navara
d0917c6faf - Add NdisCopyLookaheadData macro.
svn path=/trunk/; revision=11642
2004-11-13 12:28:08 +00:00
Richard Campbell
0c3b663f9c - removed a few more DPRINTs that make no sense.
svn path=/trunk/; revision=11641
2004-11-13 02:02:07 +00:00
Richard Campbell
7b3d7ecb51 - Removed more nonsense debug prints.
- btw these changes are based on behavior discovered, on Windows XP SP2.  Your mileage may vary.

svn path=/trunk/; revision=11640
2004-11-13 01:57:45 +00:00
Richard Campbell
ad0e8d471b - Check for a valid hwnd.
- passing Key Up messages  as a parameter always returns 0;
- WM_SYSCHAR IS used however.
- Get rid of an odd debug print message.
- Changed the Window parameter name to hWnd.

svn path=/trunk/; revision=11639
2004-11-13 01:52:56 +00:00
Richard Campbell
c29ce9bc5b - Fixed a typo
svn path=/trunk/; revision=11638
2004-11-13 01:14:42 +00:00
Eric Kohl
6c7ede35c0 Add remaining time zones.
svn path=/trunk/; revision=11637
2004-11-13 00:16:32 +00:00
Art Yerkes
9a7c38e472 lib/ip:
transport/tcp/* remove some spew, eliminate deadlock condition (calling afd
  with socket locked).
 network/router.c -- GvG noticed a wrong condition at line 153:
  This code used to stop when finding a matching bit, not a non-matching one.
net/tcpip:
 makefile: change order of .a files.  Could break compilation before under
  the right circumstances.
 turn off some spew
 datalink/lan.c:
  NdisTransferData does not count header size when figuring out how many bytes
  to copy.  Most of the tcpip code does, so we do something wierd here.  We
  must fix this later in a better way.

svn path=/trunk/; revision=11636
2004-11-13 00:06:33 +00:00
Steven Edwards
2b84842184 Added .cvsignore file.
svn path=/trunk/; revision=11635
2004-11-12 21:30:13 +00:00
Aleksey Bragin
32333d3280 Removed PriorityBoost from DPRINT at IoSecondStageCompletion, since there is no priority boost in this func
svn path=/trunk/; revision=11634
2004-11-12 18:50:53 +00:00
Aleksey Bragin
0745f5a9ae Remove a warning about incorrect types, after discussion in channel it was decided to do it as &Process->Pcb instead of (PKPROCESS)Process.
svn path=/trunk/; revision=11633
2004-11-12 18:42:25 +00:00
Gé van Geldorp
2e3419423b Since CreateProcessA() is called, also use the Ansi version of STARTUPINFO
svn path=/trunk/; revision=11632
2004-11-12 18:23:31 +00:00
Gé van Geldorp
b4ef4b5e8f Add FATX support
svn path=/trunk/; revision=11631
2004-11-12 17:17:08 +00:00
Eric Kohl
69b5fdb8f1 - Build UNICODE dll.
- Fix the crash when the customize input locale button is pressed.

svn path=/trunk/; revision=11630
2004-11-12 15:42:36 +00:00
Eric Kohl
83541672c0 Defedf is not needed any longer.
svn path=/trunk/; revision=11629
2004-11-12 12:07:51 +00:00
Eric Kohl
7cd6c44a8a - Move NtAllocateUuids from the Security Reference Monitor to the Executive.
- Update NtAllocateUuids to W2K signature.
- Add NtSetUuidSeed.

svn path=/trunk/; revision=11628
2004-11-12 12:06:54 +00:00
Eric Kohl
55b37c64ca - Move NtAllocateUuids from the Security Reference Monitor to the Executeive.
- Update NtAllocateUuids to W2K signature.
- Add NtSetUuidSeed.

svn path=/trunk/; revision=11627
2004-11-12 12:04:32 +00:00
Art Yerkes
1eb22067d1 Small DBG related patches.
svn path=/trunk/; revision=11626
2004-11-12 09:27:02 +00:00
Art Yerkes
dea7f87980 Prevent some deadlock scenarios by unlocking the FCB while calling into
tcpip.sys.

svn path=/trunk/; revision=11625
2004-11-12 07:34:56 +00:00
Steven Edwards
0af675ba07 Added new patch for Alex's BindImage, Map and Load and
friends to CVS for next merge. This patch applies clean to
Winehq tip.

svn path=/trunk/; revision=11624
2004-11-12 03:55:15 +00:00
Alex Ionescu
126f95c1ea Fix calls to KeAttachProcess
svn path=/trunk/; revision=11623
2004-11-11 22:40:30 +00:00
Alex Ionescu
a9c33470e5 Kernel:
- apc.c: Fixed some bugs and used Dispatcher Lock. Simplified some functions and renamed/inlined others.
- wait.c: Fixed some assumptions about Dispatcher Lock and Waiting/Alertability
- process.c: Fully implemented KeStackAttachProcess and KeStackDetachProcess. Made all functions use PKPROCESS and not PEPROCESS.
Memory Manager: Fixed calls to KeAttachProcess/DetachProcess to typecast PKPROCESS
Process Manager: Removed call to empty function in apc.c

svn path=/trunk/; revision=11622
2004-11-11 22:23:52 +00:00
Eric Kohl
0cc7d4d22d Fix typo: Call RegDeleteValue to delete a value.
svn path=/trunk/; revision=11621
2004-11-11 17:46:22 +00:00
Steven Edwards
301bbb3f0b grrr I forgot to do binary.....
svn path=/trunk/; revision=11620
2004-11-11 17:27:58 +00:00
Steven Edwards
1dc6cec99d grrr I forgot to do binary.....
svn path=/trunk/; revision=11619
2004-11-11 17:27:24 +00:00
Steven Edwards
fa83dde5e5 some simple sounds for ReactOS by Stefan Zehe.
svn path=/trunk/; revision=11618
2004-11-11 17:26:55 +00:00
Eric Kohl
816885ccb2 Clean-up.
svn path=/trunk/; revision=11617
2004-11-11 12:27:40 +00:00
Eric Kohl
ca9e2e3b6d Enable automatic adjustment of daylight savings changes.
svn path=/trunk/; revision=11616
2004-11-11 12:24:56 +00:00
Eric Kohl
2fcf84ea37 Add even more time zones.
svn path=/trunk/; revision=11615
2004-11-11 12:21:45 +00:00
Eric Kohl
7ac73dbbc4 RegSetValueExA: lpData can be NULL.
This fixes three failures of the WINE regression tests.

svn path=/trunk/; revision=11614
2004-11-11 11:21:30 +00:00
Gé van Geldorp
2fada79f2e Add partition handling for the Xbox
svn path=/trunk/; revision=11613
2004-11-10 23:45:37 +00:00
Gregor Anich
6f9d1917af Print exception names/strings when KDB is entered.
svn path=/trunk/; revision=11612
2004-11-10 23:16:16 +00:00
Eric Kohl
992f09bfbe Add more time zones.
svn path=/trunk/; revision=11611
2004-11-10 10:03:02 +00:00
Alex Ionescu
39a5847ee5 Rewrote APC Implementation.
TODO: KiSwapApcEnvironment, Honour SpecialApcDisable.
Special thanks to Thomas and Filip.

Fixed I/O Manager Bugs. APCs were not created with the right parameters in the right places, or had useless parameters being sent.

Added mmdrv and midimap to bootcd.

Fixed KTHREAD defintion.

Fixed some thread alertability issue in thread creation.

svn path=/trunk/; revision=11610
2004-11-10 02:51:00 +00:00
Gregor Anich
8b3a000e7b Fix RecursionTrap (RescursionTrap) in UnhandledExceptionFilter to allow more than 2 exceptions beeing handled by the toplevel filter.
svn path=/trunk/; revision=11609
2004-11-10 01:07:45 +00:00
Gé van Geldorp
2950511d3e Add disk I/O (well, input only, no output) for the Xbox
svn path=/trunk/; revision=11608
2004-11-09 23:36:20 +00:00
Gregor Anich
d5b047feae Fix _control87, the old implementation was terribly wrong and broken.
svn path=/trunk/; revision=11607
2004-11-09 23:15:17 +00:00
Alex Ionescu
9e12bbeae6 baseaddress.cfg - Add entry for midimap.dll. Fix msacm's base address. It was conflicting with iplhapi and generated an unncessary relocation and error message.
Makefile - Add entry for midimap.dll, Build mmdrv because it's trying to get loaded at system startup and that caused an error
bootdata/hivedef.inf - Create PaintDesktopVersion key and set it to 0. Win32k was trying to read this value and gave an error message because it did not exist.
lib/samlib/samlib.c - Silence samlib for informational messages that aren't errors.(if NDEBUG is on)
lib/userenv/directory.c -Silence for informational messages that aren't errors (if NDEBUG is on)
lib/setupapi/devinst.c - Turn SetupDiInstallClassW blank debug message into something a little more informational.
lib/syssetup/install.c - Make syssetup check if samlib returned ERROR_USER_EXISTS, in which case instead of pointlessly rebooting (which probably never allowed the user to actually setup ros...if error_user_Exists is returned it means  that setup was abandonned for some reason, so we would want to restart it instead of giving up), it will  restart setup.

svn path=/trunk/; revision=11606
2004-11-09 15:02:35 +00:00
Eric Kohl
f167a592d3 Use BF_SOFT style to draw pushbutton edges.
svn path=/trunk/; revision=11605
2004-11-09 14:59:37 +00:00
Eric Kohl
3b4262a4c2 Add more time zones.
svn path=/trunk/; revision=11604
2004-11-09 14:56:05 +00:00
Alex Ionescu
ab31ca4db5 Move midimap.drv (a 9x component) to midimap.dll (an NT component), make it build with baseaddress.cfg.
svn path=/trunk/; revision=11603
2004-11-09 14:52:52 +00:00
Art Yerkes
60a319ecaa Cleaing in receive: fixed one bugcheck.
Removed much small allocation cruft (20 byte or less objects)

svn path=/trunk/; revision=11602
2004-11-09 09:39:38 +00:00
Steven Edwards
bdaa32578b One of the buggy versions of Mingw I have fails to compile this if I dont
include stdio.h.

svn path=/trunk/; revision=11601
2004-11-09 03:22:17 +00:00
Alex Ionescu
885ff857c4 Silence informational messages.
svn path=/trunk/; revision=11600
2004-11-09 00:38:37 +00:00
Gé van Geldorp
5882e75d37 Support video and memory detection on the Xbox
svn path=/trunk/; revision=11599
2004-11-08 22:02:48 +00:00
Thomas Bluemel
cfde60c60d 1. fixed GetProfilesDirectoryW(). the lpcchSize parameter takes the size of the buffer in characters, not bytes.
2. LoadUserProfileW() should pass the buffer size to GetProfilesDirectoryW()

svn path=/trunk/; revision=11598
2004-11-08 21:23:34 +00:00
Eric Kohl
2f3caac348 Select current time zone on the time zone property page.
svn path=/trunk/; revision=11597
2004-11-08 10:33:08 +00:00
Eric Kohl
d63d756d2c Add some more time zones.
svn path=/trunk/; revision=11596
2004-11-08 10:31:52 +00:00
Thomas Bluemel
dbd1890dee make better use of precompiled headers
svn path=/trunk/; revision=11595
2004-11-08 02:16:06 +00:00
Thomas Bluemel
3e1e519f2e don't return uninitialized variable. thx to Alex.
svn path=/trunk/; revision=11594
2004-11-08 01:46:12 +00:00
Thomas Bluemel
3e2287907c forgot this file
svn path=/trunk/; revision=11593
2004-11-08 00:37:19 +00:00
Gregor Anich
1664862298 Check for installed exception handlers if the kernel debugger returns not kdDoNotHandleException, and not not kdHandleException.
svn path=/trunk/; revision=11592
2004-11-08 00:36:41 +00:00
Thomas Bluemel
762aaad968 separate epsapi as per kjk's request again, sorry for that.
svn path=/trunk/; revision=11591
2004-11-08 00:34:46 +00:00
Filip Navara
93c256ba7e - Fix prototype for KeConnectInterrupt.
svn path=/trunk/; revision=11590
2004-11-07 23:22:39 +00:00
Gregor Anich
2a5fa312ec Add SSE detection.
svn path=/trunk/; revision=11589
2004-11-07 23:03:43 +00:00
Filip Navara
5879eeb98a - Export the InitSafeBootMode variable as per KB83764.
- Remove KeRescheduleThread (it's not present neither on WinNT4 nor on WinXP SP2).
- Fix IoOpenDeviceRegistryKey for PLUGPLAY_REGKEY_DRIVER case. (Oops)
- Move IoConnectInterrupt and IoDisconnectInterrupt outside from Ke.

svn path=/trunk/; revision=11588
2004-11-07 22:55:38 +00:00
Art Yerkes
da8cb9fe17 Preliminary stub generator ported from my shell script.
svn path=/trunk/; revision=11587
2004-11-07 22:54:04 +00:00
Gregor Anich
a6fdf80a8b Fix FORCE_INLINE for GNUC.
svn path=/trunk/; revision=11586
2004-11-07 22:20:50 +00:00
Steven Edwards
609b0c5307 Added Wine ole32 tests.
As of 2004-10-7 we pass all of the tests except the one marked todo
in Wine. It has been disabled.

svn path=/trunk/; revision=11585
2004-11-07 22:19:07 +00:00
Filip Navara
96c1aa383f - Initialize DriverObject->HardwareDatabase for newly created device objects.
svn path=/trunk/; revision=11584
2004-11-07 21:20:51 +00:00
Filip Navara
22d4c31e4c - New and complete implementation of IoOpenDeviceRegistryKey.
svn path=/trunk/; revision=11583
2004-11-07 21:18:33 +00:00
Art Yerkes
8a640a70d2 Removed remaining kernel imports from ip lib.
Removed unneeded precomp.h from drivers/lib/ip.
Removed some memtrack and other spew.
Removed datagram send pipe part, and accompanying address file queue.
Simplified send pipe (major changes):
- Neighbor is solely responsible for firing normal ip datagrams to the peer.
- Transmit is the only place normal ip datagrams are passed to neighbor from.
- Simplified fragmentation code.
- Made callbacks explicit and always called in neighbor and transmit.
- Clarified ownership of transmitted NdisPacket.
- Ditto IPPackets here and in icmp.
- PC(Packet)->DLComplete is *only* used by lan.c and loopback.c
- Simplified loopback send mechanism
Added the beginnings of a test suite

svn path=/trunk/; revision=11582
2004-11-07 20:37:21 +00:00
Steven Edwards
da9108e6ff Added Wine psapi tests.
As of 2004-10-7 we pass 17 out of 20 tests.
I have disabled the three we fail.

svn path=/trunk/; revision=11581
2004-11-07 20:05:22 +00:00
KJK::Hyperion
626b0a1f74 Moved VerSetConditionMask in RTL so it can be exported from ntoskrnl too
svn path=/trunk/; revision=11580
2004-11-07 18:45:52 +00:00
Thomas Bluemel
11aba14d5f fixed typo
svn path=/trunk/; revision=11579
2004-11-07 18:43:33 +00:00
Thomas Bluemel
5a1d86c75b corrected image base address
svn path=/trunk/; revision=11578
2004-11-07 18:41:19 +00:00
Eric Kohl
3c3bf1e647 Fill the time zone list.
svn path=/trunk/; revision=11577
2004-11-07 16:03:51 +00:00
Gregor Anich
5a1530f454 Translate EXCEPTION_XXX defines into EXCEPTION_DISPOSITION enum values.
svn path=/trunk/; revision=11576
2004-11-07 15:58:41 +00:00
Filip Navara
31e89ab427 - Define RTL_REGISTRY_HANDLE and RTL_REGISTRY_OPTIONAL.
svn path=/trunk/; revision=11575
2004-11-07 15:40:31 +00:00
Thomas Bluemel
4cebb355ef ignore .gch files
svn path=/trunk/; revision=11574
2004-11-07 15:39:22 +00:00
Thomas Bluemel
6414f19557 added stubs for winscard.dll
svn path=/trunk/; revision=11573
2004-11-07 15:37:41 +00:00
Steven Edwards
af0423f839 Added Wine Common Control Regression tests.
As of 2004-10-7 we pass all of these tests.

svn path=/trunk/; revision=11572
2004-11-07 14:36:23 +00:00
KJK::Hyperion
515d472b0f Implemented VerSetConditionMask.
[HEADER HELL] VER_XXX macros defined inside the source file. Sorry

svn path=/trunk/; revision=11571
2004-11-07 13:08:24 +00:00
Eric Kohl
aba2c302f3 Add more time zones.
svn path=/trunk/; revision=11570
2004-11-07 11:49:55 +00:00
Steven Edwards
edcdbd6b73 Cleanup the warnings.
Patch by Vandread this closes bug 306.

svn path=/trunk/; revision=11569
2004-11-07 03:22:50 +00:00
Gé van Geldorp
473854d2fd Use correct context.
Patch by Theodor Willax <theodor_willax@hotmail.com>

svn path=/trunk/; revision=11568
2004-11-06 22:28:11 +00:00
Filip Navara
d00861b8e8 - Fix ACL size calculation in SepInitDACLs.
- Fix size check in RtlpAddKnownAce.

svn path=/trunk/; revision=11567
2004-11-06 21:32:16 +00:00
Steven Edwards
6b9538eb54 include stdlib.h, string.h and ctype.h to fix a build problem I am seeing.
svn path=/trunk/; revision=11566
2004-11-06 21:06:52 +00:00
Eric Kohl
f7f3b5cbfe Add some more timezones.
svn path=/trunk/; revision=11565
2004-11-06 19:41:44 +00:00
Gregor Anich
fc99b33d66 Add ExtendedRegisters to CONTEXT_X86, CONTEXT_EXTENDED_REGISTERS and MAXIMUM_SUPPORTED_EXTENSIONS defines.
I just hope I don't break anything!

svn path=/trunk/; revision=11564
2004-11-06 19:15:15 +00:00
Thomas Bluemel
068b78cfc6 silence debug output
svn path=/trunk/; revision=11559
2004-11-06 18:17:32 +00:00
Art Yerkes
03c08fd7b9 Changes:
- Turn two instances of stricmp(...,".[Cc]") into one of strcaseccmp(...,".c")
  in filename parsing.
- Streamline line parsing a bit:
  - Scan the line only once, looking for any line terminator
  - Ignore leading and trailing blanks
  - Handle comments properly

svn path=/trunk/; revision=11557
2004-11-06 17:37:29 +00:00
Eric Kohl
de2ab6cf8b - Make TIME_ZONE_ID_XXX constants available from kernel mode.
- Fix definition of KSYSTEM_TIME.
- Set default time zone bias and id in the shared user page.

svn path=/trunk/; revision=11556
2004-11-06 16:05:49 +00:00
Eric Kohl
a7ffdcff0e - Replace TIME type by LARGE_INTEGER in FILE_*_INFORMATION structures.
- Make sure that filesystem-specific data and time are converted to/from system time.
- Replace assert() by ASSERT().

svn path=/trunk/; revision=11555
2004-11-06 13:44:57 +00:00
Eric Kohl
0a4eb63a58 - Replace TIME type by LARGE_INTEGER in FILE_*_INFORMATION structures.
- Make sure that filesystem-specific data and time are converted to/from system time.

svn path=/trunk/; revision=11554
2004-11-06 13:38:45 +00:00
Thomas Bluemel
2ec823a6b0 1. implemented GetPerformanceInfo()
2. fixed definition of SYSTEM_HANDLE_INFORMATION and SYSTEM_HANDLE_TABLE_ENTRY_INFO

svn path=/trunk/; revision=11553
2004-11-06 11:45:47 +00:00
Thomas Bluemel
112d5270ee removed obsolete forward declaration
svn path=/trunk/; revision=11551
2004-11-06 10:10:02 +00:00
Alex Ionescu
8cb1d77efd Reimplimented IO Timers correctly.
svn path=/trunk/; revision=11550
2004-11-06 04:12:59 +00:00
Thomas Bluemel
caa0346413 fixed return value of GetProcessImageFileNameA/W()
svn path=/trunk/; revision=11549
2004-11-06 01:43:59 +00:00
Thomas Bluemel
3b90d19697 1. fixed field names of the SYSTEM_PAGEFILE_INFORMATION structure
2. implemented EnumPageFilesA/W()

svn path=/trunk/; revision=11548
2004-11-06 01:42:04 +00:00
Thomas Bluemel
6903fc73af implemented GetProcessImageFileNameA/W()
svn path=/trunk/; revision=11547
2004-11-05 23:53:06 +00:00
Thomas Bluemel
2b4a515e61 fixed typo
svn path=/trunk/; revision=11546
2004-11-05 22:47:02 +00:00
Thomas Bluemel
2296e99d56 1. export all psapi stubs
2. added missing psapi declarations to w32api

svn path=/trunk/; revision=11545
2004-11-05 22:36:36 +00:00
Eric Kohl
e339d82c69 Read time zone information from registry at startup.
svn path=/trunk/; revision=11544
2004-11-05 17:42:20 +00:00
Thomas Bluemel
8655dad649 no need to reference the job object pointer in NtIsProcessInJob()
svn path=/trunk/; revision=11543
2004-11-05 13:30:18 +00:00
Eric Kohl
8ee82ee7cc Use ASSERT() instead of assert().
svn path=/trunk/; revision=11542
2004-11-05 12:28:19 +00:00
Thomas Bluemel
2d115eb645 pass lstrcpynW() the maximum number of characters, not bytes
svn path=/trunk/; revision=11541
2004-11-05 11:51:18 +00:00
Eric Kohl
6388bdc46c - Time zone combobox must have CBS_DROPDOWNLIST style.
- Select and install time zone information.

svn path=/trunk/; revision=11540
2004-11-05 11:48:45 +00:00
Eric Kohl
e24dc12954 Make sure that NtSetSystemTime won't crash if the new systen time is NULL.
svn path=/trunk/; revision=11539
2004-11-05 11:46:02 +00:00
Eric Kohl
c37b036361 Add some timezone information.
svn path=/trunk/; revision=11538
2004-11-05 11:44:38 +00:00
Thomas Bluemel
7ae4dcc791 epsapi.a doesn't exist anymore...
svn path=/trunk/; revision=11537
2004-11-04 22:14:41 +00:00
Gé van Geldorp
e838464040 TimeOut < 0 means not set yet, so we need a signed type to store that
svn path=/trunk/; revision=11536
2004-11-04 13:44:18 +00:00
Thomas Bluemel
1fe7b789a1 merged epsapi into psapi and reformatted some code to make it readable
svn path=/trunk/; revision=11535
2004-11-03 22:43:00 +00:00
Gé van Geldorp
65184e9a08 bootcd and livecd want cards.dll, so build it by default
svn path=/trunk/; revision=11534
2004-11-03 20:12:59 +00:00
Thomas Bluemel
a3901ae581 1. reformatted the code so human beings can read it
2. enabled precompiled headers

svn path=/trunk/; revision=11533
2004-11-02 23:42:49 +00:00
Martin Fuchs
f99b2df6d1 Design Shell About dialog more Windows-like (Klemens Friedl <frik85@hotmail.com>)
svn path=/trunk/; revision=11532
2004-11-02 23:11:37 +00:00
Thomas Bluemel
de6c4c8cb3 1. get rid of InternalGetProcessId()
2. Implemented GetProcessIdOfThread() and GetThreadId()

svn path=/trunk/; revision=11531
2004-11-02 21:51:25 +00:00
Thomas Bluemel
91ae432126 use ReadConsoleInputW() for unicode builds
svn path=/trunk/; revision=11530
2004-11-02 20:47:05 +00:00
Thomas Bluemel
c524730883 1. Implemented WriteConsoleW(), ReadConsoleW(), FillConsoleOutputCharacterW(), WriteConsoleInputW(), ReadConsoleOutputCharacterW(), ScrollConsoleScreenBufferW()
2. added stub for SetThreadUILanguage()
This get's XP's cmd.exe to start (unfortunately it exits for some reason after one hits the enter key).

svn path=/trunk/; revision=11529
2004-11-02 20:42:06 +00:00
Gé van Geldorp
f9029e5cd8 Generate stub functions from .spec file
svn path=/trunk/; revision=11528
2004-11-02 19:47:18 +00:00
Gé van Geldorp
5e46da95f8 windres 2.15.90 20040222 doesn't like the empty string on COMBOBOXes
svn path=/trunk/; revision=11527
2004-11-02 19:28:17 +00:00
Eric Kohl
983347820f Add the 'Date and Time' page.
Selecting a timezone does not work yet.

svn path=/trunk/; revision=11526
2004-11-02 15:42:09 +00:00
Alex Ionescu
7d6071de5d Fix Mailslot and Named Pipe Drivers
svn path=/trunk/; revision=11525
2004-11-01 22:54:24 +00:00
Gé van Geldorp
a10211cdc2 Add ability to be loaded as "multiboot kernel" from other multiboot loaders
svn path=/trunk/; revision=11524
2004-11-01 20:49:32 +00:00
Hartmut Birr
3ec6acd622 - Fixed KeGetCurrentThread for mp machines.
- Initialized the idle thread for application processors earlier.

svn path=/trunk/; revision=11523
2004-11-01 19:10:07 +00:00
Hartmut Birr
128ff94899 - Initialized the fpu of an application processor.
svn path=/trunk/; revision=11522
2004-11-01 19:03:26 +00:00
Hartmut Birr
f23530ddc9 - Changed/rewrote parts of the mp code to get my ASUS p2b-ds motherboard to working.
svn path=/trunk/; revision=11521
2004-11-01 19:01:25 +00:00
Hartmut Birr
3edce321a2 - Share the irq/irql/vector definitions between ntoskrnl and hal.
- Changed the handling of interrupts for uniprocessor machines from irqs to interrupt vectors.

svn path=/trunk/; revision=11520
2004-11-01 14:37:19 +00:00
Filip Navara
c8583d9809 - Use common KiInterruptDispatch2 function for both UP and MP kernels.
svn path=/trunk/; revision=11519
2004-10-31 23:57:15 +00:00
Alex Ionescu
a30fcc1117 Fix deleted line.
svn path=/trunk/; revision=11518
2004-10-31 23:49:33 +00:00
Alex Ionescu
7cc191567e Mailslot/Named Pipe structures.
svn path=/trunk/; revision=11517
2004-10-31 23:40:10 +00:00
Alex Ionescu
e24de43a0b cleanup.c: Fix typo
Fix Named Pipe and Mailslot Creation Implementation.

svn path=/trunk/; revision=11516
2004-10-31 23:00:41 +00:00
Alex Ionescu
47cef79cec Use proper IRP structure
svn path=/trunk/; revision=11515
2004-10-31 22:21:41 +00:00
Filip Navara
129c75c64d - Call KiDispatchInterrupt only if DPC software interrupt was requested. (TODO: The same should be done for APCs.)
- Request DPC/APC software interrupts where we should.
- Fix condition in KeUpdateRunTime to allow switching thread early in the boot.
- Set default thread quantum for system process.

svn path=/trunk/; revision=11514
2004-10-31 21:22:06 +00:00
Emanuele Aliberti
1ffec948ad Guarded mutex (no code and off makefile).
svn path=/trunk/; revision=11513
2004-10-31 21:21:14 +00:00
Emanuele Aliberti
5f451aa443 Normalize private symbols in LPC, plus minor changes/adds.
svn path=/trunk/; revision=11512
2004-10-31 20:27:08 +00:00
Emanuele Aliberti
430b802b99 Modular resource script for POSIX+ terminal emulator in W32.
svn path=/trunk/; revision=11511
2004-10-31 20:11:09 +00:00
Eric Kohl
8c1d092798 Code clean-up.
svn path=/trunk/; revision=11510
2004-10-31 19:46:10 +00:00
Thomas Bluemel
9bb9d462ba fixed typo
svn path=/trunk/; revision=11509
2004-10-31 19:24:31 +00:00
Hartmut Birr
0e80529be4 - Fixed the definition of KeGetCurrentKPCR.
svn path=/trunk/; revision=11508
2004-10-31 17:05:50 +00:00
Hartmut Birr
cb919902cb - Implemented KeSetTargetProcessorDpc.
- Fixed KeInsertQueueDpc and KeRemoveQueueDpc for mp machines.

svn path=/trunk/; revision=11507
2004-10-31 17:02:31 +00:00
Thomas Bluemel
0a216b2be5 German RC-File for sysdm and timedate and a few change in the Englich RC-File. Patch by Michael Fritscher
svn path=/trunk/; revision=11506
2004-10-31 16:24:31 +00:00
Filip Navara
9b10ed5a9a - Synchronize HalDisplayString using spinlocks at HIGH_LEVEL.
svn path=/trunk/; revision=11505
2004-10-31 15:56:20 +00:00
Hartmut Birr
a3278967c6 - Dpc's must be always deliver before a thread switch can start.
svn path=/trunk/; revision=11504
2004-10-31 15:31:40 +00:00
Hartmut Birr
7287eafc08 - The quantum of the idle thread must also end.
svn path=/trunk/; revision=11503
2004-10-31 15:24:06 +00:00
Hartmut Birr
914140ad22 - Queried some values from pcr at DISPATCH_LEVEL to prevent from changing the processor after a thread switch.
- Changed from bx to dx within inline assembler, because the ebx register must be saved.

svn path=/trunk/; revision=11502
2004-10-31 14:02:20 +00:00
Hartmut Birr
0ca2950639 - Initialize the pcr for an application processor before it is booted.
- Initialize the dpc implementation for the boot processor earlier.

svn path=/trunk/; revision=11501
2004-10-31 13:20:58 +00:00
Hartmut Birr
780bd8e919 - Removed PiApcLock, because apc's are thread local and not global.
svn path=/trunk/; revision=11500
2004-10-31 13:01:04 +00:00
Hartmut Birr
67b8ce4f3b - Save/initialize/restore the gs register on interrupt begin/return.
svn path=/trunk/; revision=11499
2004-10-31 12:49:37 +00:00
Eric Kohl
d81bcce9de Install new inf files and control panel applications.
svn path=/trunk/; revision=11498
2004-10-31 11:56:26 +00:00
Eric Kohl
e90523893c - Define a unique base address for each control panel application.
- Use the W32API.

svn path=/trunk/; revision=11497
2004-10-31 11:54:58 +00:00
Eric Kohl
39a395e1f1 Define a unique base address for each control panel application.
svn path=/trunk/; revision=11496
2004-10-31 11:54:22 +00:00
Eric Kohl
ee001b7a4d Add SCSI device class installer inf file and global layout file.
svn path=/trunk/; revision=11495
2004-10-31 11:49:33 +00:00
James Tabor
2b7e477fd0 Added missing header info for helping to compile msi.dll
svn path=/trunk/; revision=11494
2004-10-31 02:19:52 +00:00
Thomas Bluemel
8301eaaa24 fixed memory leak in CheckNameLegalDOS8Dot3A() (free the allocated unicode string)
svn path=/trunk/; revision=11493
2004-10-31 01:36:37 +00:00
Thomas Bluemel
f33c6e48c8 implemented InitializeProcessForWsWatch() and GetWsChanges()
svn path=/trunk/; revision=11492
2004-10-31 01:23:05 +00:00
Thomas Bluemel
0e568c5b9f fixed a comment
svn path=/trunk/; revision=11491
2004-10-31 00:14:18 +00:00
Thomas Bluemel
b298e3ec15 removed obsolete debug output
svn path=/trunk/; revision=11490
2004-10-31 00:09:12 +00:00
Thomas Bluemel
0a1dce4016 implemented Heap32ListFirst(), Heap32ListNext(), Module32First(), Module32FirstW(), Module32Next(), Module32NextW(), Process32First(), Process32FirstW(), Process32Next(), Process32NextW(), Thread32First(), Thread32Next(), Toolhelp32ReadProcessMemory() and CreateToolhelp32Snapshot().
Currently only the flags TH32CS_SNAPPROCESS, TH32CS_SNAPTHREAD and TH32CS_INHERIT are supported, snapshots of heaps and modules are not fully implemented yet.

svn path=/trunk/; revision=11489
2004-10-31 00:04:19 +00:00
Filip Navara
095f2900e8 - Change ULONG to ULONG_PTR for StackLimit.
- Move code from KiUpdateSystemTime to KeUpdateSystemTime.
- Move code from KiUpdateProcessThreadTime to KeUpdateRunTime.
- Honour thread quantums while scheduling.

svn path=/trunk/; revision=11488
2004-10-30 23:48:57 +00:00
Thomas Bluemel
75d9d45c27 avoid overlaps of kernel32 and ntdll when kernel32 gets too big. Thanks to Filip for pointing this out.
svn path=/trunk/; revision=11487
2004-10-30 22:57:05 +00:00
Thomas Bluemel
1c2597f8e9 added a few missing structures and some janitory work
svn path=/trunk/; revision=11486
2004-10-30 22:18:17 +00:00
Martin Fuchs
53f429e243 adjust WINE specific texts for ReactOS (Klemens Friedl <frik85@hotmail.com>)
svn path=/trunk/; revision=11485
2004-10-30 21:28:19 +00:00
Martin Fuchs
0775105df6 adjust about dialog to ROS font sizes (Klemens Friedl <frik85@hotmail.com>)
svn path=/trunk/; revision=11484
2004-10-30 20:23:59 +00:00
Filip Navara
12143ef1ae - Allow 0x80 to be a BIOS assigned drive number for CD-ROM.
svn path=/trunk/; revision=11483
2004-10-30 19:32:29 +00:00
Eric Kohl
6f9c0194f4 Add Date/Time control panel application.
svn path=/trunk/; revision=11482
2004-10-30 19:16:20 +00:00
Eric Kohl
10e480947b Use W32API.
svn path=/trunk/; revision=11481
2004-10-30 19:14:22 +00:00
Casper Hornstrup
d0c462bb30 - Print stack frames on crashes.
- Users should report errors to ros-dev@reactos.com.

svn path=/trunk/; revision=11480
2004-10-30 17:25:38 +00:00
Alex Ionescu
1acbbc2ca0 Fix some values.
svn path=/trunk/; revision=11479
2004-10-30 16:07:46 +00:00
Filip Navara
0ca74773d6 - Make InitializeListHead, InsertHeadList, InsertTailList and
RemoveEntryList an inline functions instead of macros to match DDK.
  It's important because using macros can lead to variable name
  conflicts.
- Make PopEntryList, PushEntryList a macro instead of inline function
  (to match DDK).
- RemoveEntryList, RemoveHeadList and RemoveTailList shouldn't zero
  Blink and Flink of the removed entry. The MS documentation is wrong
  and there has been already submitted an official bug report for that.

svn path=/trunk/; revision=11478
2004-10-30 14:02:04 +00:00
Filip Navara
f9f887791c - Use KfAcquireSpinLock/KfReleaseSpinLock instead of KiAcquireSpinLock/KiReleaseSpinLock.
svn path=/trunk/; revision=11477
2004-10-30 13:30:03 +00:00
Eric Kohl
26be094c41 Add ability to start individual control panel applications.
svn path=/trunk/; revision=11476
2004-10-30 12:38:52 +00:00
Eric Kohl
7b61512539 Build new control panel applications.
svn path=/trunk/; revision=11475
2004-10-30 12:37:02 +00:00
Eric Kohl
92ac842d73 Add Keyboard and Mouse (Main) control panel application.
svn path=/trunk/; revision=11474
2004-10-30 12:36:14 +00:00
Eric Kohl
b2a213a80c Add Regional Options (Intl) control panel application.
svn path=/trunk/; revision=11473
2004-10-30 12:33:51 +00:00
Casper Hornstrup
ab2c6fba8b - Support FULL_MAP command line option.
- Allow DEBUG to be set on command line.

svn path=/trunk/; revision=11472
2004-10-30 11:19:45 +00:00
Eric Kohl
b0a01fd7b7 Sort control panels by name.
svn path=/trunk/; revision=11471
2004-10-29 16:59:16 +00:00
Casper Hornstrup
7c19997893 2004-10-29 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/include/internal/test.h (NtLockVirtualMemoryInternal): Rename
	to MiLockVirtualMemory.
	* ntoskrnl/include/internal/test.h: Update.
	* ntoskrnl/tests/tests/VirtualMemory.c: Update.

svn path=/trunk/; revision=11470
2004-10-29 16:48:10 +00:00
Eric Kohl
f776678f2d - Support control panel applications that provide more than one control panel.
- Clean-up to improve readability.

svn path=/trunk/; revision=11468
2004-10-29 12:27:58 +00:00
Filip Navara
d338969f54 - Remove duplicate definition of RTL_RANGE_LIST_SHARED_OK and
RTL_RANGE_LIST_NULL_CONFLICT_OK.
- Fix declaration of PRTL_CONFLICT_RANGE_CALLBACK.

svn path=/trunk/; revision=11467
2004-10-28 21:41:58 +00:00
Casper Hornstrup
e89808b094 2004-10-28 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/net/tcpip/tests/setup.c: Include windows.h.
	* lib/gdiplus/tests/setup.c: Ditto.
	* lib/kernel32/tests/setup.c: Ditto.
	* lib/ws2_32/tests/setup.c: Ditto.
	* subsys/win32k/tests/setup.c: Ditto.
	* ntoskrnl/tests/setup.c: Ditto.
	* ntoskrnl/include/ntoskrnl.h: Include test.h.
	* ntoskrnl/mm/virtual.c (NtLockVirtualMemoryInternal): New function.
	(NtLockVirtualMemory): Use NtLockVirtualMemoryInternal.
	* ntoskrnl/tests/Makefile (TARGET_CFLAGS): Add -I../include.
	* ntoskrnl/tests/stubs.tst: Remove stubs for functions in libgcc.
	* regtests/shared/regtests.h: Make independent of windows.h.
	* tools/helper.mk (run): Link with libgcc.
	* tools/regtests.c (EXESTUB): Include windows.h.
	* ntoskrnl/include/internal/test.h: New file.
	* ntoskrnl/tests/tests/VirtualMemory.c: Ditto.

svn path=/trunk/; revision=11466
2004-10-28 19:01:59 +00:00
Filip Navara
497ef5e058 - Define IoReleaseRemoveLock.
- Fix definiton of IoReleaseRemoveLockAndWait.

svn path=/trunk/; revision=11465
2004-10-27 21:36:19 +00:00
Gregor Anich
8c57ab6af9 Added KdbpSafeRead/WriteMemory macros (translated into MmSafeCopyFrom/ToUser) and made KDB use them for accessing unsafe memory - should prevent it from crashing.
svn path=/trunk/; revision=11464
2004-10-27 13:33:59 +00:00
Eric Kohl
9accaf0d0e DrawStatusText() must not process prefix characters.
svn path=/trunk/; revision=11463
2004-10-26 13:15:06 +00:00
Eric Kohl
2e1e51f902 Pressing ENTER when a value is selected in the listview will open the edit dialog.
svn path=/trunk/; revision=11462
2004-10-26 11:05:49 +00:00
Eric Kohl
4daf602867 Use FileHeader->SizeOfOptionalHeader instead of sizeof(IMAGE_OPTIONAL_HEADER) as the real size of the optional header.
svn path=/trunk/; revision=11461
2004-10-26 10:56:38 +00:00
Gregor Anich
d85e7ec614 Fixed debug build
svn path=/trunk/; revision=11457
2004-10-25 14:22:21 +00:00
Thomas Bluemel
0402fbbd25 more prototype fixes
svn path=/trunk/; revision=11422
2004-10-24 20:37:27 +00:00
Casper Hornstrup
b69a77aa97 2004-10-24 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/Makefile (TARGET_REGTESTS): Define to yes.
	* regtests/regtests/regtests.c (_ExitProcess): Declare.
	* regtests/regtests/regtests.def (_ExitProcess@4): Ditto.
	* regtests/shared/regtests.h (_ExitProcess): Ditto.
	* tools/regtests.c: Exit process using _ExitProcess();
	Properly support fastcall symbols.
	* ntoskrnl/tests: New directory.
	* ntoskrnl/tests/tests: Ditto.
	* ntoskrnl/tests/.cvsignore: New file.
	* ntoskrnl/tests/Makefile: Ditto.
	* ntoskrnl/tests/setup.c: Ditto.
	* ntoskrnl/tests/stubs.tst: Ditto.
	* ntoskrnl/tests/tests/.cvsignore: Ditto.

svn path=/trunk/; revision=11420
2004-10-24 17:51:29 +00:00
Thomas Bluemel
1dbfd30e1e fixed prototypes of NtCreateProfile() and NtQueryIntervalProfile()
svn path=/trunk/; revision=11419
2004-10-24 17:14:27 +00:00
Thomas Bluemel
b4e530e530 fixed prototypes of NtCreateMutant(), NtQueryMutant(), NtQuerySemaphore(), NtQueryTimer(), NtReleaseMutant(), NtReleaseSemaphore(), NtSetTimerResolution() and NtSetTimer()
svn path=/trunk/; revision=11418
2004-10-24 16:49:49 +00:00
Thomas Bluemel
4a6dd7de44 fixed prototypes of NtSetEvent(), NtResetEvent(), NtQueryEvent(), NtPulseEvent(), NtOpenEvent() and NtCreateEvent()
svn path=/trunk/; revision=11417
2004-10-24 15:26:14 +00:00
Thomas Bluemel
4bd798e343 added some base addresses to the list
svn path=/trunk/; revision=11416
2004-10-24 13:05:53 +00:00
Thomas Bluemel
cb1bf2ae32 minor fixes
svn path=/trunk/; revision=11415
2004-10-24 12:55:19 +00:00
Casper Hornstrup
6003c5cb06 2004-10-24 Casper S. Hornstrup <chorns@users.sourceforge.net>
* config (REGRESSIONTESTS): Remove.
	* tools/config.mk: Update.
	* lib/kernel32/misc/dllmain.c: Update.
	* drivers/net/tcpip/tests/Makefile (TARGET_OBJECTS): Add setup.o.
	* lib/gdiplus/tests/Makefile (TARGET_OBJECTS): Ditto.
	* lib/kernel32/tests/Makefile (TARGET_OBJECTS): Ditto.
	* lib/ws2_32/tests/Makefile (TARGET_OBJECTS): Ditto.
	* subsys/win32k/tests/makefile (TARGET_OBJECTS): Ditto.
	* regtests/shared/regtests.h (SetupOnce, _SetupOnce): Declare.
	(DISPATCHER): Rename to _Dispatcher.
	* lib/gdiplus/tests/tests/test-1.c: Update.
	* lib/kernel32/tests/tests/CreateFile.c: Ditto.
	* lib/ws2_32/tests/tests/WinsockEvent.c: Ditto.
	* subsys/win32k/tests/tests/eng-mem-1.c: Ditto.
	* tools/helper.mk: Be quiet when building tests.
	* tools/regtests.c: Remove unused code.
	* drivers/net/tcpip/tests/setup.c: New file.
	* lib/gdiplus/tests/setup.c: Ditto.
	* lib/kernel32/tests/setup.c: Ditto.
	* lib/ws2_32/tests/setup.c: Ditto.
	* subsys/win32k/tests/setup.c: Ditto.

svn path=/trunk/; revision=11414
2004-10-24 12:39:54 +00:00
Thomas Bluemel
40851010a8 minor fixes
svn path=/trunk/; revision=11413
2004-10-24 12:36:12 +00:00
Thomas Bluemel
565f4d669b minor fixes
svn path=/trunk/; revision=11412
2004-10-24 12:26:27 +00:00
Thomas Bluemel
0dd86887a1 minor fixes
svn path=/trunk/; revision=11411
2004-10-24 12:16:54 +00:00
Eric Kohl
f443b5edcf Set processor features in the shared user page.
This fixes bug #387.

svn path=/trunk/; revision=11410
2004-10-24 12:00:01 +00:00
Filip Navara
baac7ae72e - Return STATUS_SUCCESS for PCI bus PDO PnP IRPs so that function drivers can process them.
svn path=/trunk/; revision=11409
2004-10-24 09:14:03 +00:00
Filip Navara
b02b780b4a - Return STATUS_SUCCESS for root bus PDO PnP IRPs so that function drivers can process them.
svn path=/trunk/; revision=11408
2004-10-24 09:13:18 +00:00
Alex Ionescu
cad7a781f2 Fixed up some HAL prototypes and fixed some header problems in regards to upcoming DMA patch I will commit tomorrow.
svn path=/trunk/; revision=11407
2004-10-23 23:43:23 +00:00
Casper Hornstrup
eae828b789 2004-10-23 Casper S. Hornstrup <chorns@users.sourceforge.net>
* Makefile: Support regtests_implib.
	* rules.mak (REGTESTS_PATH): Define.
	* drivers/net/tcpip/makefile (TARGET_BUILDENV_TEST): Remove.
	* drivers/net/tcpip/tests/Makefile: Update.
	* lib/gdiplus/tests/.cvsignore: Ditto.
	* lib/gdiplus/tests/Makefile: Ditto.
	* lib/kernel32/tests/Makefile: Ditto.
	* lib/kernel32/tests/stubs.tst (HeapAlloc, HeapFree): Add.
	* lib/ws2_32/makefile (TARGET_REGTESTS): Define to yes.
	* regtests/Makefile: Update.
 	* regtests/shared/regtests.c (_alloca): Define.
	(FrameworkGetHook): Move to here.
 	* regtests/shared/regtests.h (_AssertTrue, _AssertFalse): Define.
 	(_GetModuleHandleA, _GetProcAddress, _LoadLibraryA): Define.
 	(FrameworkGetExportedFunctionNameInternal): Define.
 	* subsys/win32k/tests/makefile: Update.
 	* tools/helper.mk: Create dependencies.
 	* tools/regtests.c: Move FrameworkGetHook; Support forwarded exports.
	* lib/ws2_32/tests: New directory.
	* lib/ws2_32/tests/.cvsignore: New file.
	* lib/ws2_32/tests/Makefile: Ditto.
	* lib/ws2_32/tests/stubs.tst: Ditto.
	* lib/ws2_32/tests/tests: New directory.
	* lib/ws2_32/tests/tests/.cvsignore: New file.
	* lib/ws2_32/tests/tests/WinsockEvent.c: New file.
	* regtests/regtests: New directory.
	* regtests/regtests/.cvsignore: New file.
	* regtests/regtests/Makefile: Ditto.
	* regtests/regtests/regtests.c: Ditto.
	* regtests/regtests/regtests.def: Ditto.

svn path=/trunk/; revision=11406
2004-10-23 21:05:12 +00:00
Gé van Geldorp
825e1dc162 Take DC origin into account
svn path=/trunk/; revision=11405
2004-10-23 19:17:54 +00:00
Filip Navara
985184b134 - Add _hooks.c and _stubs.S to list of ignore files.
svn path=/trunk/; revision=11404
2004-10-23 17:39:51 +00:00
Filip Navara
1b13f5b90b - Minor device node fixes.
svn path=/trunk/; revision=11402
2004-10-23 17:32:51 +00:00
Thomas Bluemel
9c06590d72 finally get rid of loadros
svn path=/trunk/; revision=11401
2004-10-23 17:07:07 +00:00
Gregor Anich
7e179dae1f Fixed debug build
svn path=/trunk/; revision=11400
2004-10-23 15:17:35 +00:00
Gregor Anich
fcfc4f85d1 Fixed debug build, uncommented NDEBUG in io/pnpmgr.c
svn path=/trunk/; revision=11399
2004-10-23 14:52:51 +00:00
Eric Kohl
dbc9b1b7dd Update DEVICE_NODE structure but some ReactOS specific components still remain.
svn path=/trunk/; revision=11398
2004-10-23 14:48:16 +00:00
Gé van Geldorp
f0497fdefd InProcServer32 entries only take a DLL name, no resource identifier
svn path=/trunk/; revision=11397
2004-10-23 13:10:57 +00:00
Filip Navara
b5e5b4f012 - Add declarations for the PnP arbiter and resource translation interfaces (ARBITER_REQUEST_SOURCE, ARBITER_RESULT, ARBITER_ACTION, ARBITER_CONFLICT_INFO, ARBITER_PARAMETERS, ARBITER_LIST_ENTRY, PARBITER_HANDLER, ARBITER_INTERFACE, RESOURCE_TRANSLATION_DIRECTION, PTRANSLATE_RESOURCE_HANDLER, PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER, TRANSLATOR_INTERFACE).
svn path=/trunk/; revision=11396
2004-10-23 08:10:57 +00:00
Thomas Bluemel
75009fd35f hopefully a better implementation of rundown protections, thanks also to Alex.
svn path=/trunk/; revision=11395
2004-10-22 22:49:00 +00:00
Thomas Bluemel
1270089c9f fixed redefinition of ASSERT
svn path=/trunk/; revision=11394
2004-10-22 21:21:52 +00:00
Eric Kohl
2a175cb990 Use upper-case ASSERT macros.
svn path=/trunk/; revision=11393
2004-10-22 20:57:39 +00:00
Eric Kohl
92239abf04 IoAdjustPagingPathCount is a macro.
svn path=/trunk/; revision=11392
2004-10-22 20:54:57 +00:00
Filip Navara
9fb531fab6 - Check for DeviceNode->CapabilityFlags being NULL before trying to access it.
svn path=/trunk/; revision=11391
2004-10-22 20:44:48 +00:00
Eric Kohl
b1a58d7d7e Use upper-case ASSERT macros.
svn path=/trunk/; revision=11390
2004-10-22 20:43:58 +00:00
Eric Kohl
9e01875f9c Use upper-case ASSERT macros.
svn path=/trunk/; revision=11389
2004-10-22 20:19:58 +00:00
Eric Kohl
8c62a8159a Use ASSERT macro instead of assert macro.
svn path=/trunk/; revision=11388
2004-10-22 20:08:22 +00:00
Filip Navara
e49ebc81df - Fix uninitialized variable warning in KeFlushEntireTb.
svn path=/trunk/; revision=11387
2004-10-22 20:07:13 +00:00
Eric Kohl
1e9ad342c8 Define ASSERT macro.
svn path=/trunk/; revision=11386
2004-10-22 20:04:05 +00:00
Eric Kohl
72aae9d8ca Define ASSERT and ASSERTMSG macros.
svn path=/trunk/; revision=11385
2004-10-22 20:02:32 +00:00
Filip Navara
ce60fe1bee - Add the afiler.h (ARC MAC filter) and wdmguid.h (GUIDs for buses, device events, ...) headers.
svn path=/trunk/; revision=11383
2004-10-22 19:35:19 +00:00
Filip Navara
3d8c71fce1 - Define the PLUGPLAY_REGKEY_* flags.
svn path=/trunk/; revision=11382
2004-10-22 19:29:44 +00:00
Filip Navara
6b8a09e4a4 - Support the BINARY_COMPATIBLE compile definition.
- Declare NDIS_PROCESSOR_TYPE and NDIS_ENVIRONMENT_TYPE.

svn path=/trunk/; revision=11381
2004-10-22 19:29:28 +00:00
Eric Kohl
ca8388ad0c Fix a debug message
svn path=/trunk/; revision=11380
2004-10-22 18:34:11 +00:00
Filip Navara
0214f20262 - Fix RtlIsRangeAvailable for boundary addresses and honour the RTL_RANGE_SHARED flag.
svn path=/trunk/; revision=11379
2004-10-22 16:30:58 +00:00
Filip Navara
ec9c488f06 - Fix a case when a device with same IDs is located on two or more buses in the same slot (honour bus number in FdoLocateChildDevice).
- Read only the common PCI header and not private device data while enumerating.

svn path=/trunk/; revision=11378
2004-10-22 16:30:46 +00:00
Eric Kohl
c647cbd575 - Remove obsolete variables from the DEVICE_NODE structure and store it in the registry instead.
- IoGetDeviceProperty() supports more properties (untested).

svn path=/trunk/; revision=11377
2004-10-22 11:00:41 +00:00
Eric Kohl
2461583881 - Remove obsolete variables from the DEVICE_NODE structure and store it in the registry instead.
- IoGetDeviceProperty() supports more properties (untested).

svn path=/trunk/; revision=11376
2004-10-22 10:55:35 +00:00
Gé van Geldorp
b3e27217fd - Don't double-quote an already double-quoted argument
- Properly increment the fmt pointer

svn path=/trunk/; revision=11375
2004-10-21 18:30:36 +00:00
Thomas Bluemel
69b98bb582 fixed a comment
svn path=/trunk/; revision=11374
2004-10-21 18:28:05 +00:00
Art Yerkes
8238df107b Corrected build problem: hal.a was not placed in the ddk implib
directory.

svn path=/trunk/; revision=11373
2004-10-21 18:04:48 +00:00
Steven Edwards
4cd92d7bd7 Thats it. the tests are now in rosapps.
svn path=/trunk/; revision=11372
2004-10-21 12:05:13 +00:00
Gé van Geldorp
2ecd28627f Put back -D__REACTOS__ for now
svn path=/trunk/; revision=11371
2004-10-21 12:02:18 +00:00
Steven Edwards
24617fc41e Almost done removing old tests
svn path=/trunk/; revision=11370
2004-10-21 11:58:12 +00:00
Gé van Geldorp
d8a803d10b Better drawing of +/- boxes at smaller icon sizes
svn path=/trunk/; revision=11369
2004-10-21 08:38:36 +00:00
Steven Edwards
2d23921220 I'll finish in the morning......
svn path=/trunk/; revision=11368
2004-10-21 05:30:46 +00:00
Steven Edwards
2b58d249c6 Started removing tests
svn path=/trunk/; revision=11367
2004-10-21 05:27:50 +00:00
Steven Edwards
75fbd2832d Added regexpl and tests to the makefile.
Let me know if something is broken on linux.

svn path=/trunk/; revision=11366
2004-10-21 05:20:52 +00:00
Steven Edwards
005fb790e6 Re-enable almost all tests.
svn path=/trunk/; revision=11365
2004-10-21 05:20:21 +00:00
Steven Edwards
10a923d083 Moving tests....Almost done.
svn path=/trunk/; revision=11364
2004-10-21 05:12:02 +00:00
Steven Edwards
4ed7672428 Remove tests from the Main Makefile.
svn path=/trunk/; revision=11363
2004-10-21 05:08:32 +00:00
Steven Edwards
5368a4c682 Moving the tests.....still more....
svn path=/trunk/; revision=11362
2004-10-21 04:59:01 +00:00
Steven Edwards
e1c8dd64af Moving the tests.....more
svn path=/trunk/; revision=11361
2004-10-21 04:53:21 +00:00
Steven Edwards
dbf0e6e889 Moving the tests
svn path=/trunk/; revision=11360
2004-10-21 04:48:46 +00:00
Art Yerkes
68d63b431f Added null check for CapabilityFlags.
svn path=/trunk/; revision=11359
2004-10-21 03:39:37 +00:00
Thomas Bluemel
48008b5f19 fixed language code
svn path=/trunk/; revision=11358
2004-10-20 22:41:16 +00:00
Thomas Bluemel
85de1b945e forgot to add these files
svn path=/trunk/; revision=11357
2004-10-20 22:31:05 +00:00
Casper Hornstrup
e1a7bb0d2f 2004-10-20 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/gdiplus/makefile (TARGET_BUILDENV_TEST): Remove.
	(TARGET_TYPE): Set to test.
	* lib/kernel32/makefile: Ditto.
	* subsys/win32k/makefile: Ditto.
	* tools/helper.mk (TARGET_BUILDENV_TEST): Remove.
	(TARGET_TYPE): New value test.
	* regtests/shared/regtests.c (_Result, _Buffer): Add.
	* regtests/shared/regtests.h (_Result, _Buffer): Declare extern.
	(TestRoutine): Make void return type and remove Buffer parameter.
	(FAIL*): Remove.

svn path=/trunk/; revision=11356
2004-10-20 20:51:21 +00:00
Gé van Geldorp
8139ac2333 Sync to Wine-20041019
svn path=/trunk/; revision=11355
2004-10-20 20:35:58 +00:00
Gé van Geldorp
ef42acd73f Remove global -DCOBJMACROS for winedll's since they #define it themselves
now when needed

svn path=/trunk/; revision=11354
2004-10-20 20:31:36 +00:00
Thomas Bluemel
5df79e4eec disabled mouse tracking should just supress MSG_MOUSE_MOVED - all other mouse messages are supposed to be dispatched.
svn path=/trunk/; revision=11353
2004-10-20 19:19:12 +00:00
Gé van Geldorp
ab895b1d38 Update status
svn path=/trunk/; revision=11352
2004-10-20 18:33:05 +00:00
Gé van Geldorp
b16df368f7 Sync to Wine-20041019
svn path=/trunk/; revision=11350
2004-10-20 18:30:39 +00:00
Gé van Geldorp
1b613704b0 Sync to Wine-20041019:
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Fix various function prototypes.
Jeremy White <jwhite@codeweavers.com>
- Revise winmm/time.c to fix timer resolution at 1 ms. This then allows
a much more efficient implementation of timer events and timeGetTime,
and callers that used sub 10 ms resolution will now get correct
results.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.
Eric Pouech <pouech-eric@wanadoo.fr>
- bring the multimedia doc up-to-date
- moved the TODO from the doc into the code

svn path=/trunk/; revision=11349
2004-10-20 17:42:11 +00:00
Gé van Geldorp
c333fa4ed1 Sync to Wine-20041019:
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
Robert Shearman <rob@codeweavers.com>
- Don't define GWL_USERDATA, GWL_ID, GWL_HWNDPARENT, GWL_HINSTANCE and
GWL_WNDPROC when compiling the Wine source.
Mike McCormack <mike@codeweavers.com>
- Fix some -Wsigned-compare warnings.
Huw Davies <huw@codeweavers.com>
- Rewrite PathCreateFromUrl.
- Implement PathSearchAndQualify.
- Fix UrlUnescapeW.
- PathIsURL should return TRUE even if a scheme is unknown.
- UrlEscape has different rules depending on the protocol.
- Added a load of tests.
- ParseURL is now documented, so move it into shlwapi.h.
Bill Medland <billmedland@mercuryspeed.com>
- Fix SHDeleteKey so that it will handle deleting a key with more than
one subkey.  Also includes test.
Steven Edwards <steven_ed4153@yahoo.com>
- Move URL_SCHEME typedef to match PSDK.

svn path=/trunk/; revision=11348
2004-10-20 16:49:27 +00:00
Gé van Geldorp
4667670c9e Simplify wine/shlwapi.h
svn path=/trunk/; revision=11347
2004-10-20 16:20:22 +00:00
Gé van Geldorp
dc9f9834d9 Sync to Wine-20041019:
Mike McCormack <mike@codeweavers.com>
- Add stub implementation for CreateProxyFromTypeInfo.
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Fix various function prototypes.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.

svn path=/trunk/; revision=11346
2004-10-20 09:38:15 +00:00
Gé van Geldorp
65e1445718 Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.

svn path=/trunk/; revision=11345
2004-10-20 09:32:11 +00:00
Gé van Geldorp
bf5400ab2a Sync to Wine-20041019:
Alexandre Julliard <julliard@winehq.org>
- Build the .h files from their idl source at compile time, and remove
them from CVS.
- Build idl files as part of the normal build process.
- Avoid depending on the non-standard IUnknown_METHODS macro in Wine
internal headers.
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
- Assorted spelling fixes.
Joris Huizer <jorishuizer@planet.nl>
- Ref count increment/decrement cleanup.
Robert Shearman <rob@codeweavers.com>
- Improve proxy destruction comment.
Mike McCormack <mike@codeweavers.com>
- CoSuspendClassObjects stub implementation.
Vincent Beron <vberon@mecano.gme.usherb.ca
- Fix some types problems.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.

svn path=/trunk/; revision=11344
2004-10-20 09:27:43 +00:00
Gé van Geldorp
b48649a01d Jacek Caban <jack@itma.pwr.wroc.pl>
- Added/updated Polish translations.
Robert Shearman <rob@codeweavers.com>
- GetWindowLong -> GetWindowLongPtr.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Fix various function prototypes.
- Better document some apis in commdlg and mscms.
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Constify some statics and make them smaller.
Steven Edwards <steven_ed4153@yahoo.com>
- Remove unneeded include statements.
Dimitrie O. Paun <dpaun@rogers.com>
- Avoid W->A transitions.

svn path=/trunk/; revision=11343
2004-10-20 08:53:06 +00:00
Gé van Geldorp
695f33412e Sync to Wine-20041019:
Dmitry Timoshkov <dmitry@codeweavers.com>
- If an animation is already playing do not restart it.
- Remove WM_CLOSE handler, it leads to a memory corruption later on.
- Do not use GlobalFree for a memory returned by LoadResource.
Robert Shearman <rob@codeweavers.com>
- Implement SetPathWordBreakProc and MirrorIcon.
- Implement ImageList_SetColorTable.
- Implement WS_DISABLED style.
- Issue EN_CHANGE notification.
- Make the control look more like native by using the right font and
  spacing.
- Use TextOutW rather than DrawTextW as we don't use any features of
  DrawTextW.
- Fix caret size and position.
- Implement WM_CHAR and WM_SYSCHAR messages.
- Status update.
- Should create HOTKEY_INFO storage in WM_NCCREATE rather than in
  WM_CREATE so that we can also add the WS_EX_CLIENTEDGE style.
- Remove code that draws the client edge; it is already drawn by
  DefWindowProc.
- Document status of control against v6.0 of native version.
- Don't use TrackMouseEvents/WM_MOUSELEAVE API for handling the hot
  button; use plain mouse capture instead like native.
- Return only HTTRANSPARENT/HTCLIENT from WM_NCHITTEST and remove
  associated hacks of WM_SETCURSOR, WM_NCLBUTTONDOWN and
  WM_NCLBUTTONUP.
- Refactor state change code so that state changes don't happen as
  side effects from messages such as WM_NCCALCSIZE, instead only from
  user input messages like WM_MOUSEMOVE.
- Rebar completeness audit.
- TBN_DELETINGBUTTON sends the command ID, not the index.
- Fill in tbButton structure for TBN_DELETINGBUTTON notification.
- Document TBN_QUERY* sending indices.
- Fix some TRACEs
- More A->W conversions missed by previous patch.
- Fix off-by-one error in validating drag-n-drop from available
  buttons list box to actual buttons list box.
- Unicode flag should be based on the notification window.
- Use Unicode window messages.
- Determine whether to do label edit before sending NM_CLICK.
Francois Gouget <fgouget@free.fr>
- Don't define COBJMACROS in objbase.h.
- Update the Wine sources accordingly.
- Assorted spelling fixes.
Filip Navara <xnavara@volny.cz>
- Implement PSM_INDEXTOID, PSM_INDEXTOPAGE and PSM_PAGETOINDEX messages.
- Partially implement the PSH_WIZARDCONTEXTHELP and PSH_NOCONTEXTHELP
  styles.
- Add note about unimplemented TB_SAVERESTORE message.
- Fix obviously wrong condition in an "if" statement.
Dimitrie O. Paun <dpaun@rogers.com>
- We now have ICC_LINK_CLASS.
- Cleanup W->A transition.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- ImageList_Merge should not fail if indices are bad.
- Add tests for this case, a visible test mode and fix DrawIndirect test
under some native comctl32.dll's.
- Items are variable sized, use an accessor to get at them.
- Combine A/W calls together to remove duplication.
- Don't leak text when removing/changing items.
- Turn off hot tracking when we delete the last item.
- Use the 'delete 1 item' logic when deleting all items.
- Draw +/- correctly for large icon sizes.
- Item height/expand button width must be >= than imagelist size.
- Avoid a magic number, add FIXME for incorrect +/- drawing.
Michael Stefaniuc <mstefani@redhat.com>
- native ImageList_Remove dosn't spit out an error message when
  deleting an index out of range so don't do that either
- add 2 ImageList_Remove tests
Aric Stewart <aric@codeweavers.com>
- Check to make sure PropSheetInfo* is not null before dereferencing it
for some windows messages.
Vitaliy Margolen <wine-patch@kievinfo.com>
- Don't loose last band on insert.
Ge van Geldorp <gvg@reactos.com>
- Pass correct uiParam for SPI_GETNONCLIENTMETRICS.

svn path=/trunk/; revision=11342
2004-10-20 08:36:55 +00:00
Gé van Geldorp
177b871326 Vincent B�ron <vberon@mecano.gme.usherb.ca>
Fix various function prototypes.

svn path=/trunk/; revision=11341
2004-10-20 07:47:39 +00:00
James Tabor
2b473d593e Ported Wine CompareStringA.
svn path=/trunk/; revision=11340
2004-10-20 03:46:27 +00:00
Hartmut Birr
5b5e2d9b00 - Fixed the size calculation of the resource list in IopSetDeviceInstanceData.
svn path=/trunk/; revision=11339
2004-10-19 23:23:04 +00:00
Eric Kohl
91ff1098cb Cosmetical fixes.
svn path=/trunk/; revision=11338
2004-10-19 22:47:38 +00:00
Emanuele Aliberti
8bf1b284bf cvs-ignore compiled resources
svn path=/trunk/; revision=11337
2004-10-19 21:12:42 +00:00
Filip Navara
dc5c114cdd - Fix the values of KeepObject, DeallocateObject and DeallocateObjectKeepRegisters.
svn path=/trunk/; revision=11336
2004-10-19 20:36:52 +00:00
Filip Navara
0d7040d3bb - Successfully complete IRP_MN_START_DEVICE and IRP_MN_STOP_DEVICE so that the drivers lower in the device stack can work.
svn path=/trunk/; revision=11335
2004-10-19 19:39:23 +00:00
Filip Navara
953b49dd54 - Fix various bugs in IoGetDmaAdapter.
- Fill the IoStatus values in the Irp I/O status block in IopInitiatePnpIrp.

svn path=/trunk/; revision=11334
2004-10-19 19:37:45 +00:00
Eric Kohl
cbc7c9eac2 Install class installers.
svn path=/trunk/; revision=11333
2004-10-19 14:33:07 +00:00
Eric Kohl
fe3da89e8e Disable debug messages.
svn path=/trunk/; revision=11332
2004-10-19 14:32:13 +00:00
Eric Kohl
9058842f67 Implement
- SetupDiBuildClassInfoList(ExW)
 - SetupDiClassGuidsFromName(W/ExW),
 - SetupDiClassNameFromGuid(W/ExW)
 - SetupDiGetActualSectionToInstallW
 - SetupDiGetClassDescription(W/ExW)
 - SetupDiInstallClassW partially
 - SetupDiOpenClassRegKey(ExW)
 - SetupOpenMasterInf

Fix compiler warnings.

svn path=/trunk/; revision=11331
2004-10-19 11:19:16 +00:00
Eric Kohl
f8eb27af13 Implement
-  SetupDiBuildClassInfoList(ExW), SetupDiClassGuidsFromName(W/ExW),
 - SetupDiClassNameFromGuid(W/ExW)
 - SetupDiGetActualSectionToInstallW
 - SetupDiGetClassDescription(W/ExW)
 - SetupDiInstallClassW partially
 - SetupDiOpenClassRegKey(ExW)

svn path=/trunk/; revision=11330
2004-10-19 11:13:11 +00:00
Thomas Bluemel
2bcdc488b3 the last parameter of NtQueryInformationProcess() is optional, don't use it when not needed.
svn path=/trunk/; revision=11329
2004-10-19 10:27:11 +00:00
Gé van Geldorp
b35df7844e Rolf Kalbermatter <rolf.kalbermatter@citeng.com>
- Added SHFreeNameMappings implementation.
- Modify ANSI functions to allocate intermediate Unicode strings on the
heap instead of stack.
Mike McCormack <mike@codeweavers.com>
- Convert the shellmenu code to use unicode.

svn path=/trunk/; revision=11328
2004-10-19 10:17:53 +00:00
Gé van Geldorp
b373e014a9 Simplify wine/shellapi.h
svn path=/trunk/; revision=11327
2004-10-19 10:17:05 +00:00
Gé van Geldorp
9f29b6e41d Windows doesn't check uiParam for SPI_GETNONCLIENTMETRICS
svn path=/trunk/; revision=11326
2004-10-19 08:25:25 +00:00
Gé van Geldorp
5d5362aca5 Don't free subclass stack while it's still in use
svn path=/trunk/; revision=11325
2004-10-18 21:31:41 +00:00
Filip Navara
bd1f1924a0 - Change _NDIS_ define to NDIS_WRAPPER.
svn path=/trunk/; revision=11324
2004-10-18 21:08:20 +00:00
Filip Navara
83c1f21479 - Fix a typo.
svn path=/trunk/; revision=11323
2004-10-18 21:07:42 +00:00
Filip Navara
dbcfba9bdb - Fix calling convention of ExInterlockedPushEntrySList and ExInterlockedPopEntrySList.
svn path=/trunk/; revision=11322
2004-10-18 20:56:22 +00:00
Casper Hornstrup
9af4f499f3 2004-10-18 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/kernel32/makefile (TARGET_BUILDENV_TEST): Set to yes.
	* lib/kernel32/tests/Makefile: New target run.
	* lib/kernel32/tests/tests/file-1.c: Remove.
	* lib/kernel32/tests/tests/CreateFile.c: New file.
	* lib/kernel32/tests/stubs.tst: New file.
	* lib/gdiplus/tests/tests/test-1.c: Update.
	* lib/gdiplus/tests/stubs.tst: Update.
	* lib/gdiplus/tests/Makefile: Update.
	* lib/tools/helper.mk: Better support for TARGET_BUILDENV_TEST.
	* tools/regtests.c: Terminate process after running tests.
	* regtests/shared/regtests.c (PerformTest): Increase buffer sizes.
	* regtests/Makefile: Update.
	* regtests/kmregtests/*: Remove.
	* regtests/kmrtint/*: Remove.
	* regtests/regtests/*: Remove.
	* regtests/win32base/*: Remove.
	* subsys/win32k/tests/tests/eng-mem-1.c: Update.
	* subsys/win32k/tests/stubs.tst: New file.
	* drivers/net/tcpip/tests/Makefile: Update.
	* drivers/net/tcpip/makefile: Update.
	* drivers/net/tcpip/stubs.tst: New file.
	* drivers/net/tcpip/tests/Makefile: Update.

svn path=/trunk/; revision=11321
2004-10-18 19:11:09 +00:00
Gé van Geldorp
41fed98970 Sort by address to make searching easier
svn path=/trunk/; revision=11320
2004-10-17 21:25:43 +00:00
Richard Campbell
1dcf1a09de commented out an assert(0); that was causing crashes in windows.
svn path=/trunk/; revision=11319
2004-10-17 20:41:16 +00:00
Gé van Geldorp
9f4291ecfc Move resource constant to local header file
svn path=/trunk/; revision=11318
2004-10-17 18:51:09 +00:00
Hartmut Birr
f7f880f8e9 - Fixed the changing of the PGE bit in cr4.
- Check if the cpu supports global pages.

svn path=/trunk/; revision=11317
2004-10-17 17:28:45 +00:00
Hartmut Birr
53a23c65e8 - Used variables from the KPCR for the current irql, for dpc's, for time counters and for the idle thread.
svn path=/trunk/; revision=11316
2004-10-17 15:39:30 +00:00
Hartmut Birr
70919642d8 - Simplified the definition of KeGetCurrentKPCR for the UP target.
svn path=/trunk/; revision=11315
2004-10-17 13:26:48 +00:00
Filip Navara
108bfdf09f - Fix calling convention of ExInterlocked* functions.
svn path=/trunk/; revision=11314
2004-10-17 13:08:26 +00:00
Hartmut Birr
7090b2771a - Fixed the definition KPCR_SELF and KeGetCurrentKPCR.
svn path=/trunk/; revision=11313
2004-10-17 10:53:05 +00:00
Hartmut Birr
6fe0a87268 - Fixed the dependency check for ntoskrnl.
svn path=/trunk/; revision=11312
2004-10-17 10:43:57 +00:00
Filip Navara
fdfdfbe2d2 - Fix NdisMSynchronizeWithInterrupt.
svn path=/trunk/; revision=11310
2004-10-17 10:15:07 +00:00
Filip Navara
6815a62066 - Fix cut & paste mistake (s/NdisDprAcquireSpinLock/NdisDprReleaseSpinLock/).
- Fix values passed to NdisMRegisterInterrupt.

svn path=/trunk/; revision=11309
2004-10-17 10:15:02 +00:00
Gé van Geldorp
b91c380949 More shutdown messages
svn path=/trunk/; revision=11308
2004-10-17 09:36:08 +00:00
Alex Ionescu
020a7e0b2d Fixed definition of KPCR_TIB to match W32API/NT5 defintion. Fixed bug in Makefile (fixed by Filip)
svn path=/trunk/; revision=11307
2004-10-17 05:20:29 +00:00
Alex Ionescu
a5262fdf54 Fix accidental change.
svn path=/trunk/; revision=11306
2004-10-17 03:55:05 +00:00
Alex Ionescu
b3f049be4f KeStackAttach: Acquire lock before getting thread
svn path=/trunk/; revision=11305
2004-10-17 03:43:26 +00:00
Filip Navara
1f59f1138b - Fix the CFLAGS handling to avoid duplicating flags on command line.
svn path=/trunk/; revision=11304
2004-10-17 02:51:39 +00:00
Filip Navara
33a12b714a - Fix IRQL restrictions.
svn path=/trunk/; revision=11303
2004-10-17 01:59:36 +00:00
Filip Navara
921ff5c94d - Add comment to NdisMRegisterIoPortRange about the meaning of InitialPort parameter and pass the bus number to HalTranslateBusAddress.
svn path=/trunk/; revision=11302
2004-10-17 01:59:18 +00:00
Filip Navara
d788739c0e - Compile with W32API headers.
- Add multicast support.
- Add media state detection support.
- Protect the adapter context with spinlock and move code talking to card to inside NdisMSynchronizeWithInterrupt calls where necessary.

svn path=/trunk/; revision=11301
2004-10-17 01:55:54 +00:00
Filip Navara
3d1e209ba7 - Cleanup handling of NDISxx definitions.
- Define NDIS_MINIPORT_MAJOR_VERSION, NDIS_MINIPORT_MINOR_VERSION, NDIS_PROTOCOL_MAJOR_VERSION and NDIS_PROTOCOL_MINOR_VERSION when necessary.
- Fix definition of NdisMIndicateStatus macro.
- Add prototypes for NdisMSetTimer, NdisMInitializeTimer, NdisMSetPeriodicTimer, NdisMCancelTimer.

svn path=/trunk/; revision=11300
2004-10-17 01:55:33 +00:00
Gé van Geldorp
712015d695 Centralize definition of version resource
svn path=/trunk/; revision=11299
2004-10-16 22:30:19 +00:00
Gé van Geldorp
600222621e Undo change to DBG
svn path=/trunk/; revision=11298
2004-10-16 20:29:32 +00:00
Gé van Geldorp
4221b60000 - Centralize definition of version resource
- Give DLLs a high version number, so installers won't overwrite them

svn path=/trunk/; revision=11297
2004-10-16 20:27:43 +00:00
Alex Ionescu
f5d1a75a57 Fix Typo
svn path=/trunk/; revision=11296
2004-10-16 18:56:54 +00:00
Alex Ionescu
10d4df0a8b Fixed ExGetCurrentProcessorUsage (thanks to Mike)
svn path=/trunk/; revision=11295
2004-10-16 18:45:03 +00:00
Gé van Geldorp
597aeb8577 Fix legacy detection of AGP cards
svn path=/trunk/; revision=11294
2004-10-15 22:48:43 +00:00
Thomas Bluemel
8d81aae9b5 some german translations and fixes by Michael Wirth
svn path=/trunk/; revision=11293
2004-10-15 14:07:42 +00:00
Filip Navara
ca8df5d139 - Update prototype of NdisMAllocateMapRegisters.
- Fix declaration of NDIS_MINIPORT_CHARACTERISTICS, NDIS_PROTOCOL_CHARACTERISTICS and NDIS_MAC_CHARACTERISTICS.

svn path=/trunk/; revision=11292
2004-10-14 18:46:57 +00:00
Eric Kohl
23d3eee3ec Silence debug message.
svn path=/trunk/; revision=11291
2004-10-14 11:49:55 +00:00
Alex Ionescu
44c0fd942d Implemented KeSetEventBoostPriority, KeFindConfigurationEntry, KeDeregisterBugCheckCallback, KeIsAttachedProcess, KeQueryActiveProcessors, KeSetDmaIoCoherency, KeSetTimeIncrement, KeQueryRuntimeThread, KeUpdateRunTime, KeUpdateSystemTime. Made KeRegisterBugCheckCallback check if Callback isn't already registered.
svn path=/trunk/; revision=11290
2004-10-13 22:27:03 +00:00
Gé van Geldorp
196a075d05 Pass win.ini as filename to *PrivateProfile* functions instead of NULL
svn path=/trunk/; revision=11289
2004-10-13 19:52:09 +00:00
Filip Navara
2cc81267e3 - Handle all required OID requests.
- Fix handling of OID_GEN_MAXIMUM_FRAME_SIZE and OID_GEN_DRIVER_VERSION.
- Generate error statistics.

svn path=/trunk/; revision=11288
2004-10-13 18:50:09 +00:00
Gé van Geldorp
e2e8956ca7 Create "Program Files" directory and store its location in the registry.
Not sure if this is the correct place to implement it, feel free to move
around.

svn path=/trunk/; revision=11287
2004-10-13 18:14:07 +00:00
Eric Kohl
218066682a Use the W32API headers.
Clean-up the indentation.

svn path=/trunk/; revision=11286
2004-10-13 10:17:41 +00:00
Alex Ionescu
b0f334f36a Sorry, forgot to add this.
svn path=/trunk/; revision=11285
2004-10-13 02:58:59 +00:00
Alex Ionescu
c30ca53066 Implemented KeAreApcsDisabled, KeFlushEntireTb, KeIsExecutingDpc, KeSetKernelStackSwapEnable, KeQueryPriorityThread, KeRevertToUserAffinityThread, KeSetIdealProcessorThread, KeSetSystemAffinityThread, KeTerminateThread, KeStackAttachProcess, KeUnstackDetachProcess
svn path=/trunk/; revision=11284
2004-10-13 01:42:14 +00:00
Gé van Geldorp
83a232d3a2 LastError needs to be set always if disposition is CREATE_ALWAYS or OPEN_ALWAYS
svn path=/trunk/; revision=11283
2004-10-12 22:04:51 +00:00
Filip Navara
56531ca70d - Fix logic error in PsDeleteCidHandle.
svn path=/trunk/; revision=11282
2004-10-12 20:00:40 +00:00
Eric Kohl
9b57fe0ffa Add default hardware profile settings.
svn path=/trunk/; revision=11281
2004-10-12 12:00:29 +00:00
Eric Kohl
58ae572645 Implement GetCurrentHwProfileA/W.
svn path=/trunk/; revision=11280
2004-10-12 11:56:04 +00:00
Alex Ionescu
973021673c Implemented ExVerifySuite, ExInterlockedFlushSList, ExSystemExceptionFilter, ExRaiseException, ExGetCurrentProcessorCpuUsage, ExGetCurrentProcessorCounts
svn path=/trunk/; revision=11279
2004-10-12 00:56:46 +00:00
Alex Ionescu
9623e3cbe8 Added complete defintion of FX_SAVE_AREA and moved it to fpu.h instead of ps.h.
svn path=/trunk/; revision=11278
2004-10-12 00:33:30 +00:00
Thomas Bluemel
fb49f8ddd7 removed obsolete typecasts
svn path=/trunk/; revision=11277
2004-10-11 21:27:22 +00:00
Thomas Bluemel
fe8243b96a use INT_PTR as return type for dialog callbacks as documented in favor of portability
svn path=/trunk/; revision=11276
2004-10-11 21:08:06 +00:00
Eric Kohl
c104ab305d Store device instance data in the registry.
svn path=/trunk/; revision=11275
2004-10-11 19:07:25 +00:00
Filip Navara
4107035c78 - Change Start value for PCnet to demand load. (Now really!)
svn path=/trunk/; revision=11274
2004-10-11 18:42:49 +00:00
Filip Navara
2683ce6f26 - Allow querying information for root enumerated devices using IoGetDeviceProperty.
svn path=/trunk/; revision=11273
2004-10-11 18:36:20 +00:00
Filip Navara
df95ba950b - Add root bus enumeration registry for NE2000 driver.
- Change Start value for PCnet to demand load.

svn path=/trunk/; revision=11272
2004-10-11 18:36:17 +00:00
Filip Navara
095f953de7 - Return correct error value from WSPSocket.
svn path=/trunk/; revision=11271
2004-10-11 17:26:50 +00:00
Filip Navara
f321359e16 - Fix receive to work on VMware emulated adapters. We need to set busmaster bit on PCI command register in order to get packets. Otherwise we just get "missing frame" error and the ring buffer remains empty.
- Indicate receive completition.
- Implement basic packet transmitting.
- Don't read slot number from registry and report itself as NDIS 5.0 miniport.
- Fix nasty bugs in halt code path (incorrect assignment and wrong parameters to NdisMFreeSharedMemory calls).

svn path=/trunk/; revision=11270
2004-10-11 15:03:13 +00:00
Eric Kohl
2dea5c279b Minor simplifications.
svn path=/trunk/; revision=11269
2004-10-11 12:37:04 +00:00
Steven Edwards
e9542274b4 Make regexpl build again. (I know I really should fix this to be unicode)
BTW this is a kick ass tool that does work over the network. I just tested it
editing the registry on the wifes box.

svn path=/trunk/; revision=11268
2004-10-11 01:24:22 +00:00
Steven Edwards
ee08f03b99 Make regexpl build again. This has been bitrotting for a while.
svn path=/trunk/; revision=11267
2004-10-11 01:20:13 +00:00
Filip Navara
0f86ec1497 Don't use NdisTransferData if the whole packet is contained in the header+lookup buffer.
svn path=/trunk/; revision=11266
2004-10-10 22:38:22 +00:00
Filip Navara
02b3928237 Fix printing of packet contents to really print the contents instead of destroying them.
svn path=/trunk/; revision=11265
2004-10-10 21:06:13 +00:00
Filip Navara
f39899be58 Update registry entries for NE2000 driver to match the new layout.
svn path=/trunk/; revision=11264
2004-10-10 21:03:23 +00:00
Filip Navara
87079b419a Ignore registry reading errors while building services database.
svn path=/trunk/; revision=11263
2004-10-10 21:00:59 +00:00
Eric Kohl
e8fa5a048e Remove obsolete comments.
svn path=/trunk/; revision=11262
2004-10-10 18:28:05 +00:00
Eric Kohl
29240c3d8b Silence a debug message.
svn path=/trunk/; revision=11261
2004-10-10 18:26:33 +00:00
Eric Kohl
50fcbd0ea9 NtReadFile(): Take FILE_USE_FILE_POINTER_POSITION into account.
svn path=/trunk/; revision=11260
2004-10-10 18:23:09 +00:00
Filip Navara
1d16f49bbf - Fix debug message.
svn path=/trunk/; revision=11259
2004-10-10 17:23:13 +00:00
Filip Navara
33b2ec789a - Fix the NdisMEthIndicateReceive macro and ETH_RCV_INDICATE_HANDLER prototype to be binary compatible with Windows (R).
- Modify NDIS accordingly.

svn path=/trunk/; revision=11258
2004-10-10 17:16:42 +00:00
Gregor Anich
1ad4234f07 Fixed compiler warning ('RegistryPropertyName' might be used uninitialized in this function)
svn path=/trunk/; revision=11257
2004-10-10 15:51:52 +00:00
Eric Kohl
cd9eae5e7a NtDeviceIoControlFile() and NtFsControlFile():
Check granted access rights against access rights from IoControlCode.

svn path=/trunk/; revision=11256
2004-10-10 14:01:50 +00:00
Art Yerkes
fc10d9f802 Change flags of some network-related registry values. They were wrong.
svn path=/trunk/; revision=11255
2004-10-10 10:46:02 +00:00
Eric Kohl
009d1a6a71 Implement RegQueryMultipleValuesA().
svn path=/trunk/; revision=11254
2004-10-10 10:43:23 +00:00
Hartmut Birr
6fada73411 - Fixed some size calculations according to the last changes in cm/ntfunc.c.
svn path=/trunk/; revision=11253
2004-10-10 10:10:52 +00:00
Gé van Geldorp
7600e9b587 - Implement GetPrivateProfileSectionA/W()
- Handle value-less keys
- Handle comments

svn path=/trunk/; revision=11252
2004-10-09 18:46:41 +00:00
Filip Navara
0a6aa71bb4 - Attach NDIS miniport devices to the device stack.
- Gain the bus type and slot number using IoGetDeviceProperty from the PnP stack.
- Read the registry values for NDIS miniports from the correct place. See www.plasmic.com/~vizzini/ntnetarch.html for details.
- Update NdisReadPciSlotInformation/NdisWritePciSlotInformation to use the adapter slot information.

svn path=/trunk/; revision=11251
2004-10-09 18:17:08 +00:00
Filip Navara
1e6e22e32e - Implement IoOpenDeviceRegistryKey for PLUGPLAY_REGKEY_DRIVER case.
- Implement IoGetDeviceProperty for DevicePropertyClassName, DevicePropertyClassGuid, DevicePropertyDriverKeyName, DevicePropertyManufacturer, DevicePropertyFriendlyName cases.

svn path=/trunk/; revision=11250
2004-10-09 18:16:58 +00:00
Filip Navara
dd7fed7f38 - Delete all build files on "make clean".
svn path=/trunk/; revision=11249
2004-10-09 17:14:11 +00:00
Martin Fuchs
fbd3aee44b correct array size
svn path=/trunk/; revision=11248
2004-10-09 14:07:13 +00:00
Gé van Geldorp
85ec38bb53 Pass requested base address to MmAllocateSection()
svn path=/trunk/; revision=11247
2004-10-09 12:17:54 +00:00
Martin Fuchs
05cc213374 add splitpath.c
svn path=/trunk/; revision=11246
2004-10-09 11:42:39 +00:00
Martin Fuchs
7715f83501 unixcalls.c
svn path=/trunk/; revision=11245
2004-10-09 11:40:44 +00:00
Martin Fuchs
08faa2ac23 Update French translation.
svn path=/trunk/; revision=11244
2004-10-09 11:40:08 +00:00
Thomas Bluemel
6712cd665f Create named pipes with security information if argument is present
svn path=/trunk/; revision=11243
2004-10-08 23:24:01 +00:00
Thomas Bluemel
d0953a3d80 Create mail slots with security information if argument is present
svn path=/trunk/; revision=11242
2004-10-08 23:20:57 +00:00
Thomas Bluemel
a30f6d7c94 little simplification
svn path=/trunk/; revision=11241
2004-10-08 23:12:29 +00:00
Thomas Bluemel
6961ff9728 atomically increment the pipe id to be thread-safe. Thanks to Mark Grosberg for reporting it.
svn path=/trunk/; revision=11240
2004-10-08 21:48:46 +00:00
Thomas Bluemel
d02f400b31 little simplification
svn path=/trunk/; revision=11239
2004-10-08 21:37:16 +00:00
Thomas Bluemel
82a44258db fixed return value of FindCloseChangeNotification()
svn path=/trunk/; revision=11238
2004-10-08 21:29:40 +00:00
Thomas Bluemel
db533baf58 implemented GetNamedPipeHandleStateA() and a few fixes for GetNamedPipeHandleStateW()
svn path=/trunk/; revision=11237
2004-10-08 21:25:18 +00:00
Filip Navara
4664a1f6ed - Fix one error case to prevent crashes when registry enumeration fails.
svn path=/trunk/; revision=11236
2004-10-08 21:20:35 +00:00
Filip Navara
1e09759df9 Correctly handle small buffers in NtEnumerate[Value]Key and NtQuery[Value]Key registry routines:
- If buffer is too small to contain even fixed size information for specified type return STATUS_BUFFER_TOO_SMALL.
- If buffer is large enough to contain some information, but not all information requested, fill as much as we can and return STATUS_BUFFER_OVERFLOW.
- If we fill the entire buffer return STATUS_SUCCESS.

svn path=/trunk/; revision=11235
2004-10-08 21:19:12 +00:00
Gé van Geldorp
ef253bf9d3 Add SYSTEM_REGISTRY_QUOTA_INFORMATION
svn path=/trunk/; revision=11234
2004-10-08 21:14:21 +00:00
Martin Fuchs
b0468e7ffa call vswprintf@msvcrt in Wine's UNICODE version
svn path=/trunk/; revision=11233
2004-10-08 20:20:15 +00:00
Gé van Geldorp
8d52d923ed - Return some values for NtQuerySystemInformation(SystemRegistryQuotaInformation)
- Print messages for not implemented system information classes
- Silence some debug messages

svn path=/trunk/; revision=11232
2004-10-08 20:02:30 +00:00
Martin Fuchs
d5c0bee9ae resource files
svn path=/trunk/; revision=11231
2004-10-08 19:30:45 +00:00
Martin Fuchs
41c01ba24e tchar.h
svn path=/trunk/; revision=11230
2004-10-08 19:30:30 +00:00
Martin Fuchs
8fa949ca79 call Unix functions in separate module read_unix.c
svn path=/trunk/; revision=11229
2004-10-08 18:19:53 +00:00
Eric Kohl
4d19c5066a - User resource strings instead of constant strings for folder names.
- Add english and german resource strings.

svn path=/trunk/; revision=11228
2004-10-08 11:52:30 +00:00
Martin Fuchs
475d618db9 UNICODE for WINE version
svn path=/trunk/; revision=11227
2004-10-08 09:53:37 +00:00
Martin Fuchs
26a5b94393 german resource strings
svn path=/trunk/; revision=11226
2004-10-08 08:35:02 +00:00
Martin Fuchs
4e85d9668a convert string constants into string resources and character arrays
svn path=/trunk/; revision=11225
2004-10-08 08:18:42 +00:00
Steven Edwards
9117b8fb51 Remove the GNU from the name as its not a GNU program.
svn path=/trunk/; revision=11224
2004-10-08 04:09:51 +00:00
Steven Edwards
ba571f2170 Sync notepad with Winehq. It looks more like Windows notepad.
svn path=/trunk/; revision=11223
2004-10-08 04:05:11 +00:00
Art Yerkes
068cb50dec Added makefile dependency in both dirs, and proper relinking rule for
oskittcp and ip.

svn path=/trunk/; revision=11222
2004-10-08 01:28:32 +00:00
Gé van Geldorp
f9bf3651a1 Remove forgotten breakpoint
svn path=/trunk/; revision=11221
2004-10-07 21:05:36 +00:00
Gé van Geldorp
8438655244 Fix GetFullPathNameA/W() return value
svn path=/trunk/; revision=11220
2004-10-07 20:39:04 +00:00
Gé van Geldorp
ed6cee0a13 Undo last change, since GetFullPathName is supposed to return the length
including terminating nul char when the buffer is too small

svn path=/trunk/; revision=11219
2004-10-07 19:24:26 +00:00
Gé van Geldorp
e961e71fec Don't rely on UNICODE being #define'ed
svn path=/trunk/; revision=11218
2004-10-07 19:20:57 +00:00
Gé van Geldorp
1541b702fa Don't corrupt the registry when deleting a REG_DWORD value
svn path=/trunk/; revision=11217
2004-10-07 18:00:10 +00:00
Art Yerkes
5be7877f22 some formatting and prototype changes
memtrack on
moved timer dpc out of libip
added work item for ip timer callback to work at passive level

svn path=/trunk/; revision=11216
2004-10-07 15:04:45 +00:00
Gé van Geldorp
7e61a0ac6d Francois Gouget <fgouget@free.fr>
-Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.

svn path=/trunk/; revision=11215
2004-10-07 09:13:56 +00:00
Martin Fuchs
82ccd0b94c use TREE_LINE_DX for better look of the tree with big fonts
svn path=/trunk/; revision=11214
2004-10-07 08:43:34 +00:00
Steven Edwards
42906c61fc Allow NtGdiCreateScaleableFontResource to keep going.
(This allows OpenOffice 1.1.1 to load)

svn path=/trunk/; revision=11213
2004-10-07 05:26:54 +00:00
Art Yerkes
7c750ecdd6 Sorry jimtabor and rcampbell, it turns out that ip.a was not getting cleaned
and you guys were using an old one.  sedwards helped me figure that out.
I've been cleaning these dirs explicitly since i'm working in them.

This should fix the clean for those.

svn path=/trunk/; revision=11212
2004-10-07 04:47:42 +00:00
Gé van Geldorp
d24addb280 GetFullPathName returns length without nul byte
svn path=/trunk/; revision=11211
2004-10-06 23:46:09 +00:00
Martin Fuchs
85f0c7023d update item height after changing the font
svn path=/trunk/; revision=11210
2004-10-06 09:08:50 +00:00
Martin Fuchs
1011770d88 ID_FILE_MOVE resources
svn path=/trunk/; revision=11209
2004-10-06 09:08:16 +00:00
Gé van Geldorp
1eb248c43e Rolf Kalbermatter <rolf.kalbermatter@citeng.com>
- Fix bug found by Piotr Caban, where our function tried to delete a
directory eventhough the user canceled the operation.

svn path=/trunk/; revision=11208
2004-10-06 07:29:58 +00:00
Art Yerkes
4368f11574 More stuff moved out of ip lib.
svn path=/trunk/; revision=11207
2004-10-06 04:40:34 +00:00
Gé van Geldorp
91447e78e2 Do some simple error checking on .cur and .ico file structure
svn path=/trunk/; revision=11206
2004-10-05 22:08:56 +00:00
Gé van Geldorp
cdefabd236 Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=11205
2004-10-05 20:58:38 +00:00
Hartmut Birr
fc5e4daca1 - Bugcheck on a page fault, if the reason was code executing in a non executable area (only available on a AMD64).
svn path=/trunk/; revision=11204
2004-10-05 19:11:17 +00:00
Hartmut Birr
fa64b48be5 - Changed some functions from Nt to Zw in RtlFormatCurrentUserKeyPath to bypass the buffer checks.
svn path=/trunk/; revision=11203
2004-10-05 19:04:09 +00:00
Hartmut Birr
3fdd7a717c - Removed some hard coded values, which depend on a kernel base of 0xc0000000.
svn path=/trunk/; revision=11202
2004-10-05 18:53:28 +00:00
Gregor Anich
306d451c3b Mesa version 6.2 import (also removed _MSC_VER define for building with mingw) - look at http://www.mesa3d.org/ for changelogs.
svn path=/trunk/; revision=11201
2004-10-05 14:19:13 +00:00
Steven Edwards
c383ed94fd Silence a few warnings and bring the source (mostly) back in line
with the source drop from embedded.cl

svn path=/trunk/; revision=11200
2004-10-05 13:57:29 +00:00
Eric Kohl
e48441fd2e Remove outdated profile path postfix.
svn path=/trunk/; revision=11199
2004-10-05 13:39:42 +00:00
Steven Edwards
528acaf7b3 Added a simple embedded GPL dhcp server for ReactOS by
Carlos Manuel Duclos Vergara

TODO:
Make it a real Window Service
Make it use the registry rather than dhcpd.conf
.......

svn path=/trunk/; revision=11198
2004-10-05 13:09:46 +00:00
Eric Kohl
e345820c8e Remove fixed heap base address (HEAP_BASE) to enable bottom-up heap allocation.
svn path=/trunk/; revision=11197
2004-10-05 10:40:13 +00:00
Gé van Geldorp
baf11aeb1c Recognize our CD-Rom drives
svn path=/trunk/; revision=11196
2004-10-05 07:51:11 +00:00
Gé van Geldorp
7f50dbe3fe Alexandre Julliard <julliard@winehq.org>
- Fixed typo in ProgramsW.
- Changed the case of windows and system directories to match the
  directories we create by default.
- Avoid depending on the non-standard IUnknown_METHODS macro in Wine
  internal headers.

svn path=/trunk/; revision=11195
2004-10-05 07:43:19 +00:00
Alex Ionescu
dc70244c68 Un-hardcoded the 0xC0000000 value, and stuck the define in one single place both for ASM and C code. This define is 0x80000000 by default, but automatically sets itself to 0xC0000000 if 3GB is set to 1 in reactos/config. This option is turned on by default for now, because the Default heap is at 0xA0000000, which doesn't work on a non 3GB system. Lower values seem to crash Win32K but I fill figure out a solution.
svn path=/trunk/; revision=11193
2004-10-04 21:38:49 +00:00
Casper Hornstrup
8646668c58 2004-10-04 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk: Support for kernel TARGET_TYPE.
	* ntoskrnl/Makefile: Simplified makefile.

svn path=/trunk/; revision=11192
2004-10-04 20:04:49 +00:00
Gé van Geldorp
841c394e6f Piotr Caban <pio13@poczta.onet.pl>
- Added Polish translation.

svn path=/trunk/; revision=11191
2004-10-04 19:44:11 +00:00
Gé van Geldorp
aec725dce4 Reapply winehq change:
Robert Shearman <rob@codeweavers.com>
- Simplify getting custom icons for a folder by utilising the new
  SHELL32_GetCustomFolderAttribute function.
- Add support for custom shell folders, such as the History folder.
- Always try to initialize folder using IPersistFolder3 interface and
  then fall back on IPersistFolder if not supported.
Ge van Geldorp <gvg@reactos.com>
- Can't pass NULL as default value to GetPrivateProfileString.

svn path=/trunk/; revision=11190
2004-10-04 19:41:31 +00:00
Casper Hornstrup
67a41ff238 2004-10-04 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk: Clean autogenerated files.
	* tools/regtests.c: Remove newlines.

svn path=/trunk/; revision=11189
2004-10-04 19:41:28 +00:00
Jens Collin
f539cfcea7 return hardcoded value (1) for SM_CMONITORS.
svn path=/trunk/; revision=11188
2004-10-04 19:23:31 +00:00
Gé van Geldorp
aa496615df Use GetStringTypeW() for implementation of IsCharAlphaNumericW(),
IsCharAlphaW(), IsCharLowerW() and IsCharUpperW()

svn path=/trunk/; revision=11187
2004-10-04 19:22:16 +00:00
Jens Collin
7e15de6d4a defined SM_CMONITORS (80)
svn path=/trunk/; revision=11186
2004-10-04 19:22:02 +00:00
Gé van Geldorp
1736e3772b Implement GetStringTypeA/W() and GetStringTypeExA/W()
svn path=/trunk/; revision=11185
2004-10-04 19:17:58 +00:00
Art Yerkes
2638336b0e Fixed IPStartup prototype and moved DisplayIPPacket out of ifdef.
svn path=/trunk/; revision=11184
2004-10-04 18:32:30 +00:00
Art Yerkes
706ff78e48 Removed unneeded DriverObject parameter to IPStartup.
svn path=/trunk/; revision=11183
2004-10-04 18:31:40 +00:00
Hartmut Birr
49871ae71b - Fixed the setting of the page protection for ntoskrnl.
The image is loaded without the size of the bss section.
  Pages after the bss section may not be changed.

svn path=/trunk/; revision=11182
2004-10-04 17:27:13 +00:00
Martin Fuchs
a573c6ea80 sync with WINE source
svn path=/trunk/; revision=11181
2004-10-04 17:13:03 +00:00
Casper Hornstrup
8ec117a236 Revert:
2004-10-02  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* ntoskrnl/Makefile: Fix dependencies when PCH is enabled.

2004-10-02  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* tools/helper.mk: Support for kernel TARGET_TYPE.
	* ntoskrnl/Makefile: Simplified makefile.

svn path=/trunk/; revision=11180
2004-10-04 10:16:59 +00:00
Martin Fuchs
83de11e97e merged corrected version of the Wine commit http://cvs.winehq.org/patch.py?id=13936:
- added choosing fonts
- added file moving

svn path=/trunk/; revision=11179
2004-10-04 09:31:10 +00:00
Art Yerkes
184c8d80f1 First shot at ip lib test app.
svn path=/trunk/; revision=11178
2004-10-04 04:26:00 +00:00
Alex Ionescu
4e21459b33 DBG should be 0 by default. Also, DBG = 1 seems to break ROS (it hangs before ntoskrnl is even loaded.)
svn path=/trunk/; revision=11177
2004-10-04 03:19:07 +00:00
Art Yerkes
3b2388081c Added new targets. ip and oskittcp should now clean with the rest of the
tree.

svn path=/trunk/; revision=11176
2004-10-03 22:55:45 +00:00
Art Yerkes
8eb5ca6ffa Final propogation of TDI_CONNECTION_INFORMATION/TRANSPORT_ADDRESS changes.
svn path=/trunk/; revision=11175
2004-10-03 21:44:43 +00:00
Art Yerkes
bab3b21d32 Propogating TDI address changes.
svn path=/trunk/; revision=11174
2004-10-03 21:16:31 +00:00
Gé van Geldorp
7eb30acddb Rollback last change since it was incorrect.
See http://www.reactos.com/bugzilla/show_bug.cgi?id=36

svn path=/trunk/; revision=11173
2004-10-03 21:03:06 +00:00
Art Yerkes
fc4b179d93 New file buffer.c which contains NDIS_BUFFER and NDIS_PACKET routines.
svn path=/trunk/; revision=11172
2004-10-03 20:39:19 +00:00
Art Yerkes
5394560307 Fixed UDP protocol.
Leaned interface between tcpip and ip lib to not include ndis buffers and
such, as well as datagram request structs.  This both eliminates code
setting up these structs as well as making use of ip lib easier from userland.
Moved ndis buffer routines to tcpip/buffer.c.  They are a bit separate from
the neutral routines functions.

svn path=/trunk/; revision=11171
2004-10-03 20:38:48 +00:00
Art Yerkes
a52618ca99 Fixed use of TA_ADDRESS in favor of TRANSPORT_ADDRESS. This still confuses
me.
write, read: Handle errors correctly.

svn path=/trunk/; revision=11170
2004-10-03 20:36:46 +00:00
Gé van Geldorp
81e60d8ded Move final user stack cleanup to kernelmode
svn path=/trunk/; revision=11169
2004-10-03 18:53:05 +00:00
Gé van Geldorp
9584768301 CVS maintenance
svn path=/trunk/; revision=11168
2004-10-03 18:46:07 +00:00
Gé van Geldorp
91083c72fd Remove faulty debug statement
svn path=/trunk/; revision=11167
2004-10-03 18:22:33 +00:00
Thomas Bluemel
737ea5b737 don't let dlltool mess up c++ mangled exports for crtdll and msvcrt
svn path=/trunk/; revision=11166
2004-10-03 14:24:43 +00:00
Thomas Bluemel
c0f9c7505c fixed GetHandleInformation(), SetHandleInformation() and minor fixes to CloseHandle() and DuplicateHandle()
svn path=/trunk/; revision=11165
2004-10-03 10:05:56 +00:00
Eric Kohl
d8ea61531d Update a new users private shell folder paths when a new user profile is created.
svn path=/trunk/; revision=11164
2004-10-03 09:27:22 +00:00
Alex Ionescu
772a37758e Sorry, forgot these updates for WIN32K to build with new KPCR.
svn path=/trunk/; revision=11163
2004-10-03 03:07:18 +00:00
Alex Ionescu
4d9e3a1cae Corrected KPCR structure, removed IKPCR, set up CurrentThread in proper structure (implemented KPRCB), added some types needed by KPRCB.
svn path=/trunk/; revision=11162
2004-10-03 03:03:54 +00:00
Thomas Bluemel
b26683b0b3 fixed ProcessIdToSessionId()
svn path=/trunk/; revision=11161
2004-10-02 21:14:08 +00:00
Thomas Bluemel
3f75c451d1 don't duplicate tons of code for error handling
svn path=/trunk/; revision=11160
2004-10-02 20:56:54 +00:00
Thomas Bluemel
86b4ec40d4 INF Helper tool for installation of .inf files, by Michael Biggins
svn path=/trunk/; revision=11159
2004-10-02 18:33:12 +00:00
Filip Navara
a73f47bd18 Allocate memory for the handle table from paged pool!
svn path=/trunk/; revision=11158
2004-10-02 16:48:12 +00:00
Filip Navara
8e9f6624d1 Change the ASSERT_IRQL in ExAllocatePagedPoolWithTag from PASSIVE_LEVEL to APC_LEVEL.
svn path=/trunk/; revision=11157
2004-10-02 16:48:05 +00:00
Thomas Bluemel
190c655d90 added stubs for winfax.dll
svn path=/trunk/; revision=11156
2004-10-02 16:43:05 +00:00
Casper Hornstrup
05ee9bbcc3 2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
* ntoskrnl/Makefile: Fix dependencies when PCH is enabled.

svn path=/trunk/; revision=11155
2004-10-02 14:38:37 +00:00
Casper Hornstrup
cf4df378aa 2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk: Support for kernel TARGET_TYPE.
	* ntoskrnl/Makefile: Simplified makefile.

svn path=/trunk/; revision=11154
2004-10-02 14:03:51 +00:00
Eric Kohl
b8e59707a9 Add common user shell folder key.
svn path=/trunk/; revision=11153
2004-10-02 12:35:12 +00:00
Eric Kohl
d2e9fecf72 Remove default users shell folder paths.
svn path=/trunk/; revision=11152
2004-10-02 12:33:20 +00:00
Eric Kohl
19c3f3e06e Improve creation of shell folder settings.
Todo:
 - Store folder names in resource strings.
 - Update current users shell folder paths when a new profile is created.

svn path=/trunk/; revision=11151
2004-10-02 12:31:28 +00:00
Hartmut Birr
acb1dd91c6 - Made cmt unicode compatible.
- Enabled time counting.
- Improved the waiting of key input events.

svn path=/trunk/; revision=11150
2004-10-02 10:26:48 +00:00
Hartmut Birr
d2a8a1bc51 - Terminate the wait thread if the handle was from a console.
svn path=/trunk/; revision=11149
2004-10-02 10:19:38 +00:00
Hartmut Birr
c8641fc2a3 - Updated the workingset size in the rmap functions.
svn path=/trunk/; revision=11148
2004-10-02 10:16:10 +00:00
Casper Hornstrup
9495493fde 2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/gdiplus/tests/.cvsignore: Ignore _hooks.c and _stubs.S.
	* lib/gdiplus/tests/Makefile (TARGET_OBJECTS): Remove passthrough.o and
	add _hooks.o and _stubs.o.
	* lib/gdiplus/tests/tests/test-1.c: Test API hooking.
	* regtests/shared/regtests.h: Add support for API hooking.
	* tools/helper.mk: Generate stubs.
	* tools/regtests.c: Add support for generating stubs and hooks.
	* lib/gdiplus/tests/passthrough.c: Remove.
	* lib/gdiplus/tests/stubs.tst: New file.

svn path=/trunk/; revision=11147
2004-10-02 08:44:54 +00:00
Hartmut Birr
d12bb0393c - Fixed the definition of SNMP_FUNC_TYPE.
svn path=/trunk/; revision=11146
2004-10-02 08:28:34 +00:00
Art Yerkes
0b03f1a2a9 Sorry i didn't have all the assertions correct in ntoskrnl/mm/pool.c
Now i've moved them to npool.c and ppool.c, where they are shorter.

svn path=/trunk/; revision=11145
2004-10-01 20:51:29 +00:00
Gé van Geldorp
adeb131ada Don't use more than a single page for a TEB (forgotten file)
svn path=/trunk/; revision=11144
2004-10-01 20:29:58 +00:00
Gé van Geldorp
228cddee4a Don't use more than a single page for a TEB
svn path=/trunk/; revision=11143
2004-10-01 20:26:05 +00:00
Hartmut Birr
f6fb22a9ef - Rewrote parts of the Process & Thread time count functions.
svn path=/trunk/; revision=11142
2004-10-01 20:09:57 +00:00
Gé van Geldorp
96bb83f2a9 Handle mapping a view of a section at non-zero file offset
svn path=/trunk/; revision=11141
2004-10-01 20:06:43 +00:00
Art Yerkes
a07571a47c pool.c: assert irql and pool type for PASSIVE_LEVEL and above.
ntoskrnl/ob/security.c:
This function did not either identify the new descriptor as self relative
nor honor the case where self-relative was not set.  Now fixed.
Bug identified by WaxDragon (while loading a cygwin app)

svn path=/trunk/; revision=11140
2004-10-01 04:00:11 +00:00
Art Yerkes
2c3fecda88 Added needed rc file.
svn path=/trunk/; revision=11139
2004-10-01 02:31:05 +00:00
Art Yerkes
9fd341c9ae Zero the new descriptor so that the Dacl, Sacl etc pointers will be zeroed
if not initialized.  cygwin was exercising this.

svn path=/trunk/; revision=11138
2004-10-01 01:28:56 +00:00
Art Yerkes
f45c8f618d It seems there's a subtle difference between mingw32 on windows and on
unixen.  Apparently, include_next does not count repeated include
directories on unixen but does on windows, thus windows users of mingw
saw the build of the ip lib break for not having included
w32api/include/basetsd.h through the include/basetsd.h.  It would
include include/basetsd.h again and (since the include guard in that
file surrounds the include_next), would do nothing the second time.  I guess
I'm the only person who got bit by this difference.

svn path=/trunk/; revision=11137
2004-09-30 22:04:13 +00:00
Emanuele Aliberti
c7eba737e2 Correct spelling errors in some remarks.
svn path=/trunk/; revision=11136
2004-09-30 21:14:24 +00:00
Eric Kohl
639754c6b8 Remove common shell folder settings.
svn path=/trunk/; revision=11135
2004-09-30 20:24:51 +00:00
Eric Kohl
3036e1670c - Add proper file header.
- Create common shell folder registry values in InitializeProfiles().

svn path=/trunk/; revision=11134
2004-09-30 20:23:00 +00:00
Richard Campbell
1de98ec592 rollback change for now
svn path=/trunk/; revision=11133
2004-09-30 16:47:49 +00:00
Art Yerkes
7b91f0c3fb Fixed makefile. Wrong name for ip.a
svn path=/trunk/; revision=11132
2004-09-30 16:30:43 +00:00
Richard Campbell
c831dac0e0 - For now, hardcode the all users profile path until we get better user management code in place
- removed the %USERPROFILE% prefix, this will go in combination with my other fix to hopefully get things working right again.

svn path=/trunk/; revision=11131
2004-09-30 15:39:48 +00:00
Royce Mitchell III
2ab40c2827 You're such a trooper, Marvin
svn path=/trunk/; revision=11130
2004-09-30 13:44:48 +00:00
Gé van Geldorp
e167d42360 You can tune a file system, but you can't tunafish
svn path=/trunk/; revision=11129
2004-09-30 10:07:00 +00:00
Gé van Geldorp
ae3fd2574d Rollback winehq merge since it breaks Explorer
svn path=/trunk/; revision=11128
2004-09-30 06:49:06 +00:00
Art Yerkes
0bccb9dbb0 Most files moved to linkable library drivers/lib/ip, which can be linked
from kernel land, or from userland with the help of drivers/lib/undis.
Hopefully, I'll be able to simulate a sufficient environment with undis
that we'll be able to test most problems with the ip system in userland.
This follows my general priniciple of getting most interesting code into
a place where we can really examine it and work with it.  The interface
to the ip library is still a bit raw.  I was hoping to do a better job
of isolating it and especially digging nt kernel dependencies out into
the remaining framework files (tcpip/dispatch.c, tcpip/fileobjs.c), but
it was taking too long.  Hopefully I can return to that later.

svn path=/trunk/; revision=11127
2004-09-30 06:00:42 +00:00
Art Yerkes
4ec1a851b9 Changes to the interface to componentized ip library. This commit is where
the ambiguously linked library starts being used in km.  There are further
cleanups i need to do, but hopefully having this checked in will help others
who are eager to help work on it.

svn path=/trunk/; revision=11126
2004-09-30 05:44:10 +00:00
Art Yerkes
03a9fe5219 Fixes to interface. Prototypes which were being stubborn. I will have to
figure out how to use these headers better.

svn path=/trunk/; revision=11125
2004-09-30 05:41:09 +00:00
Art Yerkes
e60bec5f2c Undis now builds a dll, carefully skirting the linkage problem i was facing.
I also add more and more correct functions.

svn path=/trunk/; revision=11124
2004-09-30 05:40:15 +00:00
Thomas Bluemel
c8de36191c use ULONG_PTR to calculate pointers
svn path=/trunk/; revision=11122
2004-09-29 08:41:39 +00:00
Gé van Geldorp
b8e45d0e41 Robert Shearman <rob@codeweavers.com>
- Simplify getting custom icons for a folder by utilising the new
  SHELL32_GetCustomFolderAttribute function.
- Add support for custom shell folders, such as the History folder.
- Always try to initialize folder using IPersistFolder3 interface and
  then fall back on IPersistFolder if not supported.

svn path=/trunk/; revision=11121
2004-09-29 07:01:37 +00:00
Art Yerkes
a6797af759 Getting there. Smoothing out the public interface and eliminating useless
types.

svn path=/trunk/; revision=11120
2004-09-29 06:11:27 +00:00
Art Yerkes
4c30d6be10 IP library. These files were moved from tcpip.sys and can be linked with
apps/tests/iptest using the undis library.  We need to make a change to
the way this is built so that we end up with ip.a (userland) and
ipkernel.a.  I'm still deciding how i want to do that.  For our purposes
now, it'll be fine to have it userland only as long as we still have the
option to build it for kernel use by hand to try out.

svn path=/trunk/; revision=11119
2004-09-29 05:10:48 +00:00
Art Yerkes
0f5152aa1c Added a header to lie between undis and net/ndis.h. This header will be used
to wrap and modify ndis definitions if necessary.

svn path=/trunk/; revision=11118
2004-09-29 04:57:26 +00:00
Art Yerkes
107ff56d07 Simple library which captures the remaining link-time dependencies for ip.a
Incomplete as yet.

Open question: how to make ip.a ambiguously linkable without building it
twice in it's present form.  Oskit was relatively simple because the
system dependencies were already isolated.  We need to capture and isolate
system dependencies in ip.a as well.

svn path=/trunk/; revision=11117
2004-09-29 04:54:26 +00:00
Art Yerkes
91a2bfd277 These calls to ExAllocatePool are done at != PASSIVE_LEVEL. Allocate
non-paged-pool.

svn path=/trunk/; revision=11116
2004-09-29 03:36:52 +00:00
Richard Campbell
1fea21808f - Changed a few REG_EXPAND_SZ to REG_SZs as per Windows
svn path=/trunk/; revision=11115
2004-09-29 01:26:35 +00:00
Royce Mitchell III
af06b2d654 sprintf bad
svn path=/trunk/; revision=11114
2004-09-29 00:47:42 +00:00
Gé van Geldorp
79d6604660 NtAllocateVirtualMemory() should return 64k aligned areas (forgotten file)
svn path=/trunk/; revision=11113
2004-09-28 20:58:29 +00:00
Gé van Geldorp
8e7f16e570 Don't return data length if not requested
svn path=/trunk/; revision=11112
2004-09-28 20:40:15 +00:00
Hartmut Birr
8ceb672cc0 - Fixed LdrLookupPageProtection.
svn path=/trunk/; revision=11111
2004-09-28 20:16:24 +00:00
James Tabor
e3bfa4f45a Add advpack.
svn path=/trunk/; revision=11110
2004-09-28 19:49:27 +00:00
Gé van Geldorp
d243b55958 NtAllocateVirtualMemory() should return 64k aligned areas
svn path=/trunk/; revision=11109
2004-09-28 19:49:21 +00:00
Steven Edwards
43787ecece Ported icmp.dll from wine.
svn path=/trunk/; revision=11108
2004-09-28 19:07:56 +00:00
Thomas Bluemel
3ef6e3494f relicense to LGPL
svn path=/trunk/; revision=11107
2004-09-28 16:05:24 +00:00
Thomas Bluemel
fdde8be2a7 avoid compiler warning
svn path=/trunk/; revision=11106
2004-09-28 15:14:04 +00:00
Thomas Bluemel
2d01207958 1. get rid of the global thread list and group threads in processes instead
2. get rid of all reactos-specific fields in the E/KTHREAD structure and make them match the 2k layout
3. identify threads (and later processes) using a client id table (which should propably be replaced by a global handle table instead)
4. disabled thread event pair functions by default (NT4 only) as they require a field in the ETHREAD structure that is not present in later versions

svn path=/trunk/; revision=11105
2004-09-28 15:02:31 +00:00
Eric Kohl
c0e4836b17 - Implement IoFreeErrorLogEntry().
- Fix log size calculation in IopLogWorker().

svn path=/trunk/; revision=11104
2004-09-28 12:51:14 +00:00
Eric Kohl
f665fe8a22 Use FILE_APPEND_DATA access right to write log entries.
svn path=/trunk/; revision=11103
2004-09-28 12:50:23 +00:00
Eric Kohl
f15ffecda4 Support special FILE_WRITE_TO_END_OF_FILE byte offset to append data to a file.
svn path=/trunk/; revision=11102
2004-09-28 10:52:55 +00:00
Eric Kohl
d394870def NtWriteFile must append to file if it was opened with the FILE_APPEND_DATA access.
FILE_WRITE_DATA take precedence over FILE_APPEND_DATA.

svn path=/trunk/; revision=11101
2004-09-28 10:51:05 +00:00
Gé van Geldorp
3d82d976d3 NtSetInformationThread() expects a pointer, not the handle itself
svn path=/trunk/; revision=11100
2004-09-27 20:04:53 +00:00
Eric Kohl
db47f999dd Define FILE_WRITE_TO_END_OF_FILE.
svn path=/trunk/; revision=11094
2004-09-27 11:32:31 +00:00
Gé van Geldorp
46dbd3190e Sylvain Petreolle <spetreolle@yahoo.fr>
- rules.mak is included too late in tools/winebuild/Makefile, which makes
  TARGET, "all:", CLEAN_FILES and HOST_CFLAGS wrong.

svn path=/trunk/; revision=11093
2004-09-27 08:15:07 +00:00
Steven Edwards
73a66a9cc9 Some fixes for MS_VC.
svn path=/trunk/; revision=11092
2004-09-27 04:32:52 +00:00
Steven Edwards
6a64eeeb08 Add a shutdown message.
svn path=/trunk/; revision=11091
2004-09-27 04:12:40 +00:00
Steven Edwards
21d354a1c1 Slightly new and improved stub for GetUserNameA based on the Winehq
code and hacked by Royce and Me.

svn path=/trunk/; revision=11082
2004-09-26 21:15:51 +00:00
Gé van Geldorp
05848ce54b Scream when an unimplemented function is called
svn path=/trunk/; revision=11081
2004-09-26 20:28:22 +00:00
Gé van Geldorp
f427428df7 Stub LookupAccountNameA/W
svn path=/trunk/; revision=11080
2004-09-26 20:26:13 +00:00
Gé van Geldorp
409e2330e1 Call GetProcessHeap() instead of passing it's address
svn path=/trunk/; revision=11079
2004-09-26 19:17:21 +00:00
Hartmut Birr
6375fca5be - Added a little sample which tests the noexecute protection.
svn path=/trunk/; revision=11077
2004-09-26 17:00:15 +00:00
Royce Mitchell III
9d63d77c6e add a little more debug output in case of unhandled exceptions
svn path=/trunk/; revision=11076
2004-09-26 16:54:53 +00:00
Hartmut Birr
1b03d41981 - Detect more cpu features.
- Implemented the noexecute protection for the AMD64 cpu.

svn path=/trunk/; revision=11075
2004-09-26 16:32:18 +00:00
Thomas Bluemel
455470d018 minor fix
svn path=/trunk/; revision=11074
2004-09-26 16:14:05 +00:00
Thomas Bluemel
cc0fabacd1 use Get/SetWindowLongPtr() where appropriate in favor of 64bit compatibility
svn path=/trunk/; revision=11073
2004-09-26 15:55:53 +00:00
Martin Fuchs
d3f70f50f0 introduce XPath syntax to make handling configuration a bit easier
svn path=/trunk/; revision=11071
2004-09-26 15:13:16 +00:00
Hartmut Birr
c8e0c372d9 - Rewrote (copied from ntdll) parts of the relocation and import fixup code.
- Don't load no-load sections at the end of the  driver.
- Don't relocate the relocation section itself.
- Set the correct page protection for section which are executable.
- Added a (dirty) fix for the fireport driver.
- Fixed the detection of the noguiboot option.

svn path=/trunk/; revision=11070
2004-09-26 15:07:44 +00:00
Filip Navara
a2446b3408 - Move shldisp.h to the right place.
- Get rid of the ICOM crap.

svn path=/trunk/; revision=11069
2004-09-26 14:34:23 +00:00
Thomas Bluemel
c28cd9af2c minor fix
svn path=/trunk/; revision=11068
2004-09-26 13:25:42 +00:00
Thomas Bluemel
5ee10c6024 add hid.dll to the build system
svn path=/trunk/; revision=11067
2004-09-26 12:39:30 +00:00
Eric Kohl
a1463efaf0 Delete a boot log from the registry after it was written to the boot log file.
svn path=/trunk/; revision=11066
2004-09-26 11:29:50 +00:00
Thomas Bluemel
1a541c9ebb enable PCH
svn path=/trunk/; revision=11065
2004-09-26 10:43:00 +00:00
Thomas Bluemel
dae8e69f8c fixed typo
svn path=/trunk/; revision=11064
2004-09-26 10:01:09 +00:00
Thomas Bluemel
06fc0007ce added shell extension that enables the user to change compatibility modes for .exe files in the file properties.
svn path=/trunk/; revision=11063
2004-09-26 09:56:23 +00:00
Hartmut Birr
82f36a4a4e - Reselected the drive (master/slave) after a soft reset.
svn path=/trunk/; revision=11062
2004-09-26 09:14:20 +00:00
Art Yerkes
a3091079d6 Fixed each call to use a unique event. This is needed because send, recv,
connect, etc can complete independently even on the same socket.
Fixed connect to pass the status from afd back correctly.  Connect now
fails as expected when we couldn't make a connection.

svn path=/trunk/; revision=11061
2004-09-26 07:55:32 +00:00
Royce Mitchell III
97fcd66fc7 more sayings
svn path=/trunk/; revision=11060
2004-09-26 02:33:31 +00:00
Filip Navara
93f1330753 - Fix RtlFindClearBits to correctly treat the hint.
svn path=/trunk/; revision=11059
2004-09-25 22:59:17 +00:00
Gé van Geldorp
200da8e7da Don't abandon file creation if hTemplateFile is INVALID_HANDLE_VALUE
svn path=/trunk/; revision=11058
2004-09-25 21:44:02 +00:00
Art Yerkes
e1741d6626 Use the recursive mutex to lock the TCP.
svn path=/trunk/; revision=11057
2004-09-25 21:32:56 +00:00
Art Yerkes
1eb1e27110 Added simple recursive mutex adapted from my afd one. Works both above
and below DISPATCH_LEVEL.

svn path=/trunk/; revision=11056
2004-09-25 21:32:18 +00:00
Art Yerkes
3a4c09d746 More experimental detritus. Sorry about that.
svn path=/trunk/; revision=11055
2004-09-25 21:08:53 +00:00
Filip Navara
630b1b2eb3 - Fix usage of RtlFindSetBits and loops in CmiStartLogUpdate and CmiStartHiveUpdate.
svn path=/trunk/; revision=11054
2004-09-25 20:53:29 +00:00
Filip Navara
3823d945f5 - Fix implementation of RtlFindSetBits to be able to return bits that are at lower location than the supplied hint.
svn path=/trunk/; revision=11053
2004-09-25 20:49:57 +00:00
Art Yerkes
91fea9194d Previously checked in with some detritus from some experimental rtl stuff.
Fixed.

svn path=/trunk/; revision=11052
2004-09-25 20:38:46 +00:00
Art Yerkes
3725308f3e Fixed connection locking in tcp.c
Added a work item in lan.c re: dpc callback from the adapter.  This keeps
us from needing mdl functions at dpc level.
Track IRPs to be completed with memtrack.

svn path=/trunk/; revision=11051
2004-09-25 20:24:00 +00:00
Filip Navara
ee0f0ee26f - Remove the incorrect ALIGN macro (missing "* (align)") and replace it with ROUND_UP.
svn path=/trunk/; revision=11050
2004-09-25 19:39:57 +00:00
Gé van Geldorp
fceb614b2b Make some installers happy (well, happier at least)
svn path=/trunk/; revision=11049
2004-09-25 18:22:33 +00:00
Emanuele Aliberti
0f2014b8bb Fixed spelling error.
svn path=/trunk/; revision=11048
2004-09-25 15:46:52 +00:00
Eric Kohl
23a709ca5f - CmiAddValueToKey(): Double the size of the value list cell when it is completely filled. This prevents fragmentation if a key got lots of values.
- CmiDeleteValueFromKey(): Fix corruption of the value list cell when a value is removed from the list.
- Rename the variable VBOffset to ValueCellOffset.

svn path=/trunk/; revision=11047
2004-09-25 15:25:28 +00:00
Eric Kohl
1f82196fd5 - Use ROUND_UP macro instead of explicit calculation.
- Replace fixed values by appropriate constants.
- Replace STATUS_UNSUCCESSFUL by better status codes.

svn path=/trunk/; revision=11046
2004-09-25 12:11:13 +00:00
Gé van Geldorp
95210d36ee - Round up requested amount of memory instead of down
- Simplify space check, old version didn't work because of signed/unsigned issues

svn path=/trunk/; revision=11045
2004-09-25 08:58:44 +00:00
Gé van Geldorp
79c3ba475a SeAccessCheck() returns TRUE on success
svn path=/trunk/; revision=11044
2004-09-25 08:49:06 +00:00
Filip Navara
ee3726520d - Remove duplicate SPI_* definitions.
svn path=/trunk/; revision=11043
2004-09-25 08:21:12 +00:00
Filip Navara
d8db49d056 - Remove duplicate definitions and redundant header file.
svn path=/trunk/; revision=11042
2004-09-25 08:20:16 +00:00
Martin Fuchs
5ee46f4794 compareType refactoring
svn path=/trunk/; revision=11041
2004-09-25 07:55:31 +00:00
Art Yerkes
0089446cc6 cm/regfile.c, ldr/init.c, ldr/loader.c: OBJ_CASE_INSENSITIVE patch I proposed
on the list.  This makes the registry, and dll loading case insensitive when
we are on a case preserving filesystem.

ntoskrnl/ex/power.c: My own contributions to the poweroff message list.

ntoskrnl/mm/npool.c: Fixed bit-rot in whole page alloc.  That's how i found
the bug below.

se/semgr.c, lib/rtl/sd.c:
semgr, when creating a SECURITY_DESCRIPTOR, anded the PRESENT and DEFAULT
flags rather than oring them for group, dacl, and sacl, leading to
RtlLengthSecurityDescriptor giving the wrong length to sdcache.  When
sdcache would copy the security descriptor, it would be too short, and
the bound check from the whole-page allocator would go off.  I fixed this
and made rtl/sd.c use the ROUND_UP macro and RtlLengthSid.  This is cleaner.
It may not be completely correct yet but it no-longer truncates security
descriptors into the cache, which means that the Owner, Group and etc
SIDs should now actually work right when coming from the cache, no matter
what happens in the heap.  They probably seemed to work before simply
because they trashed the ends of their blocks and never moved in the
cache.

svn path=/trunk/; revision=11040
2004-09-25 06:41:16 +00:00
Art Yerkes
906e734ab4 Changed functions RtlClearAllBits and RtlSetAllBits to use SizeOfBitMap
as the number of bits, not the number of bytes in the bitmap.  This was
making the whole page allocator in ntoskrnl/mm/npool.c crash early in
the boot process with whole page allocations on.  This may affect other
things adversely as well.

The documentation for RtlInitializeBitMap is here:
http://www.osronline.com/ddkx/kmarch/k109_5sfm.htm

svn path=/trunk/; revision=11039
2004-09-25 03:20:16 +00:00
Thomas Bluemel
9e91360716 1. implemented GetThreadSelectorEntry()
2. added missing DESCRIPTOR_TABLE_ENTRY structure

svn path=/trunk/; revision=11037
2004-09-24 20:55:58 +00:00
Gé van Geldorp
29df1f045e You can't wait for 0 objects
svn path=/trunk/; revision=11036
2004-09-24 20:26:43 +00:00
Thomas Bluemel
4d0a1d7cea don't skip the detection code
svn path=/trunk/; revision=11035
2004-09-24 20:20:46 +00:00
Thomas Bluemel
9dfe6f1d9c enabled the Wizard97 style
svn path=/trunk/; revision=11034
2004-09-24 20:18:16 +00:00
Eric Kohl
01aff80376 Enable wizard 97 style and add a dummy progress page.
svn path=/trunk/; revision=11033
2004-09-24 18:52:29 +00:00
Thomas Bluemel
109dc19c13 added stub for ObFindHandleForObject() and export it
svn path=/trunk/; revision=11031
2004-09-24 16:18:28 +00:00
Filip Navara
ec73e88d5f - Remove duplicate definitions.
svn path=/trunk/; revision=11030
2004-09-24 16:13:21 +00:00
Gé van Geldorp
df80dc6da3 Implement PathIsCharValidA/W
svn path=/trunk/; revision=11029
2004-09-24 15:17:20 +00:00
Filip Navara
c9da2445aa - Don't validate parents after sending the WM_ERASEBKGND message.
- Fix support for SWP_NOREDRAW flag in SetWindowPos.

svn path=/trunk/; revision=11028
2004-09-24 15:07:38 +00:00
Eric Kohl
78e1dba27f Close the bootlog key if value enumeration or writing to the log file fails.
svn path=/trunk/; revision=11027
2004-09-24 15:00:34 +00:00
Gé van Geldorp
361d78ab88 Merge back commit from winehq
svn path=/trunk/; revision=11026
2004-09-24 12:13:54 +00:00
Gé van Geldorp
b92ba82e5f - SHGetAppCompatFlags() takes 4 bytes of parameters
- QueryInterface will return NULL for the new pointer if it fails

svn path=/trunk/; revision=11025
2004-09-24 11:12:44 +00:00
Eric Kohl
97037edf6b - Print correct ReactOS version in the boot log header.
- Add ntoskrnl.exe and hal.dll to the boot log.

svn path=/trunk/; revision=11024
2004-09-24 10:51:35 +00:00
Art Yerkes
102c8c9a78 Initialize ext so that MCLFREE will be called appropriately.
This macro was freeing (m)->m_data, but m was not a macro parameter.
It compiled because virtually every mbuf * is named m.  Fixed.

svn path=/trunk/; revision=11023
2004-09-24 04:58:17 +00:00
Art Yerkes
d7a6bf353f Also wait in the success, no data case in socket state change.
svn path=/trunk/; revision=11022
2004-09-24 00:56:39 +00:00
Art Yerkes
2c75d67c33 Fix send function as well to properly deallocate the irp on failure on
MmProbeAndLockPages.

svn path=/trunk/; revision=11021
2004-09-24 00:51:31 +00:00
Thomas Bluemel
2eb5ead6ed implemented GetUserDefaultUILanguage()
svn path=/trunk/; revision=11020
2004-09-24 00:36:14 +00:00
Thomas Bluemel
5b552386bc don't attempt to reference NULL objects in NtIsProcessInJob()
svn path=/trunk/; revision=11019
2004-09-23 22:02:39 +00:00
Thomas Bluemel
b50f152bc1 implemented NtIsProcessInJob()
svn path=/trunk/; revision=11018
2004-09-23 21:23:34 +00:00
Emanuele Aliberti
bf3b5cc677 Emanuele Aliberti <ea@reactos.com>
- Some stubs for ts moved in process/session.c.
- Implemented ProcessIdToSessionId.

svn path=/trunk/; revision=11017
2004-09-23 21:01:23 +00:00
Art Yerkes
b0f758cf33 tcp: print error when we can't allocate a bucket.
event: Don't report eof if we have bytes to deliver still.
       Made a mistake moving statuses around.  Requeue the request on
       STATUS_PENDING.

svn path=/trunk/; revision=11016
2004-09-23 20:51:46 +00:00
Art Yerkes
e91d1416ab Write: print bytes returned so we can see it.
Read : notify ourselves that the buffer is empty and reset the pointers.
Tdi  : since the handler part is an inner function, don't return from it
       but instead set Status and return afterward.

svn path=/trunk/; revision=11015
2004-09-23 20:48:40 +00:00
Gé van Geldorp
0a185bdb18 Sync to Wine:
Alexandre Julliard <julliard@winehq.org>
- Store all information about the current dll in a structure instead of
  using global variables to make it easier to reuse the parsing
  routines.
- Added native mode dll support (based on a patch by Marcus Meissner).
- Added support for building a dll from a .def file for cases where we
  don't want to write a full .spec.
- Renamed --spec option to --dll for consistency.
- Removed the Unicode exe modes, and instead detect automatically which
  mode to use based on the existence of main or wmain.
- Automatically detect whether the entry point is main or WinMain
  instead of depending on the subsystem type.
- Do not strip stdcall decoration in spec files.
- Print a warning when DllRegisterServer and similar functions are not
  marked private.
- Fill in the proper offsets in the resource directory instead of
  relying on the compiler to do it.
Jukka Heinonen <jhei@iki.fi>
- Remove support for generating interrupt handlers.
- DPMI programs now handle pending events.
Robert Shearman <R.J.Shearman@warwick.ac.uk>
- Fix proc name reported in delay load failure.
Richard Cohen <richard@daijobu.co.uk>
- Remove . from default library search path.
Eric Pouech <pouech-eric@wanadoo.fr>
- added size information about most of the generated thunks (import,
  16/32 relay...)
- marked the wine thunks by inserting specific symbols (to be managed
  by wine's dbghelp)
- removed the stabs generation:
  + mostly used by winedbg, and the previous item will replace it for
    dbghelp
  + still broken for gdb anyway
- enhanced const correctness
Pierre d'Herbemont <stegefin@free.fr>
- Detection of .size instruction.
- Detection of the assembler name prefix.
- Delayed import fix for Darwin and PowerPC Host.
- Be more accurate on Darwin stack size.
- Delay import fix on PowerPC hosts.
Marcus Meissner <meissner@suse.de>
- Use "LD" instead of "ld" in winebuild to be able to use a different ld
  or ld options.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Add a few missing __ASM_NAME macros.

svn path=/trunk/; revision=11014
2004-09-23 20:27:30 +00:00
Casper Hornstrup
219e1cea20 2004-09-23 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/msafd/makefile (TARGET_CFLAGS): Don't define DBG.
	* lib/msafd/include/debug.h: Redefine ASSERT.

svn path=/trunk/; revision=11013
2004-09-23 20:05:32 +00:00
Thomas Bluemel
f9de66edba remove implemented stubs
svn path=/trunk/; revision=11011
2004-09-23 19:03:26 +00:00
Thomas Bluemel
8fd7d74051 fixed returning a wrong handle count in GetProcessHandleCount()
svn path=/trunk/; revision=11010
2004-09-23 19:01:38 +00:00
Thomas Bluemel
3d915100ab fixed initialization of the object attributes in CreateJobObjectW()
svn path=/trunk/; revision=11009
2004-09-23 18:55:18 +00:00
Thomas Bluemel
808e28016e implemented OpenJobObjectA/W() - untested though
svn path=/trunk/; revision=11008
2004-09-23 18:46:10 +00:00
Martin Fuchs
c39da650dd work around GCC's wide string constant bug
svn path=/trunk/; revision=11007
2004-09-23 18:37:57 +00:00
Thomas Bluemel
51c36121e9 implemented CreateJobObjectA/W() - untested though
svn path=/trunk/; revision=11006
2004-09-23 18:31:51 +00:00
Thomas Bluemel
b85ef6c64a implemented IsProcessInJob(), AssignProcessToJobObject(), QueryInformationJobObject(), SetInformationJobObject() and TerminateJobObject(), all untested though
svn path=/trunk/; revision=11005
2004-09-23 18:02:19 +00:00
Royce Mitchell III
04c8adbef9 add some debug output
svn path=/trunk/; revision=11004
2004-09-23 18:00:29 +00:00
Thomas Bluemel
1c5a999278 export job functions
svn path=/trunk/; revision=11003
2004-09-23 17:03:59 +00:00
Thomas Bluemel
08dea69da5 forgot to add job access rights
svn path=/trunk/; revision=11002
2004-09-23 16:53:25 +00:00
Thomas Bluemel
dcea0ecb49 proper job access mapping
svn path=/trunk/; revision=11001
2004-09-23 16:31:21 +00:00
Martin Fuchs
62c06f1198 encode &quot; and &apos;
svn path=/trunk/; revision=11000
2004-09-23 16:09:15 +00:00
Art Yerkes
d774499bf8 event.c: Don't infinite loop while completing a zero-length read.
tcp.c: Correctly pass on length in recv.

svn path=/trunk/; revision=10999
2004-09-23 14:16:27 +00:00
Royce Mitchell III
0dbb29fa23 small fix to OskitDumpBuffer() - each line should display the address of it's first byte, not the address of the beginning of the dump...
svn path=/trunk/; revision=10998
2004-09-23 12:43:49 +00:00
Royce Mitchell III
2c63cbebbc new version of OskitDumpBuffer() that shows ascii characters, too, for easier debugging
svn path=/trunk/; revision=10997
2004-09-23 12:36:19 +00:00
Eric Kohl
6e00d9b507 Implement boot logging. Add /BOOTLOG to the command line to enable boot logging.
svn path=/trunk/; revision=10996
2004-09-23 11:27:58 +00:00
Art Yerkes
d0135b1184 Fixed the way send and recv are called and return errors.
added some printing.
dllmains: adjusted printing.

svn path=/trunk/; revision=10995
2004-09-23 08:16:16 +00:00
Gé van Geldorp
18318e6e17 Steven Edwards <steven_ed4153@yahoo.com>
- Remove some unneeded include statements.

svn path=/trunk/; revision=10994
2004-09-23 06:48:09 +00:00
Art Yerkes
51580f3182 Fixes: Lock does not need to acquire a spinlock in the non-passive-level
case because we can't contend with outselves in passive level.
Realized subtle bug in select.

Select needs a referenced file object rather than a handle.  Will change
this when i get time.

svn path=/trunk/; revision=10993
2004-09-23 06:42:16 +00:00
Art Yerkes
36cc9bb181 Main changes: reimported uipc_socket.c which had lots of differences with
freebsd.
Fixed: OskitTCPReceive.  Now rely exclusively on uio as suggested.

svn path=/trunk/; revision=10992
2004-09-23 06:39:16 +00:00
Royce Mitchell III
bb9e009623 forgot to save workspace before commiting. removed directory from include path that was only meant to be temporary
svn path=/trunk/; revision=10991
2004-09-23 03:13:35 +00:00
Royce Mitchell III
438e4eae22 oskittcp can now be built with vs6
svn path=/trunk/; revision=10990
2004-09-23 03:02:29 +00:00
Martin Fuchs
696d3bd2b6 remove wStringTableOffset
svn path=/trunk/; revision=10989
2004-09-22 23:00:24 +00:00
Martin Fuchs
8e81012956 configuration dialog to choose between MDI and SDI mode with persistent storage
svn path=/trunk/; revision=10988
2004-09-22 22:57:00 +00:00
Thomas Bluemel
40637ed24b initialize the job management and export PsJobType
svn path=/trunk/; revision=10987
2004-09-22 22:31:46 +00:00
Steven Edwards
ba27e813a3 Fix building mdi test on MS_VC and Mingw
svn path=/trunk/; revision=10986
2004-09-22 22:25:13 +00:00
Steven Edwards
3cf59b7b6c Fix building dnsquery test on MS_VC and Mingw
svn path=/trunk/; revision=10985
2004-09-22 22:13:56 +00:00
Gé van Geldorp
4170c2ae26 Henning Gerhardt <henning.gerhardt@web.de>
- Minor fixes and updates to the German resource files.
Marcelo Duarte <wine-devel@bol.com.br>
- French translation and other adjustments.
- Update localization for Portuguese language.
Ivan Leo Puoti <puoti@inwind.it>
- Changed my name, so update copyright info.
- Added Italian resources.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Updated the Spanish shell32 translation and made some corrections to
  other language files.

svn path=/trunk/; revision=10984
2004-09-22 20:50:30 +00:00
Thomas Bluemel
594cfc6a04 1. fixed RtlValidSecurityDescriptor() that attempted to validate nonexisting owner/group SID
2. implemented RtlValidRelativeSecurityDescriptor()

svn path=/trunk/; revision=10983
2004-09-22 20:16:02 +00:00
Steven Edwards
c92d7b8a36 Fix building for building on both Mingw and MS_VC.
svn path=/trunk/; revision=10982
2004-09-22 19:53:14 +00:00
Gé van Geldorp
dab159a4de Robert Shearman <rob@codeweavers.com>
- GetWindowLong -> GetWindowLongPtr.

svn path=/trunk/; revision=10981
2004-09-22 19:46:52 +00:00
Gé van Geldorp
5a585fd014 Ulrich Czekalla <ulrich@codeweavers.com>
- When we send out a notification to a registered window with
  SHCNRF_NewDelivery, we should send a LPNOTIFICATIONLIST and the
  process id of the caller.

svn path=/trunk/; revision=10980
2004-09-22 19:38:54 +00:00
Gé van Geldorp
c2678bf64e Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=10979
2004-09-22 19:24:14 +00:00
Gé van Geldorp
b49b939efd Stefan Leichter <Stefan.Leichter@camLine.com>
- Moved stub of Control_FillCache_RunDLL from ascii to unicode.

svn path=/trunk/; revision=10978
2004-09-22 19:13:36 +00:00
Gé van Geldorp
f505dd6839 Merge back commit from winehq.
Mike McCormack <mike@codeweavers.com>
- Use Heap function in preference to malloc/free.

svn path=/trunk/; revision=10977
2004-09-22 18:47:39 +00:00
Gé van Geldorp
2e87325d12 Huw Davies <huw@codeweavers.com>
- Change dialogs to use MS Shell Dlg rather than Helv or MS Sans Serif.

svn path=/trunk/; revision=10976
2004-09-22 18:10:57 +00:00
Royce Mitchell III
b608a8ac83 don't zero out OtcpEvent structure from InitOskitTCP(), because it has already been initialized at this point. Also added a check for null to avoid crash in ifa_ifwithnet()
svn path=/trunk/; revision=10975
2004-09-22 17:41:52 +00:00
Thomas Bluemel
bebf5b5e5e 1. added EJOB structure
2. implemented PsGetProcessJob(), PsGetJobLock(), PsGetJobSessionId() and PsGetJobUIRestrictionsClass()

svn path=/trunk/; revision=10974
2004-09-22 14:53:26 +00:00
Royce Mitchell III
cd3894b51d clean up/simplify 'type' command some more and don't append command-terminating carriage-return to the output buffer.
svn path=/trunk/; revision=10973
2004-09-22 13:55:07 +00:00
Royce Mitchell III
540291d651 replace problematic stack variable in OskitTCPSend() with properly allocated mbuf, and get rid of a redundant memcpy() in OskitTCPReceiveDatagram().
svn path=/trunk/; revision=10972
2004-09-22 13:35:11 +00:00
Thomas Bluemel
3c9fc0f8ce accidently changed the @unimplemented marks
svn path=/trunk/; revision=10971
2004-09-22 10:58:06 +00:00
Thomas Bluemel
c436cba1b9 don't be silent when calling unimplemented functions
svn path=/trunk/; revision=10970
2004-09-22 10:49:07 +00:00
Thomas Bluemel
6c07abd294 implemented CheckNameLegalDOS8Dot3A/W()
svn path=/trunk/; revision=10969
2004-09-22 09:31:01 +00:00
Gé van Geldorp
2b9416f467 Robert Shearman <rob@codeweavers.com>
- Share version information between DllGetVersion and resource file.

svn path=/trunk/; revision=10968
2004-09-22 05:08:04 +00:00
Gé van Geldorp
9fcfe5a590 Juan Lang <juan_lang@yahoo.com>
- If a folder contains a desktop.ini, check it for the icon location
  before using the default folder icon.

svn path=/trunk/; revision=10967
2004-09-21 22:14:38 +00:00
Thomas Bluemel
cbfc9645ec implemented GetSystemRegistryQuota()
svn path=/trunk/; revision=10966
2004-09-21 22:08:18 +00:00
Thomas Bluemel
5f701004c0 fixed definition of the SYSTEM_REGISTRY_QUOTA_INFORMATION structure
svn path=/trunk/; revision=10965
2004-09-21 22:07:38 +00:00
Thomas Bluemel
1f2ec88e90 implemented GetProcessHandleCount()
svn path=/trunk/; revision=10964
2004-09-21 21:53:45 +00:00
Gé van Geldorp
63b36d9681 Francois Gouget <fgouget@codeweavers.com>
- Fix CSIDL_COMMON_{STARTMENU,PROGRAMS,DESKTOPDIRECTORY} so they all use
  paths in 'All Users' like CSIDL_COMMON_STARTUP.
  The CSIDL_COMMON_PROGRAMS fix solves many menu creation problems.

svn path=/trunk/; revision=10963
2004-09-21 21:13:49 +00:00
Gé van Geldorp
664942baf9 Eric Pouech <pouech-eric@wanadoo.fr>
- GetModuleFileName[AW] doesn't terminate the string if the buffer is
  too small.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Don't leak cache imagelists on exit.

svn path=/trunk/; revision=10962
2004-09-21 20:48:02 +00:00
Gé van Geldorp
ffa3b3d7fd Match whitespace to winehq
svn path=/trunk/; revision=10961
2004-09-21 19:44:19 +00:00
Gé van Geldorp
2ff29d7662 Juan Lang <juan_lang@yahoo.com>
- Correct return value in a couple of error cases.
Marcus Meissner <marcus@jet.franken.de>
- Marked some functions in debughlp as static.
- Do not use REFIID as return, but IID*.

svn path=/trunk/; revision=10960
2004-09-21 19:38:17 +00:00
Gé van Geldorp
a867629b4f Juan Lang <juan_lang@yahoo.com>
- Correct some PIDL types and eliminate some magic numbers in PIDL
  allocation; correct a copy-pasto from a previous patch.

svn path=/trunk/; revision=10959
2004-09-21 19:34:21 +00:00
Thomas Bluemel
e831b21339 implemented CreateMemoryResourceNotification() and QueryMemoryResourceNotification(), but only the kernel32 part
svn path=/trunk/; revision=10958
2004-09-21 19:17:26 +00:00
Gé van Geldorp
d0fa47278d Sync to winehq
svn path=/trunk/; revision=10957
2004-09-21 19:11:35 +00:00
Gé van Geldorp
e74c23bc36 We have our own tray code
svn path=/trunk/; revision=10956
2004-09-21 19:02:01 +00:00
Gé van Geldorp
af135d8b9b Juan Lang <juan_lang@yahoo.com>
- Add stub for ShellDDEInit to let Windows explorer.exe get past the
  beginning.
Francois Gouget <fgouget@free.fr>
- Make Unicode strings static const.
Eric Pouech <pouech-eric@wanadoo.fr>
- GetModuleFileName[AW] doesn't terminate the string if the buffer is
  too small.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Delete the about dialog font when the dialog is closed.
Juan Lang <juan_lang@yahoo.com>
- Added support for DLLVERSIONINFO2 in DllGetVersion.

svn path=/trunk/; revision=10955
2004-09-21 18:55:53 +00:00
Gé van Geldorp
4ac1e6a310 Mike McCormack <mike@codeweavers.com>
- Update path from relative path on loading.

svn path=/trunk/; revision=10954
2004-09-21 18:14:15 +00:00
Thomas Bluemel
bd7af734b8 implemented IsDBCSLeadByte() and IsDBCSLeadByteEx()
svn path=/trunk/; revision=10953
2004-09-21 17:41:24 +00:00
Art Yerkes
fa965094ed Fixed tcptest to not do send recv or close on a socket that's not connected.
This keeps the user from doing something inappropriate.
makefile: add -g back in

svn path=/trunk/; revision=10952
2004-09-21 04:06:15 +00:00
Royce Mitchell III
6f6e411eef bcopy()'s arguments are different order than memcpy()
svn path=/trunk/; revision=10951
2004-09-21 04:00:14 +00:00
Gé van Geldorp
822b8e1a47 Francois Gouget <fgouget@free.fr>
- Make Unicode const strings static so they are not copied to the stack
  each time we enter the function.
Aric Stewart <aric@codeweavers.com>
- In IPersistFile_Save if the exe file is not found, trust the path we
  are given and allow creation of the link.
- Make sure exePath contains the path since it is used later in the
  function as well.
Ge van Geldorp <gvg@reactos.com>
- Match whitespace to winehq

svn path=/trunk/; revision=10950
2004-09-20 21:39:04 +00:00
Hartmut Birr
093f4a09c5 - Implemented the loading of drivers according to the order
of the tag entries in the GroupOrderList key.

svn path=/trunk/; revision=10949
2004-09-20 19:47:25 +00:00
Gé van Geldorp
c9ece8cfa5 Maxime Belleng� <maxime.bellenge@laposte.net>
- Add the IAutoComplete and IAutoComplete2 implementation (but methods
  stubbed for now).

svn path=/trunk/; revision=10948
2004-09-20 19:47:14 +00:00
Gé van Geldorp
6eb55219c8 Merge back commits from winehq
Maxime Bellenge <maxime.bellenge@laposte.net>
- Add the IAutoComplete and IAutoComplete2 implementation (but methods
  stubbed for now).

svn path=/trunk/; revision=10947
2004-09-20 18:55:21 +00:00
Gé van Geldorp
dfd4f0156b Francois Gouget <fgouget@free.fr>
- Fix some field names in CSFV and QCMINFO.
Patrik Stridvall <ps@leissner.se>
- Fixed some issues found by winapi_check.

svn path=/trunk/; revision=10946
2004-09-20 18:45:00 +00:00
Gé van Geldorp
5a384553bd Robert Shearman <rob@codeweavers.com>
- Add exports for missing ordinals 191-194.
- Stub for SHUpdateImageW.

svn path=/trunk/; revision=10945
2004-09-20 18:32:33 +00:00
Gé van Geldorp
6382d705ab Francois Gouget <fgouget@free.fr>
- Don't export the shell32 SHAllocShared functions by name.
  Implement them by calling out their shlwapi equivalent (which had a
  much more complete implementation anyway).
- Fix the prototype of shlwapi's SHAllocShared().
- Don't crash if lpvData is NULL in SHAllocShared().
- Add a conformance test to shlwapi.

svn path=/trunk/; revision=10944
2004-09-20 18:29:10 +00:00
Gé van Geldorp
cccdc00157 Fork a small change which has little change of being accepted by winehq
svn path=/trunk/; revision=10943
2004-09-20 18:08:37 +00:00
Gé van Geldorp
322da3c44c Vincent Beron <vberon@mecano.gme.usherb.ca>
- Don't hardcode c:\windows paths in msi.dll.
Huw Davies <huw@codeweavers.com>
- Unicodify a load of strings.

svn path=/trunk/; revision=10942
2004-09-20 18:07:54 +00:00
Hartmut Birr
553993dcd2 - Implemented the driver loading by the sequence of tag entries in the GroupOrderList key.
svn path=/trunk/; revision=10941
2004-09-20 18:02:36 +00:00
Hartmut Birr
b23fa198a6 - Added the 'GroupOrderList' key.
- Added entries for some scsi port drivers.
- Added the tag key for the atapi driver.

svn path=/trunk/; revision=10940
2004-09-20 17:57:46 +00:00
Gé van Geldorp
f634e3c46c Return status code
svn path=/trunk/; revision=10939
2004-09-20 17:55:16 +00:00
Gé van Geldorp
67f1b8f671 Martin Fuchs <martin-fuchs@gmx.net>
- make drive letters in PIDLs always uppercase to enable PIDL
  comparison
- Unicodify _ILCreateDrive()

svn path=/trunk/; revision=10938
2004-09-20 17:47:49 +00:00
Gé van Geldorp
e4f5d86770 Martin Fuchs <martin-fuchs@gmx.net>
Return "file not found" error values instead of E_INVALIDARG if
_ILCreateFromPathA() failed to find files.

svn path=/trunk/; revision=10936
2004-09-20 17:42:57 +00:00
Royce Mitchell III
cd1222eced initialize fields that sosend() expects to have valid values
svn path=/trunk/; revision=10935
2004-09-20 15:47:03 +00:00
Gé van Geldorp
db2f0db5f7 Martin Fuchs <martin-fuchs@gmx.net>
- make drive letters in PIDLs always uppercase to enable PIDL
  comparison
- Unicodify _ILCreateDrive()

svn path=/trunk/; revision=10934
2004-09-20 15:36:07 +00:00
Gé van Geldorp
56dec0d9ee Merge back commit from winehq
svn path=/trunk/; revision=10933
2004-09-20 15:07:21 +00:00
Gé van Geldorp
91923bdc1d Mike McCormack <mike@codeweavers.com>
- Clean up messy comment in SHFileOperation.
- Reduce the number of goto labels in SHFileOperation by one.

svn path=/trunk/; revision=10932
2004-09-20 14:52:47 +00:00
Gé van Geldorp
88a015f877 Vitaliy Margolen <wine-patch@kievinfo.com>
- IShellFolder::CompareIDs - return only -1/0/1 in lower 16 bit.

svn path=/trunk/; revision=10931
2004-09-20 14:45:07 +00:00
Gé van Geldorp
8985a9b088 Alexandre Julliard <julliard@winehq.org>
- Don't define BEGIN_INTERFACE in unknwn.h.
Francois Gouget <fgouget@free.fr>
- Add #define COBJMACROS where needed in Wine.
Juan Lang <juan_lang@yahoo.com>
- IShellView seems reasonably complete, change a FIXME to a TRACE to
  speed up open/save dialogs.

Merge back commits from winehq

svn path=/trunk/; revision=10930
2004-09-20 14:38:30 +00:00
Gé van Geldorp
0785062c81 Alexandre Julliard <julliard@winehq.org>
- Get rid of the non-standard ICOM_DEFINE macro.
- Get rid of the non-standard ICOM_VFIELD macro.
- Get rid of the non-standard ICOM_VTABLE macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Removed some more uses of the non-standard ICOM_THIS macro.

svn path=/trunk/; revision=10929
2004-09-20 09:18:52 +00:00
Gé van Geldorp
f7f21544a4 Remove incorrect assert. An APC can be queued to the attached environment,
as long as it is delivered before KeDetachProcess() is called.

svn path=/trunk/; revision=10928
2004-09-20 08:17:44 +00:00
Art Yerkes
2d1b661aa1 Implemented MCLGET for reactos, not dependent on either bsd or oskit
facilities.

svn path=/trunk/; revision=10927
2004-09-20 05:03:28 +00:00
Art Yerkes
03fea0db7d Royce Mitchell pointed out that we could eliminate these ifdefs if we don't
use a uio, and that the uio is not needed because an mbuf can't be partially
accepted.

svn path=/trunk/; revision=10926
2004-09-20 04:18:45 +00:00
Royce Mitchell III
10adf2be06 sosend( ) will not process mbuf if you pass it a uio (according to arty)
svn path=/trunk/; revision=10925
2004-09-20 04:13:46 +00:00
Gé van Geldorp
5124ae5f88 Fix copy/paste error
svn path=/trunk/; revision=10924
2004-09-19 22:07:40 +00:00
Gé van Geldorp
b22290537c Francois Gouget <fgouget@free.fr>
- Moved declarations from undocshell.h to shlobj.h to match the latest
  platform SDK.

svn path=/trunk/; revision=10923
2004-09-19 22:02:28 +00:00
Royce Mitchell III
2613fbbeb9 added 'type' command
svn path=/trunk/; revision=10922
2004-09-19 15:55:35 +00:00
Thomas Bluemel
17cd1043bb 1. implemented SetProcessWorkingSetSize()
2. fixed Set/GetPriorityClass() not to call csrss and use NtSet/QueryInformationProcess() instead

svn path=/trunk/; revision=10921
2004-09-19 14:36:47 +00:00
Thomas Bluemel
b912ada645 don't memcpy TIME structures to FILETIME structures
svn path=/trunk/; revision=10920
2004-09-19 12:45:55 +00:00
Martin Fuchs
fb19ab485e remove explorer references
svn path=/trunk/; revision=10919
2004-09-19 12:33:17 +00:00
Martin Fuchs
00bbf934b7 added Wine translations for winefile:
es.rc, fr.rc, hu.rc, it.rc, nl.rc, pt.rc, ru.rc, si.rc, zh.rc
Thanks to Sylvain Petreolle <spetreolle@yahoo.fr>

svn path=/trunk/; revision=10918
2004-09-19 12:23:31 +00:00
Hartmut Birr
035b22b542 - Call MmFreeSectionSegments if the Bcb reference count is zero (in CcRosReleaseFileCache).
svn path=/trunk/; revision=10917
2004-09-19 12:11:44 +00:00
Gé van Geldorp
06bac7f0b9 Avoid crash
svn path=/trunk/; revision=10916
2004-09-19 11:25:43 +00:00
Gé van Geldorp
510df619d2 Sync to Wine-20040914
svn path=/trunk/; revision=10915
2004-09-19 11:15:58 +00:00
Gé van Geldorp
0645493981 Sync to Wine-20040914:
Robert Reif <reif@earthlink.net>
- Don't try to find alternate formats for non PCM formats.

svn path=/trunk/; revision=10913
2004-09-19 11:13:17 +00:00
Gé van Geldorp
601c767280 Sync to Wine-20040914:
David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.
Robert Reif <reif@earthlink.net>
- Remove wine specific DRV_QUERYDSOUNDGUID message and calculate it in
  dsound.dll (like in 2k/xp).
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix an obvious typo leading to a crash.
Alexandre Julliard
- Function parameters don't need WINE_UNUSED.
Eric Pouech <pouech-eric@wanadoo.fr>
- Implemented the mmTask* functions.

svn path=/trunk/; revision=10912
2004-09-19 11:07:39 +00:00
Emanuele Aliberti
976020b12d .cvsignore updated.
svn path=/trunk/; revision=10911
2004-09-19 10:48:43 +00:00
Gé van Geldorp
7a8404b20f Sync to Wine-20040914:
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.
Alexandre Julliard
- Removed some uses of the non-standard ICOM_THIS macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
Mike McCormack <mike@codeweavers.com>
- Fix some -Wsigned-compare warnings.
- Don't read past end of table in PathFileExistsDefExtW.
- Use the ACP define in MB/WC conversion functions.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Implement SHSimulateDrop, MIME_GetExtensionA/W, StrCpyNXA/W,
  SHAnsiToAnsi, SHUnicodeToUnicode.
Francois Gouget <fgouget@free.fr>
- Don't export the shell32 SHAllocShared functions by name.
- Implement them by calling out their shlwapi equivalent (which had a
  much more complete implementation anyway).
- Fix the prototype of shlwapi's SHAllocShared().
- Don't crash if lpvData is NULL in SHAllocShared().
- Add a conformance test to shlwapi.
- Assorted spelling fixes.
Diego Petten= <dgp85@users.sourceforge.net>
- Add support for file:/// urls in PathCreateFromUrl.
- Add support in UrlIs() for URLIS_DIRECTORY and URLIS_FILEURL flags.
James Hawkins <truiken@gmail.com>
- Fix buffer overflow in PathSetDlgItemPathW that led to a trashed
  stack.

svn path=/trunk/; revision=10910
2004-09-19 10:46:48 +00:00
Gé van Geldorp
77b4d47ea6 Sync to Wine-20040914:
Mike McCormack <mike@codeweavers.com>
- Avoid non-standard types in rpcdcep.h.
Alexandre Julliard:
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Removed some uses of the non-standard ICOM_THIS macro.
Francois Gouget <fgouget@free.fr>
- Fix and unify parsing of calling conventions.
- Hack handling of 'struct { } *NDR_SCONTEXT;' so we don't cause a parse
  error as this is a valid C construct.
- Generate type tests for rpcrt4.
- Remove PRPC_BINDING_VECTOR and PUUID_VECTOR, they don't exist on
  Windows.
- Fix the MIDL_STUB_MESSAGE, MIDL_SERVER_INFO and
  MIDL_STUBLESS_PROXY_INFO structs.
- Add NDR_ALLOC_ALL_NODES_CONTEXT, NDR_POINTER_QUEUE_STATE and
  CS_STUB_INFO.

svn path=/trunk/; revision=10909
2004-09-19 10:35:24 +00:00
Gé van Geldorp
414bb6e2c0 Sync to Wine-20040914:
Mike McCormack <mike@codeweavers.com>
- Use buffers rather than linked lists for input and out buffers.
- Stop reading input at a nul byte.
Evan Deaubl <wine@warpedview.com>
- Stop processing input stream when the outermost RTF group is closed.

svn path=/trunk/; revision=10908
2004-09-19 10:28:59 +00:00
Gé van Geldorp
95fadd5bb4 Sync to Wine-20040914:
Huw Davies <huw@codeweavers.com>
- Change dialogs to use MS Shell Dlg rather than Helv or MS Sans Serif.
David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.

svn path=/trunk/; revision=10907
2004-09-19 10:24:48 +00:00
Gé van Geldorp
5693a82971 Sync to Wine-20040914:
Alexandre Julliard:
- Added recursive idl target to allow updating idl files private to a
  dll.
- Get rid of the non-standard ICOM_THIS macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Inline functions don't need WINE_UNUSED.
- Don't define BEGIN_INTERFACE in unknwn.h.
Mike McCormack <mike@codeweavers.com>
- Fix some warnings found with -Wsign-compare.
Francois Gouget <fgouget@free.fr>
- Move the PROPVARIANT declaration from objidl.idl to propidl.idl.
- Move related API declarations from individual C files to propidl.idl.
- Remove uneeded include of propidl.h in the propvariant.c test.
Robert Shearman <rob@codeweavers.com>
- Fix PropVariantCopy for VT_LPSTR and VT_LPWSTR.
- Test case VT_BSTR, VT_LPSTR and VT_LPWSTR.
- Fix PropVariantClear to reject invalid types.
- Don't crash on NULL pointers.
- Add test case.

svn path=/trunk/; revision=10906
2004-09-19 10:20:48 +00:00
Gé van Geldorp
07a136b6e9 Sync to Wine-20040914:
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.

svn path=/trunk/; revision=10905
2004-09-19 10:08:06 +00:00
Gé van Geldorp
6a086fc044 Sync to Wine-20040914:
Hans Leidekker <hans@it.vu.nl>
- Dutch resource translation.
David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.

svn path=/trunk/; revision=10904
2004-09-19 10:07:26 +00:00
Gé van Geldorp
6dfffdb082 Sync to Wine-20040913:
Huw Davies <huw@codeweavers.com>
- Change dialogs to use MS Shell Dlg rather than Helv or MS Sans Serif.
- Fix printer selection in PD_PRINTSETUP type dialogs.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Use "MS Shell Dlg" in the Open File dialog templates as in Windows
- Resize child dialog when its controls are moved relatively stc32
  "magic" control.
- Y coordinate of the "magic" static control should be treated
  inclusively.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Polish translation update.
Rein Klazes <rklazes@xs4all.nl>
- Fix a crash saving a file without file name extension and without
  extension filter.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.
Alexandre Julliard
- Removed some uses of the non-standard ICOM_THIS macro.
- Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
  macro.
- Get rid of the non-standard CONV_POINT and CONV_RECT functions.

svn path=/trunk/; revision=10903
2004-09-19 10:03:26 +00:00
Gé van Geldorp
a795a4185c Sync to Wine-20040913:
Robert Shearman <rob@codeweavers.com>
- Add 16x16 error, info and warning icons.
- Replace GetWindowLong by GetWindowLongPtr.
- Implement insert marks.
- Rearrange TOOLBAR_INFO.
- Clear data structure after dragging.
- WM_SETCURSOR does not need to be handled as it is not sent whilst
  the window is captured.
- Make uDragListMessage non-static so that we can re-use it
  elsewhere.
- Set class hbrBackground and style to the same as native.
- Set hbrBackground class property to same value as native.
- Use Unicode window functions instead of ANSI.
- Always redraw dialog on changing between pages.
- Set hbrBackground class property to same value as native.
- Remove no longer needed WM_ERASEBKGND handler.
- Use Unicode window functions instead of ANSI.
- Make customization list boxes into drag list boxes.
- Order available buttons in the same way as the native version.
- Obey TBCDRF_NOOFFSET for the button text.
- Make anchor highlighting behave more like native version.
- Don't recalculate toolbar in TOOLBAR_Unkwn460.
- Obey WM_SETREDRAW for the WM_ERASEBKGND message as well as
  WM_PAINT.
- TB_MARKITEM should redraw button.
- Send NM_LDOWN notification.
- NM_RDBLCLK only needs to send a NMHDR structure.
- On mouse notifications returning 0 DefWndProc should be called.
- Fix regression with IE's Menu Bar.
- Implement insert marks.
- Rearrange TOOLBAR_INFO.
- Fix anchor highlighting.
- Remove redundant test in TOOLBAR_DrawButton.
- Status update.
- Remove no longer valid comment.
- Minor coding style cleanups.
- Implement titles.
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.
Ulrich Czekalla <ulrich@codeweavers.com>
- Forward focus to combobox, otherwise edit control won't get focus.
- The rectangle passed in DRAWITEMSTRUCT is slightly too large as
  compared with Windows.
- Clear tooltip when text is set to NULL.
- Repaint tooltip when item info changes.
Kevin Koltzau <kevin@plop.org>
- Fix bug with chained messages.
- Make SetWindowSubclass behave with SetWindowLong subclasses.
- Allow unlimited number of subclasses.
- Correct issue when SendMessage is called from within a subclass proc.
- Add regression test.
Huw Davies <huw@codeweavers.com>
- Change dialogs to use MS Shell Dlg rather than Helv or MS Sans Serif.
David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.
Vitaliy Margolen <wine-patch@kievinfo.com>
- Send correct tracing notification messages.
Michael Stefaniuc <mstefani@redhat.de>
- Fix hotspot handling
- Remove unused flag from the InternalDrag struct.
Filip Navara <xnavara@volny.cz>
- Status update.
- Fix resizing of wizards.
- Fill the area next to watermark bitmap with window color and subclass
  exterior wizard pages to suppress drawing background.
- Correct displaying of wizard subtitle.
- Do not distinguish exterior wizard pages by their position, but
  instead expect that every page in wizard that doesn't have header is
  exterior.
- Move the property sheet resizing code from PROPSHEET_CreatePage to
  PROPSHEET_SetCurSel. It needs to be executed on every page change
  because the application can modify it during the notifications.
- Draw the Wizard97 header bitmaps before drawing the header strings.
- Center the header bitmap of the new Wizard97 correctly.
- Display the correct wizard title for any wizard type and do not
  change it for reqular property sheets.
- Fix loading wizard title and subtitle from resources.
Mike McCormack <mike@codeweavers.com>
- Calculate the correct size of dialog templates in the propsheet
  control.
Zach Gorman <zach@archetypeauction.com>
- OK button should be default in non-wizard property sheets.
- Propsheet pages need WS_EX_CONTROLPARENT style.
Jon Griffiths <jon_p_griffiths@yahoo.com>
- CreateDCA -> CreateDCW
Vitaliy Margolen <wine-patch@kievinfo.com>
- Make sure TreeView gets redrawn after calling EnsureVisible.

svn path=/trunk/; revision=10902
2004-09-19 09:50:06 +00:00
Gé van Geldorp
4319f1c249 Sync to Wine-20040914:
Hans Leidekker <hans@it.vu.nl>
- Fix signed/unsigned comparison warnings.

svn path=/trunk/; revision=10901
2004-09-19 09:18:36 +00:00
Gé van Geldorp
5d5247de81 Prepare for syncing to Wine-20040914
svn path=/trunk/; revision=10900
2004-09-19 09:11:12 +00:00
Gé van Geldorp
ac1e392aec Fix insertion of APCs where the target thread is attached to another process
svn path=/trunk/; revision=10899
2004-09-18 19:43:00 +00:00
Magnus Olsen
767ca4f4ac fix some compilings warings when you using some optimze settings in gcc compiler
env.c: In function `RtlDestroyEnvironment':
env.c:108: warning: dereferencing type-punned pointer will break strict-aliasing rules
env.c: In function `RtlSetEnvironmentVariable':
env.c:347: warning: dereferencing type-punned pointer will break strict-aliasing rules
env.c:393: warning: dereferencing type-punned pointer will break strict-aliasing rules

svn path=/trunk/; revision=10898
2004-09-18 09:31:53 +00:00
Magnus Olsen
c98cf6b15e fix some compilings warings
svn path=/trunk/; revision=10897
2004-09-18 07:25:53 +00:00
Magnus Olsen
e1dbb4b414 fix last compilings warings from this file.
svn path=/trunk/; revision=10896
2004-09-18 07:10:14 +00:00
Magnus Olsen
b743a5f954 fix last compilings warings from this file.
svn path=/trunk/; revision=10895
2004-09-17 18:37:37 +00:00
Magnus Olsen
5a3f530e45 fix last compilings warings from this file.
svn path=/trunk/; revision=10894
2004-09-17 18:19:52 +00:00
Magnus Olsen
9a099491c4 fix last compilings warings from this file.
svn path=/trunk/; revision=10893
2004-09-17 18:12:17 +00:00
Magnus Olsen
94bcb6fe25 fix last compilings warings from this file.
svn path=/trunk/; revision=10892
2004-09-17 17:54:46 +00:00
Magnus Olsen
a99b01ff0c fix some compings warings not all yet
svn path=/trunk/; revision=10891
2004-09-17 17:47:14 +00:00
Magnus Olsen
7a1f8074b5 fix some compings warings not all yet
svn path=/trunk/; revision=10890
2004-09-17 17:31:08 +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
25547e2d8c Handle "." and ".." as special direcory names and move them at the very first beginning of directory listings
svn path=/trunk/; revision=10888
2004-09-17 16:56:46 +00:00
Art Yerkes
1c08e25544 Userland test for lan.sys
svn path=/trunk/; revision=10887
2004-09-17 16:07:41 +00:00
Art Yerkes
77700375d6 Interface for lan.sys
svn path=/trunk/; revision=10886
2004-09-17 15:51:52 +00:00
Art Yerkes
83fc2a9406 Removed arp.h until the arp part is finished.
svn path=/trunk/; revision=10885
2004-09-17 15:51:07 +00:00
Art Yerkes
885107a541 lan.sys is a simple driver providing access to ndis. This stuff is
ripped from tcpip.sys in preparation for a big breakup.

svn path=/trunk/; revision=10884
2004-09-17 15:50:16 +00:00
Gé van Geldorp
865a63875c Restore old DBG and KDBG defaults
svn path=/trunk/; revision=10883
2004-09-17 14:48:20 +00:00
Magnus Olsen
74d54596e4 fix small spelling fault
svn path=/trunk/; revision=10882
2004-09-17 09:25:10 +00:00
Gé van Geldorp
6c4737effa Get rid of .edf files
svn path=/trunk/; revision=10881
2004-09-16 21:31:50 +00:00
Magnus Olsen
01926b2642 my small change to config to add optimze build for a cpu
did break build for shm
it  did need small change in makefile for lpc  now it works agein

sorry all

svn path=/trunk/; revision=10880
2004-09-16 19:22:12 +00:00
Magnus Olsen
f9b6a686e0 my small change to config to add optimze build for a cpu
did break build for nptest
it  did need small change in makefile for lpc  now it works agein

sorry all

svn path=/trunk/; revision=10879
2004-09-16 19:20:57 +00:00
Magnus Olsen
475dcac67e my small change to config to add optimze build for a cpu
did break build for mstest
it  did need small change in makefile for lpc  now it works agein

sorry all

svn path=/trunk/; revision=10878
2004-09-16 19:19:34 +00:00
Magnus Olsen
1106a16497 my small change to config to add optimze build for a cpu
did break build for lpc
it  did need small change in makefile for lpc  now it works agein

sorry all

svn path=/trunk/; revision=10877
2004-09-16 18:47:20 +00:00
Magnus Olsen
e75c574ed1 In config add switch OARCH for optimze build for the cpu you want
for rule.mak
remove hardcoding of optimze build for cpu.
-march=i486 to -march=$(OARCH)

svn path=/trunk/; revision=10876
2004-09-16 17:35:33 +00:00
Gé van Geldorp
8523764fef Add forceifhung flag
svn path=/trunk/; revision=10875
2004-09-16 12:46:43 +00:00
Martin Fuchs
21784c13af add shell32.a
svn path=/trunk/; revision=10874
2004-09-16 12:02:49 +00:00
Eric Kohl
9f8dc789cf Implement NtQueryDefaultUILanguage, NtQueryInstallUILanguage and NtSetDefaultUILanguage.
svn path=/trunk/; revision=10873
2004-09-16 11:47:18 +00:00
Eric Kohl
1672f6069e Sort entries and remove duplicates.
svn path=/trunk/; revision=10872
2004-09-16 11:46:17 +00:00
Gé van Geldorp
d3275bbd8b Get rid of .edf files
svn path=/trunk/; revision=10871
2004-09-16 10:25:18 +00:00
Martin Fuchs
0f892545b8 PaintDesktop(): print system version on desktop background
svn path=/trunk/; revision=10870
2004-09-15 20:53:43 +00:00
Thomas Bluemel
e740fd1758 add function to the header file
svn path=/trunk/; revision=10869
2004-09-15 19:01:23 +00:00
Thomas Bluemel
1388215acb added a few usermode helper functions to work with sparse files
svn path=/trunk/; revision=10868
2004-09-15 18:57:02 +00:00
Thomas Bluemel
bc5e02eafd forgot to commit this file
svn path=/trunk/; revision=10867
2004-09-15 17:06:34 +00:00
Aleksey Bragin
380da77736 Make icon drawing mode corresponding to the current display settings (4,8,16,24,32 bit colors)
By Semyon "Tappak" Novikov.

svn path=/trunk/; revision=10866
2004-09-15 16:03:09 +00:00
Martin Fuchs
57dbd89701 fix RegSetValueEx() call
svn path=/trunk/; revision=10865
2004-09-15 14:25:46 +00:00
Thomas Bluemel
650bd77805 implemented EnableVolumeCompression()
svn path=/trunk/; revision=10864
2004-09-15 13:32:27 +00:00
Martin Fuchs
919419da33 remove direct version output from desktop; instead store the activation flag into the registry
svn path=/trunk/; revision=10863
2004-09-15 10:55:02 +00:00
Martin Fuchs
83a9ed824f add winefile
svn path=/trunk/; revision=10862
2004-09-15 10:16:05 +00:00
Martin Fuchs
384543f280 move winefile into subsys/system
svn path=/trunk/; revision=10861
2004-09-15 10:08:34 +00:00
Hartmut Birr
e3c3fe8e95 - Fixed the length calculation in WriteConsoleOutputAttribute.
svn path=/trunk/; revision=10860
2004-09-14 22:30:56 +00:00
Hartmut Birr
581f980ede - Execute the reset command previous the present test for each unit (master/slave).
svn path=/trunk/; revision=10859
2004-09-14 22:09:06 +00:00
Eric Kohl
5ad00f54e3 - Use Unicode strings instead of WCHAR strings.
- Use FsRtl functions to handle wildcards.

svn path=/trunk/; revision=10858
2004-09-14 21:46:39 +00:00
Gé van Geldorp
5a97f250e7 Check if attached when terminating thread. Suggested by tamlin.
svn path=/trunk/; revision=10857
2004-09-14 18:37:40 +00:00
Thomas Bluemel
7678fed2ef do something in wcsnlen() - but it should be (as strnlen() in this file) not implemented there, just so IsBadStringPtrW() works even though it lacks SEH protection at the moment
svn path=/trunk/; revision=10856
2004-09-14 14:01:25 +00:00
Eric Kohl
4a4dcb92cf Implement SeLockSubjectContext and SeUnlockSubjectContext.
svn path=/trunk/; revision=10855
2004-09-14 11:04:48 +00:00
Thomas Bluemel
2da90fee73 little fix
svn path=/trunk/; revision=10854
2004-09-14 01:30:02 +00:00
Art Yerkes
dff481387d Added WSAStartup.
svn path=/trunk/; revision=10852
2004-09-13 22:59:22 +00:00
Thomas Bluemel
c7f278a12e silence debug message
svn path=/trunk/; revision=10850
2004-09-13 21:37:32 +00:00
Thomas Bluemel
09afb31c28 implemented RtlIpv4AddressToStringA/W and made ntdll export them.
svn path=/trunk/; revision=10848
2004-09-13 20:25:26 +00:00
Gé van Geldorp
2161bebe79 Fix closing of LPC ports
svn path=/trunk/; revision=10847
2004-09-13 19:10:45 +00:00
Jens Collin
32bd722bb4 Fixed small mistake in string handling in my last commit.
svn path=/trunk/; revision=10846
2004-09-13 18:04:09 +00:00
Thomas Bluemel
89c8c187f3 adapted RtlInt64ToUnicodeString() from RtlIntegerToUnicodeString()
svn path=/trunk/; revision=10845
2004-09-13 17:27:23 +00:00
Gé van Geldorp
40016817aa Log error code when freetype fails to initialize
svn path=/trunk/; revision=10844
2004-09-13 17:17:17 +00:00
Thomas Bluemel
30c43d3c95 adapted RtlIntegerToUnicode() from RtlIntegerToChar()
svn path=/trunk/; revision=10843
2004-09-13 16:58:58 +00:00
Eric Kohl
7347219eb4 Rename HANDLE_REP to HANDLE_ENTRY.
svn path=/trunk/; revision=10842
2004-09-13 14:43:50 +00:00
Eric Kohl
b6a00f0a9a RegQueryInfoKeyW returns correct security descriptor size.
svn path=/trunk/; revision=10841
2004-09-13 14:42:37 +00:00
Eric Kohl
44e5201910 - Implement AddAccessAllowedAceEx, AddAccessDeniedAceEx and AddAuditAccessAceEx.
- Add GetCurrentHwProfileW stub.

svn path=/trunk/; revision=10840
2004-09-13 12:14:55 +00:00
Eric Kohl
00443884ee - Return a default security descriptor when someone wants to retrieve the key security.
- Disable debug messages.

svn path=/trunk/; revision=10839
2004-09-13 11:46:07 +00:00
Eric Kohl
f34a907c7a - Fix a typo in RegGetKeySecurity().
- Set missing error values.

svn path=/trunk/; revision=10838
2004-09-13 11:41:26 +00:00
Eric Kohl
14f00f3aeb Implement RegGetKeySecurity.
svn path=/trunk/; revision=10837
2004-09-13 08:51:40 +00:00
Royce Mitchell III
b1958574f7 fix -lstdc++
svn path=/trunk/; revision=10836
2004-09-13 03:14:35 +00:00
Art Yerkes
baa35b140c Fixed -lstdc++.
svn path=/trunk/; revision=10835
2004-09-13 03:12:11 +00:00
Gé van Geldorp
556c9464b6 Make the end a little bit more interesting
svn path=/trunk/; revision=10834
2004-09-12 21:58:01 +00:00
Thomas Bluemel
ba5fcd9590 revert the changes i accidently committed to HEAD
svn path=/trunk/; revision=10831
2004-09-12 19:47:49 +00:00
Gé van Geldorp
d77482d763 Fix external termination of thread while thread is waiting in GetMessage()
svn path=/trunk/; revision=10830
2004-09-12 19:29:23 +00:00
Thomas Bluemel
eed6b713aa rewrote the gdi handle table that behaves similar 2k/XP and works without global locks
svn path=/trunk/; revision=10829
2004-09-12 19:21:08 +00:00
Thomas Bluemel
04ccf93084 reduce debug output
svn path=/trunk/; revision=10828
2004-09-12 18:50:03 +00:00
Jens Collin
5a1180477c Merged with wine. (Fixed const string handling)
svn path=/trunk/; revision=10827
2004-09-12 11:21:30 +00:00
Filip Navara
b7cf80521b - Fix MS2PS rule to work on Windows.
- Include PSEH header in the MS2PS generated files.

svn path=/trunk/; revision=10826
2004-09-12 10:22:31 +00:00
Gé van Geldorp
5334c75998 Add french language to syssetup. Fixes part 2 of bug 401.
Patch by Herv� Poussineau <poussine@freesurf.fr>

svn path=/trunk/; revision=10825
2004-09-12 09:52:48 +00:00
Gé van Geldorp
44d3d874aa Use Wine's language matching algorithm when searching for resources.
Fixes bug 261.

svn path=/trunk/; revision=10823
2004-09-11 17:06:33 +00:00
Eric Kohl
14399d738b - Implement FsRtlLegalAnsiCharacterArray.
- Fix FsRtlDissectDbcs and FsRtlDoesDbcsContainWildCards prototypes.

svn path=/trunk/; revision=10822
2004-09-11 14:49:41 +00:00
Eric Kohl
44c503e1d4 Define LOCALE_SYEARMONTH, DATE_YEARMONTH, DATE_LTRREADING and DATE_RTLREADING.
svn path=/trunk/; revision=10821
2004-09-11 08:48:27 +00:00
Filip Navara
37734f772d - Define NOTHING.
svn path=/trunk/; revision=10820
2004-09-11 03:54:42 +00:00
Filip Navara
6244c47ebf - Define FILE_USE_FILE_POINTER_POSITION and FILE_WRITE_TO_END_OF_FILE.
- Correct prototype of PFAST_IO_UNLOCK_ALL_BY_KEY.

svn path=/trunk/; revision=10819
2004-09-11 03:52:18 +00:00
Filip Navara
4ed49e10fb - Add declaration of FsRtlDissectName.
svn path=/trunk/; revision=10818
2004-09-11 03:51:13 +00:00
Steven Edwards
3585f39f48 We need to import ntdll for DbgPrint
svn path=/trunk/; revision=10817
2004-09-10 23:30:45 +00:00
Steven Edwards
c8686d8770 Added Filips patch allowing for Wine testing output to go to DbgPrint as well as stdout.
svn path=/trunk/; revision=10816
2004-09-10 23:30:23 +00:00
Steven Edwards
bd82ff9f5e Moved interlocked function to rosrtl rather than exporting them from ntdll as windows does not export them from there.
svn path=/trunk/; revision=10815
2004-09-10 23:29:28 +00:00
Steven Edwards
d0cbef2f9f minor bug fix for building with other headers.
svn path=/trunk/; revision=10814
2004-09-10 23:22:22 +00:00
Filip Navara
9a4721af9c Fix the reset sequence in AtapiFindDevices to work correctly in VMware.
svn path=/trunk/; revision=10813
2004-09-10 23:17:45 +00:00
Gé van Geldorp
fb16e656c4 Send CTRL_CLOSE_EVENT to processes attached to a console when that console
is closed. Default handle the event by terminating the process.

svn path=/trunk/; revision=10812
2004-09-10 22:14:52 +00:00
Steven Edwards
5f870e152c removed tests until a proper fix is found.
Sorry about the breakage.

svn path=/trunk/; revision=10811
2004-09-10 15:49:54 +00:00
Steven Edwards
1c6eb466cb Removed the user32 test pending a understanding of how to make our system and Wines play together. It needed to be moved to the user32 module as per Caspers recommendation.
svn path=/trunk/; revision=10810
2004-09-09 23:49:49 +00:00
Steven Edwards
099b821285 These tests pass under ReactOS with curret CVS. Trying to figure out how to make Caspers regression system and Wines system to play nice.
svn path=/trunk/; revision=10809
2004-09-09 23:48:36 +00:00
Hartmut Birr
faaad49380 - Implemented PAE (physical address extension) mapping.
- Added the command line switches /pae and /noexecute for enabling the PAE mapping.

svn path=/trunk/; revision=10808
2004-09-09 20:42:33 +00:00
Hartmut Birr
176e26ac5d - Implemented ExfInterlockedCompareExchange64 and ExfpInterlockedExchange64
svn path=/trunk/; revision=10807
2004-09-09 18:51:17 +00:00
Eric Kohl
a3105b78bf - Use SeQuerySecurityDescriptorInfo() to retrieve an objects security descriptor.
- Disable debug messages.

svn path=/trunk/; revision=10806
2004-09-09 12:20:48 +00:00
Steven Edwards
9071fcfe51 Added user32 regression tests that we pass to the regtests system. Working on reviewing all of the Wine tests we pass and then figuring out a way to merge them in with our testing framework.
svn path=/trunk/; revision=10805
2004-09-09 04:18:30 +00:00
Eric Kohl
b451846efb Add support for setting a security descriptor for a file. Send an
IRP_MJ_SET_SECURITY to the filesystem driver and return
STATUS_SUCCESS if the filesystem driver does not support
this IRP.

svn path=/trunk/; revision=10804
2004-09-08 11:42:56 +00:00
Eric Kohl
539582375e - Fix a typo in NtSetSecurityObject().
svn path=/trunk/; revision=10803
2004-09-08 11:39:59 +00:00
Eric Kohl
1b398faac1 Implement SetFileSecurityA/W.
svn path=/trunk/; revision=10802
2004-09-08 11:36:24 +00:00
Steven Edwards
a19098ac83 Add some resources from Winehq CVS.
svn path=/trunk/; revision=10801
2004-09-07 23:09:54 +00:00
Gé van Geldorp
b1c0463316 Fix compile-time warning, spotted by Sylvain Petreolle <spetreolle@yahoo.fr>
svn path=/trunk/; revision=10800
2004-09-07 14:27:04 +00:00
Eric Kohl
144119a87d Return a security descriptor that grants full access to everyone if a filesystem
driver does not handle IRP_MJ_QUERY_SECURITY.

svn path=/trunk/; revision=10799
2004-09-07 11:51:13 +00:00
Eric Kohl
67e0d5082e IopInvalidDeviceRequest must return STATUS_INVALID_DEVICE_REQUEST.
svn path=/trunk/; revision=10798
2004-09-07 11:48:16 +00:00
Hartmut Birr
d4595781ee - Removed most of the calls to KeAttachProcess/KeDetachProcess.
- Used the kernel map to map page tables from other process's.
  In the future this should be replaced by a per process kernel map (hyperspace map).

svn path=/trunk/; revision=10797
2004-09-07 11:08:16 +00:00
Hartmut Birr
a3d5d79146 - Added the dependency checking for precompiled headers.
svn path=/trunk/; revision=10796
2004-09-07 08:20:06 +00:00
Hartmut Birr
ff08835fad - Replaced the target extension with '.h.gch' if the source extension was '.h'
svn path=/trunk/; revision=10795
2004-09-07 08:14:30 +00:00
Eric Kohl
78d5c83574 Implement GetFileSecurityA/W.
svn path=/trunk/; revision=10794
2004-09-06 22:12:25 +00:00
Thomas Bluemel
ccbc81e0fa 1. make use of precompiled headers everywhere
2. moved some unicode stubs out of the ansi stub file

svn path=/trunk/; revision=10793
2004-09-06 21:15:46 +00:00
Thomas Bluemel
a961785e1d don't copy LARGE_INTEGER structs to FILETIME structs with memcpy, it works but it's confusing as they're different structures that happen to be identical.
svn path=/trunk/; revision=10792
2004-09-06 15:56:25 +00:00
Steven Edwards
b1d9a8f8ff We are not using wpp at this time. We can always add a
more recent copy if we ever need it.

svn path=/trunk/; revision=10791
2004-09-06 15:04:16 +00:00
Eric Kohl
23e7f4df4f Implement ANSI group and item functions.
svn path=/trunk/; revision=10790
2004-09-06 12:00:40 +00:00
Hartmut Birr
873819daac - Check first for an existing directory object in NtCreateDirectoryObject.
svn path=/trunk/; revision=10789
2004-09-05 22:26:17 +00:00
Hartmut Birr
5fa2297ffd - Returned STATUS_OBJECT_NAME_NOT_FOUND if no directory was found in ObReferenceObjectByName.
svn path=/trunk/; revision=10788
2004-09-05 22:25:36 +00:00
Emanuele Aliberti
ad39a9fec5 .cvsignore updated.
svn path=/trunk/; revision=10787
2004-09-05 12:34:25 +00:00
Emanuele Aliberti
55003962a3 Version information added.
.cvsignore updated.

svn path=/trunk/; revision=10786
2004-09-05 12:27:36 +00:00
Art Yerkes
703e2aa5f9 Fixes:
Socket destruction is correct.  When IRPs are left to cancel, the socket
will remain until all pending irps complete.  The DestroySocket function
does this.  It is always safe to call DestroySocket at any time after the
FsContext member of the FileObject has been nulled.

Fixed UDP data delivery in.  UDP send still has a problem but it seems to
be in tcpip.sys more than likely.  I've sliced another 6000 lines out of
tcpip.sys that i will debug as a userspace library and link to tcpip.

Fixed poll reeval (old reported bug fix I hadn't committed yet).

Miscellaneously better sanity in a few rough spots.

svn path=/trunk/; revision=10785
2004-09-05 04:26:30 +00:00
Steven Edwards
2c8687b1a2 disable typedef for socklen_t for the moment.
svn path=/trunk/; revision=10784
2004-09-04 21:44:30 +00:00
Filip Navara
f0120ac1d7 Handle matching of "f0_*.*" expression to "f0_000" file name in FsRtlIsNameInExpression and add relevant regression test.
svn path=/trunk/; revision=10783
2004-09-04 15:02:00 +00:00
Magnus Olsen
67a29489d2 fix compings warings
not all waring have been fix

svn path=/trunk/; revision=10782
2004-09-04 10:51:20 +00:00
Steven Edwards
4074dc813b Added check for socklen_t
svn path=/trunk/; revision=10781
2004-09-03 21:34:48 +00:00
Magnus Olsen
d2e1a6010a fix compings warings
src/types.c: In function `pap_qstring':
src/types.c:99: warning: passing arg 2 of `adns__alloc_interim' as unsigned due to prototype
src/types.c:103: warning: passing arg 3 of `memcpy' as unsigned due to prototype
src/types.c: In function `pap_domain':
src/types.c:352: warning: passing arg 2 of `adns__alloc_interim' as unsigned due to prototype
src/types.c:356: warning: passing arg 3 of `memcpy' as unsigned due to prototype
src/types.c: In function `pap_findaddrs':
src/types.c:422: warning: passing arg 2 of `adns__vbuf_ensure' as signed due to prototype
src/types.c: In function `csp_hostaddr':
src/types.c:573: warning: passing arg 3 of `csp_qstring' as signed due to prototype
src/types.c: In function `icb_ptr':
src/types.c:705: warning: passing arg 3 of `memcmp' as unsigned due to prototype
src/types.c: In function `pa_ptr':
src/types.c:747: warning: passing arg 3 of `memcpy' as unsigned due to prototype
src/types.c:755: warning: passing arg 3 of `memcmp' as unsigned due to prototype
src/types.c:765: warning: passing arg 1 of `htonl' as unsigned due to prototype
src/types.c: In function `pap_mailbox822':
src/types.c:880: warning: passing arg 2 of `adns__alloc_interim' as unsigned due to prototype
src/types.c:881: warning: passing arg 3 of `memcpy' as unsigned due to prototype

svn path=/trunk/; revision=10780
2004-09-03 17:47:29 +00:00
Magnus Olsen
c203723e4f compings warings. and some did have wrong protypes.
0. fix warning: passing arg 1 of `send' as unsigned due to prototype
1. fix warning: passing arg 3 of `memcpy' as unsigned due to prototype
2. fix warning: passing arg 3 of `send' as signed due to prototype
3. fix warning: unused variable `bytes_written'
4. fix warning: dereferencing type-punned
    pointer will break strict-aliasing rules

5. fix warning: dereferencing type-punned
   pointer will break strict-aliasing rules

svn path=/trunk/; revision=10779
2004-09-03 16:49:18 +00:00
Filip Navara
d6740a2c10 - Disable debugging messages.
svn path=/trunk/; revision=10778
2004-09-03 04:44:45 +00:00
Filip Navara
87204d5906 - Revert the I/O port change from my previous patch. I didn't notice we're doing "+ 2" there.
svn path=/trunk/; revision=10777
2004-09-03 04:19:12 +00:00
Filip Navara
2d99115181 Issue soft reset command for identification and not ATAPI reset command which works only for packet based devices like CD-ROM drives and it's use on ATA devices is prohibited by the standard. If an ATAPI device is detected then and only then issue the ATAPI reset command. Also fix the addresses in AtapiClaimHwResources. This might fix bug #406.
svn path=/trunk/; revision=10776
2004-09-03 02:55:50 +00:00
Magnus Olsen
46256f9c81 fix lite more waring when it compiling
svn path=/trunk/; revision=10775
2004-09-03 00:15:04 +00:00
Magnus Olsen
88adadd6c6 fix follow warings msg
Warning: resolving  x by linking to
                DrvCopyContext@12
	DrvCreateContext@4
	DrvCreateLayerContext@8
	DrvDeleteContext@4
	DrvDescribeLayerPlane@20
	DrvDescribePixelFormat@16
	DrvGetLayerPaletteEntries@20
	DrvGetProcAddress@4
	DrvReleaseContext@4
	DrvRealizeLayerPalette@12
	DrvSetContext@12
	DrvSetLayerPaletteEntries@20
	DrvSetPixelFormat@8
	DrvShareLists@8
	DrvSwapBuffers@4
	DrvSwapLayerBuffers@8
	DrvValidateVersion@4

svn path=/trunk/; revision=10774
2004-09-02 23:51:07 +00:00
Magnus Olsen
a40f706f8e change ccflags = -O march=i386 to march=i486
All asm code are writen for i486. so why did we compile it for i386 when it does not work on i386.

svn path=/trunk/; revision=10773
2004-09-02 19:49:44 +00:00
Art Yerkes
198d9eefbc ADNS lib afer eol conversion. Greatlord pointed out that the DOS eols
checked in double when checked out in a certain way on windows.

svn path=/trunk/; revision=10772
2004-09-02 19:03:45 +00:00
Art Yerkes
b880d380cc Added python command app to oskit test.
svn path=/trunk/; revision=10771
2004-09-02 02:33:11 +00:00
Art Yerkes
05cf09a12d Activate dnsapi and adns.
svn path=/trunk/; revision=10770
2004-09-01 23:49:39 +00:00
Filip Navara
0f860fb51e - Disable debugging messages.
svn path=/trunk/; revision=10768
2004-09-01 20:41:07 +00:00
Art Yerkes
8e1426d027 Implement WSHGetWildcardAddress
svn path=/trunk/; revision=10766
2004-09-01 03:39:29 +00:00
Art Yerkes
500044ccc8 Corrected compile error due to different enum used in prototype.
svn path=/trunk/; revision=10765
2004-09-01 02:33:50 +00:00
Art Yerkes
f8b9ad2133 EXT2 should now be allowed in arcnames, etc.
svn path=/trunk/; revision=10764
2004-09-01 00:37:29 +00:00
Filip Navara
d9002d2afe - Allow shared read access to the debug.log file.
svn path=/trunk/; revision=10763
2004-09-01 00:15:08 +00:00
Filip Navara
03d477407b - Don't use ULONG for storing pointers.
svn path=/trunk/; revision=10762
2004-08-31 23:53:40 +00:00
Filip Navara
92b839476c - Don't use ULONG for storing pointers.
svn path=/trunk/; revision=10761
2004-08-31 23:48:02 +00:00
Gé van Geldorp
1d76d6dd93 - Return value of WM_GETTEXTLENGTH is in TCHARs, not in bytes, so there is
no need to convert between Ansi and Unicode (number of characters remains
  the same)
- Allocate Ansi buffer for WM_GETTEXT since MultiByteToWideChar can't handle
  overlapping buffers

svn path=/trunk/; revision=10760
2004-08-31 23:32:01 +00:00
Hartmut Birr
a9bae8fa65 - Removed the member OldProcess from the ETHREAD structure.
svn path=/trunk/; revision=10759
2004-08-31 20:17:18 +00:00
Hartmut Birr
2d0d1ee993 - Allow always shared read for a file which is opened for read only.
svn path=/trunk/; revision=10758
2004-08-31 20:07:06 +00:00
Hartmut Birr
4f6383edcb - Store always offsets on cluster boundaries in FCB->LastOffset.
svn path=/trunk/; revision=10757
2004-08-31 20:02:24 +00:00
Filip Navara
0ebfc36a78 - Fix converting of UTF8 sequences in IntMultiByteToWideCharUTF8.
svn path=/trunk/; revision=10755
2004-08-31 19:54:14 +00:00
Filip Navara
3db1c05c05 - Restoring of character size in VBEResetHw. Patch by Herv� Poussineau.
svn path=/trunk/; revision=10754
2004-08-31 18:28:50 +00:00
Filip Navara
9cc8b8a571 - Use FsRtl routines for wildcard handling.
svn path=/trunk/; revision=10753
2004-08-31 16:08:38 +00:00
Hartmut Birr
b50ad1e5ec - Fixed some wchar to char translations.
svn path=/trunk/; revision=10751
2004-08-31 14:40:50 +00:00
Filip Navara
d4aa975e56 Implement IntWideCharToMultiByteUTF8 since it's needed for saving Explorer configuration. (This change should be ported to the release branch.)
svn path=/trunk/; revision=10748
2004-08-31 07:01:43 +00:00
Filip Navara
67d68774ab - Revise order of PsInitializeThread to insert the thread to the lists after *all* the fields are initialized and while holding the PiThreadListLock lock acquired.
svn path=/trunk/; revision=10747
2004-08-31 06:08:38 +00:00
Steven Edwards
51bdcda011 Removed SeaShell from the tip.
Its in the attic if anyone needs to look at it.

svn path=/trunk/; revision=10746
2004-08-31 02:38:41 +00:00
Filip Navara
37aba5c9fc - Add NET_NIC.inf and syssetup.inf files to bootcd.
svn path=/trunk/; revision=10745
2004-08-30 20:33:36 +00:00
Filip Navara
e78e4ea757 - Close the registry hive file object in CmiInitNonVolatileRegistryHive.
svn path=/trunk/; revision=10744
2004-08-30 19:28:59 +00:00
Art Yerkes
9980d7cf9c Since system services are now provided by the client, we need the
callback struct first.

svn path=/trunk/; revision=10743
2004-08-30 18:12:30 +00:00
Eric Kohl
6277a93862 - Fixed some compiler warnings.
- Detect and report PCI-BIOS.

svn path=/trunk/; revision=10742
2004-08-30 10:53:38 +00:00
Martin Fuchs
3dd13e9ba0 fix tab order
svn path=/trunk/; revision=10741
2004-08-30 06:29:46 +00:00
Martin Fuchs
626e081cd1 Display "ReactOS" instead of "Microsoft Windows NT" for the ROS builded version
svn path=/trunk/; revision=10740
2004-08-30 06:28:54 +00:00
Emanuele Aliberti
d43c07d508 .cvsignore added.
svn path=/trunk/; revision=10739
2004-08-30 05:40:13 +00:00
James Tabor
2173fff654 Added Advpack to build process.
svn path=/trunk/; revision=10738
2004-08-30 04:59:40 +00:00
James Tabor
9f62d71a84 First implementation of advpack.dll.
svn path=/trunk/; revision=10737
2004-08-30 04:49:03 +00:00
Art Yerkes
5f189314eb Test app for oskittcp. Takes datagrams by UDP and send any replies to the
last host/port that contacted it.  I intend to use it to finish isolating
bugs in the main body of tcpip.sys and oskittcp interface.

svn path=/trunk/; revision=10736
2004-08-30 04:47:34 +00:00
Aleksey Bragin
e43bc9a08b Added WintrustAddActionID stub.
Added CRYPT_REGISTER_ACTIONID struct
Added CRYPT_TRUST_REG_ENTRY struct.z ` By Semyon "Tappak" Novikov.

svn path=/trunk/; revision=10735
2004-08-29 20:47:18 +00:00
Art Yerkes
aa3eb8fc7c Oskit can now be linked from userland. This is part one of my plan.
tcpip: provide malloc + free, sleep + wakeup functions
oskittcp: remove functions and headers that imply km and supply them from the
user.
tcp_usrreq: i was printing a possibly free mbuf here.

svn path=/trunk/; revision=10734
2004-08-29 20:04:42 +00:00
Art Yerkes
e78fa73912 This patch adds actually informative messages about what went wrong loading
the registry entries for NLS files, etc.

svn path=/trunk/; revision=10733
2004-08-29 18:29:48 +00:00
Thomas Bluemel
cb968187d0 silence debug messages
svn path=/trunk/; revision=10732
2004-08-29 15:50:53 +00:00
Thomas Bluemel
bc95cf8c84 implemented SetProcessPriorityBoost() and GetProcessPriorityBoost() (only the kernel32 part)
svn path=/trunk/; revision=10731
2004-08-29 14:46:02 +00:00
Thomas Bluemel
001b020926 mark GetSystemWindowsDirectory() as implemented as it does exactly the same as GetWindowsDirectory()
svn path=/trunk/; revision=10730
2004-08-29 12:12:34 +00:00
Filip Navara
a48983fc6d - Use ULONG_PTR instead of ULONG for integer arithmetics on pointers.
svn path=/trunk/; revision=10729
2004-08-28 22:22:39 +00:00
Filip Navara
28c8c91905 - Implement file sharing checks.
svn path=/trunk/; revision=10728
2004-08-28 22:19:12 +00:00
Filip Navara
3a31604b7d - Mapping zero-sized files is prohibited.
svn path=/trunk/; revision=10727
2004-08-28 22:18:24 +00:00
Filip Navara
f81fb98e23 - Simplify CreateFileMapping[AW].
- Fix return value of GlobalReAlloc and GlobalUnlock.

svn path=/trunk/; revision=10726
2004-08-28 22:16:27 +00:00
Filip Navara
b1f6932d44 - RtlReAllocateHeap shouldn't allocate memory if ptr == NULL.
svn path=/trunk/; revision=10725
2004-08-28 22:14:08 +00:00
Filip Navara
034e605634 - Change GlobalDiscard and LocalDiscard to macros.
svn path=/trunk/; revision=10724
2004-08-28 22:09:53 +00:00
Filip Navara
e97f806718 - Simplified version of _lcreat.
svn path=/trunk/; revision=10723
2004-08-28 22:08:54 +00:00
Filip Navara
9008b900fe - Fix handling of INVALID_HANDLE_VALUE case in FindNextFile.
svn path=/trunk/; revision=10722
2004-08-28 22:07:51 +00:00
Filip Navara
20ab7d6b27 - Remove invalid code from CreateToolhelp32Snapshot.
svn path=/trunk/; revision=10721
2004-08-28 22:06:02 +00:00
Gé van Geldorp
16034df8e6 Prevent crash when a thread is terminated while sending a cross-thread
message

svn path=/trunk/; revision=10719
2004-08-28 15:01:46 +00:00
Eric Kohl
5dda152b8d Use '$Windows NT$' signature because setupapi doesn't accept '$ReactOS$' yet.
svn path=/trunk/; revision=10718
2004-08-28 12:42:19 +00:00
Eric Kohl
0251ddf48c - Add preliminary wizard page title and subtitle string resources.
- Use setupapi functions to process syssetup.inf.

svn path=/trunk/; revision=10717
2004-08-28 11:08:50 +00:00
Gé van Geldorp
0d89489d43 Remove NASM_CMD definition since it is already correctly defined in the
top level rules.mak

svn path=/trunk/; revision=10716
2004-08-28 07:27:22 +00:00
James Tabor
1f00798a4b Cvs ingnore file added.
svn path=/trunk/; revision=10715
2004-08-27 23:10:13 +00:00
James Tabor
7f32d07583 Port of Msiexec from Wine.
svn path=/trunk/; revision=10714
2004-08-27 23:08:00 +00:00
James Tabor
e51ac8f476 Port Wine Msiexec to ROS.
svn path=/trunk/; revision=10713
2004-08-27 22:54:29 +00:00
Gé van Geldorp
1f0d87df05 Change nasm to nasmw (to match what's used in the reactos module)
svn path=/trunk/; revision=10712
2004-08-27 20:38:24 +00:00
Art Yerkes
ad74693225 This adds a rule which will trigger automatic conversion between msvc
style and pseh syntactically.  Name any file that should be converted
as foo_msvc.c and put foo.o in TARGET_OBJECTS and the file will be
preprocessed.

I asked some opinions about the naming and everyone seems ok with it.

svn path=/trunk/; revision=10711
2004-08-27 18:24:28 +00:00
Aleksey Bragin
fbd1a52cdf Wintrust lib stub (not imported from Wine). By Semyon "Tappak" Novikov.
svn path=/trunk/; revision=10709
2004-08-27 12:10:27 +00:00
Aleksey Bragin
d4c39be9ba Header file for wintrust lib. By Semyon "Tappak" Novikov.
svn path=/trunk/; revision=10708
2004-08-27 12:06:29 +00:00
Hartmut Birr
1a80e84bb2 - Establish the pde's for the callback stack if the stack was recycled from the list.
svn path=/trunk/; revision=10705
2004-08-27 10:25:46 +00:00
Hartmut Birr
16a24538c2 - Establish the pde for the thread structure within the process
before a switch to the process occurs.

svn path=/trunk/; revision=10704
2004-08-27 10:24:04 +00:00
Filip Navara
aa00673d45 - Complete rewrite of environment variable handling to get rid of memory leaks, heap corruption and spurious pointers.
- Remove some ancient Wine stuff that either wasn't used or didn't work.
- Fix realloc to not call HeapReAlloc for allocating new memory.

svn path=/trunk/; revision=10703
2004-08-27 03:08:23 +00:00
Gregor Anich
0f59361d11 Do not call HalReleaseDisplayOwnership when KDB is entered and screen debugging is not enabled. After an exception the screen will not turn blue but will freeze and be un-frozen when KDB is left (cont) I hope this can not damage old monitors if the card starts producing garbage signals when the driver is suspended - in VMWare it works well.
svn path=/trunk/; revision=10702
2004-08-27 00:14:01 +00:00
Magnus Olsen
2d8bef8799 fix
some waring msg  when it being compile

svn path=/trunk/; revision=10701
2004-08-26 21:08:06 +00:00
Gé van Geldorp
7f48b18098 Bump version number to 0.2.5
svn path=/trunk/; revision=10700
2004-08-26 21:05:42 +00:00
Robert Kopferl
509a299316 changed back to CVS, false br
svn path=/trunk/; revision=10698
2004-08-26 20:36:11 +00:00
Robert Kopferl
9e24ae99ae changed to RC1
svn path=/trunk/; revision=10697
2004-08-26 20:24:40 +00:00
Hartmut Birr
df72452da1 - Changed -Wno-strict-aliasing to -fno-strict-aliasing.
- Reduced optimisation from -O6 to -O3.

svn path=/trunk/; revision=10696
2004-08-26 19:55:20 +00:00
Magnus Olsen
5b63ba578e fix
some waring msg  when it being compile

svn path=/trunk/; revision=10695
2004-08-26 19:53:37 +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
9560 changed files with 77862 additions and 2800586 deletions

View File

@@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
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.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@@ -1,158 +0,0 @@
; FreeLoader by Brian Palmer
; FREELDR.INI - FreeLoader Initialization file
;
; Each line must be less than 1024 characters long
; and must be either a section heading (i.e. [section_name])
; or a setting (i.e. name=value) or a blank line.
; Comments start with a ';' character.
; Background colors can be any one of the following:
; Black
; Blue
; Green
; Cyan
; Red
; Magenta
; Brown
; Gray
; Text colors can be any one of the background
; colors and any of the following:
; DarkGray
; LightBlue
; LightGreen
; LightCyan
; LightRed
; LightMagenta
; Yellow
; White
; [FREELOADER] Section Commands:
;
; MessageBox - displays the specified text in a message box upon bootup
; MessageLine - adds a new line of text to a message box (must come before MessageBox command)
; TitleText - text that is displayed in the title box
; StatusBarColor - color of status bar's background
; StatusBarTextColor - color of status bar's text
; BackdropTextColor - color of the backdrop's fill
; BackdropColor - color of the backdrop's background
; BackdropFillStyle - backdrop fill style - can be Light, Medium, or Dark
; TitleBoxTextColor - title box text color
; TitleBoxColor - title box background color
; MessageBoxTextColor - message box text color
; MessageBoxColor - message box background color
; MenuTextColor - menu text color
; MenuColor - menu color
; TextColor - normal text color
; SelectedTextColor - selected text color
; SelectedColor - selected text background color
; TimeOut - sets the timeout (in seconds) before the first OS listed gets booted automagically
; [OS-General] Section Commands:
;
; BootType - sets the boot type: ReactOS, Linux, BootSector, Partition, Drive
; BootDrive - sets the boot drive: 0 - first floppy, 1 - second floppy, 0x80 - first hard disk, 0x81 - second hard disk
; BootPartition - sets the boot partition
; DriveMap - maps a BIOS drive number to another (i.e. DriveMap=hd1,hd0 maps harddisk1 to harddisk0 or DriveMap=fd1,fd0)
; [BootSector OSType] Section Commands:
;
; BootSector - sets the filename of the bootsector to be loaded
; [ReactOS OSType] Section Commands:
;
; SystemPath - sets the system root path (must be a valid ARC - Path):
; multi(0)disk(0)rdisk(0)partition(1)\reactos
; multi(0)disk(0)fdisk(0)
; Options - sets the command line options for the kernel being booted
; Kernel - sets the kernel filename (default: ntoskrnl.exe)
; Hal - sets the HAL filename (default: hal.dll)
[FREELOADER]
MessageBox=Welcome to FreeLoader!\nCopyright (c) 2003 by Brian Palmer <brianp@sginet.com>\n\nThis is a sample FreeLoader configuration file.\nEdit FREELDR.INI to change the boot settings.
DefaultOS=ReactOSHD
TimeOut=10
; DisplayMode can be:
; NORMAL_VGA for 80x25
; EXTENDED_VGA for 80x50 on VGA 80x43 on EGA
; 0x501C for 80x28
; 0x501E for 80x30
; 0x5022 for 80x34
; 0x502B for 80x43
; 0x503C for 80x60
[Display]
DisplayMode=NORMAL_VGA
TitleText=Brian<61>s Custom FreeLoader Boot Disk
StatusBarColor=Cyan
StatusBarTextColor=Black
BackdropTextColor=White
BackdropColor=Blue
BackdropFillStyle=Medium
TitleBoxTextColor=White
TitleBoxColor=Red
MessageBoxTextColor=White
MessageBoxColor=Blue
MenuTextColor=White
MenuColor=Blue
TextColor=Yellow
SelectedTextColor=Black
SelectedColor=Gray
SpecialEffects=Yes
[Operating Systems]
ReactOSHD="ReactOS (HardDrive)"
ReactOSFloppy="ReactOS (Floppy)"
Linux="Debian Linux"
Floppy="3 1/2 Floppy (A:)"
MSWinders="Microsoft Windows (C:)"
DriveD="Drive D:"
; Load ReactOS from harddisk (drive C:)
[ReactOSHD]
BootType=ReactOS
SystemPath=multi(0)disk(0)rdisk(0)partition(1)\reactos
Options=/DEBUGPORT=SCREEN
Kernel=\REACTOS\SYSTEM32\NTOSKRNL.EXE
Hal=\REACTOS\SYSTEM32\HAL.DLL
; Load ReactOS from floppy (drive A:)
[ReactOSFloppy]
BootType=ReactOS
SystemPath=multi(0)disk(0)fdisk(0)
Options=/DEBUGPORT=SCREEN
Kernel=\reactos\NTOSKRNL.EXE
Hal=\reactos\HAL.DLL
;[ReactOS (Debug)]
;BootType=ReactOS
;SystemPath=multi(0)disk(0)rdisk(0)partition(1)\reactos
;Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=19200
;Kernel=\NTOSKRNL.EXE
;Hal=\HAL.DLL
[Linux]
BootType=Linux
BootDrive=hd1
BootPartition=1
Kernel=/vmlinuz
Initrd=/initrd.img
CommandLine="root=/dev/sdb1"
[Floppy]
BootType=Drive
BootDrive=fd0
[MSWinders]
BootType=Partition
BootDrive=hd0
BootPartition=1
;DriveMap=hd1,hd0
;DriveMap=hd2,hd0
;DriveMap=hd3,hd0
[DriveD]
BootType=Partition
BootDrive=hd1
BootPartition=1

View File

@@ -1,41 +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
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,179 +0,0 @@
;
; normal DOS boot sector
;
; Ported to nasm from FreeDOS fdisk 1.2.0 by:
; Casper Hornstrup (chorns@users.sourceforge.net)
;
align 2, db 0
global _bootnormal_code
_bootnormal_code:
;-----------------------------------------------------------------------
; ENTRY (copied from freedos bootsector)
;
; IN: DL = boot drive
;OUT: DL = boot drive
;
;-----------------------------------------------------------------------
real_start: cli
cld
xor ax, ax
mov ss, ax ; initialize stack
mov ds, ax
mov bp, 0x7c00
lea sp, [bp-0x20]
sti
mov ax, 0x1FE0
mov es, ax
mov si, bp
mov di, bp
mov cx, 0x0100
rep movsw
jmp word 0x1FE0:0x7c00+ cont-real_start
cont: mov ds, ax
mov ss, ax
xor ax,ax
mov es,ax
; search for active partition
lea di, [bp+0x1be] ; start of partition table
test_next_for_active:
test byte [di],0x80
jne active_partition_found
add di,0x10 ; next table
cmp di, 07c00h+0x1fe; scanned beyond end of table ??
jb test_next_for_active
;*****************************************************************
call print
db 'no active partition found',0
WAIT_FOR_REBOOT:
jmp $
;*****************************************************************
trouble_reading_drive:
call print
db 'read error while reading drive',0
jmp WAIT_FOR_REBOOT
;*****************************************************************
invalid_partition_code:
call print
db 'partition signature != 55AA',0
jmp WAIT_FOR_REBOOT
;*****************************************************************
active_partition_found:
; call print
; db 'loading active partition',0
call read_boot_sector
jc trouble_reading_drive
cmp word [es:0x7c00+0x1fe],0xaa55
jne invalid_partition_code
jmp word 0x0:0x7c00 ; and jump to boot sector code
;*****************************
; read_boot_sector
;
; IN: DI--> partition info
;OUT:CARRY
;*****************************
read_boot_sector:
; /* check for LBA support */
mov bx,0x55aa
mov ah,0x41
int 0x13
jc StandardBios ; if (regs.b.x != 0xaa55 || (regs.flags & 0x01))
cmp bx,0xaa55 ; goto StandardBios;
jne StandardBios
; /* if DAP cannot be used, don't use LBA */
; if ((regs.c.x & 1) == 0)
; goto StandardBios;
test cl,1
jz StandardBios
jmp short LBABios
_bios_LBA_address_packet:
db 0x10
db 0
db 4 ; read four sectors - why not
db 0
dw 0x7c00 ; fixed boot address for DOS sector
dw 0x0000
_bios_LBA_low dw 0
_bios_LBA_high dw 0
dw 0,0
LBABios:
; copy start address of partition to DAP
mov ax,[di+8]
mov [0x7c00+ (_bios_LBA_low-real_start)],ax
mov ax,[di+8+2]
mov [0x7c00+ (_bios_LBA_high-real_start)],ax
mov ax,0x4200 ; regs.a.x = LBA_READ;
mov si,0x7c00+ (_bios_LBA_address_packet-real_start); regs.si = FP_OFF(&dap);
int 0x13
ret
;*****************************************************************
; read disk, using standard BIOS
;
StandardBios:
mov ax,0x0204 ; regs.a.x = 0x0201;
mov bx,0x7c00 ; regs.b.x = FP_OFF(buffer);
mov cx,[di+2] ; regs.c.x =
; ((chs.Cylinder & 0xff) << 8) + ((chs.Cylinder & 0x300) >> 2) +
; chs.Sector;
; that was easy ;-)
mov dh,[di+1] ; regs.d.b.h = chs.Head;
; regs.es = FP_SEG(buffer);
int 0x13
ret
;****** PRINT
; prints text after call to this function.
print_1char:
xor bx, bx ; video page 0
mov ah, 0x0E ; else print it
int 0x10 ; via TTY mode
print: pop si ; this is the first character
print1: lodsb ; get token
push si ; stack up potential return address
cmp al, 0 ; end of string?
jne print_1char ; until done
ret ; and jump to it
times 0x1fe-$+$$ db 0
db 0x55,0xaa

View File

@@ -1,663 +0,0 @@
; EXT2.ASM
; EXT2 Boot Sector
; Copyright (c) 2002, 2003 Brian Palmer
; [bp-0x04] Here we will store the number of sectors per track
; [bp-0x08] Here we will store the number of heads
; [bp-0x0c] Here we will store the size of the disk as the BIOS reports in CHS form
; [bp-0x10] Here we will store the number of LBA sectors read
SECTORS_PER_TRACK equ 0x04
NUMBER_OF_HEADS equ 0x08
BIOS_CHS_DRIVE_SIZE equ 0x0C
LBA_SECTORS_READ equ 0x10
EXT2_ROOT_INO equ 2
EXT2_S_IFMT equ 0f0h
EXT2_S_IFREG equ 080h
org 7c00h
segment .text
bits 16
start:
jmp short main
nop
BootDrive db 0x80
;BootPartition db 0 ; Moved to end of boot sector to have a standard format across all boot sectors
;SectorsPerTrack db 63 ; Moved to [bp-SECTORS_PER_TRACK]
;NumberOfHeads dw 16 ; Moved to [bp-NUMBER_OF_HEADS]
;BiosCHSDriveSize dd (1024 * 1024 * 63) ; Moved to [bp-BIOS_CHS_DRIVE_SIZE]
;LBASectorsRead dd 0 ; Moved to [bp-LBA_SECTORS_READ]
Ext2VolumeStartSector dd 263088 ; Start sector of the ext2 volume
Ext2BlockSize dd 2 ; Block size in sectors
Ext2BlockSizeInBytes dd 1024 ; Block size in bytes
Ext2PointersPerBlock dd 256 ; Number of block pointers that can be contained in one block
Ext2GroupDescPerBlock dd 32 ; Number of group descriptors per block
Ext2FirstDataBlock dd 1 ; First data block (1 for 1024-byte blocks, 0 for bigger sizes)
Ext2InodesPerGroup dd 2048 ; Number of inodes per group
Ext2InodesPerBlock dd 8 ; Number of inodes per block
Ext2ReadEntireFileLoadSegment:
dw 0
Ext2InodeIndirectPointer:
dd 0
Ext2InodeDoubleIndirectPointer:
dd 0
Ext2BlocksLeftToRead:
dd 0
main:
xor ax,ax ; Setup segment registers
mov ds,ax ; Make DS correct
mov es,ax ; Make ES correct
mov ss,ax ; Make SS correct
mov bp,7c00h
mov sp,7b00h ; Setup a stack
cmp BYTE [BYTE bp+BootDrive],BYTE 0xff ; If they have specified a boot drive then use it
jne GetDriveParameters
mov [BYTE bp+BootDrive],dl ; Save the boot drive
GetDriveParameters:
mov ah,08h
mov dl,[BYTE bp+BootDrive] ; Get boot drive in dl
int 13h ; Request drive parameters from the bios
jnc CalcDriveSize ; If the call succeeded then calculate the drive size
; If we get here then the call to the BIOS failed
; so just set CHS equal to the maximum addressable
; size
mov cx,0ffffh
mov dh,cl
CalcDriveSize:
; Now that we have the drive geometry
; lets calculate the drive size
mov bl,ch ; Put the low 8-bits of the cylinder count into BL
mov bh,cl ; Put the high 2-bits in BH
shr bh,6 ; Shift them into position, now BX contains the cylinder count
and cl,3fh ; Mask off cylinder bits from sector count
; CL now contains sectors per track and DH contains head count
movzx eax,dh ; Move the heads into EAX
movzx ebx,bx ; Move the cylinders into EBX
movzx ecx,cl ; Move the sectors per track into ECX
inc eax ; Make it one based because the bios returns it zero based
mov [BYTE bp-NUMBER_OF_HEADS],eax ; Save number of heads
mov [BYTE bp-SECTORS_PER_TRACK],ecx ; Save number of sectors per track
inc ebx ; Make the cylinder count one based also
mul ecx ; Multiply heads with the sectors per track, result in edx:eax
mul ebx ; Multiply the cylinders with (heads * sectors) [stored in edx:eax already]
; We now have the total number of sectors as reported
; by the bios in eax, so store it in our variable
mov [BYTE bp-BIOS_CHS_DRIVE_SIZE],eax
LoadExtraBootCode:
; First we have to load our extra boot code at
; sector 1 into memory at [0000:7e00h]
;mov eax,01h
xor eax,eax
inc eax ; Read logical sector 1, EAX now = 1
mov cx,1 ; Read one sector
mov bx,7e00h ; Read sector to [0000:7e00h]
call ReadSectors
jmp LoadRootDirectory
; Reads ext2 group descriptor into [7000:8000]
; We read it to this arbitrary location so
; it will not cross a 64k boundary
; EAX has group descriptor number to read
Ext2ReadGroupDesc:
shl eax,5 ; Group = (Group * sizeof(GROUP_DESCRIPTOR) /* 32 */)
xor edx,edx
div DWORD [BYTE bp+Ext2GroupDescPerBlock] ; Group = (Group / Ext2GroupDescPerBlock)
add eax,DWORD [BYTE bp+Ext2FirstDataBlock] ; Group = Group + Ext2FirstDataBlock + 1
inc eax ; EAX now has the group descriptor block number
; EDX now has the group descriptor offset in the block
; Adjust the read offset so that the
; group descriptor is read to 7000:8000
mov ebx,78000h
sub ebx,edx
shr ebx,4
mov es,bx
xor bx,bx
; Everything is now setup to call Ext2ReadBlock
; Instead of using the call instruction we will
; just put Ext2ReadBlock right after this routine
; Reads ext2 block into [ES:BX]
; EAX has logical block number to read
Ext2ReadBlock:
mov ecx,DWORD [BYTE bp+Ext2BlockSize]
mul ecx
jmp ReadSectors
; Reads ext2 inode into [6000:8000]
; We read it to this arbitrary location so
; it will not cross a 64k boundary
; EAX has inode number to read
Ext2ReadInode:
dec eax ; Inode = Inode - 1
xor edx,edx
div DWORD [BYTE bp+Ext2InodesPerGroup] ; Inode = (Inode / Ext2InodesPerGroup)
mov ebx,eax ; EBX now has the inode group number
mov eax,edx
xor edx,edx
div DWORD [BYTE bp+Ext2InodesPerBlock] ; Inode = (Inode / Ext2InodesPerBlock)
shl edx,7 ; FIXME: InodeOffset *= 128 (make the array index a byte offset)
; EAX now has the inode offset block number from inode table
; EDX now has the inode offset in the block
; Save the inode values and put the group
; descriptor number in EAX and read it in
push edx
push eax
mov eax,ebx
call Ext2ReadGroupDesc
; Group descriptor has been read, now
; grab the inode table block number from it
push WORD 7000h
pop es
mov di,8008h
pop eax ; Restore inode offset block number from stack
add eax,DWORD [es:di] ; Add the inode table start block
; Adjust the read offset so that the
; inode we want is read to 6000:8000
pop edx ; Restore inode offset in the block from stack
mov ebx,68000h
sub ebx,edx
shr ebx,4
mov es,bx
xor bx,bx
call Ext2ReadBlock
ret
; Reads logical sectors into [ES:BX]
; EAX has logical sector number to read
; CX has number of sectors to read
ReadSectors:
add eax,DWORD [BYTE bp+Ext2VolumeStartSector] ; Add the start of the volume
cmp eax,DWORD [BYTE bp-BIOS_CHS_DRIVE_SIZE] ; Check if they are reading a sector outside CHS range
jae ReadSectorsLBA ; Yes - go to the LBA routine
; If at all possible we want to use LBA routines because
; They are optimized to read more than 1 sector per read
pushad ; Save logical sector number & sector count
CheckInt13hExtensions: ; Now check if this computer supports extended reads
mov ah,0x41 ; AH = 41h
mov bx,0x55aa ; BX = 55AAh
mov dl,[BYTE bp+BootDrive] ; DL = drive (80h-FFh)
int 13h ; IBM/MS INT 13 Extensions - INSTALLATION CHECK
jc ReadSectorsCHS ; CF set on error (extensions not supported)
cmp bx,0xaa55 ; BX = AA55h if installed
jne ReadSectorsCHS
test cl,1 ; CX = API subset support bitmap
jz ReadSectorsCHS ; Bit 0, extended disk access functions (AH=42h-44h,47h,48h) supported
popad ; Restore sector count & logical sector number
ReadSectorsLBA:
pushad ; Save logical sector number & sector count
cmp cx,byte 64 ; Since the LBA calls only support 0x7F sectors at a time we will limit ourselves to 64
jbe ReadSectorsSetupDiskAddressPacket ; If we are reading less than 65 sectors then just do the read
mov cx,64 ; Otherwise read only 64 sectors on this loop iteration
ReadSectorsSetupDiskAddressPacket:
mov [BYTE bp-LBA_SECTORS_READ],cx
mov WORD [BYTE bp-LBA_SECTORS_READ+2],0
o32 push byte 0
push eax ; Put 64-bit logical block address on stack
push es ; Put transfer segment on stack
push bx ; Put transfer offset on stack
push cx ; Set transfer count
push byte 0x10 ; Set size of packet to 10h
mov si,sp ; Setup disk address packet on stack
mov dl,[BYTE bp+BootDrive] ; Drive number
mov ah,42h ; Int 13h, AH = 42h - Extended Read
int 13h ; Call BIOS
jc PrintDiskError ; If the read failed then abort
add sp,byte 0x10 ; Remove disk address packet from stack
popad ; Restore sector count & logical sector number
push bx
mov ebx,DWORD [BYTE bp-LBA_SECTORS_READ]
add eax,ebx ; Increment sector to read
shl ebx,5
mov dx,es
add dx,bx ; Setup read buffer for next sector
mov es,dx
pop bx
sub cx,[BYTE bp-LBA_SECTORS_READ]
jnz ReadSectorsLBA ; Read next sector
ret
; Reads logical sectors into [ES:BX]
; EAX has logical sector number to read
; CX has number of sectors to read
ReadSectorsCHS:
popad ; Get logical sector number & sector count off stack
ReadSectorsCHSLoop:
pushad
xor edx,edx
mov ecx,DWORD [BYTE bp-SECTORS_PER_TRACK]
div ecx ; Divide logical by SectorsPerTrack
inc dl ; Sectors numbering starts at 1 not 0
mov cl,dl ; Sector in CL
mov edx,eax
shr edx,16
div WORD [BYTE bp-NUMBER_OF_HEADS] ; Divide logical by number of heads
mov dh,dl ; Head in DH
mov dl,[BYTE bp+BootDrive] ; Drive number in DL
mov ch,al ; Cylinder in CX
ror ah,2 ; Low 8 bits of cylinder in CH, high 2 bits
; in CL shifted to bits 6 & 7
or cl,ah ; Or with sector number
mov ax,0201h
int 13h ; DISK - READ SECTORS INTO MEMORY
; AL = number of sectors to read, CH = track, CL = sector
; DH = head, DL = drive, ES:BX -> buffer to fill
; Return: CF set on error, AH = status (see AH=01h), AL = number of sectors read
jc PrintDiskError ; If the read failed then abort
popad
inc eax ; Increment Sector to Read
mov dx,es
add dx,byte 20h ; Increment read buffer for next sector
mov es,dx
loop ReadSectorsCHSLoop ; Read next sector
ret
; Displays a disk error message
; And reboots
PrintDiskError:
mov si,msgDiskError ; Bad boot disk message
call PutChars ; Display it
Reboot:
mov si,msgAnyKey ; Press any key message
call PutChars ; Display it
xor ax,ax
int 16h ; Wait for a keypress
int 19h ; Reboot
PutChars:
lodsb
or al,al
jz short Done
call PutCharsCallBios
jmp short PutChars
PutCharsCallBios:
mov ah,0eh
mov bx,07h
int 10h
retn
Done:
mov al,0dh
call PutCharsCallBios
mov al,0ah
call PutCharsCallBios
retn
msgDiskError db 'Disk error',0
; Sorry, need the space...
;msgAnyKey db 'Press any key to restart',0
msgAnyKey db 'Press any key',0
times 509-($-$$) db 0 ; Pad to 509 bytes
BootPartition db 0
dw 0aa55h ; BootSector signature
; End of bootsector
;
; Now starts the extra boot code that we will store
; at sector 1 on a EXT2 volume
LoadRootDirectory:
mov eax,EXT2_ROOT_INO ; Put the root directory inode number in EAX
call Ext2ReadInode ; Read in the inode
; Point ES:DI to the inode structure at 6000:8000
push WORD 6000h
pop es
mov di,8000h
push di
push es ; Save these for later
; Get root directory size from inode structure
mov eax,DWORD [es:di+4]
push eax
; Now that the inode has been read in load
; the root directory file data to 0000:8000
call Ext2ReadEntireFile
; Since the root directory was loaded to 0000:8000
; then add 8000h to the root directory's size
pop eax
mov edx,8000h ; Set EDX to the current offset in the root directory
add eax,edx ; Initially add 8000h to the size of the root directory
SearchRootDirectory:
push edx ; Save current offset in root directory
push eax ; Save the size of the root directory
; Now we have to convert the current offset
; in the root directory to a SEGMENT:OFFSET pair
mov eax,edx
xor edx,edx
mov ecx,16
div ecx ; Now AX:DX has segment & offset
mov es,ax
mov di,dx
push di ; Save the start of the directory entry
add di,byte 8 ; Add the offset to the filename
mov si,filename
mov cl,11
rep cmpsb ; Compare the file names
pop di
pop eax
pop edx
jz FoundFile
; Nope, didn't find it in this entry, keep looking
movzx ecx,WORD [es:di+4]
add edx,ecx
; Check to see if we have reached the
; end of the root directory
cmp edx,eax
jb SearchRootDirectory
jmp PrintFileNotFound
FoundFile:
mov eax,[es:di] ; Get inode number from directory entry
call Ext2ReadInode ; Read in the inode
; Point ES:DI to the inode structure at 6000:8000
pop es
pop di ; These were saved earlier
mov cx,[es:di] ; Get the file mode so we can make sure it's a regular file
and ch,EXT2_S_IFMT ; Mask off everything but the file type
cmp ch,EXT2_S_IFREG ; Make sure it's a regular file
je LoadFreeLoader
jmp PrintRegFileError
LoadFreeLoader:
mov si,msgLoading ; "Loading FreeLoader..." message
call PutChars ; Display it
call Ext2ReadEntireFile ; Read freeldr.sys to 0000:8000
mov dl,[BYTE bp+BootDrive]
mov dh,[BYTE bp+BootPartition]
push byte 0 ; We loaded at 0000:8000
push WORD 8000h ; We will do a far return to 0000:8000h
retf ; Transfer control to FreeLoader
; Reads ext2 file data into [0000:8000]
; This function assumes that the file's
; inode has been read in to 6000:8000 *and*
; ES:DI points to 6000:8000
; This will load all the blocks up to
; and including the double-indirect pointers.
; This should be sufficient because it
; allows for ~64MB which is much bigger
; than we need for a boot loader.
Ext2ReadEntireFile:
; Reset the load segment
mov WORD [BYTE bp+Ext2ReadEntireFileLoadSegment],800h
; Now we must calculate how
; many blocks to read in
; We will do this by rounding the
; file size up to the next block
; size and then dividing by the block size
mov eax,DWORD [BYTE bp+Ext2BlockSizeInBytes] ; Get the block size in bytes
push eax
dec eax ; Ext2BlockSizeInBytes -= 1
add eax,DWORD [es:di+4] ; Add the file size
xor edx,edx
pop ecx ; Divide by the block size in bytes
div ecx ; EAX now contains the number of blocks to load
push eax
; Make sure the file size isn't zero
cmp eax,byte 0
jnz Ext2ReadEntireFile2
jmp PrintFileSizeError
Ext2ReadEntireFile2:
; Save the indirect & double indirect pointers
mov edx,DWORD [es:di+0x58] ; Get indirect pointer
mov [BYTE bp+Ext2InodeIndirectPointer],edx ; Save indirect pointer
mov edx,DWORD [es:di+0x5c] ; Get double indirect pointer
mov [BYTE bp+Ext2InodeDoubleIndirectPointer],edx ; Save double indirect pointer
; Now copy the direct pointers to 7000:0000
; so that we can call Ext2ReadDirectBlocks
push ds ; Save DS
push es
push WORD 7000h
pop es
pop ds
mov si,8028h
xor di,di ; DS:SI = 6000:8028 ES:DI = 7000:0000
mov cx,24 ; Moving 24 words of data
rep movsw
pop ds ; Restore DS
; Now we have all the block pointers in the
; right location so read them in
pop eax ; Restore the total number of blocks in this file
xor ecx,ecx ; Set the max count of blocks to read to 12
mov cl,12 ; which is the number of direct block pointers in the inode
call Ext2ReadDirectBlockList
; Check to see if we actually have
; blocks left to read
cmp eax,byte 0
jz Ext2ReadEntireFileDone
; Now we have read all the direct blocks in
; the inode. So now we have to read the indirect
; block and read all it's direct blocks
push eax ; Save the total block count
mov eax,DWORD [BYTE bp+Ext2InodeIndirectPointer] ; Get the indirect block pointer
push WORD 7000h
pop es
xor bx,bx ; Set the load address to 7000:0000
call Ext2ReadBlock ; Read the block
; Now we have all the block pointers from the
; indirect block in the right location so read them in
pop eax ; Restore the total block count
mov ecx,DWORD [BYTE bp+Ext2PointersPerBlock] ; Get the number of block pointers that one block contains
call Ext2ReadDirectBlockList
; Check to see if we actually have
; blocks left to read
cmp eax,byte 0
jz Ext2ReadEntireFileDone
; Now we have read all the direct blocks from
; the inode's indirect block pointer. So now
; we have to read the double indirect block
; and read all it's indirect blocks
; (whew, it's a good thing I don't support triple indirect blocks)
mov [BYTE bp+Ext2BlocksLeftToRead],eax ; Save the total block count
mov eax,DWORD [BYTE bp+Ext2InodeDoubleIndirectPointer] ; Get the double indirect block pointer
push WORD 7800h
pop es
push es ; Save an extra copy of this value on the stack
xor bx,bx ; Set the load address to 7000:8000
call Ext2ReadBlock ; Read the block
pop es ; Put 7800h into ES (saved on the stack already)
xor di,di
Ext2ReadIndirectBlock:
mov eax,DWORD [es:di] ; Get indirect block pointer
add di,BYTE 4 ; Update DI for next array index
push es
push di
push WORD 7000h
pop es
xor bx,bx ; Set the load address to 7000:0000
call Ext2ReadBlock ; Read the indirect block
; Now we have all the block pointers from the
; indirect block in the right location so read them in
mov eax,DWORD [BYTE bp+Ext2BlocksLeftToRead] ; Restore the total block count
mov ecx,DWORD [BYTE bp+Ext2PointersPerBlock] ; Get the number of block pointers that one block contains
call Ext2ReadDirectBlockList
mov [BYTE bp+Ext2BlocksLeftToRead],eax ; Save the total block count
pop di
pop es
; Check to see if we actually have
; blocks left to read
cmp eax,byte 0
jnz Ext2ReadIndirectBlock
Ext2ReadEntireFileDone:
ret
; Reads a maximum number of blocks
; from an array at 7000:0000
; and updates the total count
; ECX contains the max number of blocks to read
; EAX contains the number of blocks left to read
; On return:
; EAX contians the new number of blocks left to read
Ext2ReadDirectBlockList:
cmp eax,ecx ; Compare it to the maximum number of blocks to read
ja CallExt2ReadDirectBlocks ; If it will take more blocks then just read all of the blocks
mov cx,ax ; Otherwise adjust the block count accordingly
CallExt2ReadDirectBlocks:
sub eax,ecx ; Subtract the number of blocks being read from the total count
push eax ; Save the new total count
call Ext2ReadDirectBlocks
pop eax ; Restore the total count
ret
; Reads a specified number of blocks
; from an array at 7000:0000
; CX contains the number of blocks to read
Ext2ReadDirectBlocks:
push WORD 7000h
pop es
xor di,di ; Set ES:DI = 7000:0000
Ext2ReadDirectBlocksLoop:
mov eax,[es:di] ; Get direct block pointer from array
add di,BYTE 4 ; Update DI for next array index
push cx ; Save number of direct blocks left
push es ; Save array segment
push di ; Save array offset
mov es,[BYTE bp+Ext2ReadEntireFileLoadSegment]
xor bx,bx ; Setup load address for next read
call Ext2ReadBlock ; Read the block (this updates ES for the next read)
mov [BYTE bp+Ext2ReadEntireFileLoadSegment],es ; Save updated ES
pop di ; Restore the array offset
pop es ; Restore the array segment
pop cx ; Restore the number of blocks left
loop Ext2ReadDirectBlocksLoop
; At this point all the direct blocks should
; be loaded and ES (Ext2ReadEntireFileLoadSegment)
; should be ready for the next read.
ret
; Displays a file not found error message
; And reboots
PrintFileNotFound:
mov si,msgFreeLdr ; FreeLdr not found message
jmp short DisplayItAndReboot
; Displays a file size is 0 error
; And reboots
PrintFileSizeError:
mov si,msgFileSize ; Error message
jmp short DisplayItAndReboot
; Displays a file is not a regular file error
; And reboots
PrintRegFileError:
mov si,msgRegFile ; Error message
DisplayItAndReboot:
call PutChars ; Display it
jmp Reboot
msgFreeLdr db 'freeldr.sys not found',0
msgFileSize db 'File size is 0',0
msgRegFile db 'freeldr.sys isnt a regular file',0
filename db 'freeldr.sys'
msgLoading db 'Loading FreeLoader...',0
times 1022-($-$$) db 0 ; Pad to 1022 bytes
dw 0aa55h ; BootSector signature

View File

@@ -1,402 +0,0 @@
; FAT.ASM
; FAT12/16 Boot Sector
; Copyright (c) 1998, 2001, 2002 Brian Palmer
; This is a FAT12/16 file system boot sector
; that searches the entire root directory
; for the file freeldr.sys and loads it into
; memory.
;
; The stack is set to 0000:7BF2 so that the first
; WORD pushed will be placed at 0000:7BF0
;
; The DWORD at 0000:7BFC or BP-04h is the logical
; sector number of the start of the data area.
;
; The DWORD at 0000:7BF8 or BP-08h is the total
; sector count of the boot drive as reported by
; the computers bios.
;
; The WORD at 0000:7BF6 or BP-0ah is the offset
; of the ReadSectors function in the boot sector.
;
; The WORD at 0000:7BF4 or BP-0ch is the offset
; of the ReadCluster function in the boot sector.
;
; The WORD at 0000:7BF2 or BP-0eh is the offset
; of the PutChars function in the boot sector.
;
; When it locates freeldr.sys on the disk it will
; load the first sector of the file to 0000:8000
; With the help of this sector we should be able
; to load the entire file off the disk, no matter
; how fragmented it is.
;
; We load the entire FAT table into memory at
; 7000:0000. This improves the speed of floppy disk
; boots dramatically.
BootSectorStackTop equ 0x7bf2
DataAreaStartHigh equ 0x2
DataAreaStartLow equ 0x4
BiosCHSDriveSizeHigh equ 0x6
BiosCHSDriveSizeLow equ 0x8
BiosCHSDriveSize equ 0x8
ReadSectorsOffset equ 0xa
ReadClusterOffset equ 0xc
PutCharsOffset equ 0xe
org 7c00h
segment .text
bits 16
start:
jmp short main
nop
OEMName db 'FrLdr1.0'
BytesPerSector dw 512
SectsPerCluster db 1
ReservedSectors dw 1
NumberOfFats db 2
MaxRootEntries dw 224
TotalSectors dw 2880
MediaDescriptor db 0f0h
SectorsPerFat dw 9
SectorsPerTrack dw 18
NumberOfHeads dw 2
HiddenSectors dd 0
TotalSectorsBig dd 0
BootDrive db 0
Reserved db 0
ExtendSig db 29h
SerialNumber dd 00000000h
VolumeLabel db 'NO NAME '
FileSystem db 'FAT12 '
main:
xor ax,ax
mov ss,ax
mov bp,7c00h
mov sp,BootSectorStackTop ; Setup a stack
mov ds,ax ; Make DS correct
mov es,ax ; Make ES correct
cmp BYTE [BYTE bp+BootDrive],BYTE 0xff ; If they have specified a boot drive then use it
jne GetDriveParameters
mov [BYTE bp+BootDrive],dl ; Save the boot drive
GetDriveParameters:
mov ah,08h
mov dl,[BYTE bp+BootDrive] ; Get boot drive in dl
int 13h ; Request drive parameters from the bios
jnc CalcDriveSize ; If the call succeeded then calculate the drive size
; If we get here then the call to the BIOS failed
; so just set CHS equal to the maximum addressable
; size
mov cx,0ffffh
mov dh,cl
CalcDriveSize:
; Now that we have the drive geometry
; lets calculate the drive size
mov bl,ch ; Put the low 8-bits of the cylinder count into BL
mov bh,cl ; Put the high 2-bits in BH
shr bh,6 ; Shift them into position, now BX contains the cylinder count
and cl,3fh ; Mask off cylinder bits from sector count
; CL now contains sectors per track and DH contains head count
movzx eax,dh ; Move the heads into EAX
movzx ebx,bx ; Move the cylinders into EBX
movzx ecx,cl ; Move the sectors per track into ECX
inc eax ; Make it one based because the bios returns it zero based
inc ebx ; Make the cylinder count one based also
mul ecx ; Multiply heads with the sectors per track, result in edx:eax
mul ebx ; Multiply the cylinders with (heads * sectors) [stored in edx:eax already]
; We now have the total number of sectors as reported
; by the bios in eax, so store it in our variable
mov [BYTE bp-BiosCHSDriveSize],eax
; Now we must find our way to the first sector of the root directory
xor ax,ax
xor cx,cx
mov al,[BYTE bp+NumberOfFats] ; Number of fats
mul WORD [BYTE bp+SectorsPerFat] ; Times sectors per fat
add ax,WORD [BYTE bp+HiddenSectors]
adc dx,WORD [BYTE bp+HiddenSectors+2] ; Add the number of hidden sectors
add ax,WORD [BYTE bp+ReservedSectors] ; Add the number of reserved sectors
adc dx,cx ; Add carry bit
mov WORD [BYTE bp-DataAreaStartLow],ax ; Save the starting sector of the root directory
mov WORD [BYTE bp-DataAreaStartHigh],dx ; Save it in the first 4 bytes before the boot sector
mov si,WORD [BYTE bp+MaxRootEntries] ; Get number of root dir entries in SI
pusha ; Save 32-bit logical start sector of root dir
; DX:AX now has the number of the starting sector of the root directory
; Now calculate the size of the root directory
xor dx,dx
mov ax,0020h ; Size of dir entry
mul si ; Times the number of entries
mov bx,[BYTE bp+BytesPerSector]
add ax,bx
dec ax
div bx ; Divided by the size of a sector
; AX now has the number of root directory sectors
add [BYTE bp-DataAreaStartLow],ax ; Add the number of sectors of the root directory to our other value
adc [BYTE bp-DataAreaStartHigh],cx ; Now the first 4 bytes before the boot sector contain the starting sector of the data area
popa ; Restore root dir logical sector start to DX:AX
LoadRootDirSector:
mov bx,7e0h ; We will load the root directory sector
mov es,bx ; Right after the boot sector in memory
xor bx,bx ; We will load it to [0000:7e00h]
xor cx,cx ; Zero out CX
inc cx ; Now increment it to 1, we are reading one sector
xor di,di ; Zero out di
push es ; Save ES because it will get incremented by 20h
call ReadSectors ; Read the first sector of the root directory
pop es ; Restore ES (ES:DI = 07E0:0000)
SearchRootDirSector:
cmp [es:di],ch ; If the first byte of the directory entry is zero then we have
jz ErrBoot ; reached the end of the directory and FREELDR.SYS is not here so reboot
pusha ; Save all registers
mov cl,0xb ; Put 11 in cl (length of filename in directory entry)
mov si,filename ; Put offset of filename string in DS:SI
repe cmpsb ; Compare this directory entry against 'FREELDR SYS'
popa ; Restore all the registers
jz FoundFreeLoader ; If we found it then jump
dec si ; SI holds MaxRootEntries, subtract one
jz ErrBoot ; If we are out of root dir entries then reboot
add di,BYTE +0x20 ; Increment DI by the size of a directory entry
cmp di,0200h ; Compare DI to 512 (DI has offset to next dir entry, make sure we haven't gone over one sector)
jc SearchRootDirSector ; If DI is less than 512 loop again
jmp short LoadRootDirSector ; Didn't find FREELDR.SYS in this directory sector, try again
FoundFreeLoader:
; We found freeldr.sys on the disk
; so we need to load the first 512
; bytes of it to 0000:8000
; ES:DI has dir entry (ES:DI == 07E0:XXXX)
mov ax,WORD [es:di+1ah] ; Get start cluster
push ax ; Save start cluster
push WORD 800h ; Put 800h on the stack and load it
pop es ; Into ES so that we load the cluster at 0000:8000
call ReadCluster ; Read the cluster
pop ax ; Restore start cluster of FreeLoader
; Save the addresses of needed functions so
; the helper code will know where to call them.
mov WORD [BYTE bp-ReadSectorsOffset],ReadSectors ; Save the address of ReadSectors
mov WORD [BYTE bp-ReadClusterOffset],ReadCluster ; Save the address of ReadCluster
mov WORD [BYTE bp-PutCharsOffset],PutChars ; Save the address of PutChars
; Now AX has start cluster of FreeLoader and we
; have loaded the helper code in the first 512 bytes
; of FreeLoader to 0000:8000. Now transfer control
; to the helper code. Skip the first three bytes
; because they contain a jump instruction to skip
; over the helper code in the FreeLoader image.
;jmp 0000:8003h
jmp 8003h
; Displays an error message
; And reboots
ErrBoot:
mov si,msgFreeLdr ; FreeLdr not found message
call PutChars ; Display it
Reboot:
mov si,msgAnyKey ; Press any key message
call PutChars ; Display it
xor ax,ax
int 16h ; Wait for a keypress
int 19h ; Reboot
PutChars:
lodsb
or al,al
jz short Done
mov ah,0eh
mov bx,07h
int 10h
jmp short PutChars
Done:
retn
; Displays a bad boot message
; And reboots
BadBoot:
mov si,msgDiskError ; Bad boot disk message
call PutChars ; Display it
jmp short Reboot
; Reads cluster number in AX into [ES:0000]
ReadCluster:
; StartSector = ((Cluster - 2) * SectorsPerCluster) + ReservedSectors + HiddenSectors;
dec ax ; Adjust start cluster by 2
dec ax ; Because the data area starts on cluster 2
xor ch,ch
mov cl,BYTE [BYTE bp+SectsPerCluster]
mul cx ; Times sectors per cluster
add ax,[BYTE bp-DataAreaStartLow] ; Add start of data area
adc dx,[BYTE bp-DataAreaStartHigh] ; Now we have DX:AX with the logical start sector of OSLOADER.SYS
xor bx,bx ; We will load it to [ES:0000], ES loaded before function call
;mov cl,BYTE [BYTE bp+SectsPerCluster]; Sectors per cluster still in CX
;call ReadSectors
;ret
; Reads logical sectors into [ES:BX]
; DX:AX has logical sector number to read
; CX has number of sectors to read
ReadSectors:
; We can't just check if the start sector is
; in the BIOS CHS range. We have to check if
; the start sector + length is in that range.
pusha
dec cx
add ax,cx
adc dx,byte 0
cmp dx,WORD [BYTE bp-BiosCHSDriveSizeHigh] ; Check if they are reading a sector within CHS range
ja ReadSectorsLBA ; No - go to the LBA routine
jb ReadSectorsCHS ; Yes - go to the old CHS routine
cmp ax,WORD [BYTE bp-BiosCHSDriveSizeLow] ; Check if they are reading a sector within CHS range
jbe ReadSectorsCHS ; Yes - go to the old CHS routine
ReadSectorsLBA:
popa
ReadSectorsLBALoop:
pusha ; Save logical sector number & sector count
o32 push byte 0
push dx ; Put 64-bit logical
push ax ; block address on stack
push es ; Put transfer segment on stack
push bx ; Put transfer offset on stack
push byte 1 ; Set transfer count to 1 sector
push byte 0x10 ; Set size of packet to 10h
mov si,sp ; Setup disk address packet on stack
; We are so totally out of space here that I am forced to
; comment out this very beautifully written piece of code
; It would have been nice to have had this check...
;CheckInt13hExtensions: ; Now make sure this computer supports extended reads
; mov ah,0x41 ; AH = 41h
; mov bx,0x55aa ; BX = 55AAh
; mov dl,[BYTE bp+BootDrive] ; DL = drive (80h-FFh)
; int 13h ; IBM/MS INT 13 Extensions - INSTALLATION CHECK
; jc PrintDiskError ; CF set on error (extensions not supported)
; cmp bx,0xaa55 ; BX = AA55h if installed
; jne PrintDiskError
; test cl,1 ; CX = API subset support bitmap
; jz PrintDiskError ; Bit 0, extended disk access functions (AH=42h-44h,47h,48h) supported
; Good, we're here so the computer supports LBA disk access
; So finish the extended read
mov dl,[BYTE bp+BootDrive] ; Drive number
mov ah,42h ; Int 13h, AH = 42h - Extended Read
int 13h ; Call BIOS
jc BadBoot ; If the read failed then abort
add sp,byte 0x10 ; Remove disk address packet from stack
popa ; Restore sector count & logical sector number
inc ax ; Increment Sector to Read
adc dx,byte 0
push bx
mov bx,es
add bx,byte 20h ; Increment read buffer for next sector
mov es,bx
pop bx
loop ReadSectorsLBALoop ; Read next sector
ret
; Reads logical sectors into [ES:BX]
; DX:AX has logical sector number to read
; CX has number of sectors to read
; CarryFlag set on error
ReadSectorsCHS:
popa
ReadSectorsCHSLoop:
pusha
xchg ax,cx
xchg ax,dx
xor dx,dx
div WORD [BYTE bp+SectorsPerTrack]
xchg ax,cx
div WORD [BYTE bp+SectorsPerTrack] ; Divide logical by SectorsPerTrack
inc dx ; Sectors numbering starts at 1 not 0
xchg cx,dx
div WORD [BYTE bp+NumberOfHeads] ; Number of heads
mov dh,dl ; Head to DH, drive to DL
mov dl,[BYTE bp+BootDrive] ; Drive number
mov ch,al ; Cylinder in CX
ror ah,2 ; Low 8 bits of cylinder in CH, high 2 bits
; in CL shifted to bits 6 & 7
or cl,ah ; Or with sector number
mov ax,0201h
int 13h ; DISK - READ SECTORS INTO MEMORY
; AL = number of sectors to read, CH = track, CL = sector
; DH = head, DL = drive, ES:BX -> buffer to fill
; Return: CF set on error, AH = status (see AH=01h), AL = number of sectors read
jc BadBoot
popa
inc ax ;Increment Sector to Read
jnz NoCarryCHS
inc dx
NoCarryCHS:
push bx
mov bx,es
add bx,byte 20h
mov es,bx
pop bx
; Increment read buffer for next sector
loop ReadSectorsCHSLoop ; Read next sector
ret
msgDiskError db 'Disk error',0dh,0ah,0
msgFreeLdr db 'freeldr.sys not found',0dh,0ah,0
; Sorry, need the space...
;msgAnyKey db 'Press any key to restart',0dh,0ah,0
msgAnyKey db 'Press any key',0dh,0ah,0
filename db 'FREELDR SYS'
times 509-($-$$) db 0 ; Pad to 509 bytes
BootPartition:
db 0
BootSignature:
dw 0aa55h ; BootSector signature

View File

@@ -1,505 +0,0 @@
; FAT32.ASM
; FAT32 Boot Sector
; Copyright (c) 1998, 2000, 2001, 2002 Brian Palmer
org 7c00h
segment .text
bits 16
start:
jmp short main
nop
OEMName db 'FrLdr1.0'
BytesPerSector dw 512
SectsPerCluster db 0
ReservedSectors dw 32
NumberOfFats db 2
MaxRootEntries dw 0 ; Always zero for FAT32 volumes
TotalSectors dw 0 ; Always zero for FAT32 volumes
MediaDescriptor db 0f8h
SectorsPerFat dw 0 ; Always zero for FAT32 volumes
SectorsPerTrack dw 0
NumberOfHeads dw 0
HiddenSectors dd 0
TotalSectorsBig dd 0
; FAT32 Inserted Info
SectorsPerFatBig dd 0
ExtendedFlags dw 0
FSVersion dw 0
RootDirStartCluster dd 0
FSInfoSector dw 0
BackupBootSector dw 6
Reserved1 times 12 db 0
; End FAT32 Inserted Info
BootDrive db 0
Reserved db 0
ExtendSig db 29h
SerialNumber dd 00000000h
VolumeLabel db 'NO NAME '
FileSystem db 'FAT32 '
main:
xor ax,ax ; Setup segment registers
mov ds,ax ; Make DS correct
mov es,ax ; Make ES correct
mov ss,ax ; Make SS correct
mov bp,7c00h
mov sp,7c00h ; Setup a stack
cmp BYTE [BYTE bp+BootDrive],BYTE 0xff ; If they have specified a boot drive then use it
jne CheckSectorsPerFat
mov [BYTE bp+BootDrive],dl ; Save the boot drive
CheckSectorsPerFat:
cmp WORD [BYTE bp+SectorsPerFat],byte 0x00 ; Check the old 16-bit value of SectorsPerFat
jnz CheckFailed ; If it is non-zero then exit with an error
CheckTotalSectors: ; Check the old 16-bit value of TotalSectors & MaxRootEntries
cmp DWORD [BYTE bp+MaxRootEntries],byte 0x00; by comparing the DWORD at offset MaxRootEntries to zero
jnz CheckFailed ; If it is non-zero then exit with an error
CheckFileSystemVersion:
cmp WORD [BYTE bp+FSVersion],byte 0x00 ; Check the file system version word
jna GetDriveParameters ; It is zero, so continue
CheckFailed:
jmp PrintFileSystemError ; If it is not zero then exit with an error
GetDriveParameters:
mov ax,0800h
mov dl,[BYTE bp+BootDrive] ; Get boot drive in dl
int 13h ; Request drive parameters from the bios
jnc CalcDriveSize ; If the call succeeded then calculate the drive size
; If we get here then the call to the BIOS failed
; so just set CHS equal to the maximum addressable
; size
mov cx,0ffffh
mov dh,cl
CalcDriveSize:
; Now that we have the drive geometry
; lets calculate the drive size
mov bl,ch ; Put the low 8-bits of the cylinder count into BL
mov bh,cl ; Put the high 2-bits in BH
shr bh,6 ; Shift them into position, now BX contains the cylinder count
and cl,3fh ; Mask off cylinder bits from sector count
; CL now contains sectors per track and DH contains head count
movzx eax,dh ; Move the heads into EAX
movzx ebx,bx ; Move the cylinders into EBX
movzx ecx,cl ; Move the sectors per track into ECX
inc eax ; Make it one based because the bios returns it zero based
inc ebx ; Make the cylinder count one based also
mul ecx ; Multiply heads with the sectors per track, result in edx:eax
mul ebx ; Multiply the cylinders with (heads * sectors) [stored in edx:eax already]
; We now have the total number of sectors as reported
; by the bios in eax, so store it in our variable
mov [BiosCHSDriveSize],eax
LoadExtraBootCode:
; First we have to load our extra boot code at
; sector 14 into memory at [0000:7e00h]
mov eax,0eh
add eax,DWORD [BYTE bp+HiddenSectors] ; Add the number of hidden sectors
mov cx,1
xor bx,bx
mov es,bx ; Read sector to [0000:7e00h]
mov bx,7e00h
call ReadSectors
jmp StartSearch
; Reads logical sectors into [ES:BX]
; EAX has logical sector number to read
; CX has number of sectors to read
ReadSectors:
cmp eax,DWORD [BiosCHSDriveSize] ; Check if they are reading a sector outside CHS range
jae ReadSectorsLBA ; Yes - go to the LBA routine
; If at all possible we want to use LBA routines because
; They are optimized to read more than 1 sector per read
pushad ; Save logical sector number & sector count
CheckInt13hExtensions: ; Now check if this computer supports extended reads
mov ah,0x41 ; AH = 41h
mov bx,0x55aa ; BX = 55AAh
mov dl,[BYTE bp+BootDrive] ; DL = drive (80h-FFh)
int 13h ; IBM/MS INT 13 Extensions - INSTALLATION CHECK
jc ReadSectorsCHS ; CF set on error (extensions not supported)
cmp bx,0xaa55 ; BX = AA55h if installed
jne ReadSectorsCHS
test cl,1 ; CX = API subset support bitmap
jz ReadSectorsCHS ; Bit 0, extended disk access functions (AH=42h-44h,47h,48h) supported
popad ; Restore sector count & logical sector number
ReadSectorsLBA:
pushad ; Save logical sector number & sector count
cmp cx,64 ; Since the LBA calls only support 0x7F sectors at a time we will limit ourselves to 64
jbe ReadSectorsSetupDiskAddressPacket ; If we are reading less than 65 sectors then just do the read
mov cx,64 ; Otherwise read only 64 sectors on this loop iteration
ReadSectorsSetupDiskAddressPacket:
mov [LBASectorsRead],cx
o32 push byte 0
push eax ; Put 64-bit logical block address on stack
push es ; Put transfer segment on stack
push bx ; Put transfer offset on stack
push cx ; Set transfer count
push byte 0x10 ; Set size of packet to 10h
mov si,sp ; Setup disk address packet on stack
mov dl,[BYTE bp+BootDrive] ; Drive number
mov ah,42h ; Int 13h, AH = 42h - Extended Read
int 13h ; Call BIOS
jc PrintDiskError ; If the read failed then abort
add sp,byte 0x10 ; Remove disk address packet from stack
popad ; Restore sector count & logical sector number
push bx
mov ebx,DWORD [LBASectorsRead]
add eax,ebx ; Increment sector to read
shl ebx,5
mov dx,es
add dx,bx ; Setup read buffer for next sector
mov es,dx
pop bx
sub cx,[LBASectorsRead]
jnz ReadSectorsLBA ; Read next sector
ret
LBASectorsRead:
dd 0
; Reads logical sectors into [ES:BX]
; EAX has logical sector number to read
; CX has number of sectors to read
ReadSectorsCHS:
popad ; Get logical sector number & sector count off stack
ReadSectorsCHSLoop:
pushad
xor edx,edx
movzx ecx,WORD [BYTE bp+SectorsPerTrack]
div ecx ; Divide logical by SectorsPerTrack
inc dl ; Sectors numbering starts at 1 not 0
mov cl,dl ; Sector in CL
mov edx,eax
shr edx,16
div WORD [BYTE bp+NumberOfHeads] ; Divide logical by number of heads
mov dh,dl ; Head in DH
mov dl,[BYTE bp+BootDrive] ; Drive number in DL
mov ch,al ; Cylinder in CX
ror ah,1 ; Low 8 bits of cylinder in CH, high 2 bits
ror ah,1 ; in CL shifted to bits 6 & 7
or cl,ah ; Or with sector number
mov ax,0201h
int 13h ; DISK - READ SECTORS INTO MEMORY
; AL = number of sectors to read, CH = track, CL = sector
; DH = head, DL = drive, ES:BX -> buffer to fill
; Return: CF set on error, AH = status (see AH=01h), AL = number of sectors read
jc PrintDiskError ; If the read failed then abort
popad
inc eax ; Increment Sector to Read
mov dx,es
add dx,byte 20h ; Increment read buffer for next sector
mov es,dx
loop ReadSectorsCHSLoop ; Read next sector
ret
; Displays a disk error message
; And reboots
PrintDiskError:
mov si,msgDiskError ; Bad boot disk message
call PutChars ; Display it
jmp Reboot
; Displays a file system error message
; And reboots
PrintFileSystemError:
mov si,msgFileSystemError ; FreeLdr not found message
call PutChars ; Display it
Reboot:
mov si,msgAnyKey ; Press any key message
call PutChars ; Display it
xor ax,ax
int 16h ; Wait for a keypress
int 19h ; Reboot
PutChars:
lodsb
or al,al
jz short Done
mov ah,0eh
mov bx,07h
int 10h
jmp short PutChars
Done:
retn
BiosCHSDriveSize dd 0
msgDiskError db 'Disk error',0dh,0ah,0
msgFileSystemError db 'File system error',0dh,0ah,0
msgAnyKey db 'Press any key to restart',0dh,0ah,0
times 509-($-$$) db 0 ; Pad to 509 bytes
BootPartition:
db 0
BootSignature:
dw 0aa55h ; BootSector signature
; End of bootsector
;
; Now starts the extra boot code that we will store
; at sector 14 on a FAT32 volume
;
; To remain multi-boot compatible with other operating
; systems we must not overwrite anything other than
; the bootsector which means we will have to use
; a different sector like 14 to store our extra boot code
StartSearch:
; Now we must get the first cluster of the root directory
mov eax,DWORD [BYTE bp+RootDirStartCluster]
cmp eax,0ffffff8h ; Check to see if this is the last cluster in the chain
jb ContinueSearch ; If not continue, if so then we didn't find freeldr.sys
jmp PrintFileNotFound
ContinueSearch:
mov bx,2000h
mov es,bx ; Read cluster to [2000:0000h]
call ReadCluster ; Read the cluster
; Now we have to find our way through the root directory to
; The OSLOADER.SYS file
xor bx,bx
mov bl,[BYTE bp+SectsPerCluster]
shl bx,4 ; BX = BX * 512 / 32
mov ax,2000h ; We loaded at 2000:0000
mov es,ax
xor di,di
mov si,filename
mov cx,11
rep cmpsb ; Compare filenames
jz FoundFile ; If same we found it
dec bx
jnz FindFile
jmp PrintFileNotFound
FindFile:
mov ax,es ; We didn't find it in the previous dir entry
add ax,2 ; So lets move to the next one
mov es,ax ; And search again
xor di,di
mov si,filename
mov cx,11
rep cmpsb ; Compare filenames
jz FoundFile ; If same we found it
dec bx ; Keep searching till we run out of dir entries
jnz FindFile ; Last entry?
; Get the next root dir cluster and try again until we run out of clusters
mov eax,DWORD [BYTE bp+RootDirStartCluster]
call GetFatEntry
mov [BYTE bp+RootDirStartCluster],eax
jmp StartSearch
FoundFile:
; Display "Loading FreeLoader..." message
mov si,msgLoading ; Loading message
call PutChars ; Display it
xor di,di ; ES:DI has dir entry
xor dx,dx
mov ax,WORD [es:di+14h] ; Get start cluster high word
shl eax,16
mov ax,WORD [es:di+1ah] ; Get start cluster low word
CheckStartCluster:
cmp eax,2 ; Check and see if the start cluster starts at cluster 2 or above
jnb CheckEndCluster ; If so then continue
jmp PrintFileSystemError ; If not exit with error
CheckEndCluster:
cmp eax,0ffffff8h ; Check and see if the start cluster is and end of cluster chain indicator
jb InitializeLoadSegment ; If not then continue
jmp PrintFileSystemError ; If so exit with error
InitializeLoadSegment:
mov bx,800h
mov es,bx
LoadFile:
cmp eax,0ffffff8h ; Check to see if this is the last cluster in the chain
jae LoadFileDone ; If so continue, if not then read the next one
push eax
xor bx,bx ; Load ROSLDR starting at 0000:8000h
push es
call ReadCluster
pop es
xor bx,bx
mov bl,[BYTE bp+SectsPerCluster]
shl bx,5 ; BX = BX * 512 / 16
mov ax,es ; Increment the load address by
add ax,bx ; The size of a cluster
mov es,ax
pop eax
push es
call GetFatEntry ; Get the next entry
pop es
jmp LoadFile ; Load the next cluster (if any)
LoadFileDone:
mov dl,[BYTE bp+BootDrive] ; Load boot drive into DL
mov dh,[BootPartition] ; Load boot partition into DH
xor ax,ax
push ax ; We loaded at 0000:8000
push WORD 8000h ; We will do a far return to 0000:8000h
retf ; Transfer control to ROSLDR
; Returns the FAT entry for a given cluster number
; On entry EAX has cluster number
; On return EAX has FAT entry for that cluster
GetFatEntry:
shl eax,2 ; EAX = EAX * 4 (since FAT32 entries are 4 bytes)
mov ecx,eax ; Save this for later in ECX
xor edx,edx
movzx ebx,WORD [BYTE bp+BytesPerSector]
push ebx
div ebx ; FAT Sector Number = EAX / BytesPerSector
movzx ebx,WORD [BYTE bp+ReservedSectors]
add eax,ebx ; FAT Sector Number += ReservedSectors
mov ebx,DWORD [BYTE bp+HiddenSectors]
add eax,ebx ; FAT Sector Number += HiddenSectors
pop ebx
dec ebx
and ecx,ebx ; FAT Offset Within Sector = ECX % BytesPerSector
; EAX holds logical FAT sector number
; ECX holds FAT entry offset
; Now we have to check the extended flags
; to see which FAT is the active one
; and use it, or if they are mirrored then
; no worries
movzx ebx,WORD [BYTE bp+ExtendedFlags] ; Get extended flags and put into ebx
and bx,0x0f ; Mask off upper 8 bits, now we have active fat in bl
jz LoadFatSector ; If fat is mirrored then skip fat calcs
cmp bl,[BYTE bp+NumberOfFats] ; Compare bl to number of fats
jb GetActiveFatOffset
jmp PrintFileSystemError ; If bl is bigger than numfats exit with error
GetActiveFatOffset:
push eax ; Save logical FAT sector number
mov eax,[BYTE bp+SectorsPerFatBig] ; Get the number of sectors occupied by one fat in eax
mul ebx ; Multiplied by the active FAT index we have in ebx
pop edx ; Get logical FAT sector number
add eax,edx ; Add the current FAT sector offset
LoadFatSector:
push ecx
; EAX holds logical FAT sector number
; Check if we have already loaded it
cmp eax,DWORD [FatSectorInCache]
je LoadFatSectorAlreadyLoaded
mov DWORD [FatSectorInCache],eax
mov bx,7000h
mov es,bx
xor bx,bx ; We will load it to [7000:0000h]
mov cx,1
call ReadSectors
LoadFatSectorAlreadyLoaded:
mov bx,7000h
mov es,bx
pop ecx
mov eax,DWORD [es:ecx] ; Get FAT entry
and eax,0fffffffh ; Mask off reserved bits
ret
FatSectorInCache: ; This variable tells us which sector we currently have in memory
dd 0ffffffffh ; There is no need to re-read the same sector if we don't have to
; Reads cluster number in EAX into [ES:0000]
ReadCluster:
; StartSector = ((Cluster - 2) * SectorsPerCluster) + ReservedSectors + HiddenSectors;
dec eax
dec eax
xor edx,edx
movzx ebx,BYTE [BYTE bp+SectsPerCluster]
mul ebx
push eax
xor edx,edx
movzx eax,BYTE [BYTE bp+NumberOfFats]
mul DWORD [BYTE bp+SectorsPerFatBig]
movzx ebx,WORD [BYTE bp+ReservedSectors]
add eax,ebx
add eax,DWORD [BYTE bp+HiddenSectors]
pop ebx
add eax,ebx ; EAX now contains the logical sector number of the cluster
xor bx,bx ; We will load it to [ES:0000], ES loaded before function call
movzx cx,BYTE [BYTE bp+SectsPerCluster]
call ReadSectors
ret
; Displays a file not found error message
; And reboots
PrintFileNotFound:
mov si,msgFreeLdr ; FreeLdr not found message
call PutChars ; Display it
mov si,msgAnyKey ; Press any key message
call PutChars ; Display it
jmp Reboot
msgFreeLdr db 'freeldr.sys not found',0dh,0ah,0
filename db 'FREELDR SYS'
msgLoading db 'Loading FreeLoader...',0dh,0ah,0
times 1022-($-$$) db 0 ; Pad to 1022 bytes
dw 0aa55h ; BootSector signature

File diff suppressed because it is too large Load Diff

View File

@@ -1,466 +0,0 @@
;
; Win2k FAT32 Boot Sector
;
; Brian Palmer <brianp@sginet.com>
;
;
; The BP register is initialized to 0x7c00, the start of
; the boot sector. The SP register is initialized to
; 0x7bf4, leaving 12 bytes of data storage space above
; the stack.
;
; The DWORD that gets stored at 0x7bf4 is 0xffffffff ??
;
; The DWORD that gets stored at 0x7bf8 is the count of
; total sectors of the volume, calculated from the BPB.
;
; The DWORD that gets stored at 0x7bfc is the logical
; sector number of the start of the data area.
;
org 7c00h
segment .text
bits 16
start:
jmp short main
nop
OEMName db 'MSWIN4.0'
BytesPerSector dw 512
SectsPerCluster db 1
ReservedSectors dw 1
NumberOfFats db 2
MaxRootEntries dw 0 ;512 - Always zero for FAT32 volumes
TotalSectors dw 0 ;2880 - Always zero for FAT32 volumes
MediaDescriptor db 0f8h
SectorsPerFat dw 0 ;9 - Always zero for FAT32 volumes
SectorsPerTrack dw 18
NumberOfHeads dw 2
HiddenSectors dd 0
TotalSectorsBig dd 0
; FAT32 Inserted Info
SectorsPerFatBig dd 0
ExtendedFlags dw 0
FSVersion dw 0
RootDirStartCluster dd 0
FSInfoSector dw 0
BackupBootSector dw 6
Reserved1 times 12 db 0
; End FAT32 Inserted Info
BootDrive db 80h
Reserved db 0
ExtendSig db 29h
SerialNumber dd 00000000h
VolumeLabel db 'NO NAME '
FileSystem db 'FAT32 '
main:
00007C5A 33C9 xor cx,cx
00007C5C 8ED1 mov ss,cx ; Setup the stack
00007C5E BCF47B mov sp,0x7bf4 ; Give us 12 bytes of space above the stack
00007C61 8EC1 mov es,cx
00007C63 8ED9 mov ds,cx
00007C65 BD007C mov bp,0x7c00
00007C68 884E02 mov [bp+0x2],cl ; Zero out the nop instruction?? (3rd byte of the boot sector)
00007C6B 8A5640 mov dl,[bp+BootDrive]
00007C6E B408 mov ah,0x8
00007C70 CD13 int 0x13 ; Int 13, func 8 - Get Drive Parameters
00007C72 7305 jnc drive_param_ok ; If no error jmp
drive_param_error:
00007C74 B9FFFF mov cx,0xffff ; We couldn't determine the drive parameters
00007C77 8AF1 mov dh,cl ; So just set the CHS to 0xff
drive_param_ok:
00007C79 660FB6C6 movzx eax,dh ; Store the number of heads in eax
00007C7D 40 inc ax ; Make it one-based because the bios returns it zero-based
00007C7E 660FB6D1 movzx edx,cl ; Store the sectors per track in edx
00007C82 80E23F and dl,0x3f ; Mask off the cylinder bits
00007C85 F7E2 mul dx ; Multiply the sectors per track with the heads, result in dx:ax
00007C87 86CD xchg cl,ch ; Switch the cylinder with the sectors
00007C89 C0ED06 shr ch,0x6 ; Move the top two cylinder bits down where they should be
00007C8C 41 inc cx ; Make it one-based because the bios returns it zero-based
00007C8D 660FB7C9 movzx ecx,cx
00007C91 66F7E1 mul ecx ; Multiply the cylinders with (heads * sectors) [stored in dx:ax already]
00007C94 668946F8 mov [bp-0x8],eax ; This value is the number of total sectors on the disk, so save it for later
00007C98 837E1600 cmp word [bp+TotalSectors],byte +0x0 ; Check the old 16-bit value of TotalSectors
00007C9C 7538 jnz print_ntldr_error_message ; If it is non-zero then exit with an error
00007C9E 837E2A00 cmp word [bp+FSVersion],byte +0x0 ; Check the file system version word
00007CA2 7732 ja print_ntldr_error_message ; If it is not zero then exit with an error
;
; We are now ready to load our second sector of boot code
; But first, a bit of undocumented information about how
; Win2k stores it's second sector of boot code.
;
; The FAT32 filesystem was designed so that you can store
; multiple sectors of boot code. The boot sector of a FAT32
; volume is actually three sectors long. Microsoft extended
; the BPB so much that you can't fit enough code in the
; boot sector to make it work. So they extended it. Sector 0
; is the traditional boot sector, sector 1 is the FSInfo sector,
; and sector 2 is used to store extra boot code to make up
; for the lost space the BPB takes.
;
; Now this creates an interesting problem. Suppose for example
; that the user has Win98 and Win2k installed. The Win2k
; boot sector is stored at sector 0 and the Win98 boot sector is
; stored as BOOTSECT.DOS on the file system. Now if Win2k were
; to store it's second sector of boot code in sector 2 like
; the fat spec says to do then when you try to dual boot back
; to Win98 the Win98 boot sector will load Win2k's second
; sector of boot code. Understand? ;-)
;
; To get around this problem Win2k stores it's second sector
; of boot code elsewhere. This sector is always stored at sector 13
; on the file system. Now don't ask me what happens when you don't
; have enough reserved sectors to store it, but I've never seen a
; FAT32 volume that didn't have at least 32 reserved sectors.
;
00007CA4 668B461C mov eax,[bp+HiddenSectors] ; Get the count of hidden sectors
00007CA8 6683C00C add eax,byte +0xc ; Add 12 to that value so that we are loading the 13th sector of the volume
00007CAC BB0080 mov bx,0x8000 ; Read the sector to address 0x8000
00007CAF B90100 mov cx,0x1 ; Read just one sector
00007CB2 E82B00 call read_sectors ; Read it
00007CB5 E94803 jmp 0x8000 ; Jump to the next sector of boot code
print_disk_error_message:
00007CB8 A0FA7D mov al,[DISK_ERR_offset_from_0x7d00]
putchars:
00007CBB B47D mov ah,0x7d
00007CBD 8BF0 mov si,ax
get_another_char:
00007CBF AC lodsb
00007CC0 84C0 test al,al
00007CC2 7417 jz reboot
00007CC4 3CFF cmp al,0xff
00007CC6 7409 jz print_reboot_message
00007CC8 B40E mov ah,0xe
00007CCA BB0700 mov bx,0x7
00007CCD CD10 int 0x10
00007CCF EBEE jmp short get_another_char
print_reboot_message:
00007CD1 A0FB7D mov al,[RESTART_ERR_offset_from_0x7d00]
00007CD4 EBE5 jmp short putchars
print_ntldr_error_message:
00007CD6 A0F97D mov al,[NTLDR_ERR_offset_from_0x7d00]
00007CD9 EBE0 jmp short putchars
reboot:
00007CDB 98 cbw
00007CDC CD16 int 0x16
00007CDE CD19 int 0x19
read_sectors:
00007CE0 6660 pushad
00007CE2 663B46F8 cmp eax,[bp-0x8]
00007CE6 0F824A00 jc near 0x7d34
00007CEA 666A00 o32 push byte +0x0
00007CED 6650 push eax
00007CEF 06 push es
00007CF0 53 push bx
00007CF1 666810000100 push dword 0x10010
00007CF7 807E0200 cmp byte [bp+0x2],0x0
00007CFB 0F852000 jnz near 0x7d1f
00007CFF B441 mov ah,0x41
00007D01 BBAA55 mov bx,0x55aa
00007D04 8A5640 mov dl,[bp+BootDrive]
00007D07 CD13 int 0x13
00007D09 0F821C00 jc near 0x7d29
00007D0D 81FB55AA cmp bx,0xaa55
00007D11 0F851400 jnz near 0x7d29
00007D15 F6C101 test cl,0x1
00007D18 0F840D00 jz near 0x7d29
00007D1C FE4602 inc byte [bp+0x2]
00007D1F B442 mov ah,0x42
00007D21 8A5640 mov dl,[bp+BootDrive]
00007D24 8BF4 mov si,sp
00007D26 CD13 int 0x13
00007D28 B0F9 mov al,0xf9
00007D2A 6658 pop eax
00007D2C 6658 pop eax
00007D2E 6658 pop eax
00007D30 6658 pop eax
00007D32 EB2A jmp short 0x7d5e
00007D34 6633D2 xor edx,edx
00007D37 660FB74E18 movzx ecx,word [bp+SectorsPerTrack]
00007D3C 66F7F1 div ecx
00007D3F FEC2 inc dl
00007D41 8ACA mov cl,dl
00007D43 668BD0 mov edx,eax
00007D46 66C1EA10 shr edx,0x10
00007D4A F7761A div word [bp+NumberOfHeads]
00007D4D 86D6 xchg dl,dh
00007D4F 8A5640 mov dl,[bp+BootDrive]
00007D52 8AE8 mov ch,al
00007D54 C0E406 shl ah,0x6
00007D57 0ACC or cl,ah
00007D59 B80102 mov ax,0x201
00007D5C CD13 int 0x13
00007D5E 6661 popad
00007D60 0F8254FF jc near print_disk_error_message
00007D64 81C30002 add bx,0x200
00007D68 6640 inc eax
00007D6A 49 dec cx
00007D6B 0F8571FF jnz near read_sectors
00007D6F C3 ret
NTLDR db 'NTLDR '
filler times 49 db 0
NTLDR_ERR db 0dh,0ah,'NTLDR is missing',0ffh
DISK_ERR db 0dh,0ah,'Disk error',0ffh
RESTART_ERR db 0dh,0ah,'Press any key to restart',0dh,0ah
more_filler times 16 db 0
NTLDR_offset_from_0x7d00 db 0
NTLDR_ERR_offset_from_0x7d00 db 0ach
DISK_ERR_offset_from_0x7d00 db 0bfh
RESTART_ERR_offset_from_0x7d00 db 0cch
dw 0
dw 0aa55h
;
; And that ends the code that makes up the traditional boot sector
; From here on out is a disassembly of the extra sector of boot
; code required for a FAT32 volume. Win2k stores this code at
; sector 13 on the file system.
;
00008000 660FB64610 movzx eax,byte [bp+NumberOfFats] ; Put the number of fats into eax
00008005 668B4E24 mov ecx,[bp+SectorsPerFatBig] ; Put the count of sectors per fat into ecx
00008009 66F7E1 mul ecx ; Multiply them, edx:eax = (eax * ecx)
0000800C 6603461C add eax,[bp+HiddenSectors] ; Add the hidden sectors to eax
00008010 660FB7560E movzx edx,word [bp+ReservedSectors] ; Put the count of reserved sectors into edx
00008015 6603C2 add eax,edx ; Add it to eax
00008018 668946FC mov [bp-0x4],eax ; eax now contains the start of the data area, so save it for later
0000801C 66C746F4FFFFFFFF mov dword [bp-0xc],0xffffffff ; Save 0xffffffff for later??
00008024 668B462C mov eax,[bp+RootDirStartCluster] ; Put the starting cluster of the root directory into eax
00008028 6683F802 cmp eax,byte +0x2 ; Check and see if the root directory starts at cluster 2 or above
0000802C 0F82A6FC jc near print_ntldr_error_message ; If not exit with error
00008030 663DF8FFFF0F cmp eax,0xffffff8 ; Check and see if the root directory start cluster is and end of cluster chain indicator
00008036 0F839CFC jnc near print_ntldr_error_message ; If so exit with error
search_root_directory_cluster:
0000803A 6650 push eax ; Save root directory start cluster on stack
0000803C 6683E802 sub eax,byte +0x2 ; Adjust it because the first two fat entries are unused so the third entry marks the first data area cluster
00008040 660FB65E0D movzx ebx,byte [bp+SectsPerCluster] ; Put the number of sectors per cluster in ebx
00008045 8BF3 mov si,bx ; Now store it also in si register
00008047 66F7E3 mul ebx ; Multiply sectors per cluster with root directory start cluster
0000804A 660346FC add eax,[bp-0x4] ; Add the start sector of the data area
read_directory_sector:
0000804E BB0082 mov bx,0x8200 ; We now have the start sector of the root directory, so load it to 0x8200
00008051 8BFB mov di,bx ; Put the address of the root directory sector in di also
00008053 B90100 mov cx,0x1 ; Read one sector
00008056 E887FC call read_sectors ; Perform the read
check_entry_for_ntldr:
00008059 382D cmp [di],ch ; Check the first byte of the root directory entry for zero
0000805B 741E jz ntldr_not_found ; If so then NTLDR is missing so exit with error
0000805D B10B mov cl,0xb ; Put the value 11 in cl so we can compare an 11-byte filename
0000805F 56 push si ; Save si (which contains the number of sectors per cluster)
00008060 BE707D mov si,NTLDR ;0x7d70 ; Check and see if "NTLDR" is the first file entry
00008063 F3A6 repe cmpsb ; Do the compare
00008065 5E pop si ; Restore sectors per cluster into si
00008066 741B jz ntldr_found ; If we found it then continue, else check next entry
00008068 03F9 add di,cx ; Add 0 to di? the next entry is 0x15 bytes away
0000806A 83C715 add di,byte +0x15 ; Add 0x15 to di
0000806D 3BFB cmp di,bx ; Check to see if we have reached the end of our sector we loaded, read_sectors sets bx = end address of data loaded
0000806F 72E8 jc check_entry_for_ntldr ; If we haven't reached the end then check the next entry
00008071 4E dec si ; decrement si, si holds the number of sectors per cluster
00008072 75DA jnz read_directory_sector ; If it's not zero then search the next sector for NTLDR
00008074 6658 pop eax ; If we got here that means we didn't find NTLDR in the previous root directory cluster, so restore eax with the start cluster
00008076 E86500 call get_fat_entry ; Get the next cluster in the fat chain
00008079 72BF jc search_root_directory_cluster ; If we reached end-of-file marker then don't jump, otherwise continue search
ntldr_not_found:
0000807B 83C404 add sp,byte +0x4
0000807E E955FC jmp print_ntldr_error_message
ntldr_load_segment_address dw 0x2000
ntldr_found:
00008083 83C404 add sp,byte +0x4 ; Adjust stack to remove root directory start cluster
00008086 8B7509 mov si,[di+0x9] ; Put start cluster high word in si
00008089 8B7D0F mov di,[di+0xf] ; Put start cluster low word in di
0000808C 8BC6 mov ax,si ; Put high word in ax
0000808E 66C1E010 shl eax,0x10 ; Shift it into position
00008092 8BC7 mov ax,di ; Put low word in ax, now eax contains start cluster of NTLDR
00008094 6683F802 cmp eax,byte +0x2 ; Check and see if the start cluster of NTLDR starts at cluster 2 or above
00008098 0F823AFC jc near print_ntldr_error_message ; If not exit with error
0000809C 663DF8FFFF0F cmp eax,0xffffff8 ; Check and see if the start cluster of NTLDR is and end of cluster chain indicator
000080A2 0F8330FC jnc near print_ntldr_error_message ; If so exit with error
load_next_ntldr_cluster:
000080A6 6650 push eax ; Save NTLDR start cluster for later
000080A8 6683E802 sub eax,byte +0x2 ; Adjust it because the first two fat entries are unused so the third entry marks the first data area cluster
000080AC 660FB64E0D movzx ecx,byte [bp+SectsPerCluster] ; Put the sectors per cluster into ecx
000080B1 66F7E1 mul ecx ; Multiply sectors per cluster by the start cluster, we now have the logical start sector
000080B4 660346FC add eax,[bp-0x4] ; Add the start of the data area logical sector
000080B8 BB0000 mov bx,0x0 ; Load NTLDR to offset zero
000080BB 06 push es ; Save es
000080BC 8E068180 mov es,[ntldr_load_segment_address] ; Get the segment address to load NTLDR to
000080C0 E81DFC call read_sectors ; Load the first cluster
000080C3 07 pop es ; Restore es
000080C4 6658 pop eax ; Restore eax to NTLDR start cluster
000080C6 C1EB04 shr bx,0x4 ; bx contains the amount of data we transferred, so divide it by 16
000080C9 011E8180 add [ntldr_load_segment_address],bx ; Add that value to the segment
000080CD E80E00 call get_fat_entry ; Get the next cluster in eax
000080D0 0F830200 jnc near jump_to_ntldr ; If we have reached the end of file then lets get to NTLDR
000080D4 72D0 jc load_next_ntldr_cluster ; If not, then load another cluster
jump_to_ntldr:
000080D6 8A5640 mov dl,[bp+BootDrive] ; Put the boot drive in dl
000080D9 EA00000020 jmp 0x2000:0x0 ; Jump to NTLDR
get_fat_entry:
000080DE 66C1E002 shl eax,0x2 ; Multiply cluster by 4
000080E2 E81100 call load_fat_sector ; Load the fat sector
000080E5 26668B01 mov eax,[es:bx+di] ; Get the fat entry
000080E9 6625FFFFFF0F and eax,0xfffffff ; Mask off the most significant 4 bits
000080EF 663DF8FFFF0F cmp eax,0xffffff8 ; Compare it to end of file marker to set the flags correctly
000080F5 C3 ret ; Return to caller
load_fat_sector:
000080F6 BF007E mov di,0x7e00 ; We will load the fat sector to 0x7e00
000080F9 660FB74E0B movzx ecx,word [bp+SectsPerCluster] ; Get the sectors per cluster
000080FE 6633D2 xor edx,edx ; We will divide (cluster * 4) / sectorspercluster
00008101 66F7F1 div ecx ; eax is already set before we get to this routine
00008104 663B46F4 cmp eax,[bp-0xc] ; Compare eax to 0xffffffff (initially, we set this value later)
00008108 743A jz load_fat_sector_end ; If it is the same return
0000810A 668946F4 mov [bp-0xc],eax ; Update that value
0000810E 6603461C add eax,[bp+HiddenSectors] ; Add the hidden sectors
00008112 660FB74E0E movzx ecx,word [bp+ReservedSectors] ; Add the reserved sectors
00008117 6603C1 add eax,ecx ; To the hidden sectors + the value we computed earlier
0000811A 660FB75E28 movzx ebx,word [bp+ExtendedFlags] ; Get extended flags and put into ebx
0000811F 83E30F and bx,byte +0xf ; Mask off upper 8 bits
00008122 7416 jz load_fat_sector_into_memory ; If fat is mirrored then skip fat calcs
00008124 3A5E10 cmp bl,[bp+NumberOfFats] ; Compare bl to number of fats
00008127 0F83ABFB jnc near print_ntldr_error_message ; If bl is bigger than numfats exit with error
0000812B 52 push dx ; Save dx
0000812C 668BC8 mov ecx,eax ; Put the current fat sector offset into ecx
0000812F 668B4624 mov eax,[bp+SectorsPerFatBig] ; Get the number of sectors occupied by one fat
00008133 66F7E3 mul ebx ; Multiplied by the active fat index
00008136 6603C1 add eax,ecx ; Add the current fat sector offset
00008139 5A pop dx ; Restore dx
load_fat_sector_into_memory:
0000813A 52 push dx ; Save dx, what is so important in dx??
0000813B 8BDF mov bx,di ; Put 0x7e00 in bx
0000813D B90100 mov cx,0x1 ; Load one sector
00008140 E89DFB call read_sectors ; Perform the read
00008143 5A pop dx ; Restore dx
load_fat_sector_end:
00008144 8BDA mov bx,dx ; Put it into bx, what is this value??
00008146 C3 ret ; Return
00008147 0000 add [bx+si],al
00008149 0000 add [bx+si],al
0000814B 0000 add [bx+si],al
0000814D 0000 add [bx+si],al
0000814F 0000 add [bx+si],al
00008151 0000 add [bx+si],al
00008153 0000 add [bx+si],al
00008155 0000 add [bx+si],al
00008157 0000 add [bx+si],al
00008159 0000 add [bx+si],al
0000815B 0000 add [bx+si],al
0000815D 0000 add [bx+si],al
0000815F 0000 add [bx+si],al
00008161 0000 add [bx+si],al
00008163 0000 add [bx+si],al
00008165 0000 add [bx+si],al
00008167 0000 add [bx+si],al
00008169 0000 add [bx+si],al
0000816B 0000 add [bx+si],al
0000816D 0000 add [bx+si],al
0000816F 0000 add [bx+si],al
00008171 0000 add [bx+si],al
00008173 0000 add [bx+si],al
00008175 0000 add [bx+si],al
00008177 0000 add [bx+si],al
00008179 0000 add [bx+si],al
0000817B 0000 add [bx+si],al
0000817D 0000 add [bx+si],al
0000817F 0000 add [bx+si],al
00008181 0000 add [bx+si],al
00008183 0000 add [bx+si],al
00008185 0000 add [bx+si],al
00008187 0000 add [bx+si],al
00008189 0000 add [bx+si],al
0000818B 0000 add [bx+si],al
0000818D 0000 add [bx+si],al
0000818F 0000 add [bx+si],al
00008191 0000 add [bx+si],al
00008193 0000 add [bx+si],al
00008195 0000 add [bx+si],al
00008197 0000 add [bx+si],al
00008199 0000 add [bx+si],al
0000819B 0000 add [bx+si],al
0000819D 0000 add [bx+si],al
0000819F 0000 add [bx+si],al
000081A1 0000 add [bx+si],al
000081A3 0000 add [bx+si],al
000081A5 0000 add [bx+si],al
000081A7 0000 add [bx+si],al
000081A9 0000 add [bx+si],al
000081AB 0000 add [bx+si],al
000081AD 0000 add [bx+si],al
000081AF 0000 add [bx+si],al
000081B1 0000 add [bx+si],al
000081B3 0000 add [bx+si],al
000081B5 0000 add [bx+si],al
000081B7 0000 add [bx+si],al
000081B9 0000 add [bx+si],al
000081BB 0000 add [bx+si],al
000081BD 0000 add [bx+si],al
000081BF 0000 add [bx+si],al
000081C1 0000 add [bx+si],al
000081C3 0000 add [bx+si],al
000081C5 0000 add [bx+si],al
000081C7 0000 add [bx+si],al
000081C9 0000 add [bx+si],al
000081CB 0000 add [bx+si],al
000081CD 0000 add [bx+si],al
000081CF 0000 add [bx+si],al
000081D1 0000 add [bx+si],al
000081D3 0000 add [bx+si],al
000081D5 0000 add [bx+si],al
000081D7 0000 add [bx+si],al
000081D9 0000 add [bx+si],al
000081DB 0000 add [bx+si],al
000081DD 0000 add [bx+si],al
000081DF 0000 add [bx+si],al
000081E1 0000 add [bx+si],al
000081E3 0000 add [bx+si],al
000081E5 0000 add [bx+si],al
000081E7 0000 add [bx+si],al
000081E9 0000 add [bx+si],al
000081EB 0000 add [bx+si],al
000081ED 0000 add [bx+si],al
000081EF 0000 add [bx+si],al
000081F1 0000 add [bx+si],al
000081F3 0000 add [bx+si],al
000081F5 0000 add [bx+si],al
000081F7 0000 add [bx+si],al
000081F9 0000 add [bx+si],al
000081FB 0000 add [bx+si],al
000081FD 0055AA add [di-0x56],dl ; We can't forget the infamous boot signature

View File

@@ -1,249 +0,0 @@
;
; The BP register is initialized to 0x7c00, the start of
; the boot sector. The SP register is initialized to
; 0x7bf0, leaving 16 bytes of data storage space above
; the stack.
;
; The DWORD that gets stored at 0x7bfc is the logical
; sector number of the start of the data area.
;
; The DWORD that gets stored at 0x7bf8 is ????????
;
; The DWORD that gets stored at 0x7bf4 is ????????
;
; The DWORD that gets stored at 0x7bf0 is ????????
;
org 7c00h
segment .text
bits 16
start:
jmp short main
nop
OEMName db 'MSWIN4.0'
BytesPerSector dw 512
SectsPerCluster db 1
ReservedSectors dw 1
NumberOfFats db 2
MaxRootEntries dw 0 ;512 - Always zero for FAT32 volumes
TotalSectors dw 0 ;2880 - Always zero for FAT32 volumes
MediaDescriptor db 0f8h
SectorsPerFat dw 0 ;9 - Always zero for FAT32 volumes
SectorsPerTrack dw 18
NumberOfHeads dw 2
HiddenSectors dd 0
TotalSectorsBig dd 0
BootDrive db 80h
Reserved db 0
ExtendSig db 29h
SerialNumber dd 00000000h
VolumeLabel db 'NO NAME '
FileSystem db 'FAT16 '
main:
00007C3E 33C9 xor cx,cx
00007C40 8ED1 mov ss,cx ; Setup stack
00007C42 BCF07B mov sp,0x7bf0 ; Give us 16 bytes (4 dwords) of space above stack
00007C45 8ED9 mov ds,cx
00007C47 B80020 mov ax,0x2000
00007C4A 8EC0 mov es,ax ; Setup ES:0000 == 2000:0000
00007C4C FC cld
00007C4D BD007C mov bp,0x7c00
00007C50 384E24 cmp [bp+BootDrive],cl ; Compare the boot drive to zero (I think they are testing for a hard disk drive number)
00007C53 7D24 jnl floppy_boot ; Nope, it's a floppy, skip partition table tests
00007C55 8BC1 mov ax,cx ; Move zero to AX
00007C57 99 cwd ; DX:AX now contains zero
00007C58 E83C01 call read_one_sector ; Try to read in the MBR sector
00007C5B 721C jc floppy_boot ; Read failed, continue
00007C5D 83EB3A sub bx,byte +0x3a ; BX comes back with 512, make it equal to 454 (offset of partition table in MBR)
00007C60 66A11C7C mov eax,[HiddenSectors] ; Put HiddenSectors in EAX
find_our_partition:
00007C64 26663B07 cmp eax,[es:bx] ; Compare partition table entry's start sector to HiddenSectors
00007C68 268A57FC mov dl,[es:bx-0x4] ; Get partition type byte for this entry
00007C6C 7506 jnz next_partition_entry ; If partition start sector != HiddenSectors then skip this entry
00007C6E 80CA02 or dl,0x2 ; Set the second bit in partition type?? I guess this makes types 4 & 6 identical
00007C71 885602 mov [bp+0x2],dl ; Save it on top of nop instruction (3rd byte of boot sector)
next_partition_entry:
00007C74 80C310 add bl,0x10 ; Add 16 to bl (offset of next entry in partition table)
00007C77 73EB jnc find_our_partition ; Jump back until we hit the end of the partition table
; We now have our partition type at 0000:7C02
; If the type was 4 or 6 then that byte is 6
; I can't imagine why the boot sector needs to store
; this information, but hopefully I will uncover it
; as I further disassemble this boot sector.
floppy_boot:
00007C79 33C9 xor cx,cx ; Zero out CX
00007C7B 8A4610 mov al,[bp+NumberOfFats] ; Get the number of FATs in AL (usually 2)
00007C7E 98 cbw ; Sign extend it into AX (AX == 2)
00007C7F F76616 mul word [bp+NumberOfFats] ; Multiply it with NumberOfFats PLUS the low byte of MaxRootEntries!!??
00007C82 03461C add ax,[bp+HiddenSectors] ; Result is in DX:AX
00007C85 13561E adc dx,[bp+HiddenSectors+2] ; Add HiddenSectors to DX:AX
00007C88 03460E add ax,[bp+ReservedSectors] ; Add ReservedSectors to DX:AX
00007C8B 13D1 adc dx,cx ; CX still contains zero
00007C8D 8B7611 mov si,[bp+MaxRootEntries] ; Get MaxRootEntries in SI
00007C90 60 pusha ; Save all registers (right now DX:AX has starting sector of root dir)
00007C91 8946FC mov [bp-0x4],ax ; Save the starting sector of the root directory
00007C94 8956FE mov [bp-0x2],dx ; Save it in the first 4 bytes before the boot sector
00007C97 B82000 mov ax,0x20 ; AX == 32 (size of a directory entry)
00007C9A F7E6 mul si ; Multiply it with MaxRootEntries (DX:AX == length in bytes of root directory)
00007C9C 8B5E0B mov bx,[bp+BytesPerSector] ; Get the BytesPerSector in BX
00007C9F 03C3 add ax,bx ; Add it to AX (what if this addition carries? MS should 'adc dx,0' shouldn't they?)
00007CA1 48 dec ax ; Subtract one (basically rounding up)
00007CA2 F7F3 div bx ; Divide DX:AX (length of root dir in bytes) by the size of a sector
00007CA4 0146FC add [bp-0x4],ax ; Add the number of sectors of the root directory to our other value
00007CA7 114EFE adc [bp-0x2],cx ; Now the first 4 bytes before the boot sector contain the starting sector of the data area
00007CAA 61 popa ; Restore all registers (DX:AX has start sector of root dir)
load_root_dir_sector:
00007CAB BF0000 mov di,0x0 ; Zero out di
00007CAE E8E600 call read_one_sector ; Read the first sector of the root directory
00007CB1 7239 jc print_disk_error_message ; Read failed, print disk error and reboot
search_directory:
00007CB3 26382D cmp [es:di],ch ; If the first byte of the directory entry is zero then we have reached the end
00007CB6 7417 jz print_ntldr_error_message; of the directory and NTLDR is not here so reboot
00007CB8 60 pusha ; Save all registers
00007CB9 B10B mov cl,0xb ; Put 11 in cl (length of filename in directory entry)
00007CBB BEA17D mov si,NTLDR ; Put offset of filename string in DS:SI
00007CBE F3A6 repe cmpsb ; Compare this directory entry against 'NTLDR '
00007CC0 61 popa ; Restore all the registers
00007CC1 7432 jz found_ntldr ; If we found NTLDR then jump
00007CC3 4E dec si ; SI holds MaxRootEntries, subtract one
00007CC4 7409 jz print_ntldr_error_message; If we are out of root dir entries then reboot
00007CC6 83C720 add di,byte +0x20 ; Increment DI by the size of a directory entry
00007CC9 3BFB cmp di,bx ; Compare DI to BX (DI has offset to next dir entry, BX has address of end of directory sector in memory)
00007CCB 72E6 jc search_directory ; If DI is less than BX loop again
00007CCD EBDC jmp short load_root_dir_sector ; Didn't find NTLDR in this directory sector, try again
print_ntldr_error_message:
00007CCF A0FB7D mov al,[NTLDR_ERR_offset_from_0x7d00]
putchars:
00007CD2 B47D mov ah,0x7d
00007CD4 8BF0 mov si,ax
get_another_char:
00007CD6 AC lodsb
00007CD7 98 cbw
00007CD8 40 inc ax
00007CD9 740C jz print_reboot_message
00007CDB 48 dec ax
00007CDC 7413 jz reboot
00007CDE B40E mov ah,0xe
00007CE0 BB0700 mov bx,0x7
00007CE3 CD10 int 0x10
00007CE5 EBEF jmp short get_another_char
print_reboot_message:
00007CE7 A0FD7D mov al,[RESTART_ERR_offset_from_0x7d00]
00007CEA EBE6 jmp short putchars
print_disk_error_message:
00007CEC A0FC7D mov al,[DISK_ERR_offset_from_0x7d00]
00007CEF EBE1 jmp short putchars
reboot:
00007CF1 CD16 int 0x16
00007CF3 CD19 int 0x19
found_ntldr:
00007CF5 268B551A mov dx,[es:di+0x1a] ; Get NTLDR start cluster in DX
00007CF9 52 push dx ; Save it on the stack
00007CFA B001 mov al,0x1 ; Read 1 cluster? Or is this one sector?
00007CFC BB0000 mov bx,0x0 ; ES:BX is the load address (2000:0000)
00007CFF E83B00 call read_cluster ; Do the read
00007D02 72E8 jc print_disk_error_message ; If it failed then reboot
00007D04 5B pop bx ; Get the start cluster of NTLDR in BX
00007D05 8A5624 mov dl,[bp+BootDrive] ; Get boot drive in DL
00007D08 BE0B7C mov si,0x7c0b
00007D0B 8BFC mov di,sp
00007D0D C746F03D7D mov word [bp-0x10],read_cluster
00007D12 C746F4297D mov word [bp-0xc],0x7d29
00007D17 8CD9 mov cx,ds
00007D19 894EF2 mov [bp-0xe],cx
00007D1C 894EF6 mov [bp-0xa],cx
00007D1F C606967DCB mov byte [0x7d96],0xcb
00007D24 EA03000020 jmp 0x2000:0x3
00007D29 0FB6C8 movzx cx,al
00007D2C 668B46F8 mov eax,[bp-0x8]
00007D30 6603461C add eax,[bp+HiddenSectors]
00007D34 668BD0 mov edx,eax
00007D37 66C1EA10 shr edx,0x10
00007D3B EB5E jmp short 0x7d9b
read_cluster:
00007D3D 0FB6C8 movzx cx,al
00007D40 4A dec dx
00007D41 4A dec dx
00007D42 8A460D mov al,[bp+SectsPerCluster]
00007D45 32E4 xor ah,ah
00007D47 F7E2 mul dx
00007D49 0346FC add ax,[bp-0x4]
00007D4C 1356FE adc dx,[bp-0x2]
00007D4F EB4A jmp short 0x7d9b
read_sectors:
00007D51 52 push dx
00007D52 50 push ax
00007D53 06 push es
00007D54 53 push bx
00007D55 6A01 push byte +0x1
00007D57 6A10 push byte +0x10
00007D59 91 xchg ax,cx
00007D5A 8B4618 mov ax,[bp+SectorsPerTrack]
00007D5D 96 xchg ax,si
00007D5E 92 xchg ax,dx
00007D5F 33D2 xor dx,dx
00007D61 F7F6 div si
00007D63 91 xchg ax,cx
00007D64 F7F6 div si
00007D66 42 inc dx
00007D67 87CA xchg cx,dx
00007D69 F7761A div word [bp+NumberOfHeads]
00007D6C 8AF2 mov dh,dl
00007D6E 8AE8 mov ch,al
00007D70 C0CC02 ror ah,0x2
00007D73 0ACC or cl,ah
00007D75 B80102 mov ax,0x201
00007D78 807E020E cmp byte [bp+0x2],0xe
00007D7C 7504 jnz 0x7d82
00007D7E B442 mov ah,0x42
00007D80 8BF4 mov si,sp
00007D82 8A5624 mov dl,[bp+BootDrive]
00007D85 CD13 int 0x13
00007D87 61 popa
00007D88 61 popa
00007D89 720B jc 0x7d96
00007D8B 40 inc ax
00007D8C 7501 jnz 0x7d8f
00007D8E 42 inc dx
00007D8F 035E0B add bx,[bp+BytesPerSector]
00007D92 49 dec cx
00007D93 7506 jnz 0x7d9b
00007D95 F8 clc
00007D96 C3 ret
read_one_sector:
00007D97 41 inc cx
00007D98 BB0000 mov bx,0x0
00007D9B 60 pusha
00007D9C 666A00 o32 push byte +0x0
00007D9F EBB0 jmp short 0x7d51
NTLDR db 'NTLDR '
NTLDR_ERR db 0dh,0ah,'NTLDR is missing',0ffh
DISK_ERR db 0dh,0ah,'Disk error',0ffh
RESTART_ERR db 0dh,0ah,'Press any key to restart',0dh,0ah
filler times 18 db 0
NTLDR_offset_from_0x7d00 db 0
NTLDR_ERR_offset_from_0x7d00 db 0ach
DISK_ERR_offset_from_0x7d00 db 0bfh
RESTART_ERR_offset_from_0x7d00 db 0cch
dw 0
dw 0aa55h

View File

@@ -1 +0,0 @@
*.res

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,554 +0,0 @@
// fdebug.cpp : Defines the entry point for the application.
//
#include <windows.h>
#include <commdlg.h>
#include <process.h>
#include <stdio.h>
#include <tchar.h>
#include "resource.h"
#include "rs232.h"
#define MAX_LOADSTRING 100
// Global Variables:
HINSTANCE hInst; // current instance
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text
HWND hMainWnd; // The main window handle
HWND hDisplayWnd; // The window to display the incoming data
HWND hEditWnd; // The edit window to get input from the user
TCHAR strComPort[MAX_PATH] = TEXT("COM1"); // The COM port to use
TCHAR strBaudRate[MAX_PATH] = TEXT("115200"); // The baud rate to use
TCHAR strCaptureFileName[MAX_PATH] = TEXT(""); // The file name to capture to
BOOL bConnected = FALSE; // Tells us if we are currently connected
BOOL bCapturing = FALSE; // Tells us if we are currently capturing data
BOOL bLocalEcho = FALSE; // Tells us if local echo is currently enabled
HANDLE hCaptureFile; // Handle to the capture file
DWORD dwThreadId = 0; // Thread id of RS232 communication thread
// Foward declarations of functions included in this code module:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK ConnectionDialogProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK CaptureDialogProc(HWND, UINT, WPARAM, LPARAM);
VOID EnableConnectMenuItem(BOOL Enable);
VOID EnableDisconnectMenuItem(BOOL Enable);
VOID EnableStartCaptureMenuItem(BOOL Enable);
VOID EnableStopCaptureMenuItem(BOOL Enable);
VOID CheckLocalEchoMenuItem(BOOL Checked);
VOID Rs232Thread(VOID* Parameter);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
MSG msg;
HACCEL hAccelTable;
// Initialize global strings
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_FDEBUG, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_FDEBUG);
// Main message loop:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}
//
// FUNCTION: MyRegisterClass()
//
// PURPOSE: Registers the window class.
//
// COMMENTS:
//
// This function and its usage is only necessary if you want this code
// to be compatible with Win32 systems prior to the 'RegisterClassEx'
// function that was added to Windows 95. It is important to call this function
// so that the application will get 'well formed' small icons associated
// with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_FDEBUG);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = NULL;//(HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = (LPCSTR)IDC_FDEBUG;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
return RegisterClassEx(&wcex);
}
//
// FUNCTION: InitInstance(HANDLE, int)
//
// PURPOSE: Saves instance handle and creates main window
//
// COMMENTS:
//
// In this function, we save the instance handle in a global variable and
// create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
hInst = hInstance; // Store instance handle in our global variable
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
hMainWnd = hWnd;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
RECT rc;
TCHAR WndText[MAX_PATH];
DWORD Index;
NONCLIENTMETRICS ncm;
HFONT hFont;
switch (message)
{
case WM_CREATE:
hEditWnd = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), "", WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_AUTOHSCROLL|ES_LEFT|ES_MULTILINE, 0, 0, 0, 0, hWnd, NULL, hInst, NULL);
hDisplayWnd = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), "", WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|ES_MULTILINE, 0, 0, 0, 0, hWnd, NULL, hInst, NULL);
memset(&ncm, 0, sizeof(NONCLIENTMETRICS));
ncm.cbSize = sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0);
hFont = CreateFontIndirect(&ncm.lfMessageFont);
SendMessage(hEditWnd, WM_SETFONT, (WPARAM)hFont, TRUE);
SendMessage(hDisplayWnd, WM_SETFONT, (WPARAM)hFont, TRUE);
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
if (lParam == (LPARAM)hEditWnd && wmEvent == EN_CHANGE)
{
GetWindowText(hEditWnd, WndText, MAX_PATH);
if (_tcslen(WndText) > 0)
{
SetWindowText(hEditWnd, TEXT(""));
if (!bConnected)
{
MessageBox(hWnd, TEXT("You are not currently connected!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
break;
}
for (Index=0; Index<_tcslen(WndText); Index++)
{
if (dwThreadId != 0)
{
PostThreadMessage(dwThreadId, WM_CHAR, (WPARAM)WndText[Index], (LPARAM)0);
}
}
}
}
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
case ID_FILE_CONNECT:
if (bConnected)
{
MessageBox(hWnd, TEXT("You are already connected!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
}
else
{
if (DialogBox(hInst, (LPCTSTR)IDD_CONNECTION, hWnd, (DLGPROC)ConnectionDialogProc) == IDOK)
{
bConnected = TRUE;
EnableDisconnectMenuItem(TRUE);
EnableConnectMenuItem(FALSE);
_beginthread(Rs232Thread, 0, NULL);
}
}
break;
case ID_FILE_DISCONNECT:
if (bConnected)
{
bConnected = FALSE;
EnableDisconnectMenuItem(FALSE);
EnableConnectMenuItem(TRUE);
}
else
{
MessageBox(hWnd, TEXT("You are not currently connected!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
}
break;
case ID_FILE_STARTCAPTURE:
if (DialogBox(hInst, (LPCTSTR)IDD_CAPTURE, hWnd, (DLGPROC)CaptureDialogProc) == IDOK)
{
bCapturing = TRUE;
EnableStopCaptureMenuItem(TRUE);
EnableStartCaptureMenuItem(FALSE);
hCaptureFile = CreateFile(strCaptureFileName, FILE_APPEND_DATA, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
}
break;
case ID_FILE_STOPCAPTURE:
if (bCapturing)
{
bCapturing = FALSE;
EnableStopCaptureMenuItem(FALSE);
EnableStartCaptureMenuItem(TRUE);
CloseHandle(hCaptureFile);
hCaptureFile = NULL;
}
break;
case ID_FILE_LOCALECHO:
if (bLocalEcho)
{
bLocalEcho = FALSE;
CheckLocalEchoMenuItem(bLocalEcho);
}
else
{
bLocalEcho = TRUE;
CheckLocalEchoMenuItem(bLocalEcho);
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
EndPaint(hWnd, &ps);
break;
case WM_SIZE:
GetClientRect(hWnd, &rc);
MoveWindow(hDisplayWnd, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top - 20, TRUE);
MoveWindow(hEditWnd, rc.left, rc.bottom - 20, rc.right - rc.left, 20, TRUE);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND hLicenseEditWnd;
TCHAR strLicense[0x1000];
switch (message)
{
case WM_INITDIALOG:
hLicenseEditWnd = GetDlgItem(hDlg, IDC_LICENSE_EDIT);
LoadString(hInst, IDS_LICENSE, strLicense, 0x1000);
SetWindowText(hLicenseEditWnd, strLicense);
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
LRESULT CALLBACK ConnectionDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
SetWindowText(GetDlgItem(hDlg, IDC_COMPORT), strComPort);
SetWindowText(GetDlgItem(hDlg, IDC_BAUTRATE), strBaudRate);
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK)
{
GetWindowText(GetDlgItem(hDlg, IDC_COMPORT), strComPort, MAX_PATH);
GetWindowText(GetDlgItem(hDlg, IDC_BAUTRATE), strBaudRate, MAX_PATH);
}
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
LRESULT CALLBACK CaptureDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
OPENFILENAME ofn;
switch (message)
{
case WM_INITDIALOG:
SetWindowText(GetDlgItem(hDlg, IDC_CAPTUREFILENAME), strCaptureFileName);
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDC_BROWSE)
{
memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hDlg;
ofn.hInstance = hInst;
ofn.lpstrFilter = NULL;
ofn.lpstrCustomFilter = NULL;
ofn.nMaxCustFilter = 0;
ofn.nFilterIndex = 0;
ofn.lpstrFile = strCaptureFileName;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.lpstrTitle = NULL;
ofn.Flags = OFN_HIDEREADONLY|OFN_NOREADONLYRETURN;
if (GetOpenFileName(&ofn))
{
SetWindowText(GetDlgItem(hDlg, IDC_CAPTUREFILENAME), strCaptureFileName);
}
}
if (LOWORD(wParam) == IDOK)
{
GetWindowText(GetDlgItem(hDlg, IDC_CAPTUREFILENAME), strCaptureFileName, MAX_PATH);
}
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
VOID EnableConnectMenuItem(BOOL Enable)
{
HMENU hMenuBar;
HMENU hFileMenu;
hMenuBar = GetMenu(hMainWnd);
hFileMenu = GetSubMenu(hMenuBar, 0);
if (Enable)
{
EnableMenuItem(hFileMenu, ID_FILE_CONNECT, MF_BYCOMMAND|MF_ENABLED);
}
else
{
EnableMenuItem(hFileMenu, ID_FILE_CONNECT, MF_BYCOMMAND|MF_GRAYED);
}
}
VOID EnableDisconnectMenuItem(BOOL Enable)
{
HMENU hMenuBar;
HMENU hFileMenu;
hMenuBar = GetMenu(hMainWnd);
hFileMenu = GetSubMenu(hMenuBar, 0);
if (Enable)
{
EnableMenuItem(hFileMenu, ID_FILE_DISCONNECT, MF_BYCOMMAND|MF_ENABLED);
}
else
{
EnableMenuItem(hFileMenu, ID_FILE_DISCONNECT, MF_BYCOMMAND|MF_GRAYED);
}
}
VOID EnableStartCaptureMenuItem(BOOL Enable)
{
HMENU hMenuBar;
HMENU hFileMenu;
hMenuBar = GetMenu(hMainWnd);
hFileMenu = GetSubMenu(hMenuBar, 0);
if (Enable)
{
EnableMenuItem(hFileMenu, ID_FILE_STARTCAPTURE, MF_BYCOMMAND|MF_ENABLED);
}
else
{
EnableMenuItem(hFileMenu, ID_FILE_STARTCAPTURE, MF_BYCOMMAND|MF_GRAYED);
}
}
VOID EnableStopCaptureMenuItem(BOOL Enable)
{
HMENU hMenuBar;
HMENU hFileMenu;
hMenuBar = GetMenu(hMainWnd);
hFileMenu = GetSubMenu(hMenuBar, 0);
if (Enable)
{
EnableMenuItem(hFileMenu, ID_FILE_STOPCAPTURE, MF_BYCOMMAND|MF_ENABLED);
}
else
{
EnableMenuItem(hFileMenu, ID_FILE_STOPCAPTURE, MF_BYCOMMAND|MF_GRAYED);
}
}
VOID CheckLocalEchoMenuItem(BOOL Checked)
{
HMENU hMenuBar;
HMENU hFileMenu;
hMenuBar = GetMenu(hMainWnd);
hFileMenu = GetSubMenu(hMenuBar, 0);
if (Checked)
{
CheckMenuItem(hFileMenu, ID_FILE_LOCALECHO, MF_BYCOMMAND|MF_CHECKED);
}
else
{
CheckMenuItem(hFileMenu, ID_FILE_LOCALECHO, MF_BYCOMMAND|MF_UNCHECKED);
}
}
VOID Rs232Thread(VOID* Parameter)
{
BYTE Byte;
TCHAR String[MAX_PATH];
MSG msg;
DWORD dwNumberOfBytesWritten;
dwThreadId = GetCurrentThreadId();
if (!Rs232OpenPortWin32(strComPort))
{
MessageBox(hMainWnd, TEXT("Error opening port!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
bConnected = FALSE;
return;
}
_stprintf(String, TEXT("%s,n,8,1"), strBaudRate);
if (!Rs232ConfigurePortWin32(String))
{
MessageBox(hMainWnd, TEXT("Error configuring port!"), TEXT("Error"), MB_OK|MB_ICONSTOP);
bConnected = FALSE;
return;
}
while (bConnected)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_CHAR)
{
Rs232WriteByteWin32((BYTE)msg.wParam);
if (bLocalEcho && msg.wParam != (WPARAM)TEXT('\r'))
{
PostMessage(hDisplayWnd, WM_CHAR, (WPARAM)msg.wParam, (LPARAM)0);
if (hCaptureFile)
{
WriteFile(hCaptureFile, &msg.wParam, sizeof(TCHAR), &dwNumberOfBytesWritten, NULL);
}
}
}
}
if (Rs232ReadByteWin32(&Byte))
{
_stprintf(String, TEXT("%c"), Byte);
PostMessage(hDisplayWnd, WM_CHAR, (WPARAM)String[0], (LPARAM)0);
if (hCaptureFile)
{
WriteFile(hCaptureFile, &String[0], sizeof(TCHAR), &dwNumberOfBytesWritten, NULL);
}
}
}
dwThreadId = 0;
Rs232ClosePortWin32();
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,215 +0,0 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
#include "resource.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_FDEBUG ICON DISCARDABLE "fdebug.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDC_FDEBUG MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Connect", ID_FILE_CONNECT
MENUITEM "&Disconnect", ID_FILE_DISCONNECT, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Start Capture", ID_FILE_STARTCAPTURE
MENUITEM "S&top Capture", ID_FILE_STOPCAPTURE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Local Echo", ID_FILE_LOCALECHO
MENUITEM SEPARATOR
MENUITEM "E&xit", IDM_EXIT
END
POPUP "&Help"
BEGIN
MENUITEM "&About ...", IDM_ABOUT
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDC_FDEBUG ACCELERATORS MOVEABLE PURE
BEGIN
"?", IDM_ABOUT, ASCII, ALT
"/", IDM_ABOUT, ASCII, ALT
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""resource.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 252
TOPMARGIN, 7
BOTTOMMARGIN, 203
END
IDD_CONNECTION, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 189
TOPMARGIN, 7
BOTTOMMARGIN, 93
END
IDD_CAPTURE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 244
TOPMARGIN, 7
BOTTOMMARGIN, 88
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 259, 210
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "About FreeLoader Debugger"
FONT 8, "Tahoma"
BEGIN
CONTROL "FreeLoader Debugger v1.0\nCopyright (C) 2003\nby Brian Palmer (brianp@reactos.org)",
IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,53,28,
122,26
DEFPUSHBUTTON "OK",IDOK,183,189,44,14,WS_GROUP
ICON IDI_FDEBUG,IDC_STATIC,19,30,20,20
EDITTEXT IDC_LICENSE_EDIT,53,63,174,107,ES_MULTILINE |
ES_READONLY | WS_VSCROLL
END
IDD_CONNECTION DIALOG DISCARDABLE 0, 0, 196, 100
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Connection Options"
FONT 8, "Tahoma"
BEGIN
LTEXT "Enter the COM port (e.g. COM1):",IDC_STATIC,7,7,108,8
EDITTEXT IDC_COMPORT,7,17,182,14,ES_AUTOHSCROLL
LTEXT "Enter the baud rate (e.g. 115200):",IDC_STATIC,7,38,114,
8
EDITTEXT IDC_BAUTRATE,7,48,182,14,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,45,79,50,14
PUSHBUTTON "Cancel",IDCANCEL,100,79,50,14
END
IDD_CAPTURE DIALOG DISCARDABLE 0, 0, 251, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Capture File"
FONT 8, "Tahoma"
BEGIN
LTEXT "Capture File Name:",IDC_STATIC,7,17,62,8
EDITTEXT IDC_CAPTUREFILENAME,7,26,181,14,ES_AUTOHSCROLL
PUSHBUTTON "&Browse",IDC_BROWSE,194,26,50,14
DEFPUSHBUTTON "OK",IDOK,139,74,50,14
PUSHBUTTON "Cancel",IDCANCEL,194,74,50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "fdebug"
IDS_HELLO "Hello World!"
IDC_FDEBUG "FDEBUG"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -1,40 +0,0 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by fdebug.rc
//
#define IDC_MYICON 2
#define IDD_FDEBUG_DIALOG 102
#define IDD_ABOUTBOX 103
#define IDS_APP_TITLE 103
#define IDM_ABOUT 104
#define IDM_EXIT 105
#define IDS_HELLO 106
#define IDI_FDEBUG 107
#define IDI_SMALL 108
#define IDC_FDEBUG 109
#define IDR_MAINFRAME 128
#define IDD_CONNECTION 130
#define IDD_CAPTURE 131
#define IDC_COMPORT 1000
#define IDC_BAUTRATE 1001
#define IDC_CAPTUREFILENAME 1002
#define IDC_BROWSE 1003
#define IDC_LICENSE_EDIT 1029
#define ID_FILE_CONNECT 32771
#define ID_FILE_DISCONNECT 32772
#define ID_FILE_STARTCAPTURE 32773
#define ID_FILE_STOPCAPTURE 32774
#define ID_FILE_LOCALECHO 32775
#define IDS_LICENSE 32815
#define IDC_STATIC -1
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 132
#define _APS_NEXT_COMMAND_VALUE 32776
#define _APS_NEXT_CONTROL_VALUE 1004
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif

View File

@@ -1,257 +0,0 @@
/*
* FreeLoader - rs232.c
*
* Copyright (C) 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 <windows.h>
#include <winioctl.h>
#include <tchar.h>
#include <stdio.h>
#include "rs232.h"
HANDLE hPortHandle = NULL;
BOOL Rs232OpenPortWin32(TCHAR* CommPort)
{
TCHAR PortName[MAX_PATH];
DWORD ErrorCode;
// First check and make sure they don't already have the
// OBD2 connection open. We don't want to open things twice.
if (hPortHandle != NULL)
{
_tprintf(TEXT("Port handle not NULL. Must be already open. Returning FALSE...\n"));
return FALSE;
}
_stprintf(PortName, TEXT("\\\\.\\%s"), CommPort);
hPortHandle = CreateFile(PortName,
GENERIC_READ|GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
0);
if (hPortHandle == INVALID_HANDLE_VALUE)
{
hPortHandle = NULL;
ErrorCode = GetLastError();
_tprintf(TEXT("CreateFile(\"%s\") failed. GetLastError() = %lu.\n"), PortName, ErrorCode);
return FALSE;
}
return TRUE;
}
BOOL Rs232ClosePortWin32(VOID)
{
HANDLE hTempPortHandle = hPortHandle;
hPortHandle = NULL;
if (hTempPortHandle == NULL)
{
return FALSE;
}
return CloseHandle(hTempPortHandle);
}
// DeviceControlString
// [in] Pointer to a null-terminated string that specifies device-control information.
// The string must have the same form as the mode command's command-line arguments.
//
// For example, the following string specifies a baud rate of 1200, no parity, 8 data bits, and 1 stop bit:
// "baud=1200 parity=N data=8 stop=1"
//
// The following string specifies a baud rate of 115200, no parity, 8 data bits, and 1 stop bit:
// "115200,n,8,1"
//
// The device name is ignored if it is included in the string, but it must specify a valid device, as follows:
// "COM1: baud=1200 parity=N data=8 stop=1"
//
// For further information on mode command syntax, refer to the end-user documentation for your operating system.
BOOL Rs232ConfigurePortWin32(TCHAR* DeviceControlString)
{
DCB dcb;
DWORD ErrorCode;
/*if (!GetCommState(hPortHandle, &dcb))
{
ErrorCode = GetLastError();
_tprintf(TEXT("GetCommState() failed. GetLastError() = %lu.\n"), ErrorCode);
return FALSE;
}
dcb.BaudRate = BaudRate;
dcb.ByteSize = DataBits;
dcb.Parity = Parity;
dcb.StopBits = StopBits;
dcb.fBinary = TRUE;
dcb.fDsrSensitivity = FALSE;
dcb.fParity = (Parity == NOPARITY) ? FALSE : TRUE;
dcb.fOutX = FALSE;
dcb.fInX = FALSE;
dcb.fNull = FALSE;
dcb.fAbortOnError = TRUE;
dcb.fOutxCtsFlow = FALSE;
dcb.fOutxDsrFlow = FALSE;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fDsrSensitivity = FALSE;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fOutxCtsFlow = FALSE;
dcb.fOutxCtsFlow = FALSE;*/
memset(&dcb, 0, sizeof(DCB));
dcb.DCBlength = sizeof(dcb);
if (!BuildCommDCB(DeviceControlString, &dcb))
{
ErrorCode = GetLastError();
_tprintf(TEXT("BuildCommDCB() failed. GetLastError() = %lu.\n"), ErrorCode);
return FALSE;
}
if (!SetCommState(hPortHandle, &dcb))
{
ErrorCode = GetLastError();
_tprintf(TEXT("SetCommState() failed. GetLastError() = %lu.\n"), ErrorCode);
return FALSE;
}
// Set the timeouts
if (!Rs232SetCommunicationTimeoutsWin32(MAXDWORD, 0, 0, 0, 0))
{
return FALSE;
}
return TRUE;
}
// Members
// ReadIntervalTimeout
// Specifies the maximum time, in milliseconds, allowed to elapse between the arrival of two characters on the communications line. During a ReadFile operation, the time period begins when the first character is received. If the interval between the arrival of any two characters exceeds this amount, the ReadFile operation is completed and any buffered data is returned. A value of zero indicates that interval time-outs are not used.
// A value of MAXDWORD, combined with zero values for both the ReadTotalTimeoutConstant and ReadTotalTimeoutMultiplier members, specifies that the read operation is to return immediately with the characters that have already been received, even if no characters have been received.
//
// ReadTotalTimeoutMultiplier
// Specifies the multiplier, in milliseconds, used to calculate the total time-out period for read operations. For each read operation, this value is multiplied by the requested number of bytes to be read.
// ReadTotalTimeoutConstant
// Specifies the constant, in milliseconds, used to calculate the total time-out period for read operations. For each read operation, this value is added to the product of the ReadTotalTimeoutMultiplier member and the requested number of bytes.
// A value of zero for both the ReadTotalTimeoutMultiplier and ReadTotalTimeoutConstant members indicates that total time-outs are not used for read operations.
//
// WriteTotalTimeoutMultiplier
// Specifies the multiplier, in milliseconds, used to calculate the total time-out period for write operations. For each write operation, this value is multiplied by the number of bytes to be written.
// WriteTotalTimeoutConstant
// Specifies the constant, in milliseconds, used to calculate the total time-out period for write operations. For each write operation, this value is added to the product of the WriteTotalTimeoutMultiplier member and the number of bytes to be written.
// A value of zero for both the WriteTotalTimeoutMultiplier and WriteTotalTimeoutConstant members indicates that total time-outs are not used for write operations.
//
// Remarks
// If an application sets ReadIntervalTimeout and ReadTotalTimeoutMultiplier to MAXDWORD and sets ReadTotalTimeoutConstant to a value greater than zero and less than MAXDWORD, one of the following occurs when the ReadFile function is called:
//
// If there are any characters in the input buffer, ReadFile returns immediately with the characters in the buffer.
// If there are no characters in the input buffer, ReadFile waits until a character arrives and then returns immediately.
// If no character arrives within the time specified by ReadTotalTimeoutConstant, ReadFile times out.
BOOL Rs232SetCommunicationTimeoutsWin32(DWORD ReadIntervalTimeout, DWORD ReadTotalTimeoutMultiplier, DWORD ReadTotalTimeoutConstant, DWORD WriteTotalTimeoutMultiplier, DWORD WriteTotalTimeoutConstant)
{
COMMTIMEOUTS ct;
DWORD ErrorCode;
if (!GetCommTimeouts(hPortHandle, &ct))
{
ErrorCode = GetLastError();
_tprintf(TEXT("GetCommTimeouts() failed. GetLastError() = %lu.\n"), ErrorCode);
return FALSE;
}
ct.ReadIntervalTimeout = ReadIntervalTimeout;
ct.ReadTotalTimeoutConstant = ReadTotalTimeoutConstant;
ct.ReadTotalTimeoutMultiplier = ReadTotalTimeoutMultiplier;
ct.WriteTotalTimeoutConstant = WriteTotalTimeoutConstant;
ct.WriteTotalTimeoutMultiplier = WriteTotalTimeoutMultiplier;
if (!SetCommTimeouts(hPortHandle, &ct))
{
ErrorCode = GetLastError();
_tprintf(TEXT("SetCommTimeouts() failed. GetLastError() = %lu.\n"), ErrorCode);
return FALSE;
}
return TRUE;
}
BOOL Rs232ReadByteWin32(BYTE* DataByte)
{
DWORD BytesRead = 0;
DWORD ErrorCode;
// If ReadFile() fails then report error
if (!ReadFile(hPortHandle, DataByte, 1, &BytesRead, NULL))
{
ErrorCode = GetLastError();
_tprintf(TEXT("ReadFile() failed. GetLastError() = %lu.\n"), ErrorCode);
return FALSE;
}
// If ReadFile() succeeds, but BytesRead isn't 1
// then a timeout occurred.
if (BytesRead != 1)
{
return FALSE;
}
return TRUE;
}
BOOL Rs232WriteByteWin32(BYTE DataByte)
{
DWORD BytesWritten = 0;
BOOL Success;
DWORD ErrorCode;
Success = WriteFile(hPortHandle, &DataByte, 1, &BytesWritten, NULL);
if (!Success || BytesWritten != 1)
{
ErrorCode = GetLastError();
_tprintf(TEXT("WriteFile() failed. GetLastError() = %lu.\n"), ErrorCode);
return FALSE;
}
return TRUE;
}

View File

@@ -1,46 +0,0 @@
/*
* FreeLoader - rs232.h
*
* Copyright (C) 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 __RS232_H
#define __RS232_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
//////////////////////////////////////////////////////////////////////////////////////////
//
// Function prototypes for RS232 communication under Win32
//
//////////////////////////////////////////////////////////////////////////////////////////
BOOL Rs232OpenPortWin32(TCHAR* CommPort);
BOOL Rs232ClosePortWin32(VOID);
BOOL Rs232ConfigurePortWin32(TCHAR* DeviceControlString);
BOOL Rs232SetCommunicationTimeoutsWin32(DWORD ReadIntervalTimeout, DWORD ReadTotalTimeoutMultiplier, DWORD ReadTotalTimeoutConstant, DWORD WriteTotalTimeoutMultiplier, DWORD WriteTotalTimeoutConstant);
BOOL Rs232ReadByteWin32(BYTE* DataByte);
BOOL Rs232WriteByteWin32(BYTE DataByte);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif // !defined(__RS232_H)

View File

@@ -1 +0,0 @@
obj

View File

@@ -1,311 +0,0 @@
Changes in v1.8.22 (21/05/2004) (navaraf)
- Fixed lots of bugs in NTFS code and added correct update sequence
fixups handling and untested NTFS 3+ sparse file support.
Changes in v1.8.21 (21/05/2004) (navaraf)
- Experimental NTFS reading support with no boot code yet.
- Adjusted detection timeouts for PS/2 and RS232 to the minimum
allowed by the specifications.
- Enabled the 'Press any key to boot from CD' message in the ISO
boot code and show it only when some hard disk is present.
Changes in v1.8.20 (21/05/2004) (navaraf)
- Added support for special value "LiveCD" of SystemPath option
for loading ReactOS. It uses the known boot drive information
as the boot path.
Changes in v1.8.19 (12/20/2003) (ekohl)
- Detect PS/2 Port and Pointer Device (Mouse).
- Calculate CPU speed.
- Fixed delay counter overrun.
Changes in v1.8.18 (12/14/2003) (ekohl)
- Detect serial ports and serial pointer devices (Mice/Trackballs)
Changes in v1.8.17 (10/19/2003) (ekohl)
- Ignore case of registry key and value names
Changes in v1.8.16 (10/12/2003) (ekohl)
- Renamed a lot of variables and functions in the registry
- Fixed buggy cell size calculation
Changes in v1.8.15 (8/29/2003) (chorns)
- Add top-level makefile
- Add fdebug/.cvsignore
- Don't use rdel to remove files in tools/Makefile
- Remove warning in freeldr/mm/meminit.c
Changes in v1.8.14 (8/10/2003) (chorns)
- Clear screen to black when booting ReactOS
Changes in v1.8.13 (6/05/2003) (brianp)
- Added support for booting Linux 2.4.x kernels
- i386 exception handler now reports FreeLoader version number
Changes in v1.8.12 (5/25/2003) (ekohl)
- Added .inf-file parser
- SetupLdr loads and uses txtsetup.sif
- Removed .hiv (text-hive) parser
Changes in v1.8.11 (4/30/2003) (ekohl)
- Added DiskGetExtendedDriveParameters()
- Moved hardware detection into the arch directory
- Rewrote/completed harddisk detection
- Removed PCI and IDE detection
- Added basic CPU detection
Changes in v1.8.10 (4/27/2003) (chorns)
- Query BIOS for supported disk drives
Changes in v1.8.9 (4/25/2003) (chorns)
- Detect PCI busses
- Detect IDE controllers and devices
- Improved RegEnumValue()
Changes in v1.8.8 (4/25/2003) (ekohl)
- Added memmove().
- Added hardware hive export.
Changes in v1.8.7 (4/22/2003) (brianp)
- Added a file system recognizer to get around problems where
the partition id did not match the file system type.
Changes in v1.8.6 (4/14/2003) (brianp)
- Fixed a bug in fathelp.asm where is wasn't adding the hidden sector
count before performing a subtraction.
Changes in v1.8.5 (4/10/2003) (ekohl)
- Added support for binary system hive.
Changes in v1.8.4 (4/5/2003) (chorns)
- Added DOS compatible Master Boot Record (MBR)
Changes in v1.8.3 (3/18/2003) (brianp)
- Added _alloca() function because Mingw32 generates code that needs it
- Defined _mainCRTStartup in fathelp.asm because Mingw32 looks for that symbol
Changes in v1.8.2 (1/24/2003) (ekohl)
- Relaxed check for Int13-Extension support.
Some BIOSes have a strange opinion about what is supported. :-/
Changes in v1.8.1 (1/20/2003) (ekohl)
- Fixed the ISO filesystem detection code.
- Removed IsSetupLdr.
Changes in v1.8 (1/18/2003) (brianp)
- Added F8 options menu
- Added custom Boot functionality
- Moved all OS= settings from [FreeLoader] section to [Operating Systems] section.
- Removed MessageLine= setting. MessageBox= now accepts "\n" as an escape character for newlines.
- Added descriptions for disk error codes returned by the BIOS.
- Device names like "fd0" and "hd0" and "hd1" as well as BIOS drive numbers can now be used as BootDrive= settings.
Changes in v1.7.12 (12/05/2002) (brianp)
- Minor tweak to UI code to allow description
text to be displayed along with the progress
bar.
Changes in v1.7.11 (12/05/2002) (brianp)
- Added memory map count to GetBiosMemoryMap() so that
it doesn't just assume the size of the array.
- Fix so that we use the continuation value that
the BIOS returns.
Changes in v1.7.10 (11/24/2002) (brianp)
- Added assembler versions of memcmp() memcpy() memset()
- Implemented Int386() so that real-mode interrupts can be called from C-code
- Removed unnecessary call in DbgPrint() macro (freeldr.sys is ~16k smaller now)
- 64-bit lba sector addressing for disk calls
- Re-coded biosdisk.S as i386disk.c
- Re-coded mem.S as i386mem.c
- Re-coded rtlcode.S as i386rtl.c
- Cleaned up i386trap.S so that it only saves the registers once.
- Re-coded biosvid.S as i386vid.c
- Video fade in/out
- VESA text modes supported now
- Offscreen buffering to remove flicker
- Standardized format of boot sector so that BootPartition is stored right before 0xaa55
- Prefixed all file system functions with 'Fs'
Changes in v1.7.9 (9/30/2002) (brianp)
- Fix for bug in BiosInt13ReadExtended() (biosdisk.S)
by Christophe Bothamy & Mike Lerwill
Changes in v1.7.8 (9/7/2002) (ekohl)
- Added new 'bootcd' target.
- Removed/disabled debugging code.
- SetupLdr must not call BiosInt13ExtensionsSupported to check
extended int13 capabilities because they are already used to
boot a CD and some BIOSes return incorrect results when a CD-ROM
drive is checked.
Changes in v1.7.7 (9/5/2002) (ekohl)
- fs/iso.c: Got iso-fs working again.
- reactos/setupldr.c: Implemented very simple setup loader.
Changes in v1.7.6 (8/31/2002) (ekohl)
- bootsect/isoboot.asm: Reduced read transfer size to ensure that
the read buffer for an int13/ah=42h (exended read) does not
cross a segment boundary.
- freeldr.c, bootmgr.c, setupldr.c, makefile: Renamed
LoadBootManager() and ReactOSRunSetupLoader() to RunLoader().
Either bootmgr.o or setupldr.o is used to build freeldr.sys or
setupldr.sys
Changes in v1.7.5 (8/21/2002) (brianp)
- biosvid.S (BiosVideoDisableBlinkBit): Added code to
disable the blink bit in the text mode character
attribute byte so that the full range of
background colors can be used.
Changes in v1.7.4 (8/20/2002) (brianp)
- Boot sector code now reports to freeldr.sys the partition
that it was installed on. This is specified by a byte
value in the boot sector code. By default the boot partition
is set to zero which indicates the active (bootable)
partition, unless the installer sets the value to non-zero.
If FreeLoader is installed on a partition other than
the active (bootable) partition then the installer must
set this byte to that partition number. Otherwise
FreeLoader will not be able to find freeldr.ini.
- i386trap.S: Added debug macros BREAKPOINT(),
INSTRUCTION_BREAKPOINTX(), MEMORY_READWRITE_BREAKPOINTX(), &
MEMORY_WRITE_BREAKPOINTX().
- partition.c (DiskGetPartitionEntry): Add the relative offset
of the extended partition to the partitions start sector.
- ext2.c (Ext2ReadBlockPointerList, Ext2CopyIndirectBlockPointers,
Ext2CopyDoubleIndirectBlockPointers, Ext2CopyTripleIndirectBlockPointers):
Rewrote the block pointer functions so they actually work.
- ini_init.c (IniFileInitialize, IniOpenIniFile): Looks for freeldr.ini
on both the active (bootable) partition and the partition
passed in from the boot sector code.
- meminit.c (MmInitializeMemoryManager, MmFixupSystemMemoryMap,
MmGetEndAddressOfAnyMemory, MmGetAddressablePageCountIncludingHoles,
MmInitPageLookupTable): Fixed bug that would cause FreeLoader to
have an off-by-one error when accessing the last entry in the
page lookup table on systems with 4GB of memory (or memory mapped
at the end of the address space).
Changes in v1.7.2 (8/7/2002) (brianp)
- Fragment size must be equal to the block size
Changes in v1.7.1 (8/7/2002) (brianp)
- Symbolic links on EXT2/3 are now supported
Changes in v1.7 (8/6/2002) (brianp)
- EXT2/EXT3 file system support.
- Does not yet support symbolic links or booting from an EXT2/3 partition.
- Fixed bug in UI code.
- Added '%%' format specifier to printf()-like functions.
- Added functions __udivdi3 & __umoddi3 so that 64-bit division is now supported.
- Changed types BYTE, WORD, DWORD, LONG, ULONG to U8, U16, U32, S32, U32
so that you know the size of the variable across different
architectures with different sized words & dwords, etc.
- Types CHAR, UCHAR, PCHAR, PUCHAR, WCHAR, PWCHAR have not been
changed yet (I haven't decided exactly how I'm going to handle unicode)
Changes in v1.6.2 (7/28/2002) (brianp)
- Fix for GetFatEntry16 bug (fathelp.asm) by Mike Lerwill
Changes in v1.6.1 (7/22/2002) (brianp)
- Fix for disk caching while doing drive remapping
Changes in v1.6 (7/21/2002) (brianp)
- Added BIOS drive mapping functionality
Changes in v1.5 (7/13/2002)
- If symbols are available then pass them to the OS as multiboot modules
Changes in v1.4 (6/27/2002)
- Added separate configuration for a SETUPLDR version
Changes in v1.3.1 (6/8/2002)
- Implemented MmAllocateMemoryAtAddress()
- Fixed Linux boot code to go through the memory manager to allocate memory at 1MB
Changes in v1.3 (6/5/2002)
- Added protected mode exception handling in case FreeLoader crashes
- Reworked memory manager to use all of extended memory
- Reworked UI code, now supports multiple text-mode resolutions
Changes in v1.2.2 (5/4/2002)
- Fixed memory leak in menu.c
Changes in v1.2.1 (5/3/2002)
- Makefile updates
- Optimized the Makefile
- Removed recursive make functionality (builds much faster now)
- Places all output into one single directory
- Added automagically generated dependencies
Changes in v1.2 (4/30/2002)
- All Linux kernels are supported (zImage & bzImage, loaded high & low)
- Initrd support
- FreeLoader now compiles under Mingw32 instead of just DJGPP, but
the Mingw32 linker seems to output a corrupt binary.
Changes in v1.01 (4/28/2002)
- Fixed FAT short file name buffer overflow that was causing
some long filenames not to work correctly.
Changes in v1.0 (4/24/2002)
- FreeLoader version 1.0!
- Supports booting ReactOS
- Supports booting Linux bzImage kernels
- No initrd support (yet)
- No zImage support (yet)
- No ext2 file system support (yet)
- Supports FAT & ISO-9660 file systems
- Forward slashes '/' as well as backslashes '\' can be used
for path names in FAT & ISO-9600
- Fixed bug in LBA code where it was only reading one sector
even if you asked for more
- Fixed bug in FAT code, was also present in ISO-9660 code where
it wasn't incrementing the buffer address correctly

View File

@@ -1,387 +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
# Debugging information on (bigger binary)
#DEBUG = yes
# Debugging information off (smaller binary)
DEBUG = no
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
NASM_CMD = nasm
OBJCOPY = objcopy
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 -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 \
i386mem.o \
i386rtl.o \
i386vid.o \
drvmap.o \
int386.o \
i386disk.o \
portio.o \
hardware.o \
hwcpu.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 \
geometry.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 \
vidmode.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
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) -N -Ttext=0x8000 --oformat=binary -s -o freeldr.sys $(F_OBJS)
@$(LD) $(LFLAGS) -Map freeldr.map -o freeldr.exe $(F_OBJS)
# @$(CC) -Wl,-Ttext=0x8000,-N,-Map,freeldr.map -o freeldr.exe $(F_OBJS)
@$(NM) --numeric-sort freeldr.exe > freeldr.sym
@$(OBJCOPY) -O binary freeldr.exe freeldr.sys
#############################################
setupldr.sys : $(ALL_OBJS)
@echo ===================================================== LINKING $@
@$(LD) $(LFLAGS) -Map setupldr.map -o setupldr.exe $(S_OBJS)
@$(NM) --numeric-sort setupldr.exe > setupldr.sym
@$(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,33 +0,0 @@
/* stuff needed for libgcc on win32. */
/*#ifdef L_chkstk*/
#ifdef WIN32
.global ___chkstk
.global __alloca
___chkstk:
__alloca:
pushl %ecx /* save temp */
movl %esp,%ecx /* get sp */
addl $0x8,%ecx /* and point to return addr */
probe: cmpl $0x1000,%eax /* > 4k ?*/
jb done
subl $0x1000,%ecx /* yes, move pointer down 4k*/
orl $0x0,(%ecx) /* probe there */
subl $0x1000,%eax /* decrement count */
jmp probe /* and do it again */
done: subl %eax,%ecx
orl $0x0,(%ecx) /* less that 4k, just peek here */
movl %esp,%eax
movl %ecx,%esp /* decrement stack */
movl (%eax),%ecx /* recover saved temp */
movl 4(%eax),%eax /* get return address */
jmp *%eax
#endif

View File

@@ -1,335 +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>
EXTERN(RealEntryPoint)
cli
/* Setup segment registers */
xorw %ax,%ax
movw %ax,%ds
movw %ax,%es
movw %ax,%fs
movw %ax,%gs
movw %ax,%ss
/* Setup a stack */
movw stack16,%sp
sti
/* Init pmode */
call switch_to_prot
.code32
/* Store the boot drive */
movb %dl,(_BootDrive)
/* Store the boot partition */
movb %dh,(_BootPartition)
/* GO! */
call _BootMain
call switch_to_real
.code16
int $0x19
/* We should never get here */
stop:
jmp stop
nop
nop
/*
* Switches the processor to protected mode
* it destroys eax
*/
EXTERN(switch_to_prot)
.code16
cli /* None of these */
/* We don't know what values are currently */
/* in the segment registers. So we are */
/* going to reload them with sane values. */
/* Of course CS has to already be valid. */
/* We are currently in real-mode so we */
/* need real-mode segment values. */
movw $0x0000,%ax
movw %ax,%ds
movw %ax,%es
movw %ax,%fs
movw %ax,%gs
movw %ax,%ss
/* Get the return address off the stack */
popw (code32ret)
/* Save 16-bit stack pointer */
movw %sp,stack16
/* Load the GDT */
lgdt gdtptr
/* Load the IDT */
lidt i386idtptr
/* Enable Protected Mode */
mov %cr0,%eax
orl $CR0_PE_SET,%eax
mov %eax,%cr0
/* Clear prefetch queue & correct CS */
ljmp $PMODE_CS, $inpmode
.code32
inpmode:
/* Setup segment selectors */
movw $PMODE_DS,%ax
movw %ax,%ds
movw %ax,%es
movw %ax,%fs
movw %ax,%gs
movw %ax,%ss
movl stack32,%esp
/* Put the return address back onto the stack */
pushl (code32ret)
/* Now return in p-mode! */
ret
/*
* Switches the processor back to real mode
* it destroys eax
*/
EXTERN(switch_to_real)
.code32
/* We don't know what values are currently */
/* in the segment registers. So we are */
/* going to reload them with sane values. */
/* Of course CS has to already be valid. */
/* We are currently in protected-mode so we */
/* need protected-mode segment values. */
movw $PMODE_DS,%ax
movw %ax,%ds
movw %ax,%es
movw %ax,%fs
movw %ax,%gs
movw %ax,%ss
/* Get the return address off the stack */
popl (code16ret)
/* Save 32-bit stack pointer */
movl %esp,stack32
/* jmp to 16-bit segment to set the limit correctly */
ljmp $RMODE_CS, $switch_to_real16
switch_to_real16:
.code16
/* Restore segment registers to correct limit */
movw $RMODE_DS,%ax
movw %ax,%ds
movw %ax,%es
movw %ax,%fs
movw %ax,%gs
movw %ax,%ss
/* Disable Protected Mode */
mov %cr0,%eax
andl $CR0_PE_CLR,%eax
mov %eax,%cr0
/* Clear prefetch queue & correct CS */
ljmp $0, $inrmode
inrmode:
movw %cs,%ax
movw %ax,%ds
movw %ax,%es
movw %ax,%fs
movw %ax,%gs
movw %ax,%ss
/* Clear out the high 16-bits of ESP */
/* This is needed because I have one */
/* machine that hangs when booted to dos if */
/* anything other than 0x0000 is in the high */
/* 16-bits of ESP. Even though real-mode */
/* code should only use SP and not ESP. */
xorl %esp,%esp
movw stack16,%sp
/* Put the return address back onto the stack */
pushw (code16ret)
/* Load IDTR with real mode value */
lidt rmode_idtptr
sti /* These are ok now */
/* Now return in r-mode! */
ret
/*
* Needed for enabling the a20 address line
*/
.code16
empty_8042:
.word 0x00eb,0x00eb // jmp $+2, jmp $+2
inb $0x64,%al
testb $0x02,%al
jnz empty_8042
ret
/*
* Enable the A20 address line (to allow access to over 1mb)
*/
EXTERN(_EnableA20)
.code32
pushal
call switch_to_real
.code16
call empty_8042
movb $0xD1,%al // command write
outb %al,$0x64
call empty_8042
mov $0xDF,%al // A20 on
out %al,$0x60
call empty_8042
call switch_to_prot
.code32
popal
ret
/*
* Disable the A20 address line
*/
EXTERN(_DisableA20)
.code32
pushal
call switch_to_real
.code16
call empty_8042
movb $0xD1,%al // command write
outb %al,$0x64
call empty_8042
mov $0xDD,%al // A20 off
out %al,$0x60
call empty_8042
call switch_to_prot
.code32
popal
ret
/* 16-bit stack pointer */
stack16:
.word STACK16ADDR
/* 32-bit stack pointer */
stack32:
.long STACK32ADDR
/* 16-bit return address */
code16ret:
.long 0
/* 32-bit return address */
code32ret:
.long 0
.p2align 2 /* force 4-byte alignment */
gdt:
/* NULL Descriptor */
.word 0x0000
.word 0x0000
.word 0x0000
.word 0x0000
/* 32-bit flat CS */
.word 0xFFFF
.word 0x0000
.word 0x9A00
.word 0x00CF
/* 32-bit flat DS */
.word 0xFFFF
.word 0x0000
.word 0x9200
.word 0x00CF
/* 16-bit real mode CS */
.word 0xFFFF
.word 0x0000
.word 0x9E00
.word 0x0000
/* 16-bit real mode DS */
.word 0xFFFF
.word 0x0000
.word 0x9200
.word 0x0000
/* GDT table pointer */
gdtptr:
.word 0x27 /* Limit */
.long gdt /* Base Address */
/* Real-mode IDT pointer */
rmode_idtptr:
.word 0x3ff /* Limit */
.long 0 /* Base Address */
EXTERN(_BootDrive)
.long 0
EXTERN(_BootPartition)
.long 0

View File

@@ -1,62 +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>
EXTERN(_ChainLoadBiosBootSectorCode)
.code32
call switch_to_real
.code16
/* Set the boot drive */
movb (_BootDrive),%dl
/* Load segment registers */
cli
movw $0x0000,%bx
movw %bx,%ds
movw %bx,%es
movw %bx,%fs
movw %bx,%gs
movw %bx,%ss
movw $0x7C00,%sp
ljmpl $0x0000,$0x7C00
EXTERN(_SoftReboot)
.code32
call switch_to_real
.code16
movw $0x40,%ax
movw %ax,%ds
movw $0x72,%si
// Set the word at location 40:72 to 1234h
movw $0x1234,(%si)
// and jump to location FFFF:0 in ROM
ljmpl $0xFFFF,$0x0000

View File

@@ -1,132 +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>
EXTERN(_DriveMapInt13HandlerStart)
Int13Handler:
pushw %bp
movw %sp,%bp
pushw %ax
pushw %cx
pushw %si
cld
/* Get callers flags from stack */
movw 0x06(%bp),%ax
movw %ax,%cs:(CallersFlags - Int13Handler)
/* Save the drive number they passed in */
movb %dl,%cs:(PassedInDriveNumber - Int13Handler)
/* Now we need to perform the mapping */
xorw %cx,%cx
movw $(Int13HandlerMapCount - Int13Handler),%si
/* Get the count of drives in the map list */
movb %cs:(%si),%cl
incw %si
/* If the map list is empty then just call the old int 13h handler */
cmpb $0,%cl
jz CallOldInt13Handler
GetMappedDriveNumberLoop:
/* Get the next drive number in the list */
lodsw %cs:(%si),%ax
/* Check to see if it's the one they are calling int 13h for */
cmpb %al,%dl
/* If not get the next one */
jne GetMappedDriveNumberLoopNext
/* If we get here then we have found a mapped drive */
/* Send new drive number on to the old int 13h handler */
movb %ah,%dl
/* Call BIOS Int 13 Handler */
jmp CallOldInt13Handler
GetMappedDriveNumberLoopNext:
loop GetMappedDriveNumberLoop
CallOldInt13Handler:
/* Restore the registers we changed off the stack */
popw %si
popw %cx
popw %ax
/* Put flags onto stack */
pushw %cs:(CallersFlags - Int13Handler)
/* Call old int 13h handler with new drive number */
.byte 0x9a /* lcall */
EXTERN(_DriveMapOldInt13HandlerAddress)
.word 0
.word 0
/* Update the callers flags with the values the BIOS returned */
pushw %ax
pushf
popw %ax
movw %ax,0x06(%bp)
popw %ax
/* Restore the callers drive number */
movb %cs:(PassedInDriveNumber - Int13Handler),%dl
popw %bp
iret
CallersFlags:
.word 0
PassedInDriveNumber:
.byte 0
EXTERN(_DriveMapInt13HandlerMapList)
Int13HandlerMapCount:
.byte 0
Int13HandlerDrive1:
.byte 0
Int13HandlerDriveNew1:
.byte 0
Int13HandlerDrive2:
.byte 0
Int13HandlerDriveNew2:
.byte 0
Int13HandlerDrive3:
.byte 0
Int13HandlerDriveNew3:
.byte 0
Int13HandlerDrive4:
.byte 0
Int13HandlerDriveNew4:
.byte 0
EXTERN(_DriveMapInt13HandlerEnd)

View File

@@ -1,233 +0,0 @@
; FATHELP.ASM
; FAT12/16 Boot Sector Helper Code
; Copyright (c) 1998, 2001, 2002, 2003 Brian Palmer
;org 8000h
segment .text
bits 16
BootSectorStackTop equ 0x7bf2
DataAreaStartHigh equ 0x2
DataAreaStartLow equ 0x4
BiosCHSDriveSizeHigh equ 0x6
BiosCHSDriveSizeLow equ 0x8
BiosCHSDriveSize equ 0x8
ReadSectorsOffset equ 0xa
ReadClusterOffset equ 0xc
PutCharsOffset equ 0xe
OEMName equ 3
BytesPerSector equ 11
SectsPerCluster equ 13
ReservedSectors equ 14
NumberOfFats equ 16
MaxRootEntries equ 17
TotalSectors equ 19
MediaDescriptor equ 21
SectorsPerFat equ 22
SectorsPerTrack equ 24
NumberOfHeads equ 26
HiddenSectors equ 28
TotalSectorsBig equ 32
BootDrive equ 36
Reserved equ 37
ExtendSig equ 38
SerialNumber equ 39
VolumeLabel equ 43
FileSystem equ 54
BootPartition equ 0x7dfd
; This code will be stored in the first 512 bytes
; of freeldr.sys. The first 3 bytes will be a jmp
; instruction to skip past the FAT helper code
; that is stored in the rest of the 512 bytes.
;
; This code is loaded at 0000:8000 so we have to
; encode a jmp instruction to jump to 0000:8200
global _mainCRTStartup ; For Mingw32 builds where the linker looks for this symbol
_mainCRTStartup:
global start
start:
db 0xe9
db 0xfd
db 0x01
; Now starts the extra boot code that we will store
; in the first 512 bytes of freeldr.sys. This code
; allows the FAT12/16 bootsector to navigate the
; FAT table so that we can still load freeldr.sys
; even if it is fragmented.
FatHelperEntryPoint:
push ax ; First save AX - the start cluster of freeldr.sys
; Display "Loading FreeLoader..." message
mov esi,msgLoading ; Loading message
call [bp-PutCharsOffset] ; Display it
call ReadFatIntoMemory
pop ax ; Restore AX (start cluster)
; AX has start cluster of freeldr.sys
mov bx,800h
mov es,bx
LoadFile:
push ax
call IsFat12
pop ax
jnc LoadFile2
cmp ax,0ff8h ; Check to see if this is the last cluster in the chain
jmp LoadFile3
LoadFile2:
cmp ax,0fff8h
LoadFile3:
jae LoadFile_Done ; If so continue, if not then read then next one
push ax
xor bx,bx ; Load ROSLDR starting at 0000:8000h
push es
call [bp-ReadClusterOffset]
pop es
xor bx,bx
mov bl,BYTE [BYTE bp+SectsPerCluster]
shl bx,5 ; BX = BX * 512 / 16
mov ax,es ; Increment the load address by
add ax,bx ; The size of a cluster
mov es,ax
call IsFat12
pop ax
push es
jnc LoadFile4
call GetFatEntry12 ; Get the next entry
jmp LoadFile5
LoadFile4:
call GetFatEntry16
LoadFile5:
pop es
jmp LoadFile ; Load the next cluster (if any)
LoadFile_Done:
mov dl,BYTE [BYTE bp+BootDrive] ; Load the boot drive into DL
mov dh,[BootPartition] ; Load the boot partition into DH
push WORD 0x0000
push WORD 0x8000 ; We will do a far return to 0000:8000h
retf ; Transfer control to ROSLDR
; Reads the entire FAT into memory at 7000:0000
ReadFatIntoMemory:
mov ax,WORD [BYTE bp+HiddenSectors]
mov dx,WORD [BYTE bp+HiddenSectors+2]
add ax,WORD [BYTE bp+ReservedSectors]
adc dx,byte 0
mov cx,WORD [BYTE bp+SectorsPerFat]
mov bx,7000h
mov es,bx
xor bx,bx
call [bp-ReadSectorsOffset]
ret
; Returns the FAT entry for a given cluster number for 16-bit FAT
; On entry AX has cluster number
; On return AX has FAT entry for that cluster
GetFatEntry16:
mov cx,2 ; AX = AX * 2 (since FAT16 entries are 2 bytes)
mul cx
shl dx,12
mov bx,7000h
add bx,dx
mov es,bx
mov bx,ax ; Restore FAT entry offset
mov ax,WORD [es:bx] ; Get FAT entry
ret
; Returns the FAT entry for a given cluster number for 12-bit FAT
; On entry AX has cluster number
; On return AX has FAT entry for that cluster
GetFatEntry12:
push ax
mov cx,ax
shr ax,1
add ax,cx ; AX = AX * 1.5 (AX = AX + (AX / 2)) (since FAT12 entries are 12 bits)
mov bx,7000h
mov es,bx
mov bx,ax ; Put FAT entry offset into BX
mov ax,WORD [es:bx] ; Get FAT entry
pop cx ; Get cluster number from stack
and cx,1
jz UseLow12Bits
and ax,0fff0h
shr ax,4
jmp GetFatEntry12_Done
UseLow12Bits:
and ax,0fffh
GetFatEntry12_Done:
ret
; Returns CF = 1 if this is a FAT12 file system
; Otherwise CF = 0 for FAT16
IsFat12:
mov ebx,DWORD [BYTE bp-DataAreaStartLow]
; EBX now has the number of the starting sector of the data area
; starting from the beginning of the disk, so subtrace hidden sectors
sub ebx,DWORD [BYTE bp+HiddenSectors]
xor eax,eax
mov ax,WORD [BYTE bp+TotalSectors]
cmp ax,byte 0
jnz IsFat12_2
mov eax,DWORD [BYTE bp+TotalSectorsBig]
; EAX now contains the number of sectors on the volume
IsFat12_2:
sub eax,ebx ; Subtract data area start sector
xor edx,edx ; from total sectors of volume
; EDX:EAX now contains the number of data sectors on the volume
movzx ebx,BYTE [BYTE bp+SectsPerCluster]
div ebx
; EAX now has the number of clusters on the volume
stc
cmp eax,4085
jb IsFat12_Done
clc
IsFat12_Done:
ret
msgLoading db 'Loading FreeLoader...',0dh,0ah,0
times 510-($-$$) db 0 ; Pad to 510 bytes
dw 0aa55h ; BootSector signature

File diff suppressed because it is too large Load Diff

View File

@@ -1,184 +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_
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
/* PROTOTYPES ***************************************************************/
/* hardware.c */
VOID KeStallExecutionProcessor(U32 Microseconds);
VOID SetComponentInformation(HKEY ComponentKey,
U32 Flags,
U32 Key,
U32 Affinity);
/* hwcpu.c */
VOID DetectCPUs(HKEY SystemKey);
/* 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,635 +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.
*/
#include <freeldr.h>
#include <arch.h>
#include <rtl.h>
#include <debug.h>
#include <mm.h>
#include <portio.h>
#include "../../reactos/registry.h"
#include "hardware.h"
#define MP_FP_SIGNATURE 0x5F504D5F /* "_MP_" */
#define MP_CT_SIGNATURE 0x504D4350 /* "_MP_" */
typedef struct _MP_FLOATING_POINT_TABLE
{
U32 Signature; /* "_MP_" */
U32 PhysicalAddressPointer;
U8 Length;
U8 SpecRev;
U8 Checksum;
U8 FeatureByte[5];
} PACKED MP_FLOATING_POINT_TABLE, *PMP_FLOATING_POINT_TABLE;
typedef struct _MPS_CONFIG_TABLE_HEADER
{
U32 Signature; /* "PCMP" */
U16 BaseTableLength;
U8 SpecRev;
U8 Checksum;
U8 OemIdString[8];
U8 ProductIdString[12];
U32 OemTablePointer;
U16 OemTableLength;
U16 EntryCount;
U32 AddressOfLocalAPIC;
U16 ExtendedTableLength;
U8 ExtendedTableChecksum;
U8 Reserved;
} PACKED MP_CONFIGURATION_TABLE, *PMP_CONFIGURATION_TABLE;
typedef struct _MP_PROCESSOR_ENTRY
{
U8 EntryType;
U8 LocalApicId;
U8 LocalApicVersion;
U8 CpuFlags;
U32 CpuSignature;
U32 FeatureFlags;
U32 Reserved1;
U32 Reserved2;
} PACKED MP_PROCESSOR_ENTRY, *PMP_PROCESSOR_ENTRY;
/* FUNCTIONS ****************************************************************/
static U32
GetCpuSpeed(VOID)
{
U64 Timestamp1;
U64 Timestamp2;
U64 Diff;
/* Read TSC (Time Stamp Counter) */
Timestamp1 = RDTSC();
/* Wait for 0.1 seconds (= 100 milliseconds = 100000 microseconds)*/
KeStallExecutionProcessor(100000);
/* Read TSC (Time Stamp Counter) again */
Timestamp2 = RDTSC();
/* Calculate elapsed time (check for counter overrun) */
if (Timestamp2 > Timestamp1)
{
Diff = Timestamp2 - Timestamp1;
}
else
{
Diff = Timestamp2 + (((U64)-1) - Timestamp1);
}
return (U32)(Diff / 100000);
}
static VOID
DetectCPU(HKEY CpuKey,
HKEY FpuKey)
{
char VendorIdentifier[13];
char Identifier[64];
U32 FeatureSet;
HKEY CpuInstKey;
HKEY FpuInstKey;
U32 eax = 0;
U32 ebx = 0;
U32 ecx = 0;
U32 edx = 0;
U32 *Ptr;
S32 Error;
BOOL SupportTSC = FALSE;
U32 CpuSpeed;
/* Create the CPU instance key */
Error = RegCreateKey(CpuKey,
"0",
&CpuInstKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", (int)Error));
return;
}
/* Create the FPU instance key */
Error = RegCreateKey(FpuKey,
"0",
&FpuInstKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", (int)Error));
return;
}
eax = CpuidSupported();
if (eax & 1)
{
DbgPrint((DPRINT_HWDETECT, "CPUID supported\n"));
/* Get vendor identifier */
GetCpuid(0, &eax, &ebx, &ecx, &edx);
VendorIdentifier[12] = 0;
Ptr = (U32*)&VendorIdentifier[0];
*Ptr = ebx;
Ptr++;
*Ptr = edx;
Ptr++;
*Ptr = ecx;
/* Get Identifier */
GetCpuid(1, &eax, &ebx, &ecx, &edx);
sprintf(Identifier,
"x86 Family %u Model %u Stepping %u",
(unsigned int)((eax >> 8) & 0x0F),
(unsigned int)((eax >> 4) & 0x0F),
(unsigned int)(eax & 0x0F));
FeatureSet = edx;
if (((eax >> 8) & 0x0F) >= 5)
SupportTSC = TRUE;
}
else
{
DbgPrint((DPRINT_HWDETECT, "CPUID not supported\n"));
strcpy(VendorIdentifier, "Unknown");
sprintf(Identifier,
"x86 Family %u Model %u Stepping %u",
(unsigned int)((eax >> 8) & 0x0F),
(unsigned int)((eax >> 4) & 0x0F),
(unsigned int)(eax & 0x0F));
FeatureSet = 0;
}
/* Set 'Conmponent Information' value (CPU and FPU) */
SetComponentInformation(CpuInstKey, 0, 0, 1);
SetComponentInformation(FpuInstKey, 0, 0, 1);
/* Set 'FeatureSet' value (CPU only) */
DbgPrint((DPRINT_HWDETECT, "FeatureSet: %x\n", FeatureSet));
Error = RegSetValue(CpuInstKey,
"FeatureSet",
REG_DWORD,
(PU8)&FeatureSet,
sizeof(U32));
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
/* Set 'Identifier' value (CPU and FPU) */
DbgPrint((DPRINT_HWDETECT, "Identifier: %s\n", Identifier));
Error = RegSetValue(CpuInstKey,
"Identifier",
REG_SZ,
(PU8)Identifier,
strlen(Identifier) + 1);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
Error = RegSetValue(FpuInstKey,
"Identifier",
REG_SZ,
(PU8)Identifier,
strlen(Identifier) + 1);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
/* Set 'VendorIdentifier' value (CPU only) */
DbgPrint((DPRINT_HWDETECT, "Vendor Identifier: %s\n", VendorIdentifier));
Error = RegSetValue(CpuInstKey,
"VendorIdentifier",
REG_SZ,
(PU8)VendorIdentifier,
strlen(VendorIdentifier) + 1);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
/* FIXME: Set 'Update Signature' value (CPU only) */
/* FIXME: Set 'Update Status' value (CPU only) */
/* Set '~MHz' value (CPU only) */
if (SupportTSC)
{
CpuSpeed = GetCpuSpeed();
Error = RegSetValue(CpuInstKey,
"~MHz",
REG_DWORD,
(PU8)&CpuSpeed,
sizeof(U32));
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
}
}
static VOID
SetMpsProcessor(HKEY CpuKey,
HKEY FpuKey,
PMP_PROCESSOR_ENTRY CpuEntry)
{
char VendorIdentifier[13];
char Identifier[64];
char Buffer[8];
U32 FeatureSet;
HKEY CpuInstKey;
HKEY FpuInstKey;
U32 eax = 0;
U32 ebx = 0;
U32 ecx = 0;
U32 edx = 0;
U32 *Ptr;
S32 Error;
U32 CpuSpeed;
/* Get processor instance number */
sprintf(Buffer, "%u", CpuEntry->LocalApicId);
/* Create the CPU instance key */
Error = RegCreateKey(CpuKey,
Buffer,
&CpuInstKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", (int)Error));
return;
}
/* Create the FPU instance key */
Error = RegCreateKey(FpuKey,
Buffer,
&FpuInstKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", (int)Error));
return;
}
/* Get 'VendorIdentifier' */
GetCpuid(0, &eax, &ebx, &ecx, &edx);
VendorIdentifier[12] = 0;
Ptr = (U32*)&VendorIdentifier[0];
*Ptr = ebx;
Ptr++;
*Ptr = edx;
Ptr++;
*Ptr = ecx;
/* Get 'Identifier' */
sprintf(Identifier,
"x86 Family %u Model %u Stepping %u",
(U32)((CpuEntry->CpuSignature >> 8) & 0x0F),
(U32)((CpuEntry->CpuSignature >> 4) & 0x0F),
(U32)(CpuEntry->CpuSignature & 0x0F));
/* Get FeatureSet */
FeatureSet = CpuEntry->FeatureFlags;
/* Set 'Configuration Data' value (CPU and FPU) */
SetComponentInformation(CpuInstKey,
0,
CpuEntry->LocalApicId,
1 << CpuEntry->LocalApicId);
SetComponentInformation(FpuInstKey,
0,
CpuEntry->LocalApicId,
1 << CpuEntry->LocalApicId);
/* Set 'FeatureSet' value (CPU only) */
DbgPrint((DPRINT_HWDETECT, "FeatureSet: %x\n", FeatureSet));
Error = RegSetValue(CpuInstKey,
"FeatureSet",
REG_DWORD,
(PU8)&FeatureSet,
sizeof(U32));
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
/* Set 'Identifier' value (CPU and FPU) */
DbgPrint((DPRINT_HWDETECT, "Identifier: %s\n", Identifier));
Error = RegSetValue(CpuInstKey,
"Identifier",
REG_SZ,
(PU8)Identifier,
strlen(Identifier) + 1);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
Error = RegSetValue(FpuInstKey,
"Identifier",
REG_SZ,
(PU8)Identifier,
strlen(Identifier) + 1);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
/* Set 'VendorIdentifier' value (CPU only) */
DbgPrint((DPRINT_HWDETECT, "Vendor Identifier: %s\n", VendorIdentifier));
Error = RegSetValue(CpuInstKey,
"VendorIdentifier",
REG_SZ,
(PU8)VendorIdentifier,
strlen(VendorIdentifier) + 1);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
/* FIXME: Set 'Update Signature' value (CPU only) */
/* FIXME: Set 'Update Status' value (CPU only) */
/* Set '~MHz' value (CPU only) */
if (((CpuEntry->CpuSignature >> 8) & 0x0F) >= 5)
{
CpuSpeed = GetCpuSpeed();
Error = RegSetValue(CpuInstKey,
"~MHz",
REG_DWORD,
(PU8)&CpuSpeed,
sizeof(U32));
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error));
}
}
}
static PMP_FLOATING_POINT_TABLE
GetMpFloatingPointTable(VOID)
{
PMP_FLOATING_POINT_TABLE FpTable;
char *Ptr;
U8 Sum;
U32 Length;
U32 i;
FpTable = (PMP_FLOATING_POINT_TABLE)0xF0000;
while ((U32)FpTable < 0x100000)
{
if (FpTable->Signature == MP_FP_SIGNATURE)
{
Length = FpTable->Length * 0x10;
Ptr = (char *)FpTable;
Sum = 0;
for (i = 0; i < Length; i++)
{
Sum += Ptr[i];
}
DbgPrint((DPRINT_HWDETECT,
"Checksum: %u\n",
Sum));
if (Sum != 0)
{
DbgPrint((DPRINT_HWDETECT,
"Invalid MP floating point checksum: %u\n",
Sum));
return NULL;
}
return FpTable;
}
FpTable = (PMP_FLOATING_POINT_TABLE)((U32)FpTable + 0x10);
}
return NULL;
}
static PMP_CONFIGURATION_TABLE
GetMpConfigurationTable(PMP_FLOATING_POINT_TABLE FpTable)
{
PMP_CONFIGURATION_TABLE ConfigTable;
char *Ptr;
U8 Sum;
U32 Length;
U32 i;
if (FpTable->FeatureByte[0] != 0 ||
FpTable->PhysicalAddressPointer == 0)
return NULL;
ConfigTable = (PMP_CONFIGURATION_TABLE)FpTable->PhysicalAddressPointer;
if (ConfigTable->Signature != MP_CT_SIGNATURE)
return NULL;
DbgPrint((DPRINT_HWDETECT,
"MP Configuration Table at: %x\n",
(U32)ConfigTable));
/* Calculate base table checksum */
Length = ConfigTable->BaseTableLength;
Ptr = (char *)ConfigTable;
Sum = 0;
for (i = 0; i < Length; i++)
{
Sum += Ptr[i];
}
DbgPrint((DPRINT_HWDETECT,
"MP Configuration Table base checksum: %u\n",
Sum));
if (Sum != 0)
{
DbgPrint((DPRINT_HWDETECT,
"Invalid MP Configuration Table base checksum: %u\n",
Sum));
return NULL;
}
if (ConfigTable->ExtendedTableLength != 0)
{
/* FIXME: Check extended table */
}
return ConfigTable;
}
static BOOL
DetectMps(HKEY CpuKey,
HKEY FpuKey)
{
PMP_FLOATING_POINT_TABLE FpTable;
PMP_CONFIGURATION_TABLE ConfigTable;
PMP_PROCESSOR_ENTRY CpuEntry;
char *Ptr;
U32 Offset;
/* Get floating point table */
FpTable = GetMpFloatingPointTable();
if (FpTable == NULL)
return FALSE;
DbgPrint((DPRINT_HWDETECT,
"MP Floating Point Table at: %x\n",
(U32)FpTable));
if (FpTable->FeatureByte[0] == 0)
{
/* Get configuration table */
ConfigTable = GetMpConfigurationTable(FpTable);
if (ConfigTable == NULL)
{
DbgPrint((DPRINT_HWDETECT,
"Failed to find the MP Configuration Table\n"));
return FALSE;
}
Offset = sizeof(MP_CONFIGURATION_TABLE);
while (Offset < ConfigTable->BaseTableLength)
{
Ptr = (char*)((U32)ConfigTable + Offset);
switch (*Ptr)
{
case 0:
CpuEntry = (PMP_PROCESSOR_ENTRY)Ptr;
DbgPrint((DPRINT_HWDETECT, "Processor Entry\n"));
DbgPrint((DPRINT_HWDETECT,
"APIC Id %u APIC Version %u Flags %x Signature %x Feature %x\n",
CpuEntry->LocalApicId,
CpuEntry->LocalApicVersion,
CpuEntry->CpuFlags,
CpuEntry->CpuSignature,
CpuEntry->FeatureFlags));
DbgPrint((DPRINT_HWDETECT,
"Processor %u: x86 Family %u Model %u Stepping %u\n",
CpuEntry->LocalApicId,
(U32)((CpuEntry->CpuSignature >> 8) & 0x0F),
(U32)((CpuEntry->CpuSignature >> 4) & 0x0F),
(U32)(CpuEntry->CpuSignature & 0x0F)));
SetMpsProcessor(CpuKey, FpuKey, CpuEntry);
Offset += 0x14;
break;
case 1:
DbgPrint((DPRINT_HWDETECT, "Bus Entry\n"));
Offset += 0x08;
break;
case 2:
DbgPrint((DPRINT_HWDETECT, "I/0 APIC Entry\n"));
Offset += 0x08;
break;
case 3:
DbgPrint((DPRINT_HWDETECT, "I/0 Interrupt Assignment Entry\n"));
Offset += 0x08;
break;
case 4:
DbgPrint((DPRINT_HWDETECT, "Local Interrupt Assignment Entry\n"));
Offset += 0x08;
break;
default:
DbgPrint((DPRINT_HWDETECT, "Unknown Entry %u\n",(U32)*Ptr));
return FALSE;
}
}
}
else
{
DbgPrint((DPRINT_HWDETECT,
"Unsupported MPS configuration: %x\n",
FpTable->FeatureByte[0]));
/* FIXME: Identify default configurations */
return FALSE;
}
return TRUE;
}
VOID
DetectCPUs(HKEY SystemKey)
{
HKEY CpuKey;
HKEY FpuKey;
S32 Error;
/* Create the 'CentralProcessor' key */
Error = RegCreateKey(SystemKey,
"CentralProcessor",
&CpuKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", (int)Error));
return;
}
/* Create the 'FloatingPointProcessor' key */
Error = RegCreateKey(SystemKey,
"FloatingPointProcessor",
&FpuKey);
if (Error != ERROR_SUCCESS)
{
DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", (int)Error));
return;
}
/* Detect CPUs */
if (!DetectMps(CpuKey, FpuKey))
{
DetectCPU(CpuKey, FpuKey);
}
}
/* EOF */

View File

@@ -1,131 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2003 Eric Kohl <ekohl@rz-online.de>
*
* 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>
/*
* U32 CpuidSupported(VOID);
*
* RETURNS:
* 0x00000001: CPU supports the CPUID instruction
* 0x00000300: Found 80386 CPU
* 0x00000400: Found 80486 CPU without CPUID support
*/
EXTERN(_CpuidSupported)
.code32
pushl %ecx /* save ECX */
pushfl /* push original EFLAGS */
popl %eax /* get original EFLAGS */
movl %eax,%ecx /* save original EFLAGS */
xorl $0x40000,%eax /* flip AC bit in EFLAGS */
pushl %eax /* save new EFLAGS value on stack */
popfl /* replace current EFLAGS value */
pushfl /* get new EFLAGS */
popl %eax /* store new EFLAGS in EAX */
xorl %ecx, %eax /* can't toggle AC bit, processor=80386 */
movl $0x300,%eax /* return processor id */
jz NoCpuid /* jump if 80386 processor */
pushl %ecx
popfl /* restore AC bit in EFLAGS first */
movl %ecx,%eax /* get original EFLAGS */
xorl $0x200000,%eax /* flip ID bit in EFLAGS */
pushl %eax /* save new EFLAGS value on stack */
popfl /* replace current EFLAGS value */
pushfl /* get new EFLAGS */
popl %eax /* store new EFLAGS in EAX */
xorl %ecx,%eax /* can't toggle ID bit, */
movl $0x400,%eax /* return processor id */
je NoCpuid /* processor=80486 */
movl $1,%eax /* CPUID supported */
NoCpuid:
pushl %ecx
popfl /* restore EFLAGS */
popl %ecx /* retore ECX */
ret
/*
* VOID GetCpuid(U32 Level, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx);
*/
EXTERN(_GetCpuid)
.code32
pushl %ebp
movl %esp,%ebp
pushl %eax
pushl %ebx
pushl %ecx
pushl %edx
pushl %esi
movl 0x08(%ebp),%eax
cpuid
movl 0x0C(%ebp),%esi
movl %eax, (%esi)
movl 0x10(%ebp),%esi
movl %ebx, (%esi)
movl 0x14(%ebp),%esi
movl %ecx, (%esi)
movl 0x18(%ebp),%esi
movl %edx, (%esi)
popl %esi
popl %edx
popl %ecx
popl %ebx
popl %eax
movl %ebp,%esp
popl %ebp
ret
/*
* U64 RDTSC(VOID);
*/
EXTERN(_RDTSC)
.code32
rdtsc
ret
/* EOF */

View File

@@ -1,487 +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>
typedef struct
{
U8 PacketSize; // 00h - Size of packet (10h or 18h)
U8 Reserved; // 01h - Reserved (0)
U16 LBABlockCount; // 02h - Number of blocks to transfer (max 007Fh for Phoenix EDD)
U16 TransferBufferOffset; // 04h - Transfer buffer offset (seg:off)
U16 TransferBufferSegment; // Transfer buffer segment (seg:off)
U64 LBAStartBlock; // 08h - Starting absolute block number
U64 TransferBuffer64; // 10h - (EDD-3.0, optional) 64-bit flat address of transfer buffer
// used if DWORD at 04h is FFFFh:FFFFh
} PACKED I386_DISK_ADDRESS_PACKET, *PI386_DISK_ADDRESS_PACKET;
/////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
/////////////////////////////////////////////////////////////////////////////////////////////
#ifdef __i386__
BOOL DiskReadLogicalSectors(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer)
{
DbgPrint((DPRINT_DISK, "DiskReadLogicalSectors() DriveNumber: 0x%x SectorNumber: %I64d SectorCount: %d Buffer: 0x%x\n", DriveNumber, SectorNumber, SectorCount, Buffer));
//
// Check to see if it is a fixed disk drive
// If so then check to see if Int13 extensions work
// If they do then use them, otherwise default back to BIOS calls
//
if ((DriveNumber >= 0x80) && DiskInt13ExtensionsSupported(DriveNumber))
{
DbgPrint((DPRINT_DISK, "Using Int 13 Extensions for read. DiskInt13ExtensionsSupported(%d) = %s\n", DriveNumber, DiskInt13ExtensionsSupported(DriveNumber) ? "TRUE" : "FALSE"));
//
// LBA is easy, nothing to calculate
// Just do the read
//
return DiskReadLogicalSectorsLBA(DriveNumber, SectorNumber, SectorCount, Buffer);
}
else
{
// LBA is not supported default to the CHS calls
return DiskReadLogicalSectorsCHS(DriveNumber, SectorNumber, SectorCount, Buffer);
}
return TRUE;
}
BOOL DiskReadLogicalSectorsLBA(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer)
{
REGS RegsIn;
REGS RegsOut;
U32 RetryCount;
PI386_DISK_ADDRESS_PACKET Packet = (PI386_DISK_ADDRESS_PACKET)(BIOSCALLBUFFER);
DbgPrint((DPRINT_DISK, "DiskReadLogicalSectorsLBA() DriveNumber: 0x%x SectorNumber: %I64d SectorCount: %d Buffer: 0x%x\n", DriveNumber, SectorNumber, SectorCount, Buffer));
// BIOS int 0x13, function 42h - IBM/MS INT 13 Extensions - EXTENDED READ
RegsIn.b.ah = 0x42; // Subfunction 42h
RegsIn.b.dl = DriveNumber; // Drive number in DL (0 - floppy, 0x80 - harddisk)
RegsIn.x.ds = BIOSCALLBUFSEGMENT; // DS:SI -> disk address packet
RegsIn.w.si = BIOSCALLBUFOFFSET;
// Setup disk address packet
RtlZeroMemory(Packet, sizeof(I386_DISK_ADDRESS_PACKET));
Packet->PacketSize = sizeof(I386_DISK_ADDRESS_PACKET);
Packet->Reserved = 0;
Packet->LBABlockCount = SectorCount;
Packet->TransferBufferOffset = ((U32)Buffer) & 0x0F;
Packet->TransferBufferSegment = ((U32)Buffer) >> 4;
Packet->LBAStartBlock = SectorNumber;
Packet->TransferBuffer64 = 0;
// BIOS int 0x13, function 42h - IBM/MS INT 13 Extensions - EXTENDED READ
// Return:
// CF clear if successful
// AH = 00h
// CF set on error
// AH = error code
// disk address packet's block count field set to the
// number of blocks successfully transferred
// Retry 3 times
for (RetryCount=0; RetryCount<3; RetryCount++)
{
Int386(0x13, &RegsIn, &RegsOut);
// If it worked return TRUE
if (INT386_SUCCESS(RegsOut))
{
return TRUE;
}
// If it was a corrected ECC error then the data is still good
else if (RegsOut.b.ah == 0x11)
{
return TRUE;
}
// If it failed the do the next retry
else
{
DiskResetController(DriveNumber);
continue;
}
}
// If we get here then the read failed
DiskError("Disk Read Failed", RegsOut.b.ah);
return FALSE;
}
BOOL DiskReadLogicalSectorsCHS(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer)
{
U32 PhysicalSector;
U32 PhysicalHead;
U32 PhysicalTrack;
GEOMETRY DriveGeometry;
U32 NumberOfSectorsToRead;
REGS RegsIn;
REGS RegsOut;
U32 RetryCount;
DbgPrint((DPRINT_DISK, "DiskReadLogicalSectorsCHS()\n"));
//
// Get the drive geometry
//
if (!DiskGetDriveGeometry(DriveNumber, &DriveGeometry))
{
return FALSE;
}
while (SectorCount)
{
//
// Calculate the physical disk offsets
//
PhysicalSector = 1 + (SectorNumber % DriveGeometry.Sectors);
PhysicalHead = (SectorNumber / DriveGeometry.Sectors) % DriveGeometry.Heads;
PhysicalTrack = (SectorNumber / DriveGeometry.Sectors) / DriveGeometry.Heads;
//
// Calculate how many sectors we need to read this round
//
if (PhysicalSector > 1)
{
if (SectorCount >= (DriveGeometry.Sectors - (PhysicalSector - 1)))
NumberOfSectorsToRead = (DriveGeometry.Sectors - (PhysicalSector - 1));
else
NumberOfSectorsToRead = SectorCount;
}
else
{
if (SectorCount >= DriveGeometry.Sectors)
NumberOfSectorsToRead = DriveGeometry.Sectors;
else
NumberOfSectorsToRead = SectorCount;
}
//
// Make sure the read is within the geometry boundaries
//
if ((PhysicalHead >= DriveGeometry.Heads) ||
(PhysicalTrack >= DriveGeometry.Cylinders) ||
((NumberOfSectorsToRead + PhysicalSector) > (DriveGeometry.Sectors + 1)) ||
(PhysicalSector > DriveGeometry.Sectors))
{
DiskError("Disk read exceeds drive geometry limits.", 0);
return FALSE;
}
// BIOS Int 13h, function 2 - Read Disk Sectors
// AH = 02h
// AL = number of sectors to read (must be nonzero)
// CH = low eight bits of cylinder number
// CL = sector number 1-63 (bits 0-5)
// high two bits of cylinder (bits 6-7, hard disk only)
// DH = head number
// DL = drive number (bit 7 set for hard disk)
// ES:BX -> data buffer
// Return:
// CF set on error
// if AH = 11h (corrected ECC error), AL = burst length
// CF clear if successful
// AH = status
// AL = number of sectors transferred
// (only valid if CF set for some BIOSes)
RegsIn.b.ah = 0x02;
RegsIn.b.al = NumberOfSectorsToRead;
RegsIn.b.ch = (PhysicalTrack & 0xFF);
RegsIn.b.cl = (PhysicalSector + ((PhysicalTrack & 0x300) >> 2));
RegsIn.b.dh = PhysicalHead;
RegsIn.b.dl = DriveNumber;
RegsIn.w.es = ((U32)Buffer) >> 4;
RegsIn.w.bx = ((U32)Buffer) & 0x0F;
//
// Perform the read
// Retry 3 times
//
for (RetryCount=0; RetryCount<3; RetryCount++)
{
Int386(0x13, &RegsIn, &RegsOut);
// If it worked break out
if (INT386_SUCCESS(RegsOut))
{
break;
}
// If it was a corrected ECC error then the data is still good
else if (RegsOut.b.ah == 0x11)
{
break;
}
// If it failed the do the next retry
else
{
DiskResetController(DriveNumber);
continue;
}
}
// If we retried 3 times then fail
if (RetryCount >= 3)
{
DiskError("Disk Read Failed", RegsOut.b.ah);
return FALSE;
}
// I have learned that not all bioses return
// the sector read count in the AL register (at least mine doesn't)
// even if the sectors were read correctly. So instead
// of checking the sector read count we will rely solely
// on the carry flag being set on error
Buffer += (NumberOfSectorsToRead * DriveGeometry.BytesPerSector);
SectorCount -= NumberOfSectorsToRead;
SectorNumber += NumberOfSectorsToRead;
}
return TRUE;
}
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 DiskGetDriveParameters(U32 DriveNumber, PGEOMETRY Geometry)
{
REGS RegsIn;
REGS RegsOut;
U32 Cylinders;
DbgPrint((DPRINT_DISK, "DiskGetDriveParameters()\n"));
// BIOS Int 13h, function 08h - Get drive parameters
// AH = 08h
// DL = drive (bit 7 set for hard disk)
// ES:DI = 0000h:0000h to guard against BIOS bugs
// Return:
// CF set on error
// AH = status (07h)
// CF clear if successful
// AH = 00h
// AL = 00h on at least some BIOSes
// BL = drive type (AT/PS2 floppies only)
// CH = low eight bits of maximum cylinder number
// CL = maximum sector number (bits 5-0)
// high two bits of maximum cylinder number (bits 7-6)
// DH = maximum head number
// DL = number of drives
// ES:DI -> drive parameter table (floppies only)
RegsIn.b.ah = 0x08;
RegsIn.b.dl = DriveNumber;
RegsIn.w.es = 0x0000;
RegsIn.w.di = 0x0000;
// Get drive parameters
Int386(0x13, &RegsIn, &RegsOut);
if (!INT386_SUCCESS(RegsOut))
{
return FALSE;
}
Cylinders = (RegsOut.b.cl & 0xC0) << 2;
Cylinders += RegsOut.b.ch;
Cylinders++;
Geometry->Cylinders = Cylinders;
Geometry->Heads = RegsOut.b.dh + 1;
Geometry->Sectors = RegsOut.b.cl & 0x3F;
Geometry->BytesPerSector = 512; // Just assume 512 bytes per sector
return TRUE;
}
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;
}
U32 DiskGetCacheableBlockCount(U32 DriveNumber)
{
GEOMETRY Geometry;
// Get the disk geometry
// If this fails then we will just return 1 sector to be safe
if (!DiskGetDriveParameters(DriveNumber, &Geometry))
{
return 1;
}
// If LBA is supported then the block size will be 64 sectors (32k)
// If not then the block size is the size of one track
if (DiskInt13ExtensionsSupported(DriveNumber))
{
return 64;
}
else
{
return Geometry.Sectors;
}
}
#endif // defined __i386__

View File

@@ -1,224 +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>
.p2align 2 /* force 4-byte alignment */
EXTERN(i386idt)
/* Exception 0 - Divide By Zero */
.word i386DivideByZero /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Flags, Zero Byte */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 1 - Debug Exception */
.word i386DebugException /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 2 - NMI */
.word i386NMIException /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 3 - Breakpoint (INT 3) */
.word i386Breakpoint /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 4 - Overflow (INTO with EFLAGS[OF] set) */
.word i386Overflow /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 5 - Bound Exception */
.word i386BoundException /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 6 - Invalid Opcode */
.word i386InvalidOpcode /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 7 - FPU Not Available */
.word i386FPUNotAvailable /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 8 - Double Fault */
.word i386DoubleFault /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 9 - Coprocessor Segment Overrun */
.word i386CoprocessorSegment /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 10 (0x0A) - Invalid TSS */
.word i386InvalidTSS /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 11 (0x0B) - Segment Not Present */
.word i386SegmentNotPresent /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 12 (0x0C) - Stack Exception */
.word i386StackException /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 13 (0x0D) - General Protection Fault */
.word i386GeneralProtectionFault /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 14 (0x0E) - Page Fault */
.word i386PageFault /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 15 (0x0F) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 16 (0x10) - Coprocessor Error */
.word i386CoprocessorError /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 17 (0x11) - Alignment Check */
.word i386AlignmentCheck /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 18 (0x12) - Machine Check */
.word i386MachineCheck /* Offset 0 - 15 */
.word 0x0008 /* Selector */
.word 0x8e00 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 19 (0x13) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 20 (0x14) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 21 (0x15) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 22 (0x16) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 23 (0x17) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 24 (0x18) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 25 (0x19) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 26 (0x1A) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 27 (0x1B) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 28 (0x1C) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 29 (0x1D) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 30 (0x1E) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* Exception 31 (0x1F) - Reserved */
.word 0x0000 /* Offset 0 - 15 */
.word 0x0000 /* Selector */
.word 0x0000 /* Zero byte, flags */
.word 0x0000 /* Offset 16 - 31 */
/* IDT table pointer */
EXTERN(i386idtptr)
.word (i386idtptr-i386idt) /* Limit */
.long i386idt /* Base Address */

View File

@@ -1,216 +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 <mm.h>
#include <debug.h>
#include <rtl.h>
#include <portio.h>
U32 GetExtendedMemorySize(VOID)
{
REGS RegsIn;
REGS RegsOut;
U32 MemorySize;
DbgPrint((DPRINT_MEMORY, "GetExtendedMemorySize()\n"));
// Int 15h AX=E801h
// Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS
//
// AX = E801h
// Return:
// CF clear if successful
// AX = extended memory between 1M and 16M, in K (max 3C00h = 15MB)
// BX = extended memory above 16M, in 64K blocks
// CX = configured memory 1M to 16M, in K
// DX = configured memory above 16M, in 64K blocks
// CF set on error
RegsIn.w.ax = 0xE801;
Int386(0x15, &RegsIn, &RegsOut);
DbgPrint((DPRINT_MEMORY, "Int15h AX=E801h\n"));
DbgPrint((DPRINT_MEMORY, "AX = 0x%x\n", RegsOut.w.ax));
DbgPrint((DPRINT_MEMORY, "BX = 0x%x\n", RegsOut.w.bx));
DbgPrint((DPRINT_MEMORY, "CX = 0x%x\n", RegsOut.w.cx));
DbgPrint((DPRINT_MEMORY, "DX = 0x%x\n", RegsOut.w.dx));
DbgPrint((DPRINT_MEMORY, "CF set = %s\n\n", (RegsOut.x.eflags & I386FLAG_CF) ? "TRUE" : "FALSE"));
if (INT386_SUCCESS(RegsOut))
{
// If AX=BX=0000h the use CX and DX
if (RegsOut.w.ax == 0)
{
// Return extended memory size in K
MemorySize = RegsOut.w.dx * 64;
MemorySize += RegsOut.w.cx;
return MemorySize;
}
else
{
// Return extended memory size in K
MemorySize = RegsOut.w.bx * 64;
MemorySize += RegsOut.w.ax;
return MemorySize;
}
}
// If we get here then Int15 Func E801h didn't work
// So try Int15 Func 88h
// Int 15h AH=88h
// SYSTEM - GET EXTENDED MEMORY SIZE (286+)
//
// AH = 88h
// Return:
// CF clear if successful
// AX = number of contiguous KB starting at absolute address 100000h
// CF set on error
// AH = status
// 80h invalid command (PC,PCjr)
// 86h unsupported function (XT,PS30)
RegsIn.b.ah = 0x88;
Int386(0x15, &RegsIn, &RegsOut);
DbgPrint((DPRINT_MEMORY, "Int15h AH=88h\n"));
DbgPrint((DPRINT_MEMORY, "AX = 0x%x\n", RegsOut.w.ax));
DbgPrint((DPRINT_MEMORY, "CF set = %s\n\n", (RegsOut.x.eflags & I386FLAG_CF) ? "TRUE" : "FALSE"));
if (INT386_SUCCESS(RegsOut) && RegsOut.w.ax != 0)
{
MemorySize = RegsOut.w.ax;
return MemorySize;
}
// If we get here then Int15 Func 88h didn't work
// So try reading the CMOS
WRITE_PORT_UCHAR((PUCHAR)0x70, 0x31);
MemorySize = READ_PORT_UCHAR((PUCHAR)0x71);
MemorySize = (MemorySize & 0xFFFF);
MemorySize = (MemorySize << 8);
DbgPrint((DPRINT_MEMORY, "Int15h Failed\n"));
DbgPrint((DPRINT_MEMORY, "CMOS reports: 0x%x\n", MemorySize));
return MemorySize;
}
U32 GetConventionalMemorySize(VOID)
{
REGS Regs;
DbgPrint((DPRINT_MEMORY, "GetConventionalMemorySize()\n"));
// Int 12h
// BIOS - GET MEMORY SIZE
//
// Return:
// AX = kilobytes of contiguous memory starting at absolute address 00000h
//
// This call returns the contents of the word at 0040h:0013h;
// in PC and XT, this value is set from the switches on the motherboard
Regs.w.ax = 0;
Int386(0x12, &Regs, &Regs);
DbgPrint((DPRINT_MEMORY, "Int12h\n"));
DbgPrint((DPRINT_MEMORY, "AX = 0x%x\n\n", Regs.w.ax));
return (U32)Regs.w.ax;
}
U32 GetBiosMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MaxMemoryMapSize)
{
REGS Regs;
U32 MapCount;
DbgPrint((DPRINT_MEMORY, "GetBiosMemoryMap()\n"));
// Int 15h AX=E820h
// Newer BIOSes - GET SYSTEM MEMORY MAP
//
// AX = E820h
// EAX = 0000E820h
// EDX = 534D4150h ('SMAP')
// EBX = continuation value or 00000000h to start at beginning of map
// ECX = size of buffer for result, in bytes (should be >= 20 bytes)
// ES:DI -> buffer for result
// Return:
// CF clear if successful
// EAX = 534D4150h ('SMAP')
// ES:DI buffer filled
// EBX = next offset from which to copy or 00000000h if all done
// ECX = actual length returned in bytes
// CF set on error
// AH = error code (86h)
Regs.x.eax = 0x0000E820;
Regs.x.edx = 0x534D4150; // ('SMAP')
Regs.x.ebx = 0x00000000;
Regs.x.ecx = sizeof(BIOS_MEMORY_MAP);
Regs.w.es = BIOSCALLBUFSEGMENT;
Regs.w.di = BIOSCALLBUFOFFSET;
for (MapCount=0; MapCount<MaxMemoryMapSize; MapCount++)
{
Int386(0x15, &Regs, &Regs);
DbgPrint((DPRINT_MEMORY, "Memory Map Entry %d\n", MapCount));
DbgPrint((DPRINT_MEMORY, "Int15h AX=E820h\n"));
DbgPrint((DPRINT_MEMORY, "EAX = 0x%x\n", Regs.x.eax));
DbgPrint((DPRINT_MEMORY, "EBX = 0x%x\n", Regs.x.ebx));
DbgPrint((DPRINT_MEMORY, "ECX = 0x%x\n", Regs.x.ecx));
DbgPrint((DPRINT_MEMORY, "CF set = %s\n", (Regs.x.eflags & I386FLAG_CF) ? "TRUE" : "FALSE"));
// If the BIOS didn't return 'SMAP' in EAX then
// it doesn't support this call
if (Regs.x.eax != 0x534D4150)
{
break;
}
// Copy data to caller's buffer
RtlCopyMemory(&BiosMemoryMap[MapCount], (PVOID)BIOSCALLBUFFER, Regs.x.ecx);
DbgPrint((DPRINT_MEMORY, "BaseAddress: 0x%x%x\n", BiosMemoryMap[MapCount].BaseAddress));
DbgPrint((DPRINT_MEMORY, "Length: 0x%x%x\n", BiosMemoryMap[MapCount].Length));
DbgPrint((DPRINT_MEMORY, "Type: 0x%x\n", BiosMemoryMap[MapCount].Type));
DbgPrint((DPRINT_MEMORY, "Reserved: 0x%x\n", BiosMemoryMap[MapCount].Reserved));
DbgPrint((DPRINT_MEMORY, "\n"));
// If the continuation value is zero or the
// carry flag is set then this was
// the last entry so we're done
if (Regs.x.ebx == 0x00000000 || !INT386_SUCCESS(Regs))
{
MapCount++;
DbgPrint((DPRINT_MEMORY, "End Of System Memory Map!\n\n"));
break;
}
// Setup the registers for the next call
Regs.x.eax = 0x0000E820;
Regs.x.edx = 0x534D4150; // ('SMAP')
//Regs.x.ebx = 0x00000001; // Continuation value already set by the BIOS
Regs.x.ecx = sizeof(BIOS_MEMORY_MAP);
Regs.w.es = BIOSCALLBUFSEGMENT;
Regs.w.di = BIOSCALLBUFOFFSET;
}
return MapCount;
}

View File

@@ -1,257 +0,0 @@
/*
* FreeLoader
* Copyright (C) 2003 Eric Kohl <ekohl@rz-online.de>
*
* 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>
/*
* U32 PnpBiosSupported(VOID);
*
* RETURNS:
*/
_pnp_bios_entry_point:
.long 0
_pnp_bios_data_segment:
.word 0
EXTERN(_PnpBiosSupported)
.code32
pushl %edi
pushl %esi
pushl %ecx
pushl %edx
xorl %edi,%edi
/* init esi */
movl $0xF0000,%esi
pnp_again:
movl (%esi),%eax
cmp $0x506E5024,%eax /* "$PnP" */
je pnp_found
cmp $0xFFFF0,%esi
je pnp_not_found
pnp_add:
addl $0x10,%esi
jmp pnp_again
pnp_found:
/* first calculate the checksum */
pushl %esi
pushl $0x21
popl %ecx
xorl %edx, %edx
pnp_loop:
lodsb
addb %al,%dl
loopl pnp_loop
testb %dl, %dl
popl %esi
jnz pnp_add
movl %esi,%edi
/* Calculate the bios entry point (far pointer) */
xorl %eax,%eax
movw 0x0F(%esi),%ax
shll $16,%eax
movw 0x0D(%esi),%ax
movl %eax,_pnp_bios_entry_point
/* Store bios data segment */
movw 0x1B(%esi),%ax
movw %ax,_pnp_bios_data_segment
pnp_not_found:
movl %edi,%eax
popl %edx
popl %ecx
popl %esi
popl %edi
ret
/*
* U32 PnpBiosGetDeviceNodeCount(U32 *NodeSize, U32 *NodeCount);
*
* RETURNS:
*/
_pnp_result:
.long 0
_pnp_node_size:
.word 0
_pnp_node_count:
.word 0
EXTERN(_PnpBiosGetDeviceNodeCount)
.code32
pushl %ebp
movl %esp,%ebp
pushal
push %es
call switch_to_real
.code16
movw _pnp_bios_data_segment,%ax
pushw %ax
pushw %cs
movw $(_pnp_node_size),%ax
pushw %ax
pushw %cs
movw $(_pnp_node_count),%ax
pushw %ax
pushw $0
lcall *_pnp_bios_entry_point
addw $12,%sp
movzwl %ax,%ecx
movl %ecx,_pnp_result
call switch_to_prot
.code32
movl 0x08(%ebp),%esi
movw _pnp_node_size,%ax
movzwl %ax,%ecx
movl %ecx, (%esi)
movl 0x0C(%ebp),%esi
movw _pnp_node_count,%ax
movzwl %ax,%ecx
movl %eax, (%esi)
pop %es
popal
movl %ebp,%esp
popl %ebp
movl _pnp_result,%eax
ret
/*
* U32 PnpBiosGetDeviceNode(U8 *NodeId, U8 *NodeBuffer);
*
* RETURNS:
*/
_pnp_buffer_segment:
.word 0
_pnp_buffer_offset:
.word 0
_pnp_node_number:
.byte 0
EXTERN(_PnpBiosGetDeviceNode)
.code32
pushl %ebp
movl %esp,%ebp
pushal
push %es
/* get current node number */
movl 0x08(%ebp),%esi
movb (%esi),%al
movb %al,_pnp_node_number
/* convert pointer to node buffer to segment/offset */
movl 0x0C(%ebp),%eax
shrl $4,%eax
andl $0xf000,%eax
movw %ax,_pnp_buffer_segment
movl 0x0C(%ebp),%eax
andl $0xffff,%eax
movw %ax,_pnp_buffer_offset
call switch_to_real
.code16
/* push bios segment */
movw _pnp_bios_data_segment,%ax
pushw %ax
/* push control flag */
pushw $0x0001
/* push pointer to node buffer (segment/offset) */
movw _pnp_buffer_segment,%ax
pushw %ax
movw _pnp_buffer_offset,%ax
pushw %ax
/* push pointer to node number (segment/offset) */
pushw %cs
movw $(_pnp_node_number),%ax
pushw %ax
/* push function number */
pushw $1
/* call entry point */
lcall *_pnp_bios_entry_point
addw $14,%sp
movzwl %ax,%ecx
movl %ecx,_pnp_result
call switch_to_prot
.code32
/* update node number */
movl 0x08(%ebp),%esi
movb _pnp_node_number,%al
movb %al,(%esi)
pop %es
popal
movl %ebp,%esp
popl %ebp
movl _pnp_result,%eax
ret
/* EOF */

View File

@@ -1,396 +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 <portio.h>
void putchar(int ch)
{
REGS Regs;
/* If we are displaying a CR '\n' then do a LF also */
if (ch == '\n')
{
/* Display the LF */
putchar('\r');
}
/* If we are displaying a TAB '\t' then display 8 spaces ' ' */
if (ch == '\t')
{
/* Display the 8 spaces ' ' */
putchar(' ');
putchar(' ');
putchar(' ');
putchar(' ');
putchar(' ');
putchar(' ');
putchar(' ');
putchar(' ');
return;
}
// Int 10h AH=0Eh
// VIDEO - TELETYPE OUTPUT
//
// AH = 0Eh
// AL = character to write
// BH = page number
// BL = foreground color (graphics modes only)
Regs.b.ah = 0x0E;
Regs.b.al = ch;
Regs.w.bx = 1;
Int386(0x10, &Regs, &Regs);
}
int kbhit(void)
{
REGS Regs;
// Int 16h AH=01h
// KEYBOARD - CHECK FOR KEYSTROKE
//
// AH = 01h
// Return:
// ZF set if no keystroke available
// ZF clear if keystroke available
// AH = BIOS scan code
// AL = ASCII character
Regs.b.ah = 0x01;
Int386(0x16, &Regs, &Regs);
if (Regs.x.eflags & I386FLAG_ZF)
{
return 0;
}
return 1;
}
int getch(void)
{
REGS Regs;
static BOOL ExtendedKey = FALSE;
static char ExtendedScanCode = 0;
// If the last time we were called an
// extended key was pressed then return
// that keys scan code.
if (ExtendedKey)
{
ExtendedKey = FALSE;
return ExtendedScanCode;
}
// Int 16h AH=00h
// KEYBOARD - GET KEYSTROKE
//
// AH = 00h
// Return:
// AH = BIOS scan code
// AL = ASCII character
Regs.b.ah = 0x00;
Int386(0x16, &Regs, &Regs);
// Check for an extended keystroke
if (Regs.b.al == 0)
{
ExtendedKey = TRUE;
ExtendedScanCode = Regs.b.ah;
}
// Return keystroke
return Regs.b.al;
}
int getyear(void)
{
REGS Regs;
U16 Digit1;
U16 Digit2;
U16 Cent1;
U16 Cent2;
U16 Year;
// Some BIOSes, such es the 1998/07/25 system ROM
// in the Compaq Deskpro EP/SB, leave CF unchanged
// if successful, so CF should be cleared before
// calling this function.
__asm__ ("clc");
// Int 1Ah AH=04h
// TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
//
// AH = 04h
// CF clear to avoid bug
// Return:
// CF clear if successful
// CH = century (BCD)
// CL = year (BCD)
// DH = month (BCD)
// DL = day (BCD)
// CF set on error
Regs.b.ah = 0x04;
Int386(0x1A, &Regs, &Regs);
/* Convert from BCD to normal */
Digit1 = Regs.b.cl & 0x0F;
Digit2 = ((Regs.b.cl >> 4) & 0x0F) * 10;
Cent1 = Regs.b.ch & 0x0F;
Cent2 = ((Regs.b.ch >> 4) & 0x0F) * 10;
Year = Cent1 + Cent2;
Year *= 100;
Year += Digit1 + Digit2;
return Year;
}
int getday(void)
{
REGS Regs;
U16 Digit1;
U16 Digit2;
// Some BIOSes, such es the 1998/07/25 system ROM
// in the Compaq Deskpro EP/SB, leave CF unchanged
// if successful, so CF should be cleared before
// calling this function.
__asm__ ("clc");
// Int 1Ah AH=04h
// TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
//
// AH = 04h
// CF clear to avoid bug
// Return:
// CF clear if successful
// CH = century (BCD)
// CL = year (BCD)
// DH = month (BCD)
// DL = day (BCD)
// CF set on error
Regs.b.ah = 0x04;
Int386(0x1A, &Regs, &Regs);
/* Convert from BCD to normal */
Digit1 = Regs.b.dl & 0x0F;
Digit2 = ((Regs.b.dl >> 4) & 0x0F) * 10;
return (Digit1 + Digit2);
}
int getmonth(void)
{
REGS Regs;
U16 Digit1;
U16 Digit2;
// Some BIOSes, such es the 1998/07/25 system ROM
// in the Compaq Deskpro EP/SB, leave CF unchanged
// if successful, so CF should be cleared before
// calling this function.
__asm__ ("clc");
// Int 1Ah AH=04h
// TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
//
// AH = 04h
// CF clear to avoid bug
// Return:
// CF clear if successful
// CH = century (BCD)
// CL = year (BCD)
// DH = month (BCD)
// DL = day (BCD)
// CF set on error
Regs.b.ah = 0x04;
Int386(0x1A, &Regs, &Regs);
/* Convert from BCD to normal */
Digit1 = Regs.b.dh & 0x0F;
Digit2 = ((Regs.b.dh >> 4) & 0x0F) * 10;
return (Digit1 + Digit2);
}
int gethour(void)
{
REGS Regs;
U16 Digit1;
U16 Digit2;
// Some BIOSes leave CF unchanged if successful,
// so CF should be cleared before calling this function.
__asm__ ("clc");
// Int 1Ah AH=02h
// TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
//
// AH = 02h
// CF clear to avoid bug
// Return:
// CF clear if successful
// CH = hour (BCD)
// CL = minutes (BCD)
// DH = seconds (BCD)
// DL = daylight savings flag (00h standard time, 01h daylight time)
// CF set on error (i.e. clock not running or in middle of update)
Regs.b.ah = 0x02;
Int386(0x1A, &Regs, &Regs);
/* Convert from BCD to normal */
Digit1 = Regs.b.ch & 0x0F;
Digit2 = ((Regs.b.ch >> 4) & 0x0F) * 10;
return (Digit1 + Digit2);
}
int getminute(void)
{
REGS Regs;
U16 Digit1;
U16 Digit2;
// Some BIOSes leave CF unchanged if successful,
// so CF should be cleared before calling this function.
__asm__ ("clc");
// Int 1Ah AH=02h
// TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
//
// AH = 02h
// CF clear to avoid bug
// Return:
// CF clear if successful
// CH = hour (BCD)
// CL = minutes (BCD)
// DH = seconds (BCD)
// DL = daylight savings flag (00h standard time, 01h daylight time)
// CF set on error (i.e. clock not running or in middle of update)
Regs.b.ah = 0x02;
Int386(0x1A, &Regs, &Regs);
/* Convert from BCD to normal */
Digit1 = Regs.b.cl & 0x0F;
Digit2 = ((Regs.b.cl >> 4) & 0x0F) * 10;
return (Digit1 + Digit2);
}
int getsecond(void)
{
REGS Regs;
U16 Digit1;
U16 Digit2;
// Some BIOSes leave CF unchanged if successful,
// so CF should be cleared before calling this function.
__asm__ ("clc");
// Int 1Ah AH=02h
// TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
//
// AH = 02h
// CF clear to avoid bug
// Return:
// CF clear if successful
// CH = hour (BCD)
// CL = minutes (BCD)
// DH = seconds (BCD)
// DL = daylight savings flag (00h standard time, 01h daylight time)
// CF set on error (i.e. clock not running or in middle of update)
Regs.b.ah = 0x02;
Int386(0x1A, &Regs, &Regs);
/* Convert from BCD to normal */
Digit1 = Regs.b.dh & 0x0F;
Digit2 = ((Regs.b.dh >> 4) & 0x0F) * 10;
return (Digit1 + Digit2);
}
void beep(void)
{
sound(700);
delay(200);
sound(0);
}
void delay(unsigned msec)
{
REGS Regs;
unsigned usec;
unsigned msec_this;
// Int 15h AH=86h
// BIOS - WAIT (AT,PS)
//
// AH = 86h
// CX:DX = interval in microseconds
// Return:
// CF clear if successful (wait interval elapsed)
// CF set on error or AH=83h wait already in progress
// AH = status (see #00496)
// Note: The resolution of the wait period is 977 microseconds on
// many systems because many BIOSes use the 1/1024 second fast
// interrupt from the AT real-time clock chip which is available on INT 70;
// because newer BIOSes may have much more precise timers available, it is
// not possible to use this function accurately for very short delays unless
// the precise behavior of the BIOS is known (or found through testing)
while (msec)
{
msec_this = msec;
if (msec_this > 4000)
{
msec_this = 4000;
}
usec = msec_this * 1000;
Regs.b.ah = 0x86;
Regs.w.cx = usec >> 16;
Regs.w.dx = usec & 0xffff;
Int386(0x15, &Regs, &Regs);
msec -= msec_this;
}
}
void sound(int freq)
{
int scale;
if (freq == 0)
{
WRITE_PORT_UCHAR((PUCHAR)0x61, READ_PORT_UCHAR((PUCHAR)0x61) & ~3);
return;
}
scale = 1193046 / freq;
WRITE_PORT_UCHAR((PUCHAR)0x43, 0xb6);
WRITE_PORT_UCHAR((PUCHAR)0x42, scale & 0xff);
WRITE_PORT_UCHAR((PUCHAR)0x42, scale >> 8);
WRITE_PORT_UCHAR((PUCHAR)0x61, READ_PORT_UCHAR((PUCHAR)0x61) | 3);
}

View File

@@ -1,931 +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 <version.h>
.macro SAVE_CPU_REGS
movl %eax,i386_EAX
movl %ebx,i386_EBX
movl %ecx,i386_ECX
movl %edx,i386_EDX
movl %esp,i386_ESP
movl %ebp,i386_EBP
movl %esi,i386_ESI
movl %edi,i386_EDI
movw %ds,%ax
movw %ax,i386_DS
movw %es,%ax
movw %ax,i386_ES
movw %fs,%ax
movw %ax,i386_FS
movw %gs,%ax
movw %ax,i386_GS
movw %ss,%ax
movw %ax,i386_SS
popl %eax
movl %eax,i386_EIP
popl %eax
movw %ax,i386_CS
popl %eax
movl %eax,i386_EFLAGS
movl %cr0,%eax
movl %eax,i386_CR0
//movl %cr1,%eax
//movl %eax,i386_CR1
movl %cr2,%eax
movl %eax,i386_CR2
movl %cr3,%eax
movl %eax,i386_CR3
movl %dr0,%eax
movl %eax,i386_DR0
movl %dr1,%eax
movl %eax,i386_DR1
movl %dr2,%eax
movl %eax,i386_DR2
movl %dr3,%eax
movl %eax,i386_DR3
movl %dr6,%eax
movl %eax,i386_DR6
movl %dr7,%eax
movl %eax,i386_DR7
sgdt i386_GDTR
sidt i386_IDTR
sldt i386_LDTR
str i386_TR
.endm
i386ExceptionHandlerText:
.ascii "FreeLoader i386 Exception Handler\n"
.ascii VERSION
.ascii "\n"
// .asciz "Report bugs to Brian Palmer <brianp@reactos.org>\n\n"
.asciz "Report bugs to ReactOS Kernel mailing list <ros-kernel@reactos.com>\n\n"
i386DivideByZeroText:
.asciz "Exception 00: DIVIDE BY ZERO\n\n"
i386DebugExceptionText:
.asciz "Exception 01: DEBUG EXCEPTION\n\n"
i386NMIExceptionText:
.asciz "Exception 02: NON-MASKABLE INTERRUPT EXCEPTION\n\n"
i386BreakpointText:
.asciz "Exception 03: BREAKPOINT (INT 3)\n\n"
i386OverflowText:
.asciz "Exception 04: OVERFLOW\n\n"
i386BoundExceptionText:
.asciz "Exception 05: BOUND EXCEPTION\n\n"
i386InvalidOpcodeText:
.asciz "Exception 06: INVALID OPCODE\n\n"
i386FPUNotAvailableText:
.asciz "Exception 07: FPU NOT AVAILABLE\n\n"
i386DoubleFaultText:
.asciz "Exception 08: DOUBLE FAULT\n\n"
i386CoprocessorSegmentText:
.asciz "Exception 09: COPROCESSOR SEGMENT OVERRUN\n\n"
i386InvalidTSSText:
.asciz "Exception 0A: INVALID TSS\n\n"
i386SegmentNotPresentText:
.asciz "Exception 0B: SEGMENT NOT PRESENT\n\n"
i386StackExceptionText:
.asciz "Exception 0C: STACK EXCEPTION\n\n"
i386GeneralProtectionFaultText:
.asciz "Exception 0D: GENERAL PROTECTION FAULT\n\n"
i386PageFaultText:
.asciz "Exception 0E: PAGE FAULT\n\n"
i386CoprocessorErrorText:
.asciz "Exception 10: COPROCESSOR ERROR\n\n"
i386AlignmentCheckText:
.asciz "Exception 11: ALIGNMENT CHECK\n\n"
i386MachineCheckText:
.asciz "Exception 12: MACHINE CHECK\n\n"
i386_EAX_Text:
.asciz "EAX: "
i386_EBX_Text:
.asciz "EBX: "
i386_ECX_Text:
.asciz "ECX: "
i386_EDX_Text:
.asciz "EDX: "
i386_ESP_Text:
.asciz " ESP: "
i386_EBP_Text:
.asciz " EBP: "
i386_ESI_Text:
.asciz " ESI: "
i386_EDI_Text:
.asciz " EDI: "
i386_CS_Text:
.asciz "CS: "
i386_DS_Text:
.asciz "DS: "
i386_ES_Text:
.asciz "ES: "
i386_FS_Text:
.asciz "FS: "
i386_GS_Text:
.asciz "GS: "
i386_SS_Text:
.asciz "SS: "
i386_EFLAGS_Text:
.asciz " EFLAGS: "
i386_EIP_Text:
.asciz " EIP: "
i386_ERROR_CODE_Text:
.asciz " ERROR CODE: "
i386_CR0_Text:
.asciz " CR0: "
i386_CR1_Text:
.asciz " CR1: "
i386_CR2_Text:
.asciz " CR2: "
i386_CR3_Text:
.asciz " CR3: "
i386_DR0_Text:
.asciz " DR0: "
i386_DR1_Text:
.asciz " DR1: "
i386_DR2_Text:
.asciz " DR2: "
i386_DR3_Text:
.asciz " DR3: "
i386_DR6_Text:
.asciz " DR6: "
i386_DR7_Text:
.asciz " DR7: "
i386_GDTR_Text:
.asciz " GDTR Base: "
i386_IDTR_Text:
.asciz " IDTR Base: "
i386_Limit_Text:
.asciz " Limit: "
i386_LDTR_Text:
.asciz " LDTR: "
i386_TR_Text:
.asciz " TR: "
/* Set by each exception handler to the address of the description text */
i386ExceptionDescriptionText:
.long 0
/* Used to store the contents of all the registers when an exception occurs */
i386_EAX:
.long 0
i386_EBX:
.long 0
i386_ECX:
.long 0
i386_EDX:
.long 0
i386_ESP:
.long 0
i386_EBP:
.long 0
i386_ESI:
.long 0
i386_EDI:
.long 0
i386_CS:
.word 0
i386_DS:
.word 0
i386_ES:
.word 0
i386_FS:
.word 0
i386_GS:
.word 0
i386_SS:
.word 0
i386_EFLAGS:
.long 0
i386_EIP:
.long 0
i386_ERROR_CODE:
.long 0
i386_CR0:
.long 0
i386_CR1:
.long 0
i386_CR2:
.long 0
i386_CR3:
.long 0
i386_DR0:
.long 0
i386_DR1:
.long 0
i386_DR2:
.long 0
i386_DR3:
.long 0
i386_DR6:
.long 0
i386_DR7:
.long 0
i386_GDTR:
.word 0
.long 0
i386_IDTR:
.word 0
.long 0
i386_LDTR:
.word 0
i386_TR:
.word 0
/* Used to store the current X and Y position on the screen */
i386_ScreenPosX:
.long 0
i386_ScreenPosY:
.long 0
/************************************************************************/
i386CommonExceptionHandler:
.code32
SAVE_CPU_REGS
call i386ClearScreenToBlue
movl $i386ExceptionHandlerText,%esi
call i386PrintText
movl i386ExceptionDescriptionText,%esi
call i386PrintText
movl $i386_EAX_Text,%esi
call i386PrintText
movl i386_EAX,%eax
call i386PrintHexDword // Display EAX
movl $i386_ESP_Text,%esi
call i386PrintText
movl i386_ESP,%eax
call i386PrintHexDword // Display ESP
movl $i386_CR0_Text,%esi
call i386PrintText
movl i386_CR0,%eax
call i386PrintHexDword // Display CR0
movl $i386_DR0_Text,%esi
call i386PrintText
movl i386_DR0,%eax
call i386PrintHexDword // Display DR0
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
movl $i386_EBX_Text,%esi
call i386PrintText
movl i386_EBX,%eax
call i386PrintHexDword // Display EBX
movl $i386_EBP_Text,%esi
call i386PrintText
movl i386_EBP,%eax
call i386PrintHexDword // Display EBP
movl $i386_CR1_Text,%esi
call i386PrintText
movl i386_CR1,%eax
call i386PrintHexDword // Display CR1
movl $i386_DR1_Text,%esi
call i386PrintText
movl i386_DR1,%eax
call i386PrintHexDword // Display DR1
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
movl $i386_ECX_Text,%esi
call i386PrintText
movl i386_ECX,%eax
call i386PrintHexDword // Display ECX
movl $i386_ESI_Text,%esi
call i386PrintText
movl i386_ESI,%eax
call i386PrintHexDword // Display ESI
movl $i386_CR2_Text,%esi
call i386PrintText
movl i386_CR2,%eax
call i386PrintHexDword // Display CR2
movl $i386_DR2_Text,%esi
call i386PrintText
movl i386_DR2,%eax
call i386PrintHexDword // Display DR2
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
movl $i386_EDX_Text,%esi
call i386PrintText
movl i386_EDX,%eax
call i386PrintHexDword // Display EDX
movl $i386_EDI_Text,%esi
call i386PrintText
movl i386_EDI,%eax
call i386PrintHexDword // Display EDI
movl $i386_CR3_Text,%esi
call i386PrintText
movl i386_CR3,%eax
call i386PrintHexDword // Display CR3
movl $i386_DR3_Text,%esi
call i386PrintText
movl i386_DR3,%eax
call i386PrintHexDword // Display DR3
incl i386_ScreenPosY
movl $55,i386_ScreenPosX
movl $i386_DR6_Text,%esi
call i386PrintText
movl i386_DR6,%eax
call i386PrintHexDword // Display DR6
incl i386_ScreenPosY
movl $55,i386_ScreenPosX
movl $i386_DR7_Text,%esi
call i386PrintText
movl i386_DR7,%eax
call i386PrintHexDword // Display DR7
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
incl i386_ScreenPosY
movl $i386_CS_Text,%esi
call i386PrintText
movw i386_CS,%ax
call i386PrintHexWord // Display CS
movl $i386_EIP_Text,%esi
call i386PrintText
movl i386_EIP,%eax
call i386PrintHexDword // Display EIP
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
movl $i386_DS_Text,%esi
call i386PrintText
movw i386_DS,%ax
call i386PrintHexWord // Display DS
movl $i386_ERROR_CODE_Text,%esi
call i386PrintText
movl i386_ERROR_CODE,%eax
call i386PrintHexDword // Display ERROR CODE
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
movl $i386_ES_Text,%esi
call i386PrintText
movw i386_ES,%ax
call i386PrintHexWord // Display ES
movl $i386_EFLAGS_Text,%esi
call i386PrintText
movl i386_EFLAGS,%eax
call i386PrintHexDword // Display EFLAGS
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
movl $i386_FS_Text,%esi
call i386PrintText
movw i386_FS,%ax
call i386PrintHexWord // Display FS
movl $i386_GDTR_Text,%esi
call i386PrintText
movl i386_GDTR+2,%eax
call i386PrintHexDword // Display GDTR Base
movl $i386_Limit_Text,%esi
call i386PrintText
movw i386_GDTR,%ax
call i386PrintHexWord // Display GDTR Limit
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
movl $i386_GS_Text,%esi
call i386PrintText
movw i386_GS,%ax
call i386PrintHexWord // Display GS
movl $i386_IDTR_Text,%esi
call i386PrintText
movl i386_IDTR+2,%eax
call i386PrintHexDword // Display IDTR Base
movl $i386_Limit_Text,%esi
call i386PrintText
movw i386_IDTR,%ax
call i386PrintHexWord // Display IDTR Limit
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
movl $i386_SS_Text,%esi
call i386PrintText
movw i386_SS,%ax
call i386PrintHexWord // Display SS
movl $i386_LDTR_Text,%esi
call i386PrintText
movw i386_LDTR,%ax
call i386PrintHexWord // Display LDTR
movl $i386_TR_Text,%esi
call i386PrintText
movw i386_TR,%ax
call i386PrintHexWord // Display TR
movl $0,i386_ScreenPosX
incl i386_ScreenPosY
incl i386_ScreenPosY
i386ExceptionHandlerHang:
jmp i386ExceptionHandlerHang
iret
/************************************************************************/
i386ClearScreenToBlue:
.code32
cld
movw $0x1F20,%ax
movl $0xB0000,%edi
movl $0x8000,%ecx
rep stosw
ret
/************************************************************************/
/* ESI = Address of text to display */
/************************************************************************/
i386PrintText:
.code32
i386PrintTextLoop:
lodsb
// Check for end of string char
cmp $0,%al
je i386PrintTextDone
// Check for newline char
cmp $0x0a,%al
jne i386PrintTextLoop2
incl i386_ScreenPosY
movl $0,i386_ScreenPosX
jmp i386PrintTextLoop
i386PrintTextLoop2:
call i386PrintTextCalcAddressOfNextChar
stosb
incl i386_ScreenPosX
jmp i386PrintTextLoop
i386PrintTextDone:
ret
/************************************************************************/
/* On return EDI = Address of next char in screen memory */
/************************************************************************/
i386PrintTextCalcAddressOfNextChar:
.code32
push %eax
movl $0xB8000,%edi
addl i386_ScreenPosX,%edi
addl i386_ScreenPosX,%edi
movl i386_ScreenPosY,%eax
movl $160,%ecx // 80 columns, 2 bytes per column
mull %ecx
addl %eax,%edi
pop %eax
ret
/************************************************************************/
/* Prints the value in EAX on the screen in hex */
/************************************************************************/
i386PrintHexDword:
.code32
call i386PrintHex1
i386PrintHex1:
call i386PrintHex2
i386PrintHex2:
call i386PrintHex3
i386PrintHex3:
movb $4,%cl
rol %cl,%eax
push %eax
andb $0x0f,%al
movl $i386PrintHexTable,%ebx
xlat /*$i386PrintHexTable*/
call i386PrintTextCalcAddressOfNextChar
stosb
incl i386_ScreenPosX
pop %eax
ret
i386PrintHexTable:
.ascii "0123456789ABCDEF"
/************************************************************************/
/* Prints the value in AX on the screen in hex */
/************************************************************************/
i386PrintHexWord:
.code32
call i386PrintHexWord1
i386PrintHexWord1:
call i386PrintHexWord2
i386PrintHexWord2:
movb $4,%cl
rol %cl,%ax
push %eax
andb $0x0f,%al
movl $i386PrintHexTable,%ebx
xlat /*$i386PrintHexTable*/
call i386PrintTextCalcAddressOfNextChar
stosb
incl i386_ScreenPosX
pop %eax
ret
/************************************************************************/
/* Prints the value in AL on the screen in hex */
/************************************************************************/
i386PrintHexByte:
.code32
call i386PrintHexByte1
i386PrintHexByte1:
movb $4,%cl
rol %cl,%al
push %eax
andb $0x0f,%al
movl $i386PrintHexTable,%ebx
xlat /*$i386PrintHexTable*/
call i386PrintTextCalcAddressOfNextChar
stosb
incl i386_ScreenPosX
pop %eax
ret
/************************************************************************/
EXTERN(i386DivideByZero)
.code32
movl $i386DivideByZeroText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386DebugException)
.code32
movl $i386DebugExceptionText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386NMIException)
.code32
movl $i386NMIExceptionText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386Breakpoint)
.code32
movl $i386BreakpointText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386Overflow)
.code32
movl $i386OverflowText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386BoundException)
.code32
movl $i386BoundExceptionText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386InvalidOpcode)
.code32
movl $i386InvalidOpcodeText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386FPUNotAvailable)
.code32
movl $i386FPUNotAvailableText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386DoubleFault)
.code32
popl %eax
movl %eax,i386_ERROR_CODE
movl $i386DoubleFaultText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386CoprocessorSegment)
.code32
movl $i386CoprocessorSegmentText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386InvalidTSS)
.code32
popl %eax
movl %eax,i386_ERROR_CODE
movl $i386InvalidTSSText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386SegmentNotPresent)
.code32
popl %eax
movl %eax,i386_ERROR_CODE
movl $i386SegmentNotPresentText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386StackException)
.code32
popl %eax
movl %eax,i386_ERROR_CODE
movl $i386StackExceptionText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386GeneralProtectionFault)
.code32
popl %eax
movl %eax,i386_ERROR_CODE
movl $i386GeneralProtectionFaultText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386PageFault)
.code32
popl %eax
movl %eax,i386_ERROR_CODE
movl $i386PageFaultText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386CoprocessorError)
.code32
movl $i386CoprocessorErrorText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386AlignmentCheck)
.code32
movl $i386AlignmentCheckText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************/
EXTERN(i386MachineCheck)
.code32
movl $i386MachineCheckText,i386ExceptionDescriptionText
jmp i386CommonExceptionHandler
/************************************************************************
* DEBUGGING SUPPORT FUNCTIONS
************************************************************************/
EXTERN(_INSTRUCTION_BREAKPOINT1)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr0
movl %dr7,%eax
andl $0xfff0ffff,%eax
orl $0x00000303,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_MEMORY_READWRITE_BREAKPOINT1)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr0
movl %dr7,%eax
andl $0xfff0ffff,%eax
orl $0x00030303,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_MEMORY_WRITE_BREAKPOINT1)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr0
movl %dr7,%eax
andl $0xfff0ffff,%eax
orl $0x00010303,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_INSTRUCTION_BREAKPOINT2)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr1
movl %dr7,%eax
andl $0xff0fffff,%eax
orl $0x0000030c,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_MEMORY_READWRITE_BREAKPOINT2)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr1
movl %dr7,%eax
andl $0xff0fffff,%eax
orl $0x0030030c,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_MEMORY_WRITE_BREAKPOINT2)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr1
movl %dr7,%eax
andl $0xff0fffff,%eax
orl $0x0010030c,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_INSTRUCTION_BREAKPOINT3)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr2
movl %dr7,%eax
andl $0xf0ffffff,%eax
orl $0x00000330,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_MEMORY_READWRITE_BREAKPOINT3)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr2
movl %dr7,%eax
andl $0xf0ffffff,%eax
orl $0x03000330,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_MEMORY_WRITE_BREAKPOINT3)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr2
movl %dr7,%eax
andl $0xf0ffffff,%eax
orl $0x01000330,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_INSTRUCTION_BREAKPOINT4)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr3
movl %dr7,%eax
andl $0x0fffffff,%eax
orl $0x000003c0,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_MEMORY_READWRITE_BREAKPOINT4)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr3
movl %dr7,%eax
andl $0x0fffffff,%eax
orl $0x300003c0,%eax
movl %eax,%dr7
popl %eax
ret
EXTERN(_MEMORY_WRITE_BREAKPOINT4)
.code32
pushl %eax
movl 8(%esp),%eax
movl %eax,%dr3
movl %dr7,%eax
andl $0x0fffffff,%eax
orl $0x100003c0,%eax
movl %eax,%dr7
popl %eax
ret

View File

@@ -1,807 +0,0 @@
/*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
* Portions from Linux video.S - Display adapter & video mode setup, version 2.13 (14-May-99)
* Copyright (C) 1995 -- 1999 Martin Mares <mj@ucw.cz>
* Based on the original setup.S code (C) Linus Torvalds and Mats Anderson
*
* 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 <video.h>
#include <portio.h>
#include <rtl.h>
#include <debug.h>
typedef struct
{
U8 Signature[4]; // (ret) signature ("VESA")
// (call) VESA 2.0 request signature ("VBE2"), required to receive
// version 2.0 info
U16 VesaVersion; // VESA version number (one-digit minor version -- 0102h = v1.2)
U32 OemNamePtr; // pointer to OEM name
// "761295520" for ATI
U32 Capabilities; // capabilities flags (see #00078)
U32 SupportedModeListPtr; // pointer to list of supported VESA and OEM video modes
// (list of words terminated with FFFFh)
U16 TotalVideoMemory; // total amount of video memory in 64K blocks
// ---VBE v1.x ---
//U8 Reserved[236];
// ---VBE v2.0 ---
U16 OemSoftwareVersion; // OEM software version (BCD, high byte = major, low byte = minor)
U32 VendorNamePtr; // pointer to vendor name
U32 ProductNamePtr; // pointer to product name
U32 ProductRevisionStringPtr; // pointer to product revision string
U16 VBE_AF_Version; // (if capabilities bit 3 set) VBE/AF version (BCD)
// 0100h for v1.0P
U32 AcceleratedModeListPtr; // (if capabilities bit 3 set) pointer to list of supported
// accelerated video modes (list of words terminated with FFFFh)
U8 Reserved[216]; // reserved for VBE implementation
U8 ScratchPad[256]; // OEM scratchpad (for OEM strings, etc.)
} PACKED VESA_SVGA_INFO, *PVESA_SVGA_INFO;
// Bitfields for VESA capabilities:
//
// Bit(s) Description (Table 00078)
// 0 DAC can be switched into 8-bit mode
// 1 non-VGA controller
// 2 programmed DAC with blank bit (i.e. only during blanking interval)
// 3 (VBE v3.0) controller supports hardware stereoscopic signalling
// 3 controller supports VBE/AF v1.0P extensions
// 4 (VBE v3.0) if bit 3 set:
// =0 stereo signalling via external VESA stereo connector
// =1 stereo signalling via VESA EVC connector
// 4 (VBE/AF v1.0P) must call EnableDirectAccess to access framebuffer
// 5 (VBE/AF v1.0P) controller supports hardware mouse cursor
// 6 (VBE/AF v1.0P) controller supports hardware clipping
// 7 (VBE/AF v1.0P) controller supports transparent BitBLT
// 8-31 reserved (0)
// Notes: The list of supported video modes is stored in the reserved
// portion of the SuperVGA information record by some implementations,
// and it may thus be necessary to either copy the mode list or use a
// different buffer for all subsequent VESA calls. Not all of the video
// modes in the list of mode numbers may be supported, e.g. if they require
// more memory than currently installed or are not supported by the
// attached monitor. Check any mode you intend to use through AX=4F01h first..
// The 1.1 VESA document specifies 242 reserved bytes at the end, so the
// buffer should be 262 bytes to ensure that it is not overrun; for v2.0,
// the buffer should be 512 bytes. The S3 specific video modes will most
// likely follow the FFFFh terminator at the end of the standard modes.
// A search must then be made to find them, FFFFh will also terminate this
// second list. In some cases, only a "stub" VBE may be present, supporting
// only AX=4F00h; this case may be assumed if the list of supported video modes
// is empty (consisting of a single word of FFFFh)
VOID BiosSetVideoMode(U32 VideoMode)
{
REGS Regs;
// Int 10h AH=00h
// VIDEO - SET VIDEO MODE
//
// AH = 00h
// AL = desired video mode
// Return:
// AL = video mode flag (Phoenix, AMI BIOS)
// 20h mode > 7
// 30h modes 0-5 and 7
// 3Fh mode 6
// AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
Regs.b.ah = 0x00;
Regs.b.al = VideoMode;
Int386(0x10, &Regs, &Regs);
}
VOID BiosSetVideoFont8x8(VOID)
{
REGS Regs;
// Int 10h AX=1112h
// VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
//
// AX = 1112h
// BL = block to load
// Return:
// Nothing
Regs.w.ax = 0x1112;
Regs.b.bl = 0x00;
Int386(0x10, &Regs, &Regs);
}
VOID BiosSetVideoFont8x14(VOID)
{
REGS Regs;
// Int 10h AX=1111h
// VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
//
// AX = 1111h
// BL = block to load
// Return:
// Nothing
Regs.w.ax = 0x1111;
Regs.b.bl = 0;
Int386(0x10, &Regs, &Regs);
}
VOID BiosSetVideoFont8x16(VOID)
{
REGS Regs;
// Int 10h AX=1114h
// VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
//
// AX = 1114h
// BL = block to load
// Return:
// Nothing
Regs.w.ax = 0x1114;
Regs.b.bl = 0;
Int386(0x10, &Regs, &Regs);
}
VOID BiosSelectAlternatePrintScreen(VOID)
{
REGS Regs;
// Int 10h AH=12h BL=20h
// VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
//
// AH = 12h
// BL = 20h select alternate print screen routine
// Return:
// Nothing
//
// Installs a PrtSc routine from the video card's BIOS to replace the
// default PrtSc handler from the ROM BIOS, which usually does not
// understand screen heights other than 25 lines.
//
// Some adapters disable print-screen instead of enhancing it.
Regs.b.ah = 0x12;
Regs.b.bl = 0x20;
Int386(0x10, &Regs, &Regs);
}
VOID BiosDisableCursorEmulation(VOID)
{
REGS Regs;
// Int 10h AH=12h BL=34h
// VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
//
// AH = 12h
// BL = 34h
// AL = new state
// 00h enable alphanumeric cursor emulation
// 01h disable alphanumeric cursor emulation
// Return:
// AL = 12h if function supported
//
// Specify whether the BIOS should automatically remap cursor start/end
// according to the current character height in text modes.
Regs.b.ah = 0x12;
Regs.b.bl = 0x34;
Regs.b.al = 0x01;
Int386(0x10, &Regs, &Regs);
}
VOID BiosDefineCursor(U32 StartScanLine, U32 EndScanLine)
{
REGS Regs;
// Int 10h AH=01h
// VIDEO - SET TEXT-MODE CURSOR SHAPE
//
// AH = 01h
// CH = cursor start and options
// CL = bottom scan line containing cursor (bits 0-4)
// Return:
// Nothing
//
// Specify the starting and ending scan lines to be occupied
// by the hardware cursor in text modes.
//
// AMI 386 BIOS and AST Premier 386 BIOS will lock up the
// system if AL is not equal to the current video mode.
//
// Bitfields for cursor start and options:
//
// Bit(s) Description
// 7 should be zero
// 6,5 cursor blink
// (00=normal, 01=invisible, 10=erratic, 11=slow).
// (00=normal, other=invisible on EGA/VGA)
// 4-0 topmost scan line containing cursor
Regs.b.ah = 0x01;
Regs.b.al = 0x03;
Regs.b.ch = StartScanLine;
Regs.b.cl = EndScanLine;
Int386(0x10, &Regs, &Regs);
}
U32 BiosDetectVideoCard(VOID)
{
REGS Regs;
// Int 10h AH=12h BL=10h
// VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - GET EGA INFO
//
// AH = 12h
// BL = 10h
// Return:
// BH = video state
// 00h color mode in effect (I/O port 3Dxh)
// 01h mono mode in effect (I/O port 3Bxh)
// BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
// CH = feature connector bits
// CL = switch settings
// AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
//
// Installation check;EGA
Regs.b.ah = 0x12;
Regs.b.bl = 0x10;
Int386(0x10, &Regs, &Regs);
// If BL is still equal to 0x10 then there is no EGA/VGA present
if (Regs.b.bl == 0x10)
{
return VIDEOCARD_CGA_OR_OTHER;
}
// Int 10h AX=1A00h
// VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
//
// AX = 1A00h
// Return:
// AL = 1Ah if function was supported
// BL = active display code
// BH = alternate display code
//
// This function is commonly used to check for the presence of a VGA.
//
// Installation check;VGA
//
// Values for display combination code:
// 00h no display
// 01h monochrome adapter w/ monochrome display
// 02h CGA w/ color display
// 03h reserved
// 04h EGA w/ color display
// 05h EGA w/ monochrome display
// 06h PGA w/ color display
// 07h VGA w/ monochrome analog display
// 08h VGA w/ color analog display
// 09h reserved
// 0Ah MCGA w/ digital color display
// 0Bh MCGA w/ monochrome analog display
// 0Ch MCGA w/ color analog display
// FFh unknown display type
Regs.b.ah = 0x12;
Regs.b.bl = 0x10;
Int386(0x10, &Regs, &Regs);
if (Regs.b.al == 0x1A)
{
return VIDEOCARD_VGA;
}
else
{
return VIDEOCARD_EGA;
}
}
VOID BiosSetVerticalResolution(U32 ScanLines)
{
REGS Regs;
// Int 10h AH=12h BL=30h
// VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
//
// AH = 12h
// BL = 30h
// AL = vertical resolution
// 00h 200 scan lines
// 01h 350 scan lines
// 02h 400 scan lines
// Return:
// AL = 12h if function supported
//
// Specifiy the number of scan lines used to display text modes.
//
// The specified resolution will take effect on the next mode set.
Regs.b.ah = 0x12;
Regs.b.bl = 0x30;
Regs.b.al = ScanLines;
Int386(0x10, &Regs, &Regs);
}
VOID BiosSet480ScanLines(VOID)
{
int CRTC;
// Read CRTC port
CRTC = READ_PORT_UCHAR((PUCHAR)0x03CC);
if (CRTC & 1)
{
CRTC = 0x3D4;
}
else
{
CRTC = 0x3B4;
}
// Vertical sync end (also unlocks CR0-7)
WRITE_PORT_UCHAR((PUCHAR)CRTC, 0x11);
WRITE_PORT_UCHAR((PUCHAR)CRTC+1, 0x0C);
// Vertical total
WRITE_PORT_UCHAR((PUCHAR)CRTC, 0x06);
WRITE_PORT_UCHAR((PUCHAR)CRTC+1, 0x0B);
// (vertical) overflow
WRITE_PORT_UCHAR((PUCHAR)CRTC, 0x07);
WRITE_PORT_UCHAR((PUCHAR)CRTC+1, 0x3E);
// Vertical sync start
WRITE_PORT_UCHAR((PUCHAR)CRTC, 0x10);
WRITE_PORT_UCHAR((PUCHAR)CRTC+1, 0xEA);
// Vertical display end
WRITE_PORT_UCHAR((PUCHAR)CRTC, 0x12);
WRITE_PORT_UCHAR((PUCHAR)CRTC+1, 0xDF);
// Vertical blank start
WRITE_PORT_UCHAR((PUCHAR)CRTC, 0x15);
WRITE_PORT_UCHAR((PUCHAR)CRTC+1, 0xE7);
// Vertical blank end
WRITE_PORT_UCHAR((PUCHAR)CRTC, 0x16);
WRITE_PORT_UCHAR((PUCHAR)CRTC+1, 0x04);
// Misc output register (read)
CRTC = READ_PORT_UCHAR((PUCHAR)0x03CC);
// Preserve clock select bits and color bit
CRTC = (CRTC & 0x0D);
// Set correct sync polarity
CRTC = (CRTC | 0xE2);
// (write)
WRITE_PORT_UCHAR((PUCHAR)0x03C2, CRTC);
}
VOID BiosSetVideoDisplayEnd(VOID)
{
int CRTC;
// Read CRTC port
CRTC = READ_PORT_UCHAR((PUCHAR)0x03CC);
if (CRTC & 1)
{
CRTC = 0x3D4;
}
else
{
CRTC = 0x3B4;
}
// Vertical display end
WRITE_PORT_UCHAR((PUCHAR)CRTC, 0x12);
WRITE_PORT_UCHAR((PUCHAR)CRTC+1, 0xDF);
}
VOID VideoSetTextCursorPosition(U32 X, U32 Y)
{
REGS Regs;
// Int 10h AH=02h
// VIDEO - SET CURSOR POSITION
//
// AH = 02h
// BH = page number
// 0-3 in modes 2&3
// 0-7 in modes 0&1
// 0 in graphics modes
// DH = row (00h is top)
// DL = column (00h is left)
// Return:
// Nothing
Regs.b.ah = 0x02;
Regs.b.bh = 0x00;
Regs.b.dh = Y;
Regs.b.dl = X;
Int386(0x10, &Regs, &Regs);
}
VOID VideoHideTextCursor(VOID)
{
BiosDefineCursor(0x20, 0x00);
}
VOID VideoShowTextCursor(VOID)
{
BiosDefineCursor(0x0D, 0x0E);
}
U32 VideoGetTextCursorPositionX(VOID)
{
REGS Regs;
// Int 10h AH=03h
// VIDEO - GET CURSOR POSITION AND SIZE
//
// AH = 03h
// BH = page number
// 0-3 in modes 2&3
// 0-7 in modes 0&1
// 0 in graphics modes
// Return:
// AX = 0000h (Phoenix BIOS)
// CH = start scan line
// CL = end scan line
// DH = row (00h is top)
// DL = column (00h is left)
Regs.b.ah = 0x03;
Regs.b.bh = 0x00;
Int386(0x10, &Regs, &Regs);
return Regs.b.dl;
}
U32 VideoGetTextCursorPositionY(VOID)
{
REGS Regs;
// Int 10h AH=03h
// VIDEO - GET CURSOR POSITION AND SIZE
//
// AH = 03h
// BH = page number
// 0-3 in modes 2&3
// 0-7 in modes 0&1
// 0 in graphics modes
// Return:
// AX = 0000h (Phoenix BIOS)
// CH = start scan line
// CL = end scan line
// DH = row (00h is top)
// DL = column (00h is left)
Regs.b.ah = 0x03;
Regs.b.bh = 0x00;
Int386(0x10, &Regs, &Regs);
return Regs.b.dh;
}
VOID BiosVideoDisableBlinkBit(VOID)
{
REGS Regs;
// Int 10h AX=1003h
// VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
//
// AX = 1003h
// BL = new state
// 00h background intensity enabled
// 01h blink enabled
// BH = 00h to avoid problems on some adapters
// Return:
// Nothing
//
// Note: although there is no function to get
// the current status, bit 5 of 0040h:0065h
// indicates the state.
Regs.w.ax = 0x1003;
Regs.w.bx = 0x0000;
Int386(0x10, &Regs, &Regs);
}
VOID BiosVideoEnableBlinkBit(VOID)
{
REGS Regs;
// Int 10h AX=1003h
// VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
//
// AX = 1003h
// BL = new state
// 00h background intensity enabled
// 01h blink enabled
// BH = 00h to avoid problems on some adapters
// Return:
// Nothing
//
// Note: although there is no function to get
// the current status, bit 5 of 0040h:0065h
// indicates the state.
Regs.w.ax = 0x1003;
Regs.w.bx = 0x0001;
Int386(0x10, &Regs, &Regs);
}
U16 BiosIsVesaSupported(VOID)
{
REGS Regs;
PVESA_SVGA_INFO SvgaInfo = (PVESA_SVGA_INFO)BIOSCALLBUFFER;
#ifdef DEBUG
//U16* VideoModes;
//U16 Index;
#endif // defined DEBUG
DbgPrint((DPRINT_UI, "BiosIsVesaSupported()\n"));
RtlZeroMemory(SvgaInfo, sizeof(VESA_SVGA_INFO));
// Make sure we receive version 2.0 info
SvgaInfo->Signature[0] = 'V';
SvgaInfo->Signature[1] = 'B';
SvgaInfo->Signature[2] = 'E';
SvgaInfo->Signature[3] = '2';
// Int 10h AX=4F00h
// VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
//
// AX = 4F00h
// ES:DI -> buffer for SuperVGA information (see #00077)
// Return:
// AL = 4Fh if function supported
// AH = status
// 00h successful
// ES:DI buffer filled
// 01h failed
// ---VBE v2.0---
// 02h function not supported by current hardware configuration
// 03h function invalid in current video mode
//
// Determine whether VESA BIOS extensions are present and the
// capabilities supported by the display adapter
//
// Installation check;VESA SuperVGA
Regs.w.ax = 0x4F00;
Regs.w.es = BIOSCALLBUFSEGMENT;
Regs.w.di = BIOSCALLBUFOFFSET;
Int386(0x10, &Regs, &Regs);
DbgPrint((DPRINT_UI, "AL = 0x%x\n", Regs.b.al));
DbgPrint((DPRINT_UI, "AH = 0x%x\n", Regs.b.ah));
if (Regs.w.ax != 0x004F)
{
DbgPrint((DPRINT_UI, "Failed.\n"));
return 0x0000;
}
#ifdef DEBUG
DbgPrint((DPRINT_UI, "Supported.\n"));
DbgPrint((DPRINT_UI, "SvgaInfo->Signature[4] = %c%c%c%c\n", SvgaInfo->Signature[0], SvgaInfo->Signature[1], SvgaInfo->Signature[2], SvgaInfo->Signature[3]));
DbgPrint((DPRINT_UI, "SvgaInfo->VesaVersion = v%d.%d\n", ((SvgaInfo->VesaVersion >> 8) & 0xFF), (SvgaInfo->VesaVersion & 0xFF)));
DbgPrint((DPRINT_UI, "SvgaInfo->OemNamePtr = 0x%x\n", SvgaInfo->OemNamePtr));
DbgPrint((DPRINT_UI, "SvgaInfo->Capabilities = 0x%x\n", SvgaInfo->Capabilities));
DbgPrint((DPRINT_UI, "SvgaInfo->VideoMemory = %dK\n", SvgaInfo->TotalVideoMemory * 64));
DbgPrint((DPRINT_UI, "---VBE v2.0 ---\n"));
DbgPrint((DPRINT_UI, "SvgaInfo->OemSoftwareVersion = v%d.%d\n", ((SvgaInfo->OemSoftwareVersion >> 8) & 0x0F) + (((SvgaInfo->OemSoftwareVersion >> 12) & 0x0F) * 10), (SvgaInfo->OemSoftwareVersion & 0x0F) + (((SvgaInfo->OemSoftwareVersion >> 4) & 0x0F) * 10)));
DbgPrint((DPRINT_UI, "SvgaInfo->VendorNamePtr = 0x%x\n", SvgaInfo->VendorNamePtr));
DbgPrint((DPRINT_UI, "SvgaInfo->ProductNamePtr = 0x%x\n", SvgaInfo->ProductNamePtr));
DbgPrint((DPRINT_UI, "SvgaInfo->ProductRevisionStringPtr = 0x%x\n", SvgaInfo->ProductRevisionStringPtr));
DbgPrint((DPRINT_UI, "SvgaInfo->VBE/AF Version = 0x%x (BCD WORD)\n", SvgaInfo->VBE_AF_Version));
//DbgPrint((DPRINT_UI, "\nSupported VESA and OEM video modes:\n"));
//VideoModes = (U16*)SvgaInfo->SupportedModeListPtr;
//for (Index=0; VideoModes[Index]!=0xFFFF; Index++)
//{
// DbgPrint((DPRINT_UI, "Mode %d: 0x%x\n", Index, VideoModes[Index]));
//}
//if (SvgaInfo->VesaVersion >= 0x0200)
//{
// DbgPrint((DPRINT_UI, "\nSupported accelerated video modes (VESA v2.0):\n"));
// VideoModes = (U16*)SvgaInfo->AcceleratedModeListPtr;
// for (Index=0; VideoModes[Index]!=0xFFFF; Index++)
// {
// DbgPrint((DPRINT_UI, "Mode %d: 0x%x\n", Index, VideoModes[Index]));
// }
//}
DbgPrint((DPRINT_UI, "\n"));
//getch();
#endif // defined DEBUG
return SvgaInfo->VesaVersion;
}
BOOL BiosVesaSetBank(U16 Bank)
{
REGS Regs;
// Int 10h AX=4F05h
// VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
//
// AX = 4F05h
// BH = subfunction
// 00h select video memory window
// 01h get video memory window
// DX = window address in video memory (in granularity units)
// Return:
// DX = window address in video memory (in gran. units)
// BL = window number
// 00h window A
// 01h window B.
// Return:
// AL = 4Fh if function supported
// AH = status
// 00h successful
// 01h failed
Regs.w.ax = 0x4F05;
Regs.w.bx = 0x0000;
Regs.w.dx = Bank;
Int386(0x10, &Regs, &Regs);
if (Regs.w.ax != 0x004F)
{
return FALSE;
}
return TRUE;
}
BOOL BiosVesaSetVideoMode(U16 Mode)
{
REGS Regs;
// Int 10h AX=4F02h
// VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
//
// AX = 4F02h
// BX = new video mode
// ES:DI -> (VBE 3.0+) CRTC information block, bit mode bit 11 set
// Return:
// AL = 4Fh if function supported
// AH = status
// 00h successful
// 01h failed
//
// Values for VESA video mode:
// 00h-FFh OEM video modes (see #00010 at AH=00h)
// 100h 640x400x256
// 101h 640x480x256
// 102h 800x600x16
// 103h 800x600x256
// 104h 1024x768x16
// 105h 1024x768x256
// 106h 1280x1024x16
// 107h 1280x1024x256
// 108h 80x60 text
// 109h 132x25 text
// 10Ah 132x43 text
// 10Bh 132x50 text
// 10Ch 132x60 text
// ---VBE v1.2+ ---
// 10Dh 320x200x32K
// 10Eh 320x200x64K
// 10Fh 320x200x16M
// 110h 640x480x32K
// 111h 640x480x64K
// 112h 640x480x16M
// 113h 800x600x32K
// 114h 800x600x64K
// 115h 800x600x16M
// 116h 1024x768x32K
// 117h 1024x768x64K
// 118h 1024x768x16M
// 119h 1280x1024x32K (1:5:5:5)
// 11Ah 1280x1024x64K (5:6:5)
// 11Bh 1280x1024x16M
// ---VBE 2.0+ ---
// 120h 1600x1200x256
// 121h 1600x1200x32K
// 122h 1600x1200x64K
// 81FFh special full-memory access mode
// Notes: The special mode 81FFh preserves the contents of the video memory and gives
// access to all of the memory; VESA recommends that the special mode be a packed-pixel
// mode. For VBE 2.0+, it is required that the VBE implement the mode, but not place it
// in the list of available modes (mode information for this mode can be queried
// directly, however).. As of VBE 2.0, VESA will no longer define video mode numbers
Regs.w.ax = 0x4F02;
Regs.w.bx = Mode;
Int386(0x10, &Regs, &Regs);
if (Regs.w.ax != 0x004F)
{
return FALSE;
}
return TRUE;
}
BOOL BiosVesaGetSVGAModeInformation(U16 Mode, PSVGA_MODE_INFORMATION ModeInformation)
{
REGS Regs;
RtlZeroMemory((PVOID)BIOSCALLBUFFER, 256);
// VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
// AX = 4F01h
// CX = SuperVGA video mode (see #04082 for bitfields)
// ES:DI -> 256-byte buffer for mode information (see #00079)
// Return:
// AL = 4Fh if function supported
// AH = status
// 00h successful
// ES:DI buffer filled
// 01h failed
//
// Desc: Determine the attributes of the specified video mode
//
// Note: While VBE 1.1 and higher will zero out all unused bytes
// of the buffer, v1.0 did not, so applications that want to be
// backward compatible should clear the buffer before calling
Regs.w.ax = 0x4F01;
Regs.w.cx = Mode;
Regs.w.es = BIOSCALLBUFSEGMENT;
Regs.w.di = BIOSCALLBUFOFFSET;
Int386(0x10, &Regs, &Regs);
if (Regs.w.ax != 0x004F)
{
return FALSE;
}
RtlCopyMemory(ModeInformation, (PVOID)BIOSCALLBUFFER, sizeof(SVGA_MODE_INFORMATION));
DbgPrint((DPRINT_UI, "\n"));
DbgPrint((DPRINT_UI, "BiosVesaGetSVGAModeInformation() mode 0x%x\n", Mode));
DbgPrint((DPRINT_UI, "ModeAttributes = 0x%x\n", ModeInformation->ModeAttributes));
DbgPrint((DPRINT_UI, "WindowAttributesA = 0x%x\n", ModeInformation->WindowAttributesA));
DbgPrint((DPRINT_UI, "WindowAttributesB = 0x%x\n", ModeInformation->WindowsAttributesB));
DbgPrint((DPRINT_UI, "WindowGranularity = %dKB\n", ModeInformation->WindowGranularity));
DbgPrint((DPRINT_UI, "WindowSize = %dKB\n", ModeInformation->WindowSize));
DbgPrint((DPRINT_UI, "WindowAStartSegment = 0x%x\n", ModeInformation->WindowAStartSegment));
DbgPrint((DPRINT_UI, "WindowBStartSegment = 0x%x\n", ModeInformation->WindowBStartSegment));
DbgPrint((DPRINT_UI, "WindowPositioningFunction = 0x%x\n", ModeInformation->WindowPositioningFunction));
DbgPrint((DPRINT_UI, "BytesPerScanLine = %d\n", ModeInformation->BytesPerScanLine));
DbgPrint((DPRINT_UI, "WidthInPixels = %d\n", ModeInformation->WidthInPixels));
DbgPrint((DPRINT_UI, "HeightInPixels = %d\n", ModeInformation->HeightInPixels));
DbgPrint((DPRINT_UI, "CharacterWidthInPixels = %d\n", ModeInformation->CharacterWidthInPixels));
DbgPrint((DPRINT_UI, "CharacterHeightInPixels = %d\n", ModeInformation->CharacterHeightInPixels));
DbgPrint((DPRINT_UI, "NumberOfMemoryPlanes = %d\n", ModeInformation->NumberOfMemoryPlanes));
DbgPrint((DPRINT_UI, "BitsPerPixel = %d\n", ModeInformation->BitsPerPixel));
DbgPrint((DPRINT_UI, "NumberOfBanks = %d\n", ModeInformation->NumberOfBanks));
DbgPrint((DPRINT_UI, "MemoryModel = %d\n", ModeInformation->MemoryModel));
DbgPrint((DPRINT_UI, "BankSize = %d\n", ModeInformation->BankSize));
DbgPrint((DPRINT_UI, "NumberOfImagePlanes = %d\n", ModeInformation->NumberOfImagePanes));
DbgPrint((DPRINT_UI, "---VBE v1.2+ ---\n"));
DbgPrint((DPRINT_UI, "RedMaskSize = %d\n", ModeInformation->RedMaskSize));
DbgPrint((DPRINT_UI, "RedMaskPosition = %d\n", ModeInformation->RedMaskPosition));
DbgPrint((DPRINT_UI, "GreenMaskSize = %d\n", ModeInformation->GreenMaskSize));
DbgPrint((DPRINT_UI, "GreenMaskPosition = %d\n", ModeInformation->GreenMaskPosition));
DbgPrint((DPRINT_UI, "BlueMaskSize = %d\n", ModeInformation->BlueMaskSize));
DbgPrint((DPRINT_UI, "BlueMaskPosition = %d\n", ModeInformation->BlueMaskPosition));
DbgPrint((DPRINT_UI, "ReservedMaskSize = %d\n", ModeInformation->ReservedMaskSize));
DbgPrint((DPRINT_UI, "ReservedMaskPosition = %d\n", ModeInformation->ReservedMaskPosition));
DbgPrint((DPRINT_UI, "\n"));
return TRUE;
}

View File

@@ -1,155 +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>
Int386_REGS:
Int386_eax:
.long 0
Int386_ebx:
.long 0
Int386_ecx:
.long 0
Int386_edx:
.long 0
Int386_esi:
.long 0
Int386_edi:
.long 0
Int386_ds:
.word 0
Int386_es:
.word 0
Int386_fs:
.word 0
Int386_gs:
.word 0
Int386_eflags:
.long 0
Int386_vector:
.long 0
Int386_regsin:
.long 0
Int386_regsout:
.long 0
/*
* int Int386(int ivec, REGS* in, REGS* out);
*/
EXTERN(_Int386)
.code32
/* Get the function parameters */
movl 0x04(%esp),%eax
movl %eax,Int386_vector
movb %al,Int386_vector_opcode
movl 0x08(%esp),%eax
movl %eax,Int386_regsin
movl 0x0c(%esp),%eax
movl %eax,Int386_regsout
pushal
/* Copy the input regs to our variables */
movl $Int386_REGS,%edi
movl Int386_regsin,%esi
movl $0x24,%ecx
rep
movsb
call switch_to_real
.code16
/* Setup the registers */
movw %cs:Int386_ds,%ax
movw %ax,%ds /* DS register */
movw %cs:Int386_es,%ax
movw %ax,%es /* ES register */
movw %cs:Int386_fs,%ax
movw %ax,%fs /* FS register */
movw %cs:Int386_gs,%ax
movw %ax,%gs /* GS register */
movl %cs:Int386_eax,%eax /* EAX register */
movl %cs:Int386_ebx,%ebx /* EBX register */
movl %cs:Int386_ecx,%ecx /* ECX register */
movl %cs:Int386_edx,%edx /* EDX register */
movl %cs:Int386_esi,%esi /* ESI register */
movl %cs:Int386_edi,%edi /* EDI register */
/* Do not set the flags register */
/* only return its value in regsout */
//pushl Int386_eflags
//popfl /* EFLAGS register */
/* Call the interrupt vector */
/*int Int386_vector*/
Int386_int_opcode:
.byte 0xcd
Int386_vector_opcode:
.byte 0x00
/* Save the registers */
movl %eax,%cs:Int386_eax /* EAX register */
movl %ebx,%cs:Int386_ebx /* EBX register */
movl %ecx,%cs:Int386_ecx /* ECX register */
movl %edx,%cs:Int386_edx /* EDX register */
movl %esi,%cs:Int386_esi /* ESI register */
movl %edi,%cs:Int386_edi /* EDI register */
movw %ds,%ax /* DS register */
movw %ax,%cs:Int386_ds
movw %es,%ax /* ES register */
movw %ax,%cs:Int386_es
movw %fs,%ax /* FS register */
movw %ax,%cs:Int386_fs
movw %gs,%ax /* GS register */
movw %ax,%cs:Int386_gs
pushf
popw %cs:Int386_eflags /* EFLAGS register */
call switch_to_prot
.code32
/* Copy the variables to the output regs */
movl $Int386_REGS,%esi
movl Int386_regsout,%edi
movl $0x24,%ecx
rep
movsb
popal
/* Get return value */
movl Int386_eax,%eax
ret

View File

@@ -1,81 +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>
.code32
EXTERN(_BootNewLinuxKernel)
call switch_to_real
.code16
/* Set the boot drive */
movb (_BootDrive),%dl
/* Load segment registers */
cli
movw $0x9000,%bx
movw %bx,%ds
movw %bx,%es
movw %bx,%fs
movw %bx,%gs
movw %bx,%ss
movw $0x9000,%sp
ljmpl $0x9020,$0x0000
.code32
/*
* VOID BootOldLinuxKernel(ULONG KernelSize);
*/
EXTERN(_BootOldLinuxKernel)
/* First we have to copy the kernel down from 0x100000 to 0x10000 */
/* The reason we can overwrite low memory is because this code */
/* executes between 0000:8000 and 0000:FFFF. That leaves space for */
/* 32k of code before we start interfering with Linux kernel address space. */
/* Get KernelSize in ECX and move the kernel down */
movl 0x04(%esp),%ecx
movl $0x100000,%esi
movl $0x10000,%edi
rep movsb
call switch_to_real
.code16
/* Set the boot drive */
movb (_BootDrive),%dl
/* Load segment registers */
cli
movw $0x9000,%bx
movw %bx,%ds
movw %bx,%es
movw %bx,%fs
movw %bx,%gs
movw %bx,%ss
movw $0x9000,%sp
ljmpl $0x9020,$0x0000

View File

@@ -1,262 +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 switch_to_real
.code16
/* Save cursor position */
movw $3,%ax //! Reset video mode
int $0x10
movb $10,%bl
movb $12,%ah
int $0x10
movw $0x1112,%ax // Use 8x8 font
xorb %bl,%bl
int $0x10
movw $0x1200,%ax // Use alternate print screen
movb $0x20,%bl
int $0x10
movb $1,%ah // Define cursor (scan lines 6 to 7)
movw $0x0607,%cx
int $0x10
movb $1,%ah
movw $0x600,%cx
int $0x10
movb $6,%ah // Scroll active page up
movb $0x32,%al // Clear 25 lines
movw $0,%cx // Upper left of scroll
movw $0x314F,%dx // Lower right of scroll
movb $(1*0x00+0),%bh // Use normal attribute on blanked line
int $0x10 // Video-IO
movw $0,%dx
movb $0,%dh
movb $2,%ah
movb $0,%bh
int $0x10
movw $0,%dx
movb $0,%dh
movb $2,%ah
movb $0,%bh
int $0x10
call _multi_boot
// Should never get here
cli
hlt
/*
* After you have setup the _mb_header and _mb_info structures
* then call this routine to transfer control to the kernel.
* This routine must be entered in 16-bit mode.
*/
.code16
EXTERN(_multi_boot)
cli
/*
* Setup various variables
*/
movw %ds,%bx
movzwl %bx,%eax
shll $4,%eax
addl %eax,kernel_gdtbase
/*
* Load the absolute address of the multiboot information structure
*/
movl $_mb_info,%ebx
/*
* load gdt
*/
lgdt kernel_gdtptr
/*
* Enter pmode and clear prefetch queue
*/
movl %cr0,%eax
orl $0x10001,%eax
movl %eax,%cr0
jmp next
next:
/*
* NOTE: This must be position independant (no references to
* non absolute variables)
*/
/*
* Initalize segment registers
*/
movw $KERNEL_DS,%ax
movw %ax,%ds
movw %ax,%ss
movw %ax,%es
movw %ax,%fs
movw %ax,%gs
/*
* 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
//ljmpl $KERNEL_CS,$(0x0200000+0x1000)
//ljmpl $KERNEL_CS,(_mb_entry_addr)
//ljmpl $KERNEL_CS,$(KERNEL_BASE+0x1000)
.p2align 2 /* force 4-byte alignment */
kernel_gdt:
.word 0 // Zero descriptor
.word 0
.word 0
.word 0
.word 0xffff // Kernel code descriptor
.word 0x0000 //
.word 0x9a00 // base 0h limit 4gb
.word 0x00cf
.word 0xffff // Kernel data descriptor
.word 0x0000 //
.word 0x9200 // base 0h limit 4gb
.word 0x00cf
kernel_gdtptr:
.word (3*8)-1 /* Limit */
kernel_gdtbase:
.long kernel_gdt /* Base Address */
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,214 +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 <fs.h>
#include <reactos.h>
#include <ui.h>
#include <arch.h>
#include <miscboot.h>
#include <linux.h>
#include <mm.h>
#include <inifile.h>
#include <debug.h>
#include <options.h>
#include <oslist.h>
#include <video.h>
#include <bootmgr.h>
#include <drivemap.h>
#include <keycodes.h>
VOID RunLoader(VOID)
{
UCHAR SettingName[80];
UCHAR SettingValue[80];
U32 SectionId;
U32 OperatingSystemCount;
PUCHAR *OperatingSystemSectionNames;
PUCHAR *OperatingSystemDisplayNames;
U32 DefaultOperatingSystem;
S32 TimeOut;
U32 SelectedOperatingSystem;
if (!IniFileInitialize())
{
printf("Press any key to reboot.\n");
getch();
return;
}
if (!IniOpenSection("FreeLoader", &SectionId))
{
printf("Section [FreeLoader] not found in freeldr.ini.\n");
getch();
return;
}
if (!UiInitialize())
{
printf("Press any key to reboot.\n");
getch();
return;
}
if (!InitOperatingSystemList(&OperatingSystemSectionNames, &OperatingSystemDisplayNames, &OperatingSystemCount))
{
UiMessageBox("Press ENTER to reboot.\n");
goto reboot;
}
if (OperatingSystemCount == 0)
{
UiMessageBox("There were no operating systems listed in freeldr.ini.\nPress ENTER to reboot.");
goto reboot;
}
DefaultOperatingSystem = GetDefaultOperatingSystem(OperatingSystemSectionNames, OperatingSystemCount);
TimeOut = GetTimeOut();
//
// Find all the message box settings and run them
//
UiShowMessageBoxesInSection("FreeLoader");
for (;;)
{
// Redraw the backdrop
UiDrawBackdrop();
// Show the operating system list menu
if (!UiDisplayMenu(OperatingSystemDisplayNames, OperatingSystemCount, DefaultOperatingSystem, TimeOut, &SelectedOperatingSystem, FALSE, MainBootMenuKeyPressFilter))
{
UiMessageBox("Press ENTER to reboot.\n");
goto reboot;
}
TimeOut = -1;
DefaultOperatingSystem = SelectedOperatingSystem;
// Try to open the operating system section in the .ini file
if (!IniOpenSection(OperatingSystemSectionNames[SelectedOperatingSystem], &SectionId))
{
sprintf(SettingName, "Section [%s] not found in freeldr.ini.\n", OperatingSystemSectionNames[SelectedOperatingSystem]);
UiMessageBox(SettingName);
continue;
}
// Try to read the boot type
if (!IniReadSettingByName(SectionId, "BootType", SettingValue, 80))
{
sprintf(SettingName, "BootType= line not found in section [%s] in freeldr.ini.\n", OperatingSystemSectionNames[SelectedOperatingSystem]);
UiMessageBox(SettingName);
continue;
}
// Install the drive mapper according to this sections drive mappings
DriveMapMapDrivesInSection(OperatingSystemSectionNames[SelectedOperatingSystem]);
if (stricmp(SettingValue, "ReactOS") == 0)
{
LoadAndBootReactOS(OperatingSystemSectionNames[SelectedOperatingSystem]);
}
else if (stricmp(SettingValue, "Linux") == 0)
{
LoadAndBootLinux(OperatingSystemSectionNames[SelectedOperatingSystem], OperatingSystemDisplayNames[SelectedOperatingSystem]);
}
else if (stricmp(SettingValue, "BootSector") == 0)
{
LoadAndBootBootSector(OperatingSystemSectionNames[SelectedOperatingSystem]);
}
else if (stricmp(SettingValue, "Partition") == 0)
{
LoadAndBootPartition(OperatingSystemSectionNames[SelectedOperatingSystem]);
}
else if (stricmp(SettingValue, "Drive") == 0)
{
LoadAndBootDrive(OperatingSystemSectionNames[SelectedOperatingSystem]);
}
}
reboot:
UiUnInitialize("Rebooting...");
return;
}
U32 GetDefaultOperatingSystem(PUCHAR OperatingSystemList[], U32 OperatingSystemCount)
{
UCHAR DefaultOSText[80];
U32 SectionId;
U32 DefaultOS = 0;
U32 Idx;
if (!IniOpenSection("FreeLoader", &SectionId))
{
return 0;
}
if (IniReadSettingByName(SectionId, "DefaultOS", DefaultOSText, 80))
{
for (Idx=0; Idx<OperatingSystemCount; Idx++)
{
if (stricmp(DefaultOSText, OperatingSystemList[Idx]) == 0)
{
DefaultOS = Idx;
break;
}
}
}
return DefaultOS;
}
S32 GetTimeOut(VOID)
{
UCHAR TimeOutText[20];
U32 TimeOut;
U32 SectionId;
if (!IniOpenSection("FreeLoader", &SectionId))
{
return -1;
}
if (IniReadSettingByName(SectionId, "TimeOut", TimeOutText, 20))
{
TimeOut = atoi(TimeOutText);
}
else
{
TimeOut = -1;
}
return TimeOut;
}
BOOL MainBootMenuKeyPressFilter(U32 KeyPress)
{
if (KeyPress == KEY_F8)
{
DoOptionsMenu();
return TRUE;
}
// We didn't handle the key
return FALSE;
}

View File

@@ -1,262 +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 "cm.h"
#include <mm.h>
#include <disk.h>
#include <rtl.h>
#include <debug.h>
#include <arch.h>
// Returns a pointer to a CACHE_BLOCK structure
// Adds the block to the cache manager block list
// in cache memory if it isn't already there
PCACHE_BLOCK CacheInternalGetBlockPointer(PCACHE_DRIVE CacheDrive, U32 BlockNumber)
{
PCACHE_BLOCK CacheBlock = NULL;
DbgPrint((DPRINT_CACHE, "CacheInternalGetBlockPointer() BlockNumber = %d\n", BlockNumber));
CacheBlock = CacheInternalFindBlock(CacheDrive, BlockNumber);
if (CacheBlock != NULL)
{
DbgPrint((DPRINT_CACHE, "Cache hit! BlockNumber: %d CacheBlock->BlockNumber: %d\n", BlockNumber, CacheBlock->BlockNumber));
return CacheBlock;
}
DbgPrint((DPRINT_CACHE, "Cache miss! BlockNumber: %d\n", BlockNumber));
CacheBlock = CacheInternalAddBlockToCache(CacheDrive, BlockNumber);
// Optimize the block list so it has a LRU structure
CacheInternalOptimizeBlockList(CacheDrive, CacheBlock);
return CacheBlock;
}
PCACHE_BLOCK CacheInternalFindBlock(PCACHE_DRIVE CacheDrive, U32 BlockNumber)
{
PCACHE_BLOCK CacheBlock = NULL;
DbgPrint((DPRINT_CACHE, "CacheInternalFindBlock() BlockNumber = %d\n", BlockNumber));
//
// Make sure the block list has entries before I start searching it.
//
if (!RtlListIsEmpty((PLIST_ITEM)CacheDrive->CacheBlockHead))
{
//
// Search the list and find the BIOS drive number
//
CacheBlock = CacheDrive->CacheBlockHead;
while (CacheBlock != NULL)
{
//
// We found the block, so return it
//
if (CacheBlock->BlockNumber == BlockNumber)
{
//
// Increment the blocks access count
//
CacheBlock->AccessCount++;
return CacheBlock;
}
CacheBlock = (PCACHE_BLOCK)RtlListGetNext((PLIST_ITEM)CacheBlock);
}
}
return NULL;
}
PCACHE_BLOCK CacheInternalAddBlockToCache(PCACHE_DRIVE CacheDrive, U32 BlockNumber)
{
PCACHE_BLOCK CacheBlock = NULL;
DbgPrint((DPRINT_CACHE, "CacheInternalAddBlockToCache() BlockNumber = %d\n", BlockNumber));
// Check the size of the cache so we don't exceed our limits
CacheInternalCheckCacheSizeLimits(CacheDrive);
// We will need to add the block to the
// drive's list of cached blocks. So allocate
// the block memory.
CacheBlock = MmAllocateMemory(sizeof(CACHE_BLOCK));
if (CacheBlock == NULL)
{
return NULL;
}
// Now initialize the structure and
// allocate room for the block data
RtlZeroMemory(CacheBlock, sizeof(CACHE_BLOCK));
CacheBlock->BlockNumber = BlockNumber;
CacheBlock->BlockData = MmAllocateMemory(CacheDrive->BlockSize * CacheDrive->DriveGeometry.BytesPerSector);
if (CacheBlock->BlockData ==NULL)
{
MmFreeMemory(CacheBlock);
return NULL;
}
// Now try to read in the block
if (!DiskReadLogicalSectors(CacheDrive->DriveNumber, (BlockNumber * CacheDrive->BlockSize), CacheDrive->BlockSize, (PVOID)DISKREADBUFFER))
{
MmFreeMemory(CacheBlock->BlockData);
MmFreeMemory(CacheBlock);
return NULL;
}
RtlCopyMemory(CacheBlock->BlockData, (PVOID)DISKREADBUFFER, CacheDrive->BlockSize * CacheDrive->DriveGeometry.BytesPerSector);
// Add it to our list of blocks managed by the cache
if (CacheDrive->CacheBlockHead == NULL)
{
CacheDrive->CacheBlockHead = CacheBlock;
}
else
{
RtlListInsertTail((PLIST_ITEM)CacheDrive->CacheBlockHead, (PLIST_ITEM)CacheBlock);
}
// Update the cache data
CacheBlockCount++;
CacheSizeCurrent = CacheBlockCount * (CacheDrive->BlockSize * CacheDrive->DriveGeometry.BytesPerSector);
CacheInternalDumpBlockList(CacheDrive);
return CacheBlock;
}
BOOL CacheInternalFreeBlock(PCACHE_DRIVE CacheDrive)
{
PCACHE_BLOCK CacheBlockToFree;
DbgPrint((DPRINT_CACHE, "CacheInternalFreeBlock()\n"));
// Get a pointer to the last item in the block list
// that isn't forced to be in the cache and remove
// it from the list
CacheBlockToFree = (PCACHE_BLOCK)RtlListGetTail((PLIST_ITEM)CacheDrive->CacheBlockHead);
while (CacheBlockToFree != NULL && CacheBlockToFree->LockedInCache == TRUE)
{
CacheBlockToFree = (PCACHE_BLOCK)RtlListGetPrevious((PLIST_ITEM)CacheBlockToFree);
}
// No blocks left in cache that can be freed
// so just return
if (CacheBlockToFree == NULL)
{
return FALSE;
}
//
// If we are freeing the head of the list then update it's pointer
//
if (CacheBlockToFree == CacheDrive->CacheBlockHead)
{
CacheDrive->CacheBlockHead = (PCACHE_BLOCK)RtlListGetNext((PLIST_ITEM)CacheBlockToFree);
}
RtlListRemoveEntry((PLIST_ITEM)CacheBlockToFree);
// Free the block memory and the block structure
MmFreeMemory(CacheBlockToFree->BlockData);
MmFreeMemory(CacheBlockToFree);
// Update the cache data
CacheBlockCount--;
CacheSizeCurrent = CacheBlockCount * (CacheDrive->BlockSize * CacheDrive->DriveGeometry.BytesPerSector);
return TRUE;
}
VOID CacheInternalCheckCacheSizeLimits(PCACHE_DRIVE CacheDrive)
{
U32 NewCacheSize;
DbgPrint((DPRINT_CACHE, "CacheInternalCheckCacheSizeLimits()\n"));
// Calculate the size of the cache if we added a block
NewCacheSize = (CacheBlockCount + 1) * (CacheDrive->BlockSize * CacheDrive->DriveGeometry.BytesPerSector);
// Check the new size against the cache size limit
if (NewCacheSize > CacheSizeLimit)
{
CacheInternalFreeBlock(CacheDrive);
CacheInternalDumpBlockList(CacheDrive);
}
}
VOID CacheInternalDumpBlockList(PCACHE_DRIVE CacheDrive)
{
PCACHE_BLOCK CacheBlock;
DbgPrint((DPRINT_CACHE, "Dumping block list for BIOS drive 0x%x.\n", CacheDrive->DriveNumber));
DbgPrint((DPRINT_CACHE, "Cylinders: %d.\n", CacheDrive->DriveGeometry.Cylinders));
DbgPrint((DPRINT_CACHE, "Heads: %d.\n", CacheDrive->DriveGeometry.Heads));
DbgPrint((DPRINT_CACHE, "Sectors: %d.\n", CacheDrive->DriveGeometry.Sectors));
DbgPrint((DPRINT_CACHE, "BytesPerSector: %d.\n", CacheDrive->DriveGeometry.BytesPerSector));
DbgPrint((DPRINT_CACHE, "BlockSize: %d.\n", CacheDrive->BlockSize));
DbgPrint((DPRINT_CACHE, "CacheSizeLimit: %d.\n", CacheSizeLimit));
DbgPrint((DPRINT_CACHE, "CacheSizeCurrent: %d.\n", CacheSizeCurrent));
DbgPrint((DPRINT_CACHE, "CacheBlockCount: %d.\n", CacheBlockCount));
DbgPrint((DPRINT_CACHE, "Dumping %d cache blocks.\n", RtlListCountEntries((PLIST_ITEM)CacheDrive->CacheBlockHead)));
CacheBlock = CacheDrive->CacheBlockHead;
while (CacheBlock != NULL)
{
DbgPrint((DPRINT_CACHE, "Cache Block: CacheBlock: 0x%x\n", CacheBlock));
DbgPrint((DPRINT_CACHE, "Cache Block: Block Number: %d\n", CacheBlock->BlockNumber));
DbgPrint((DPRINT_CACHE, "Cache Block: Access Count: %d\n", CacheBlock->AccessCount));
DbgPrint((DPRINT_CACHE, "Cache Block: Block Data: 0x%x\n", CacheBlock->BlockData));
DbgPrint((DPRINT_CACHE, "Cache Block: Locked In Cache: %d\n", CacheBlock->LockedInCache));
if (CacheBlock->BlockData == NULL)
{
BugCheck((DPRINT_CACHE, "What the heck?!?\n"));
}
CacheBlock = (PCACHE_BLOCK)RtlListGetNext((PLIST_ITEM)CacheBlock);
}
}
VOID CacheInternalOptimizeBlockList(PCACHE_DRIVE CacheDrive, PCACHE_BLOCK CacheBlock)
{
DbgPrint((DPRINT_CACHE, "CacheInternalOptimizeBlockList()\n"));
// Don't do this if this block is already at the head of the list
if (CacheBlock != CacheDrive->CacheBlockHead)
{
// Remove this item from the block list
RtlListRemoveEntry((PLIST_ITEM)CacheBlock);
// Re-insert it at the head of the list
RtlListInsertHead((PLIST_ITEM)CacheDrive->CacheBlockHead, (PLIST_ITEM)CacheBlock);
// Update the head pointer
CacheDrive->CacheBlockHead = CacheBlock;
}
}

View File

@@ -1,325 +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 "cm.h"
#include <mm.h>
#include <disk.h>
#include <rtl.h>
#include <debug.h>
///////////////////////////////////////////////////////////////////////////////////////
//
// Internal data
//
///////////////////////////////////////////////////////////////////////////////////////
CACHE_DRIVE CacheManagerDrive;
BOOL CacheManagerInitialized = FALSE;
BOOL CacheManagerDataInvalid = FALSE;
U32 CacheBlockCount = 0;
U32 CacheSizeLimit = 0;
U32 CacheSizeCurrent = 0;
BOOL CacheInitializeDrive(U32 DriveNumber)
{
PCACHE_BLOCK NextCacheBlock;
// If we already have a cache for this drive then
// by all means lets keep it, unless it is a removable
// drive, in which case we'll invalidate the cache
if ((CacheManagerInitialized == TRUE) &&
(DriveNumber == CacheManagerDrive.DriveNumber) &&
(DriveNumber >= 0x80) &&
(CacheManagerDataInvalid != TRUE))
{
return TRUE;
}
CacheManagerDataInvalid = FALSE;
//
// If we have already been initialized then free
// the old data
//
if (CacheManagerInitialized)
{
CacheManagerInitialized = FALSE;
DbgPrint((DPRINT_CACHE, "CacheBlockCount: %d\n", CacheBlockCount));
DbgPrint((DPRINT_CACHE, "CacheSizeLimit: %d\n", CacheSizeLimit));
DbgPrint((DPRINT_CACHE, "CacheSizeCurrent: %d\n", CacheSizeCurrent));
//
// Loop through and free the cache blocks
//
while (CacheManagerDrive.CacheBlockHead != NULL)
{
NextCacheBlock = (PCACHE_BLOCK)RtlListGetNext((PLIST_ITEM)CacheManagerDrive.CacheBlockHead);
MmFreeMemory(CacheManagerDrive.CacheBlockHead->BlockData);
MmFreeMemory(CacheManagerDrive.CacheBlockHead);
CacheManagerDrive.CacheBlockHead = NextCacheBlock;
}
}
// Initialize the structure
RtlZeroMemory(&CacheManagerDrive, sizeof(CACHE_DRIVE));
CacheManagerDrive.DriveNumber = DriveNumber;
if (!DiskGetDriveGeometry(DriveNumber, &CacheManagerDrive.DriveGeometry))
{
return FALSE;
}
// Get the number of sectors in each cache block
CacheManagerDrive.BlockSize = DiskGetCacheableBlockCount(DriveNumber);
CacheBlockCount = 0;
CacheSizeLimit = GetSystemMemorySize() / 8;
CacheSizeCurrent = 0;
if (CacheSizeLimit < (64 * 1024))
{
CacheSizeLimit = (64 * 1024);
}
CacheManagerInitialized = TRUE;
DbgPrint((DPRINT_CACHE, "Initializing BIOS drive 0x%x.\n", DriveNumber));
DbgPrint((DPRINT_CACHE, "Cylinders: %d.\n", CacheManagerDrive.DriveGeometry.Cylinders));
DbgPrint((DPRINT_CACHE, "Heads: %d.\n", CacheManagerDrive.DriveGeometry.Heads));
DbgPrint((DPRINT_CACHE, "Sectors: %d.\n", CacheManagerDrive.DriveGeometry.Sectors));
DbgPrint((DPRINT_CACHE, "BytesPerSector: %d.\n", CacheManagerDrive.DriveGeometry.BytesPerSector));
DbgPrint((DPRINT_CACHE, "BlockSize: %d.\n", CacheManagerDrive.BlockSize));
DbgPrint((DPRINT_CACHE, "CacheSizeLimit: %d.\n", CacheSizeLimit));
return TRUE;
}
VOID CacheInvalidateCacheData(VOID)
{
CacheManagerDataInvalid = TRUE;
}
BOOL CacheReadDiskSectors(U32 DiskNumber, U32 StartSector, U32 SectorCount, PVOID Buffer)
{
PCACHE_BLOCK CacheBlock;
U32 StartBlock;
U32 SectorOffsetInStartBlock;
U32 CopyLengthInStartBlock;
U32 EndBlock;
U32 SectorOffsetInEndBlock;
U32 BlockCount;
U32 Idx;
DbgPrint((DPRINT_CACHE, "CacheReadDiskSectors() DiskNumber: 0x%x StartSector: %d SectorCount: %d Buffer: 0x%x\n", DiskNumber, StartSector, SectorCount, Buffer));
// If we aren't initialized yet then they can't do this
if (CacheManagerInitialized == FALSE)
{
return FALSE;
}
//
// Caculate which blocks we must cache
//
StartBlock = StartSector / CacheManagerDrive.BlockSize;
SectorOffsetInStartBlock = StartSector % CacheManagerDrive.BlockSize;
CopyLengthInStartBlock = (SectorCount > (CacheManagerDrive.BlockSize - SectorOffsetInStartBlock)) ? (CacheManagerDrive.BlockSize - SectorOffsetInStartBlock) : SectorCount;
EndBlock = (StartSector + (SectorCount - 1)) / CacheManagerDrive.BlockSize;
SectorOffsetInEndBlock = (StartSector + SectorCount) % CacheManagerDrive.BlockSize;
BlockCount = (EndBlock - StartBlock) + 1;
DbgPrint((DPRINT_CACHE, "StartBlock: %d SectorOffsetInStartBlock: %d CopyLengthInStartBlock: %d EndBlock: %d SectorOffsetInEndBlock: %d BlockCount: %d\n", StartBlock, SectorOffsetInStartBlock, CopyLengthInStartBlock, EndBlock, SectorOffsetInEndBlock, BlockCount));
//
// Read the first block into the buffer
//
if (BlockCount > 0)
{
//
// Get cache block pointer (this forces the disk sectors into the cache memory)
//
CacheBlock = CacheInternalGetBlockPointer(&CacheManagerDrive, StartBlock);
if (CacheBlock == NULL)
{
return FALSE;
}
//
// Copy the portion requested into the buffer
//
RtlCopyMemory(Buffer,
(CacheBlock->BlockData + (SectorOffsetInStartBlock * CacheManagerDrive.DriveGeometry.BytesPerSector)),
(CopyLengthInStartBlock * CacheManagerDrive.DriveGeometry.BytesPerSector));
DbgPrint((DPRINT_CACHE, "1 - RtlCopyMemory(0x%x, 0x%x, %d)\n", Buffer, (CacheBlock->BlockData + (SectorOffsetInStartBlock * CacheManagerDrive.DriveGeometry.BytesPerSector)), (CopyLengthInStartBlock * CacheManagerDrive.DriveGeometry.BytesPerSector)));
//
// Update the buffer address
//
Buffer += (CopyLengthInStartBlock * CacheManagerDrive.DriveGeometry.BytesPerSector);
//
// Update the block count
//
BlockCount--;
}
//
// Loop through the middle blocks and read them into the buffer
//
for (Idx=StartBlock+1; BlockCount>1; Idx++)
{
//
// Get cache block pointer (this forces the disk sectors into the cache memory)
//
CacheBlock = CacheInternalGetBlockPointer(&CacheManagerDrive, Idx);
if (CacheBlock == NULL)
{
return FALSE;
}
//
// Copy the portion requested into the buffer
//
RtlCopyMemory(Buffer,
CacheBlock->BlockData,
CacheManagerDrive.BlockSize * CacheManagerDrive.DriveGeometry.BytesPerSector);
DbgPrint((DPRINT_CACHE, "2 - RtlCopyMemory(0x%x, 0x%x, %d)\n", Buffer, CacheBlock->BlockData, CacheManagerDrive.BlockSize * CacheManagerDrive.DriveGeometry.BytesPerSector));
//
// Update the buffer address
//
Buffer += CacheManagerDrive.BlockSize * CacheManagerDrive.DriveGeometry.BytesPerSector;
//
// Update the block count
//
BlockCount--;
}
//
// Read the last block into the buffer
//
if (BlockCount > 0)
{
//
// Get cache block pointer (this forces the disk sectors into the cache memory)
//
CacheBlock = CacheInternalGetBlockPointer(&CacheManagerDrive, EndBlock);
if (CacheBlock == NULL)
{
return FALSE;
}
//
// Copy the portion requested into the buffer
//
RtlCopyMemory(Buffer,
CacheBlock->BlockData,
SectorOffsetInEndBlock * CacheManagerDrive.DriveGeometry.BytesPerSector);
DbgPrint((DPRINT_CACHE, "3 - RtlCopyMemory(0x%x, 0x%x, %d)\n", Buffer, CacheBlock->BlockData, SectorOffsetInEndBlock * CacheManagerDrive.DriveGeometry.BytesPerSector));
//
// Update the buffer address
//
Buffer += SectorOffsetInEndBlock * CacheManagerDrive.DriveGeometry.BytesPerSector;
//
// Update the block count
//
BlockCount--;
}
return TRUE;
}
BOOL CacheForceDiskSectorsIntoCache(U32 DiskNumber, U32 StartSector, U32 SectorCount)
{
PCACHE_BLOCK CacheBlock;
U32 StartBlock;
U32 EndBlock;
U32 BlockCount;
U32 Idx;
DbgPrint((DPRINT_CACHE, "CacheForceDiskSectorsIntoCache() DiskNumber: 0x%x StartSector: %d SectorCount: %d\n", DiskNumber, StartSector, SectorCount));
// If we aren't initialized yet then they can't do this
if (CacheManagerInitialized == FALSE)
{
return FALSE;
}
//
// Caculate which blocks we must cache
//
StartBlock = StartSector / CacheManagerDrive.BlockSize;
EndBlock = (StartSector + SectorCount) / CacheManagerDrive.BlockSize;
BlockCount = (EndBlock - StartBlock) + 1;
//
// Loop through and cache them
//
for (Idx=StartBlock; Idx<(StartBlock+BlockCount); Idx++)
{
//
// Get cache block pointer (this forces the disk sectors into the cache memory)
//
CacheBlock = CacheInternalGetBlockPointer(&CacheManagerDrive, Idx);
if (CacheBlock == NULL)
{
return FALSE;
}
//
// Lock the sectors into the cache
//
CacheBlock->LockedInCache = TRUE;
}
return TRUE;
}
BOOL CacheReleaseMemory(U32 MinimumAmountToRelease)
{
U32 AmountReleased;
DbgPrint((DPRINT_CACHE, "CacheReleaseMemory() MinimumAmountToRelease = %d\n", MinimumAmountToRelease));
// If we aren't initialized yet then they can't do this
if (CacheManagerInitialized == FALSE)
{
return FALSE;
}
// Loop through and try to free the requested amount of memory
for (AmountReleased=0; AmountReleased<MinimumAmountToRelease; )
{
// Try to free a block
// If this fails then break out of the loop
if (!CacheInternalFreeBlock(&CacheManagerDrive))
{
break;
}
// It succeeded so increment the amount of memory we have freed
AmountReleased += CacheManagerDrive.BlockSize * CacheManagerDrive.DriveGeometry.BytesPerSector;
}
// Return status
return (AmountReleased >= MinimumAmountToRelease);
}

View File

@@ -1,92 +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 <disk.h>
#ifndef __CM_H
#define __CM_H
///////////////////////////////////////////////////////////////////////////////////////
//
// This structure describes a cached block element. The disk is divided up into
// cache blocks. For disks which LBA is not supported each block is the size of
// one track. This will force the cache manager to make track sized reads, and
// therefore maximizes throughput. For disks which support LBA the block size
// is 64k because they have no cylinder, head, or sector boundaries.
//
///////////////////////////////////////////////////////////////////////////////////////
typedef struct
{
LIST_ITEM ListEntry; // Doubly linked list synchronization member
U32 BlockNumber; // Track index for CHS, 64k block index for LBA
BOOL LockedInCache; // Indicates that this block is locked in cache memory
U32 AccessCount; // Access count for this block
PVOID BlockData; // Pointer to block data
} CACHE_BLOCK, *PCACHE_BLOCK;
///////////////////////////////////////////////////////////////////////////////////////
//
// This structure describes a cached drive. It contains the BIOS drive number
// and indicates whether or not LBA is supported. If LBA is not supported then
// the drive's geometry is described here.
//
///////////////////////////////////////////////////////////////////////////////////////
typedef struct
{
U32 DriveNumber;
GEOMETRY DriveGeometry;
U32 BlockSize; // Block size (in sectors)
PCACHE_BLOCK CacheBlockHead;
} CACHE_DRIVE, *PCACHE_DRIVE;
///////////////////////////////////////////////////////////////////////////////////////
//
// Internal data
//
///////////////////////////////////////////////////////////////////////////////////////
extern CACHE_DRIVE CacheManagerDrive;
extern BOOL CacheManagerInitialized;
extern U32 CacheBlockCount;
extern U32 CacheSizeLimit;
extern U32 CacheSizeCurrent;
///////////////////////////////////////////////////////////////////////////////////////
//
// Internal functions
//
///////////////////////////////////////////////////////////////////////////////////////
PCACHE_BLOCK CacheInternalGetBlockPointer(PCACHE_DRIVE CacheDrive, U32 BlockNumber); // Returns a pointer to a CACHE_BLOCK structure given a block number
PCACHE_BLOCK CacheInternalFindBlock(PCACHE_DRIVE CacheDrive, U32 BlockNumber); // Searches the block list for a particular block
PCACHE_BLOCK CacheInternalAddBlockToCache(PCACHE_DRIVE CacheDrive, U32 BlockNumber); // Adds a block to the cache's block list
BOOL CacheInternalFreeBlock(PCACHE_DRIVE CacheDrive); // Removes a block from the cache's block list & frees the memory
VOID CacheInternalCheckCacheSizeLimits(PCACHE_DRIVE CacheDrive); // Checks the cache size limits to see if we can add a new block, if not calls CacheInternalFreeBlock()
VOID CacheInternalDumpBlockList(PCACHE_DRIVE CacheDrive); // Dumps the list of cached blocks to the debug output port
VOID CacheInternalOptimizeBlockList(PCACHE_DRIVE CacheDrive, PCACHE_BLOCK CacheBlock); // Moves the specified block to the head of the list
#endif // defined __CM_H

View File

@@ -1,277 +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.
*/
#include <freeldr.h>
#include <comm.h>
#include <portio.h>
/* MACROS *******************************************************************/
#define DEFAULT_BAUD_RATE 19200
#define SER_RBR(x) ((x)+0)
#define SER_THR(x) ((x)+0)
#define SER_DLL(x) ((x)+0)
#define SER_IER(x) ((x)+1)
#define SER_DLM(x) ((x)+1)
#define SER_IIR(x) ((x)+2)
#define SER_LCR(x) ((x)+3)
#define SR_LCR_CS5 0x00
#define SR_LCR_CS6 0x01
#define SR_LCR_CS7 0x02
#define SR_LCR_CS8 0x03
#define SR_LCR_ST1 0x00
#define SR_LCR_ST2 0x04
#define SR_LCR_PNO 0x00
#define SR_LCR_POD 0x08
#define SR_LCR_PEV 0x18
#define SR_LCR_PMK 0x28
#define SR_LCR_PSP 0x38
#define SR_LCR_BRK 0x40
#define SR_LCR_DLAB 0x80
#define SER_MCR(x) ((x)+4)
#define SR_MCR_DTR 0x01
#define SR_MCR_RTS 0x02
#define SER_LSR(x) ((x)+5)
#define SR_LSR_DR 0x01
#define SR_LSR_TBE 0x20
#define SER_MSR(x) ((x)+6)
#define SR_MSR_CTS 0x10
#define SR_MSR_DSR 0x20
#define SER_SCR(x) ((x)+7)
/* STATIC VARIABLES *********************************************************/
static U32 Rs232ComPort = 0;
static U32 Rs232BaudRate = 0;
static PUCHAR Rs232PortBase = (PUCHAR)0;
/* The com port must only be initialized once! */
static BOOLEAN PortInitialized = FALSE;
/* STATIC FUNCTIONS *********************************************************/
static BOOL Rs232DoesComPortExist(PUCHAR BaseAddress)
{
BOOLEAN found;
U8 mcr;
U8 msr;
found = FALSE;
/* save Modem Control Register (MCR) */
mcr = READ_PORT_UCHAR (SER_MCR(BaseAddress));
/* enable loop mode (set Bit 4 of the MCR) */
WRITE_PORT_UCHAR (SER_MCR(BaseAddress), 0x10);
/* clear all modem output bits */
WRITE_PORT_UCHAR (SER_MCR(BaseAddress), 0x10);
/* read the Modem Status Register */
msr = READ_PORT_UCHAR (SER_MSR(BaseAddress));
/*
* the upper nibble of the MSR (modem output bits) must be
* equal to the lower nibble of the MCR (modem input bits)
*/
if ((msr & 0xF0) == 0x00)
{
/* set all modem output bits */
WRITE_PORT_UCHAR (SER_MCR(BaseAddress), 0x1F);
/* read the Modem Status Register */
msr = READ_PORT_UCHAR (SER_MSR(BaseAddress));
/*
* the upper nibble of the MSR (modem output bits) must be
* equal to the lower nibble of the MCR (modem input bits)
*/
if ((msr & 0xF0) == 0xF0)
found = TRUE;
}
/* restore MCR */
WRITE_PORT_UCHAR (SER_MCR(BaseAddress), mcr);
return (found);
}
/* FUNCTIONS *********************************************************/
BOOL Rs232PortInitialize(U32 ComPort, U32 BaudRate)
{
U32 BaseArray[5] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8};
//char buffer[80];
U32 divisor;
U8 lcr;
if (PortInitialized == FALSE)
{
if (BaudRate != 0)
{
Rs232BaudRate = BaudRate;
}
else
{
Rs232BaudRate = DEFAULT_BAUD_RATE;
}
if (ComPort == 0)
{
if (Rs232DoesComPortExist ((PUCHAR)BaseArray[2]))
{
Rs232PortBase = (PUCHAR)BaseArray[2];
Rs232ComPort = 2;
/*#ifndef NDEBUG
sprintf (buffer,
"\nSerial port COM%ld found at 0x%lx\n",
ComPort,
(U32)PortBase);
HalDisplayString (buffer);
#endif*/ /* NDEBUG */
}
else if (Rs232DoesComPortExist ((PUCHAR)BaseArray[1]))
{
Rs232PortBase = (PUCHAR)BaseArray[1];
Rs232ComPort = 1;
/*#ifndef NDEBUG
sprintf (buffer,
"\nSerial port COM%ld found at 0x%lx\n",
ComPort,
(U32)PortBase);
HalDisplayString (buffer);
#endif*/ /* NDEBUG */
}
else
{
/*sprintf (buffer,
"\nKernel Debugger: No COM port found!!!\n\n");
HalDisplayString (buffer);*/
return FALSE;
}
}
else
{
if (Rs232DoesComPortExist ((PUCHAR)BaseArray[ComPort]))
{
Rs232PortBase = (PUCHAR)BaseArray[ComPort];
Rs232ComPort = ComPort;
/*#ifndef NDEBUG
sprintf (buffer,
"\nSerial port COM%ld found at 0x%lx\n",
ComPort,
(U32)PortBase);
HalDisplayString (buffer);
#endif*/ /* NDEBUG */
}
else
{
/*sprintf (buffer,
"\nKernel Debugger: No serial port found!!!\n\n");
HalDisplayString (buffer);*/
return FALSE;
}
}
PortInitialized = TRUE;
}
/*
* set baud rate and data format (8N1)
*/
/* turn on DTR and RTS */
WRITE_PORT_UCHAR (SER_MCR(Rs232PortBase), SR_MCR_DTR | SR_MCR_RTS);
/* set DLAB */
lcr = READ_PORT_UCHAR (SER_LCR(Rs232PortBase)) | SR_LCR_DLAB;
WRITE_PORT_UCHAR (SER_LCR(Rs232PortBase), lcr);
/* set baud rate */
divisor = 115200 / BaudRate;
WRITE_PORT_UCHAR (SER_DLL(Rs232PortBase), divisor & 0xff);
WRITE_PORT_UCHAR (SER_DLM(Rs232PortBase), (divisor >> 8) & 0xff);
/* reset DLAB and set 8N1 format */
WRITE_PORT_UCHAR (SER_LCR(Rs232PortBase),
SR_LCR_CS8 | SR_LCR_ST1 | SR_LCR_PNO);
/* read junk out of the RBR */
lcr = READ_PORT_UCHAR (SER_RBR(Rs232PortBase));
/*
* set global info
*/
//KdComPortInUse = (U32)PortBase;
/*
* print message to blue screen
*/
/*sprintf (buffer,
"\nKernel Debugger: COM%ld (Port 0x%lx) BaudRate %ld\n\n",
ComPort,
(U32)PortBase,
BaudRate);
HalDisplayString (buffer);*/
return TRUE;
}
BOOL Rs232PortGetByte(PUCHAR ByteRecieved)
{
if (PortInitialized == FALSE)
return FALSE;
if ((READ_PORT_UCHAR (SER_LSR(Rs232PortBase)) & SR_LSR_DR))
{
*ByteRecieved = READ_PORT_UCHAR (SER_RBR(Rs232PortBase));
return TRUE;
}
return FALSE;
}
BOOL Rs232PortPollByte(PUCHAR ByteRecieved)
{
if (PortInitialized == FALSE)
return FALSE;
while ((READ_PORT_UCHAR (SER_LSR(Rs232PortBase)) & SR_LSR_DR) == 0)
;
*ByteRecieved = READ_PORT_UCHAR (SER_RBR(Rs232PortBase));
return TRUE;
}
VOID Rs232PortPutByte(UCHAR ByteToSend)
{
if (PortInitialized == FALSE)
return;
while ((READ_PORT_UCHAR (SER_LSR(Rs232PortBase)) & SR_LSR_TBE) == 0)
;
WRITE_PORT_UCHAR (SER_THR(Rs232PortBase), ByteToSend);
}

View File

@@ -1,400 +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>
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;
RtlZeroMemory(SectionName, sizeof(SectionName));
RtlZeroMemory(BootDriveString, sizeof(BootDriveString));
if (!UiEditBox(BootDrivePrompt, BootDriveString, 20))
{
return;
}
// Generate a unique section name
sprintf(SectionName, "CustomBootDisk%d%d%d%d%d%d", getyear(), getday(), getmonth(), gethour(), getminute(), getsecond());
// 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;
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
sprintf(SectionName, "CustomBootPartition%d%d%d%d%d%d", getyear(), getday(), getmonth(), gethour(), getminute(), getsecond());
// 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;
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
sprintf(SectionName, "CustomBootSectorFile%d%d%d%d%d%d", getyear(), getday(), getmonth(), gethour(), getminute(), getsecond());
// 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;
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
sprintf(SectionName, "CustomReactOS%d%d%d%d%d%d", getyear(), getday(), getmonth(), gethour(), getminute(), getsecond());
// 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;
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
sprintf(SectionName, "CustomLinux%d%d%d%d%d%d", getyear(), getday(), getmonth(), gethour(), getminute(), getsecond());
// 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,398 +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>
#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
{
putchar(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;
}
}
VOID DebugPrint(U32 Mask, char *format, ...)
{
int *dataptr = (int *) &format;
char c, *ptr, str[16];
int ll;
// 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;
}
dataptr++;
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(Mask, "\nDebugPrint() invalid format specifier - %%%c\n", c);
break;
}
}
}
if (DebugPort == SCREEN)
{
//getch();
}
}
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,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 <disk.h>
#include <arch.h>
#include <rtl.h>
#include <ui.h>
#include <debug.h>
#undef UNIMPLEMENTED
#define UNIMPLEMENTED BugCheck((DPRINT_WARNING, "Unimplemented\n"));
static BOOL bReportError = TRUE;
/////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
/////////////////////////////////////////////////////////////////////////////////////////////
VOID DiskReportError (BOOL bError)
{
bReportError = bError;
}
VOID DiskError(PUCHAR ErrorString, U32 ErrorCode)
{
UCHAR ErrorCodeString[200];
if (bReportError == FALSE)
return;
sprintf(ErrorCodeString, "%s\n\nError Code: 0x%x\nError: %s", ErrorString, ErrorCode, DiskGetErrorCodeString(ErrorCode));
DbgPrint((DPRINT_DISK, "%s\n", ErrorCodeString));
UiMessageBox(ErrorCodeString);
}
PUCHAR DiskGetErrorCodeString(U32 ErrorCode)
{
switch (ErrorCode)
{
case 0x00: return "no error";
case 0x01: return "bad command passed to driver";
case 0x02: return "address mark not found or bad sector";
case 0x03: return "diskette write protect error";
case 0x04: return "sector not found";
case 0x05: return "fixed disk reset failed";
case 0x06: return "diskette changed or removed";
case 0x07: return "bad fixed disk parameter table";
case 0x08: return "DMA overrun";
case 0x09: return "DMA access across 64k boundary";
case 0x0A: return "bad fixed disk sector flag";
case 0x0B: return "bad fixed disk cylinder";
case 0x0C: return "unsupported track/invalid media";
case 0x0D: return "invalid number of sectors on fixed disk format";
case 0x0E: return "fixed disk controlled data address mark detected";
case 0x0F: return "fixed disk DMA arbitration level out of range";
case 0x10: return "ECC/CRC error on disk read";
case 0x11: return "recoverable fixed disk data error, data fixed by ECC";
case 0x20: return "controller error (NEC for floppies)";
case 0x40: return "seek failure";
case 0x80: return "time out, drive not ready";
case 0xAA: return "fixed disk drive not ready";
case 0xBB: return "fixed disk undefined error";
case 0xCC: return "fixed disk write fault on selected drive";
case 0xE0: return "fixed disk status error/Error reg = 0";
case 0xFF: return "sense operation failed";
default: return "unknown error code";
}
}
// This function is in arch/i386/i386disk.c
//BOOL DiskReadLogicalSectors(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer)
BOOL DiskIsDriveRemovable(U32 DriveNumber)
{
// Hard disks use drive numbers >= 0x80
// So if the drive number indicates a hard disk
// then return FALSE
if (DriveNumber >= 0x80)
{
return FALSE;
}
// Drive is a floppy diskette so return TRUE
return TRUE;
}
// This function is in arch/i386/i386disk.c
//VOID DiskStopFloppyMotor(VOID)
// This function is in arch/i386/i386disk.c
//U32 DiskGetCacheableBlockCount(U32 DriveNumber)

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 <disk.h>
#include <rtl.h>
#include <mm.h>
#ifdef __i386__
BOOL DiskGetDriveGeometry(U32 DriveNumber, PGEOMETRY DriveGeometry)
{
// For now just return the geometry as the BIOS reports it
// BytesPerSector is always set to 512 by i386DiskGetDriveParameters()
if (!DiskGetDriveParameters(DriveNumber, DriveGeometry))
{
DiskError("Drive geometry unknown.", 0);
return FALSE;
}
return TRUE;
}
#else
BOOL DiskGetDriveGeometry(U32 DriveNumber, PGEOMETRY DriveGeometry)
{
UNIMPLEMENTED();
}
#endif

View File

@@ -1,243 +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 <mm.h>
#include <debug.h>
#include <arch.h>
BOOL DiskGetActivePartitionEntry(U32 DriveNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry)
{
U32 BootablePartitionCount = 0;
MASTER_BOOT_RECORD MasterBootRecord;
// Read master boot record
if (!DiskReadBootRecord(DriveNumber, 0, &MasterBootRecord))
{
return FALSE;
}
// Count the bootable partitions
if (MasterBootRecord.PartitionTable[0].BootIndicator == 0x80)
{
BootablePartitionCount++;
BootPartition = 0;
}
if (MasterBootRecord.PartitionTable[1].BootIndicator == 0x80)
{
BootablePartitionCount++;
BootPartition = 1;
}
if (MasterBootRecord.PartitionTable[2].BootIndicator == 0x80)
{
BootablePartitionCount++;
BootPartition = 2;
}
if (MasterBootRecord.PartitionTable[3].BootIndicator == 0x80)
{
BootablePartitionCount++;
BootPartition = 3;
}
// Make sure there was only one bootable partition
if (BootablePartitionCount == 0)
{
DiskError("No bootable (active) partitions found.", 0);
return FALSE;
}
else if (BootablePartitionCount != 1)
{
DiskError("Too many bootable (active) partitions found.", 0);
return FALSE;
}
// Copy the partition table entry
RtlCopyMemory(PartitionTableEntry, &MasterBootRecord.PartitionTable[BootPartition], sizeof(PARTITION_TABLE_ENTRY));
return TRUE;
}
BOOL DiskGetPartitionEntry(U32 DriveNumber, U32 PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry)
{
MASTER_BOOT_RECORD MasterBootRecord;
PARTITION_TABLE_ENTRY ExtendedPartitionTableEntry;
U32 ExtendedPartitionNumber;
U32 ExtendedPartitionOffset;
U32 Index;
// Read master boot record
if (!DiskReadBootRecord(DriveNumber, 0, &MasterBootRecord))
{
return FALSE;
}
// If they are asking for a primary
// partition then things are easy
if (PartitionNumber < 5)
{
// PartitionNumber is one-based and we need it zero-based
PartitionNumber--;
// Copy the partition table entry
RtlCopyMemory(PartitionTableEntry, &MasterBootRecord.PartitionTable[PartitionNumber], sizeof(PARTITION_TABLE_ENTRY));
return TRUE;
}
else
{
// They want an extended partition entry so we will need
// to loop through all the extended partitions on the disk
// and return the one they want.
ExtendedPartitionNumber = PartitionNumber - 5;
// Set the initial relative starting sector to 0
// This is because extended partition starting
// sectors a numbered relative to their parent
ExtendedPartitionOffset = 0;
for (Index=0; Index<=ExtendedPartitionNumber; Index++)
{
// Get the extended partition table entry
if (!DiskGetFirstExtendedPartitionEntry(&MasterBootRecord, &ExtendedPartitionTableEntry))
{
return FALSE;
}
// Adjust the relative starting sector of the partition
ExtendedPartitionTableEntry.SectorCountBeforePartition += ExtendedPartitionOffset;
if (ExtendedPartitionOffset == 0)
{
// Set the start of the parrent extended partition
ExtendedPartitionOffset = ExtendedPartitionTableEntry.SectorCountBeforePartition;
}
// Read the partition boot record
if (!DiskReadBootRecord(DriveNumber, ExtendedPartitionTableEntry.SectorCountBeforePartition, &MasterBootRecord))
{
return FALSE;
}
// Get the first real partition table entry
if (!DiskGetFirstPartitionEntry(&MasterBootRecord, PartitionTableEntry))
{
return FALSE;
}
// Now correct the start sector of the partition
PartitionTableEntry->SectorCountBeforePartition += ExtendedPartitionTableEntry.SectorCountBeforePartition;
}
// When we get here we should have the correct entry
// already stored in PartitionTableEntry
// so just return TRUE
return TRUE;
}
}
BOOL DiskGetFirstPartitionEntry(PMASTER_BOOT_RECORD MasterBootRecord, PPARTITION_TABLE_ENTRY PartitionTableEntry)
{
U32 Index;
for (Index=0; Index<4; Index++)
{
// Check the system indicator
// If it's not an extended or unused partition
// then we're done
if ((MasterBootRecord->PartitionTable[Index].SystemIndicator != PARTITION_ENTRY_UNUSED) &&
(MasterBootRecord->PartitionTable[Index].SystemIndicator != PARTITION_EXTENDED) &&
(MasterBootRecord->PartitionTable[Index].SystemIndicator != PARTITION_XINT13_EXTENDED))
{
RtlCopyMemory(PartitionTableEntry, &MasterBootRecord->PartitionTable[Index], sizeof(PARTITION_TABLE_ENTRY));
return TRUE;
}
}
return FALSE;
}
BOOL DiskGetFirstExtendedPartitionEntry(PMASTER_BOOT_RECORD MasterBootRecord, PPARTITION_TABLE_ENTRY PartitionTableEntry)
{
U32 Index;
for (Index=0; Index<4; Index++)
{
// Check the system indicator
// If it an extended partition then we're done
if ((MasterBootRecord->PartitionTable[Index].SystemIndicator == PARTITION_EXTENDED) ||
(MasterBootRecord->PartitionTable[Index].SystemIndicator == PARTITION_XINT13_EXTENDED))
{
RtlCopyMemory(PartitionTableEntry, &MasterBootRecord->PartitionTable[Index], sizeof(PARTITION_TABLE_ENTRY));
return TRUE;
}
}
return FALSE;
}
BOOL DiskReadBootRecord(U32 DriveNumber, U64 LogicalSectorNumber, PMASTER_BOOT_RECORD BootRecord)
{
#ifdef DEBUG
U32 Index;
#endif
// Read master boot record
if (!DiskReadLogicalSectors(DriveNumber, LogicalSectorNumber, 1, (PVOID)DISKREADBUFFER))
{
return FALSE;
}
RtlCopyMemory(BootRecord, (PVOID)DISKREADBUFFER, sizeof(MASTER_BOOT_RECORD));
#ifdef DEBUG
DbgPrint((DPRINT_DISK, "Dumping partition table for drive 0x%x:\n", DriveNumber));
DbgPrint((DPRINT_DISK, "Boot record logical start sector = %d\n", LogicalSectorNumber));
DbgPrint((DPRINT_DISK, "sizeof(MASTER_BOOT_RECORD) = 0x%x.\n", sizeof(MASTER_BOOT_RECORD)));
for (Index=0; Index<4; Index++)
{
DbgPrint((DPRINT_DISK, "-------------------------------------------\n"));
DbgPrint((DPRINT_DISK, "Partition %d\n", (Index + 1)));
DbgPrint((DPRINT_DISK, "BootIndicator: 0x%x\n", BootRecord->PartitionTable[Index].BootIndicator));
DbgPrint((DPRINT_DISK, "StartHead: 0x%x\n", BootRecord->PartitionTable[Index].StartHead));
DbgPrint((DPRINT_DISK, "StartSector (Plus 2 cylinder bits): 0x%x\n", BootRecord->PartitionTable[Index].StartSector));
DbgPrint((DPRINT_DISK, "StartCylinder: 0x%x\n", BootRecord->PartitionTable[Index].StartCylinder));
DbgPrint((DPRINT_DISK, "SystemIndicator: 0x%x\n", BootRecord->PartitionTable[Index].SystemIndicator));
DbgPrint((DPRINT_DISK, "EndHead: 0x%x\n", BootRecord->PartitionTable[Index].EndHead));
DbgPrint((DPRINT_DISK, "EndSector (Plus 2 cylinder bits): 0x%x\n", BootRecord->PartitionTable[Index].EndSector));
DbgPrint((DPRINT_DISK, "EndCylinder: 0x%x\n", BootRecord->PartitionTable[Index].EndCylinder));
DbgPrint((DPRINT_DISK, "SectorCountBeforePartition: 0x%x\n", BootRecord->PartitionTable[Index].SectorCountBeforePartition));
DbgPrint((DPRINT_DISK, "PartitionSectorCount: 0x%x\n", BootRecord->PartitionTable[Index].PartitionSectorCount));
}
#endif // defined DEBUG
// Check the partition table magic value
if (BootRecord->MasterBootRecordMagic != 0xaa55)
{
DiskError("Invalid partition table magic (0xaa55)", 0);
return FALSE;
}
return TRUE;
}

View File

@@ -1,227 +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 <drivemap.h>
#include <rtl.h>
#include <inifile.h>
#include <cache.h>
#include <ui.h>
#include <debug.h>
BOOL DriveMapInstalled = FALSE; // Tells us if we have already installed our drive map int 13h handler code
U32 OldInt13HandlerAddress = 0; // Address of BIOS int 13h handler
U32 DriveMapHandlerAddress = 0; // Linear address of our drive map handler
U32 DriveMapHandlerSegOff = 0; // Segment:offset style address of our drive map handler
VOID DriveMapMapDrivesInSection(PUCHAR SectionName)
{
UCHAR SettingName[80];
UCHAR SettingValue[80];
UCHAR ErrorText[260];
UCHAR Drive1[80];
UCHAR Drive2[80];
U32 SectionId;
U32 SectionItemCount;
U32 Index;
U32 Index2;
DRIVE_MAP_LIST DriveMapList;
RtlZeroMemory(&DriveMapList, sizeof(DRIVE_MAP_LIST));
if (!IniOpenSection(SectionName, &SectionId))
{
return;
}
// Get the number of items in this section
SectionItemCount = IniGetNumSectionItems(SectionId);
// Loop through each one and check if its a DriveMap= setting
for (Index=0; Index<SectionItemCount; Index++)
{
// Get the next setting from the .ini file section
if (IniReadSettingByNumber(SectionId, Index, SettingName, 80, SettingValue, 80))
{
if (stricmp(SettingName, "DriveMap") == 0)
{
// Make sure we haven't exceeded the drive map max count
if (DriveMapList.DriveMapCount >= 4)
{
sprintf(ErrorText, "Max DriveMap count exceeded in section [%s]:\n\n%s=%s", SectionName, SettingName, SettingValue);
UiMessageBox(ErrorText);
continue;
}
RtlZeroMemory(Drive1, 80);
RtlZeroMemory(Drive2, 80);
strcpy(Drive1, SettingValue);
// Parse the setting value and separate a string "hd0,hd1"
// into two strings "hd0" and "hd1"
for (Index2=0; Index2<strlen(Drive1); Index2++)
{
// Check if this character is the separater character (comma - ',')
if (Drive1[Index2] == ',')
{
Drive1[Index2] = '\0';
strcpy(Drive2, &Drive1[Index2+1]);
break;
}
}
// Make sure we got good values before we add them to the map
if (!DriveMapIsValidDriveString(Drive1) || !DriveMapIsValidDriveString(Drive2))
{
sprintf(ErrorText, "Error in DriveMap setting in section [%s]:\n\n%s=%s", SectionName, SettingName, SettingValue);
UiMessageBox(ErrorText);
continue;
}
// Add them to the map
DriveMapList.DriveMap[(DriveMapList.DriveMapCount * 2)] = DriveMapGetBiosDriveNumber(Drive1);
DriveMapList.DriveMap[(DriveMapList.DriveMapCount * 2)+1] = DriveMapGetBiosDriveNumber(Drive2);
DriveMapList.DriveMapCount++;
DbgPrint((DPRINT_WARNING, "Mapping BIOS drive 0x%x to drive 0x%x\n", DriveMapGetBiosDriveNumber(Drive1), DriveMapGetBiosDriveNumber(Drive2)));
}
}
}
if (DriveMapList.DriveMapCount)
{
DbgPrint((DPRINT_WARNING, "Installing Int13 drive map for %d drives.\n", DriveMapList.DriveMapCount));
DriveMapInstallInt13Handler(&DriveMapList);
}
else
{
DbgPrint((DPRINT_WARNING, "Removing any previously installed Int13 drive map.\n"));
DriveMapRemoveInt13Handler();
}
}
BOOL DriveMapIsValidDriveString(PUCHAR DriveString)
{
U32 Index;
// Now verify that the user has given us appropriate strings
if ((strlen(DriveString) < 3) ||
((DriveString[0] != 'f') && (DriveString[0] != 'F') && (DriveString[0] != 'h') && (DriveString[0] != 'H')) ||
((DriveString[1] != 'd') && (DriveString[1] != 'D')))
{
return FALSE;
}
// Now verify that the user has given us appropriate numbers
// Make sure that only numeric characters were given
for (Index=2; Index<strlen(DriveString); Index++)
{
if (DriveString[Index] < '0' || DriveString[Index] > '9')
{
return FALSE;
}
}
// Now make sure that they are not outrageous values (i.e. hd90874)
if ((atoi(&DriveString[2]) < 0) || (atoi(&DriveString[2]) > 0xff))
{
return FALSE;
}
return TRUE;
}
U32 DriveMapGetBiosDriveNumber(PUCHAR DeviceName)
{
U32 BiosDriveNumber = 0;
// If they passed in a number string then just
// convert it to decimal and return it
if (DeviceName[0] >= '0' && DeviceName[0] <= '9')
{
return atoi(DeviceName);
}
// Convert the drive number string into a number
// 'hd1' = 1
BiosDriveNumber = atoi(&DeviceName[2]);
// If it's a hard disk then set the high bit
if ((DeviceName[0] == 'h' || DeviceName[0] == 'H') &&
(DeviceName[1] == 'd' || DeviceName[1] == 'D'))
{
BiosDriveNumber |= 0x80;
}
return BiosDriveNumber;
}
VOID DriveMapInstallInt13Handler(PDRIVE_MAP_LIST DriveMap)
{
U32* RealModeIVT = (U32*)0x00000000;
U16* BiosLowMemorySize = (U16*)0x00000413;
if (!DriveMapInstalled)
{
// Get the old INT 13h handler address from the vector table
OldInt13HandlerAddress = RealModeIVT[0x13];
// Decrease the size of low memory
(*BiosLowMemorySize)--;
// Get linear address for drive map handler
DriveMapHandlerAddress = (U32)(*BiosLowMemorySize) << 10;
// Convert to segment:offset style address
DriveMapHandlerSegOff = (DriveMapHandlerAddress << 12) & 0xffff0000;
}
// Copy the drive map structure to the proper place
RtlCopyMemory(&DriveMapInt13HandlerMapList, DriveMap, sizeof(DRIVE_MAP_LIST));
// Set the address of the BIOS INT 13h handler
DriveMapOldInt13HandlerAddress = OldInt13HandlerAddress;
// Copy the code to our reserved area
RtlCopyMemory((PVOID)DriveMapHandlerAddress, &DriveMapInt13HandlerStart, ((U32)&DriveMapInt13HandlerEnd - (U32)&DriveMapInt13HandlerStart));
// Update the IVT
RealModeIVT[0x13] = DriveMapHandlerSegOff;
CacheInvalidateCacheData();
DriveMapInstalled = TRUE;
}
VOID DriveMapRemoveInt13Handler(VOID)
{
U32* RealModeIVT = (U32*)0x00000000;
U16* BiosLowMemorySize = (U16*)0x00000413;
if (DriveMapInstalled)
{
// Get the old INT 13h handler address from the vector table
RealModeIVT[0x13] = OldInt13HandlerAddress;
// Increase the size of low memory
(*BiosLowMemorySize)++;
CacheInvalidateCacheData();
DriveMapInstalled = FALSE;
}
}

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.
*/
#include <freeldr.h>
#include <rtl.h>
#include <arch.h>
#include <mm.h>
#include <debug.h>
#include <bootmgr.h>
#include <fs.h>
// Variables BootDrive & BootPartition moved to asmcode.S
//U32 BootDrive = 0; // BIOS boot drive, 0-A:, 1-B:, 0x80-C:, 0x81-D:, etc.
//U32 BootPartition = 0; // Boot Partition, 1-4
VOID BootMain(VOID)
{
EnableA20();
#ifdef DEBUG
DebugInit();
#endif
DbgPrint((DPRINT_WARNING, "BootMain() called. BootDrive = 0x%x BootPartition = %d\n", BootDrive, BootPartition));
if (!MmInitializeMemoryManager())
{
printf("Press any key to reboot.\n");
getch();
return;
}
RunLoader();
}

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,162 +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;
/*
* 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
{
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 FatDetermineFatType(PFAT_BOOTSECTOR FatBootSector);
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
#endif // #defined __FAT_H

View File

@@ -1,418 +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>
/////////////////////////////////////////////////////////////////////////////////////////////
// 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);
}
// 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 (DiskGetPartitionEntry(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);
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,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 <freeldr.h>
#include <fs.h>
#include "fsrec.h"
#include "fat.h"
#include "iso.h"
#include "ext2.h"
#include "ntfs.h"
#include <disk.h>
#include <rtl.h>
#include <arch.h>
#include <debug.h>
/////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTIONS
/////////////////////////////////////////////////////////////////////////////////////////////
/*
*
* BOOL FsRecognizeVolume(U32 DriveNumber, U32 VolumeStartSector, U8* VolumeType);
*
*/
BOOL FsRecognizeVolume(U32 DriveNumber, U32 VolumeStartSector, U8* VolumeType)
{
DbgPrint((DPRINT_FILESYSTEM, "FsRecognizeVolume() DriveNumber: 0x%x VolumeStartSector: %d\n", DriveNumber, VolumeStartSector));
if (FsRecIsExt2(DriveNumber, VolumeStartSector))
{
*VolumeType = PARTITION_EXT2;
return TRUE;
}
else if (FsRecIsFat(DriveNumber, VolumeStartSector))
{
*VolumeType = PARTITION_FAT32;
return TRUE;
}
else if (FsRecIsNtfs(DriveNumber, VolumeStartSector))
{
*VolumeType = PARTITION_NTFS;
return TRUE;
}
return FALSE;
}
BOOL FsRecIsIso9660(U32 DriveNumber)
{
PUCHAR Sector = (PUCHAR)DISKREADBUFFER;
if (!DiskReadLogicalSectors(DriveNumber, 16, 1, Sector))
{
FileSystemError("Failed to read the PVD.");
return FALSE;
}
return (Sector[0] == 1 &&
Sector[1] == 'C' &&
Sector[2] == 'D' &&
Sector[3] == '0' &&
Sector[4] == '0' &&
Sector[5] == '1');
}
BOOL FsRecIsExt2(U32 DriveNumber, U32 VolumeStartSector)
{
PEXT2_SUPER_BLOCK SuperBlock = (PEXT2_SUPER_BLOCK)DISKREADBUFFER;
if (!DiskReadLogicalSectors(DriveNumber, VolumeStartSector + 2, 2, SuperBlock))
{
FileSystemError("Failed to read the super block.");
return FALSE;
}
if (SuperBlock->s_magic == EXT3_SUPER_MAGIC)
{
return TRUE;
}
return FALSE;
}
BOOL FsRecIsFat(U32 DriveNumber, U32 VolumeStartSector)
{
PFAT_BOOTSECTOR BootSector = (PFAT_BOOTSECTOR)DISKREADBUFFER;
PFAT32_BOOTSECTOR BootSector32 = (PFAT32_BOOTSECTOR)DISKREADBUFFER;
if (!DiskReadLogicalSectors(DriveNumber, VolumeStartSector, 1, BootSector))
{
FileSystemError("Failed to read the boot sector.");
return FALSE;
}
if (strncmp(BootSector->FileSystemType, "FAT12 ", 8) == 0 ||
strncmp(BootSector->FileSystemType, "FAT16 ", 8) == 0 ||
strncmp(BootSector32->FileSystemType, "FAT32 ", 8) == 0)
{
return TRUE;
}
return FALSE;
}
BOOL FsRecIsNtfs(U32 DriveNumber, U32 VolumeStartSector)
{
PNTFS_BOOTSECTOR BootSector = (PNTFS_BOOTSECTOR)DISKREADBUFFER;
if (!DiskReadLogicalSectors(DriveNumber, VolumeStartSector, 1, BootSector))
{
FileSystemError("Failed to read the boot sector.");
return FALSE;
}
if (!RtlCompareMemory(BootSector->SystemId, "NTFS", 4))
{
return TRUE;
}
return FALSE;
}

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,478 +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 <disk.h>
#include <rtl.h>
#include <arch.h>
#include <mm.h>
#include <debug.h>
#include <cache.h>
#include "iso.h"
#define SECTORSIZE 2048
static U32 IsoRootSector; // Starting sector of the root directory
static U32 IsoRootLength; // Length of the root directory
U32 IsoDriveNumber = 0;
BOOL IsoOpenVolume(U32 DriveNumber)
{
PPVD Pvd = (PPVD)DISKREADBUFFER;
DbgPrint((DPRINT_FILESYSTEM, "IsoOpenVolume() DriveNumber = 0x%x VolumeStartSector = 16\n", DriveNumber));
// Store the drive number
IsoDriveNumber = DriveNumber;
IsoRootSector = 0;
IsoRootLength = 0;
if (!DiskReadLogicalSectors(DriveNumber, 16, 1, Pvd))
{
FileSystemError("Failed to read the PVD.");
return FALSE;
}
IsoRootSector = Pvd->RootDirRecord.ExtentLocationL;
IsoRootLength = Pvd->RootDirRecord.DataLengthL;
DbgPrint((DPRINT_FILESYSTEM, "IsoRootSector = %u IsoRootLegth = %u\n", IsoRootSector, IsoRootLength));
return TRUE;
}
static BOOL IsoSearchDirectoryBufferForFile(PVOID DirectoryBuffer, U32 DirectoryLength, PUCHAR FileName, PISO_FILE_INFO IsoFileInfoPointer)
{
PDIR_RECORD Record;
U32 Offset;
U32 i;
UCHAR Name[32];
DbgPrint((DPRINT_FILESYSTEM, "IsoSearchDirectoryBufferForFile() DirectoryBuffer = 0x%x DirectoryLength = %d FileName = %s\n", DirectoryBuffer, DirectoryLength, FileName));
RtlZeroMemory(Name, 32 * sizeof(UCHAR));
Offset = 0;
Record = (PDIR_RECORD)DirectoryBuffer;
while (TRUE)
{
Offset = Offset + Record->RecordLength;
Record = (PDIR_RECORD)(DirectoryBuffer + Offset);
if (Record->RecordLength == 0)
{
Offset = ROUND_UP(Offset, SECTORSIZE);
Record = (PDIR_RECORD)(DirectoryBuffer + Offset);
}
if (Offset >= DirectoryLength)
return FALSE;
if (Record->FileIdLength == 1 && Record->FileId[0] == 0)
{
DbgPrint((DPRINT_FILESYSTEM, "Name '.'\n"));
}
else if (Record->FileIdLength == 1 && Record->FileId[0] == 1)
{
DbgPrint((DPRINT_FILESYSTEM, "Name '..'\n"));
}
else
{
for (i = 0; i < Record->FileIdLength && Record->FileId[i] != ';'; i++)
Name[i] = Record->FileId[i];
Name[i] = 0;
DbgPrint((DPRINT_FILESYSTEM, "Name '%s'\n", Name));
if (strlen(FileName) == strlen(Name) && stricmp(FileName, Name) == 0)
{
IsoFileInfoPointer->FileStart = Record->ExtentLocationL;
IsoFileInfoPointer->FileSize = Record->DataLengthL;
IsoFileInfoPointer->FilePointer = 0;
IsoFileInfoPointer->Directory = (Record->FileFlags & 0x02)?TRUE:FALSE;
return TRUE;
}
}
RtlZeroMemory(Name, 32 * sizeof(UCHAR));
}
return FALSE;
}
/*
* IsoBufferDirectory()
* This function allocates a buffer, reads the specified directory
* and returns a pointer to that buffer. The function returns NULL
* if allocation or read fails. The directory is specified by its
* starting sector and length.
*/
static PVOID IsoBufferDirectory(U32 DirectoryStartSector, U32 DirectoryLength)
{
PVOID DirectoryBuffer;
PVOID Ptr;
U32 SectorCount;
U32 i;
DbgPrint((DPRINT_FILESYSTEM, "IsoBufferDirectory() DirectoryStartSector = %d DirectoryLength = %d\n", DirectoryStartSector, DirectoryLength));
SectorCount = ROUND_UP(DirectoryLength, SECTORSIZE) / SECTORSIZE;
DbgPrint((DPRINT_FILESYSTEM, "Trying to read (DirectoryCount) %d sectors.\n", SectorCount));
//
// Attempt to allocate memory for directory buffer
//
DbgPrint((DPRINT_FILESYSTEM, "Trying to allocate (DirectoryLength) %d bytes.\n", DirectoryLength));
DirectoryBuffer = MmAllocateMemory(DirectoryLength);
if (DirectoryBuffer == NULL)
{
return NULL;
}
//
// Now read directory contents into DirectoryBuffer
//
for (i = 0, Ptr = DirectoryBuffer; i < SectorCount; i++, Ptr += SECTORSIZE)
{
if (!DiskReadLogicalSectors(IsoDriveNumber, DirectoryStartSector + i, 1, (PVOID)DISKREADBUFFER))
{
MmFreeMemory(DirectoryBuffer);
return NULL;
}
RtlCopyMemory(Ptr, (PVOID)DISKREADBUFFER, SECTORSIZE);
}
return DirectoryBuffer;
}
/*
* IsoLookupFile()
* This function searches the file system for the
* specified filename and fills in an ISO_FILE_INFO structure
* with info describing the file, etc. returns true
* if the file exists or false otherwise
*/
static BOOL IsoLookupFile(PUCHAR FileName, PISO_FILE_INFO IsoFileInfoPointer)
{
int i;
U32 NumberOfPathParts;
UCHAR PathPart[261];
PVOID DirectoryBuffer;
U32 DirectorySector;
U32 DirectoryLength;
ISO_FILE_INFO IsoFileInfo;
DbgPrint((DPRINT_FILESYSTEM, "IsoLookupFile() FileName = %s\n", FileName));
RtlZeroMemory(IsoFileInfoPointer, sizeof(ISO_FILE_INFO));
//
// Figure out how many sub-directories we are nested in
//
NumberOfPathParts = FsGetNumPathParts(FileName);
DirectorySector = IsoRootSector;
DirectoryLength = IsoRootLength;
//
// Loop once for each part
//
for (i=0; i<NumberOfPathParts; i++)
{
//
// Get first path part
//
FsGetFirstNameFromPath(PathPart, FileName);
//
// Advance to the next part of the path
//
for (; (*FileName != '\\') && (*FileName != '/') && (*FileName != '\0'); FileName++)
{
}
FileName++;
//
// Buffer the directory contents
//
DirectoryBuffer = IsoBufferDirectory(DirectorySector, DirectoryLength);
if (DirectoryBuffer == NULL)
{
return FALSE;
}
//
// Search for file name in directory
//
if (!IsoSearchDirectoryBufferForFile(DirectoryBuffer, DirectoryLength, PathPart, &IsoFileInfo))
{
MmFreeMemory(DirectoryBuffer);
return FALSE;
}
MmFreeMemory(DirectoryBuffer);
//
// If we have another sub-directory to go then
// grab the start sector and file size
//
if ((i+1) < NumberOfPathParts)
{
DirectorySector = IsoFileInfo.FileStart;
DirectoryLength = IsoFileInfo.FileSize;
}
}
RtlCopyMemory(IsoFileInfoPointer, &IsoFileInfo, sizeof(ISO_FILE_INFO));
return TRUE;
}
/*
* IsoOpenFile()
* Tries to open the file 'name' and returns true or false
* for success and failure respectively
*/
FILE* IsoOpenFile(PUCHAR FileName)
{
ISO_FILE_INFO TempFileInfo;
PISO_FILE_INFO FileHandle;
DbgPrint((DPRINT_FILESYSTEM, "IsoOpenFile() FileName = %s\n", FileName));
if (!IsoLookupFile(FileName, &TempFileInfo))
{
return NULL;
}
FileHandle = MmAllocateMemory(sizeof(ISO_FILE_INFO));
if (FileHandle == NULL)
{
return NULL;
}
RtlCopyMemory(FileHandle, &TempFileInfo, sizeof(ISO_FILE_INFO));
return (FILE*)FileHandle;
}
/*
* IsoReadFile()
* Reads BytesToRead from open file and
* returns the number of bytes read in BytesRead
*/
BOOL IsoReadFile(FILE *FileHandle, U32 BytesToRead, U32* BytesRead, PVOID Buffer)
{
PISO_FILE_INFO IsoFileInfo = (PISO_FILE_INFO)FileHandle;
U32 SectorNumber;
U32 OffsetInSector;
U32 LengthInSector;
U32 NumberOfSectors;
U32 i;
DbgPrint((DPRINT_FILESYSTEM, "IsoReadFile() BytesToRead = %d Buffer = 0x%x\n", BytesToRead, Buffer));
if (BytesRead != NULL)
{
*BytesRead = 0;
}
//
// If they are trying to read past the
// end of the file then return success
// with BytesRead == 0
//
if (IsoFileInfo->FilePointer >= IsoFileInfo->FileSize)
{
return TRUE;
}
//
// If they are trying to read more than there is to read
// then adjust the amount to read
//
if ((IsoFileInfo->FilePointer + BytesToRead) > IsoFileInfo->FileSize)
{
BytesToRead = (IsoFileInfo->FileSize - IsoFileInfo->FilePointer);
}
//
// Ok, now we have to perform at most 3 calculations
// I'll draw you a picture (using nifty ASCII art):
//
// CurrentFilePointer -+
// |
// +----------------+
// |
// +-----------+-----------+-----------+-----------+
// | Sector 1 | Sector 2 | Sector 3 | Sector 4 |
// +-----------+-----------+-----------+-----------+
// | |
// +---------------+--------------------+
// |
// BytesToRead -------+
//
// 1 - The first calculation (and read) will align
// the file pointer with the next sector
// boundary (if we are supposed to read that much)
// 2 - The next calculation (and read) will read
// in all the full sectors that the requested
// amount of data would cover (in this case
// sectors 2 & 3).
// 3 - The last calculation (and read) would read
// in the remainder of the data requested out of
// the last sector.
//
//
// Only do the first read if we
// aren't aligned on a cluster boundary
//
if (IsoFileInfo->FilePointer % SECTORSIZE)
{
//
// Do the math for our first read
//
SectorNumber = IsoFileInfo->FileStart + (IsoFileInfo->FilePointer / SECTORSIZE);
OffsetInSector = IsoFileInfo->FilePointer % SECTORSIZE;
LengthInSector = (BytesToRead > (SECTORSIZE - OffsetInSector)) ? (SECTORSIZE - OffsetInSector) : BytesToRead;
//
// Now do the read and update BytesRead, BytesToRead, FilePointer, & Buffer
//
if (!DiskReadLogicalSectors(IsoDriveNumber, SectorNumber, 1, (PVOID)DISKREADBUFFER))
{
return FALSE;
}
RtlCopyMemory(Buffer, ((PVOID)DISKREADBUFFER + OffsetInSector), LengthInSector);
if (BytesRead != NULL)
{
*BytesRead += LengthInSector;
}
BytesToRead -= LengthInSector;
IsoFileInfo->FilePointer += LengthInSector;
Buffer += LengthInSector;
}
//
// Do the math for our second read (if any data left)
//
if (BytesToRead > 0)
{
//
// Determine how many full clusters we need to read
//
NumberOfSectors = (BytesToRead / SECTORSIZE);
for (i = 0; i < NumberOfSectors; i++)
{
SectorNumber = IsoFileInfo->FileStart + (IsoFileInfo->FilePointer / SECTORSIZE);
//
// Now do the read and update BytesRead, BytesToRead, FilePointer, & Buffer
//
if (!DiskReadLogicalSectorsLBA(IsoDriveNumber, SectorNumber, 1, (PVOID)DISKREADBUFFER))
{
return FALSE;
}
RtlCopyMemory(Buffer, (PVOID)DISKREADBUFFER, SECTORSIZE);
if (BytesRead != NULL)
{
*BytesRead += SECTORSIZE;
}
BytesToRead -= SECTORSIZE;
IsoFileInfo->FilePointer += SECTORSIZE;
Buffer += SECTORSIZE;
}
}
//
// Do the math for our third read (if any data left)
//
if (BytesToRead > 0)
{
SectorNumber = IsoFileInfo->FileStart + (IsoFileInfo->FilePointer / SECTORSIZE);
//
// Now do the read and update BytesRead, BytesToRead, FilePointer, & Buffer
//
if (!DiskReadLogicalSectorsLBA(IsoDriveNumber, SectorNumber, 1, (PVOID)DISKREADBUFFER))
{
return FALSE;
}
RtlCopyMemory(Buffer, (PVOID)DISKREADBUFFER, BytesToRead);
if (BytesRead != NULL)
{
*BytesRead += BytesToRead;
}
IsoFileInfo->FilePointer += BytesToRead;
BytesToRead -= BytesToRead;
Buffer += BytesToRead;
}
DbgPrint((DPRINT_FILESYSTEM, "IsoReadFile() done\n"));
return TRUE;
}
U32 IsoGetFileSize(FILE *FileHandle)
{
PISO_FILE_INFO IsoFileHandle = (PISO_FILE_INFO)FileHandle;
DbgPrint((DPRINT_FILESYSTEM, "IsoGetFileSize() FileSize = %d\n", IsoFileHandle->FileSize));
return IsoFileHandle->FileSize;
}
VOID IsoSetFilePointer(FILE *FileHandle, U32 NewFilePointer)
{
PISO_FILE_INFO IsoFileHandle = (PISO_FILE_INFO)FileHandle;
DbgPrint((DPRINT_FILESYSTEM, "IsoSetFilePointer() NewFilePointer = %d\n", NewFilePointer));
IsoFileHandle->FilePointer = NewFilePointer;
}
U32 IsoGetFilePointer(FILE *FileHandle)
{
PISO_FILE_INFO IsoFileHandle = (PISO_FILE_INFO)FileHandle;
DbgPrint((DPRINT_FILESYSTEM, "IsoGetFilePointer() FilePointer = %d\n", IsoFileHandle->FilePointer));
return IsoFileHandle->FilePointer;
}

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,738 +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.
*/
/*
* Limitations:
* - No support for compressed files.
* - No attribute list support.
* - May crash on currupted filesystem.
*/
#include <freeldr.h>
#include <fs.h>
#include <disk.h>
#include <rtl.h>
#include <arch.h>
#include <mm.h>
#include <debug.h>
#include <cache.h>
#include "ntfs.h"
PNTFS_BOOTSECTOR NtfsBootSector;
U32 NtfsClusterSize;
U32 NtfsMftRecordSize;
U32 NtfsIndexRecordSize;
U32 NtfsDriveNumber;
U32 NtfsSectorOfClusterZero;
PNTFS_MFT_RECORD NtfsMasterFileTable;
NTFS_ATTR_CONTEXT NtfsMFTContext;
PUCHAR NtfsDecodeRun(PUCHAR DataRun, S64 *DataRunOffset, U64 *DataRunLength)
{
U8 DataRunOffsetSize;
U8 DataRunLengthSize;
S8 i;
DataRunOffsetSize = (*DataRun >> 4) & 0xF;
DataRunLengthSize = *DataRun & 0xF;
*DataRunOffset = 0;
*DataRunLength = 0;
DataRun++;
for (i = 0; i < DataRunLengthSize; i++)
{
*DataRunLength += *DataRun << (i << 3);
DataRun++;
}
/* NTFS 3+ sparse files */
if (DataRunOffsetSize == 0)
{
*DataRunOffset = -1;
}
else
{
for (i = 0; i < DataRunOffsetSize - 1; i++)
{
*DataRunOffset += *DataRun << (i << 3);
DataRun++;
}
/* The last byte contains sign so we must process it different way. */
*DataRunOffset = ((S8)(*(DataRun++)) << (i << 3)) + *DataRunOffset;
}
DbgPrint((DPRINT_FILESYSTEM, "DataRunOffsetSize: %x\n", DataRunOffsetSize));
DbgPrint((DPRINT_FILESYSTEM, "DataRunLengthSize: %x\n", DataRunLengthSize));
DbgPrint((DPRINT_FILESYSTEM, "DataRunOffset: %x\n", *DataRunOffset));
DbgPrint((DPRINT_FILESYSTEM, "DataRunLength: %x\n", *DataRunLength));
return DataRun;
}
/* FIXME: Add support for attribute lists! */
BOOL NtfsFindAttribute(PNTFS_ATTR_CONTEXT Context, PNTFS_MFT_RECORD MftRecord, U32 Type, PWCHAR Name)
{
PNTFS_ATTR_RECORD AttrRecord;
PNTFS_ATTR_RECORD AttrRecordEnd;
U32 NameLength;
PWCHAR AttrName;
AttrRecord = (PNTFS_ATTR_RECORD)((PCHAR)MftRecord + MftRecord->AttributesOffset);
AttrRecordEnd = (PNTFS_ATTR_RECORD)((PCHAR)MftRecord + NtfsMftRecordSize);
for (NameLength = 0; Name[NameLength] != 0; NameLength++)
;
while (AttrRecord < AttrRecordEnd)
{
if (AttrRecord->Type == NTFS_ATTR_TYPE_END)
break;
if (AttrRecord->Type == Type)
{
if (AttrRecord->NameLength == NameLength)
{
AttrName = (PWCHAR)((PCHAR)AttrRecord + AttrRecord->NameOffset);
if (!RtlCompareMemory(AttrName, Name, NameLength << 1))
{
/* Found it, fill up the context and return. */
Context->Record = AttrRecord;
if (AttrRecord->IsNonResident)
{
S64 DataRunOffset;
U64 DataRunLength;
Context->CacheRun = (PUCHAR)Context->Record + Context->Record->NonResident.MappingPairsOffset;
Context->CacheRunOffset = 0;
Context->CacheRun = NtfsDecodeRun(Context->CacheRun, &DataRunOffset, &DataRunLength);
Context->CacheRunLength = DataRunLength;
if (DataRunOffset != -1)
{
/* Normal run. */
Context->CacheRunStartLCN =
Context->CacheRunLastLCN = DataRunOffset;
}
else
{
/* Sparse run. */
Context->CacheRunStartLCN = -1;
Context->CacheRunLastLCN = 0;
}
Context->CacheRunCurrentOffset = 0;
}
return TRUE;
}
}
}
AttrRecord = (PNTFS_ATTR_RECORD)((PCHAR)AttrRecord + AttrRecord->Length);
}
return FALSE;
}
/* FIXME: Optimize for multisector reads. */
BOOL NtfsDiskRead(U64 Offset, U64 Length, PCHAR Buffer)
{
U16 ReadLength;
DbgPrint((DPRINT_FILESYSTEM, "NtfsDiskRead - Offset: %I64d Length: %I64d\n", Offset, Length));
RtlZeroMemory((PCHAR)DISKREADBUFFER, 0x1000);
/* I. Read partial first sector if needed */
if (Offset % NtfsBootSector->BytesPerSector)
{
if (!DiskReadLogicalSectors(NtfsDriveNumber, NtfsSectorOfClusterZero + (Offset / NtfsBootSector->BytesPerSector), 1, (PCHAR)DISKREADBUFFER))
return FALSE;
ReadLength = min(Length, NtfsBootSector->BytesPerSector - (Offset % NtfsBootSector->BytesPerSector));
RtlCopyMemory(Buffer, (PCHAR)DISKREADBUFFER + (Offset % NtfsBootSector->BytesPerSector), ReadLength);
Buffer += ReadLength;
Length -= ReadLength;
Offset += ReadLength;
}
/* II. Read all complete 64-sector blocks. */
while (Length >= 64 * NtfsBootSector->BytesPerSector)
{
if (!DiskReadLogicalSectors(NtfsDriveNumber, NtfsSectorOfClusterZero + (Offset / NtfsBootSector->BytesPerSector), 64, (PCHAR)DISKREADBUFFER))
return FALSE;
RtlCopyMemory(Buffer, (PCHAR)DISKREADBUFFER, 64 * NtfsBootSector->BytesPerSector);
Buffer += 64 * NtfsBootSector->BytesPerSector;
Length -= 64 * NtfsBootSector->BytesPerSector;
Offset += 64 * NtfsBootSector->BytesPerSector;
}
/* III. Read the rest of data */
if (Length)
{
ReadLength = ((Length + NtfsBootSector->BytesPerSector - 1) / NtfsBootSector->BytesPerSector);
if (!DiskReadLogicalSectors(NtfsDriveNumber, NtfsSectorOfClusterZero + (Offset / NtfsBootSector->BytesPerSector), ReadLength, (PCHAR)DISKREADBUFFER))
return FALSE;
RtlCopyMemory(Buffer, (PCHAR)DISKREADBUFFER, Length);
}
return TRUE;
}
U64 NtfsReadAttribute(PNTFS_ATTR_CONTEXT Context, U64 Offset, PCHAR Buffer, U64 Length)
{
U64 LastLCN;
PUCHAR DataRun;
S64 DataRunOffset;
U64 DataRunLength;
S64 DataRunStartLCN;
U64 CurrentOffset;
U64 ReadLength;
U64 AlreadyRead;
if (!Context->Record->IsNonResident)
{
if (Offset > Context->Record->Resident.ValueLength)
return 0;
if (Offset + Length > Context->Record->Resident.ValueLength)
Length = Context->Record->Resident.ValueLength - Offset;
RtlCopyMemory(Buffer, (PCHAR)Context->Record + Context->Record->Resident.ValueOffset + Offset, Length);
return Length;
}
/*
* Non-resident attribute
*/
/*
* I. Find the corresponding start data run.
*/
if (Context->CacheRunOffset == Offset)
{
DataRun = Context->CacheRun;
LastLCN = Context->CacheRunLastLCN;
DataRunStartLCN = Context->CacheRunStartLCN;
DataRunLength = Context->CacheRunLength;
CurrentOffset = Context->CacheRunCurrentOffset;
}
else
{
LastLCN = 0;
DataRun = (PUCHAR)Context->Record + Context->Record->NonResident.MappingPairsOffset;
CurrentOffset = 0;
while (1)
{
DataRun = NtfsDecodeRun(DataRun, &DataRunOffset, &DataRunLength);
if (DataRunOffset != -1)
{
/* Normal data run. */
DataRunStartLCN = LastLCN + DataRunOffset;
LastLCN = DataRunStartLCN;
}
else
{
/* Sparse data run. */
DataRunStartLCN = -1;
}
if (Offset >= CurrentOffset &&
Offset < CurrentOffset + (DataRunLength * NtfsClusterSize))
{
break;
}
if (*DataRun == 0)
{
return 0;
}
CurrentOffset += DataRunLength * NtfsClusterSize;
}
}
/*
* II. Go through the run list and read the data
*/
AlreadyRead = 0;
while (Length > 0)
{
ReadLength = min(DataRunLength * NtfsClusterSize, Length);
if (DataRunStartLCN == -1)
RtlZeroMemory(Buffer, ReadLength);
else if (!NtfsDiskRead(DataRunStartLCN * NtfsClusterSize + Offset - CurrentOffset, ReadLength, Buffer))
break;
Length -= ReadLength;
Buffer += ReadLength;
AlreadyRead += ReadLength;
/* We finished this request, but there still data in this data run. */
if (Length == 0 && ReadLength != DataRunLength * NtfsClusterSize)
break;
/*
* Go to next run in the list.
*/
if (*DataRun == 0)
break;
DataRun = NtfsDecodeRun(DataRun, &DataRunOffset, &DataRunLength);
if (DataRunOffset != -1)
{
/* Normal data run. */
DataRunStartLCN = LastLCN + DataRunOffset;
LastLCN = DataRunStartLCN;
}
else
{
/* Sparse data run. */
DataRunStartLCN = -1;
}
CurrentOffset += DataRunLength * NtfsClusterSize;
}
Context->CacheRun = DataRun;
Context->CacheRunOffset = Offset + AlreadyRead;
Context->CacheRunStartLCN = DataRunStartLCN;
Context->CacheRunLength = DataRunLength;
Context->CacheRunLastLCN = LastLCN;
Context->CacheRunCurrentOffset = CurrentOffset;
return AlreadyRead;
}
BOOL NtfsFixupRecord(PNTFS_RECORD Record)
{
U16 *USA;
U16 USANumber;
U16 USACount;
U16 *Block;
USA = (U16*)((PCHAR)Record + Record->USAOffset);
USANumber = *(USA++);
USACount = Record->USACount - 1; /* Exclude the USA Number. */
Block = (U16*)((PCHAR)Record + NtfsBootSector->BytesPerSector - 2);
while (USACount)
{
if (*Block != USANumber)
return FALSE;
*Block = *(USA++);
Block = (U16*)((PCHAR)Block + NtfsBootSector->BytesPerSector);
USACount--;
}
return TRUE;
}
BOOL NtfsReadMftRecord(U32 MFTIndex, PNTFS_MFT_RECORD Buffer)
{
U64 BytesRead;
BytesRead = NtfsReadAttribute(&NtfsMFTContext, MFTIndex * NtfsMftRecordSize, (PCHAR)Buffer, NtfsMftRecordSize);
if (BytesRead != NtfsMftRecordSize)
return FALSE;
/* Apply update sequence array fixups. */
return NtfsFixupRecord((PNTFS_RECORD)Buffer);
}
#ifdef DEBUG
VOID NtfsPrintFile(PNTFS_INDEX_ENTRY IndexEntry)
{
PWCHAR FileName;
U8 FileNameLength;
CHAR AnsiFileName[256];
U8 i;
FileName = IndexEntry->FileName.FileName;
FileNameLength = IndexEntry->FileName.FileNameLength;
for (i = 0; i < FileNameLength; i++)
AnsiFileName[i] = FileName[i];
AnsiFileName[i] = 0;
DbgPrint((DPRINT_FILESYSTEM, "- %s (%x)\n", AnsiFileName, IndexEntry->Data.Directory.IndexedFile));
}
#endif
BOOL NtfsCompareFileName(PCHAR FileName, PNTFS_INDEX_ENTRY IndexEntry)
{
PWCHAR EntryFileName;
U8 EntryFileNameLength;
U8 i;
EntryFileName = IndexEntry->FileName.FileName;
EntryFileNameLength = IndexEntry->FileName.FileNameLength;
#ifdef DEBUG
NtfsPrintFile(IndexEntry);
#endif
if (strlen(FileName) != EntryFileNameLength)
return FALSE;
/* Do case-sensitive compares for Posix file names. */
if (IndexEntry->FileName.FileNameType == NTFS_FILE_NAME_POSIX)
{
for (i = 0; i < EntryFileNameLength; i++)
if (EntryFileName[i] != FileName[i])
return FALSE;
}
else
{
for (i = 0; i < EntryFileNameLength; i++)
if (tolower(EntryFileName[i]) != tolower(FileName[i]))
return FALSE;
}
return TRUE;
}
BOOL NtfsFindMftRecord(U32 MFTIndex, PCHAR FileName, U32 *OutMFTIndex)
{
PNTFS_MFT_RECORD MftRecord;
U32 Magic;
NTFS_ATTR_CONTEXT IndexRootCtx;
NTFS_ATTR_CONTEXT IndexBitmapCtx;
NTFS_ATTR_CONTEXT IndexAllocationCtx;
PNTFS_INDEX_ROOT IndexRoot;
U64 BitmapDataSize;
U64 IndexAllocationSize;
PCHAR BitmapData;
PCHAR IndexRecord;
PNTFS_INDEX_ENTRY IndexEntry, IndexEntryEnd;
U32 RecordOffset;
U32 IndexBlockSize;
MftRecord = MmAllocateMemory(NtfsMftRecordSize);
if (MftRecord == NULL)
{
return FALSE;
}
if (NtfsReadMftRecord(MFTIndex, MftRecord))
{
Magic = MftRecord->Magic;
if (!NtfsFindAttribute(&IndexRootCtx, MftRecord, NTFS_ATTR_TYPE_INDEX_ROOT, L"$I30"))
{
MmFreeMemory(MftRecord);
return FALSE;
}
IndexRecord = MmAllocateMemory(NtfsIndexRecordSize);
if (IndexRecord == NULL)
{
MmFreeMemory(MftRecord);
return FALSE;
}
NtfsReadAttribute(&IndexRootCtx, 0, IndexRecord, NtfsIndexRecordSize);
IndexRoot = (PNTFS_INDEX_ROOT)IndexRecord;
IndexEntry = (PNTFS_INDEX_ENTRY)((PCHAR)&IndexRoot->IndexHeader + IndexRoot->IndexHeader.EntriesOffset);
/* Index root is always resident. */
IndexEntryEnd = (PNTFS_INDEX_ENTRY)(IndexRecord + IndexRootCtx.Record->Resident.ValueLength);
DbgPrint((DPRINT_FILESYSTEM, "NtfsIndexRecordSize: %x IndexBlockSize: %x\n", NtfsIndexRecordSize, IndexRoot->IndexBlockSize));
while (IndexEntry < IndexEntryEnd &&
!(IndexEntry->Flags & NTFS_INDEX_ENTRY_END))
{
if (NtfsCompareFileName(FileName, IndexEntry))
{
*OutMFTIndex = IndexEntry->Data.Directory.IndexedFile;
MmFreeMemory(IndexRecord);
MmFreeMemory(MftRecord);
return TRUE;
}
IndexEntry = (PNTFS_INDEX_ENTRY)((PCHAR)IndexEntry + IndexEntry->Length);
}
if (IndexRoot->IndexHeader.Flags & NTFS_LARGE_INDEX)
{
DbgPrint((DPRINT_FILESYSTEM, "Large Index!\n"));
IndexBlockSize = IndexRoot->IndexBlockSize;
if (!NtfsFindAttribute(&IndexBitmapCtx, MftRecord, NTFS_ATTR_TYPE_BITMAP, L"$I30"))
{
DbgPrint((DPRINT_FILESYSTEM, "Corrupted filesystem!\n"));
MmFreeMemory(MftRecord);
return FALSE;
}
if (IndexBitmapCtx.Record->IsNonResident)
BitmapDataSize = IndexBitmapCtx.Record->NonResident.DataSize;
else
BitmapDataSize = IndexBitmapCtx.Record->Resident.ValueLength;
DbgPrint((DPRINT_FILESYSTEM, "BitmapDataSize: %x\n", BitmapDataSize));
BitmapData = MmAllocateMemory(BitmapDataSize);
if (BitmapData == NULL)
{
MmFreeMemory(IndexRecord);
MmFreeMemory(MftRecord);
return FALSE;
}
NtfsReadAttribute(&IndexBitmapCtx, 0, BitmapData, BitmapDataSize);
if (!NtfsFindAttribute(&IndexAllocationCtx, MftRecord, NTFS_ATTR_TYPE_INDEX_ALLOCATION, L"$I30"))
{
DbgPrint((DPRINT_FILESYSTEM, "Corrupted filesystem!\n"));
MmFreeMemory(BitmapData);
MmFreeMemory(IndexRecord);
MmFreeMemory(MftRecord);
return FALSE;
}
if (IndexAllocationCtx.Record->IsNonResident)
IndexAllocationSize = IndexAllocationCtx.Record->NonResident.DataSize;
else
IndexAllocationSize = IndexAllocationCtx.Record->Resident.ValueLength;
RecordOffset = 0;
for (;;)
{
DbgPrint((DPRINT_FILESYSTEM, "RecordOffset: %x IndexAllocationSize: %x\n", RecordOffset, IndexAllocationSize));
for (; RecordOffset < IndexAllocationSize;)
{
U8 Bit = 1 << ((RecordOffset / IndexBlockSize) & 7);
U32 Byte = (RecordOffset / IndexBlockSize) >> 3;
if ((BitmapData[Byte] & Bit))
break;
RecordOffset += IndexBlockSize;
}
if (RecordOffset >= IndexAllocationSize)
{
break;
}
NtfsReadAttribute(&IndexAllocationCtx, RecordOffset, IndexRecord, IndexBlockSize);
if (!NtfsFixupRecord((PNTFS_RECORD)IndexRecord))
{
break;
}
/* FIXME */
IndexEntry = (PNTFS_INDEX_ENTRY)(IndexRecord + 0x18 + *(U16 *)(IndexRecord + 0x18));
IndexEntryEnd = (PNTFS_INDEX_ENTRY)(IndexRecord + IndexBlockSize);
while (IndexEntry < IndexEntryEnd &&
!(IndexEntry->Flags & NTFS_INDEX_ENTRY_END))
{
if (NtfsCompareFileName(FileName, IndexEntry))
{
DbgPrint((DPRINT_FILESYSTEM, "File found\n"));
*OutMFTIndex = IndexEntry->Data.Directory.IndexedFile;
MmFreeMemory(BitmapData);
MmFreeMemory(IndexRecord);
MmFreeMemory(MftRecord);
return TRUE;
}
IndexEntry = (PNTFS_INDEX_ENTRY)((PCHAR)IndexEntry + IndexEntry->Length);
}
RecordOffset += IndexBlockSize;
}
MmFreeMemory(BitmapData);
}
MmFreeMemory(IndexRecord);
}
else
{
DbgPrint((DPRINT_FILESYSTEM, "Can't read MFT record\n"));
}
MmFreeMemory(MftRecord);
return FALSE;
}
BOOL NtfsLookupFile(PUCHAR FileName, PNTFS_MFT_RECORD MftRecord, PNTFS_ATTR_CONTEXT DataContext)
{
U32 NumberOfPathParts;
UCHAR PathPart[261];
U32 CurrentMFTIndex;
U8 i;
DbgPrint((DPRINT_FILESYSTEM, "NtfsLookupFile() FileName = %s\n", FileName));
CurrentMFTIndex = NTFS_FILE_ROOT;
NumberOfPathParts = FsGetNumPathParts(FileName);
for (i = 0; i < NumberOfPathParts; i++)
{
FsGetFirstNameFromPath(PathPart, FileName);
for (; (*FileName != '\\') && (*FileName != '/') && (*FileName != '\0'); FileName++)
;
FileName++;
DbgPrint((DPRINT_FILESYSTEM, "- Lookup: %s\n", PathPart));
if (!NtfsFindMftRecord(CurrentMFTIndex, PathPart, &CurrentMFTIndex))
{
DbgPrint((DPRINT_FILESYSTEM, "- Failed\n"));
return FALSE;
}
DbgPrint((DPRINT_FILESYSTEM, "- Lookup: %x\n", CurrentMFTIndex));
}
if (!NtfsReadMftRecord(CurrentMFTIndex, MftRecord))
{
DbgPrint((DPRINT_FILESYSTEM, "NtfsLookupFile: Can't read MFT record\n"));
return FALSE;
}
if (!NtfsFindAttribute(DataContext, MftRecord, NTFS_ATTR_TYPE_DATA, L""))
{
DbgPrint((DPRINT_FILESYSTEM, "NtfsLookupFile: Can't find data attribute\n"));
return FALSE;
}
return TRUE;
}
BOOL NtfsOpenVolume(U32 DriveNumber, U32 VolumeStartSector)
{
NtfsBootSector = (PNTFS_BOOTSECTOR)DISKREADBUFFER;
DbgPrint((DPRINT_FILESYSTEM, "NtfsOpenVolume() DriveNumber = 0x%x VolumeStartSector = 0x%x\n", DriveNumber, VolumeStartSector));
if (!DiskReadLogicalSectors(DriveNumber, VolumeStartSector, 1, (PCHAR)DISKREADBUFFER))
{
FileSystemError("Failed to read the boot sector.");
return FALSE;
}
if (RtlCompareMemory(NtfsBootSector->SystemId, "NTFS", 4))
{
FileSystemError("Invalid NTFS signature.");
return FALSE;
}
NtfsBootSector = MmAllocateMemory(NtfsBootSector->BytesPerSector);
if (NtfsBootSector == NULL)
{
return FALSE;
}
RtlCopyMemory(NtfsBootSector, (PCHAR)DISKREADBUFFER, ((PNTFS_BOOTSECTOR)DISKREADBUFFER)->BytesPerSector);
NtfsClusterSize = NtfsBootSector->SectorsPerCluster * NtfsBootSector->BytesPerSector;
if (NtfsBootSector->ClustersPerMftRecord > 0)
NtfsMftRecordSize = NtfsBootSector->ClustersPerMftRecord * NtfsClusterSize;
else
NtfsMftRecordSize = 1 << (-NtfsBootSector->ClustersPerMftRecord);
if (NtfsBootSector->ClustersPerIndexRecord > 0)
NtfsIndexRecordSize = NtfsBootSector->ClustersPerIndexRecord * NtfsClusterSize;
else
NtfsIndexRecordSize = 1 << (-NtfsBootSector->ClustersPerIndexRecord);
DbgPrint((DPRINT_FILESYSTEM, "NtfsClusterSize: 0x%x\n", NtfsClusterSize));
DbgPrint((DPRINT_FILESYSTEM, "ClustersPerMftRecord: %d\n", NtfsBootSector->ClustersPerMftRecord));
DbgPrint((DPRINT_FILESYSTEM, "ClustersPerIndexRecord: %d\n", NtfsBootSector->ClustersPerIndexRecord));
DbgPrint((DPRINT_FILESYSTEM, "NtfsMftRecordSize: 0x%x\n", NtfsMftRecordSize));
DbgPrint((DPRINT_FILESYSTEM, "NtfsIndexRecordSize: 0x%x\n", NtfsIndexRecordSize));
NtfsDriveNumber = DriveNumber;
NtfsSectorOfClusterZero = VolumeStartSector;
DbgPrint((DPRINT_FILESYSTEM, "Reading MFT index...\n"));
if (!DiskReadLogicalSectors(DriveNumber,
NtfsSectorOfClusterZero +
(NtfsBootSector->MftLocation * NtfsBootSector->SectorsPerCluster),
NtfsMftRecordSize / NtfsBootSector->BytesPerSector, (PCHAR)DISKREADBUFFER))
{
FileSystemError("Failed to read the Master File Table record.");
return FALSE;
}
NtfsMasterFileTable = MmAllocateMemory(NtfsMftRecordSize);
if (NtfsMasterFileTable == NULL)
{
MmFreeMemory(NtfsBootSector);
return FALSE;
}
RtlCopyMemory(NtfsMasterFileTable, (PCHAR)DISKREADBUFFER, NtfsMftRecordSize);
DbgPrint((DPRINT_FILESYSTEM, "Searching for DATA attribute...\n"));
if (!NtfsFindAttribute(&NtfsMFTContext, NtfsMasterFileTable, NTFS_ATTR_TYPE_DATA, L""))
{
FileSystemError("Can't find data attribute for Master File Table.");
return FALSE;
}
return TRUE;
}
FILE* NtfsOpenFile(PUCHAR FileName)
{
PNTFS_FILE_HANDLE FileHandle;
PNTFS_MFT_RECORD MftRecord;
FileHandle = MmAllocateMemory(sizeof(NTFS_FILE_HANDLE) + NtfsMftRecordSize);
if (FileHandle == NULL)
{
return NULL;
}
MftRecord = (PNTFS_MFT_RECORD)(FileHandle + 1);
if (!NtfsLookupFile(FileName, MftRecord, &FileHandle->DataContext))
{
MmFreeMemory(FileHandle);
return NULL;
}
FileHandle->Offset = 0;
return (FILE*)FileHandle;
}
BOOL NtfsReadFile(FILE *File, U32 BytesToRead, U32* BytesRead, PVOID Buffer)
{
PNTFS_FILE_HANDLE FileHandle = (PNTFS_FILE_HANDLE)File;
U64 BytesRead64;
BytesRead64 = NtfsReadAttribute(&FileHandle->DataContext, FileHandle->Offset, Buffer, BytesToRead);
if (BytesRead64)
{
*BytesRead = (U32)BytesRead64;
FileHandle->Offset += BytesRead64;
return TRUE;
}
return FALSE;
}
U32 NtfsGetFileSize(FILE *File)
{
PNTFS_FILE_HANDLE FileHandle = (PNTFS_FILE_HANDLE)File;
if (FileHandle->DataContext.Record->IsNonResident)
return (U32)FileHandle->DataContext.Record->NonResident.DataSize;
else
return (U32)FileHandle->DataContext.Record->Resident.ValueLength;
}
VOID NtfsSetFilePointer(FILE *File, U32 NewFilePointer)
{
PNTFS_FILE_HANDLE FileHandle = (PNTFS_FILE_HANDLE)File;
FileHandle->Offset = NewFilePointer;
}
U32 NtfsGetFilePointer(FILE *File)
{
PNTFS_FILE_HANDLE FileHandle = (PNTFS_FILE_HANDLE)File;
return FileHandle->Offset;
}

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,171 +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 __ARCH_H
#define __ARCH_H
/* Defines needed for switching between real and protected mode */
#define NULL_DESC 0x00 /* NULL descriptor */
#define PMODE_CS 0x08 /* PMode code selector, base 0 limit 4g */
#define PMODE_DS 0x10 /* PMode data selector, base 0 limit 4g */
#define RMODE_CS 0x18 /* RMode code selector, base 0 limit 64k */
#define RMODE_DS 0x20 /* RMode data selector, base 0 limit 64k */
#define KERNEL_BASE 0xC0000000
//#define USER_CS 0x08
//#define USER_DS 0x10
//#define KERNEL_CS 0x20
//#define KERNEL_DS 0x28
#define KERNEL_CS 0x08
#define KERNEL_DS 0x10
#define CR0_PE_SET 0x00000001 /* OR this value with CR0 to enable pmode */
#define CR0_PE_CLR 0xFFFFFFFE /* AND this value with CR0 to disable pmode */
#define STACK16ADDR 0x7000 /* The 16-bit stack top will be at 0000:7000 */
#define STACK32ADDR 0x78000 /* The 32-bit stack top will be at 7000:8000, or 0x78000 */
#define BIOSCALLBUFFER 0x78000 /* Buffer to store temporary data for any Int386() call */
#define BIOSCALLBUFSEGMENT 0x7800 /* Buffer to store temporary data for any Int386() call */
#define BIOSCALLBUFOFFSET 0x0000 /* Buffer to store temporary data for any Int386() call */
#define FILESYSBUFFER 0x80000 /* Buffer to store file system data (e.g. cluster buffer for FAT) */
#define DISKREADBUFFER 0x90000 /* Buffer to store data read in from the disk via the BIOS */
/* Makes "x" a global variable or label */
#define EXTERN(x) .global x; x:
#ifndef ASM
typedef struct
{
unsigned long eax;
unsigned long ebx;
unsigned long ecx;
unsigned long edx;
unsigned long esi;
unsigned long edi;
unsigned short ds;
unsigned short es;
unsigned short fs;
unsigned short gs;
unsigned long eflags;
} PACKED DWORDREGS;
typedef struct
{
unsigned short ax, _upper_ax;
unsigned short bx, _upper_bx;
unsigned short cx, _upper_cx;
unsigned short dx, _upper_dx;
unsigned short si, _upper_si;
unsigned short di, _upper_di;
unsigned short ds;
unsigned short es;
unsigned short fs;
unsigned short gs;
unsigned short flags, _upper_flags;
} PACKED WORDREGS;
typedef struct
{
unsigned char al;
unsigned char ah;
unsigned short _upper_ax;
unsigned char bl;
unsigned char bh;
unsigned short _upper_bx;
unsigned char cl;
unsigned char ch;
unsigned short _upper_cx;
unsigned char dl;
unsigned char dh;
unsigned short _upper_dx;
unsigned short si, _upper_si;
unsigned short di, _upper_di;
unsigned short ds;
unsigned short es;
unsigned short fs;
unsigned short gs;
unsigned short flags, _upper_flags;
} PACKED BYTEREGS;
typedef union
{
DWORDREGS x;
DWORDREGS d;
WORDREGS w;
BYTEREGS b;
} REGS;
// Int386()
//
// Real mode interrupt vector interface
//
// (E)FLAGS can *only* be returned by this function, not set.
// Make sure all memory pointers are in SEG:OFFS format and
// not linear addresses, unless the interrupt handler
// specifically handles linear addresses.
int Int386(int ivec, REGS* in, REGS* out);
// Flag Masks
#define I386FLAG_CF 0x0001 // Carry Flag
#define I386FLAG_RESV1 0x0002 // Reserved - Must be 1
#define I386FLAG_PF 0x0004 // Parity Flag
#define I386FLAG_RESV2 0x0008 // Reserved - Must be 0
#define I386FLAG_AF 0x0010 // Auxiliary Flag
#define I386FLAG_RESV3 0x0020 // Reserved - Must be 0
#define I386FLAG_ZF 0x0040 // Zero Flag
#define I386FLAG_SF 0x0080 // Sign Flag
#define I386FLAG_TF 0x0100 // Trap Flag (Single Step)
#define I386FLAG_IF 0x0200 // Interrupt Flag
#define I386FLAG_DF 0x0400 // Direction Flag
#define I386FLAG_OF 0x0800 // Overflow Flag
// This macro tests the Carry Flag
// If CF is set then the call failed (usually)
#define INT386_SUCCESS(regs) ((regs.x.eflags & I386FLAG_CF) == 0)
void EnableA20(void);
VOID ChainLoadBiosBootSectorCode(VOID); // Implemented in boot.S
VOID SoftReboot(VOID); // Implemented in boot.S
VOID DetectHardware(VOID); // Implemented in hardware.c
#endif /* ! ASM */
#endif // #defined __ARCH_H

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 __BOOTMGR_H
#define __BOOTMGR_H
U32 GetDefaultOperatingSystem(PUCHAR OperatingSystemList[], U32 OperatingSystemCount);
S32 GetTimeOut(VOID);
BOOL MainBootMenuKeyPressFilter(U32 KeyPress);
#endif // #defined __BOOTMGR_H

View File

@@ -1,30 +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 __CACHE_H
#define __CACHE_H
BOOL CacheInitializeDrive(U32 DriveNumber);
VOID CacheInvalidateCacheData(VOID);
BOOL CacheReadDiskSectors(U32 DiskNumber, U32 StartSector, U32 SectorCount, PVOID Buffer);
BOOL CacheForceDiskSectorsIntoCache(U32 DiskNumber, U32 StartSector, U32 SectorCount);
BOOL CacheReleaseMemory(U32 MinimumAmountToRelease);
#endif // defined __CACHE_H

View File

@@ -1,32 +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 __RS232_H
#define __RS232_H
BOOL Rs232PortInitialize(U32 ComPort, U32 BaudRate);
BOOL Rs232PortGetByte(PUCHAR ByteRecieved);
BOOL Rs232PortPollByte(PUCHAR ByteRecieved);
VOID Rs232PortPutByte(UCHAR ByteToSend);
#endif // defined __RS232_H

View File

@@ -1,84 +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 DebugDumpBuffer(U32 Mask, PVOID Buffer, U32 Length);
#define DbgPrint(_x_) DebugPrint _x_ ;
#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 DbgPrint(_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,147 +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 DiskReadLogicalSectors(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer);
BOOL DiskReadLogicalSectorsLBA(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer);
BOOL DiskReadLogicalSectorsCHS(U32 DriveNumber, U64 SectorNumber, U32 SectorCount, PVOID Buffer);
BOOL DiskResetController(U32 DriveNumber);
BOOL DiskInt13ExtensionsSupported(U32 DriveNumber);
//VOID DiskStopFloppyMotor(VOID);
BOOL DiskGetDriveParameters(U32 DriveNumber, PGEOMETRY Geometry);
BOOL DiskGetExtendedDriveParameters(U32 DriveNumber, PVOID Buffer, U16 BufferSize);
//U32 DiskGetCacheableBlockCount(U32 DriveNumber);
#endif // defined __i386__
///////////////////////////////////////////////////////////////////////////////////////
//
// FreeLoader Disk Functions
//
///////////////////////////////////////////////////////////////////////////////////////
VOID DiskReportError (BOOL bError);
VOID DiskError(PUCHAR ErrorString, U32 ErrorCode);
PUCHAR DiskGetErrorCodeString(U32 ErrorCode);
BOOL DiskGetDriveGeometry(U32 DriveNumber, PGEOMETRY DriveGeometry);
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
U32 DiskGetCacheableBlockCount(U32 DriveNumber); // 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(void);
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,130 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2002, 2003 ReactOS Team
*
* 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: inffile.h,v 1.1 2003/05/25 21:17:30 ekohl Exp $
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS text-mode setup
* FILE: subsys/system/usetup/infcache.h
* PURPOSE: INF file parser that caches contents of INF file in memory
* PROGRAMMER: Royce Mitchell III
* Eric Kohl
*/
#ifndef __INFCACHE_H__
#define __INFCACHE_H__
#define STATUS_BAD_SECTION_NAME_LINE (0xC0700001)
#define STATUS_SECTION_NAME_TOO_LONG (0xC0700002)
#define STATUS_WRONG_INF_STYLE (0xC0700003)
#define STATUS_NOT_ENOUGH_MEMORY (0xC0700004)
#define MAX_INF_STRING_LENGTH 512
typedef PU32 HINF, *PHINF;
typedef struct _INFCONTEXT
{
PVOID Inf;
// PVOID CurrentInf;
PVOID Section;
PVOID Line;
} INFCONTEXT, *PINFCONTEXT;
/* FUNCTIONS ****************************************************************/
BOOLEAN
InfOpenFile (PHINF InfHandle,
PCHAR FileName,
PU32 ErrorLine);
VOID
InfCloseFile (HINF InfHandle);
BOOLEAN
InfFindFirstLine (HINF InfHandle,
PCHAR Section,
PCHAR Key,
PINFCONTEXT Context);
BOOLEAN
InfFindNextLine (PINFCONTEXT ContextIn,
PINFCONTEXT ContextOut);
BOOLEAN
InfFindFirstMatchLine (PINFCONTEXT ContextIn,
PCHAR Key,
PINFCONTEXT ContextOut);
BOOLEAN
InfFindNextMatchLine (PINFCONTEXT ContextIn,
PCHAR Key,
PINFCONTEXT ContextOut);
S32
InfGetLineCount (HINF InfHandle,
PCHAR Section);
S32
InfGetFieldCount (PINFCONTEXT Context);
BOOLEAN
InfGetBinaryField (PINFCONTEXT Context,
U32 FieldIndex,
PU8 ReturnBuffer,
U32 ReturnBufferSize,
PU32 RequiredSize);
BOOLEAN
InfGetIntField (PINFCONTEXT Context,
U32 FieldIndex,
S32 *IntegerValue);
BOOLEAN
InfGetMultiSzField (PINFCONTEXT Context,
U32 FieldIndex,
PCHAR ReturnBuffer,
U32 ReturnBufferSize,
PU32 RequiredSize);
BOOLEAN
InfGetStringField (PINFCONTEXT Context,
U32 FieldIndex,
PCHAR ReturnBuffer,
U32 ReturnBufferSize,
PU32 RequiredSize);
BOOLEAN
InfGetData (PINFCONTEXT Context,
PCHAR *Key,
PCHAR *Data);
BOOLEAN
InfGetDataField (PINFCONTEXT Context,
U32 FieldIndex,
PCHAR *Data);
#endif /* __INFCACHE_H__ */
/* EOF */

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,46 +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 __KEYCODES_H
#define __KEYCODES_H
// Key codes
#define KEY_EXTENDED 0x00
#define KEY_ENTER 0x0D
#define KEY_BACKSPACE 0x08
#define KEY_SPACE 0x20
#define KEY_UP 0x48
#define KEY_DOWN 0x50
#define KEY_LEFT 0x4B
#define KEY_RIGHT 0x4D
#define KEY_ESC 0x1B
#define KEY_F1 0x3B
#define KEY_F2 0x3C
#define KEY_F3 0x3D
#define KEY_F4 0x3E
#define KEY_F5 0x3F
#define KEY_F6 0x40
#define KEY_F7 0x41
#define KEY_F8 0x42
#define KEY_F9 0x43
#define KEY_F10 0x44
#endif // #defined __KEYCODES_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,27 +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 __BOOT_H
#define __BOOT_H
VOID LoadAndBootBootSector(PUCHAR OperatingSystemName);
VOID LoadAndBootPartition(PUCHAR OperatingSystemName);
VOID LoadAndBootDrive(PUCHAR OperatingSystemName);
#endif // defined __BOOT_H

View File

@@ -1,58 +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
// These functions are implemented in mem.S
U32 GetExtendedMemorySize(VOID); // Returns extended memory size in KB
U32 GetConventionalMemorySize(VOID); // Returns conventional memory size in KB
U32 GetBiosMemoryMap(PBIOS_MEMORY_MAP BiosMemoryMap, U32 MaxMemoryMapSize); // Fills structure with BIOS memory map and returns memory map item count
//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,34 +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 __OPTIONS_H
#define __OPTIONS_H
VOID DoOptionsMenu(VOID);
VOID OptionMenuReboot(VOID);
VOID OptionMenuCustomBoot(VOID);
VOID OptionMenuCustomBootDisk(VOID);
VOID OptionMenuCustomBootPartition(VOID);
VOID OptionMenuCustomBootBootSectorFile(VOID);
VOID OptionMenuCustomBootReactOS(VOID);
VOID OptionMenuCustomBootLinux(VOID);
#endif // #defined __OPTIONS_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,48 +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 __REACTOS_H
#define __REACTOS_H
///////////////////////////////////////////////////////////////////////////////////////
//
// ReactOS Loading Functions
//
///////////////////////////////////////////////////////////////////////////////////////
void LoadAndBootReactOS(PUCHAR OperatingSystemName);
///////////////////////////////////////////////////////////////////////////////////////
//
// ReactOS Setup Loader Functions
//
///////////////////////////////////////////////////////////////////////////////////////
VOID ReactOSRunSetupLoader(VOID);
///////////////////////////////////////////////////////////////////////////////////////
//
// ARC Path Functions
//
///////////////////////////////////////////////////////////////////////////////////////
BOOL DissectArcPath(char *ArcPath, char *BootPath, U32* BootDrive, U32* BootPartition);
void ConstructArcPath(PUCHAR ArcPath, PUCHAR SystemFolder, U32 Disk, U32 Partition);
U32 ConvertArcNameToBiosDriveNumber(PUCHAR ArcPath);
#endif // defined __REACTOS_H

View File

@@ -1,136 +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 __STDLIB_H
#define __STDLIB_H
#include <freeldr.h>
///////////////////////////////////////////////////////////////////////////////////////
//
// String Functions
//
///////////////////////////////////////////////////////////////////////////////////////
int strlen(char *str);
char * strcpy(char *dest, char *src);
char * strncpy(char *dest, char *src, size_t count);
char * strcat(char *dest, char *src);
char * strncat(char *dst, const char *src, size_t n);
char * strchr(const char *s, int c);
char * strrchr(const char *s, int c);
int strcmp(const char *string1, const char *string2);
int stricmp(const char *string1, const char *string2);
int strncmp(const char *string1, const char *string2, size_t length);
int strnicmp(const char *string1, const char *string2, size_t length);
///////////////////////////////////////////////////////////////////////////////////////
//
// Memory Functions
//
///////////////////////////////////////////////////////////////////////////////////////
int memcmp(const void *buf1, const void *buf2, size_t count);
void * memcpy(void *to, const void *from, size_t count);
void * memmove(void *dest, const void *src, size_t count);
void * memset(void *src, int val, size_t count);
#define RtlCompareMemory(Source1, Source2, Length) memcmp(Source1, Source2, Length)
#define RtlCopyMemory(Destination, Source, Length) memcpy(Destination, Source, Length)
#define RtlFillMemory(Destination, Length, Fill) memset(Destination, Fill, Length)
#define RtlMoveMemory(Destination, Source, Length) memmove(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length) memset(Destination, 0, Length)
///////////////////////////////////////////////////////////////////////////////////////
//
// Standard Library Functions
//
///////////////////////////////////////////////////////////////////////////////////////
int atoi(char *string);
char * itoa(int value, char *string, int radix);
int toupper(int c);
int tolower(int c);
int isspace(int c);
int isdigit(int c);
int isxdigit(int c);
char * convert_to_ascii(char *buf, int c, ...);
char * convert_i64_to_ascii(char *buf, int c, ...);
void putchar(int ch); // Implemented in asmcode.S
int kbhit(void); // Implemented in asmcode.S
int getch(void); // Implemented in asmcode.S
int getyear(void); // Implemented in asmcode.S
int getday(void); // Implemented in asmcode.S
int getmonth(void); // Implemented in asmcode.S
int gethour(void); // Implemented in asmcode.S
int getminute(void); // Implemented in asmcode.S
int getsecond(void); // Implemented in asmcode.S
void beep(void);
void delay(unsigned msec);
void sound(int freq);
#ifndef max
#define max(a, b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a, b) (((a) < (b)) ? (a) : (b))
#endif
///////////////////////////////////////////////////////////////////////////////////////
//
// Screen Output Functions
//
///////////////////////////////////////////////////////////////////////////////////////
void print(char *str);
void printf(char *fmt, ...);
void sprintf(char *buffer, char *format, ...);
///////////////////////////////////////////////////////////////////////////////////////
//
// List Functions
//
///////////////////////////////////////////////////////////////////////////////////////
typedef struct _LIST_ITEM
{
struct _LIST_ITEM* ListPrev;
struct _LIST_ITEM* ListNext;
} LIST_ITEM, *PLIST_ITEM;
VOID RtlListInitializeHead(PLIST_ITEM ListHead); // Initializes a doubly linked list
VOID RtlListInsertHead(PLIST_ITEM ListHead, PLIST_ITEM Entry); // Inserts an entry at the head of the list
VOID RtlListInsertTail(PLIST_ITEM ListHead, PLIST_ITEM Entry); // Inserts an entry at the tail of the list
PLIST_ITEM RtlListRemoveHead(PLIST_ITEM ListHead); // Removes the entry at the head of the list
PLIST_ITEM RtlListRemoveTail(PLIST_ITEM ListHead); // Removes the entry at the tail of the list
PLIST_ITEM RtlListGetHead(PLIST_ITEM ListHead); // Returns the entry at the head of the list
PLIST_ITEM RtlListGetTail(PLIST_ITEM ListHead); // Returns the entry at the tail of the list
BOOL RtlListIsEmpty(PLIST_ITEM ListHead); // Indicates whether a doubly linked list is empty
U32 RtlListCountEntries(PLIST_ITEM ListHead); // Counts the entries in a doubly linked list
PLIST_ITEM RtlListGetPrevious(PLIST_ITEM ListEntry); // Returns the previous item in the list
PLIST_ITEM RtlListGetNext(PLIST_ITEM ListEntry); // Returns the next item in the list
PLIST_ITEM RtlListRemoveEntry(PLIST_ITEM ListEntry); // Removes the entry from the list
VOID RtlListInsertEntry(PLIST_ITEM InsertAfter, PLIST_ITEM ListEntry); // Inserts a new list entry right after the specified one
VOID RtlListMoveEntryPrevious(PLIST_ITEM ListEntry); // Moves the list entry to before the previous entry
VOID RtlListMoveEntryNext(PLIST_ITEM ListEntry); // Moves the list entry to after the next entry
#endif // defined __STDLIB_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(VOID); // 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,49 +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 __VERSION_H
#define __VERSION_H
/* just some stuff */
#define VERSION "FreeLoader v1.8.22"
#define COPYRIGHT "Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>"
#define AUTHOR_EMAIL "<brianp@sginet.com>"
#define BY_AUTHOR "by Brian Palmer"
// FreeLoader version defines
//
// NOTE:
// If you fix bugs then you increment the patch version
// If you add features then you increment the minor version and zero the patch version
// If you add major functionality then you increment the major version and zero the minor & patch versions
//
#define FREELOADER_MAJOR_VERSION 1
#define FREELOADER_MINOR_VERSION 8
#define FREELOADER_PATCH_VERSION 22
#ifndef ASM
PUCHAR GetFreeLoaderVersionString(VOID);
#endif // ASM
#endif // defined __VERSION_H

View File

@@ -1,197 +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
#define VIDEOCARD_CGA_OR_OTHER 0
#define VIDEOCARD_EGA 1
#define VIDEOCARD_VGA 2
#define VERTRES_200_SCANLINES 0x00
#define VERTRES_350_SCANLINES 0x01
#define VERTRES_400_SCANLINES 0x02
#define MODETYPE_TEXT 0
#define MODETYPE_GRAPHICS 1
#define VIDEOMODE_NORMAL_TEXT 0
#define VIDEOMODE_EXTENDED_TEXT 1
#define VIDEOMODE_80X28 0x501C
#define VIDEOMODE_80X30 0x501E
#define VIDEOMODE_80X34 0x5022
#define VIDEOMODE_80X43 0x502B
#define VIDEOMODE_80X60 0x503C
#define VIDEOMODE_132X25 0x8419
#define VIDEOMODE_132X43 0x842B
#define VIDEOMODE_132X50 0x8432
#define VIDEOMODE_132X60 0x843C
#define VIDEOPORT_PALETTE_READ 0x03C7
#define VIDEOPORT_PALETTE_WRITE 0x03C8
#define VIDEOPORT_PALETTE_DATA 0x03C9
#define VIDEOPORT_VERTICAL_RETRACE 0x03DA
#define VIDEOVGA_MEM_ADDRESS 0xA0000
#define VIDEOTEXT_MEM_ADDRESS 0xB8000
typedef struct
{
U8 Red;
U8 Green;
U8 Blue;
} PACKED PALETTE_ENTRY, *PPALETTE_ENTRY;
typedef struct
{
U16 ModeAttributes; // mode attributes (see #00080)
U8 WindowAttributesA; // window attributes, window A (see #00081)
U8 WindowsAttributesB; // window attributes, window B (see #00081)
U16 WindowGranularity; // window granularity in KB
U16 WindowSize; // window size in KB
U16 WindowAStartSegment; // start segment of window A (0000h if not supported)
U16 WindowBStartSegment; // start segment of window B (0000h if not supported)
U32 WindowPositioningFunction; // -> FAR window positioning function (equivalent to AX=4F05h)
U16 BytesPerScanLine; // bytes per scan line
//---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
U16 WidthInPixels; // width in pixels (graphics) or characters (text)
U16 HeightInPixels; // height in pixels (graphics) or characters (text)
U8 CharacterWidthInPixels; // width of character cell in pixels
U8 CharacterHeightInPixels; // height of character cell in pixels
U8 NumberOfMemoryPlanes; // number of memory planes
U8 BitsPerPixel; // number of bits per pixel
U8 NumberOfBanks; // number of banks
U8 MemoryModel; // memory model type (see #00082)
U8 BankSize; // size of bank in KB
U8 NumberOfImagePanes; // number of image pages (less one) that will fit in video RAM
U8 Reserved1; // reserved (00h for VBE 1.0-2.0, 01h for VBE 3.0)
//---VBE v1.2+ ---
U8 RedMaskSize; // red mask size
U8 RedMaskPosition; // red field position
U8 GreenMaskSize; // green mask size
U8 GreenMaskPosition; // green field size
U8 BlueMaskSize; // blue mask size
U8 BlueMaskPosition; // blue field size
U8 ReservedMaskSize; // reserved mask size
U8 ReservedMaskPosition; // reserved mask position
U8 DirectColorModeInfo; // direct color mode info
// bit 0:Color ramp is programmable
// bit 1:Bytes in reserved field may be used by application
//---VBE v2.0+ ---
U32 LinearVideoBufferAddress; // physical address of linear video buffer
U32 OffscreenMemoryPointer; // pointer to start of offscreen memory
U16 OffscreenMemorySize; // KB of offscreen memory
//---VBE v3.0 ---
U16 LinearBytesPerScanLine; // bytes per scan line in linear modes
U8 BankedNumberOfImages; // number of images (less one) for banked video modes
U8 LinearNumberOfImages; // number of images (less one) for linear video modes
U8 LinearRedMaskSize; // linear modes:Size of direct color red mask (in bits)
U8 LinearRedMaskPosition; // linear modes:Bit position of red mask LSB (e.g. shift count)
U8 LinearGreenMaskSize; // linear modes:Size of direct color green mask (in bits)
U8 LinearGreenMaskPosition; // linear modes:Bit position of green mask LSB (e.g. shift count)
U8 LinearBlueMaskSize; // linear modes:Size of direct color blue mask (in bits)
U8 LinearBlueMaskPosition; // linear modes:Bit position of blue mask LSB (e.g. shift count)
U8 LinearReservedMaskSize; // linear modes:Size of direct color reserved mask (in bits)
U8 LinearReservedMaskPosition; // linear modes:Bit position of reserved mask LSB
U32 MaximumPixelClock; // maximum pixel clock for graphics video mode, in Hz
U8 Reserved2[190]; // 190 BYTEs reserved (0)
} PACKED SVGA_MODE_INFORMATION, *PSVGA_MODE_INFORMATION;
extern U32 CurrentMemoryBank;
extern SVGA_MODE_INFORMATION VesaVideoModeInformation;
extern PVOID VideoOffScreenBuffer;
VOID BiosSetVideoMode(U32 VideoMode); // Implemented in i386vid.S
VOID BiosSetVideoFont8x8(VOID); // Implemented in i386vid.S
VOID BiosSetVideoFont8x14(VOID); // Implemented in i386vid.S
VOID BiosSetVideoFont8x16(VOID); // Implemented in i386vid.S
VOID BiosSelectAlternatePrintScreen(VOID); // Implemented in i386vid.S
VOID BiosDisableCursorEmulation(VOID); // Implemented in i386vid.S
VOID BiosDefineCursor(U32 StartScanLine, U32 EndScanLine); // Implemented in i386vid.S
U32 BiosDetectVideoCard(VOID); // Implemented in i386vid.S
VOID BiosSetVerticalResolution(U32 ScanLines); // Implemented in i386vid.S, must be called right before BiosSetVideoMode()
VOID BiosSet480ScanLines(VOID); // Implemented in i386vid.S, must be called right after BiosSetVideoMode()
VOID BiosSetVideoDisplayEnd(VOID); // Implemented in i386vid.S
VOID BiosVideoDisableBlinkBit(VOID); // Implemented in i386vid.S
VOID BiosVideoEnableBlinkBit(VOID); // Implemented in i386vid.S
U16 BiosIsVesaSupported(VOID); // Implemented in i386vid.S, returns the VESA version
BOOL BiosVesaSetBank(U16 Bank); // Implemented in i386vid.S
BOOL BiosVesaSetVideoMode(U16 Mode); // Implemented in i386vid.S
BOOL BiosVesaGetSVGAModeInformation(U16 Mode, PSVGA_MODE_INFORMATION ModeInformation); // Implemented in i386vid.S
VOID VideoSetTextCursorPosition(U32 X, U32 Y); // Implemented in i386vid.S
VOID VideoHideTextCursor(VOID); // Implemented in i386vid.S
VOID VideoShowTextCursor(VOID); // Implemented in i386vid.S
U32 VideoGetTextCursorPositionX(VOID); // Implemented in i386vid.S
U32 VideoGetTextCursorPositionY(VOID); // Implemented in i386vid.S
BOOL VideoSetMode(U32 VideoMode);
BOOL VideoSetMode80x25(VOID); // Sets 80x25
BOOL VideoSetMode80x50_80x43(VOID); // Sets 80x50 (VGA) or 80x43 (EGA) 8-pixel mode
BOOL VideoSetMode80x28(VOID); // Sets 80x28. Works on all VGA's. Standard 80x25 with 14-point font
BOOL VideoSetMode80x43(VOID); // Sets 80x43. Works on all VGA's. It's a 350-scanline mode with 8-pixel font.
BOOL VideoSetMode80x30(VOID); // Sets 80x30. Works on all VGA's. 480 scanlines, 16-pixel font.
BOOL VideoSetMode80x34(VOID); // Sets 80x34. Works on all VGA's. 480 scanlines, 14-pixel font.
BOOL VideoSetMode80x60(VOID); // Sets 80x60. Works on all VGA's. 480 scanlines, 8-pixel font.
U32 VideoGetCurrentModeResolutionX(VOID);
U32 VideoGetCurrentModeResolutionY(VOID);
U32 VideoGetBytesPerScanLine(VOID);
U32 VideoGetCurrentMode(VOID);
U32 VideoGetCurrentModeType(VOID); // MODETYPE_TEXT or MODETYPE_GRAPHICS
BOOL VideoIsCurrentModeVesa(VOID);
U32 VideoGetCurrentModeColorDepth(VOID); // Returns 0 for text mode, 16 for 4-bit, 256 for 8-bit, 32768 for 15-bit, 65536 for 16-bit, etc.
VOID VideoClearScreen(VOID);
VOID VideoWaitForVerticalRetrace(VOID);
PVOID VideoAllocateOffScreenBuffer(VOID); // Returns a pointer to an off-screen buffer sufficient for the current video mode
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);
VOID VideoCopyOffScreenBufferToVRAM(VOID);
VOID VideoSetPaletteColor(U8 Color, U8 Red, U8 Green, U8 Blue);
VOID VideoGetPaletteColor(U8 Color, U8* Red, U8* Green, U8* Blue);
VOID VideoSavePaletteState(PPALETTE_ENTRY Palette, U32 ColorCount);
VOID VideoRestorePaletteState(PPALETTE_ENTRY Palette, U32 ColorCount);
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);
VOID VideoSetAllColorsToBlack(U32 ColorCount);
VOID VideoFadeIn(PPALETTE_ENTRY Palette, U32 ColorCount);
VOID VideoFadeOut(U32 ColorCount);
#endif // defined __VIDEO_H

File diff suppressed because it is too large Load Diff

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,252 +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 <ui.h>
#include <rtl.h>
#include <debug.h>
#include <mm.h>
BOOL IniOpenSection(PUCHAR SectionName, U32* SectionId)
{
PINI_SECTION Section;
DbgPrint((DPRINT_INIFILE, "IniOpenSection() SectionName = %s\n", SectionName));
if (!IniFileSectionListHead)
return FALSE;
// Loop through each section and find the one they want
Section = (PINI_SECTION)RtlListGetHead((PLIST_ITEM)IniFileSectionListHead);
while (Section != NULL)
{
// Compare against the section name
if (stricmp(SectionName, Section->SectionName) == 0)
{
// We found it
*SectionId = (U32)Section;
DbgPrint((DPRINT_INIFILE, "IniOpenSection() Found it! SectionId = 0x%x\n", SectionId));
return TRUE;
}
// Get the next section in the list
Section = (PINI_SECTION)RtlListGetNext((PLIST_ITEM)Section);
}
DbgPrint((DPRINT_INIFILE, "IniOpenSection() Section not found.\n"));
return FALSE;
}
U32 IniGetNumSectionItems(U32 SectionId)
{
PINI_SECTION Section = (PINI_SECTION)SectionId;
DbgPrint((DPRINT_INIFILE, "IniGetNumSectionItems() SectionId = 0x%x\n", SectionId));
DbgPrint((DPRINT_INIFILE, "IniGetNumSectionItems() Item count = %d\n", Section->SectionItemCount));
return Section->SectionItemCount;
}
U32 IniGetSectionSettingNameSize(U32 SectionId, U32 SettingIndex)
{
PINI_SECTION Section = (PINI_SECTION)SectionId;
// Return the size of the string plus 1 for the null-terminator
return (strlen(Section->SectionItemList[SettingIndex].ItemName) + 1);
}
U32 IniGetSectionSettingValueSize(U32 SectionId, U32 SettingIndex)
{
PINI_SECTION Section = (PINI_SECTION)SectionId;
// Return the size of the string plus 1 for the null-terminator
return (strlen(Section->SectionItemList[SettingIndex].ItemValue) + 1);
}
BOOL IniReadSettingByNumber(U32 SectionId, U32 SettingNumber, PUCHAR SettingName, U32 NameSize, PUCHAR SettingValue, U32 ValueSize)
{
PINI_SECTION Section = (PINI_SECTION)SectionId;
PINI_SECTION_ITEM SectionItem;
#ifdef DEBUG
U32 RealSettingNumber = SettingNumber;
#endif
DbgPrint((DPRINT_INIFILE, ".001 NameSize = %d ValueSize = %d\n", NameSize, ValueSize));
DbgPrint((DPRINT_INIFILE, "IniReadSettingByNumber() SectionId = 0x%x\n", SectionId));
// Loop through each section item and find the one they want
DbgPrint((DPRINT_INIFILE, ".01 NameSize = %d ValueSize = %d\n", NameSize, ValueSize));
SectionItem = (PINI_SECTION_ITEM)RtlListGetHead((PLIST_ITEM)Section->SectionItemList);
while (SectionItem != NULL)
{
DbgPrint((DPRINT_INIFILE, ".1 NameSize = %d ValueSize = %d\n", NameSize, ValueSize));
// Check to see if this is the setting they want
if (SettingNumber == 0)
{
DbgPrint((DPRINT_INIFILE, "IniReadSettingByNumber() Setting number %d found.\n", RealSettingNumber));
DbgPrint((DPRINT_INIFILE, "IniReadSettingByNumber() Setting name = %s\n", SectionItem->ItemName));
DbgPrint((DPRINT_INIFILE, "IniReadSettingByNumber() Setting value = %s\n", SectionItem->ItemValue));
DbgPrint((DPRINT_INIFILE, "1 NameSize = %d ValueSize = %d\n", NameSize, ValueSize));
RtlZeroMemory(SettingName, NameSize);
RtlZeroMemory(SettingValue, ValueSize);
DbgPrint((DPRINT_INIFILE, "2 NameSize = %d ValueSize = %d\n", NameSize, ValueSize));
strncpy(SettingName, SectionItem->ItemName, NameSize);
DbgPrint((DPRINT_INIFILE, "3 NameSize = %d ValueSize = %d\n", NameSize, ValueSize));
strncpy(SettingValue, SectionItem->ItemValue, ValueSize);
DbgPrint((DPRINT_INIFILE, "4 NameSize = %d ValueSize = %d\n", NameSize, ValueSize));
DbgDumpBuffer(DPRINT_INIFILE, SettingName, NameSize);
DbgDumpBuffer(DPRINT_INIFILE, SettingValue, ValueSize);
return TRUE;
}
// Nope, keep going
SettingNumber--;
// Get the next section item in the list
SectionItem = (PINI_SECTION_ITEM)RtlListGetNext((PLIST_ITEM)SectionItem);
}
DbgPrint((DPRINT_INIFILE, "IniReadSettingByNumber() Setting number %d not found.\n", RealSettingNumber));
return FALSE;
}
BOOL IniReadSettingByName(U32 SectionId, PUCHAR SettingName, PUCHAR Buffer, U32 BufferSize)
{
PINI_SECTION Section = (PINI_SECTION)SectionId;
PINI_SECTION_ITEM SectionItem;
DbgPrint((DPRINT_INIFILE, "IniReadSettingByName() SectionId = 0x%x\n", SectionId));
// Loop through each section item and find the one they want
SectionItem = (PINI_SECTION_ITEM)RtlListGetHead((PLIST_ITEM)Section->SectionItemList);
while (SectionItem != NULL)
{
// Check to see if this is the setting they want
if (stricmp(SettingName, SectionItem->ItemName) == 0)
{
DbgPrint((DPRINT_INIFILE, "IniReadSettingByName() Setting \'%s\' found.\n", SettingName));
DbgPrint((DPRINT_INIFILE, "IniReadSettingByName() Setting value = %s\n", SectionItem->ItemValue));
RtlZeroMemory(Buffer, BufferSize);
strncpy(Buffer, SectionItem->ItemValue, BufferSize);
return TRUE;
}
// Get the next section item in the list
SectionItem = (PINI_SECTION_ITEM)RtlListGetNext((PLIST_ITEM)SectionItem);
}
DbgPrint((DPRINT_INIFILE, "IniReadSettingByName() Setting \'%s\' not found.\n", SettingName));
return FALSE;
}
BOOL IniAddSection(PUCHAR SectionName, U32* SectionId)
{
PINI_SECTION Section;
// Allocate a new section structure
Section = MmAllocateMemory(sizeof(INI_SECTION));
if (!Section)
{
return FALSE;
}
RtlZeroMemory(Section, sizeof(INI_SECTION));
// Allocate the section name buffer
Section->SectionName = MmAllocateMemory(strlen(SectionName));
if (!Section->SectionName)
{
MmFreeMemory(Section);
return FALSE;
}
// Get the section name
strcpy(Section->SectionName, SectionName);
// Add it to the section list head
IniFileSectionCount++;
if (IniFileSectionListHead == NULL)
{
IniFileSectionListHead = Section;
}
else
{
RtlListInsertTail((PLIST_ITEM)IniFileSectionListHead, (PLIST_ITEM)Section);
}
*SectionId = (U32)Section;
return TRUE;
}
BOOL IniAddSettingValueToSection(U32 SectionId, PUCHAR SettingName, PUCHAR SettingValue)
{
PINI_SECTION Section = (PINI_SECTION)SectionId;
PINI_SECTION_ITEM SectionItem;
// Allocate a new item structure
SectionItem = MmAllocateMemory(sizeof(INI_SECTION_ITEM));
if (!SectionItem)
{
return FALSE;
}
RtlZeroMemory(SectionItem, sizeof(INI_SECTION_ITEM));
// Allocate the setting name buffer
SectionItem->ItemName = MmAllocateMemory(strlen(SettingName));
if (!SectionItem->ItemName)
{
MmFreeMemory(SectionItem);
return FALSE;
}
// Allocate the setting value buffer
SectionItem->ItemValue = MmAllocateMemory(strlen(SettingValue));
if (!SectionItem->ItemValue)
{
MmFreeMemory(SectionItem->ItemName);
MmFreeMemory(SectionItem);
return FALSE;
}
strcpy(SectionItem->ItemName, SettingName);
strcpy(SectionItem->ItemValue, SettingValue);
// Add it to the current section
Section->SectionItemCount++;
if (Section->SectionItemList == NULL)
{
Section->SectionItemList = SectionItem;
}
else
{
RtlListInsertTail((PLIST_ITEM)Section->SectionItemList, (PLIST_ITEM)SectionItem);
}
return TRUE;
}

View File

@@ -1,605 +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 <rtl.h>
#include <mm.h>
#include <debug.h>
PINI_SECTION IniFileSectionListHead = NULL;
U32 IniFileSectionCount = 0;
U32 IniFileSettingCount = 0;
BOOL IniParseFile(PUCHAR IniFileData, U32 IniFileSize)
{
U32 CurrentOffset;
U32 CurrentLineNumber;
PUCHAR IniFileLine;
U32 IniFileLineSize;
U32 LineLength;
PINI_SECTION CurrentSection = NULL;
PINI_SECTION_ITEM CurrentItem = NULL;
DbgPrint((DPRINT_INIFILE, "IniParseFile() IniFileSize: %d\n", IniFileSize));
// Start with an 80-byte buffer
IniFileLineSize = 80;
IniFileLine = MmAllocateMemory(IniFileLineSize);
if (!IniFileLine)
{
return FALSE;
}
// Loop through each line and parse it
CurrentLineNumber = 0;
CurrentOffset = 0;
while (CurrentOffset < IniFileSize)
{
// First check the line size and increase our buffer if necessary
if (IniFileLineSize < IniGetNextLineSize(IniFileData, IniFileSize, CurrentOffset))
{
IniFileLineSize = IniGetNextLineSize(IniFileData, IniFileSize, CurrentOffset);
MmFreeMemory(IniFileLine);
IniFileLine = MmAllocateMemory(IniFileLineSize);
if (!IniFileLine)
{
return FALSE;
}
}
// Get the line of data
CurrentOffset = IniGetNextLine(IniFileData, IniFileSize, IniFileLine, IniFileLineSize, CurrentOffset);
LineLength = strlen(IniFileLine);
// If it is a blank line or a comment then skip it
if (IniIsLineEmpty(IniFileLine, LineLength) || IniIsCommentLine(IniFileLine, LineLength))
{
CurrentLineNumber++;
continue;
}
// Check if it is a new section
if (IniIsSectionName(IniFileLine, LineLength))
{
// Allocate a new section structure
CurrentSection = MmAllocateMemory(sizeof(INI_SECTION));
if (!CurrentSection)
{
MmFreeMemory(IniFileLine);
return FALSE;
}
RtlZeroMemory(CurrentSection, sizeof(INI_SECTION));
// Allocate the section name buffer
CurrentSection->SectionName = MmAllocateMemory(IniGetSectionNameSize(IniFileLine, LineLength));
if (!CurrentSection->SectionName)
{
MmFreeMemory(CurrentSection);
MmFreeMemory(IniFileLine);
return FALSE;
}
// Get the section name
IniExtractSectionName(CurrentSection->SectionName, IniFileLine, LineLength);
// Add it to the section list head
IniFileSectionCount++;
if (IniFileSectionListHead == NULL)
{
IniFileSectionListHead = CurrentSection;
}
else
{
RtlListInsertTail((PLIST_ITEM)IniFileSectionListHead, (PLIST_ITEM)CurrentSection);
}
CurrentLineNumber++;
continue;
}
// Check if it is a setting
if (IniIsSetting(IniFileLine, LineLength))
{
// First check to make sure we're inside a [section]
if (CurrentSection == NULL)
{
printf("Error: freeldr.ini:%ld: Setting '%s' found outside of a [section].\n", CurrentLineNumber, IniFileLine);
printf("Press any key to continue...\n");
getch();
CurrentLineNumber++;
continue;
}
// Allocate a new item structure
CurrentItem = MmAllocateMemory(sizeof(INI_SECTION_ITEM));
if (!CurrentItem)
{
MmFreeMemory(IniFileLine);
return FALSE;
}
RtlZeroMemory(CurrentItem, sizeof(INI_SECTION_ITEM));
// Allocate the setting name buffer
CurrentItem->ItemName = MmAllocateMemory(IniGetSettingNameSize(IniFileLine, LineLength));
if (!CurrentItem->ItemName)
{
MmFreeMemory(CurrentItem);
MmFreeMemory(IniFileLine);
return FALSE;
}
// Allocate the setting value buffer
CurrentItem->ItemValue = MmAllocateMemory(IniGetSettingValueSize(IniFileLine, LineLength));
if (!CurrentItem->ItemValue)
{
MmFreeMemory(CurrentItem->ItemName);
MmFreeMemory(CurrentItem);
MmFreeMemory(IniFileLine);
return FALSE;
}
// Get the section name
IniExtractSettingName(CurrentItem->ItemName, IniFileLine, LineLength);
IniExtractSettingValue(CurrentItem->ItemValue, IniFileLine, LineLength);
// Add it to the current section
IniFileSettingCount++;
CurrentSection->SectionItemCount++;
if (CurrentSection->SectionItemList == NULL)
{
CurrentSection->SectionItemList = CurrentItem;
}
else
{
RtlListInsertTail((PLIST_ITEM)CurrentSection->SectionItemList, (PLIST_ITEM)CurrentItem);
}
CurrentLineNumber++;
continue;
}
CurrentLineNumber++;
}
DbgPrint((DPRINT_INIFILE, "Parsed %d sections and %d settings.\n", IniFileSectionCount, IniFileSettingCount));
DbgPrint((DPRINT_INIFILE, "IniParseFile() done.\n"));
return TRUE;
}
U32 IniGetNextLineSize(PUCHAR IniFileData, U32 IniFileSize, U32 CurrentOffset)
{
U32 Idx;
U32 LineCharCount = 0;
// Loop through counting chars until we hit the end of the
// file or we encounter a new line char
for (Idx=0; (CurrentOffset < IniFileSize); CurrentOffset++)
{
// Increment the line character count
LineCharCount++;
// Check for new line char
if (IniFileData[CurrentOffset] == '\n')
{
CurrentOffset++;
break;
}
}
// Add one for the NULL-terminator
LineCharCount++;
// Send back line character count
return LineCharCount;
}
U32 IniGetNextLine(PUCHAR IniFileData, U32 IniFileSize, PUCHAR Buffer, U32 BufferSize, U32 CurrentOffset)
{
U32 Idx;
// Loop through grabbing chars until we hit the end of the
// file or we encounter a new line char
for (Idx=0; (CurrentOffset < IniFileSize); CurrentOffset++)
{
// If we haven't exceeded our buffer size yet
// then store another char
if (Idx < (BufferSize - 1))
{
Buffer[Idx++] = IniFileData[CurrentOffset];
}
// Check for new line char
if (IniFileData[CurrentOffset] == '\n')
{
CurrentOffset++;
break;
}
}
// Terminate the string
Buffer[Idx] = '\0';
// Get rid of newline & linefeed characters (if any)
if((Buffer[strlen(Buffer)-1] == '\n') || (Buffer[strlen(Buffer)-1] == '\r'))
Buffer[strlen(Buffer)-1] = '\0';
if((Buffer[strlen(Buffer)-1] == '\n') || (Buffer[strlen(Buffer)-1] == '\r'))
Buffer[strlen(Buffer)-1] = '\0';
// Send back new offset
return CurrentOffset;
}
BOOL IniIsLineEmpty(PUCHAR LineOfText, U32 TextLength)
{
U32 Idx;
// Check for text (skipping whitespace)
for (Idx=0; Idx<TextLength; Idx++)
{
if ((LineOfText[Idx] == ' ') ||
(LineOfText[Idx] == '\t') ||
(LineOfText[Idx] == '\n') ||
(LineOfText[Idx] == '\r'))
{
continue;
}
else
{
return FALSE;
}
}
return TRUE;
}
BOOL IniIsCommentLine(PUCHAR LineOfText, U32 TextLength)
{
U32 Idx;
// Check the first character (skipping whitespace)
// and make sure that it is an opening bracket
for (Idx=0; Idx<TextLength; Idx++)
{
if ((LineOfText[Idx] == ' ') ||
(LineOfText[Idx] == '\t'))
{
continue;
}
else if (LineOfText[Idx] == INI_FILE_COMMENT_CHAR)
{
return TRUE;
}
else
{
break;
}
}
return FALSE;
}
BOOL IniIsSectionName(PUCHAR LineOfText, U32 TextLength)
{
U32 Idx;
// Check the first character (skipping whitespace)
// and make sure that it is an opening bracket
for (Idx=0; Idx<TextLength; Idx++)
{
if ((LineOfText[Idx] == ' ') ||
(LineOfText[Idx] == '\t'))
{
continue;
}
else if (LineOfText[Idx] == '[')
{
return TRUE;
}
else
{
break;
}
}
return FALSE;
}
U32 IniGetSectionNameSize(PUCHAR SectionNameLine, U32 LineLength)
{
U32 Idx;
U32 NameSize;
// Find the opening bracket (skipping whitespace)
for (Idx=0; Idx<LineLength; Idx++)
{
if ((SectionNameLine[Idx] == ' ') ||
(SectionNameLine[Idx] == '\t'))
{
continue;
}
else //if (SectionNameLine[Idx] == '[')
{
break;
}
}
// Skip past the opening bracket
Idx++;
// Count the characters up until the closing bracket or EOL
for (NameSize=0; Idx<LineLength; Idx++)
{
if ((SectionNameLine[Idx] == ']') ||
(SectionNameLine[Idx] == '\0'))
{
break;
}
// Increment the count
NameSize++;
}
// Add one for the NULL-terminator
NameSize++;
return NameSize;
}
VOID IniExtractSectionName(PUCHAR SectionName, PUCHAR SectionNameLine, U32 LineLength)
{
U32 Idx;
U32 DestIdx;
// Find the opening bracket (skipping whitespace)
for (Idx=0; Idx<LineLength; Idx++)
{
if ((SectionNameLine[Idx] == ' ') ||
(SectionNameLine[Idx] == '\t'))
{
continue;
}
else //if (SectionNameLine[Idx] == '[')
{
break;
}
}
// Skip past the opening bracket
Idx++;
// Count the characters up until the closing bracket or EOL
for (DestIdx=0; Idx<LineLength; Idx++)
{
if ((SectionNameLine[Idx] == ']') ||
(SectionNameLine[Idx] == '\0'))
{
break;
}
// Grab a character and increment DestIdx
SectionName[DestIdx] = SectionNameLine[Idx];
DestIdx++;
}
// Terminate the string
SectionName[DestIdx] = '\0';
}
BOOL IniIsSetting(PUCHAR LineOfText, U32 TextLength)
{
U32 Idx;
// Basically just check for an '=' equals sign
for (Idx=0; Idx<TextLength; Idx++)
{
if (LineOfText[Idx] == '=')
{
return TRUE;
}
}
return FALSE;
}
U32 IniGetSettingNameSize(PUCHAR SettingNameLine, U32 LineLength)
{
U32 Idx;
U32 NameSize;
// Skip whitespace
for (Idx=0; Idx<LineLength; Idx++)
{
if ((SettingNameLine[Idx] == ' ') ||
(SettingNameLine[Idx] == '\t'))
{
continue;
}
else
{
break;
}
}
// Count the characters up until the '=' equals sign or EOL
for (NameSize=0; Idx<LineLength; Idx++)
{
if ((SettingNameLine[Idx] == '=') ||
(SettingNameLine[Idx] == '\0'))
{
break;
}
// Increment the count
NameSize++;
}
// Add one for the NULL-terminator
NameSize++;
return NameSize;
}
U32 IniGetSettingValueSize(PUCHAR SettingValueLine, U32 LineLength)
{
U32 Idx;
U32 ValueSize;
// Skip whitespace
for (Idx=0; Idx<LineLength; Idx++)
{
if ((SettingValueLine[Idx] == ' ') ||
(SettingValueLine[Idx] == '\t'))
{
continue;
}
else
{
break;
}
}
// Skip the characters up until the '=' equals sign or EOL
for (; Idx<LineLength; Idx++)
{
if (SettingValueLine[Idx] == '=')
{
Idx++;
break;
}
// If we hit EOL then obviously the value size is zero
if (SettingValueLine[Idx] == '\0')
{
return 0;
}
}
// Count the characters up until the EOL
for (ValueSize=0; Idx<LineLength; Idx++)
{
if (SettingValueLine[Idx] == '\0')
{
break;
}
// Increment the count
ValueSize++;
}
// Add one for the NULL-terminator
ValueSize++;
return ValueSize;
}
VOID IniExtractSettingName(PUCHAR SettingName, PUCHAR SettingNameLine, U32 LineLength)
{
U32 Idx;
U32 DestIdx;
// Skip whitespace
for (Idx=0; Idx<LineLength; Idx++)
{
if ((SettingNameLine[Idx] == ' ') ||
(SettingNameLine[Idx] == '\t'))
{
continue;
}
else
{
break;
}
}
// Get the characters up until the '=' equals sign or EOL
for (DestIdx=0; Idx<LineLength; Idx++)
{
if ((SettingNameLine[Idx] == '=') ||
(SettingNameLine[Idx] == '\0'))
{
break;
}
// Grab a character and increment DestIdx
SettingName[DestIdx] = SettingNameLine[Idx];
DestIdx++;
}
// Terminate the string
SettingName[DestIdx] = '\0';
}
VOID IniExtractSettingValue(PUCHAR SettingValue, PUCHAR SettingValueLine, U32 LineLength)
{
U32 Idx;
U32 DestIdx;
// Skip whitespace
for (Idx=0; Idx<LineLength; Idx++)
{
if ((SettingValueLine[Idx] == ' ') ||
(SettingValueLine[Idx] == '\t'))
{
continue;
}
else
{
break;
}
}
// Skip the characters up until the '=' equals sign or EOL
for (; Idx<LineLength; Idx++)
{
if (SettingValueLine[Idx] == '=')
{
Idx++;
break;
}
// If we hit EOL then obviously the value size is zero
if (SettingValueLine[Idx] == '\0')
{
SettingValue[0] = '\0';
return;
}
}
// Get the characters up until the EOL
for (DestIdx=0; Idx<LineLength; Idx++)
{
if (SettingValueLine[Idx] == '\0')
{
break;
}
// Grab a character and increment DestIdx
SettingValue[DestIdx] = SettingValueLine[Idx];
DestIdx++;
}
// Terminate the string
SettingValue[DestIdx] = '\0';
}

View File

@@ -1,508 +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 <disk.h>
#include <miscboot.h>
#include <rtl.h>
#include <fs.h>
#include <ui.h>
#include <linux.h>
#include <debug.h>
#include <mm.h>
#include <inifile.h>
#include <oslist.h> // For RemoveQuotes()
#include <video.h>
#include <drivemap.h>
#define LINUX_READ_CHUNK_SIZE 0x20000 // Read 128k at a time
PLINUX_BOOTSECTOR LinuxBootSector = NULL;
PLINUX_SETUPSECTOR LinuxSetupSector = NULL;
U32 SetupSectorSize = 0;
BOOL NewStyleLinuxKernel = FALSE;
U32 LinuxKernelSize = 0;
U32 LinuxInitrdSize = 0;
UCHAR LinuxKernelName[260];
UCHAR LinuxInitrdName[260];
BOOL LinuxHasInitrd = FALSE;
UCHAR LinuxCommandLine[260] = "";
U32 LinuxCommandLineSize = 0;
PVOID LinuxKernelLoadAddress = NULL;
PVOID LinuxInitrdLoadAddress = NULL;
UCHAR LinuxBootDescription[80];
VOID LoadAndBootLinux(PUCHAR OperatingSystemName, PUCHAR Description)
{
PFILE LinuxKernel = NULL;
PFILE LinuxInitrdFile = NULL;
UCHAR TempString[260];
UiDrawBackdrop();
if (Description)
{
sprintf(LinuxBootDescription, "Loading %s...", Description);
}
else
{
strcpy(LinuxBootDescription, "Loading Linux...");
}
UiDrawStatusText(LinuxBootDescription);
UiDrawProgressBarCenter(0, 100, LinuxBootDescription);
// Parse the .ini file section
if (!LinuxParseIniSection(OperatingSystemName))
{
goto LinuxBootFailed;
}
// Open the boot volume
if (!FsOpenVolume(BootDrive, BootPartition))
{
UiMessageBox("Failed to open boot drive.");
goto LinuxBootFailed;
}
// Open the kernel
LinuxKernel = FsOpenFile(LinuxKernelName);
if (LinuxKernel == NULL)
{
sprintf(TempString, "Linux kernel \'%s\' not found.", LinuxKernelName);
UiMessageBox(TempString);
goto LinuxBootFailed;
}
// Open the initrd file image (if necessary)
if (LinuxHasInitrd)
{
LinuxInitrdFile = FsOpenFile(LinuxInitrdName);
if (LinuxInitrdFile == NULL)
{
sprintf(TempString, "Linux initrd image \'%s\' not found.", LinuxInitrdName);
UiMessageBox(TempString);
goto LinuxBootFailed;
}
}
// Read the boot sector
if (!LinuxReadBootSector(LinuxKernel))
{
goto LinuxBootFailed;
}
// Read the setup sector
if (!LinuxReadSetupSector(LinuxKernel))
{
goto LinuxBootFailed;
}
// Calc kernel size
LinuxKernelSize = FsGetFileSize(LinuxKernel) - (512 + SetupSectorSize);
// Get the file size
LinuxInitrdSize = FsGetFileSize(LinuxInitrdFile);
// Read the kernel
if (!LinuxReadKernel(LinuxKernel))
{
goto LinuxBootFailed;
}
// Read the initrd (if necessary)
if (LinuxHasInitrd)
{
if (!LinuxReadInitrd(LinuxInitrdFile))
{
goto LinuxBootFailed;
}
}
// If the default root device is set to FLOPPY (0000h), change to /dev/fd0 (0200h)
if (LinuxBootSector->RootDevice == 0x0000)
{
LinuxBootSector->RootDevice = 0x0200;
}
if (LinuxSetupSector->Version >= 0x0202)
{
LinuxSetupSector->CommandLinePointer = 0x99000;
}
else
{
LinuxBootSector->CommandLineMagic = LINUX_COMMAND_LINE_MAGIC;
LinuxBootSector->CommandLineOffset = 0x9000;
}
if (NewStyleLinuxKernel)
{
LinuxSetupSector->TypeOfLoader = LINUX_LOADER_TYPE_FREELOADER;
}
else
{
LinuxSetupSector->LoadFlags = 0;
}
RtlCopyMemory((PVOID)0x90000, LinuxBootSector, 512);
RtlCopyMemory((PVOID)0x90200, LinuxSetupSector, SetupSectorSize);
RtlCopyMemory((PVOID)0x99000, LinuxCommandLine, LinuxCommandLineSize);
UiUnInitialize("Booting Linux...");
DiskStopFloppyMotor();
if (LinuxSetupSector->LoadFlags & LINUX_FLAG_LOAD_HIGH)
{
BootNewLinuxKernel();
}
else
{
BootOldLinuxKernel(LinuxKernelSize);
}
LinuxBootFailed:
if (LinuxKernel != NULL)
{
FsCloseFile(LinuxKernel);
}
if (LinuxInitrdFile != NULL)
{
FsCloseFile(LinuxInitrdFile);
}
if (LinuxBootSector != NULL)
{
MmFreeMemory(LinuxBootSector);
}
if (LinuxSetupSector != NULL)
{
MmFreeMemory(LinuxSetupSector);
}
if (LinuxKernelLoadAddress != NULL)
{
MmFreeMemory(LinuxKernelLoadAddress);
}
if (LinuxInitrdLoadAddress != NULL)
{
MmFreeMemory(LinuxInitrdLoadAddress);
}
LinuxBootSector = NULL;
LinuxSetupSector = NULL;
LinuxKernelLoadAddress = NULL;
LinuxInitrdLoadAddress = NULL;
SetupSectorSize = 0;
NewStyleLinuxKernel = FALSE;
LinuxKernelSize = 0;
LinuxHasInitrd = FALSE;
strcpy(LinuxCommandLine, "");
LinuxCommandLineSize = 0;
}
BOOL LinuxParseIniSection(PUCHAR OperatingSystemName)
{
UCHAR SettingName[260];
UCHAR SettingValue[260];
U32 SectionId;
// Find all the message box settings and run them
UiShowMessageBoxesInSection(OperatingSystemName);
// Try to open the operating system section in the .ini file
if (!IniOpenSection(OperatingSystemName, &SectionId))
{
sprintf(SettingName, "Section [%s] not found in freeldr.ini.\n", OperatingSystemName);
UiMessageBox(SettingName);
return FALSE;
}
if (!IniReadSettingByName(SectionId, "BootDrive", SettingValue, 260))
{
UiMessageBox("Boot drive not specified for selected OS!");
return FALSE;
}
BootDrive = DriveMapGetBiosDriveNumber(SettingValue);
BootPartition = 0;
if (IniReadSettingByName(SectionId, "BootPartition", SettingValue, 260))
{
BootPartition = atoi(SettingValue);
}
// Get the kernel name
if (!IniReadSettingByName(SectionId, "Kernel", LinuxKernelName, 260))
{
UiMessageBox("Linux kernel filename not specified for selected OS!");
return FALSE;
}
// Get the initrd name
if (IniReadSettingByName(SectionId, "Initrd", LinuxInitrdName, 260))
{
LinuxHasInitrd = TRUE;
}
// Get the command line
if (IniReadSettingByName(SectionId, "CommandLine", LinuxCommandLine, 260))
{
RemoveQuotes(LinuxCommandLine);
LinuxCommandLineSize = strlen(LinuxCommandLine) + 1;
}
return TRUE;
}
BOOL LinuxReadBootSector(PFILE LinuxKernelFile)
{
// Allocate memory for boot sector
LinuxBootSector = (PLINUX_BOOTSECTOR)MmAllocateMemory(512);
if (LinuxBootSector == NULL)
{
return FALSE;
}
// Read linux boot sector
FsSetFilePointer(LinuxKernelFile, 0);
if (!FsReadFile(LinuxKernelFile, 512, NULL, LinuxBootSector))
{
return FALSE;
}
// Check for validity
if (LinuxBootSector->BootFlag != LINUX_BOOT_SECTOR_MAGIC)
{
UiMessageBox("Invalid boot sector magic (0xaa55)");
return FALSE;
}
DbgDumpBuffer(DPRINT_LINUX, LinuxBootSector, 512);
DbgPrint((DPRINT_LINUX, "SetupSectors: %d\n", LinuxBootSector->SetupSectors));
DbgPrint((DPRINT_LINUX, "RootFlags: 0x%x\n", LinuxBootSector->RootFlags));
DbgPrint((DPRINT_LINUX, "SystemSize: 0x%x\n", LinuxBootSector->SystemSize));
DbgPrint((DPRINT_LINUX, "SwapDevice: 0x%x\n", LinuxBootSector->SwapDevice));
DbgPrint((DPRINT_LINUX, "RamSize: 0x%x\n", LinuxBootSector->RamSize));
DbgPrint((DPRINT_LINUX, "VideoMode: 0x%x\n", LinuxBootSector->VideoMode));
DbgPrint((DPRINT_LINUX, "RootDevice: 0x%x\n", LinuxBootSector->RootDevice));
DbgPrint((DPRINT_LINUX, "BootFlag: 0x%x\n", LinuxBootSector->BootFlag));
return TRUE;
}
BOOL LinuxReadSetupSector(PFILE LinuxKernelFile)
{
U8 TempLinuxSetupSector[512];
LinuxSetupSector = (PLINUX_SETUPSECTOR)TempLinuxSetupSector;
// Read first linux setup sector
FsSetFilePointer(LinuxKernelFile, 512);
if (!FsReadFile(LinuxKernelFile, 512, NULL, TempLinuxSetupSector))
{
return FALSE;
}
// Check the kernel version
if (!LinuxCheckKernelVersion())
{
return FALSE;
}
if (NewStyleLinuxKernel)
{
SetupSectorSize = 512 * LinuxBootSector->SetupSectors;
}
else
{
SetupSectorSize = 4 * 512; // Always 4 setup sectors
}
// Allocate memory for setup sectors
LinuxSetupSector = (PLINUX_SETUPSECTOR)MmAllocateMemory(SetupSectorSize);
if (LinuxSetupSector == NULL)
{
return FALSE;
}
// Copy over first setup sector
RtlCopyMemory(LinuxSetupSector, TempLinuxSetupSector, 512);
// Read in the rest of the linux setup sectors
FsSetFilePointer(LinuxKernelFile, 1024);
if (!FsReadFile(LinuxKernelFile, SetupSectorSize - 512, NULL, ((PVOID)LinuxSetupSector) + 512))
{
return FALSE;
}
DbgDumpBuffer(DPRINT_LINUX, LinuxSetupSector, SetupSectorSize);
DbgPrint((DPRINT_LINUX, "SetupHeaderSignature: 0x%x (HdrS)\n", LinuxSetupSector->SetupHeaderSignature));
DbgPrint((DPRINT_LINUX, "Version: 0x%x\n", LinuxSetupSector->Version));
DbgPrint((DPRINT_LINUX, "RealModeSwitch: 0x%x\n", LinuxSetupSector->RealModeSwitch));
DbgPrint((DPRINT_LINUX, "SetupSeg: 0x%x\n", LinuxSetupSector->SetupSeg));
DbgPrint((DPRINT_LINUX, "StartSystemSeg: 0x%x\n", LinuxSetupSector->StartSystemSeg));
DbgPrint((DPRINT_LINUX, "KernelVersion: 0x%x\n", LinuxSetupSector->KernelVersion));
DbgPrint((DPRINT_LINUX, "TypeOfLoader: 0x%x\n", LinuxSetupSector->TypeOfLoader));
DbgPrint((DPRINT_LINUX, "LoadFlags: 0x%x\n", LinuxSetupSector->LoadFlags));
DbgPrint((DPRINT_LINUX, "SetupMoveSize: 0x%x\n", LinuxSetupSector->SetupMoveSize));
DbgPrint((DPRINT_LINUX, "Code32Start: 0x%x\n", LinuxSetupSector->Code32Start));
DbgPrint((DPRINT_LINUX, "RamdiskAddress: 0x%x\n", LinuxSetupSector->RamdiskAddress));
DbgPrint((DPRINT_LINUX, "RamdiskSize: 0x%x\n", LinuxSetupSector->RamdiskSize));
DbgPrint((DPRINT_LINUX, "BootSectKludgeOffset: 0x%x\n", LinuxSetupSector->BootSectKludgeOffset));
DbgPrint((DPRINT_LINUX, "BootSectKludgeSegment: 0x%x\n", LinuxSetupSector->BootSectKludgeSegment));
DbgPrint((DPRINT_LINUX, "HeapEnd: 0x%x\n", LinuxSetupSector->HeapEnd));
return TRUE;
}
BOOL LinuxReadKernel(PFILE LinuxKernelFile)
{
U32 BytesLoaded;
UCHAR StatusText[260];
PVOID LoadAddress;
sprintf(StatusText, "Loading %s", LinuxKernelName);
UiDrawStatusText(StatusText);
// Allocate memory for Linux kernel
LinuxKernelLoadAddress = MmAllocateMemoryAtAddress(LinuxKernelSize, (PVOID)LINUX_KERNEL_LOAD_ADDRESS);
if (LinuxKernelLoadAddress != (PVOID)LINUX_KERNEL_LOAD_ADDRESS)
{
return FALSE;
}
LoadAddress = LinuxKernelLoadAddress;
// Read linux kernel to 0x100000 (1mb)
FsSetFilePointer(LinuxKernelFile, 512 + SetupSectorSize);
for (BytesLoaded=0; BytesLoaded<LinuxKernelSize; )
{
if (!FsReadFile(LinuxKernelFile, LINUX_READ_CHUNK_SIZE, NULL, LoadAddress))
{
return FALSE;
}
BytesLoaded += LINUX_READ_CHUNK_SIZE;
LoadAddress += LINUX_READ_CHUNK_SIZE;
UiDrawProgressBarCenter(BytesLoaded, LinuxKernelSize + LinuxInitrdSize, LinuxBootDescription);
}
return TRUE;
}
BOOL LinuxCheckKernelVersion(VOID)
{
// Just assume old kernel until we find otherwise
NewStyleLinuxKernel = FALSE;
// Check for new style setup header
if (LinuxSetupSector->SetupHeaderSignature != LINUX_SETUP_HEADER_ID)
{
NewStyleLinuxKernel = FALSE;
}
// Check for version below 2.0
else if (LinuxSetupSector->Version < 0x0200)
{
NewStyleLinuxKernel = FALSE;
}
// Check for version 2.0
else if (LinuxSetupSector->Version == 0x0200)
{
NewStyleLinuxKernel = TRUE;
}
// Check for version 2.01+
else if (LinuxSetupSector->Version >= 0x0201)
{
NewStyleLinuxKernel = TRUE;
LinuxSetupSector->HeapEnd = 0x9000;
LinuxSetupSector->LoadFlags |= LINUX_FLAG_CAN_USE_HEAP;
}
if ((NewStyleLinuxKernel == FALSE) && (LinuxHasInitrd == TRUE))
{
UiMessageBox("Error: Cannot load a ramdisk (initrd) with an old kernel image.");
return FALSE;
}
return TRUE;
}
BOOL LinuxReadInitrd(PFILE LinuxInitrdFile)
{
U32 BytesLoaded;
UCHAR StatusText[260];
sprintf(StatusText, "Loading %s", LinuxInitrdName);
UiDrawStatusText(StatusText);
// Allocate memory for the ramdisk
//LinuxInitrdLoadAddress = MmAllocateMemory(LinuxInitrdSize);
// Try to align it at the next MB boundary after the kernel
//LinuxInitrdLoadAddress = MmAllocateMemoryAtAddress(LinuxInitrdSize, (PVOID)ROUND_UP((LINUX_KERNEL_LOAD_ADDRESS + LinuxKernelSize), 0x100000));
if (LinuxSetupSector->Version <= 0x0202)
{
LinuxInitrdLoadAddress = MmAllocateHighestMemoryBelowAddress(LinuxInitrdSize, (PVOID)LINUX_MAX_INITRD_ADDRESS);
}
else
{
LinuxInitrdLoadAddress = MmAllocateHighestMemoryBelowAddress(LinuxInitrdSize, (PVOID)LinuxSetupSector->InitrdAddressMax);
}
if (LinuxInitrdLoadAddress == NULL)
{
return FALSE;
}
// Set the information in the setup struct
LinuxSetupSector->RamdiskAddress = (U32)LinuxInitrdLoadAddress;
LinuxSetupSector->RamdiskSize = LinuxInitrdSize;
DbgPrint((DPRINT_LINUX, "RamdiskAddress: 0x%x\n", LinuxSetupSector->RamdiskAddress));
DbgPrint((DPRINT_LINUX, "RamdiskSize: 0x%x\n", LinuxSetupSector->RamdiskSize));
if (LinuxSetupSector->Version >= 0x0203)
{
DbgPrint((DPRINT_LINUX, "InitrdAddressMax: 0x%x\n", LinuxSetupSector->InitrdAddressMax));
}
// Read in the ramdisk
for (BytesLoaded=0; BytesLoaded<LinuxInitrdSize; )
{
if (!FsReadFile(LinuxInitrdFile, LINUX_READ_CHUNK_SIZE, NULL, (PVOID)LinuxInitrdLoadAddress))
{
return FALSE;
}
BytesLoaded += LINUX_READ_CHUNK_SIZE;
LinuxInitrdLoadAddress += LINUX_READ_CHUNK_SIZE;
UiDrawProgressBarCenter(BytesLoaded + LinuxKernelSize, LinuxInitrdSize + LinuxKernelSize, LinuxBootDescription);
}
return TRUE;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,301 +0,0 @@
/* Header file for libgcc2.c. */
/* Copyright (C) 2000, 2001
Free Software Foundation, Inc.
This file is part of GCC.
GCC 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, or (at your option) any later
version.
GCC 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 GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
#ifndef GCC_LIBGCC2_H
#define GCC_LIBGCC2_H
extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void __clear_cache (char *, char *);
extern void __eprintf (const char *, const char *, unsigned int, const char *)
__attribute__ ((__noreturn__));
struct bb;
extern void __bb_exit_func (void);
extern void __bb_init_func (struct bb *);
extern void __bb_fork_func (void);
extern void __bb_trace_func (void);
extern void __bb_trace_ret (void);
extern void __bb_init_trace_func (struct bb *, unsigned long);
struct exception_descriptor;
extern short int __get_eh_table_language (struct exception_descriptor *);
extern short int __get_eh_table_version (struct exception_descriptor *);
/* Permit the tm.h file to select the endianness to use just for this
file. This is used when the endianness is determined when the
compiler is run. */
#ifndef LIBGCC2_WORDS_BIG_ENDIAN
#define LIBGCC2_WORDS_BIG_ENDIAN WORDS_BIG_ENDIAN
#endif
#ifndef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
#endif
#ifndef MIN_UNITS_PER_WORD
#define MIN_UNITS_PER_WORD UNITS_PER_WORD
#endif
/* In the first part of this file, we are interfacing to calls generated
by the compiler itself. These calls pass values into these routines
which have very specific modes (rather than very specific types), and
these compiler-generated calls also expect any return values to have
very specific modes (rather than very specific types). Thus, we need
to avoid using regular C language type names in this part of the file
because the sizes for those types can be configured to be anything.
Instead we use the following special type names. */
typedef int QItype __attribute__ ((mode (QI)));
typedef unsigned int UQItype __attribute__ ((mode (QI)));
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));
#if MIN_UNITS_PER_WORD > 1
/* These typedefs are usually forbidden on dsp's with UNITS_PER_WORD 1 */
typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
#if LONG_LONG_TYPE_SIZE > 32
/* These typedefs are usually forbidden on archs with UNITS_PER_WORD 2 */
typedef int DItype __attribute__ ((mode (DI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
#if MIN_UNITS_PER_WORD > 4
/* These typedefs are usually forbidden on archs with UNITS_PER_WORD 4 */
typedef int TItype __attribute__ ((mode (TI)));
typedef unsigned int UTItype __attribute__ ((mode (TI)));
#endif
#endif
#endif
#if BITS_PER_UNIT == 8
typedef float SFtype __attribute__ ((mode (SF)));
typedef float DFtype __attribute__ ((mode (DF)));
#if LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96
typedef float XFtype __attribute__ ((mode (XF)));
#endif
#if LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128
typedef float TFtype __attribute__ ((mode (TF)));
#endif
#else /* BITS_PER_UNIT != 8 */
/* On dsp's there are usually qf/hf/tqf modes used instead of the above.
For now we don't support them in libgcc2.c. */
#undef L_fixdfdi
#undef L_fixsfdi
#undef L_fixtfdi
#undef L_fixunsdfdi
#undef L_fixunsdfsi
#undef L_fixunssfdi
#undef L_fixunssfsi
#undef L_fixunstfdi
#undef L_fixunsxfdi
#undef L_fixunsxfsi
#undef L_fixxfdi
#undef L_floatdidf
#undef L_floatdisf
#undef L_floatditf
#undef L_floatdixf
#endif /* BITS_PER_UNIT != 8 */
typedef int word_type __attribute__ ((mode (__word__)));
/* Make sure that we don't accidentally use any normal C language built-in
type names in the first part of this file. Instead we want to use *only*
the type names defined above. The following macro definitions insure
that if we *do* accidentally use some normal C language built-in type name,
we will get a syntax error. */
#define char bogus_type
#define short bogus_type
#define int bogus_type
#define long bogus_type
#define unsigned bogus_type
#define float bogus_type
#define double bogus_type
#if MIN_UNITS_PER_WORD > 4
#define W_TYPE_SIZE (8 * BITS_PER_UNIT)
#define Wtype DItype
#define UWtype UDItype
#define HWtype DItype
#define UHWtype UDItype
#define DWtype TItype
#define UDWtype UTItype
#define __NW(a,b) __ ## a ## di ## b
#define __NDW(a,b) __ ## a ## ti ## b
#elif MIN_UNITS_PER_WORD > 2 \
|| (MIN_UNITS_PER_WORD > 1 && LONG_LONG_TYPE_SIZE > 32)
#define W_TYPE_SIZE (4 * BITS_PER_UNIT)
#define Wtype SItype
#define UWtype USItype
#define HWtype SItype
#define UHWtype USItype
#define DWtype DItype
#define UDWtype UDItype
#define __NW(a,b) __ ## a ## si ## b
#define __NDW(a,b) __ ## a ## di ## b
#elif MIN_UNITS_PER_WORD > 1
#define W_TYPE_SIZE (2 * BITS_PER_UNIT)
#define Wtype HItype
#define UWtype UHItype
#define HWtype HItype
#define UHWtype UHItype
#define DWtype SItype
#define UDWtype USItype
#define __NW(a,b) __ ## a ## hi ## b
#define __NDW(a,b) __ ## a ## si ## b
#else
#define W_TYPE_SIZE BITS_PER_UNIT
#define Wtype QItype
#define UWtype UQItype
#define HWtype QItype
#define UHWtype UQItype
#define DWtype HItype
#define UDWtype UHItype
#define __NW(a,b) __ ## a ## qi ## b
#define __NDW(a,b) __ ## a ## hi ## b
#endif
#define Wtype_MAX ((Wtype)(((UWtype)1 << (W_TYPE_SIZE - 1)) - 1))
#define Wtype_MIN (- Wtype_MAX - 1)
#define __muldi3 __NDW(mul,3)
#define __divdi3 __NDW(div,3)
#define __udivdi3 __NDW(udiv,3)
#define __moddi3 __NDW(mod,3)
#define __umoddi3 __NDW(umod,3)
#define __negdi2 __NDW(neg,2)
#define __lshrdi3 __NDW(lshr,3)
#define __ashldi3 __NDW(ashl,3)
#define __ashrdi3 __NDW(ashr,3)
#define __ffsdi2 __NDW(ffs,2)
#define __cmpdi2 __NDW(cmp,2)
#define __ucmpdi2 __NDW(ucmp,2)
#define __udivmoddi4 __NDW(udivmod,4)
#define __fixunstfDI __NDW(fixunstf,)
#define __fixtfdi __NDW(fixtf,)
#define __fixunsxfDI __NDW(fixunsxf,)
#define __fixxfdi __NDW(fixxf,)
#define __fixunsdfDI __NDW(fixunsdf,)
#define __fixdfdi __NDW(fixdf,)
#define __fixunssfDI __NDW(fixunssf,)
#define __fixsfdi __NDW(fixsf,)
#define __floatdixf __NDW(float,xf)
#define __floatditf __NDW(float,tf)
#define __floatdidf __NDW(float,df)
#define __floatdisf __NDW(float,sf)
#define __fixunsxfSI __NW(fixunsxf,)
#define __fixunstfSI __NW(fixunstf,)
#define __fixunsdfSI __NW(fixunsdf,)
#define __fixunssfSI __NW(fixunssf,)
extern DWtype __muldi3 (DWtype, DWtype);
extern DWtype __divdi3 (DWtype, DWtype);
extern UDWtype __udivdi3 (UDWtype, UDWtype);
extern UDWtype __umoddi3 (UDWtype, UDWtype);
extern DWtype __moddi3 (DWtype, DWtype);
/* __udivmoddi4 is static inline when building other libgcc2 portions. */
#if (!defined (L_udivdi3) && !defined (L_divdi3) && \
!defined (L_umoddi3) && !defined (L_moddi3))
extern UDWtype __udivmoddi4 (UDWtype, UDWtype, UDWtype *);
#endif
/* __negdi2 is static inline when building other libgcc2 portions. */
#if !defined(L_divdi3) && !defined(L_moddi3)
extern DWtype __negdi2 (DWtype);
#endif
extern DWtype __lshrdi3 (DWtype, word_type);
extern DWtype __ashldi3 (DWtype, word_type);
extern DWtype __ashrdi3 (DWtype, word_type);
extern DWtype __ffsdi2 (DWtype);
/* __udiv_w_sdiv is static inline when building other libgcc2 portions. */
#if (!defined(L_udivdi3) && !defined(L_divdi3) && \
!defined(L_umoddi3) && !defined(L_moddi3))
extern UWtype __udiv_w_sdiv (UWtype *, UWtype, UWtype, UWtype);
#endif
extern word_type __cmpdi2 (DWtype, DWtype);
extern word_type __ucmpdi2 (DWtype, DWtype);
extern Wtype __absvsi2 (Wtype);
extern DWtype __absvdi2 (DWtype);
extern Wtype __addvsi3 (Wtype, Wtype);
extern DWtype __addvdi3 (DWtype, DWtype);
extern Wtype __subvsi3 (Wtype, Wtype);
extern DWtype __subvdi3 (DWtype, DWtype);
extern Wtype __mulvsi3 (Wtype, Wtype);
extern DWtype __mulvdi3 (DWtype, DWtype);
extern Wtype __negvsi2 (Wtype);
extern DWtype __negvdi2 (DWtype);
#if BITS_PER_UNIT == 8
extern DWtype __fixdfdi (DFtype);
extern DWtype __fixsfdi (SFtype);
extern DFtype __floatdidf (DWtype);
extern SFtype __floatdisf (DWtype);
extern UWtype __fixunsdfSI (DFtype);
extern UWtype __fixunssfSI (SFtype);
extern DWtype __fixunsdfDI (DFtype);
extern DWtype __fixunssfDI (SFtype);
#if LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96
extern DWtype __fixxfdi (XFtype);
extern DWtype __fixunsxfDI (XFtype);
extern XFtype __floatdixf (DWtype);
extern UWtype __fixunsxfSI (XFtype);
#endif
#if LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128
extern DWtype __fixunstfDI (TFtype);
extern DWtype __fixtfdi (TFtype);
extern TFtype __floatditf (DWtype);
#endif
#endif /* BITS_PER_UNIT == 8 */
/* DWstructs are pairs of Wtype values in the order determined by
LIBGCC2_WORDS_BIG_ENDIAN. */
#if LIBGCC2_WORDS_BIG_ENDIAN
struct DWstruct {Wtype high, low;};
#else
struct DWstruct {Wtype low, high;};
#endif
/* We need this union to unpack/pack DImode values, since we don't have
any arithmetic yet. Incoming DImode parameters are stored into the
`ll' field, and the unpacked result is read from the struct `s'. */
typedef union
{
struct DWstruct s;
DWtype ll;
} DWunion;
#include "longlong.h"
#endif /* ! GCC_LIBGCC2_H */

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