Compare commits

...

1124 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
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
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
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
9849 changed files with 71145 additions and 3101829 deletions

View File

@@ -2,19 +2,22 @@
#ifndef __WIN32K_BITMAPS_H
#define __WIN32K_BITMAPS_H
#include <win32k/dc.h>
#include <win32k/gdiobj.h>
/* GDI logical bitmap object */
typedef struct _BITMAPOBJ
{
SURFOBJ SurfObj;
FLONG flHooks;
FLONG flFlags;
SIZE dimension; /* For SetBitmapDimension(), do NOT use
to get width/height of bitmap, use
bitmap.bmWidth/bitmap.bmHeight for
that */
SIZE dimension; /* For SetBitmapDimension(), do NOT use
to get width/height of bitmap, use
bitmap.bmWidth/bitmap.bmHeight for
that */
#ifdef NTOS_MODE_USER
PVOID BitsLock;
#else
PFAST_MUTEX BitsLock; /* You need to hold this lock before you touch
the actual bits in the bitmap */
#endif
/* For device-independent bitmaps: */
DIBSECTION *dib;
@@ -29,10 +32,16 @@ typedef struct _BITMAPOBJ
((HBITMAP) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_BITMAP))
#define BITMAPOBJ_FreeBitmap(hBMObj) \
GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_BITMAP)
#define BITMAPOBJ_LockBitmap(hBMObj) GDIOBJ_LockObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_BITMAP)
#define BITMAPOBJ_UnlockBitmap(hBMObj) GDIOBJ_UnlockObj((HGDIOBJ) hBMObj)
/* NOTE: Use shared locks! */
#define BITMAPOBJ_LockBitmap(hBMObj) (PBITMAPOBJ)EngLockSurface((HSURF)hBMObj)
#define BITMAPOBJ_UnlockBitmap(pBMObj) EngUnlockSurface(&pBMObj->SurfObj)
BOOL INTERNAL_CALL BITMAP_Cleanup(PVOID ObjectBody);
BOOL INTERNAL_CALL BITMAPOBJ_InitBitsLock(BITMAPOBJ *pBMObj);
#define BITMAPOBJ_LockBitmapBits(pBMObj) ExAcquireFastMutex((pBMObj)->BitsLock)
#define BITMAPOBJ_UnlockBitmapBits(pBMObj) ExReleaseFastMutex((pBMObj)->BitsLock)
void INTERNAL_CALL BITMAPOBJ_CleanupBitsLock(BITMAPOBJ *pBMObj);
INT FASTCALL BITMAPOBJ_GetWidthBytes (INT bmWidth, INT bpp);
HBITMAP FASTCALL BITMAPOBJ_CopyBitmap (HBITMAP hBitmap);
INT FASTCALL DIB_GetDIBWidthBytes (INT width, INT depth);

112
inc_w32k/brush.h Normal file
View File

@@ -0,0 +1,112 @@
#ifndef __WIN32K_BRUSH_H
#define __WIN32K_BRUSH_H
#include <win32k/gdiobj.h>
/* Internal interface */
#define NB_HATCH_STYLES 6
/*
* The layout of this structure is taken from "Windows Graphics Programming"
* book written by Feng Yuan.
*
* DON'T MODIFY THIS STRUCTURE UNLESS REALLY NEEDED AND EVEN THEN ASK ON
* A MAILING LIST FIRST.
*/
typedef struct
{
ULONG AttrFlags;
COLORREF lbColor;
} BRUSHATTR, *PBRUSHATTR;
typedef struct
{
ULONG ulStyle;
HBITMAP hbmPattern;
HANDLE hbmClient;
ULONG flAttrs;
ULONG ulBrushUnique;
BRUSHATTR *pBrushAttr;
BRUSHATTR BrushAttr;
POINT ptOrigin;
ULONG bCacheGrabbed;
COLORREF crBack;
COLORREF crFore;
ULONG ulPalTime;
ULONG ulSurfTime;
PVOID ulRealization;
ULONG Unknown4C[3];
POINT ptPenWidth;
ULONG ulPenStyle;
DWORD *pStyle;
ULONG dwStyleCount;
ULONG Unknown6C;
} GDIBRUSHOBJ, *PGDIBRUSHOBJ;
typedef struct
{
BRUSHOBJ BrushObject;
PGDIBRUSHOBJ GdiBrushObject;
XLATEOBJ *XlateObject;
} GDIBRUSHINST, *PGDIBRUSHINST;
/* GDI Brush Attributes */
#define GDIBRUSH_NEED_BK_CLR 0x0002 /* Background color is needed */
#define GDIBRUSH_DITHER_OK 0x0004 /* Allow color dithering */
#define GDIBRUSH_IS_SOLID 0x0010 /* Solid brush */
#define GDIBRUSH_IS_HATCH 0x0020 /* Hatch brush */
#define GDIBRUSH_IS_BITMAP 0x0040 /* DDB pattern brush */
#define GDIBRUSH_IS_DIB 0x0080 /* DIB pattern brush */
#define GDIBRUSH_IS_NULL 0x0100 /* Null/hollow brush */
#define GDIBRUSH_IS_GLOBAL 0x0200 /* Stock objects */
#define GDIBRUSH_IS_PEN 0x0400 /* Pen */
#define GDIBRUSH_IS_OLDSTYLEPEN 0x0800 /* Geometric pen */
#define GDIBRUSH_IS_MASKING 0x8000 /* Pattern bitmap is used as transparent mask (?) */
#define GDIBRUSH_CACHED_IS_SOLID 0x80000000
#define BRUSHOBJ_AllocBrush() ((HBRUSH) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_BRUSH))
#define BRUSHOBJ_FreeBrush(hBrush) GDIOBJ_FreeObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH)
#define BRUSHOBJ_LockBrush(hBrush) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH))
#define BRUSHOBJ_UnlockBrush(pBrush) GDIOBJ_UnlockObjByPtr(pBrush)
BOOL INTERNAL_CALL BRUSH_Cleanup(PVOID ObjectBody);
HBRUSH STDCALL
NtGdiCreateBrushIndirect(
CONST LOGBRUSH *LogBrush);
HBRUSH STDCALL
NtGdiCreateDIBBrush(
CONST BITMAPINFO *BitmapInfoAndData,
UINT ColorSpec,
UINT BitmapInfoSize,
CONST VOID *PackedDIB);
HBRUSH STDCALL
NtGdiCreateHatchBrush(
INT Style,
COLORREF Color);
HBRUSH STDCALL
NtGdiCreatePatternBrush(
HBITMAP hBitmap);
HBRUSH STDCALL
NtGdiCreateSolidBrush(
COLORREF Color);
BOOL STDCALL
NtGdiFixBrushOrgEx(
VOID);
BOOL STDCALL
NtGdiSetBrushOrgEx(
HDC hDC,
INT XOrg,
INT YOrg,
LPPOINT Point);
#endif

23
inc_w32k/caret.h Normal file
View File

@@ -0,0 +1,23 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: include/win32k/caret.h
* PURPOSE: GDI32/Win32k Caret interface
* PROGRAMMER:
*
*/
#ifndef WIN32K_CARET_H_INCLUDED
#define WIN32K_CARET_H_INCLUDED
typedef struct _THRDCARETINFO
{
HWND hWnd;
HBITMAP Bitmap;
POINT Pos;
SIZE Size;
BYTE Visible;
BYTE Showing;
} THRDCARETINFO, *PTHRDCARETINFO;
#endif /* WIN32K_FONT_H_INCLUDED */

View File

@@ -1,8 +1,6 @@
#ifndef __WIN32K_COORD_H
#define __WIN32K_COORD_H
#include "dc.h"
BOOL
STDCALL
NtGdiCombineTransform (

95
inc_w32k/cursoricon.h Normal file
View File

@@ -0,0 +1,95 @@
#ifndef __WIN32K_CURSORICON_H
#define __WIN32K_CURSORICON_H
#include <pshpack1.h>
/* Structures for reading icon/cursor files and resources */
// Structures for reading icon files and resources
typedef struct _ICONIMAGE
{
BITMAPINFOHEADER icHeader; // DIB header
RGBQUAD icColors[1]; // Color table
BYTE icXOR[1]; // DIB bits for XOR mask
BYTE icAND[1]; // DIB bits for AND mask
} ICONIMAGE, *LPICONIMAGE;
typedef struct _CURSORIMAGE
{
BITMAPINFOHEADER icHeader; // DIB header
RGBQUAD icColors[1]; // Color table
BYTE icXOR[1]; // DIB bits for XOR mask
BYTE icAND[1]; // DIB bits for AND mask
} CURSORIMAGE, *LPCURSORIMAGE;
typedef struct
{
BYTE bWidth;
BYTE bHeight;
BYTE bColorCount;
BYTE bReserved;
} ICONRESDIR;
typedef struct
{
WORD wWidth;
WORD wHeight;
} CURSORRESDIR;
typedef struct
{
WORD wPlanes; // Number of Color Planes in the XOR image
WORD wBitCount; // Bits per pixel in the XOR image
} ICONDIR;
typedef struct
{
WORD wXHotspot; // Number of Color Planes in the XOR image
WORD wYHotspot; // Bits per pixel in the XOR image
} CURSORDIR;
typedef struct
{
BYTE bWidth; // Width, in pixels, of the icon image
BYTE bHeight; // Height, in pixels, of the icon image
BYTE bColorCount; // Number of colors in image (0 if >=8bpp)
BYTE bReserved; // Reserved ( must be 0)
union
{ ICONDIR icon;
CURSORDIR cursor;
} Info;
DWORD dwBytesInRes; // How many bytes in this resource?
DWORD dwImageOffset; // Where in the file is this image?
} CURSORICONDIRENTRY;
typedef struct
{
WORD idReserved; // Reserved (must be 0)
WORD idType; // Resource Type (1 for icons, 0 for cursors)
WORD idCount; // How many images?
CURSORICONDIRENTRY idEntries[1]; // An entry for idCount number of images
} CURSORICONDIR;
typedef struct
{
union
{ ICONRESDIR icon;
CURSORRESDIR cursor;
} ResInfo;
WORD wPlanes; // Color Planes
WORD wBitCount; // Bits per pixel
DWORD dwBytesInRes; // how many bytes in this resource?
WORD nID; // the ID
} GRPCURSORICONDIRENTRY;
typedef struct
{
WORD idReserved; // Reserved (must be 0)
WORD idType; // Resource type (1 for icons)
WORD idCount; // How many images?
GRPCURSORICONDIRENTRY idEntries[1]; // The entries for each image
} GRPCURSORICONDIR;
#include <poppack.h>
#endif

View File

@@ -2,11 +2,6 @@
#ifndef __WIN32K_DC_H
#define __WIN32K_DC_H
#include <windows.h>
#include <win32k/driver.h>
#include <win32k/gdiobj.h>
#include <win32k/path.h>
typedef struct _WIN_DC_INFO
{
int flags;
@@ -135,7 +130,11 @@ typedef struct
GDIINFO GDIInfo;
DEVINFO DevInfo;
DRIVER_FUNCTIONS DriverFunctions;
#ifdef NTOS_MODE_USER
PVOID VideoFileObject;
#else
PFILE_OBJECT VideoFileObject;
#endif
BOOLEAN PreparedDriver;
ULONG DisplayNumber;
@@ -149,10 +148,12 @@ typedef struct
/* Internal functions */
#ifndef NTOS_MODE_USER
#define DC_LockDc(hDC) \
((PDC) GDIOBJ_LockObj ((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC))
#define DC_UnlockDc(hDC) \
GDIOBJ_UnlockObj ((HGDIOBJ) hDC)
#define DC_UnlockDc(pDC) \
GDIOBJ_UnlockObjByPtr (pDC)
HDC FASTCALL RetrieveDisplayHDC(VOID);
HDC FASTCALL DC_AllocDC(PUNICODE_STRING Driver);
@@ -167,6 +168,8 @@ VOID FASTCALL DC_SetOwnership(HDC DC, PEPROCESS Owner);
VOID FASTCALL DC_UpdateXforms(PDC dc);
BOOL FASTCALL DC_InvertXform(const XFORM *xformSrc, XFORM *xformDest);
#endif
/* User entry points */
BOOL STDCALL NtGdiCancelDC(HDC hDC);
@@ -186,11 +189,6 @@ INT STDCALL NtGdiDrawEscape(HDC hDC,
INT cbInput,
LPCSTR lpszInData);
#ifndef __USE_W32API
/* FIXME: this typedef should go somewhere else... */
typedef VOID (*GOBJENUMPROC)(PVOID, LPARAM);
#endif
INT STDCALL NtGdiEnumObjects(HDC hDC,
INT ObjectType,
GOBJENUMPROC ObjectFunc,

View File

@@ -175,6 +175,8 @@ typedef struct _DRIVER_FUNCTIONS
PGD_ALPHABLEND AlphaBlend;
} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
#ifndef NTOS_MODE_USER
BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver);
PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name);
PFILE_OBJECT DRIVER_FindMPDriver(ULONG DisplayNumber);
@@ -186,3 +188,5 @@ INT DRIVER_UnreferenceDriver (LPCWSTR Name);
#endif
#endif

25
inc_w32k/font.h Normal file
View File

@@ -0,0 +1,25 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: include/win32k/font.h
* PURPOSE: GDI32/Win32k font interface
* PROGRAMMER:
*
*/
#ifndef WIN32K_FONT_H_INCLUDED
#define WIN32K_FONT_H_INCLUDED
typedef struct tagFONTFAMILYINFO
{
ENUMLOGFONTEXW EnumLogFontEx;
NEWTEXTMETRICEXW NewTextMetricEx;
DWORD FontType;
} FONTFAMILYINFO, *PFONTFAMILYINFO;
int STDCALL NtGdiGetFontFamilyInfo(HDC Dc, LPLOGFONTW LogFont, PFONTFAMILYINFO Info, DWORD Size);
BOOL STDCALL NtGdiTranslateCharsetInfo(PDWORD Src, LPCHARSETINFO CSI, DWORD Flags);
DWORD STDCALL NtGdiGetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
#endif /* WIN32K_FONT_H_INCLUDED */

View File

@@ -6,8 +6,6 @@
#ifndef __WIN32K_GDIOBJ_H
#define __WIN32K_GDIOBJ_H
#include <ddk/ntddk.h>
/* base address where the handle table is mapped to */
#define GDI_HANDLE_TABLE_BASE_ADDRESS (0x400000)
@@ -60,14 +58,20 @@
typedef PVOID PGDIOBJ;
#ifndef NTOS_MODE_USER
typedef BOOL (INTERNAL_CALL *GDICLEANUPPROC)(PVOID ObjectBody);
#endif
/*!
* GDI object header. This is a part of any GDI object
*/
typedef struct _GDIOBJHDR
{
#ifdef NTOS_MODE_USER
PVOID LockingThread;
#else
PETHREAD LockingThread; /* only assigned if a thread is holding the lock! */
#endif
ULONG Locks;
#ifdef GDI_DEBUG
const char* createdfile;
@@ -77,10 +81,13 @@ typedef struct _GDIOBJHDR
#endif
} GDIOBJHDR, *PGDIOBJHDR;
#ifndef NTOS_MODE_USER
BOOL INTERNAL_CALL GDIOBJ_OwnedByCurrentProcess(HGDIOBJ ObjectHandle);
void INTERNAL_CALL GDIOBJ_SetOwnership(HGDIOBJ ObjectHandle, PEPROCESS Owner);
void INTERNAL_CALL GDIOBJ_CopyOwnership(HGDIOBJ CopyFrom, HGDIOBJ CopyTo);
BOOL INTERNAL_CALL GDIOBJ_ConvertToStockObj(HGDIOBJ *hObj);
VOID INTERNAL_CALL GDIOBJ_UnlockObjByPtr(PGDIOBJ Object);
#define GDIOBJ_GetObjectType(Handle) \
GDI_HANDLE_GET_TYPE(Handle)
@@ -91,26 +98,28 @@ BOOL INTERNAL_CALL GDIOBJ_ConvertToStockObj(HGDIOBJ *hObj);
#define GDIOBJ_AllocObj(ty) GDIOBJ_AllocObjDbg(__FILE__,__LINE__,ty)
#define GDIOBJ_FreeObj(obj,ty) GDIOBJ_FreeObjDbg(__FILE__,__LINE__,obj,ty)
#define GDIOBJ_LockObj(obj,ty) GDIOBJ_LockObjDbg(__FILE__,__LINE__,obj,ty)
#define GDIOBJ_UnlockObj(obj) GDIOBJ_UnlockObjDbg(__FILE__,__LINE__,obj)
#define GDIOBJ_ShareLockObj(obj,ty) GDIOBJ_ShareLockObjDbg(__FILE__,__LINE__,obj,ty)
HGDIOBJ INTERNAL_CALL GDIOBJ_AllocObjDbg(const char* file, int line, ULONG ObjectType);
BOOL INTERNAL_CALL GDIOBJ_FreeObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);
PGDIOBJ INTERNAL_CALL GDIOBJ_LockObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);
BOOL INTERNAL_CALL GDIOBJ_UnlockObjDbg (const char* file, int line, HGDIOBJ hObj);
PGDIOBJ INTERNAL_CALL GDIOBJ_ShareLockObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);
#else /* !GDI_DEBUG */
HGDIOBJ INTERNAL_CALL GDIOBJ_AllocObj(ULONG ObjectType);
BOOL INTERNAL_CALL GDIOBJ_FreeObj (HGDIOBJ hObj, DWORD ObjectType);
PGDIOBJ INTERNAL_CALL GDIOBJ_LockObj (HGDIOBJ hObj, DWORD ObjectType);
BOOL INTERNAL_CALL GDIOBJ_UnlockObj (HGDIOBJ hObj);
PGDIOBJ INTERNAL_CALL GDIOBJ_ShareLockObj (HGDIOBJ hObj, DWORD ObjectType);
#endif /* GDI_DEBUG */
PVOID INTERNAL_CALL GDI_MapHandleTable(PEPROCESS Process);
#endif
#define GDIOBJFLAG_DEFAULT (0x0)
#define GDIOBJFLAG_IGNOREPID (0x1)
#define GDIOBJFLAG_IGNORELOCK (0x2)
PVOID INTERNAL_CALL GDI_MapHandleTable(PEPROCESS Process);
#endif

View File

@@ -5,14 +5,18 @@
#define INTERNAL_CALL STDCALL
#endif
#include <win32k/bitmaps.h>
#include <win32k/brush.h>
#include <win32k/callback.h>
#include <win32k/caret.h>
#include <win32k/cliprgn.h>
#include <win32k/color.h>
#include <win32k/coord.h>
#include <win32k/cursoricon.h>
#include <win32k/path.h>
#include <win32k/driver.h>
#include <win32k/dc.h>
#include <win32k/debug.h>
#include <win32k/coord.h>
#include <win32k/bitmaps.h>
//#include <win32k/debug.h>
#include <win32k/fillshap.h>
#include <win32k/font.h>
#include <win32k/icm.h>
@@ -22,7 +26,6 @@
#include <win32k/misc.h>
#include <win32k/ntuser.h>
#include <win32k/paint.h>
#include <win32k/path.h>
#include <win32k/pen.h>
#include <win32k/print.h>
#include <win32k/region.h>

250
inc_w32k/menu.h Normal file
View File

@@ -0,0 +1,250 @@
/* $Id$ */
#ifndef WIN32K_MENU_H_INCLUDED
#define WIN32K_MENU_H_INCLUDED
typedef struct tagROSMENUINFO {
/* ----------- MENUINFO ----------- */
DWORD cbSize;
DWORD fMask;
DWORD dwStyle;
UINT cyMax;
HBRUSH hbrBack;
DWORD dwContextHelpID;
ULONG_PTR dwMenuData;
/* ----------- Extra ----------- */
HMENU Self; /* Handle of this menu */
WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
UINT FocusedItem; /* Currently focused item */
UINT MenuItemCount; /* Number of items in the menu */
HWND Wnd; /* Window containing the menu */
WORD Width; /* Width of the whole menu */
WORD Height; /* Height of the whole menu */
HWND WndOwner; /* window receiving the messages for ownerdraw */
BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
} ROSMENUINFO, *PROSMENUINFO;
/* (other FocusedItem values give the position of the focused item) */
#define NO_SELECTED_ITEM 0xffff
typedef struct tagROSMENUITEMINFO
{
/* ----------- MENUITEMINFOW ----------- */
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
DWORD dwItemData;
LPWSTR dwTypeData;
UINT cch;
HBITMAP hbmpItem;
/* ----------- Extra ----------- */
RECT Rect; /* Item area (relative to menu window) */
UINT XTab; /* X position of text after Tab */
} ROSMENUITEMINFO, *PROSMENUITEMINFO;
typedef struct _SETMENUITEMRECT
{
UINT uItem;
BOOL fByPosition;
RECT rcRect;
} SETMENUITEMRECT, *PSETMENUITEMRECT;
DWORD
STDCALL
NtUserBuildMenuItemList(
HMENU hMenu,
PVOID Buffer,
ULONG nBufSize,
DWORD Reserved);
DWORD
STDCALL
NtUserCheckMenuItem(
HMENU hmenu,
UINT uIDCheckItem,
UINT uCheck);
HMENU
STDCALL
NtUserCreateMenu(BOOL PopupMenu);
BOOL
STDCALL
NtUserDeleteMenu(
HMENU hMenu,
UINT uPosition,
UINT uFlags);
BOOL
STDCALL
NtUserDestroyMenu(
HMENU hMenu);
DWORD
STDCALL
NtUserDrawMenuBarTemp(
HWND hWnd,
HDC hDC,
PRECT hRect,
HMENU hMenu,
HFONT hFont);
UINT
STDCALL
NtUserEnableMenuItem(
HMENU hMenu,
UINT uIDEnableItem,
UINT uEnable);
DWORD
STDCALL
NtUserInsertMenuItem(
HMENU hMenu,
UINT uItem,
BOOL fByPosition,
LPCMENUITEMINFOW lpmii);
BOOL
STDCALL
NtUserEndMenu(VOID);
UINT STDCALL
NtUserGetMenuDefaultItem(
HMENU hMenu,
UINT fByPos,
UINT gmdiFlags);
BOOL
STDCALL
NtUserGetMenuBarInfo(
HWND hwnd,
LONG idObject,
LONG idItem,
PMENUBARINFO pmbi);
UINT
STDCALL
NtUserGetMenuIndex(
HMENU hMenu,
UINT wID);
BOOL
STDCALL
NtUserGetMenuItemRect(
HWND hWnd,
HMENU hMenu,
UINT uItem,
LPRECT lprcItem);
HMENU
STDCALL
NtUserGetSystemMenu(
HWND hWnd,
BOOL bRevert);
BOOL
STDCALL
NtUserHiliteMenuItem(
HWND hwnd,
HMENU hmenu,
UINT uItemHilite,
UINT uHilite);
BOOL
STDCALL
NtUserMenuInfo(
HMENU hmenu,
PROSMENUINFO lpmi,
BOOL fsog
);
int
STDCALL
NtUserMenuItemFromPoint(
HWND hWnd,
HMENU hMenu,
DWORD X,
DWORD Y);
BOOL
STDCALL
NtUserMenuItemInfo(
HMENU hMenu,
UINT uItem,
BOOL fByPosition,
PROSMENUITEMINFO lpmii,
BOOL fsog
);
BOOL
STDCALL
NtUserRemoveMenu(
HMENU hMenu,
UINT uPosition,
UINT uFlags);
BOOL
STDCALL
NtUserSetMenu(
HWND hWnd,
HMENU hMenu,
BOOL bRepaint);
BOOL
STDCALL
NtUserSetMenuContextHelpId(
HMENU hmenu,
DWORD dwContextHelpId);
BOOL
STDCALL
NtUserSetMenuDefaultItem(
HMENU hMenu,
UINT uItem,
UINT fByPos);
BOOL
STDCALL
NtUserSetMenuFlagRtoL(
HMENU hMenu);
BOOL
STDCALL
NtUserSetSystemMenu(
HWND hWnd,
HMENU hMenu);
DWORD
STDCALL
NtUserThunkedMenuInfo(
HMENU hMenu,
LPCMENUINFO lpcmi);
DWORD
STDCALL
NtUserThunkedMenuItemInfo(
HMENU hMenu,
UINT uItem,
BOOL fByPosition,
BOOL bInsert,
LPMENUITEMINFOW lpmii,
PUNICODE_STRING lpszCaption);
BOOL
STDCALL
NtUserTrackPopupMenuEx(
HMENU hmenu,
UINT fuFlags,
int x,
int y,
HWND hwnd,
LPTPMPARAMS lptpm);
#endif /* WIN32K_MENU_H_INCLUDED */

