Commit graph

18 commits

Author SHA1 Message Date
Timo Kreuzer cbdf28bb6a [HEADERS]
Reintegrate header-work branch. Thanks to hours of boring work on the ddk headers (Most of it done by Amine Khaldi), we have now a decent set, which is still incomplete but already relatively close to latest WDK. A clean rebuild is recommended.

svn path=/trunk/; revision=46155
2010-03-12 23:16:29 +00:00
Hervé Poussineau e10fbe352c [headers] Fix type of PRTL_HEAP_PARAMETERS in ifssupp.h. Will be required soon
svn path=/trunk/; revision=46016
2010-03-08 21:42:18 +00:00
Timo Kreuzer 9ea495ba33 Create a branch for header work.
svn path=/branches/header-work/; revision=45691
2010-02-26 22:57:55 +00:00
Stefan Ginsberg 6d811e8712 - Get rid of DDK's dependency on windef.h and winnt.h
- Clean up, fix, and add missing types to ntdef.h/ntifs.h/winddk.h/wdm.h/ntpoapi.h
- Add ntimage.h and use it in rossym and NDK
- Fix a gcc compatibility issue -- some internal NT structures have their pointer types defined in the DDK headers, but we define them along with the "struct" type when defining the full structure. MSVC is okay with this double definition, but gcc treats it as an error (hidden by system_header). Only define the "struct" type when declaring the full structure, making it compatible with both compilers.
- Also fix/add some types and header guards in NDK
- Clean up ks/portcls/drmk headers
- Fix incorrect types for some KS APIs (msdn is wrong for these) and add missing header guards
- Also, remove system_header (more of this coming up)

svn path=/trunk/; revision=37792
2008-12-01 15:12:23 +00:00
Aleksey Bragin 4521f6387a - Revert 28967, and fix the real issue where an overwrite occured (in KiMoveApcState()).
svn path=/trunk/; revision=28978
2007-09-09 13:00:14 +00:00
Art Yerkes 1fa5be2cf7 Correct size of KAPC_STATE to fit in the [23] window of PKTHREAD. This is
neccessary, otherwise the APC booleans interfere with FreezeCount.

svn path=/trunk/; revision=28967
2007-09-09 09:49:35 +00:00
Alex Ionescu 3b6c356260 - Fix user-mode compilation.
svn path=/trunk/; revision=24548
2006-10-16 15:27:12 +00:00
Alex Ionescu 450d11e3f1 - Small build fix
svn path=/trunk/; revision=22970
2006-07-09 15:25:14 +00:00
Alex Ionescu 8481c1fa10 - NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL SVN Logs for more detailed information. Thanks to Andrew (Wax), Thomas and Aleksey for testing.
svn path=/trunk/; revision=21880
2006-05-10 17:47:44 +00:00
Aleksey Bragin 42657b29da - SVN maintenance (set eol-style to native)
svn path=/trunk/; revision=21808
2006-05-05 18:13:26 +00:00
Alex Ionescu 07b0b865dc - Fix shamefully dangerously broken Work Thread/Queue/Item implementation:
* Do not pollute the kernel with 10 real-time threads and 5 high-priority threads in order to manage work items. Work threads are very-low priority (< 7) and should never pre-empt userthreads like they do now. 1 priority 7, 5 priority 5 and 3 priority 4 threads are now properly created.
  * Implement a worker thread balance set manager. On SMP systems, it is able to determine when a new thread should be allocate to execute on a free CPU. On both UP and MP, it is also able to detect if a work queue has deadlocked, and will allocate new dynamic threads to unfreeze the queue.
  * Add check for threads returning with APC disabled, and re-enable APCs if this happend. This hack is used in NT for broken drivers.
  * Lots of code changes to support dynamic threads, which:
    - Can terminate.
    - Use a 10 minute timeout on the kernel queue.
  * Add skeleton code for swapping worker thread stacks as well as worker thread shutdown (not yet implemented).
  * Add WORKER_INVALID bugcheck definition.
  * These changes seem to make ROS a lot more responsive.

- NDK: 
  * Make more compatible with MS IFS
  * Fix EX_WORK_QUEUE definition.
  * Fix ETHREAD offsets.
  * Fix RtlIsNameLegalDOS8Dot3 definition.
  * Move splay tree defines to IFS.

