Commit graph

12 commits

Author SHA1 Message Date
Timo Kreuzer f9868fc771 Merge from amd64-branch:
34969 Some ULONG / SIZE_T fixes, handle amd64 in PspCreateThread
34986 Fix several 64 bit issues
35968 Fix Size parameter of CmpAllpcate (ULONG->SIZE_T).
35970 Fix pointer <-> ULONG cast
35971 Fix pointer <-> ULONG cast fixes
36332 fix 64 bit warnings
37435 Fix several ULONG/ULONG_PTR issues. Add a parameter to DefaultQueryInfoBufferCheck for ULONG_PTR/SIZE_T ResultLength
39522 ExInitializeSystemlookasideList: Use InitializeSListHead instead of directly accessing the members. ExpAllocateLocallyUniqueId: use InterlockedCompareExchange64 instead of non-portable ExfInterlockedCompareExchange64
37433 fix InterlockedExchangePointer usage
38105 Use KeGetCurrentPrcb() instead of KeGetPcr()->Prcb / KeGetPcr()->CurrentPrcb
39160 Use wbinvd instruction for amd64, too.

svn path=/trunk/; revision=45066
2010-01-13 22:35:43 +00:00
Stefan Ginsberg f11466d9c0 - Make use of _SEH2_YIELD in Ex, Io, Ob, Ps and Se.
- Don't call ExSystemExceptionFilter() if we know the caller is user mode.
- Get rid of a couple of dependencies on the NTSTATUS being initialized with STATUS_SUCCESS -- indicate success where properly instead.

svn path=/trunk/; revision=42942
2009-08-26 17:31:02 +00:00
Stefan Ginsberg beba1269e6 - Get rid of TAG() from the kernel
- mmtypes.h: Goodbye TAG(), you won't be missed

svn path=/trunk/; revision=42920
2009-08-24 18:19:53 +00:00
KJK::Hyperion c086cc2302 Everything
Migrate ntoskrnl to PSEH 2.0. The code should speak for itself

modified   ntoskrnl/ex/atom.c
   _SEH_LEAVE was used improperly in NtQueryInformationAtom. As a free bonus, the upgrade to PSEH 2.0 (and to _SEH2_LEAVE) fixes the potential bug

modified   ntoskrnl/fsrtl/fastio.c
   Corrected exception filter logic

modified   ntoskrnl/include/internal/ex.h
   Goodbye _SEH_ExSystemExceptionFilter, you won't be missed

modified   ntoskrnl/include/internal/ntoskrnl.h
   Don't FORCEINLINE functions that use SEH, it's bad form and the compiler doesn't like

modified   ntoskrnl/ke/i386/usercall.c
   Dispatch the correct EXCEPTION_RECORD in case of exception inside KiInitializeUserApc

modified   ntoskrnl/ke/powerpc/exp.c
   Removed bogus, unused SEH code

modified   ntoskrnl/ntoskrnl-generic.rbuild
   Sources using PSEH 2.0 must be compiled with -fno-unit-at-a-time due to a GCC bug. See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17982 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054
   Apparently, -fno-unit-at-a-time makes GCC crash when using precompiled headers. Disable precompiled headers for ntoskrnl

svn path=/trunk/; revision=37615
2008-11-24 13:40:26 +00:00
Aleksey Bragin cb1ef2c505 - Use ExInitializeSystemLookasideList instead of ExInitializeNPagedLookasideList for the internal I/O lookaside lists (just as it was done for the Ob lists a couple of months ago).
- Optimize lookaside allocation by using one large contiguous buffer instead of fragmented buffers for each CPU.
- Use NT structure names instead of ReactOS-only structures.
- Fixes some memory corruption issues when doing I/O completion (found by Stefan and winetests).

svn path=/trunk/; revision=37191
2008-11-04 21:55:55 +00:00
Stefan Ginsberg 705683b520 - Don't dereference inside an SEH block after doing unsafe writes, as this could be missed in case a pointer is bad.
svn path=/trunk/; revision=37111
2008-10-31 13:16:01 +00:00
Stefan Ginsberg 12f349df1d - Remove the (now deprecated) ntoskrnl/internal/debug.h header and fix all its includers to use the global debug.h
svn path=/trunk/; revision=35806
2008-08-30 16:31:06 +00:00
Aleksey Bragin 7449ba7de2 - Fix memory corruption, thanks to Alex for reporting.
svn path=/trunk/; revision=32527
2008-02-29 09:43:36 +00:00
Alex Ionescu b66b8bdcea - Implement IoSetCompletionRoutineEx, which is a safe way to set completion routines that almost all newer drivers will be using (XP+).
svn path=/trunk/; revision=24735
2006-11-12 22:39:09 +00:00
Thomas Bluemel 1fcf9ceba0 Use the new ProbeForWriteIoStatusBlock macro
svn path=/trunk/; revision=23828
2006-08-30 21:45:17 +00:00
Alex Ionescu 0342a00bde - Fix and combine the creation of I/O Object Types, it was a complete mess with missing attributes and dangerous bugs (Adapters and Controllers had IopParseDevice as a parse routine and the same pool charge as a deivice object, etc.)
svn path=/trunk/; revision=22852
2006-07-04 22:41:47 +00:00
Alex Ionescu 9bb57a0fc7 - Move efi.c to \ex, because the functions are related to environmental variables, not I/O.
- Create \wmi directory and put wmi.c, since it's the start of a large chunk of the XP+ kernel dedicated to WMI support.
- Separate \io into \iomgr and \pnpmgr

svn path=/trunk/; revision=22747
2006-07-01 21:51:06 +00:00
Renamed from reactos/ntoskrnl/io/iocomp.c (Browse further)