View File

@@ -6,8 +6,5 @@
#define W32PF_MANUALGUICHECK (0x0002)
#define W32PF_CREATEDWINORDC (0x0004)
VOID
FASTCALL
DestroyThreadWindows(struct _ETHREAD *Thread);
#endif /* __WIN32K_MISC_H */

View File

@@ -2,10 +2,6 @@
#ifndef __WIN32K_NTDDRAW_H
#define __WIN32K_NTDDRAW_H
#include <windows.h>
#include <ddk/ddrawint.h>
#include <ddk/d3dnthal.h>
#ifdef __cplusplus
extern "C" {
#endif

1837
inc_w32k/ntuser.h Normal file

File diff suppressed because it is too large Load Diff

43
inc_w32k/paint.h Normal file
View File

@@ -0,0 +1,43 @@
#ifndef __WIN32K_PAINT_H
#define __WIN32K_PAINT_H
typedef struct _PATRECT {
RECT r;
HBRUSH hBrush;
} PATRECT, * PPATRECT;
BOOL STDCALL
NtGdiPatBlt(
HDC hDC,
INT XLeft,
INT YLeft,
INT Width,
INT Height,
DWORD ROP);
BOOL STDCALL
NtGdiPolyPatBlt(
HDC hDC,
DWORD dwRop,
PPATRECT pRects,
INT cRects,
ULONG Reserved);
BOOL STDCALL
NtGdiPatBlt(
HDC hDC,
INT XLeft,
INT YLeft,
INT Width,
INT Height,
DWORD ROP);
BOOL STDCALL NtGdiGdiFlush (VOID);
DWORD STDCALL NtGdiGdiGetBatchLimit (VOID);
DWORD STDCALL NtGdiGdiSetBatchLimit (DWORD Limit);
UINT STDCALL NtGdiGetBoundsRect (HDC hDC, LPRECT Bounds, UINT Flags);
COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);
UINT STDCALL NtGdiSetBoundsRect (HDC hDC, CONST PRECT Bounds, UINT Flags);
#endif

View File

@@ -9,7 +9,7 @@
#define PENOBJ_AllocPen() ((HPEN)GDIOBJ_AllocObj(GDI_OBJECT_TYPE_PEN))
#define PENOBJ_FreePen(hBMObj) GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_PEN)
#define PENOBJ_LockPen(hBMObj) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_PEN))
#define PENOBJ_UnlockPen(hBMObj) GDIOBJ_UnlockObj((HGDIOBJ) hBMObj)
#define PENOBJ_UnlockPen(pPenObj) GDIOBJ_UnlockObjByPtr(pPenObj)
HPEN STDCALL
NtGdiCreatePen(

View File

@@ -13,7 +13,7 @@ typedef struct _ROSRGNDATA {
#define RGNDATA_FreeRgn(hRgn) GDIOBJ_FreeObj((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION)
#define RGNDATA_LockRgn(hRgn) ((PROSRGNDATA)GDIOBJ_LockObj((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION))
#define RGNDATA_UnlockRgn(hRgn) GDIOBJ_UnlockObj((HGDIOBJ)hRgn)
#define RGNDATA_UnlockRgn(pRgn) GDIOBJ_UnlockObjByPtr(pRgn)
HRGN FASTCALL RGNDATA_AllocRgn(INT n);
BOOL INTERNAL_CALL RGNDATA_Cleanup(PVOID ObjectBody);

View File

@@ -16,7 +16,7 @@ typedef struct
((HFONT) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_FONT))
#define TEXTOBJ_FreeText(hBMObj) GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT)
#define TEXTOBJ_LockText(hBMObj) ((PTEXTOBJ) GDIOBJ_LockObj ((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT))
#define TEXTOBJ_UnlockText(hBMObj) GDIOBJ_UnlockObj ((HGDIOBJ) hBMObj)
#define TEXTOBJ_UnlockText(pBMObj) GDIOBJ_UnlockObjByPtr (pBMObj)
NTSTATUS FASTCALL TextIntRealizeFont(HFONT FontHandle);
NTSTATUS FASTCALL TextIntCreateFontIndirect(CONST LPLOGFONTW lf, HFONT *NewFont);

View File

@@ -1,2 +0,0 @@
*.ncb
*.opt

View File

@@ -1,102 +0,0 @@
ReactOS Microsoft Visual C/C++ 6.0 IDE files
This is the Microsoft Visual C/C++ 6.0 project workspace and project
files for a few of the ReactOS binaries. They are ONLY included as a
convenience, and is NOT to be considered supported, or even correct.
If you build a binary that misbehaves using these files, you _might_
be able to get in touch with someone to fix the problem
BUT DO NOT COUNT ON IT!
The only supported build system for ReactOS is the one documented at
www.reactos.com.
------------------------------------------------------------------
Please, before you start playing with this, read the whole of
this document.
Before you can use these project files, you _need_ to make a successful
build using the normal ReactOS build system. There are some vital files
that needs to be created, and currently only the normal build creates these.
Once that is done, you need to generate the kernel-mode service "table"
file by running nmake (from this point on you can use the "native"
MSVC tools) from the directory MSVC6\iface\native.
This will generate MSVC6\ntoskrnl\nt_zw_msvc.c, an MSVC compatible inline-
assembler version of the file otherwise known as reactos\ntoskrnl\nt\zw.c.
Next, go to def_converter and run nmake. This builds the tool to convert
the .def files for HAL and the kernel from the MinGW format to something
more suitable for the MSVC linker, and also generates these .def files
to their target location [1].
Now you should be set to fire up the IDE and load the project workspace.
When building HAL or the kernel for the first time using these
project files, just doing it the "normal" way _will not work_.
The linker will complain about missing library, and it will fail.
The reason for this is a circular dependency between these two binaries.
Currently you need to follow these procedures [2]:
- Select hal as your active project.
- Select Project/Settings.
- Select the Link tab.
- Select "General" from the Category drop-list.
- Temporary remove the explicit linker library
(e.g. "..\ntoskrnl\Debug\ntoskrnl.lib")
- Select "Customize" from the Category drop-list.
- Check the "Force file output" checkbox.
- Build hal.
- Uncheck "Force file output".
- Put back the removed import library.
- Now build the ntoskrnl. Do NOT try to build hal again until
you have sucessfully built the kernel, and the linker has
generated its import library!
- Now you can "Clean" hal, and build it as usual.
If everything worked as expected, you should now have both ntoskrnl.exe
and hal.dll freshly built.
LIMITATIONS/DEVIATIONS (from the MinGW build):
- Since there can only be one resource file/project, the kernel had
to choose between either its version resource, or its message table.
The messages won.
- Do NOT open the .rc files in the IDE's resource editor. Chances are
it will assume ownership over them and fill them up with at least
conditional compilation macros.
NOTES:
[1] This is needed due to differences in handling of decorated names
in .def files. While both MinGW GCC and MSVC generates decorated names
in the same way for at least plain cdecl and stdcall C functions, the
MSVC linker expects names in the .def file to be either
- an exact match of the decorated name, in case it exports the
decorated name from the linked binary, or
- just the name without any decoration, in case it exports just the
name of the symbol from the linked binary (to allow for e.g.
GetProcAddress using the undecorated name) - but keeps the decorated
names in the import library to handle and "redirect" linker requests
for those decorated symbols, and point them to the undercorated names
in the binary exporting them - so that a binary A, at link time,
importing symbols from binary B of the form "_name@0" will resolve
that symbol from the import library, but the linked binary A will
reference it as just "name".
The ROS .def files contains a mix, "half-decorated", where the leading
undescores are missing, but the trailing "@n" (for stdcall functions)
are present.
[2] Theoretically it could be possible to use a hal.lib generated by the
following procedure, removing the need for the manual steps above.
cd MSVC6\hal\Debug
lib \def:..\..\..\reactos\hal\hal\hal.def
but I have not tested it, and take no responsibility for its effectiveness.

View File

@@ -1,41 +0,0 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "hal"=.\hal\hal.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "ntoskrnl"=.\ntoskrnl\ntoskrnl.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -1,64 +0,0 @@
// Uses hard-coded filenames to require a minimum of input.
// You think this file should be licensed? OK then,
// Copyright (C) 2004, Mike Nordell. Use as you whish.
#include <fstream>
#include <string>
#include <algorithm>
const char szSrc1[] = "..\\..\\reactos\\ntoskrnl\\ntoskrnl.def";
const char szDst1[] = "..\\ntoskrnl\\ntoskrnl.def";
const char szSrc2[] = "..\\..\\reactos\\hal\\hal\\hal.def";
const char szDst2[] = "..\\hal\\hal.def";
enum File
{
Kernel,
HAL
};
std::string do_kernel_replacements(std::string& s)
{
std::string s2 = s.c_str(); // to fixup size after replacements
if (s2 == "ExAllocateFromPagedLookasideList") {
s2 += "=ExiAllocateFromPagedLookasideList";
} else
if (s2 == "ExFreeToPagedLookasideList") {
s2 += "=ExiFreeToPagedLookasideList";
} else
if (s2 == "MmLockPagableImageSection") {
s2 += "=MmLockPagableDataSection";
}
return s2;
}
void convert_def(const char* szSrc, const char* szDst, File file)
{
using namespace std;
ifstream in(szSrc);
ofstream out(szDst);
string s;
while (getline(in, s).good()) {
if (!s.size()) {
continue;
}
if (s[0] != ';') { // only replace non-comment lines
if (s[0] == '@') {
s.erase(0, 1);
}
replace(s.begin(), s.end(), '@', '\0');
if (file == Kernel) {
s = do_kernel_replacements(s);
}
}
out << s << endl;
}
}
int main()
{
convert_def(szSrc1, szDst1, Kernel);
convert_def(szSrc2, szDst2, HAL);
return 0;
}

View File

@@ -1,19 +0,0 @@
# $Id: makefile,v 1.1 2004/02/06 08:21:54 fireball Exp $
#
# ReactOS Operating System - .def converter for HAL and the kernel
#
DEF_HAL = ..\hal\hal.def
DEF_KRNL = ..\ntoskrnl\ntoskrnl.def
CPPFLAGS = /GX
all: def_converter.exe $(DEF_HAL) $(DEF_KRNL)
$(DEF_HAL) : ..\..\reactos\hal\hal\hal.def
def_converter.exe
$(DEF_KRNL) : ..\..\reactos\ntoskrnl\ntoskrnl.def
def_converter.exe
def_converter.exe : def_converter.cpp

View File

@@ -1,3 +0,0 @@
Debug
Release
hal.def

View File

@@ -1,243 +0,0 @@
# Microsoft Developer Studio Project File - Name="hal" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=hal - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "hal.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "hal.mak" CFG="hal - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "hal - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "hal - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "hal - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /Ot /Og /Os /Ob1 /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "i386" /D "__NTHAL__" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x41d /d "NDEBUG"
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /dll /machine:I386
# ADD LINK32 ..\ntoskrnl\Release\ntoskrnl.lib /nologo /dll /machine:I386 /fixed:no
# SUBTRACT LINK32 /pdb:none /force
!ELSEIF "$(CFG)" == "hal - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HAL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Z7 /Od /I "..\..\reactos\include" /I "..\..\reactos\hal\halx86\include" /I "..\..\reactos\ntoskrnl\include" /D "_WINDOWS" /D "__NTHAL__" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "i386" /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x41d /d "_DEBUG"
# ADD RSC /l 0x417 /i "..\..\reactos\include" /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ..\ntoskrnl\Debug\ntoskrnl.lib /nologo /dll /incremental:no /debug /machine:I386 /pdbtype:sept /fixed:no
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "hal - Win32 Release"
# Name "hal - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\adapter.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\beep.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\bus.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\display.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\dma.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\drive.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\enum.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\fmutex.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\fmutex_tmn.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halinit.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halx86mp.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\halx86up.rc
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\irql.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\isa.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\kdbg.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mca.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\misc.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mp.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\mpsirql.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\pci.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\portio.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\pwroff.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\reboot.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\spinlock.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\spinlock_tmn.c
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\sysbus.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\sysinfo.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\time.c
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\timer.c
# End Source File
# End Group
# Begin Group "include"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\bus.h
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\hal.h
# End Source File
# Begin Source File
SOURCE=..\..\reactos\hal\halx86\include\mps.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Source File
SOURCE=.\hal.def
# End Source File
# End Target
# End Project

View File

@@ -1,392 +0,0 @@
/* $Id: genntdll.c,v 1.1 2004/02/06 08:21:56 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS version of ntdll
* FILE: iface/native/genntdll.c
* PURPOSE: Generates the system call stubs in ntdll
* CHANGE HISTORY: Added a '@xx' to deal with stdcall [ Ariadne ]
* 19990616 (ea)
* Four arguments now required; 4th is the file
* for ntoskrnl ZwXXX functions (which are merely calls
* to twin NtXXX calls, via int 0x2e (x86).
* 19990617 (ea)
* Fixed a bug in function numbers in kernel ZwXXX stubs.
*
*/
/* INCLUDE ******************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define PARAMETERIZED_LIBS
/* #define VERBOSE */
#define INPUT_BUFFER_SIZE 255
/* FUNCTIONS ****************************************************************/
void write_syscall_stub(FILE* out, FILE* out3, char* name, char* name2,
char* nr_args, unsigned int sys_call_idx)
{
int i;
int nArgBytes = atoi(nr_args);
#ifdef PARAMETERIZED_LIBS
fprintf(out,"__asm__(\"\\n\\t.global _%s@%s\\n\\t\"\n",name,nr_args);
fprintf(out,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
fprintf(out,"\"_%s@%s:\\n\\t\"\n",name,nr_args);
fprintf(out,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
#else
fprintf(out,"__asm__(\"\\n\\t.global _%s\\n\\t\"\n",name);
fprintf(out,"\".global _%s\\n\\t\"\n",name2);
fprintf(out,"\"_%s:\\n\\t\"\n",name);
fprintf(out,"\"_%s:\\n\\t\"\n",name2);
#endif
fprintf(out,"\t\"pushl\t%%ebp\\n\\t\"\n");
fprintf(out,"\t\"movl\t%%esp, %%ebp\\n\\t\"\n");
fprintf(out,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx);
fprintf(out,"\t\"lea\t8(%%ebp),%%edx\\n\\t\"\n");
fprintf(out,"\t\"int\t$0x2E\\n\\t\"\n");
fprintf(out,"\t\"popl\t%%ebp\\n\\t\"\n");
fprintf(out,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
/*
* Now write the NTOSKRNL stub for the
* current system call. ZwXXX does NOT
* alias the corresponding NtXXX call.
*/
#if 0
fprintf(out3,"__asm__(\n");
fprintf(out3,"\".global _%s@%s\\n\\t\"\n",name2,nr_args);
fprintf(out3,"\"_%s@%s:\\n\\t\"\n",name2,nr_args);
fprintf(out3,"\t\"pushl\t%%ebp\\n\\t\"\n");
fprintf(out3,"\t\"movl\t%%esp, %%ebp\\n\\t\"\n");
fprintf(out3,"\t\"mov\t$%d,%%eax\\n\\t\"\n",sys_call_idx);
fprintf(out3,"\t\"lea\t8(%%ebp),%%edx\\n\\t\"\n");
fprintf(out3,"\t\"int\t$0x2E\\n\\t\"\n");
fprintf(out3,"\t\"popl\t%%ebp\\n\\t\"\n");
fprintf(out3,"\t\"ret\t$%s\\n\\t\");\n\n",nr_args);
#else
fprintf(out3,"__declspec(naked) __stdcall\n");
fprintf(out3,"%s(", name2); // make it emit callconv, reval and full signature too
for (i=0; i*4 < nArgBytes; ++i) {
fprintf(out3,"int dummy%d", i);
if (((i+1)*4) < nArgBytes) fprintf(out3,",");
}
fprintf(out3,")\n{\n");
fprintf(out3,"\t__asm {\n");
fprintf(out3,"\t\tpush\tebp\n");
fprintf(out3,"\t\tmov\tebp, esp\n");
fprintf(out3,"\t\tmov\teax,%d\n",sys_call_idx);
fprintf(out3,"\t\tlea\tedx, 8[ebp]\n");
fprintf(out3,"\t\tint\t0x2E\n");
fprintf(out3,"\t\tpop\tebp\n");
fprintf(out3,"\t\tret\t%s\n",nr_args);
fprintf(out3,"\t}\n");
fprintf(out3,"}\n\n");
#endif
}
int makeSystemServiceTable(FILE *in, FILE *out)
{
char line [INPUT_BUFFER_SIZE];
char *s;
char *name;
char *name2;
int sys_call_idx;
char *nr_args;
char *stmp;
/*
* Main SSDT Header
*/
fprintf(out,"// Machine generated, don't edit\n");
fprintf(out,"\n\n");
/*
* First we build the Main SSDT
*/
fprintf(out,"\n\n\n");
fprintf(out,"SSDT MainSSDT[] = {\n");
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
if (sys_call_idx > 0)
{
fprintf(out,",\n");
}
/*
* Now write the current system call's name
* in the service table.
*/
fprintf(out,"\t\t{ (ULONG)%s }",name);
}
}
/* Close the service table (C syntax) */
fprintf(out,"\n};\n");
/*
* Now we build the Main SSPT
*/
rewind(in);
fprintf(out,"\n\n\n");
fprintf(out,"SSPT MainSSPT[] = {\n");
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
if (sys_call_idx > 0)
{
fprintf(out,",\n");
}
/*
* Now write the current system call's ID
* in the service table along with its Parameters Size.
*/
fprintf(out,"\t\t{ %s }",nr_args);
}
}
/*
* Close the service table (C syntax)
*/
fprintf(out,"\n};\n");
/*
* We write some useful defines
*/
fprintf(out, "\n\n#define MIN_SYSCALL_NUMBER 0\n");
fprintf(out, "#define MAX_SYSCALL_NUMBER %d\n", sys_call_idx-1);
fprintf(out, "#define NUMBER_OF_SYSCALLS %d\n", sys_call_idx);
return(0);
}
int
process(
FILE * in,
FILE * out,
FILE * out2,
FILE * out3
)
{
char line [INPUT_BUFFER_SIZE];
char * s;
char * name; /* NtXXX name */
char * name2; /* ZwXXX name */
int sys_call_idx; /* NtXXX index number in the service table */
char * nr_args; /* stack_size / machine_word_size */
char * stmp;
/*
* NTDLL stubs file header
*/
fprintf(out,"// Machine generated, don't edit\n");
fprintf(out,"\n\n");
/*
* NTOSKRNL Zw functions stubs header
*/
fprintf(out3,"// Machine generated by genntdll, don't edit\n");
fprintf(out3,"\n\n");
/*
* Scan the database. DB is a text file; each line
* is a record, which contains data for one system
* function. Each record has three columns:
*
* NT_NAME (e.g. NtCreateProcess)
* ZW_NAME (e.g. ZwCreateProcess)
* STACK_SIZE (in machine words: for x[3456]86
* processors a machine word is 4 bytes)
*/
for ( /* First system call has index zero */
sys_call_idx = 0;
/* Go on until EOF or read zero bytes */
( (!feof(in))
&& (fgets(line, sizeof line, in) != NULL)
);
/* Next system call index */
sys_call_idx++
)
{
/*
* Remove, if present, the trailing CR.
* (os specific?)
*/
if ((s = (char *) strchr(line,'\r')) != NULL)
{
*s = '\0';
}
/*
* Skip comments (#) and empty lines.
*/
s = & line[0];
if ((*s) != '#' && (*s) != '\0')
{
/* Extract the NtXXX name */
name = (char *)strtok(s," \t");
/* Extract the ZwXXX name */
name2 = (char *)strtok(NULL," \t");
//value = strtok(NULL," \t");
/* Extract the stack size */
nr_args = (char *)strtok(NULL," \t");
/*
* Remove, if present, the trailing LF.
*/
if ((stmp = strchr(nr_args, '\n')) != NULL)
{
*stmp = '\0';
}
#ifdef VERBOSE
printf("%3d \"%s\"\n",sys_call_idx,name);
#endif
/*
* Write the NTDLL stub for the current
* system call: NtXXX and ZwXXX symbols
* are aliases.
*/
write_syscall_stub(out, out3, name, name2,
nr_args, sys_call_idx);
}
}
return(0);
}
void usage(char * argv0)
{
printf("Usage: %s sysfuncs.lst napi.c napi.h zw.c\n"
" sysfuncs.lst system functions database\n"
" napi.c NTDLL stubs\n"
" napi.h NTOSKRNL service table\n"
" zw.c NTOSKRNL Zw stubs\n",
argv0
);
}
int main(int argc, char* argv[])
{
FILE * in; /* System calls database */
FILE * out1; /* NTDLL stubs */
FILE * out2; /* SERVICE_TABLE */
FILE * out3; /* NTOSKRNL Zw stubs */
int ret;
if (argc != 5)
{
usage(argv[0]);
return(1);
}
in = fopen(argv[1],"rb");
if (in == NULL)
{
perror("Failed to open input file (system calls database)");
return(1);
}
out1 = fopen(argv[2],"wb");
if (out1 == NULL)
{
perror("Failed to open output file (NTDLL stubs)");
return(1);
}
out2 = fopen(argv[3],"wb");
if (out2 == NULL)
{
perror("Failed to open output file (NTOSKRNL service table)");
return(1);
}
out3 = fopen(argv[4],"wb");
if (out3 == NULL)
{
perror("Failed to open output file (NTOSKRNL Zw stubs)");
return(1);
}
ret = process(in,out1,out2,out3);
rewind(in);
ret = makeSystemServiceTable(in, out2);
fclose(in);
fclose(out1);
fclose(out2);
fclose(out3);
return(ret);
}

View File

@@ -1,22 +0,0 @@
# $Id: makefile,v 1.1 2004/02/06 08:21:56 fireball Exp $
#
# ReactOS Operating System - MSVC6 Zw functions stubs to call generator
#
SYSTEM_CALLS_DB = ..\..\..\reactos\iface\native\sysfuncs.lst
KERNEL_ZW_CALLS =..\..\ntoskrnl\nt_zw_msvc.c
all: genntdll.exe $(KERNEL_ZW_CALLS)
$(KERNEL_ZW_CALLS) : $(SYSTEM_CALLS_DB)
genntdll.exe $(SYSTEM_CALLS_DB) foo1 foo2 $(KERNEL_ZW_CALLS)
-@del foo1
-@del foo2
genntdll.exe : genntdll.c
clean:
-@del *.exe
-@del *.obj
-@del $(KERNEL_ZW_CALLS)

View File

@@ -1,4 +0,0 @@
Debug
Release
nt_zw_msvc.c
ntoskrnl.def

View File