svn path=/trunk/; revision=20554
2006-01-03 21:34:19 +00:00
Alex Ionescu a0f65e8fb1 Forgot to commit this file
svn path=/trunk/; revision=20433
2005-12-29 18:56:09 +00:00
Alex Ionescu c1da20b370 - Make the NDK compatible with the MSDDK again.
- Fix some w32api incompatibility cruft since w32api insists on including winnt.h from kernel-mode.
- Fix some stuff that was including both kernel-mode and user-mode headers together.
- Use PISECURITY_DESCRIPTOR, not PSECURITY_DESCRIPTOR.

svn path=/trunk/; revision=19726
2005-11-28 21:40:21 +00:00
Alex Ionescu cc63baeda1 - Update NDK to remove zwfuncs.h and place the native functions in their respective xxfuncs.h instead, so that applications can now include only what they need. Add more xxfuncs.h files for every API.
- Make the NDK smarter so that using #define NTOS_MODE_USER isn't needed anymore: the NDK can now auto-detect the presence of windows.h or ntddk.h and make the appropriate decision.
- re-arrange ntndk.h to include all types in alphabetical order, and then all functions, regardless of um/kmode usage. 
- Make each file auto-detect if this is NTOS_MODE_USER or not and include each files it needs, instead of depending on a predefined order inside ntndk.h This way, any file can be included from both user-mode or kmode as simply as #include <iofuncs.h>, wthout any adtional work.
- Update FIXME list with these changes and delay NDK release date since my trip is lasting a day longer.
- Fix ntsecapi.h to define UNICODE_STRING, like it does in the PSDK.
- Fix apps including ntsecapi + winternl.h These two cause a conflict even on PSDK and shouldn't be included together.
- Make winlogon include only the NDK files it needs (2) instead of the whole NDK, as test for this faster newly supported method.
- Remove some NDK apps from the FIXME list (the ones that weren't being built/are on my rewrite branch/are better off including the whole NDK instead of file-by-file).
- Update debug.h to define RtlAssert and DbgPrint in case the NDK or DDK aren't already included, which will allow some of the apps to stop using the NDK solely for DPRINT/DPRINT1. Diabled for now since a lot of code needs to be changed to #include <debug.h> *After* they include the other headers. (so that the anti-double-definition check can work).

svn path=/trunk/; revision=19538
2005-11-25 00:17:40 +00:00
Alex Ionescu f355909c07 - Define DECLSPEC_ADDRSAFE and FORCEINLINE for gcc in winnt.h
- Remove FASTCALL define from windef.h and add it to winddk.h
- Move EXCEPTION_ defines to crt/except.h
- Remove public GUIDs from sysguid.h and move from NDK to public umpnpmgr lib headers (since no other component but it + kernel uses them)
- Make include/ndk an include path. The NDK is now used like the DDK, so including ndk/foo.h should be replaced by include foo.h just like for PSDK or DDK.
- Don't include misc.h in usermode.
- Protect some stuff in helper.h against multiple definitions.
- Sync with NDK 1.00 Beta 1 to prepare for public NDK release.

svn path=/trunk/; revision=19450
2005-11-22 04:57:45 +00:00
Alex Ionescu ac26f7ca11 - Implement RtlInitializeUnicodePrefix and RtlNextUnicodePrefix. The UnicodePrefix package is needed by MUP and NPFS drivers.
- Add some of the splay tree functions/macros to the NDK.

svn path=/trunk/; revision=19033
2005-11-07 01:01:29 +00:00
Alex Ionescu 4e8d1019ce - More NDK/MSDDK compatibility fixes.
svn path=/trunk/; revision=17652
2005-09-05 07:51:15 +00:00
Alex Ionescu e7d010c5de Major cleanup of NDK. I've decided that it would be much cleaner to accumulate all types, regardless of their um/km availabilty, into each header. Thus, umtypes.h now only contains the equivalent of ntdef.h and is automatically not-included if the DDK is. Similary, I've removed all the NTIFS hacks and added a single ifssupp.h file, which is automatically removed if the IFS is added. That file will be deleted then the Longhorn WDK is made public (it contains the IFS/DDK). Nothing has changed on the includer-side, the same rules still apply
svn path=/trunk/; revision=17420
2005-08-17 07:06:59 +00:00