@@ -1,167 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: ke_i386_bthread.c,v 1.1 2004/02/06 08:21:56 fireball Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/ke/i386/bthread.S
* PURPOSE: Trap handlers
* PROGRAMMER: David Welch (david.welch@seh.ox.ac.uk)
*/
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
/* Values for contextflags */
#define CONTEXT_i386 0x10000
#ifndef CONTEXT_CONTROL
#define CONTEXT_CONTROL (CONTEXT_i386 | 1)
#endif
#ifndef CONTEXT_INTEGER
#define CONTEXT_INTEGER (CONTEXT_i386 | 2)
#endif
#ifndef CONTEXT_SEGMENTS
#define CONTEXT_SEGMENTS (CONTEXT_i386 | 4)
#endif
#ifndef CONTEXT_FLOATING_POINT
#define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 8)
#endif
#ifndef CONTEXT_DEBUG_REGISTERS
#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10)
#endif
#ifndef CONTEXT_FULL
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
#endif
/* FUNCTIONS *****************************************************************/
void KeReturnFromSystemCallWithHook();
VOID PiBeforeBeginThread(CONTEXT c);
/*
*
*/
__declspec(naked)
VOID PsBeginThread(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
{
/*
* This isn't really a function, we are called as the return address
* of the context switch function
*/
/*
* Do the necessary prolog after a context switch
*/
__asm
{
call PiBeforeBeginThread
/*
* Call the actual start of the thread
*/
// We must NOT use the arguments by name. VC then uses EBP-relative
// addressing, and with an EBP of 0 you can imagine what happens.
mov ebx, 4[esp] // StartRoutine
mov eax, 8[esp] // StartContext
push eax
call ebx /* Call the start routine */
add esp, 4
/*
* Terminate the thread
*/
push eax
call PsTerminateSystemThread
add esp, 4
}
/* If that fails then bug check */
KeBugCheck(0);
/* And if that fails then loop */
for (;;)
; // forever
}
__declspec(naked)
VOID PsBeginThreadWithContextInternal(VOID)
{
/*
* This isn't really a function, we are called as the return
* address of a context switch
*/
/*
* Do the necessary prolog before the context switch
*/
__asm
{
call PiBeforeBeginThread
/*
* Load the context flags.
*/
pop ebx
/*
* Load the debugging registers
*/
test ebx, (CONTEXT_DEBUG_REGISTERS & ~CONTEXT_i386)
jz L1
pop eax __asm mov dr0, eax
pop eax __asm mov dr1, eax
pop eax __asm mov dr2, eax
pop eax __asm mov dr3, eax
pop eax __asm mov dr6, eax
pop eax __asm mov dr7, eax
jmp L3
L1:
add esp, 24
L3:
/*
* Load the floating point registers
*/
mov eax, HardwareMathSupport
test eax,eax
jz L2
test ebx, (CONTEXT_FLOATING_POINT & ~CONTEXT_i386)
jz L2
frstor [esp]
L2:
add esp, 112
/* Load the rest of the thread's user mode context. */
mov eax, 0
jmp KeReturnFromSystemCallWithHook
}
}

View File

@@ -1,114 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
// no arg-list, but asm doesn't care anyway
void KiInterruptDispatch();
#define DEFINE_INT_HANDLER(N) \
__declspec(naked) \
void irq_handler_##N() \
{ \
__asm pushad \
__asm push ds \
__asm push es \
__asm push fs \
__asm mov eax, 0xceafbeef \
__asm push eax \
__asm mov ax, KERNEL_DS \
__asm mov ds, ax \
__asm mov es, ax \
__asm mov ax, PCR_SELECTOR \
__asm mov fs, ax \
__asm push esp \
__asm push N \
__asm call KiInterruptDispatch \
__asm pop eax \
__asm pop eax \
__asm pop eax \
__asm pop fs \
__asm pop es \
__asm pop ds \
__asm popad \
__asm iretd
// NOTE: The inline assembler can't deal with having the final brace,
// ending the function, on the same line as an __asm, why there is
// none here and it MUST be added when using the macro!
DEFINE_INT_HANDLER(0)
}
DEFINE_INT_HANDLER(1)
}
DEFINE_INT_HANDLER(2)
}
DEFINE_INT_HANDLER(3)
}
DEFINE_INT_HANDLER(4)
}
DEFINE_INT_HANDLER(5)
}
DEFINE_INT_HANDLER(6)
}
DEFINE_INT_HANDLER(7)
}
DEFINE_INT_HANDLER(8)
}
DEFINE_INT_HANDLER(9)
}
DEFINE_INT_HANDLER(10)
}
DEFINE_INT_HANDLER(11)
}
DEFINE_INT_HANDLER(12)
}
DEFINE_INT_HANDLER(13)
}
DEFINE_INT_HANDLER(14)
}
DEFINE_INT_HANDLER(15)
}

View File

@@ -1,655 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2003 Mike Nordell
* Based on multiboot.S (no copyright note present), but so heavily
* modified that it bears close to no resemblance to the original work.
*
* MSVC compatible combination of plain C and inline assembler to:
* 1 Relocated all the sections in the kernel - something I feel the
* bootloader should have done, but multiboot being just a "raw image"
* loader, it unfortunately had to be done here - in-place.
* 2 Set up page directories and stuff.
* 3 Load IDT, GDT and turn on paging, making us execute at the intended
* target address (as if the image was PE-loaded and parsed into that addr.)
* 4 Call _main, and let the rest of the startup run...
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
//
// TODO: Fix the MP parts
//
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <pe.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ps.h>
#include <internal/ldr.h>
// some notes:
// The MSVC linker (by defult) emits no special .bss section, but uses the data
// section with a rawsize smaller than virtualsize. The "slack" is BSS.
//////////////////////////////////////////////////////////////////
// Some macros we need
// some stuff straight from freeloaders multiboot.h
#define MULTIBOOT_HEADER_MAGIC (0x1BADB002)
#define MULTIBOOT_HEADER_FLAGS (0x00010003)
#define TARGET_LOAD_ADDR 0x00200000
#define BASE_TO_PHYS_DIST (KERNEL_BASE - TARGET_LOAD_ADDR)
#define V2P(x) (x - BASE_TO_PHYS_DIST)
#ifdef MP
#define AP_MAGIC (0x12481020)
#endif /* MP */
void initialize_page_directory(void);
void* relocate_pointer_log_to_phys(const void* p)
{
// DON'T CALL this function until relocation of .data and/or .rdata,
// is completed - but still be sure that we have not yet enabled paging!
return (void*)((DWORD)p - BASE_TO_PHYS_DIST);
}
#ifdef _DEBUG
// Macro to emit one character to Bochs debug-port (0x9e).
// We need to do it this way, since at this point of the startup, obviously
// we have neither HAL nor DbgPrint support.
#define BOCHS_OUT_CHAR(c1) __asm push eax __asm push edx __asm mov dx, 0xe9 __asm mov al, c1 __asm out dx, al __asm pop edx __asm pop eax
void boch_out_hex_digit(unsigned char ch1)
{
if (ch1 <= 9) { ch1 += '0'; } else { ch1 += 'a' - 10; }
BOCHS_OUT_CHAR(ch1)
}
void bochs_dump_hex(DWORD p)
{
unsigned char ch3 = (unsigned char)((p >> 28) & 0x0f);
unsigned char cl3 = (unsigned char)((p >> 24) & 0x0f);
unsigned char ch2 = (unsigned char)((p >> 20) & 0x0f);
unsigned char cl2 = (unsigned char)((p >> 16) & 0x0f);
unsigned char ch1 = (unsigned char)((p >> 12) & 0x0f);
unsigned char cl1 = (unsigned char)((p >> 8) & 0x0f);
unsigned char ch0 = (unsigned char)((p >> 4) & 0x0f);
unsigned char cl0 = (unsigned char)((p >> 0) & 0x0f);
BOCHS_OUT_CHAR('0') BOCHS_OUT_CHAR('x')
boch_out_hex_digit(ch3);
boch_out_hex_digit(cl3);
boch_out_hex_digit(ch2);
boch_out_hex_digit(cl2);
boch_out_hex_digit(ch1);
boch_out_hex_digit(cl1);
boch_out_hex_digit(ch0);
boch_out_hex_digit(cl0);
BOCHS_OUT_CHAR('\n')
}
static void bochs_out_string(const char* s /* logical address! */)
{
s = relocate_pointer_log_to_phys(s);
__asm
{
pushad
mov dx, 0xe9
mov ebx, s
L1:
cmp byte ptr[ebx], 0
je end
mov al, [ebx]
out dx, al
inc ebx
jmp L1
end:
popad
}
}
#else
#define BOCHS_OUT_CHAR(c1)
#define bochs_dump_hex(VAL)
#define bochs_out_string(STR)
#endif // _DEBUG
//////////////////////////////////////////////////////////////////
typedef char kernel_page_t[4096];
// Use 4096 (pagesize) more bytes that actually needed for each *_holder,
// to be able to make sure that the other stuff is page aligned.
// No other way to do this portably... :-(
//
// TODO: Consider allocating just one large block of BSS memory here, align
// just the first pointer, and then get the other ones just as offsets from
// this (now-aligned) pointer. That way we could get away with wasting just
// one page of memory, instead of 4 (like 16KB would matter... but still)
static kernel_page_t* startup_pagedirectory_holder[1024 * 2];
static kernel_page_t* lowmem_pagetable_holder[1024 * 2];
static kernel_page_t* kernel_pagetable_holder[32*1024 + 1];
static __int32 kpcr_pagetable_holder[4096/4 * 2];
#ifdef MP
char apic_pagetable[4096];
#endif /* MP */
__int32 unmap_me[4096/4];
__int32 unmap_me2[4096/4];
__int32 unmap_me3[4096/4];
__int32 init_stack[3*4096/4];
int init_stack_top;
__int32 trap_stack[3*4096/4];
int trap_stack_top;
void _main();
// lie a bit about types - since C is basically typeless anyway, it
// doesn't really matter what type we say it is here...
extern int KiGdtDescriptor;
extern int KiIdtDescriptor;
/*
* This is called by the realmode loader, with protected mode
* enabled, paging disabled and the segment registers pointing
* a 4Gb, 32-bit segment starting at zero.
*
* EAX = Multiboot magic or application processor magic
*
* EBX = Points to a structure in lowmem with data from the
* loader
*/
#pragma intrinsic(memset)
// We need to implement this ourself, to be able to get to it by short call's
void our_memmove(void* pDest, const void* pSrc, DWORD size)
{
char* pD = (char*)pDest;
const char* pS = (char*)pSrc;
if (pDest < pSrc)
{
while (size--)
{
*pD++ = *pS++;
}
}
else if (pSrc < pDest)
{
while (size--)
{
pD[size] = pS[size];
}
}
}
void dummy_placeholder(void)
{
// NOTE: This function MUST be placed JUST AFTER MultibootStub in memory.
// Yes, it's BEFORE it in this file, but linkorder.txt fixes this for us.
}
// This one is needed, since the boot loader hasn't relocated us
__declspec(naked)
void MultibootStub()
{
__asm
{
jmp _multiboot_entry
// This sucks, I know...
#define EMIT_DWORD(x) __asm __emit ((x) >> 0) & 0xff __asm _emit ((x) >> 8) & 0xff __asm _emit ((x) >> 16) & 0xff __asm _emit ((x) >> 24) & 0xff
ALIGN 4
EMIT_DWORD(MULTIBOOT_HEADER_MAGIC)
EMIT_DWORD(MULTIBOOT_HEADER_FLAGS)
EMIT_DWORD(-(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS))
EMIT_DWORD(TARGET_LOAD_ADDR + 0x0400 + 0x04)
// Now just make something up, since there is no way we can know, beforehand,
// where any BSS data is...
EMIT_DWORD((TARGET_LOAD_ADDR))
EMIT_DWORD((TARGET_LOAD_ADDR + 1*1024*1024)) /* assume ntoskrnel.exe is < 1MB! */
EMIT_DWORD((TARGET_LOAD_ADDR + 2*1024*1024)) /* just to have something, let's say BSS is 1MB too */
/* This is *REALLY* ugly! If MultibootStub is *EVER* at */
/* any other offset, this will crash like crazy! */
/* 0x0400 is the file alignment of the binary (ntoskrnl.exe) */
EMIT_DWORD((TARGET_LOAD_ADDR + 0x0400)) // entry_addr
_multiboot_entry:
cld // just for good measure
}
{
/* Save the multiboot or application processor magic */
DWORD saved_eax;
DWORD saved_ebx;
__asm mov saved_eax, eax
__asm mov saved_ebx, ebx
// bochs_out_string("MultibootStub()\n");
// OK, time to relocate the brute-loaded image in-place...
// If we don't watch it, we will overwrite ourselves here - imagine
// the fireworks! :-) That's why the function dummy_placeholder()
// MUST be placed JUST JUST AFTER this function.
{
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)TARGET_LOAD_ADDR);
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
const int count = NtHeader->FileHeader.NumberOfSections;
int i;
Section += count - 1; // make it point to the last section
// NOTE: We MUST walk the sections "backwards".
for (i = count-1; i >= 0; --i, --Section)
{
DWORD dwSrc = TARGET_LOAD_ADDR + Section->PointerToRawData;
DWORD dwDst = TARGET_LOAD_ADDR + Section->VirtualAddress;
DWORD dwSiz = Section->SizeOfRawData;
const char* pEndThisFunc;
if (dwSrc == dwDst)
{
continue;
}
//bochs_out_string("MultibootStub: relocating section\n");
if (Section->Characteristics & IMAGE_SCN_MEM_EXECUTE)
{
// can't get a pointer to a label from plain C :-(
__asm mov pEndThisFunc, offset dummy_placeholder
pEndThisFunc -= BASE_TO_PHYS_DIST;
if (dwDst < (DWORD)pEndThisFunc)
{
// We must not move the code from under our feet!
// This can only happen in the code segment - the first segment
DWORD diff = (DWORD)pEndThisFunc - dwDst;
dwDst += diff;
dwSrc += diff;
dwSiz -= diff;
}
}
// obviously we must use memmove, since memory can overlap
our_memmove((void*)dwDst, (void*)dwSrc, dwSiz);
// While at it, we might as well zero any uninitialized data in the section...
if (Section->SizeOfRawData < Section->Misc.VirtualSize)
{
memset((char*)(Section->VirtualAddress + Section->SizeOfRawData + TARGET_LOAD_ADDR),
0,
Section->Misc.VirtualSize - Section->SizeOfRawData);
}
}
// Now all sections are relocated to their intended in-memory layout,
// but we are still running int the low TARGET_LOAD_ADDR memory.
{
// Time to jump to the real startup, the entry-point function.
// We must do this using assembler, since both eax and ebx are assumed
// to hold some magic values.
typedef VOID (STDCALL* pfn_t)(PPEB);
pfn_t pfn = (pfn_t)(NtHeader->OptionalHeader.AddressOfEntryPoint + TARGET_LOAD_ADDR);
#if 1
__asm mov eax, saved_eax
__asm mov ebx, saved_ebx
__asm mov ecx, pfn
__asm jmp ecx
#else
__asm mov ebx, saved_ebx
(*pfn)((PPEB)saved_eax);
#endif
}
}
}
}
// TMN: TODO: Convert this to the extent possible to plain C code
// Due to the "magic" above, we enter this function with all kernel sections
// properly relocated wrt. offsets from start-of-mem. But, we are still running
// without paging, meaning that the address that is to be KERNEL_BASE+xyz is
// currently still TARGET_LOAD_ADDR+xyz.
// We get aways with a few of the functions call here since they are near calls
// (PC-relative), but don't even _think_ about calling any other functions
// until we have turned on paging!
VOID STDCALL
NtProcessStartup(
IN PPEB Peb
)
{
DWORD saved_ebx;
DWORD saved_eax;
__asm mov saved_ebx, ebx
__asm mov saved_eax, eax
bochs_out_string("NtProcessStartup: Just entered\n");
#ifdef MP
if (saved_eax != AP_MAGIC)
{
#endif /* MP */
bochs_out_string("NtProcessStartup: Calling initialize_page_directory()\n");
initialize_page_directory(); // Initialize the page directory
bochs_out_string("NtProcessStartup: Page directory initialized\n");
#ifdef MP
__asm
{
/*
* Initialize the page table that maps the APIC register address space
*/
/*
* FIXME: APIC register address space can be non-standard so do the
* mapping later
*/
mov esi, V2P(apic_pagetable)
mov edi, 0
mov eax, 0xFEC0001B
mov [esi+edi], eax
mov edi, 0x800
mov eax, 0xFEE0001B
mov [esi+edi], eax
}
}
#endif /* MP */
{
bochs_out_string("NtProcessStartup: Enabling paging...\n");
/*
* Enable paging and set write protect
* bit 31: PG, bit 16: WP
*/
__asm mov eax, cr0
__asm or eax, 0x80010000
__asm mov cr0, eax
bochs_out_string("NtProcessStartup: Paging enabled!\n");
bochs_out_string("NtProcessStartup: But we're still at the \"low\" address\n");
/*
* Do an absolute jump because we now want to execute above KERNEL_BASE
*/
__asm mov eax, offset l2_
__asm jmp eax
}
l2_:
bochs_out_string("We have now left \"low\" memory, and is flying at an altitude of...\n");
bochs_out_string("OK, we're not flying, we're just executing above KERNEL_BASE\n");
/*
* Load the GDTR and IDTR with new tables located above
* KERNEL_BASE
*/
#ifdef _DEBUG
{
DWORD val = (DWORD)&KiGdtDescriptor;
bochs_out_string("&KiGdtDescriptor: ");
bochs_dump_hex(val);
val = (DWORD)&KiIdtDescriptor;
bochs_out_string("&KiIdtDescriptor: ");
bochs_dump_hex(val);
}
#endif
bochs_out_string("Loading GDT and IDT...\n");
/* FIXME: Application processors should have their own GDT/IDT */
__asm lgdt KiGdtDescriptor
__asm lidt KiIdtDescriptor
bochs_out_string("GDT and IDT loaded\n");
__asm
{
/*
* Reload the data segment registers
*/
mov eax, KERNEL_DS
mov ds, ax
mov es, ax
mov gs, ax
mov ss, ax
mov eax, 0
mov fs, ax
}
bochs_out_string("NtProcessStartup: segment registers loaded\n");
#ifdef MP
if (saved_eax == AP_MAGIC)
{
__asm
{
/*
* This is an application processor executing
*/
/*
* Initialize EFLAGS
*/
push 0
popfd
/*
* Call the application processor initialization code
*/
push 0
push offset l7_
push KERNEL_CS
push KiSystemStartup
retf
/*
* Catch illegal returns from KiSystemStartup
*/
l7_:
pop eax
}
KeBugCheck(0);
for (;;)
; /*forever */
}
#endif /* MP */
bochs_out_string("Loading fs with PCR_SELECTOR\n");
/* Load the PCR selector */
__asm mov eax, PCR_SELECTOR
__asm mov fs, ax
bochs_out_string("Loading esp with init_stack_top : "); bochs_dump_hex((DWORD)&init_stack_top);
bochs_out_string("Just for interest, init_stack is at: "); bochs_dump_hex((DWORD)init_stack);
bochs_out_string("Meaing the init_stack in bytes is : "); bochs_dump_hex((DWORD)&init_stack_top - (DWORD)init_stack);
/* Load the initial kernel stack */
__asm mov esp, offset init_stack_top
bochs_out_string("Loaded esp with init_stack_top\n");
/*
* Initialize EFLAGS
*/
__asm push 0
__asm popfd
bochs_out_string("Loaded eflags\n");
/*
* Call the main kernel initialization
*/
bochs_out_string("TMN: Calling _main...\n");
__asm
{
xor ebp,ebp
push ebx
push edx
push offset l5_
push KERNEL_CS
push offset _main
retf
/*
* Catch illegal returns from main, try bug checking the system,
* if that fails then loop forever.
*/
l5_:
pop eax
pop eax
} // end of __asm block
bochs_out_string("TMN: Back from _main ?! Let's crash!\n");
KeBugCheck(0);
for (;;)
; /*forever */
}
void initialize_page_directory(void)
{
/*
* Initialize the page directory
*/
// First convert the pointers from the virtual address the compiler generated
// code thinks we are at, to the currently active physical address we actually
// got loaded into by the loader. At this point we have been relocated, so
// that there is a 1:1 mapping between KERNEL_BASE+n and TARGET_LOAD_ADDR+n.
kernel_page_t** startup_pagedirectory = startup_pagedirectory_holder;
kernel_page_t** lowmem_pagetable = lowmem_pagetable_holder;
kernel_page_t** kernel_pagetable = kernel_pagetable_holder;
__int32* kpcr_pagetable = kpcr_pagetable_holder;
bochs_out_string("startup_pagedirectory before reloc: ");
bochs_dump_hex((DWORD)startup_pagedirectory);
startup_pagedirectory = (kernel_page_t**)relocate_pointer_log_to_phys(startup_pagedirectory);
lowmem_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(lowmem_pagetable);
kernel_pagetable = (kernel_page_t**)relocate_pointer_log_to_phys(kernel_pagetable);
kpcr_pagetable = (__int32*) relocate_pointer_log_to_phys(kpcr_pagetable);
bochs_out_string("startup_pagedirectory after reloc : ");
bochs_dump_hex((DWORD)startup_pagedirectory);
// Now align the pointers to PAGE_SIZE...
startup_pagedirectory = (kernel_page_t**)(((ULONG_PTR)startup_pagedirectory + 4095) & ~4095);
lowmem_pagetable = (kernel_page_t**)(((ULONG_PTR)lowmem_pagetable + 4095) & ~4095);
kernel_pagetable = (kernel_page_t**)(((ULONG_PTR)kernel_pagetable + 4095) & ~4095);
kpcr_pagetable = (__int32* ) (((ULONG_PTR)kpcr_pagetable + 4095) & ~4095);
#ifdef _DEBUG
bochs_out_string("startup_pagedirectory aligned : ");
bochs_dump_hex((DWORD)startup_pagedirectory);
#endif
// Ugly macros, I know...
#define DEST(PAGE) startup_pagedirectory[(PAGE) + 0xc00 / 4]
#define SRC(PAGE) (kernel_page_t*)((char*)kernel_pagetable + (PAGE)*4096 + 0x7)
startup_pagedirectory[0] = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
{
unsigned int i;
for (i=0; i<32; ++i)
{
DEST(i) = SRC(i);
}
}
DEST( 64) = (kernel_page_t*)((char*)lowmem_pagetable + 0x7);
DEST(192) = (kernel_page_t*)((char*)startup_pagedirectory + 0x7);
#ifdef MP
DEST(251) = (kernel_page_t*)((char*)apic_pagetable + 0x7);
#endif /* MP */
DEST(252) = (kernel_page_t*)((char*)kpcr_pagetable + 0x7);
{
unsigned int i;
/* Initialize the page table that maps low memory */
for (i=0; i<1024; ++i) {
lowmem_pagetable[i] = (kernel_page_t*)(i*4096 + 7);
}
/* Initialize the page table that maps kernel memory */
for (i=0; i<6144/4 /* 1536 pages = 6MB */; ++i) {
kernel_pagetable[i] = (kernel_page_t*)(i*4096 + TARGET_LOAD_ADDR + 0x7);
}
/* Initialize the page table that maps the initial KPCR (at FF000000) */
kpcr_pagetable[0] = 0x1007;
}
/*
* Set up the PDBR
*/
__asm mov eax, startup_pagedirectory
__asm mov cr3, eax
}

View File

@@ -1,110 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
void KeReturnFromSystemCall();
/*
* FUNCTION: KeStackSwitchAndRet
* PURPOSE: Switch to a new stack and return from the first frame on
* the new stack which was assumed to a stdcall function with
* 8 bytes of arguments and which saved edi, esi and ebx.
*/
__declspec(naked)
VOID STDCALL
KeStackSwitchAndRet(PVOID NewStack)
{
__asm
{
push ebp
mov ebp, esp
cli
mov esp, NewStack
sti
pop edi
pop esi
pop ebx
pop ebp
ret 8
}
}
__declspec(naked)
VOID STDCALL
KePushAndStackSwitchAndSysRet(ULONG Push, PVOID NewStack)
{
__asm
{
push ebp
mov ebp, esp
push ebx
push esi
push edi
cli
push 8[ebp]
mov ebx, fs:KPCR_CURRENT_THREAD
mov KTHREAD_CALLBACK_STACK[ebx], esp
mov esp, 12[ebp]
sti
push 0
call KeLowerIrql
jmp KeReturnFromSystemCall
}
}

View File

@@ -1,325 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Converted to MSVC-compatible inline assembler by Mike Nordell, 2003.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: MSVC6/ntoskrnl/ke_i386_syscall.c
* based on ntoskrnl/ke/i386/syscall.s
* PURPOSE: syscall dispatching and support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#define KernelMode (0)
#define UserMode (1)
// TMN: Replicated here to reduce mess-time
#ifdef STATUS_INVALID_SYSTEM_SERVICE
#undef STATUS_INVALID_SYSTEM_SERVICE
#endif
#define STATUS_INVALID_SYSTEM_SERVICE 0xc000001c
/*
*
*/
void KiServiceCheck (ULONG Nr);
ULONG KiAfterSystemCallHook(ULONG NtStatus, PKTRAP_FRAME TrapFrame);
VOID KiSystemCallHook(ULONG Nr, ...);
void KeReturnFromSystemCallWithHook();
void KeReturnFromSystemCall();
__declspec(naked)
void interrupt_handler2e(void)
{
__asm
{
/* Construct a trap frame on the stack */
/* Error code */
push 0
push ebp
push ebx
push esi
push edi
push fs
/* Load PCR selector into fs */
mov ebx, PCR_SELECTOR
mov fs, bx
/* Save the old exception list */
mov ebx, fs:KPCR_EXCEPTION_LIST
push ebx
/* Set the exception handler chain terminator */
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
/* Get a pointer to the current thread */
mov esi, fs:KPCR_CURRENT_THREAD
/* Save the old previous mode */
xor ebx,ebx
mov bl, ss:KTHREAD_PREVIOUS_MODE[esi]
push ebx
/* Set the new previous mode based on the saved CS selector */
mov ebx, 0x24[esp]
and ebx, 0x0000FFFF
cmp ebx, KERNEL_CS
#if 0
// TODO: Verify implementation change and use this code path
// to remove two conditional jumps.
setnz bl
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
#else
jne L1
mov ss:KTHREAD_PREVIOUS_MODE[esi], KernelMode
jmp L3
L1:
mov ss:KTHREAD_PREVIOUS_MODE[esi], UserMode
L3:
#endif
/* Save other registers */
push eax
push ecx
push edx
push ds
push es
push gs
push 0 /* DR7 */
push 0 /* DR6 */
push 0 /* DR3 */
push 0 /* DR2 */
push 0 /* DR1 */
push 0 /* DR0 */
push 0 /* XXX: TempESP */
push 0 /* XXX: TempCS */
push 0 /* XXX: DebugPointer */
push 0 /* XXX: DebugArgMark */
mov ebx, 0x60[esp]
push ebx /* DebugEIP */
push ebp /* DebugEBP */
/* Load the segment registers */
mov bx, KERNEL_DS
mov ds, bx
mov es, bx
mov gs, bx
/*
* Save the old trap frame pointer over where we would save the EDX
* register.
*/
mov ebx, KTHREAD_TRAP_FRAME[esi]
mov 0x3C[esp], ebx
/* Save a pointer to the trap frame in the TCB */
mov KTHREAD_TRAP_FRAME[esi], esp
/* Set ES to kernel segment */
mov bx, KERNEL_DS
mov es, bx
/* Allocate new Kernel stack frame */
mov ebp, esp
/* Users's current stack frame pointer is source */
mov esi, edx
/* Determine system service table to use */
cmp eax, 0x0fff
ja new_useShadowTable
/* Check to see if EAX is valid/inrange */
cmp eax, es:KeServiceDescriptorTable + 8
jbe new_serviceInRange
mov eax, STATUS_INVALID_SYSTEM_SERVICE
jmp KeReturnFromSystemCall
new_serviceInRange:
/* Allocate room for argument list from kernel stack */
mov ecx, es:KeServiceDescriptorTable + 12
mov ecx, es:[ecx + eax * 4]
sub esp, ecx
/* Copy the arguments from the user stack to the kernel stack */
mov edi, esp
cld
repe movsb
/* DS is now also kernel segment */
mov ds, bx
/* Call system call hook */
push eax
call KiSystemCallHook
pop eax
/* Make the system service call */
mov ecx, es:KeServiceDescriptorTable
mov eax, es:[ecx + eax * 4]
call eax
#if CHECKED
/* Bump Service Counter */
#endif
/* Deallocate the kernel stack frame */
mov esp, ebp
/* Call the post system call hook and deliver any pending APCs */
push ebp
push eax
call KiAfterSystemCallHook
add esp, 8
jmp KeReturnFromSystemCall
new_useShadowTable:
sub eax, 0x1000
/* Check to see if EAX is valid/inrange */
cmp eax, es:KeServiceDescriptorTableShadow + 24
jbe new_shadowServiceInRange
mov eax, STATUS_INVALID_SYSTEM_SERVICE
jmp KeReturnFromSystemCall
new_shadowServiceInRange:
/* Allocate room for argument list from kernel stack */
mov ecx, es:KeServiceDescriptorTableShadow + 28
mov ecx, es:[ecx + eax * 4]
sub esp, ecx
/* Copy the arguments from the user stack to the kernel stack */
mov edi, esp
cld
repe movsb
/* DS is now also kernel segment */
mov ds, bx
/* Call system call hook */
// pushl %eax
// call _KiSystemCallHook
// popl %eax
/* Call service check routine */
push eax
call KiServiceCheck
pop eax
/* Make the system service call */
mov ecx, es:KeServiceDescriptorTableShadow + 16
mov eax, es:[ecx + eax * 4]
call eax
#if CHECKED
/* Bump Service Counter */
#endif
/* Deallocate the kernel stack frame */
mov esp, ebp
// TMN: Added, to be able to separate this into different functions
jmp KeReturnFromSystemCallWithHook
}
}
__declspec(naked)
void KeReturnFromSystemCallWithHook()
{
__asm
{
/* Call the post system call hook and deliver any pending APCs */
push esp
push eax
call KiAfterSystemCallHook
add esp, 8
// TMN: Added, to be able to separate this into different functions
jmp KeReturnFromSystemCall
}
}
__declspec(naked)
void KeReturnFromSystemCall()
{
__asm
{
/* Restore the user context */
/* Get a pointer to the current thread */
mov esi, fs:0x124
/* Restore the old trap frame pointer */
mov ebx, 0x3c[esp]
mov KTHREAD_TRAP_FRAME[esi], ebx
/* Skip debug information and unsaved registers */
add esp, 0x30
pop gs
pop es
pop ds
pop edx
pop ecx
add esp, 4 /* Don't restore eax */
/* Restore the old previous mode */
pop ebx
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
/* Restore the old exception handler list */
pop ebx
mov fs:KPCR_EXCEPTION_LIST, ebx
pop fs
pop edi
pop esi
pop ebx
pop ebp
add esp, 4 /* Ignore error code */
iretd
}
}

View File

@@ -1,468 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
void KiV86Complete(void);
void KiTrapHandler(void);
void KiDoubleFaultHandler(void);
extern int KiPcrInitDone;
/*
* Epilog for exception handlers
*/
__declspec(naked)
void KiTrapEpilog()
{
__asm
{
cmp eax, 1 /* Check for v86 recovery */
jne _KiTrapRet
jmp KiV86Complete
_KiTrapRet:
/* Skip debug information and unsaved registers */
add esp, 0x30
pop gs
pop es
pop ds
pop edx
pop ecx
pop eax
/* Restore the old previous mode */
pop ebx
mov ss:KTHREAD_PREVIOUS_MODE[esi], bl
/* Restore the old exception handler list */
pop ebx
mov fs:KPCR_EXCEPTION_LIST, ebx
pop fs
pop edi
pop esi
pop ebx
pop ebp
add esp, 4 /* Ignore error code */
iretd
}
}
__declspec(naked)
void KiTrapProlog()
{
__asm
{
push edi
push fs
/*
* Check that the PCR exists, very early in the boot process it may
* not
*/
cmp ss:KiPcrInitDone, 0
je L5_
/* Load the PCR selector into fs */
mov ebx, PCR_SELECTOR
mov fs, bx
/* Save the old exception list */
mov ebx, fs:KPCR_EXCEPTION_LIST
push ebx
/* Put the exception handler chain terminator */
mov dword ptr fs:KPCR_EXCEPTION_LIST, 0xffffffff
/* Get a pointer to the current thread */
mov edi, fs:KPCR_CURRENT_THREAD
/* The current thread may be NULL early in the boot process */
cmp edi, 0
je L4_
/* Save the old previous mode */
xor ebx, ebx
mov bl, ss:KTHREAD_PREVIOUS_MODE[edi]
push ebx
/* Set the new previous mode based on the saved CS selector */
mov ebx, 0x24[esp]
and ebx, 0x0000FFFF
cmp ebx, KERNEL_CS
jne L1_
mov ss:KTHREAD_PREVIOUS_MODE[edi], KernelMode
jmp L3_
L1_:
mov ss:KTHREAD_PREVIOUS_MODE[edi], UserMode
L3_:
/* Save other registers */
push eax
push ecx
push edx
push ds
push es
push gs
push 0 /* DR7 */
push 0 /* DR6 */
push 0 /* DR3 */
push 0 /* DR2 */
push 0 /* DR1 */
push 0 /* DR0 */
push 0 /* XXX: TempESP */
push 0 /* XXX: TempCS */
push 0 /* XXX: DebugPointer */
push 0 /* XXX: DebugArgMark */
mov ebx, 0x60[esp]
push ebx /* XXX: DebugEIP */
push ebp /* XXX: DebugEBP */
/* Load the segment registers */
mov ebx, KERNEL_DS
mov ds, bx
mov es, bx
mov gs, bx
/* Set ES to kernel segment */
mov bx, KERNEL_DS
mov es, bx
mov ebx, esp
mov ebp, esp
/* Save the old trap frame. */
cmp edi, 0
je L7_
mov edx, ss:KTHREAD_TRAP_FRAME[edi]
push edx
jmp L8_
L7_:
push 0
L8_:
/* Save a pointer to the trap frame in the current KTHREAD */
cmp edi, 0
je L6_
mov ss:KTHREAD_TRAP_FRAME[edi], ebx
L6_:
/* Call the C exception handler */
push esi
push ebx
call KiTrapHandler
add esp, 8
/* Get a pointer to the current thread */
mov esi, fs:KPCR_CURRENT_THREAD
/* Restore the old trap frame pointer */
pop ebx
mov KTHREAD_TRAP_FRAME[esi], ebx
/* Return to the caller */
jmp KiTrapEpilog
/* Handle the no-pcr case out of line */
L5_:
push 0
/* Handle the no-thread case out of line */
L4_:
push 0
jmp L3_
} // end of __asm block
}
__declspec(naked)
void KiTrap0()
{
__asm
{
/* No error code */
push 0
push ebp
push ebx
push esi
mov esi, 0
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap1()
{
__asm
{
/* No error code */
push 0
push ebp
push ebx
push esi
mov esi, 1
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap2()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 2
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap3()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 3
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap4()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 4
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap5()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 5
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap6()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 6
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap7()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 7
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap8()
{
__asm
{
call KiDoubleFaultHandler
iretd
}
}
__declspec(naked)
void KiTrap9()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 9
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap10()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 10
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap11()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 11
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap12()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 12
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap13()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 13
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap14()
{
__asm
{
push ebp
push ebx
push esi
mov esi, 14
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap15()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 15
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrap16()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 16
jmp KiTrapProlog
}
}
__declspec(naked)
void KiTrapUnknown()
{
__asm
{
push 0
push ebp
push ebx
push esi
mov esi, 255
jmp KiTrapProlog
}
}
/* EOF */

View File

@@ -1,217 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
extern KSPIN_LOCK PiThreadListLock;
extern ULONG PiNrThreadsAwaitingReaping;
extern ULONG MmGlobalKernelPageDirectory[1024];
VOID STDCALL PiWakeupReaperThread(VOID);
VOID KeSetBaseGdtSelector(ULONG Entry, PVOID Base);
/*
* FUNCTIONS: Switches to another thread's context
* ARGUMENTS:
* Thread = Thread to switch to
* OldThread = Thread to switch from
*/
__declspec(naked)
VOID
Ki386ContextSwitch(struct _KTHREAD* NewThread, struct _KTHREAD* OldThread)
{
__asm
{
push ebp
mov ebp, esp
/* Save callee save registers. */
push ebx
push esi
push edi
cli /* This is a critical section for this processor. */
/* Get the pointer to the new thread. */
mov ebx, NewThread
/*
* Set the base of the TEB selector to the base of the TEB for
* this thread.
*/
push ebx
push KTHREAD_TEB[ebx]
push TEB_SELECTOR
call KeSetBaseGdtSelector
add esp, 8
pop ebx
/*
* Load the PCR selector.
*/
mov eax, PCR_SELECTOR
mov fs, ax
/*
* Set the current thread information in the PCR.
*/
mov fs:KPCR_CURRENT_THREAD, ebx
/*
* Set the current LDT
*/
xor eax, eax
mov edi, ETHREAD_THREADS_PROCESS[ebx]
test word ptr KPROCESS_LDT_DESCRIPTOR0[edi], 0xFFFF
jz L4
push KPROCESS_LDT_DESCRIPTOR1[edi]
push KPROCESS_LDT_DESCRIPTOR0[edi]
push LDT_SELECTOR
call KeSetGdtSelector
add esp, 12
mov eax, LDT_SELECTOR
L4:
lldt ax
/*
* Load up the iomap offset for this thread in
* preparation for setting it below.
*/
mov eax, KPROCESS_IOPM_OFFSET[edi]
/*
* FIXME: Save debugging state.
*/
/*
* FIXME: Save floating point state.
*/
/*
* Switch stacks
*/
mov ebx, 12[ebp]
mov KTHREAD_KERNEL_STACK[ebx], esp
mov ebx, 8[ebp]
mov esp, KTHREAD_KERNEL_STACK[ebx]
mov edi, KTHREAD_STACK_LIMIT[ebx]
/*
* Set the stack pointer in this processors TSS
*/
mov esi, fs:KPCR_TSS
/*
* Set current IOPM offset in the TSS
*/
mov KTSS_IOMAPBASE[esi], ax
mov eax, KTHREAD_INITIAL_STACK[ebx]
mov KTSS_ESP0[esi], eax
/*
* Change the address space
*/
mov ebx, ETHREAD_THREADS_PROCESS[ebx]
mov eax, KPROCESS_DIRECTORY_TABLE_BASE[ebx]
mov cr3, eax
/*
* Set up the PDE for the top of the new stack.
*/
mov ebx, 0
L2:
mov esi, edi
shr esi, 22
mov eax, 0xF03C0000[esi*4]
cmp eax, 0
jne L1
mov eax, MmGlobalKernelPageDirectory[esi*4]
mov 0xF03C0000[esi*4], eax
L1:
add edi, 4096
inc ebx
cmp ebx, (MM_STACK_SIZE / 4096)
jl L2
/*
* FIXME: Restore floating point state
*/
/*
* FIXME: Restore debugging state
*/
/*
* Exit the critical section
*/
sti
}
KeReleaseSpinLockFromDpcLevel(&PiThreadListLock);
if (PiNrThreadsAwaitingReaping) {
PiWakeupReaperThread();
}
__asm
{
/*
* Restore the saved register and exit
*/
pop edi
pop esi
pop ebx
pop ebp
ret
}
}

View File

@@ -1,256 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-25
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ps.h>
// Taken from ntoskrnl/include/internal/v86m.h, since that one must be fixed
// a bit before it could be used from here.
#define KV86M_REGISTERS_EBP (0x0)
#define KV86M_REGISTERS_EDI (0x4)
#define KV86M_REGISTERS_ESI (0x8)
#define KV86M_REGISTERS_EDX (0xC)
#define KV86M_REGISTERS_ECX (0x10)
#define KV86M_REGISTERS_EBX (0x14)
#define KV86M_REGISTERS_EAX (0x18)
#define KV86M_REGISTERS_DS (0x1C)
#define KV86M_REGISTERS_ES (0x20)
#define KV86M_REGISTERS_FS (0x24)
#define KV86M_REGISTERS_GS (0x28)
#define KV86M_REGISTERS_EIP (0x2C)
#define KV86M_REGISTERS_CS (0x30)
#define KV86M_REGISTERS_EFLAGS (0x34)
#define KV86M_REGISTERS_ESP (0x38)
#define KV86M_REGISTERS_SS (0x3C)
void KiV86Complete();
/*
* Starts in v86 mode with the registers set to the
* specified values.
*/
__declspec(naked)
VOID Ki386RetToV86Mode(KV86M_REGISTERS* InRegs,
KV86M_REGISTERS* OutRegs)
{
__asm
{
/*
* Setup a stack frame
*/
push ebp
mov ebp, esp
pushad /* Save registers */
mov ebx, InRegs
/*
* Save ebp
*/
push ebp
/*
* Save a pointer to IN_REGS which the v86m exception handler will
* use to handle exceptions
*/
push ebx
/*
* Since we are going to fiddle with the stack pointer this must be
* a critical section for this processor
*/
/*
* Save the old initial stack
*/
mov esi, fs:KPCR_CURRENT_THREAD
mov edi, KTHREAD_INITIAL_STACK[esi]
push edi
/*
* We also need to set the stack in the kthread structure
*/
mov KTHREAD_INITIAL_STACK[esi], esp
/*
* The stack used for handling exceptions from v86 mode in this thread
* will be the current stack adjusted so we don't overwrite the
* existing stack frames
*/
mov esi, fs:KPCR_TSS
mov KTSS_ESP0[esi], esp
/*
* Create the stack frame for an iret to v86 mode
*/
push KV86M_REGISTERS_GS[ebx]
push KV86M_REGISTERS_FS[ebx]
push KV86M_REGISTERS_DS[ebx]
push KV86M_REGISTERS_ES[ebx]
push KV86M_REGISTERS_SS[ebx]
push KV86M_REGISTERS_ESP[ebx]
push KV86M_REGISTERS_EFLAGS[ebx]
push KV86M_REGISTERS_CS[ebx]
push KV86M_REGISTERS_EIP[ebx]
/*
* Setup the CPU registers
*/
mov eax, KV86M_REGISTERS_EAX[ebx]
mov ecx, KV86M_REGISTERS_ECX[ebx]
mov edx, KV86M_REGISTERS_EDX[ebx]
mov esi, KV86M_REGISTERS_ESI[ebx]
mov edi, KV86M_REGISTERS_EDI[ebx]
mov ebp, KV86M_REGISTERS_EBP[ebx]
mov ebx, KV86M_REGISTERS_EBX[ebx]
/*
* Go to v86 mode
*/
iretd
/*
* Handle the completion of a vm86 routine. We are called from
* an exception handler with the registers at the point of the
* exception on the stack.
*/
jmp KiV86Complete // TMN: Function-splitting
}
}
__declspec(naked)
void KiV86Complete()
{
__asm
{
/* Restore the original ebp */
mov ebp, TF_ORIG_EBP[esp]
/* Get a pointer to the OUT_REGS structure */
mov ebx, 12[ebp] // OutRegs
/* Skip debug information and unsaved registers */
add esp, 0x30
/* Ignore 32-bit segment registers */
add esp, 12
/* Save the vm86 registers into the OUT_REGS structure */
pop dword ptr KV86M_REGISTERS_EDX[ebx]
pop dword ptr KV86M_REGISTERS_ECX[ebx]
pop dword ptr KV86M_REGISTERS_EAX[ebx]
/* Restore the old previous mode */
pop eax
mov ss:KTHREAD_PREVIOUS_MODE[esi], al
/* Restore the old exception handler list */
pop eax
mov fs:KPCR_EXCEPTION_LIST, eax
/* Ignore the 32-bit fs register */
add esp, 4
pop dword ptr KV86M_REGISTERS_EDI[ebx]
pop dword ptr KV86M_REGISTERS_ESI[ebx]
pop dword ptr KV86M_REGISTERS_EBX[ebx]
pop dword ptr KV86M_REGISTERS_EBP[ebx]
/* Ignore error code */
add esp, 4
pop dword ptr KV86M_REGISTERS_EIP[ebx]
pop dword ptr KV86M_REGISTERS_CS[ebx]
pop dword ptr KV86M_REGISTERS_EFLAGS[ebx]
pop dword ptr KV86M_REGISTERS_ESP[ebx]
pop dword ptr KV86M_REGISTERS_SS[ebx]
pop dword ptr KV86M_REGISTERS_ES[ebx]
pop dword ptr KV86M_REGISTERS_DS[ebx]
pop dword ptr KV86M_REGISTERS_FS[ebx]
pop dword ptr KV86M_REGISTERS_GS[ebx]
/*
* We are going to fiddle with the stack so this must be a critical
* section for this process
*/
cli
/*
* Restore the initial stack
*/
pop eax
mov esi, fs:KPCR_TSS
mov KTSS_ESP0[esi], eax
/*
* We also need to set the stack in the kthread structure
*/
mov esi, fs:KPCR_CURRENT_THREAD
mov edi, KTHREAD_INITIAL_STACK[esi]
mov KTHREAD_INITIAL_STACK[esi], eax
/* Exit the critical section */
sti
/* Ignore IN_REGS pointer */
add esp, 4
/* Ignore ebp restored above */
add esp, 4
/* Return to caller */
popad
mov esp, ebp
pop ebp
ret
} // end of __asm block
}

View File

@@ -1,15 +0,0 @@
; This file is vital. It tells the linker how to order some functions
; and some data, that unfortunately is assumed to be at low location
; and in known order to eachother respectively?
MultibootStub
our_memmove
dummy_placeholder
NtProcessStartup@4
initialize_page_directory
relocate_pointer_log_to_phys
; Order some data that there is some assumptions about...
init_stack
init_stack_top
trap_stack
trap_stack_top

View File

@@ -1,126 +0,0 @@
#include <ddk/ntddk.h>
void MmSafeCopyToUserRestart();
void MmSafeCopyToUserUnsafeStart();
void MmSafeCopyFromUserUnsafeStart();
void MmSafeCopyFromUserRestart();
/*
* NTSTATUS MmSafeCopyFromUser(PVOID Dest, PVOID Src,
* ULONG NumberOfBytes)
*/
__declspec(naked)
NTSTATUS MmSafeCopyFromUser(PVOID Dest, const VOID *Src, ULONG Count)
{
__asm
{
push ebp
mov ebp,esp
push esi
push edi
push ecx
mov edi, 8[ebp]
mov esi, 12[ebp]
mov ecx, 16[ebp]
/*
* Default return code
*/
xor eax,eax
jmp MmSafeCopyFromUserUnsafeStart
}
}
__declspec(naked)
void MmSafeCopyFromUserUnsafeStart()
{
__asm
{
/*
* This is really a synthetic instruction since if we incur a
* pagefault then eax will be set to an appropiate STATUS code
*/
cld
rep movsb
jmp MmSafeCopyFromUserRestart
}
}
__declspec(naked)
void MmSafeCopyFromUserRestart()
{
__asm
{
pop ecx
pop edi
pop esi
pop ebp
ret
}
}
/*****************************************************************************/
/*
* NTSTATUS MmSafeCopyToUser(PVOID Dest, PVOID Src,
* ULONG NumberOfBytes)
*/
NTSTATUS MmSafeCopyToUser(PVOID Dest, const VOID *Src, ULONG Count)
{
__asm
{
push ebp
mov esp,ebp
push esi
push edi
push ecx
mov edi, 8[ebp]
mov esi, 12[ebp]
mov ecx, 16[ebp]
/*
* Default return code
*/
xor eax,eax
jmp MmSafeCopyToUserUnsafeStart
}
}
__declspec(naked)
void MmSafeCopyToUserUnsafeStart()
{
__asm
{
/*
* This is really a synthetic instruction since if we incur a
* pagefault then eax will be set to an appropiate STATUS code
*/
cld
rep movsb
jmp MmSafeCopyToUserRestart
}
}
__declspec(naked)
void MmSafeCopyToUserRestart()
{
__asm
{
pop ecx
pop edi
pop esi
pop ebp
ret
}
}

View File

@@ -1,574 +0,0 @@
/* $Id: mm_mminit_msvc.c,v 1.1 2004/02/06 08:22:01 fireball Exp $
*
* COPYRIGHT: See COPYING in the top directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/mm/mminit.c
* PURPOSE: kernel memory managment initialization functions
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 9/4/98
*/
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <roscfg.h>
#include <internal/i386/segment.h>
#include <internal/mm.h>
#include <internal/ntoskrnl.h>
#include <internal/io.h>
#include <internal/ps.h>
#include <internal/pool.h>
#define NDEBUG
#include <internal/debug.h>
/* GLOBALS *****************************************************************/
/*
* Size of extended memory (kb) (fixed for now)
*/
#define EXTENDED_MEMORY_SIZE (3*1024*1024)
/*
* Compiler defined symbols
*/
#if defined(_MSC_VER)
#pragma intrinsic(strcmp)
static PIMAGE_SECTION_HEADER FindSection(const char* szSeg)
{
PIMAGE_NT_HEADERS NtHeader = RtlImageNtHeader((PVOID)KERNEL_BASE);
PIMAGE_SECTION_HEADER Section = IMAGE_FIRST_SECTION(NtHeader);
const int count = NtHeader->FileHeader.NumberOfSections;
int i;
for (i = 0; i < count; ++i, ++Section)
{
if (!strcmp(szSeg, Section->Name))
{
return Section;
}
}
return NULL;
}
static void* FindSegmentStart(const char* szSeg)
{
PIMAGE_SECTION_HEADER Section = FindSection(szSeg);
if (Section)
{
return (void*)(KERNEL_BASE + Section->VirtualAddress);
}
return NULL;
}
static void* FindSegmentEnd(const char* szSeg)
{
PIMAGE_SECTION_HEADER Section = FindSection(szSeg);
if (Section)
{
return (void*)(KERNEL_BASE + Section->VirtualAddress + Section->Misc.VirtualSize);
}
return NULL;
}
#endif // defined(_MSC_VER)
static BOOLEAN IsThisAnNtAsSystem = FALSE;
static MM_SYSTEM_SIZE MmSystemSize = MmSmallSystem;
static MEMORY_AREA* kernel_text_desc = NULL;
static MEMORY_AREA* kernel_init_desc = NULL;
static MEMORY_AREA* kernel_map_desc = NULL;
static MEMORY_AREA* kernel_kpcr_desc = NULL;
static MEMORY_AREA* kernel_data_desc = NULL;
static MEMORY_AREA* kernel_param_desc = NULL;
static MEMORY_AREA* kernel_pool_desc = NULL;
static MEMORY_AREA* kernel_shared_data_desc = NULL;
static MEMORY_AREA* kernel_mapped_low_mem_desc = NULL;
static MEMORY_AREA* MiKernelMapDescriptor = NULL;
static MEMORY_AREA* MiPagedPoolDescriptor = NULL;
PHYSICAL_ADDRESS MmSharedDataPagePhysicalAddress;
PVOID MiNonPagedPoolStart;
ULONG MiNonPagedPoolLength;
PVOID MiKernelMapStart;
ULONG MiKernelMapLength;
/* FUNCTIONS ****************************************************************/
/*
* @implemented
*/
BOOLEAN STDCALL MmIsThisAnNtAsSystem(VOID)
{
return(IsThisAnNtAsSystem);
}
/*
* @implemented
*/
MM_SYSTEM_SIZE STDCALL MmQuerySystemSize(VOID)
{
return(MmSystemSize);
}
VOID MiShutdownMemoryManager(VOID)
{
}
VOID INIT_FUNCTION
MmInitVirtualMemory(ULONG LastKernelAddress,
ULONG KernelLength)
/*
* FUNCTION: Intialize the memory areas list
* ARGUMENTS:
* bp = Pointer to the boot parameters
* kernel_len = Length of the kernel
*/
{
PVOID BaseAddress;
ULONG Length;
ULONG ParamLength = KernelLength;
NTSTATUS Status;
PHYSICAL_ADDRESS BoundaryAddressMultiple;
//ULONG i;
DPRINT("MmInitVirtualMemory(%x, %x)\n",LastKernelAddress, KernelLength);
BoundaryAddressMultiple.QuadPart = 0;
LastKernelAddress = PAGE_ROUND_UP(LastKernelAddress);
MmInitMemoryAreas();
/* Don't change the start of kernel map. Pte's must always exist for this region. */
MiKernelMapStart = (char*)LastKernelAddress + PAGE_SIZE;
MiKernelMapLength = MM_KERNEL_MAP_SIZE;
MiNonPagedPoolStart = (char*)MiKernelMapStart + MiKernelMapLength + PAGE_SIZE;
MiNonPagedPoolLength = MM_NONPAGED_POOL_SIZE;
MmPagedPoolBase = (char*)MiNonPagedPoolStart + MiNonPagedPoolLength + PAGE_SIZE;
MmPagedPoolSize = MM_PAGED_POOL_SIZE;
MiInitKernelMap();
MiInitializeNonPagedPool();
/*
* Setup the system area descriptor list
*/
BaseAddress = (PVOID)0xf0000000;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
0x400000,
0,
&kernel_map_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)KPCR_BASE;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
PAGE_SIZE * MAXIMUM_PROCESSORS,
0,
&kernel_kpcr_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)0xd0000000;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
0x100000,
0,
&kernel_mapped_low_mem_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = (PVOID)KERNEL_BASE;
Length = PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".text"))) - KERNEL_BASE;
ParamLength = ParamLength - Length;
/*
* No need to lock the address space at this point since no
* other threads are running.
*/
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_text_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
// TODO: Here we REALLY should iterate the PE's sections and set protection
// accordingly for each and every one of them.
// NOTE This code ONLY works because of the assumption that the .text
// segment is the first in the PE, and the .reloc segment is the last.
// Link in a way to make this assumtion false, and the kernel won't work.
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".text")));
Length = PAGE_ROUND_UP(((ULONG)FindSegmentStart(".reloc"))) - (ULONG_PTR)BaseAddress;
ParamLength = ParamLength - Length;
DPRINT1("Data Length %x\n",Length);
DPRINT1("Data BaseAddress %x\n",BaseAddress);
/*
* No need to lock the address space at this point since we are
* the only thread running.
*/
// For GCC-compiled, kernel_data_desc contains:
// .data, .edata, .idata, .bss and .rsrc. E.i. all but .text and .reloc
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_data_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
// BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentEnd(".edata")));
BaseAddress = (PVOID)PAGE_ROUND_UP(((ULONG)FindSegmentStart(".reloc")));
Length = LastKernelAddress - (ULONG)BaseAddress;
// For GCC-compiled, kernel_param_desc contains .reloc
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_param_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MiNonPagedPoolStart;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
MiNonPagedPoolLength,
0,
&kernel_pool_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MiKernelMapStart;
Status = MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
MiKernelMapLength,
0,
&MiKernelMapDescriptor,
FALSE,
FALSE,
BoundaryAddressMultiple);
BaseAddress = MmPagedPoolBase;
Status = MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_PAGED_POOL,
&BaseAddress,
MmPagedPoolSize,
0,
&MiPagedPoolDescriptor,
FALSE,
FALSE,
BoundaryAddressMultiple);
MmInitializePagedPool();
/*
* Create the kernel mapping of the user/kernel shared memory.
*/
BaseAddress = (PVOID)KI_USER_SHARED_DATA;
Length = PAGE_SIZE;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
MEMORY_AREA_SYSTEM,
&BaseAddress,
Length,
0,
&kernel_shared_data_desc,
FALSE,
FALSE,
BoundaryAddressMultiple);
Status = MmRequestPageMemoryConsumer(MC_NPPOOL, TRUE,
&MmSharedDataPagePhysicalAddress);
Status = MmCreateVirtualMapping(NULL,
(PVOID)KI_USER_SHARED_DATA,
PAGE_READWRITE,
MmSharedDataPagePhysicalAddress,
TRUE);
if (!NT_SUCCESS(Status))
{
DbgPrint("Unable to create virtual mapping\n");
KEBUGCHECK(0);
}
RtlZeroMemory(BaseAddress, Length);
/*
*
*/
MmInitializeMemoryConsumer(MC_USER, MmTrimUserMemory);
}
VOID INIT_FUNCTION
MmInit1(ULONG FirstKrnlPhysAddr,
ULONG LastKrnlPhysAddr,
ULONG LastKernelAddress,
PADDRESS_RANGE BIOSMemoryMap,
ULONG AddressRangeCount,
ULONG MaxMem)
/*
* FUNCTION: Initalize memory managment
*/
{
ULONG i;
ULONG kernel_len;
#ifndef MP
extern unsigned int unmap_me, unmap_me2, unmap_me3;
#endif
DPRINT("MmInit1(FirstKrnlPhysAddr, %x, LastKrnlPhysAddr %x, LastKernelAddress %x)\n",
FirstKrnlPhysAddr,
LastKrnlPhysAddr,
LastKernelAddress);
if ((BIOSMemoryMap != NULL) && (AddressRangeCount > 0))
{
// If we have a bios memory map, recalulate the memory size
ULONG last = 0;
for (i = 0; i < AddressRangeCount; i++)
{
if (BIOSMemoryMap[i].Type == 1
&& (BIOSMemoryMap[i].BaseAddrLow + BIOSMemoryMap[i].LengthLow + PAGE_SIZE -1) / PAGE_SIZE > last)
{
last = (BIOSMemoryMap[i].BaseAddrLow + BIOSMemoryMap[i].LengthLow + PAGE_SIZE -1) / PAGE_SIZE;
}
}
if ((last - 256) * 4 > KeLoaderBlock.MemHigher)
{
KeLoaderBlock.MemHigher = (last - 256) * 4;
}
}
if (KeLoaderBlock.MemHigher >= (MaxMem - 1) * 1024)
{
KeLoaderBlock.MemHigher = (MaxMem - 1) * 1024;
}
/*
* FIXME: Set this based on the system command line
*/
MmSystemRangeStart = (PVOID)KERNEL_BASE; // 0xC0000000
MmUserProbeAddress = (PVOID)0x7fff0000;
MmHighestUserAddress = (PVOID)0x7ffeffff;
MmInitGlobalKernelPageDirectory();
/*
* Initialize memory managment statistics
*/
MmStats.NrTotalPages = 0;
MmStats.NrSystemPages = 0;
MmStats.NrUserPages = 0;
MmStats.NrReservedPages = 0;
MmStats.NrUserPages = 0;
MmStats.NrFreePages = 0;
MmStats.NrLockedPages = 0;
MmStats.PagingRequestsInLastMinute = 0;
MmStats.PagingRequestsInLastFiveMinutes = 0;
MmStats.PagingRequestsInLastFifteenMinutes = 0;
/*
* Initialize the kernel address space
*/
MmInitializeKernelAddressSpace();
/*
* Unmap low memory
*/
#ifndef MP
/* In SMP mode we unmap the low memory in MmInit3.
The APIC needs the mapping of the first pages
while the processors are starting up. */
MmDeletePageTable(NULL, 0);
#endif
/*
* Free all pages not used for kernel memory
* (we assume the kernel occupies a continuous range of physical
* memory)
*/
DPRINT("first krnl %x\nlast krnl %x\n",FirstKrnlPhysAddr,
LastKrnlPhysAddr);
/*
* Free physical memory not used by the kernel
*/
MmStats.NrTotalPages = KeLoaderBlock.MemHigher/4;
if (!MmStats.NrTotalPages)
{
DbgPrint("Memory not detected, default to 8 MB\n");
MmStats.NrTotalPages = 2048;
}
else
{
/* add 1MB for standard memory (not extended) */
MmStats.NrTotalPages += 256;
}
#ifdef BIOS_MEM_FIX
MmStats.NrTotalPages += 16;
#endif
DbgPrint("Used memory %dKb\n", (MmStats.NrTotalPages * PAGE_SIZE) / 1024);
LastKernelAddress = (ULONG)MmInitializePageList((PVOID)FirstKrnlPhysAddr,
(PVOID)LastKrnlPhysAddr,
MmStats.NrTotalPages,
PAGE_ROUND_UP(LastKernelAddress),
BIOSMemoryMap,
AddressRangeCount);
kernel_len = LastKrnlPhysAddr - FirstKrnlPhysAddr;
/*
* Create a trap for null pointer references and protect text
* segment
*/
CHECKPOINT;
#if defined(_MSC_VER)
DPRINT(".text start: %x, .data start: %x\n",
(int)FindSegmentStart(".text"),
(int)FindSegmentStart(".data"));
{
const char* pCode = FindSegmentStart(".text");
const char* pData = FindSegmentEnd(".text");
while (pCode < pData)
{
MmSetPageProtect(NULL, (PVOID)pCode, PAGE_EXECUTE_READ);
pCode += PAGE_SIZE;
}
}
#else
DPRINT("_text_start__ %x _init_end__ %x\n",(int)&_text_start__,(int)&_init_end__);
for (i=PAGE_ROUND_DOWN(((int)&_text_start__));
i<PAGE_ROUND_UP(((int)&_init_end__));i=i+PAGE_SIZE)
{
MmSetPageProtect(NULL,
(PVOID)i,
PAGE_EXECUTE_READ);
}
#endif
DPRINT("Invalidating between %x and %x\n",
LastKernelAddress, 0xc0600000);
for (i=(LastKernelAddress); i<0xc0600000; i+=PAGE_SIZE)
{
MmRawDeleteVirtualMapping((PVOID)(i));
}
DPRINT("Invalidating between %x and %x\n",
0xd0100000, 0xd0400000);
for (i=0xd0100000; i<0xd0400000; i+=PAGE_SIZE)
{
MmRawDeleteVirtualMapping((PVOID)(i));
}
DPRINT("Almost done MmInit()\n");
#ifndef MP
/* FIXME: This is broken in SMP mode */
#if !defined(_MSC_VER) // FIXME: I don't trust using this from MSVC yet!
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me, TRUE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me2, TRUE, NULL, NULL);
MmDeleteVirtualMapping(NULL, (PVOID)&unmap_me3, TRUE, NULL, NULL);
#endif // _MSC_VER
#endif
/*
* Intialize memory areas
*/
MmInitVirtualMemory(LastKernelAddress, kernel_len);
MmInitializeMdlImplementation();
}
VOID INIT_FUNCTION
MmInit2(VOID)
{
MmInitializeRmapList();
MmInitializePageOp();
MmInitSectionImplementation();
MmInitPagingFile();
}
VOID INIT_FUNCTION
MmInit3(VOID)
{
/*
* Unmap low memory
*/
#ifdef MP
/* In SMP mode we can unmap the low memory
if all processors are started. */
MmDeletePageTable(NULL, 0);
#endif
MmInitZeroPageThread();
MmCreatePhysicalMemorySection();
MiInitBalancerThread();
/*
* Initialise the modified page writer.
*/
MmInitMpwThread();
/* FIXME: Read parameters from memory */
}
VOID STATIC
MiFreeInitMemoryPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address,
PHYSICAL_ADDRESS PhysAddr, SWAPENTRY SwapEntry,
BOOLEAN Dirty)
{
assert(SwapEntry == 0);
if (PhysAddr.QuadPart != 0)
{
MmReleasePageMemoryConsumer(MC_NPPOOL, PhysAddr);
}
}
VOID
MiFreeInitMemory(VOID)
{
#if defined(_MSC_VER)
DPRINT1("Can not yet free .init memory for MSVC compiled kernel\n");
#else
MmLockAddressSpace(MmGetKernelAddressSpace());
MmFreeMemoryArea(MmGetKernelAddressSpace(),
(PVOID)&_init_start__,
PAGE_ROUND_UP((ULONG)&_init_end__) - (ULONG)_init_start__,
MiFreeInitMemoryPage,
NULL);
MmUnlockAddressSpace(MmGetKernelAddressSpace());
#endif
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,299 +0,0 @@
/*
* ReactOS kernel
* Copyright (C) 2000 David Welch <welch@cwcom.net>
*
* Moved to MSVC-compatible inline assembler by Mike Nordell, 2003-12-26
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* FILE: ntoskrnl/ke/i386/vm86_sup.S
* PURPOSE: V86 mode support
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* Created 09/10/00
*/
/* INCLUDES ******************************************************************/
#pragma hdrstop
#include <ddk/ntddk.h>
#include <ddk/status.h>
#include <internal/i386/segment.h>
#include <internal/i386/fpu.h>
#include <internal/ps.h>
#include <ddk/defines.h>
#include <internal/v86m.h>
#include <ntos/tss.h>
//#include <ntos/service.h>
#include <internal/trap.h>
#include <internal/ps.h>
#include <roscfg.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#define EXCEPTION_UNWINDING 0x02
#define EREC_FLAGS 0x04
#define ExceptionContinueExecution 0
#define ExceptionContinueSearch 1
#define ExceptionNestedException 2
#define ExceptionCollidedUnwind 3
//.globl _RtlpExecuteHandlerForException
//.globl _RtlpExecuteHandlerForUnwind
#define CONTEXT_FLAGS 0x00
#define CONTEXT_SEGGS 0x8C
#define CONTEXT_SEGFS 0x90
#define CONTEXT_SEGES 0x94
#define CONTEXT_SEGDS 0x98
#define CONTEXT_EDI 0x9C
#define CONTEXT_ESI 0xA0
#define CONTEXT_EBX 0xA4
#define CONTEXT_EDX 0xA8
#define CONTEXT_ECX 0xAC
#define CONTEXT_EAX 0xB0
#define CONTEXT_EBP 0xB4
#define CONTEXT_EIP 0xB8
#define CONTEXT_SEGCS 0xBC
#define CONTEXT_EFLAGS 0xC0
#define CONTEXT_ESP 0xC4
#define CONTEXT_SEGSS 0xC8
#define RCC_CONTEXT 0x08
VOID STDCALL
AsmDebug(ULONG Value);
// EAX = value to print
__declspec(naked)
void do_debug()
{
__asm
{
pusha
push eax
call AsmDebug
popa
ret
}
}
#define REH_ERECORD 0x08
#define REH_RFRAME 0x0C
#define REH_CONTEXT 0x10
#define REH_DCONTEXT 0x14
#define REH_EROUTINE 0x18
// Parameters:
// None
// Registers:
// [EBP+08h] - PEXCEPTION_RECORD ExceptionRecord
// [EBP+0Ch] - PEXCEPTION_REGISTRATION RegistrationFrame
// [EBP+10h] - PVOID Context
// [EBP+14h] - PVOID DispatcherContext
// [EBP+18h] - PEXCEPTION_HANDLER ExceptionRoutine
// EDX - Address of protecting exception handler
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// Setup the protecting exception handler and call the exception
// handler in the right context.
__declspec(naked)
void RtlpExecuteHandler()
{
__asm
{
push ebp
mov ebp, esp
push REH_RFRAME[ebp]
push edx
push fs:0x0
mov fs:0x0, esp
// Prepare to call the exception handler
push REH_DCONTEXT[ebp]
push REH_CONTEXT[ebp]
push REH_RFRAME[ebp]
push REH_ERECORD[ebp]
// Now call the exception handler
mov eax, REH_EROUTINE[ebp]
call eax
cmp fs:0x0, -1
jne reh_stack_looks_ok
// This should not happen
push 0
push 0
push 0
push 0
call RtlAssert
reh_loop:
jmp reh_loop
reh_stack_looks_ok:
mov esp, fs:0x0
// Return to the 'front-end' for this function
pop dword ptr fs:0x0
mov esp, ebp
pop ebp
ret
}
}
#if 0
#endif // 0
#define REP_ERECORD 0x04
#define REP_RFRAME 0x08
#define REP_CONTEXT 0x0C
#define REP_DCONTEXT 0x10
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// This exception handler protects the exception handling
// mechanism by detecting nested exceptions.
__declspec(naked)
void RtlpExceptionProtector()
{
__asm
{
mov eax, ExceptionContinueSearch
mov ecx, REP_ERECORD[esp]
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
jnz rep_end
// Unwinding is not taking place, so return ExceptionNestedException
// Set DispatcherContext field to the exception registration for the
// exception handler that executed when a nested exception occurred
mov ecx, REP_DCONTEXT[esp]
mov eax, REP_RFRAME[esp]
mov [ecx], eax
mov eax, ExceptionNestedException
rep_end:
ret
}
}
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// Front-end
__declspec(naked)
void RtlpExecuteHandlerForException()
{
__asm
{
mov edx, RtlpExceptionProtector
jmp RtlpExecuteHandler
}
}
#define RUP_ERECORD 0x04
#define RUP_RFRAME 0x08
#define RUP_CONTEXT 0x0C
#define RUP_DCONTEXT 0x10
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
// Notes:
// This exception handler protects the exception handling
// mechanism by detecting collided unwinds.
__declspec(naked)
void RtlpUnwindProtector()
{
__asm
{
mov eax, ExceptionContinueSearch
mov RUP_ERECORD[esp], ecx
test EREC_FLAGS[ecx], EXCEPTION_UNWINDING
jz rup_end
// Unwinding is taking place, so return ExceptionCollidedUnwind
mov ecx, RUP_RFRAME[esp]
mov edx, RUP_DCONTEXT[esp]
// Set DispatcherContext field to the exception registration for the
// exception handler that executed when a collision occurred
mov eax, RUP_RFRAME[ecx]
mov [edx], eax
mov eax, ExceptionCollidedUnwind
rup_end:
ret
}
}
// Parameters:
// [ESP+04h] - PEXCEPTION_RECORD ExceptionRecord
// [ESP+08h] - PEXCEPTION_REGISTRATION RegistrationFrame
// [ESP+0Ch] - PCONTEXT Context
// [ESP+10h] - PVOID DispatcherContext
// [ESP+14h] - PEXCEPTION_HANDLER ExceptionHandler
// Registers:
// None
// Returns:
// EXCEPTION_DISPOSITION
__declspec(naked)
void RtlpExecuteHandlerForUnwind()
{
__asm mov edx, RtlpUnwindProtector
__asm jmp RtlpExecuteHandler
}

View File

@@ -1,3 +0,0 @@
*.exe
*.o
*.sym

View File

@@ -1,37 +0,0 @@
# $Id: Makefile,v 1.2 2003/01/07 16:23:10 robd Exp $
#
#
PATH_TO_TOP = ../../../reactos
PATH_TO_OS2_TOP = ../..
TARGET_TYPE = program
TARGET_NORC = yes
#TARGET_APPTYPE = console
TARGET_APPTYPE = windows
TARGET_NAME = bepslep
TARGET_CFLAGS = -D__SUBSYSTEM_WINDOWS__
TARGET_LFLAGS = -nostartfiles
TARGET_SDKLIBS = doscalls.a
TARGET_GCCLIBS = stdc++
#TARGET_LIBS = $(PATH_TO_OS2_TOP)/lib/crt0w32.o \
# $(PATH_TO_TOP)/dk/psx/lib/psxdll.a
# $(PATH_TO_OS2_TOP)/dll/doscalls.dll
TARGET_OBJECTS = $(TARGET_NAME).o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,20 +0,0 @@
#define INCL_DOSPROCESS
#include "../../include/os2.h"
//#include "../../include/ros2.h"
void Eingang()
{
DosBeep(3000,300);
DosSleep(1000);
DosBeep(4000,200);
DosExit(0,0);
}
void WinMainCRTStartup()
{
int a, b;
a= b+3;
b=a+3;
Eingang();
}

View File

@@ -1,50 +0,0 @@
Win32 and os2ss sight to the system partition
+C < contains under os2ss a autogenerated config.sys
|
+-ROS
+-NATIVE < NTDLL, ntoskrnl, hal.dll, csrss.exe os2.exe psx.exe ...
| +-DRIVERS < *.SYS
| +-CONFIG < registry
+-WIN32
| +-SYSTEM < user32.dll kernel32.dll ...
| +-FONTS
| +...
+-OS2
| +-DLL < doscalls.dll ....
| +-SYSTEM
| +-...
+-PSX
+-etc < mountpoint for posix apps
+-bin
+-dev
+-lib < posix.dll
+-tmp
+-var
+-mnt < empty
posix sight to the system partition
/
+-etc < mountpoint for posix apps
+-bin
+-dev < link to OB-mans Devices
+-lib < posix.dll
+-tmp < alias to systemtemp
+-var
+-mnt
+-C < win32-driveletters
| |
| +-ROS
| +-NATIVE < NTDLL, ntoskrnl, hal.dll, csrss.exe os2.exe psx.exe ...
| | +-DRIVERS < *.SYS
| | +-CONFIG < registry
| +-WIN32
| | +-SYSTEM < user32.dll kernel32.dll ...
| | +-FONTS
| | +...
| +-OS2 <some apps
| | +-DLL < doscalls.dll ....
| | +-SYSTEM
| | +-...
| +-PSX < empty
+-D
+-E...

View File

@@ -1,16 +0,0 @@
Beginning ROS/2-Developement
============================
ROS/2-Developement means building the OS/2 subsystem for ReactOS. In order to start the developement you should have CVS-access. For the CVS-access see the reactos-Homepage.
Setting up a build environment
------------------------------
For the native components (OS2SS.EXE and OS2.EXE) you'll need the same compiler and tools as you need for the rest of ReactOS. If you haven't already set it up, go to the reactos home and see the description there. For now this is the only compiler you need. At some point you'll need a compiler that can generate LX-EXEs. But now also the core dlls and even programs are compiled as PE-win32.
Getting documentation
---------------------
I'm not the inventor of OS/2. IBM still did the work, and they did also good work in terms of documentation. If you plan to do core-dll work, you'll also need NT-Native-API documentation. There exists a book called "The Native API", but there should be a preliminary PDF-file floating around. OS/2-API documentation is available on the CDs belonging to your OS/2-compiler. If you develope under OS/2 you have an INF-viewer on board. If your developementsystem is NT, I recomend you OVIEW (http://hobbes.nmsu.edu/pub/windows/win_inf.zip). This two 'books' should be, what you need.
Contacting me
-------------
Bevore you start, have a talk with me. We don't want to do useless work or do work twice. So write to ros2@dantepark.de

View File

@@ -1,67 +0,0 @@
<html>
<head>
<title>OS/2 subsystem for ReactOS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1><b>OS/2 subsystem for ReactOS (ROS/2)</b></h1>
<h2><font color="#009966">Introduction</font></h2>
<p>The OS/2 subsystem is being developed to enable NT-like systems (like WinNT
and ReactOS) to run 32-Bit OS/2 applications natively. With this it shall provide
binary compatiblility on x86-Based systems. It is intended to port the ROS/2
also to other platforms supported by ReactOS / NT. It is planned to provide
source code compatibility on these platforms. Yeeahh, OS/2 for PowerPC is in
sight.</p>
<h2><font color="#009966">Components</font></h2>
<p>ROS/2 consists of the following components:</p>
<ul>
<li>OS2SS.EXE - A native application that implements the personality of the
OS/2 kernel.</li>
<li>OS2.EXE - A win32 application that does the interaction of the OS/2 apps
with the desktop.</li>
<li>Core DLLs - These DLLs that make OS/2 programs interface with the kernel/sub
system (i.E. DOSCALLS.DLL). </li>
<li>Additional DLLs - DLLs that provide additional APIs for OS/2 apps. This
includes Presentation Manager.</li>
</ul>
<h2><font color="#009966">Current state</font></h2>
<p>Up to now just a fragment of DOSCALLS.DLL exists. The biggest problem are the
os2 API headers which are (C) by IBM. So help is still welcome.</p>
<h2><font color="#009966">16-Bit issues</font></h2>
<p>It is not intended to support 16-bit OS/2 applications. This would make the
system inconsistent and produce much more work that use. But there is still
one issue: Current textmode applications are either 16-bit or use thunking to
call the 16-bit APIs. These 32-Bit thunking applications have to be supported.
We are still thinking how to accomplish that. </p>
<h2><font color="#009966">32-Bit issues</font></h2>
<p>It is planned to replace the current MOU- KBD- MSG- and VIO- subsystems with
the <a href="http://homepages.tesco.net/%7EJ.deBoynePollard/Softwares/conapi.html">Unicode
Console API</a>. This is also the foundation for other platforms we want to
provide source code compatibility with. So nearly every 32-Bit processor can
be supported. It sould even be possible to implement a 64-bit OS/2 API.</p>
<h2><font color="#009966">Architecture</font></h2>
<p>To understand the architecture of ReactOS or WinNT read a book from the &quot;Inside
Windows NT&quot;-series. The architecture of ROS/2 is like every normal subsystem.
When OS2SS.EXE starts, it creates an object directory named os2 and therein
it creates a port object with the name Os2API. A port is something like a socket.
Two programs can comunicate with each other via a port. The port Os2API provides
the LPC API of the OS2SS.EXE - the actual subsystem. <br>
Every OS/2 program that is loaded, is linked with DOSCALLS.DLL and NTDLL.DLL
- the interface to the NT-kernel. Since DOSCALLS is implemented using NTDLL.DLL,
every OS/2 app has it in its adress space. Many functions in DOSCALLS.DLL are
implemented by just wrapping NTDLL.DLL functions. Some functions however need
assistance by the subsystem. For this reason the app makes an LPC to OS2SS.EXE.
LPC means local procedure call and it is a very fast version of RPC. Together
with the first application also OS2.EXE starts up. OS2.EXE runs in the win32
subsystem with the security of the current user. OS2.EXE is used to gather keyboard
and mouse input and to show console windows and PM-windows of all OS/2 programms
of the current user. In order to accomplish this OS2.EXE creates a port object
in the os2 object directory named Os2Interact. OS/2 applications have a connection
to OS2.EXE, too. OS2SS.EXE and OS2.EXE also talk to each other. An OS/2 application
then makes LPCs either to OS2.EXE directly or if required via OS2SS.EXE.</p>
<p>Details</p>
<p>&nbsp;</p>
<p>LPC Documentation</p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,91 +0,0 @@
/* $ $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* FILE: dll/doscalls.c
* PURPOSE: supportheader for Kernelservices.
* Use this file if your dll or application
* is going to use both, the os2 base services
* as well as the native API of NTDLL.DLL
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 1-08-2002 Created
*/
/* How to use:
History got us another time. If you want to write a module
that uses either native-api or os2-services...no problem.
But if you want to use both of them you run into type conflicts.
BOOL is not very surprising. But there are many other types
whose names are equal. This results from the fact that NT
should originally become OS/2 3.0.
So your solution lies in including this file instead of os2.h
and ntddk.h. What this file here does is, it puts the os2-types+
functions into the namespace OS2 while the nt-types+functions are
put into the namespace NT. The still conflicting #defines are handled
like this: If ntddk.h defintes a symbol FOO and os2.h does the same,
this file here undefines the ntddk.h-one and renames it to NT_FOO.
This is only done for conflicting symbols. Of course, this list is a
source for errors. But is there a better solution than renaming
all of the symbols?
*/
#ifndef __ROS2_H__
#define __ROS2_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
namespace NT
{
#include <ddk/ntddk.h>
#include <napi/types.h>
}
/* rename all the symbols */
#define NT_FILE_CREATE FILE_CREATE
#undef FILE_CREATE
#define NT_CREATE_SUSPENDED CREATE_SUSPENDED
#undef CREATE_SUSPENDED
namespace OS2
{
#include "os2.h"
}
using namespace OS2;
APIRET STDCALL Dos32Open(PSZ pszFileName, PHFILE pHf,
PULONG pulAction, ULONG cbFile,
ULONG ulAttribute, ULONG fsOpenFlags,
ULONG fsOpenMode, PVOID reserved ); //ULONGPEAOP2 peaop2)
APIRET STDCALL Dos32Close(HFILE hFile);
APIRET STDCALL Dos32Read(HFILE hFile, PVOID pBuffer,
ULONG cbRead, PULONG pcbActual);
APIRET STDCALL Dos32Write(HFILE hFile, PVOID pBuffer,
ULONG cbWrite, PULONG pcbActual);
ULONG STDCALL DosSleep (ULONG ulInterval);
ULONG STDCALL DosBeep (ULONG ulFrequency, ULONG ulDuration);
VOID STDCALL DosExit (ULONG ulAction, ULONG ulResult);
//ULONG STDCALL DosDevIOCtl (HFILE hDevice, ULONG ulCategory, ULONG ulFunction,
// PVOID pParams, ULONG ulParamsLengthMax, PULONG pulParamsLength,
// PVOID pData, ULONG ulDataLengthMax, PULONG pulDataLength);
typedef ULONG foo_TID;
typedef foo_TID* foo_PTID;
typedef void (*foo_PFNTHREAD)(ULONG ulThreadArg);
ULONG STDCALL DosCreateThread (foo_PTID ptidThreadID, foo_PFNTHREAD pfnThreadAddr,
ULONG ulThreadArg, ULONG ulFlags, ULONG ulStackSize);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __ROS2_H__ */

View File

@@ -1,20 +0,0 @@
@echo off
if "%1" == "" goto NoParameter
set ROS_INSTALL=%1
goto Install
:NoParameter
set ROS_INSTALL=c:\reactos
:Install
echo Installing to %ROS_INSTALL%
@echo off
md %ROS_INSTALL%
md %ROS_INSTALL%\bin
md %ROS_INSTALL%\symbols
md %ROS_INSTALL%\system32
copy ..\os2\apps\bepslep\bepslep.exe %ROS_INSTALL%\bin
copy ..\os2\lib\doscalls\doscalls.dll %ROS_INSTALL%\system32
copy ..\os2\lib\doscalls\doscalls.sym %ROS_INSTALL%\symbols
copy ..\os2\server\os2ss.exe %ROS_INSTALL%\system32
copy ..\os2\server\os2ss.sym %ROS_INSTALL%\symbols

View File

@@ -1,5 +0,0 @@
*.exe
*.o
*.sym
*.dll
*.coff

View File

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

View File

@@ -1,65 +0,0 @@
/* $Id: devices.cpp,v 1.5 2004/01/31 01:29:11 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: devices.cpp
* CONTAINS: device io ctl main function.
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
* 10-11-2002 Done som little things
*/
#define INCL_DOSDEVICES
#define INCL_DOSERRORS
#include "ros2.h"
/*******************************************/
/* DosDevIOCtl performs control functions */
/* on a device specified by an opened */
/* device handle. */
/*******************************************/
/*HFILE hDevice; Device handle returned by DosOpen, or a standard (open) device handle. */
/*ULONG category; Device category. */
/*ULONG function; Device-specific function code. */
/*PVOID pParams; Address of the command-specific argument list. */
/*ULONG cbParmLenMax; Length, in bytes, of pParams. */
/*PULONG pcbParmLen; Pointer to the length of parameters. */
/*PVOID pData; Address of the data area. */
/*ULONG cbDataLenMax; Length, in bytes, of pData. */
/*PULONG pcbDataLen; Pointer to the length of data. */
/*APIRET ulrc; Return Code.
ulrc (APIRET) - returns
Return Code.
DosDevIOCtl returns one of the following values:
0 NO_ERROR
1 ERROR_INVALID_FUNCTION
6 ERROR_INVALID_HANDLE
15 ERROR_INVALID_DRIVE
31 ERROR_GEN_FAILURE
87 ERROR_INVALID_PARAMETER
111 ERROR_BUFFER_OVERFLOW
115 ERROR_PROTECTION_VIOLATION
117 ERROR_INVALID_CATEGORY
119 ERROR_BAD_DRIVER_LEVEL
163 ERROR_UNCERTAIN_MEDIA
165 ERROR_MONITORS_NOT_SUPPORTED
*/
APIRET STDCALL DosDevIOCtl(HFILE hDevice, ULONG category, ULONG function,
PVOID pParams,ULONG cbParmLenMax,PULONG pcbParmLen,
PVOID pData,ULONG cbDataLenMax,PULONG pcbDataLen)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,97 +0,0 @@
/* $Id: ioctl_async.cpp,v 1.2 2004/01/31 01:29:11 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: ipctl_async.cpp
* PURPOSE: This file is to be directly included into devices.cpp
* CONTAINS: implementation of the category 1 (async I/O)
* ioctl functioncodes.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 10-11-2002 Created
*/
/* This function implements the async ioctls. It
is called from the real DosIOCtl function. This
function implies that it is only called, if the
cathegory was 0x01.
All other parameters are the same as DosIoCtl.
FIXME: implement me
*/
APIRET EvaluateAsyncIoCtl( HFILE hDevice, ULONG function,
PVOID pParams, ULONG cbParmLenMax, PULONG pcbParmLen,
PVOID pData, ULONG cbDataLenMax, PULONG pcbDataLen)
{
switch( function )
{
case 0x41: //ASYNC_SETBAUDRATE
//+------------------------------------+
//|Field Length C Datatype |
//|------------------------------------|
//|Bit Rate WORD USHORT |
//+------------------------------------+
break;
case 0x42: // Set Line Characteristics (stop, parity, data bits)
return ERROR_INVALID_PARAMETER; // example
break;
case 0x43: // Extended Set Bit Rate .
break;
case 0x44: // Transmit Byte Immediate .
break;
case 0x45: // Set Break OFF .
break;
case 0x46: // Set Modem Control Signals .
break;
case 0x47: // Behave as if XOFF Received (stop transmit) .
break;
case 0x48: // Behave as if XON Received (start transmit) .
break;
case 0x49: // Reserved .
break;
case 0x53: // Set Device Control Block (DCB) Parameters .
break;
case 0x54: // Set Enhanced Mode Parameters .
break;
case 0x61: // Query Current Bit Rate .
break;
case 0x62: // Query Line Characteristics .
break;
case 0x63: // Extended Query Bit Rate .
break;
case 0x64: // Query COM Status .
break;
case 0x65: // Query Transmit Data Status .
break;
case 0x66: // Query Modem Control Output Signals .
break;
case 0x67: // Query Current Modem Input Signals .
break;
case 0x68: // Query Number of Characters in Receive Queue .
break;
case 0x69: // Query Number of Characters in Transmit Queue .
break;
case 0x72: // Query COM Event Information .
break;
case 0x73: // Query Device Control Block (DCB) Parameters .
break;
case 0x74: // Query Enhanced Mode Parameters .
break;
default:
return ERROR_INVALID_FUNCTION;
break;
}
return ERROR_INVALID_FUNCTION;
}
/* EOF */

View File

@@ -1,35 +0,0 @@
; $Id: doscalls.def,v 1.6 2004/01/31 01:29:11 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
<<<<<<< doscalls.def
DosSleep
DosClose
DosOpen
DosRead
DosWrite
DosDevIOCtl
DosBeep
DosExit
DosCreateThread
=======
DosSleep
Dos32Close
Dos32Open
Dos32Read
Dos32Write
;DosDevIOCtl
DosBeep
DosExit
DosCreateThread
>>>>>>> 1.5
; EOF

View File

@@ -1,23 +0,0 @@
; $Id: doscalls.def.bak,v 1.1 2002/09/04 22:19:47 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
Dos32Sleep@4 @229
Dos32Close@4 @257
Dos32Open@32 @273
Dos32Read@16 @281
Dos32Write@16 @282
Dos32DevIOCtl@36 @284
Dos32Beep@8 @286
Dos32Exit@8 @234
Dos32CreateThread@20 @311
; EOF

View File

@@ -1,35 +0,0 @@
; $Id: doscalls.edf,v 1.4 2004/01/31 01:29:11 robertk Exp $
;
; Def for doscalls.dll - part of the OS/2-sub system
; for ReactOS. Provides Access to OS/2 kernel services.
LIBRARY doscalls.dll
DESCRIPTION "Part of the ReactOS OS/2 sub system, provides base kernel services to OS/2-apps"
EXPORTS
; FIXME: fill in all exports
<<<<<<< doscalls.edf
DosSleep=DosSleep
DosClose=DosClose
DosOpen=DosOpen
DosRead=DosRead
DosWrite=DosWrite
DosDevIOCtl=DosDevIOCtl
DosBeep=DosBeep
DosExit=DosExit
DosCreateThread=DosCreateThread
=======
DosSleep=DosSleep@4 @229
Dos32Close=Dos32Close@4 @257
Dos32Open=Dos32Open@32 @273
Dos32Read=Dos32Read@16 @281
Dos32Write=Dos32Write@16 @282
;DosDevIOCtl=DosDevIOCtl@36 @284
DosBeep=DosBeep@8 @286
DosExit=DosExit@8 @234
DosCreateThread=DosCreateThread@20 @311
>>>>>>> 1.3
; EOF

View File

@@ -1,38 +0,0 @@
#include <defines.h>
#include <reactos/resource.h>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
VS_VERSION_INFO VERSIONINFO
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "OS2 subsystem base services\0"
VALUE "FileVersion", RES_STR_FILE_VERSION
VALUE "InternalName", "doscalls\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
VALUE "OriginalFilename", "doscalls.dll\0"
VALUE "ProductName", RES_STR_PRODUCT_NAME
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

View File

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

View File

@@ -1,179 +0,0 @@
/* $Id: directory.cpp,v 1.1 2002/09/04 22:19:47 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: directory.cpp
* PURPOSE: Kernelservices for OS/2 apps
* CONTAINS: Directory related CP-functions.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 10-11-2002 Created
*/
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#include "ros2.h"
/******************************************
DosDelete removes a file name from a
directory. The deleted file may be
recoverable.
pszFile (PSZ) - input
Address of the name of the file to be deleted.
ulrc (APIRET) - returns
Return Code.
DosDelete returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
26 ERROR_NOT_DOS_DISK
32 ERROR_SHARING_VIOLATION
36 ERROR_SHARING_BUFFER_EXCEEDED
87 ERROR_INVALID_PARAMETER
206 ERROR_FILENAME_EXCED_RANGE
*******************************************/
APIRET DosDelete(PSZ pszFile)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/******************************************
DosDeleteDir removes a subdirectory
from the specified disk.
pszDir (PSZ) - input
Address of the fully qualified path name of the subdirectory to be removed.
ulrc (APIRET) - returns
Return Code.
DosDeleteDir returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
16 ERROR_CURRENT_DIRECTORY
26 ERROR_NOT_DOS_DISK
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
206 ERROR_FILENAME_EXCED_RANGE
******************************************/
APIRET DosDeleteDir(PSZ pszDir)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/*******************************************
DosCopy copies the source file or
subdirectory to the destination file or
subdirectory.
pszOld (PSZ) - input
Address of the ASCIIZ path name of the source file,
subdirectory, or character device.
Global file-name characters are not allowed.
pszNew (PSZ) - input
Address of the ASCIIZ path name of the target file,
subdirectory, or character device.
Global file-name characters are not allowed.
option (ULONG) - input
ULONG bit flags that define how the DosCopy
function is done.
Bit Description
31-3 Reserved. These bits must be set to
zero.
2 DCPY_FAILEAS (0x00000004)
Discard the EAs if the source file
contains EAs and the destination file
system does not support EAs.
0 Discard the EAs (extended attributes) if
the destination file system does not
support EAs.
1 Fail the copy if the destination file
system does not support EAs.
1 DCPY_APPEND (x00000002)
Append the source file to the target
file's end of data.
0 Replace the target file with the source
file.
1 Append the source file to the target file's
end of data.
This is ignored when copying a
directory, or if the target file does not
exist.
0 DCPY_EXISTING (0x00000001)
Existing Target File Disposition.
0 Do not copy the source file to the target
if the file name already exists within the
target directory. If a single file is being
copied and the target already exists, an
error is returned.
1 Copy the source file to the target even if
the file name already exists within the
target directory.
Bit flag DCPY_FAILEAS can be used in
combination with bit flag DCPY_APPEND or
DCPY_EXISTING.
ulrc (APIRET) - returns
Return Code.
DosCopy returns one of the following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
26 ERROR_NOT_DOS_DISK
32 ERROR_SHARING_VIOLATION
36 ERROR_SHARING_BUFFER_EXCEEDED
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
112 ERROR_DISK_FULL
206 ERROR_FILENAME_EXCED_RANGE
267 ERROR_DIRECTORY
282 ERROR_EAS_NOT_SUPPORTED
283 ERROR_NEED_EAS_FOUND
*******************************************/
APIRET DosCopy(PSZ pszOld,PSZ pszNew, ULONG option)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,199 +0,0 @@
/* $Id: openclose.cpp,v 1.5 2004/01/31 01:29:11 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: openclose.cpp
* PURPOSE: Kernelservices for OS/2 apps
* CONTAINS: Open close write and handle related stuff.
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
*/
#define INCL_DOSFILEMGR
#define INCL_DOSERRORS
#include "ros2.h"
<<<<<<< openclose.cpp
APIRET STDCALL DosOpen(PSZ pszFileName, PHFILE pHf,
=======
APIRET STDCALL Dos32Open(PSZ pszFileName, PHFILE pHf,
>>>>>>> 1.4
PULONG pulAction, ULONG cbFile,
ULONG ulAttribute, ULONG fsOpenFlags,
ULONG fsOpenMode, PVOID reserved ) //ULONGPEAOP2 peaop2)
{
/* NTAPI
ZwCreateFile(
OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER AllocationSize OPTIONAL,
IN ULONG FileAttributes,
IN ULONG ShareAccess,
IN ULONG CreateDisposition,
IN ULONG CreateOptions,
IN PVOID EaBuffer OPTIONAL,
IN ULONG EaLength
);*/
/*
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK IoStatusBlock;
UNICODE_STRING NtPathU;
HANDLE FileHandle;
NTSTATUS Status;
ULONG Flags = 0;
switch (dwCreationDisposition)
{
case CREATE_NEW:
dwCreationDisposition = FILE_CREATE;
break;
case CREATE_ALWAYS:
dwCreationDisposition = FILE_OVERWRITE_IF;
break;
case OPEN_EXISTING:
dwCreationDisposition = FILE_OPEN;
break;
case OPEN_ALWAYS:
dwCreationDisposition = OPEN_ALWAYS;
break;
case TRUNCATE_EXISTING:
dwCreationDisposition = FILE_OVERWRITE;
}
DPRINT("CreateFileW(lpFileName %S)\n",lpFileName);
if (dwDesiredAccess & GENERIC_READ)
dwDesiredAccess |= FILE_GENERIC_READ;
if (dwDesiredAccess & GENERIC_WRITE)
dwDesiredAccess |= FILE_GENERIC_WRITE;
if (!(dwFlagsAndAttributes & FILE_FLAG_OVERLAPPED))
{
Flags |= FILE_SYNCHRONOUS_IO_ALERT;
}
if (!RtlDosPathNameToNtPathName_U ((LPWSTR)lpFileName,
&NtPathU,
NULL,
NULL))
return INVALID_HANDLE_VALUE;
DPRINT("NtPathU \'%S\'\n", NtPathU.Buffer);
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);
ObjectAttributes.RootDirectory = NULL;
ObjectAttributes.ObjectName = &NtPathU;
ObjectAttributes.Attributes = OBJ_CASE_INSENSITIVE;
ObjectAttributes.SecurityDescriptor = NULL;
ObjectAttributes.SecurityQualityOfService = NULL;
Status = NtCreateFile (&FileHandle,
dwDesiredAccess,
&ObjectAttributes,
&IoStatusBlock,
NULL,
dwFlagsAndAttributes,
dwShareMode,
dwCreationDisposition,
Flags,
NULL,
0);
if (!NT_SUCCESS(Status))
{
SetLastErrorByStatus (Status);
return INVALID_HANDLE_VALUE;
}
return FileHandle;*/
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* close a Handle. seems finished */
APIRET STDCALL DosClose(HFILE hFile)
{
NT::NTSTATUS nErrCode;
nErrCode = NT::ZwClose( (NT::HANDLE)hFile );
switch( nErrCode )
{
/*
case STATUS_SUCCESS:
return NO_ERROR;
case STATUS_INVALID_HANDLE:
return ERROR_INVALID_HANDLE;
case STATUS_HANDLE_NOT_CLOSABLE:
return ERROR_FILE_NOT_FOUND;
*/
}
return nErrCode;
}
APIRET STDCALL DosRead(HFILE hFile, PVOID pBuffer,
ULONG cbRead, PULONG pcbActual)
{
NT::NTSTATUS nErrCode;
NT::IO_STATUS_BLOCK isbStatus;
// read data from file
nErrCode = NT::ZwReadFile( (NT::HANDLE)hFile, NULL, NULL, NULL,
&isbStatus, pBuffer, cbRead,
NULL, NULL );
// contains the # bytes actually read.
*pcbActual = isbStatus.Information;
switch(nErrCode)
{
/*
case STATUS_INVALID_HANDLE:
return ERROR_INVALID_HANDLE;
// FIXME: complete this
*/
}
return NO_ERROR;
}
/* Generic write to a stream given by hFile */
APIRET STDCALL DosWrite(HFILE hFile, PVOID pBuffer,
ULONG cbWrite, PULONG pcbActual)
{
NT::NTSTATUS nErrCode;
NT::IO_STATUS_BLOCK StatusBlk;
nErrCode = NtWriteFile( (NT::HANDLE)hFile, NULL, NULL, NULL,
&StatusBlk, pBuffer, cbWrite, 0, NULL );
// FIXME *pcbActual = StatusBlk.Information;
// do an errorcode translation FIXME: correct
return ERROR_CALL_NOT_IMPLEMENTED;
switch(nErrCode)
{
/*
case STATUS_SUCCESS:
case STATUS_PENDING:
case STATUS_ACCESS_DENIED:
case STATUS_INVALID_HANDLE:
case STATUS_FILE_LOCK_CONFLICT:
return 0;
*/
}
return 0;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,61 +0,0 @@
# $Id: makefile,v 1.7 2004/01/31 01:29:11 robertk Exp $
PATH_TO_TOP = ../../../reactos
PATH_TO_OS2_TOP = ../..
TARGET_TYPE = dynlink
#TARGET_DEFONLY = yes
TARGET_NAME = doscalls
TARGET_BASE = 0x68E00000
TARGET_CPPFLAGS =\
-Wall \
-I$(PATH_TO_OS2_TOP)/include \
-D__DOSCALLSDLL__
# removed CFLAGX
# -fno-builtin \
# -nostdinc \
# -nostdlib \
TARGET_ENTRY = _DllMain@12
TARGET_LFLAGS = -nostartfiles
TARGET_LIBS = doscalls.a
TARGET_SDKLIBS = ntdll.a
TARGET_GCCLIBS = stdc++
TARGET_OBJECTS = $(TARGET_NAME).o
MISC_OBJECTS = misc/doscalls.o misc/error.o
FILE_OBJECTS = file/openclose.o
RUN_OBJECTS = run/process.o
DEVICES_OBJECTS = devices/devices.o
OTHER_OBJECTS =
SYNC_OBJECTS =
TARGET_OBJECTS = $(FILE_OBJECTS) $(RUN_OBJECTS) $(DEVICES_OBJECTS) \
$(MISC_OBJECTS) $(OTHER_OBJECTS) $(SYNC_OBJECTS)
#TARGET_CLEAN = file/*.o vio/*.o sync/*.o mem/*.o \
# misc/*.o mou/*.o kbd/*.o run/*.o \
# doscalls.dll temp.exp
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

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

View File

@@ -1,33 +0,0 @@
/* $Id: doscalls.cpp,v 1.1 2002/07/26 00:23:13 robertk Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* FILE: dll/doscalls.c
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
*/
// here's only the NTDLL needet
#include <ddk/ntddk.h>
BOOL STDCALL DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
switch (ul_reason_for_call)
{
case 1://DLL_PROCESS_ATTACH:
case 2://DLL_THREAD_ATTACH:
case 3://DLL_THREAD_DETACH:
case 0://DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

View File

@@ -1,165 +0,0 @@
/* $Id: error.cpp,v 1.3 2003/01/07 16:23:11 robd Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: error.cpp
* CONTAINS: Error related CP-functions.
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
*/
#define INCL_DOSPROCESS
#define INCL_DOSERRORS
#include "ros2.h"
// we need the extra definitions of this file
namespace NT {
#include <ddk/ntddbeep.h>
}
/*******************************************
DosBeep generates sound from the
speaker.
freq (ULONG) - input
Cycles per second (Hertz) in the range of 0x25 to
0x7FFF.
dur (ULONG) - input
The length of the sound in milliseconds.
ulrc (APIRET) - returns
Return Code.
DosBeep returns one of the following values:
0 NO_ERROR
395 ERROR_INVALID_FREQUENCY
*******************************************/
APIRET STDCALL DosBeep(ULONG freq, ULONG dur)
{
NT::BEEP_SET_PARAMETERS BeepSetParameters;
NT::HANDLE hBeep;
NT::IO_STATUS_BLOCK ComplStatus;
NT::UNICODE_STRING unistr;
NT::NTSTATUS stat;
NT::OBJECT_ATTRIBUTES oa = {sizeof oa, 0, &unistr, NT::OBJ_CASE_INSENSITIVE, 0, 0};
// init String still bevore use.
NT::RtlInitUnicodeString( &unistr, (NT::PWSTR)L"\\\\.\\Beep" );
if( freq<0x25 || freq>0x7FFF )
return ERROR_INVALID_FREQUENCY; //395; //
/* Set beep data */
BeepSetParameters.Frequency = freq;
BeepSetParameters.Duration = dur;
/* open the beep dirver */
stat = NT::ZwOpenFile( &hBeep,
FILE_READ_DATA | FILE_WRITE_DATA,
&oa,
&ComplStatus,
0, // no sharing
FILE_OPEN );
if ( stat<0 )
{
return ERROR_NOT_READY;
}
/* actually beep */
NT::ZwDeviceIoControlFile(hBeep, 0, // Event
0, // APC-routine
0, // UserAPCContext
&ComplStatus, IOCTL_BEEP_SET,
&BeepSetParameters,
sizeof(NT::BEEP_SET_PARAMETERS),
NULL,
0 );
NT::ZwClose(hBeep);
return NO_ERROR;
}
/******************************************
DosError disables or enables error
notification to end users.
error (ULONG) - input
Error and Exception pop-up flags.
The unused high-order bits are reserved, and must be zero. The following values can be specified
for this parameter. They can be combined using the "logical or" ( | ) operator.
FERR_DISABLEHARDERR (0x00000000)
Disable hard error pop-ups.
FERR_ENABLEHARDERR (0x00000001)
Enable hard error pop-ups.
FERR_ENABLEEXCEPTION (0x00000000)
Enable program exception and untrapped numeric-processor exception pop-ups.
FERR_DISABLEEXCEPTION (0x00000002)
Disable program exception and untrapped numeric-processor exception pop-ups.
ulrc (APIRET) - returns
Return Code.
DosError returns one of the following values:
0 NO_ERROR
87 ERROR_INVALID_PARAMETER
*******************************************/
APIRET DosError( ULONG error)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/*******************************************
DosMove moves a file object to another
location, and changes its name.
pszOld (PSZ) - input
Address of the old path name of the file or
subdirectory to be moved.
pszNew (PSZ) - input
Address of the new path name of the file or
subdirectory.
ulrc (APIRET) - returns
Return Code.
DosMove returns the one of following values:
0 NO_ERROR
2 ERROR_FILE_NOT_FOUND
3 ERROR_PATH_NOT_FOUND
5 ERROR_ACCESS_DENIED
17 ERROR_NOT_SAME_DEVICE
26 ERROR_NOT_DOS_DISK
32 ERROR_SHARING_VIOLATION
36 ERROR_SHARING_BUFFER_EXCEEDED
87 ERROR_INVALID_PARAMETER
108 ERROR_DRIVE_LOCKED
206 ERROR_FILENAME_EXCED_RANGE
250 ERROR_CIRCULARITY_REQUESTED
251 ERROR_DIRECTORY_IN_CDS
*******************************************/
APIRET DosMove(PSZ pszOld, PSZ pszNew)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

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

View File

@@ -1,58 +0,0 @@
/* $Id: process.cpp,v 1.6 2003/01/07 16:23:11 robd Exp $
*/
/*
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS OS/2 sub system
* PART: doscalls.dll
* FILE: process.cpp
* CONTAINS: process and thread related CP-functions.
* PURPOSE: Kernelservices for OS/2 apps
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
* REVISION HISTORY:
* 13-03-2002 Created
* 25-07-2002 Work to make it compile
*/
//#if defined (INCL_DOS)
#define INCL_DOSPROCESS
#define INCL_DOSERRORS
#include "ros2.h"
APIRET STDCALL DosSleep(ULONG msec)
{
NT::NTSTATUS stat;
NT::TIME Interv;
Interv.QuadPart= -(10000 * msec);
stat = NT::NtDelayExecution( TRUE, &Interv );
return 0;
}
/* $Id: process.cpp,v 1.6 2003/01/07 16:23:11 robd Exp $ */
/* Terminates the current thread or the current Process.
Decission is made by action
FIXME: move this code to OS2.EXE */
VOID APIENTRY DosExit(ULONG action, ULONG result)
{
// decide what to do
if( action == EXIT_THREAD)
{
NT::NtTerminateThread( NULL, result );
}
else // EXIT_PROCESS
{
NT::NtTerminateProcess( NULL, result );
}
}
APIRET STDCALL DosCreateThread(PTID ptid, PFNTHREAD pfn,
ULONG param, ULONG flag, ULONG cbStack)
{
return ERROR_CALL_NOT_IMPLEMENTED;
}
/* EOF */

View File

@@ -1,3 +0,0 @@
*.exe
*.o
*.sym

View File

@@ -1,34 +0,0 @@
# $Id: makefile,v 1.3 2003/01/12 02:03:06 robd Exp $
PATH_TO_TOP = ../../reactos
TARGET_TYPE = program
TARGET_NORC = yes
TARGET_APPTYPE = native
TARGET_NAME = os2ss
TARGET_INSTALLDIR = system32
TARGET_CFLAGS = -D__NTAPP__
TARGET_SDKLIBS = ntdll.a kernel32.a csrss.a
TARGET_GCCLIBS = stdc++
OBJECTS_API =
OBJECTS_MISC = \
$(TARGET_NAME).o
TARGET_OBJECTS = \
$(OBJECTS_API) \
$(OBJECTS_MISC)
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,157 +0,0 @@
/* $Id: os2ss.cpp,v 1.2 2003/01/07 16:23:12 robd Exp $
*
* reactos/subsys/csrss/api/process.c
*
* "\windows\ApiPort" port process management functions
*
* ReactOS Operating System
*/
// TODO: Rewrite the whole file. This is just a copy
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#include <ntos/synch.h>
extern "C" {
BOOL CsrServerInitialization(ULONG ArgumentCount, PWSTR *ArgumentArray);
VOID DisplayString(LPCWSTR lpwString);
//BOOL STDCALL CsrServerInitialization (ULONG ArgumentCount, PWSTR *ArgumentArray);
//VOID STDCALL DisplayString(LPCWSTR lpwString);
//VOID STDCALL PrintString (char* fmt, ...);
//NTSTATUS STDCALL NtDisplayString(IN PUNICODE_STRING DisplayString);
void
DisplayString(LPCWSTR lpwString)
{
UNICODE_STRING us;
RtlInitUnicodeString(&us, lpwString);
NtDisplayString(&us);
}
/*
void
PrintString(char* fmt,...)
{
char buffer[512];
va_list ap;
UNICODE_STRING UnicodeString;
ANSI_STRING AnsiString;
va_start(ap, fmt);
vsprintf(buffer, fmt, ap);
va_end(ap);
RtlInitAnsiString(&AnsiString, buffer);
RtlAnsiStringToUnicodeString(&UnicodeString,
&AnsiString,
TRUE);
NtDisplayString(&UnicodeString);
RtlFreeUnicodeString(&UnicodeString);
}
*/
}
/* server variables */
int NumProcesses;
/* Native image's entry point */
void NtProcessStartup (PPEB Peb)
{
PRTL_USER_PROCESS_PARAMETERS ProcParams;
PWSTR ArgBuffer;
PWSTR *argv;
ULONG argc = 0;
int i = 0;
int afterlastspace = 0;
OBJECT_ATTRIBUTES ObjectAttributes;
HANDLE CsrssInitEvent;
UNICODE_STRING UnicodeString;
NTSTATUS Status;
ProcParams = RtlNormalizeProcessParams (Peb->ProcessParameters);
argv = (PWSTR *)RtlAllocateHeap (Peb->ProcessHeap,
0, 512 * sizeof(PWSTR));
ArgBuffer = (PWSTR)RtlAllocateHeap (Peb->ProcessHeap,
0,
ProcParams->CommandLine.Length + sizeof(WCHAR));
memcpy (ArgBuffer,
ProcParams->CommandLine.Buffer,
ProcParams->CommandLine.Length + sizeof(WCHAR));
while (ArgBuffer[i])
{
if (ArgBuffer[i] == L' ')
{
argc++;
ArgBuffer[i] = L'\0';
argv[argc-1] = &(ArgBuffer[afterlastspace]);
i++;
while (ArgBuffer[i] == L' ')
i++;
afterlastspace = i;
}
else
{
i++;
}
}
if (ArgBuffer[afterlastspace] != L'\0')
{
argc++;
ArgBuffer[i] = L'\0';
argv[argc-1] = &(ArgBuffer[afterlastspace]);
}
RtlInitUnicodeString(&UnicodeString,
L"\\CsrssInitDone");
InitializeObjectAttributes(&ObjectAttributes,
&UnicodeString,
EVENT_ALL_ACCESS,
0,
NULL);
Status = NtOpenEvent(&CsrssInitEvent,
EVENT_ALL_ACCESS,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
{
DbgPrint("CSR: Failed to open csrss notification event\n");
}
if (CsrServerInitialization (argc, argv) == TRUE)
{
NtSetEvent(CsrssInitEvent,
NULL);
RtlFreeHeap (Peb->ProcessHeap,
0, argv);
RtlFreeHeap (Peb->ProcessHeap,
0,
ArgBuffer);
/* terminate the current thread only */
NtTerminateThread( NtCurrentThread(), 0 );
}
else
{
DisplayString( L"CSR: Subsystem initialization failed.\n" );
RtlFreeHeap (Peb->ProcessHeap,
0, argv);
RtlFreeHeap (Peb->ProcessHeap,
0,
ArgBuffer);
/*
* Tell SM we failed.
*/
NtTerminateProcess( NtCurrentProcess(), 0 );
}
}

Binary file not shown.

View File

@@ -1,154 +0,0 @@
# $Id: Makefile,v 1.7 2003/01/05 18:29:41 robd Exp $
#
# ReactOS POSIX+ Personality
#
PATH_TO_TOP = ../reactos
include $(PATH_TO_TOP)/rules.mak
POSIX_OTHER = server #lib
POSIX_TOOLS = mksystab
POSIX_LIBS = psxdll psxx
POSIX_APPS = baresh posixw32
POSIX_MODULES = $(POSIX_OTHER) $(POSIX_TOOLS) $(POSIX_LIBS) $(POSIX_APPS)
all: implib $(POSIX_MODULES)
implib: $(POSIX_MODULES:%=%_implib)
clean: $(POSIX_MODULES:%=%_clean)
install: $(POSIX_MODULES:%=%_install)
#dist: $(TOOLS_PATH)/rcopy$(EXE_POSTFIX) dist_clean dist_dirs \
# $(POSIX_MODULES:%=%_dist)
.PHONY: all implib clean
#.PHONY: all implib install dist
#
# Other POSIX+ Modules
#
$(POSIX_OTHER): %:
make -f Makefile -C $(POSIX_PATH)/$*
$(POSIX_OTHER:%=%_implib): %_implib:
make -f Makefile -C $(POSIX_PATH)/$* implib
$(POSIX_OTHER:%=%_clean): %_clean:
make -f Makefile -C $(POSIX_PATH)/$* clean
$(POSIX_OTHER:%=%_dist): %_dist:
make -f Makefile -C $(POSIX_PATH)/$* dist
$(POSIX_OTHER:%=%_install): %_install:
make -f Makefile -C $(POSIX_PATH)/$* install
.PHONY: $(POSIX_OTHER) $(POSIX_OTHER:%=%_implib) $(POSIX_OTHER:%=%_clean) $(POSIX_OTHER:%=%_install) $(POSIX_OTHER:%=%_dist)
#
# POSIX+ Tools
#
$(POSIX_TOOLS): %:
make -f Makefile -C $(POSIX_PATH)/tools/$*
$(POSIX_TOOLS:%=%_implib): %_implib:
make -f Makefile -C $(POSIX_PATH)/tools/$* implib
$(POSIX_TOOLS:%=%_clean): %_clean:
make -f Makefile -C $(POSIX_PATH)/tools/$* clean
$(POSIX_TOOLS:%=%_dist): %_dist:
make -f Makefile -C $(POSIX_PATH)/tools/$* dist
$(POSIX_TOOLS:%=%_install): %_install:
make -f Makefile -C $(POSIX_PATH)/tools/$* install
.PHONY: $(POSIX_LIBS) $(POSIX_LIBS:%=%_implib) $(POSIX_LIBS:%=%_clean) $(POSIX_LIBS:%=%_install) $(POSIX_LIBS:%=%_dist)
#
# POSIX+ DLLs
#
$(POSIX_LIBS): %:
make -f Makefile -C $(POSIX_PATH)/lib/$*
$(POSIX_LIBS:%=%_implib): %_implib:
make -f Makefile -C $(POSIX_PATH)/lib/$* implib
$(POSIX_LIBS:%=%_clean): %_clean:
make -f Makefile -C $(POSIX_PATH)/lib/$* clean
$(POSIX_LIBS:%=%_dist): %_dist:
make -f Makefile -C $(POSIX_PATH)/lib/$* dist
$(POSIX_LIBS:%=%_install): %_install:
make -f Makefile -C $(POSIX_PATH)/lib/$* install
.PHONY: $(POSIX_LIBS) $(POSIX_LIBS:%=%_implib) $(POSIX_LIBS:%=%_clean) $(POSIX_LIBS:%=%_install) $(POSIX_LIBS:%=%_dist)
#
# POSIX+ Programs
#
$(POSIX_APPS): %:
make -f Makefile -C $(POSIX_PATH)/apps/$*
$(POSIX_APPS:%=%_implib): %_implib:
make -f Makefile -C $(POSIX_PATH)/apps/$* implib
$(POSIX_APPS:%=%_clean): %_clean:
make -f Makefile -C $(POSIX_PATH)/apps/$* clean
$(POSIX_APPS:%=%_dist): %_dist:
make -f Makefile -C $(POSIX_PATH)/apps/$* dist
$(POSIX_APPS:%=%_install): %_install:
make -f Makefile -C $(POSIX_PATH)/apps/$* install
.PHONY: $(POSIX_APPS) $(POSIX_APPS:%=%_implib) $(POSIX_APPS:%=%_clean) $(POSIX_APPS:%=%_install) $(POSIX_APPS:%=%_dist)
etags:
find . -name "*.[ch]" -print | etags --language=c -
# EOF
#CFLAGS=-Iinclude
#all: lib/crt0w32.o
# make -C tools
# make -C lib
# make -C server
# make -C lib/psxdll
# make -C lib/psxx
# make -C apps/baresh
# make -C apps/posixw32
#lib/crt0w32.o: lib/crt0w32.c
#implib:
#clean:
# make -C lib clean
# make -C tools clean
# make -C server clean
# make -C lib/psxdll clean
# make -C lib/psxx clean
# make -C apps/baresh clean
# make -C apps/posixw32 clean
# - $(RM) lib/crt0w32.o
#include $(PATH_TO_TOP)/rules.mak
# EOF

View File

@@ -1,5 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym

View File

@@ -1,30 +0,0 @@
# $Id: Makefile,v 1.9 2003/01/05 18:27:19 robd Exp $
#
# To run it in Win32 console mode, undefine __SUBSYSTEM_WINDOWS__
# and pass "console" in the ld's --subsystem option.
#
#
PATH_TO_TOP = ../../../reactos
PATH_TO_PSX_TOP = ../..
TARGET_TYPE = program
#TARGET_APPTYPE = console
TARGET_APPTYPE = windows
TARGET_NAME = baresh
TARGET_CFLAGS = -D__SUBSYSTEM_WINDOWS__
TARGET_LIBS = $(PATH_TO_PSX_TOP)/lib/crt0w32.o \
$(PATH_TO_TOP)/dk/psx/lib/psxdll.a
TARGET_OBJECTS = sh.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

View File

@@ -1,38 +0,0 @@
#include <defines.h>
#include <reactos/resource.h>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
VS_VERSION_INFO VERSIONINFO
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "Bare sh for POSIX+\0"
VALUE "FileVersion", RES_STR_FILE_VERSION
VALUE "InternalName", "sh\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
VALUE "OriginalFilename", "sh\0"
VALUE "ProductName", RES_STR_PRODUCT_NAME
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

View File

@@ -1,60 +0,0 @@
/* $Id: sh.c,v 1.3 2002/10/29 04:44:59 rex Exp $
*
* baresh - Bare Shell for the PSX subsystem.
* Copyright (c) 2002 Emanuele Aliberti
* License: GNU GPL v2
*/
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#define INPUT_BUFFER_SIZE 128
int run=1;
void cmd_exit(char*buf)
{
run=0;
}
void cmd_pwd(char * buf)
{
char pwd[1024];
getcwd(pwd,sizeof pwd);
printf("%s\n",pwd);
}
void cmd_ls(char*buf)
{
char pwd[1024];
DIR * dir;
struct dirent * entry;
getcwd(pwd,sizeof pwd);
dir=opendir(pwd);
while (NULL!=(entry=readdir(dir)))
{
printf("%s\n",entry->d_name);
}
closedir(dir);
}
int main(int argc,char*argv[])
{
char buf[INPUT_BUFFER_SIZE];
while (run)
{
printf("# ");
if (gets(buf))
{
if (!strcmp("exit",buf)) cmd_exit(buf);
else if (!strcmp("pwd",buf)) cmd_pwd(buf);
else if (!strcmp("ls",buf)) cmd_ls(buf);
else printf("%s: unknown command\n",argv[0]);
}
}
return 0;
}
/* EOF */

View File

@@ -1,38 +0,0 @@
#include <defines.h>
#include <reactos/resource.h>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
VS_VERSION_INFO VERSIONINFO
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", RES_STR_COMPANY_NAME
VALUE "FileDescription", "Bare sh for POSIX+\0"
VALUE "FileVersion", RES_STR_FILE_VERSION
VALUE "InternalName", "sh\0"
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
VALUE "OriginalFilename", "sh\0"
VALUE "ProductName", RES_STR_PRODUCT_NAME
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

View File

@@ -1,5 +0,0 @@
*.o
*.d
*.exe
*.coff
*.sym

View File

@@ -1,90 +0,0 @@
08/08/96 - John L. Miller, johnmil@cs.cmu.edu, johnmil@jprc.com
FILES INCLUDED:
00readme.txt - this file
VT100.H - Definitions for VT-100 emulator.
VT100.C - Front end parsing code for VT-100 emulator
CONSOLE.C - Back-end code to allow VT-100 in WinNt/Win95 console
Many UNIX users take terminals for granted, as something you get for free
with the operating system. Unfortunately, this isn't the case for many
non-unix operating systems, especially PC-based ones. After a number of
projects, I decided it would be nice if there was source publicly available
for doing VT-100 emulation.
The files included with this distribution are not a complete implementation
of VT-100 terminal emulation, but do provide complete enough coverage to
use many vt-100 functions over the network. For instance, its enough to
use EMACS to edit, or to connect up to your favorite mud with ANSI color
and graphics characters.
The VT-100 emulator is broken into two parts. The first is the front end,
vt100.c and vt100.h. These files were written to be fairly device-independant,
though admittedly if you're running under a 16-bit operating system instead
of a 32-bit, you might need to change some of the 'int' values to 'long.'
Otherwise, it should work 'as-is'.
The second part is a back-end. The back-end is responsible for doing the
workhorse activities. The front-end parses a character stream, and decides
whether to clear a part of the screen, or move the cursor, or switch fonts.
Then it calls routines in the back-end to perform these activities.
The back-end functions are, for the most part, very straight forward, and
quite easy to implement compared to writing a vt-100 emulator from scratch.
CONSOLE.C is a back-end for use in console (command, dos) windows under
Windows 95 and Windows NT. This console vt-100 emulator is also being used
in my TINTIN-III port and kerberized encrypted telnet port.
TO USE THIS VT-100 EMULATOR:
First, it's intended to be linked directly into source code. You'll need
to change printf's and puts' in your source code to call vtprintf() and
vtputs() instead. You can add additional functions to vt100.c as you see
fit to handle other output functions like putchar() and write(). Another
routine you may want to use is vtProcessedTextOut(), which accepts a
buffer to output, and a count of characters in that buffer.
Second, you need to make sure that your source code calls vtInitVT100()
before it does ANYTHING else. This initializes the vt-100 emulator.
Third, if you want to use this VT-100 emulator with anything besides
Windows NT and Windows 95 consoles, you'll need to implement your own
back end. The list of functions you will need to supply, as well as what
they need to do is contained in vt100.h. The list (minus descriptions)
is as follows:
int beInitVT100Terminal();
int beAbsoluteCursor(int row, int col);
int beOffsetCursor(int row, int column);
int beRestoreCursor(void);
int beSaveCursor(void);
int beSetTextAttributes(int fore, int back);
int beRawTextOut(char *text, int len);
int beEraseText(int rowFrom, int colFrom, int rowTo, int colTo);
int beDeleteText(int rowFrom, int colFrom, int rowTo, int colTo);
int beInsertRow(int row);
int beTransmitText(char *text, int len);
int beAdvanceToTab(void);
int beClearTab(int col);
int beSetScrollingRows(int fromRow, int toRow);
int beRingBell(void);
int beGetTermMode();
int beSetTermMode(int newMode);
For details on what each of these does, read the descriptions of each
function included in vt100.h, and read over CONSOLE.C for examples. I've
included copious comments in all of these files to try to make them as
easy to use as possible.
In any case, it should be easier than writing a VT-100 emulator from
scratch.
KNOWN BUGS -
o Many features of VT-100 emulation aren't implemented. This includes
support for graphics character set 0 and many of the
answerback functions.
Well, good luck!

View File

@@ -1,29 +0,0 @@
# $Id: Makefile,v 1.4 2003/01/05 18:27:19 robd Exp $
#
# Win32 Terminal Emulator for the POSIX+ subsystem.
#
PATH_TO_TOP = ../../../reactos
PATH_TO_TOP_PSX = ../..
TARGET_NAME = posixw32
TARGET_TYPE = program
TARGET_APPTYPE = console
TARGET_CFLAGS = -I$(PATH_TO_TOP_PSX)/include
TARGET_SDKLIBS = ntdll.a kernel32.a
TARGET_OBJECTS = \
$(TARGET_NAME).o \
console.o \
vt100.o
include $(PATH_TO_TOP)/rules.mak
include $(TOOLS_PATH)/helper.mk
# EOF

File diff suppressed because it is too large Load Diff

View File

@@ -1,612 +0,0 @@
/* $Id: posixw32.c,v 1.4 2003/08/28 20:01:23 ea Exp $
*
* PROJECT : ReactOS Operating System / POSIX+ Environment Subsystem
* DESCRIPTION: POSIXW32 - A DEC VT-100 terminal emulator for the PSX subsystem
* DESCRIPTION: that runs in the Win32 subsystem.
* COPYRIGHT : Copyright (c) 2001-2002 Emanuele Aliberti
* LICENSE : GNU GPL v2
* DATE : 2001-05-05
* AUTHOR : Emanuele Aliberti <ea@iol.it>
* NOTE : This IS a Win32 program, but will fail if the PSX subsystem
* NOTE : is not installed. The PSX subsystem consists of two more
* NOTE : files: PSXSS.EXE, PSXDLL.DLL.
* WARNING : If you use this program under a real NT descendant, be
* WARNING : sure to have disabled the PSX subsystem.
* --------------------------------------------------------------------
*
* This software is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write
* to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
* MA 02139, USA.
*
* --------------------------------------------------------------------
* 2002-03-16 EA Today it actually compiled.
* 2002-06-08 EA Renamed (old name was CSRTERM)
*/
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#define NTOS_MODE_USER
#include <ntos.h>
#include <psx/lpcproto.h>
#include "vt100.h"
#include "posixw32.h"
/*** OPTIONS *********************************************************/
#define PRIVATE static
#define INPUT_QUEUE_SIZE 32
#ifdef NDEBUG
#define TRACE
#else
#define TRACE OutputDebugString(__FUNCTION__)
#endif
/*** GLOBALS *********************************************************/
PRIVATE LPCSTR MyName = "POSIXW32";
PRIVATE CSRTERM_SESSION Session =
{
0, //Identifier
{ //ServerPort
{0,0,NULL},
L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME"\\"PSX_NS_SESSIONAPI_PORT_NAME,
INVALID_HANDLE_VALUE
}
};
/*** PRIVATE FUNCTIONS ***********************************************/
VOID STDCALL Debug_Print (LPCSTR Format, ...)
{
CHAR Buffer [512];
va_list ArgumentPointer;
va_start(ArgumentPointer, Format);
vsprintf(Buffer, Format, ArgumentPointer);
va_end(ArgumentPointer);
OutputDebugStringA (Buffer);
}
/**********************************************************************
* OutPort/2 PRIVATE
*
* DESCRIPTION
* Notify to PSXSS that input data is ready by sending a
* software interrupt on the \POSIX+\SessionPort port.
*/
PRIVATE DWORD STDCALL OutPort (PCHAR Buffer, ULONG Size)
{
NTSTATUS Status;
PSX_TERMINAL_READ TerminalRead;
TRACE;
if (Size > 0)
{
/* LPC */
TerminalRead.Header.MessageType = LPC_NEW_MESSAGE;
TerminalRead.PsxHeader.Context = PSX_CONNECTION_TYPE_TERMINAL;
TerminalRead.PsxHeader.Procedure = PSX_TERMINAL_INTERRUPT;
/* Terminal I/O */
TerminalRead.Size = Size;
#if 0
RtlCopyMemory (TerminalRead.Buffer, Buffer, Size);
Status = NtRequestWaitReplyPort (
Session.ServerPort.Handle,
& TerminalRead
/* FIXME */
);
#endif
if (!NT_SUCCESS(Status))
{
vtprintf ("%s: %s: NtRequestWaitReplyPort failed with %08x\n",
MyName, __FUNCTION__, Status);
return 0;
}
}
return Size;
}
/**********************************************************************
* ProcessConnectionRequest/1 PRIVATE
*
* DESCRIPTION
* Initialize our data for managing the control connection
* initiated by the PSXSS.EXE process.
*/
PRIVATE NTSTATUS STDCALL ProcessConnectionRequest (PLPC_MAX_MESSAGE Request)
{
PPSX_CONNECT_PORT_DATA ConnectData = (PPSX_CONNECT_PORT_DATA) & Request->Data;
TRACE;
if (PSX_CONNECTION_TYPE_SERVER != ConnectData->ConnectionType)
{
return STATUS_UNSUCCESSFUL;
}
if (PSX_LPC_PROTOCOL_VERSION != ConnectData->Version)
{
return STATUS_UNSUCCESSFUL;
}
Session.SsLinkIsActive = TRUE;
return STATUS_SUCCESS;
}
/**********************************************************************
* ProcessRequest/1 PRIVATE
*
* DESCRIPTION
*
*/
PRIVATE NTSTATUS STDCALL ProcessRequest (PPSX_MAX_MESSAGE Request)
{
TRACE;
/* TODO */
vtprintf("TEST VT-100\n");
return STATUS_SUCCESS;
}
/**********************************************************************
* PsxSessionPortListener/1 PRIVATE
*
* DESCRIPTION
* Manage messages from the PSXSS, that is LPC messages we get
* from the PSXSS process to our \POSIX+\Sessions\P<pid> port.
*
* NOTE
* This function is the thread 's entry point created in
* CreateSessionObiects().
*/
PRIVATE DWORD STDCALL PsxSessionPortListener (LPVOID Arg)
{
NTSTATUS Status;
LPC_TYPE RequestType;
PSX_MAX_MESSAGE Request;
PPSX_MAX_MESSAGE Reply = NULL;
BOOL NullReply = FALSE;
TRACE;
while (TRUE)
{
Reply = NULL;
NullReply = FALSE;
while (!NullReply)
{
Status = NtReplyWaitReceivePort (
Session.Port.Handle,
0,
(PLPC_MESSAGE) Reply,
(PLPC_MESSAGE) & Request
);
if (!NT_SUCCESS(Status))
{
break;
}
RequestType = PORT_MESSAGE_TYPE(Request);
switch (RequestType)
{
case LPC_CONNECTION_REQUEST:
ProcessConnectionRequest ((PLPC_MAX_MESSAGE) & Request);
NullReply = TRUE;
continue;
case LPC_CLIENT_DIED:
case LPC_PORT_CLOSED:
case LPC_DEBUG_EVENT:
case LPC_ERROR_EVENT:
case LPC_EXCEPTION:
NullReply = TRUE;
continue;
default:
if (RequestType != LPC_REQUEST)
{
NullReply = TRUE;
continue;
}
}
Reply = & Request;
Reply->PsxHeader.Status = ProcessRequest (& Request);
NullReply = FALSE;
}
if ((STATUS_INVALID_HANDLE == Status) ||
(STATUS_OBJECT_TYPE_MISMATCH == Status))
{
break;
}
}
Session.SsLinkIsActive = FALSE;
TerminateThread (GetCurrentThread(), Status);
}
/**********************************************************************
* CreateSessionObiects/1 PRIVATE
*
* DESCRIPTION
* Create the session objects which are mananged by our side:
*
* \POSIX+\Sessions\P<pid>
* \POSIX+\Sessions\D<pid>
*/
PRIVATE NTSTATUS STDCALL CreateSessionObjects (DWORD Pid)
{
NTSTATUS Status;
ULONG Id = 0;
OBJECT_ATTRIBUTES Oa;
LARGE_INTEGER SectionSize = {PSX_TERMINAL_SECTION_SIZE,0};
TRACE;
/* Critical section */
Status = RtlInitializeCriticalSection (& Session.Lock);
if (!NT_SUCCESS(Status))
{
vtprintf (
"%s: %s: RtlInitializeCriticalSection failed with %08x\n",
MyName, __FUNCTION__, Status);
return Status;
}
/* Port and port management thread */
swprintf (
Session.Port.NameBuffer,
PSX_NS_SESSION_PORT_TEMPLATE,
PSX_NS_SUBSYSTEM_DIRECTORY_NAME,
PSX_NS_SESSION_DIRECTORY_NAME,
Pid
);
OutputDebugStringW(Session.Port.NameBuffer);
RtlInitUnicodeString (& Session.Port.Name, Session.Port.NameBuffer);
InitializeObjectAttributes (& Oa, & Session.Port.Name, 0, NULL, NULL);
Status = NtCreatePort (& Session.Port.Handle, & Oa, 0, 0, 0x10000);
if (!NT_SUCCESS(Status))
{
RtlDeleteCriticalSection (& Session.Lock);
vtprintf ("%s: %s: NtCreatePort failed with %08x\n",
MyName, __FUNCTION__, Status);
return Status;
}
Session.Port.Thread.Handle =
CreateThread (
NULL,
0,
PsxSessionPortListener,
0,
CREATE_SUSPENDED,
& Session.Port.Thread.Id
);
if ((HANDLE) NULL == Session.Port.Thread.Handle)
{
Status = (NTSTATUS) GetLastError();
NtClose (Session.Port.Handle);
RtlDeleteCriticalSection (& Session.Lock);
vtprintf ("%s: %s: CreateThread failed with %d\n",
MyName, __FUNCTION__, Status);
return Status;
}
/* Section */
swprintf (
Session.Section.NameBuffer,
PSX_NS_SESSION_DATA_TEMPLATE,
PSX_NS_SUBSYSTEM_DIRECTORY_NAME,
PSX_NS_SESSION_DIRECTORY_NAME,
Pid
);
OutputDebugStringW(Session.Section.NameBuffer);
RtlInitUnicodeString (& Session.Section.Name, Session.Section.NameBuffer);
InitializeObjectAttributes (& Oa, & Session.Section.Name, 0, 0, 0);
Status = NtCreateSection (
& Session.Section.Handle,
SECTION_ALL_ACCESS, /* DesiredAccess */
& Oa,
& SectionSize,
PAGE_READWRITE, /* Protect 4 */
SEC_COMMIT, /* Attributes */
0 /* FileHandle: 0=pagefile.sys */
);
if (!NT_SUCCESS(Status))
{
NtClose (Session.Port.Handle);
NtTerminateThread (Session.Port.Thread.Handle, Status);
RtlDeleteCriticalSection (& Session.Lock);
vtprintf ("%s: %s: NtCreateSection failed with %08x\n",
MyName, __FUNCTION__, Status);
return Status;
}
Session.Section.BaseAddress = NULL;
Session.Section.ViewSize = SectionSize.u.LowPart;
Status = NtMapViewOfSection (
Session.Section.Handle,
NtCurrentProcess(),
& Session.Section.BaseAddress,
0, /* ZeroBits */
0, /* Commitsize */
0, /* SectionOffset */
& Session.Section.ViewSize,
ViewUnmap,
0, /* AllocationType */
PAGE_READWRITE /* Protect 4 */
);
if (!NT_SUCCESS(Status))
{
NtClose (Session.Port.Handle);
NtTerminateThread (Session.Port.Thread.Handle, Status);
NtClose (Session.Section.Handle);
RtlDeleteCriticalSection (& Session.Lock);
vtprintf ("%s: %s: NtMapViewOfSection failed with %08x\n",
MyName, __FUNCTION__, Status);
return Status;
}
return Status;
}
/**********************************************************************
* CreateTerminalToPsxChannel/0 PRIVATE
*
* DESCRIPTION
*
*/
PRIVATE NTSTATUS STDCALL CreateTerminalToPsxChannel (VOID)
{
PSX_CONNECT_PORT_DATA ConnectData;
ULONG ConnectDataLength = sizeof ConnectData;
SECURITY_QUALITY_OF_SERVICE Sqos;
NTSTATUS Status;
TRACE;
/*
* Initialize the connection data object before
* calling PSXSS.
*/
ConnectData.ConnectionType = PSX_CONNECTION_TYPE_TERMINAL;
ConnectData.Version = PSX_LPC_PROTOCOL_VERSION;
/*
* Try connecting to \POSIX+\SessionPort.
*/
RtlInitUnicodeString (& Session.ServerPort.Name, Session.ServerPort.NameBuffer);
OutputDebugStringW(Session.ServerPort.Name.Buffer);
Status = NtConnectPort (
& Session.ServerPort.Handle,
& Session.ServerPort.Name,
& Sqos,
NULL,
NULL,
0,
& ConnectData,
& ConnectDataLength
);
if (STATUS_SUCCESS != Status)
{
vtprintf ("%s: %s: NtConnectPort failed with %08x\n",
MyName, __FUNCTION__, Status);
return Status;
}
Session.Identifier = ConnectData.PortIdentifier;
return STATUS_SUCCESS;
}
/**********************************************************************
* InitializeSsIoChannel PRIVATE
*
* DESCRIPTION
* Create our objects in the system name space
* (CreateSessionObjects) and then connect to the session port
* (CreateControChannel).
*/
PRIVATE NTSTATUS STDCALL InitializeSsIoChannel (VOID)
{
NTSTATUS Status = STATUS_SUCCESS;
DWORD Pid = GetCurrentProcessId();
TRACE;
Status = CreateSessionObjects (Pid);
if (STATUS_SUCCESS != Status)
{
vtprintf ("%s: %s: CreateSessionObjects failed with %08x\n",
MyName, __FUNCTION__, Status);
return Status;
}
Status = CreateTerminalToPsxChannel ();
if (STATUS_SUCCESS != Status)
{
vtprintf ("%s: %s: CreateTerminalToPsxChannel failed with %08x\n",
MyName, __FUNCTION__, Status);
return Status;
}
return STATUS_SUCCESS;
}
/**********************************************************************
* PsxCreateLeaderProcess/1 PRIVATE
*
* DESCRIPTION
* Create a new PSXSS process. We are running under Win32 server
* and can not run directly a PSX image: we make SM run it for us.
*
*/
PRIVATE NTSTATUS STDCALL PsxCreateLeaderProcess (char * Command)
{
NTSTATUS Status;
TRACE;
if (NULL == Command)
{
Command = "sh";
}
/* TODO: request SM to create the process: LPC:SmExecPgm() */
vtprintf ("%s: %s: calling SMSS not implemented!", MyName, __FUNCTION__);
return STATUS_SUCCESS;
}
/**********************************************************************
* PrintInformationProcess/0
*
* DESCRIPTION
*/
PRIVATE VOID STDCALL PrintInformationProcess (VOID)
{
TRACE;
vtputs ("Leader:");
vtprintf (" UniqueProcess %08x\n", Session.Client.UniqueProcess);
vtprintf (" UniqueThread %08x\n", Session.Client.UniqueThread);
}
/**********************************************************************
* PostMortem/0
*
* DESCRIPTION
*/
PRIVATE INT STDCALL PostMortem (VOID)
{
DWORD ExitCode;
TRACE;
PrintInformationProcess ();
if (TRUE == GetExitCodeProcess (Session.Client.UniqueProcess, & ExitCode))
{
vtprintf (" ExitCode %d\n", ExitCode);
}
return 0;
}
/**********************************************************************
* InputTerminalEmulator/0
*
* DESCRIPTION
* Process user terminal input.
*
* NOTE
* This code is run in the main thread.
*/
PRIVATE BOOL STDCALL InputTerminalEmulator (VOID)
{
HANDLE StandardInput;
INPUT_RECORD InputRecord [INPUT_QUEUE_SIZE];
DWORD NumberOfEventsRead = 0;
INT CurrentEvent;
TRACE;
StandardInput = GetStdHandle (STD_INPUT_HANDLE);
if (INVALID_HANDLE_VALUE == StandardInput)
{
return FALSE;
}
while ((TRUE == Session.SsLinkIsActive) &&
ReadConsoleInput (
StandardInput,
InputRecord,
(sizeof InputRecord) / sizeof (INPUT_RECORD),
& NumberOfEventsRead
))
{
for ( CurrentEvent = 0;
(CurrentEvent < NumberOfEventsRead);
CurrentEvent ++
)
{
switch (InputRecord [CurrentEvent].EventType)
{
case KEY_EVENT:
OutPort (& InputRecord [CurrentEvent].Event.KeyEvent.uChar.AsciiChar, 1);
break;
case MOUSE_EVENT:
/* TODO: send a sequence of move cursor codes */
/* InputRecord [CurrentEvent].Event.MouseEvent; */
break;
case WINDOW_BUFFER_SIZE_EVENT:
/* TODO: send a SIGWINCH signal to the leader process. */
/* InputRecord [CurrentEvent].Event.WindowBufferSizeEvent.dwSize; */
break;
/* Next events should be ignored. */
case MENU_EVENT:
vtprintf ("%s: %s: MENU_EVENT received from CSRSS\n", MyName, __FUNCTION__);
case FOCUS_EVENT:
vtprintf ("%s: %s: FOCUS_EVENT received from CSRSS\n", MyName, __FUNCTION__);
break;
}
}
NumberOfEventsRead = 0;
}
return TRUE;
}
/**********************************************************************
* Startup/1
*
* DESCRIPTION
* Initialize the program.
*/
PRIVATE VOID STDCALL Startup (LPSTR Command)
{
NTSTATUS Status;
DWORD ThreadId;
TRACE;
/* PSX process info */
Session.Client.UniqueProcess = INVALID_HANDLE_VALUE;
Session.Client.UniqueThread = INVALID_HANDLE_VALUE;
/* Initialize the VT-100 emulator */
vtInitVT100 ();
/* Connect to PSXSS */
Status = InitializeSsIoChannel ();
if (!NT_SUCCESS(Status))
{
vtprintf ("%s: failed to connect to PSXSS (Status=%08x)!\n",
MyName, Status);
exit (EXIT_FAILURE);
}
/* Create the leading process for this session */
Status = PsxCreateLeaderProcess (Command);
if (!NT_SUCCESS(Status))
{
vtprintf ("%s: failed to create the PSX process (Status=%08x)!\n",
MyName, Status);
exit (EXIT_FAILURE);
}
}
/**********************************************************************
* Shutdown/0 PRIVATE
*
* DESCRIPTION
* Shutdown the program.
*/
PRIVATE INT STDCALL Shutdown (VOID)
{
TRACE;
/* TODO: try exiting cleanly: close any open resource */
/* TODO: notify PSXSS the session is terminating */
RtlDeleteCriticalSection (& Session.Lock);
return PostMortem ();
}
/**********************************************************************
*
* ENTRY POINT PUBLIC
*
*********************************************************************/
int main (int argc, char * argv [])
{
TRACE;
Startup (argv[1]); /* Initialization */
InputTerminalEmulator (); /* Process user input */
return Shutdown ();
}
/* EOF */

View File

@@ -1,53 +0,0 @@
#ifndef _CSRTERM_H
#define _CSRTERM_H
/* PSX session: CSR terminal emulator side */
#define NAME_BUFFER_SIZE 64
typedef struct _PSXSS_PORT
{
UNICODE_STRING Name;
WCHAR NameBuffer [NAME_BUFFER_SIZE];
HANDLE Handle;
} PSXSS_PORT, * PPSXSS_PORT;
typedef struct _CSRTERM_SESSION_PORT
{
UNICODE_STRING Name;
WCHAR NameBuffer [NAME_BUFFER_SIZE];
HANDLE Handle;
struct {
HANDLE Handle;
DWORD Id;
} Thread;
} CSRTERM_SESSION_PORT;
typedef struct _CSRTERM_SESSION_SECTION
{
UNICODE_STRING Name;
WCHAR NameBuffer [NAME_BUFFER_SIZE];
HANDLE Handle;
ULONG Size;
PVOID BaseAddress;
ULONG ViewSize;
} CSRTERM_SESSION_SECTION;
typedef struct _CSRTERM_SESSION
{
ULONG Identifier; /* PortID for ServerPort in PSXSS */
PSXSS_PORT ServerPort; /* \POSIX+\SessionPort */
CSRTERM_SESSION_PORT Port; /* \POSIX+\Sessions\P<pid> */
CSRTERM_SESSION_SECTION Section; /* \POSIX+\Sessions\D<pid> */
CLIENT_ID Client;
CRITICAL_SECTION Lock;
BOOL SsLinkIsActive;
} CSRTERM_SESSION, * PCSRTERM_SESSION;
#define LOCK_SESSION RtlEnterCriticalSection(& Session.Lock)
#define UNLOCK_SESSION RtlLeaveCriticalSection(& Session.Lock)
#endif /* ndef _CSRTERM_H */

View File

@@ -1,12 +0,0 @@
/* $Id: posixw32.rc,v 1.5 2004/10/31 20:11:09 ea Exp $ */
#include <defines.h>
#include <reactos/resource.h>
#include <windows.h>
#define REACTOS_STR_FILE_DESCRIPTION "W32 Terminal Emulator for POSIX+\0"
#define REACTOS_STR_INTERNAL_NAME "posixw32\0"
#define REACTOS_STR_ORIGINAL_FILENAME "posixw32.exe\0"
#include <reactos/version.rc>
/* EOF */

View File

@@ -1,80 +0,0 @@
$Id: readme.txt,v 1.3 2002/10/29 04:45:05 rex Exp $
posixw32 - a Win32 client terminal emulator for the POSIX+ subsystem
SYNOPSYS
posixw32 [program]
program program to be run in the terminal; if none is given,
the shell for the current user (W32 session's) is
used.
DESCRIPTION
posixw32 emulates a DEC VT-100 terminal (on top of the CSRSS
subsystem, hence the name) which is the controlling terminal
for a process [program] running in the context of the PSX
subsystem. posixw32 is a Win32 console application, not a PSX
application. The process created by the PSX subsystem on behalf
of posixw32 is not the child of the posixw32 instance that
requested it. posixw32 simply performs terminal I/O in the CSRSS
world (the W32 world!) for [program].
NOTES
The role of posixw32 is creating a session in the PSX subsystem
managing any I/O for it. This is how it works:
1. posixw32 creates two well known named objects in the system
name space that will allow the PSX subsystem server to build
the I/O channel for the session. To let the PSX subsystem
process recognize the objects, they contain a numeric suffix
which is the process identifier (n) the system gives to each
instance of posixw32:
\POSIX+\Session\Pn LPC port (IPC rendez-vous object)
\POSIX+\Session\Dn section (shared memory object)
posixw32 also creates a new thread to manage the calls though
the LPC port. Port Pn is used by the subsystem to control the
terminal which posixw32 emulates.
2. posixw32 connects to the PSX subsystem session port
\POSIX+\SessionPort
and asks the subsystem to create a new session.
3. The PSX subsystem, if it decides to accept the request, creates
a new session for that calling instance of posixw32 (n), and in
turn connects back to the terminal control port
\POSIX+\Session\Pn
4. When posixw32 makes the PSX subsystem create the new session, it
also tells the subsystem what program should be the session
leader process. The PSX subsystem creates that process (the
image file to start must be marked IMAGE_SUBSYSTEM_POSIX_GUI or
IMAGE_SUBSYSTEM_POSIX_CUI).
5. The requested process [program] runs in the context of the
PSX subsystem and performs any terminal I/O via the channel
posixw32 and the PSX susbstem created.
REVISIONS
2001-05-05 created
2002-03-03 simplified
2002-06-08 renamed to avoid future name clash
AUTHOR
Emanuele Aliberti <ea@iol.it>
CREDITS
John L. Miller (johnmil@cs.cmu.edu, johnmil@jprc.com) code for
a basic VT-100 emulator for Win32 consoles is used to process
tc* calls output.
EOF

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