PZONE_HEADER Zone,
PVOID Block
);
+
+/*
ERESOURCE_THREAD
STDCALL
ExGetCurrentResourceThread (
VOID
);
+*/
+#define ExGetCurrentResourceThread() \
+ ((ERESOURCE_THREAD)PsGetCurrentThread())
+
+
ULONG
STDCALL
ExGetExclusiveWaiterCount (
PERESOURCE Resource
);
+
ULONG
STDCALL
ExGetSharedWaiterCount (
ExInitializeResourceLite (
PERESOURCE Resource
);
-VOID
-STDCALL
-ExInitializeSListHead (
- PSLIST_HEADER SListHead
- );
+
+/*
+ * VOID
+ * ExInitializeSListHead (
+ * PSLIST_HEADER SListHead
+ * );
+*/
+#define ExInitializeSListHead(ListHead) \
+ (ListHead)->Alignment = 0
/*
* VOID
* PWORKER_THREAD_ROUTINE Routine,
* PVOID Context
* );
+ *
+ * FUNCTION:
+ * Initializes a work item to be processed by one of the system
+ * worker threads
+ *
+ * ARGUMENTS:
+ * Item = Pointer to the item to be initialized
+ * Routine = Routine to be called by the worker thread
+ * Context = Parameter to be passed to the callback
*/
-#define ExInitializeWorkItem (Item, Routine, Context) \
+#define ExInitializeWorkItem(Item, Routine, Context) \
ASSERT_IRQL(DISPATCH_LEVEL); \
(Item)->WorkerRoutine = (Routine); \
(Item)->Parameter = (Context); \
PLARGE_INTEGER LocalTime,
PLARGE_INTEGER SystemTime
);
-USHORT
-STDCALL
-ExQueryDepthSListHead (
- PSLIST_HEADER SListHead
- );
+
+/*
+ * USHORT
+ * ExQueryDepthSListHead (
+ * PSLIST_HEADER SListHead
+ * );
+*/
+#define ExQueryDepthSListHead(ListHead) \
+ (USHORT)(ListHead)->Depth
+
VOID
STDCALL
ExQueueWorkItem (
ExReleaseFastMutexUnsafe (
PFAST_MUTEX Mutex
);
+/*
VOID
STDCALL
ExReleaseResource (
PERESOURCE Resource
);
+*/
+#define ExReleaseResource(Resource) \
+ (ExReleaseResourceLite (Resource))
+
VOID
STDCALL
ExReleaseResourceLite (
PLONG Addend
);
-VOID
-RemoveEntryFromList (
- PLIST_ENTRY ListHead,
- PLIST_ENTRY Entry
- );
/*---*/
typedef
#ifndef __INCLUDE_DDK_KEDEF_H
#define __INCLUDE_DDK_KEDEF_H
+typedef enum _KBUGCHECK_BUFFER_DUMP_STATE
+{
+ BufferEmpty,
+ BufferInserted,
+ BufferStarted,
+ BufferFinished,
+ BufferIncomplete
+}KBUGCHECK_BUFFER_DUMP_STATE;
+
typedef enum _KINTERRUPT_MODE
{
LevelSensitive,
VOID
);
-ULONG KeGetCurrentProcessorNumber(VOID);
+/*
+ * ULONG
+ * KeGetCurrentProcessorNumber(VOID);
+ */
+/*
+ * FIXME: This should be an inline function on x86 systems
+ */
+#define KeGetCurrentProcessorNumber() 0UL
PKTHREAD
STDCALL
PVOID Context
);
-
-VOID KeInitializeCallbackRecord(PKBUGCHECK_CALLBACK_RECORD CallbackRecord);
+/*
+ * VOID
+ * KeInitializeCallbackRecord (
+ * PKBUGCHECK_CALLBACK_RECORD CallbackRecord
+ * );
+ */
+#define KeInitializeCallbackRecord(CallbackRecord) \
+ (CallbackRecord)->State = BufferEmpty
VOID
STDCALL
);
-/*
- * FUNCTION: Sets the current irql without altering the current processor
- * state
- * ARGUMENTS:
- * newlvl = IRQ level to set
- * NOTE: This is for internal use only
- */
-//VOID KeSetCurrentIrql(KIRQL newlvl);
-
// io permission map has a 8k size
// Each bit in the IOPM corresponds to an io port byte address. The bitmap
BOOLEAN Inserted;
} KAPC, *PKAPC;
-typedef struct
+typedef struct _KBUGCHECK_CALLBACK_RECORD
{
LIST_ENTRY Entry;
PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine;
-/* $Id: rtl.h,v 1.36 2000/06/29 23:35:12 dwelch Exp $
+/* $Id: rtl.h,v 1.37 2000/07/02 10:46:35 ekohl Exp $
*
*/
* PLIST_ENTRY Entry
* );
*
- * FUNCTION: Inserts an entry in a double linked list
+ * FUNCTION:
+ * Inserts an entry in a double linked list
+ *
* ARGUMENTS:
- * ListHead = Head of the list
- * Entry = Entry to insert
+ * ListHead = Head of the list
+ * Entry = Entry to insert
*/
#define InsertTailList(ListHead, ListEntry) \
{ \
((ListHead)->Flink == (ListHead))
-PSINGLE_LIST_ENTRY
-PopEntryList (
- PSINGLE_LIST_ENTRY ListHead
- );
+/*
+ * PSINGLE_LIST_ENTRY
+ * PopEntryList (
+ * PSINGLE_LIST_ENTRY ListHead
+ * );
+ *
+ * FUNCTION:
+ * Removes an entry from the head of a single linked list
+ *
+ * ARGUMENTS:
+ * ListHead = Head of the list
+ *
+ * RETURNS:
+ * The removed entry
+ */
/*
#define PopEntryList(ListHead) \
(ListHead)->Next; \
} \
}
*/
+static
+inline
+PSINGLE_LIST_ENTRY
+PopEntryList (
+ PSINGLE_LIST_ENTRY ListHead
+ )
+{
+ PSINGLE_LIST_ENTRY ListEntry;
+ ListEntry = ListHead->Next;
+ if (ListEntry!=NULL)
+ {
+ ListHead->Next = ListEntry->Next;
+ }
+ return ListEntry;
+}
+
+
+/*
VOID
PushEntryList (
PSINGLE_LIST_ENTRY ListHead,
PSINGLE_LIST_ENTRY Entry
);
+*/
/*
#define PushEntryList(ListHead,Entry) \
- (Entry)->Next = (ListHead)->Next; \
- (ListHead)->Next = (Entry)
+ (Entry)->Next = (ListHead)->Next; \
+ (ListHead)->Next = (Entry)
*/
+static
+inline
+VOID
+PushEntryList (
+ PSINGLE_LIST_ENTRY ListHead,
+ PSINGLE_LIST_ENTRY Entry
+ )
+{
+ Entry->Next = ListHead->Next;
+ ListHead->Next = Entry;
+}
/*
*
* ARGUMENTS:
* ListHead = Head of the list
+ *
* RETURNS:
* The removed entry
*/
-/* $Id: list.c,v 1.7 2000/06/18 15:21:53 ekohl Exp $
+/* $Id: list.c,v 1.1 2000/07/02 10:48:31 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
- * FILE: ntoskrnl/rtl/list.c
- * PURPOSE: Manages linked lists
+ * FILE: ntoskrnl/ex/list.c
+ * PURPOSE: Manages double linked lists, single linked lists and
+ * sequenced lists
* PROGRAMMER: David Welch (welch@mcmail.com)
*/
/* FUNCTIONS *************************************************************/
-#if 0
-static BOOLEAN CheckEntry(PLIST_ENTRY ListEntry)
-{
- assert(ListEntry!=NULL);
- assert(ListEntry->Blink!=NULL);
- assert(ListEntry->Blink->Flink==ListEntry);
- assert(ListEntry->Flink!=NULL);
- assert(ListEntry->Flink->Blink==ListEntry);
- return(TRUE);
-}
-
-PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead)
-/*
- * FUNCTION: Remove the tail entry from a double linked list
- * ARGUMENTS:
- * ListHead = Head of the list to remove from
- * RETURNS: The removed entry
- */
-{
- PLIST_ENTRY Old = ListHead->Blink;
- RemoveEntryList(ListHead->Blink);
- return(Old);
-}
-
-PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead)
-{
- PLIST_ENTRY Old;
-
- DPRINT("RemoveHeadList(ListHead %x)\n",ListHead);
-
- assert(CheckEntry(ListHead));
-
- Old = ListHead->Flink;
- RemoveEntryList(ListHead->Flink);
-
- DPRINT("RemoveHeadList()\n");
-
- return(Old);
-}
-#endif
-
PLIST_ENTRY
STDCALL
-ExInterlockedInsertTailList (
+ExInterlockedInsertHeadList (
PLIST_ENTRY ListHead,
PLIST_ENTRY ListEntry,
PKSPIN_LOCK Lock
)
+/*
+ * FUNCTION: Inserts an entry at the head of a doubly linked list
+ * ARGUMENTS:
+ * ListHead = Points to the head of the list
+ * ListEntry = Points to the entry to be inserted
+ * Lock = Caller supplied spinlock used to synchronise access
+ * RETURNS: The previous head of the list
+ */
{
PLIST_ENTRY Old;
KIRQL oldlvl;
}
else
{
- Old = ListHead->Blink;
+ Old = ListHead->Flink;
}
- InsertTailList(ListHead,ListEntry);
+ InsertHeadList(ListHead,ListEntry);
KeReleaseSpinLock(Lock,oldlvl);
return(Old);
}
+
PLIST_ENTRY
STDCALL
-ExInterlockedInsertHeadList (
+ExInterlockedInsertTailList (
PLIST_ENTRY ListHead,
PLIST_ENTRY ListEntry,
PKSPIN_LOCK Lock
)
-/*
- * FUNCTION: Inserts an entry at the head of a doubly linked list
- * ARGUMENTS:
- * ListHead = Points to the head of the list
- * ListEntry = Points to the entry to be inserted
- * Lock = Caller supplied spinlock used to synchronise access
- * RETURNS: The previous head of the list
- */
{
PLIST_ENTRY Old;
KIRQL oldlvl;
}
else
{
- Old = ListHead->Flink;
+ Old = ListHead->Blink;
}
- InsertHeadList(ListHead,ListEntry);
+ InsertTailList(ListHead,ListEntry);
KeReleaseSpinLock(Lock,oldlvl);
return(Old);
return(ret);
}
+
+PSINGLE_LIST_ENTRY
+STDCALL
+ExInterlockedPopEntrySList (
+ PSLIST_HEADER ListHead,
+ PKSPIN_LOCK Lock
+ )
+{
+ UNIMPLEMENTED;
+}
+
+
+PSINGLE_LIST_ENTRY
+STDCALL
+ExInterlockedPushEntrySList (
+ PSLIST_HEADER ListHead,
+ PSINGLE_LIST_ENTRY ListEntry,
+ PKSPIN_LOCK Lock
+ )
+{
+ UNIMPLEMENTED;
+}
+
+
+PSINGLE_LIST_ENTRY
+STDCALL
+ExInterlockedPopEntryList (
+ PSINGLE_LIST_ENTRY ListHead,
+ PKSPIN_LOCK Lock
+ )
+{
+ PSINGLE_LIST_ENTRY ret;
+ KIRQL oldlvl;
+
+ KeAcquireSpinLock(Lock,&oldlvl);
+ ret = PopEntryList(ListHead);
+ KeReleaseSpinLock(Lock,oldlvl);
+ return(ret);
+}
+
+
+PSINGLE_LIST_ENTRY
+STDCALL
+ExInterlockedPushEntryList (
+ PSINGLE_LIST_ENTRY ListHead,
+ PSINGLE_LIST_ENTRY ListEntry,
+ PKSPIN_LOCK Lock
+ )
+{
+ KIRQL oldlvl;
+ PSINGLE_LIST_ENTRY ret;
+
+ KeAcquireSpinLock(Lock,&oldlvl);
+ ret=ListHead->Next;
+ PushEntryList(ListHead,ListEntry);
+ KeReleaseSpinLock(Lock,oldlvl);
+ return(ret);
+}
+
/* EOF */
-/* $Id: lookas.c,v 1.2 2000/06/07 13:05:09 ekohl Exp $
+/* $Id: lookas.c,v 1.1 2000/07/02 10:48:31 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
- * FILE: ntoskrnl/rtl/lookas.c
+ * FILE: ntoskrnl/ex/lookas.c
* PURPOSE: Lookaside lists
* PROGRAMMER: David Welch (welch@mcmail.com)
* UPDATE HISTORY:
-/* $Id: resource.c,v 1.12 2000/06/07 13:04:34 ekohl Exp $
+/* $Id: resource.c,v 1.13 2000/07/02 10:48:31 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
return(STATUS_SUCCESS);;
}
-ERESOURCE_THREAD
-STDCALL
-ExGetCurrentResourceThread (
- VOID
- )
-{
- return((ERESOURCE_THREAD)PsGetCurrentThread());
-}
-
ULONG
STDCALL
ExGetSharedWaiterCount (
ExGetCurrentResourceThread()));
}
-VOID
-STDCALL
-ExReleaseResource (
- PERESOURCE Resource
- )
-{
- return ExReleaseResourceForThreadLite(Resource,ExGetCurrentResourceThread());
-}
-
VOID
STDCALL
ExReleaseResourceForThread (
+++ /dev/null
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS kernel
- * FILE: ntoskrnl/ex/stamp.c
- * PURPOSE: Versioning
- * PROGRAMMER: David Welch (welch@mcmail.com)
- * UPDATE HISTORY:
- * Created 22/05/98
- */
-
-/* INCLUDES *****************************************************************/
-
-#include <ddk/ntddk.h>
-
-#include <internal/debug.h>
-
-/* GLOBALS ******************************************************************/
-
-static ULONG TimeStamp = 0;
-
-/* FUNCTIONS *****************************************************************/
-
-ULONG ExGetTimeStamp(VOID)
-{
- return(InterlockedIncrement(&TimeStamp));
-}
-/* $Id: work.c,v 1.6 2000/06/09 20:02:59 ekohl Exp $
+/* $Id: work.c,v 1.7 2000/07/02 10:48:31 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
HIGH_PRIORITY);
}
-#if 0
-VOID
-STDCALL
-ExInitializeWorkItem (
- PWORK_QUEUE_ITEM Item,
- PWORKER_THREAD_ROUTINE Routine,
- PVOID Context
- )
-/*
- * FUNCTION: Initializes a work item to be processed by one of the system
- * worker threads
- * ARGUMENTS:
- * Item = Pointer to the item to be initialized
- * Routine = Routine to be called by the worker thread
- * Context = Parameter to be passed to the callback
- */
-{
- ASSERT_IRQL(DISPATCH_LEVEL);
-
- Item->Routine = Routine;
- Item->Context = Context;
- Item->Entry.Flink = NULL;
- Item->Entry.Blink = NULL;
-}
-#endif
-
VOID
STDCALL
ExQueueWorkItem (
-/* $Id: zone.c,v 1.3 2000/06/07 13:04:53 ekohl Exp $
+/* $Id: zone.c,v 1.1 2000/07/02 10:48:31 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
-/* $Id: mp.c,v 1.4 2000/04/05 15:49:52 ekohl Exp $
+/* $Id: mp.c,v 1.5 2000/07/02 10:49:04 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
/* FUNCTIONS *****************************************************************/
-ULONG KeGetCurrentProcessorNumber(VOID)
-/*
- * FUNCTION: Returns the system assigned number of the current processor
- */
-{
- return(0);
-}
-
VOID
STDCALL
HalInitializeProcessor (
-/* $Id: bug.c,v 1.12 2000/07/01 18:26:10 ekohl Exp $
+/* $Id: bug.c,v 1.13 2000/07/02 10:49:30 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
UNIMPLEMENTED;
}
-VOID KeInitializeCallbackRecord(PKBUGCHECK_CALLBACK_RECORD CallbackRecord)
-{
- UNIMPLEMENTED;
-}
-
BOOLEAN
STDCALL
KeRegisterBugCheckCallback (
-# $Id: makefile_rex,v 1.76 2000/06/30 22:50:53 ekohl Exp $
+# $Id: makefile_rex,v 1.77 2000/07/02 10:47:28 ekohl Exp $
#
# ReactOS Operating System
#
rtl/ctype.o \
rtl/interlck.o \
rtl/largeint.o \
- rtl/list.o \
- rtl/lookas.o \
rtl/mem.o \
rtl/memchr.o \
rtl/memcpy.o \
rtl/nls.o \
rtl/qsort.o \
rtl/regio.o \
- rtl/return.o \
- rtl/slist.o \
rtl/sprintf.o \
rtl/stdlib.o \
rtl/string.o \
mm/ppool.o \
mm/section.o \
mm/virtual.o \
- mm/zone.o \
mm/pager.o \
# mm/kmap.o
ex/fmutex.o \
ex/init.o \
ex/interlck.o \
+ ex/list.o \
ex/locale.o \
+ ex/lookas.o \
ex/napi.o \
ex/power.o \
ex/resource.o \
ex/time.o \
- ex/stamp.o \
ex/sysinfo.o \
- ex/work.o
+ ex/work.o \
+ ex/zone.o
# Installable File System Run-Time Library (FsRtl)
OBJECTS_FS = \
-; $Id: ntoskrnl.def,v 1.78 2000/07/01 18:22:14 ekohl Exp $
+; $Id: ntoskrnl.def,v 1.79 2000/07/02 10:47:28 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
ExAcquireSharedWaitForExclusive@8
ExAllocateFromNPagedLookasideList@4
ExAllocateFromPagedLookasideList@4
-ExAllocateFromZone@4
ExAllocatePool@8
ExAllocatePoolWithQuota@8
ExAllocatePoolWithQuotaTag@12
ExFreePool@4
ExFreeToNPagedLookasideList@8
ExFreeToPagedLookasideList@8
-ExFreeToZone@8
-ExGetCurrentResourceThread@0
ExGetExclusiveWaiterCount@4
;ExGetPreviousMode
ExGetSharedWaiterCount@4
ExInitializePagedLookasideList
ExInitializeResource@4
ExInitializeResourceLite@4
-;FIXME: ExInitializeSListHead is a macro!
-ExInitializeSListHead@4
ExInitializeZone@16
ExInterlockedAddLargeInteger@16
;ExInterlockedAddLargeStatistic
ExInterlockedAddUlong@12
-ExInterlockedAllocateFromZone@8
;ExInterlockedCompareExchange64
ExInterlockedDecrementLong@8
ExInterlockedExchangeUlong@12
ExInterlockedExtendZone@16
-ExInterlockedFreeToZone@12
ExInterlockedIncrementLong@8
ExInterlockedInsertHeadList@12
ExInterlockedInsertTailList@12
ExInterlockedPushEntryList@12
ExInterlockedPushEntrySList@12
ExInterlockedRemoveHeadList@8
-ExIsFullZone@4
-ExIsObjectInFirstZoneSegment@8
;ExIsProcessorFeaturePresent
ExIsResourceAcquiredExclusiveLite@4
ExIsResourceAcquiredSharedLite@4
;ExNotifyCallback
;ExPostSystemEvent
;ExQueryPoolBlockSize
-ExQueryDepthSListHead@4
ExQueueWorkItem@8
ExRaiseAccessViolation@0
ExRaiseDatatypeMisalignment@0
+;ExRaiseException
+;ExRaiseHardError
ExRaiseStatus@4
;ExRegisterCallback
ExReinitializeResourceLite@4
ExReleaseFastMutexUnsafe@4
-ExReleaseResource@4
-ExReleaseResourceLite@4
ExReleaseResourceForThread@8
ExReleaseResourceForThreadLite@8
+ExReleaseResourceLite@4
;ExSetResourceOwnerPointer
;ExSystemExceptionFilter
ExSystemTimeToLocalTime@8
;
; ReactOS Extensions (these should be macros!)
;
+ExAllocateFromZone@4
+ExFreeToZone@8
+ExInterlockedAllocateFromZone@8
+ExInterlockedFreeToZone@12
+ExIsFullZone@4
+ExIsObjectInFirstZoneSegment@8
MmGetSystemAddressForMdl
;
;
-; $Id: ntoskrnl.edf,v 1.65 2000/07/01 18:22:14 ekohl Exp $
+; $Id: ntoskrnl.edf,v 1.66 2000/07/02 10:47:28 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
ExAcquireSharedWaitForExclusive=ExAcquireSharedWaitForExclusive@8
ExAllocateFromNPagedLookasideList=ExAllocateFromNPagedLookasideList@4
ExAllocateFromPagedLookasideList=ExAllocateFromPagedLookasideList@4
-ExAllocateFromZone=ExAllocateFromZone@4
ExAllocatePool=ExAllocatePool@8
ExAllocatePoolWithQuota=ExAllocatePoolWithQuota@8
ExAllocatePoolWithQuotaTag=ExAllocatePoolWithQuotaTag@12
ExFreePool=ExFreePool@4
ExFreeToNPagedLookasideList=ExFreeToNPagedLookasideList@8
ExFreeToPagedLookasideList=ExFreeToPagedLookasideList@8
-ExFreeToZone=ExFreeToZone@8
-ExGetCurrentResourceThread=ExGetCurrentResourceThread@0
ExGetExclusiveWaiterCount=ExGetExclusiveWaiterCount@4
;ExGetPreviousMode
ExGetSharedWaiterCount=ExGetSharedWaiterCount@4
ExInitializePagedLookasideList=ExInitializePagedLookasideList@28
ExInitializeResource=ExInitializeResource@4
ExInitializeResourceLite=ExInitializeResourceLite@4
-ExInitializeSListHead=ExInitializeSListHead@4
ExInitializeZone=ExInitializeZone@16
ExInterlockedAddLargeInteger=ExInterlockedAddLargeInteger@16
;ExInterlockedAddLargeStatistic
ExInterlockedAddUlong=ExInterlockedAddUlong@12
-ExInterlockedAllocateFromZone=ExInterlockedAllocateFromZone@8
;ExInterlockedCompareExchange64
ExInterlockedDecrementLong=ExInterlockedDecrementLong@8
ExInterlockedExchangeUlong=ExInterlockedExchangeUlong@12
ExInterlockedExtendZone=ExInterlockedExtendZone@16
-ExInterlockedFreeToZone=ExInterlockedFreeToZone@12
ExInterlockedIncrementLong=ExInterlockedIncrementLong@8
ExInterlockedInsertHeadList=ExInterlockedInsertHeadList@12
ExInterlockedInsertTailList=ExInterlockedInsertTailList@12
ExInterlockedPushEntryList=ExInterlockedPushEntryList@12
ExInterlockedPushEntrySList=ExInterlockedPushEntrySList@12
ExInterlockedRemoveHeadList=ExInterlockedRemoveHeadList@8
-ExIsFullZone=ExIsFullZone@4
-ExIsObjectInFirstZoneSegment=ExIsObjectInFirstZoneSegment@8
;ExIsProcessorFeaturePresent
ExIsResourceAcquiredExclusiveLite=ExIsResourceAcquiredExclusiveLite@4
ExIsResourceAcquiredSharedLite=ExIsResourceAcquiredSharedLite@4
;ExNotifyCallback
;ExPostSystemEvent
;ExQueryPoolBlockSize
-ExQueryDepthSListHead=ExQueryDepthSListHead@4
ExQueueWorkItem=ExQueueWorkItem@8
ExRaiseAccessViolation=ExRaiseAccessViolation@0
ExRaiseDatatypeMisalignment=ExRaiseDatatypeMisalignment@0
;ExRegisterCallback
ExReinitializeResourceLite=ExReinitializeResourceLite@4
ExReleaseFastMutexUnsafe=ExReleaseFastMutexUnsafe@4
-ExReleaseResource=ExReleaseResource@4
-ExReleaseResourceLite=ExReleaseResourceLite@4
ExReleaseResourceForThread=ExReleaseResourceForThread@8
ExReleaseResourceForThreadLite=ExReleaseResourceForThreadLite@8
+ExReleaseResourceLite=ExReleaseResourceLite@4
;ExSetResourceOwnerPointer
;ExSystemExceptionFilter
ExSystemTimeToLocalTime=ExSystemTimeToLocalTime@8
;
; ReactOS Extensions
;
+ExAllocateFromZone=ExAllocateFromZone@4
+ExFreeToZone=ExFreeToZone@8
+ExInterlockedAllocateFromZone=ExInterlockedAllocateFromZone@8
+ExInterlockedFreeToZone=ExInterlockedFreeToZone@12
+ExIsFullZone=ExIsFullZone@4
+ExIsObjectInFirstZoneSegment=ExIsObjectInFirstZoneSegment@8
MmGetSystemAddressForMdl
;
;
+++ /dev/null
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS kernel
- * FILE: kernel/base/bug.c
- * PURPOSE: Graceful system shutdown if a bug is detected
- * PROGRAMMER: David Welch (welch@mcmail.com)
- * UPDATE HISTORY:
- * Created 22/05/98
- */
-
-/* INCLUDES *****************************************************************/
-
-#include <ddk/ntddk.h>
-
-#include <internal/debug.h>
-
-/* FUNCTIONS *****************************************************************/
-
+++ /dev/null
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS kernel
- * FILE: ntoskrnl/rtl/seqlist.c
- * PURPOSE: Implementing sequenced lists
- * PROGRAMMER: David Welch (welch@cwcom.net)
- * REVISION HISTORY:
- * 28/06/98: Created
- */
-
-/* INCLUDES ***************************************************************/
-
-#include <ddk/ntddk.h>
-
-/* TYPES ********************************************************************/
-
-typedef union _SLIST_HEADER
-{
- ULONGLONG Alignment;
- struct
- {
- SINGLE_LIST_ENTRY Next;
- USHORT Depth;
- USHORT Sequence;
- } s;
-} SLIST_HEADER, *PSLIST_HEADER;
-
-/* FUNCTIONS ****************************************************************/
-
-VOID ExInitializeSListHead(PSLIST_HEADER SListHead)
-{
- SListHead->s.Next.Next=NULL;
- SListHead->s.Depth = 0;
- SListHead->s.Sequence = 0;
-}
-
-
+++ /dev/null
-/* $Id: slist.c,v 1.3 2000/06/07 13:05:09 ekohl Exp $
- *
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS project
- * FILE: kernel/rtl/slist.c
- * PURPOSE: Implements single linked lists
- * PROGRAMMER: David Welch (welch@mcmail.com)
- * REVISION HISTORY:
- * 28/06/98: Created
- */
-
-/* INCLUDES *****************************************************************/
-
-#include <ddk/ntddk.h>
-
-#include <internal/debug.h>
-
-/* FUNCTIONS ****************************************************************/
-
-PSINGLE_LIST_ENTRY
-STDCALL
-ExInterlockedPopEntrySList (
- PSLIST_HEADER ListHead,
- PKSPIN_LOCK Lock
- )
-{
- UNIMPLEMENTED;
-}
-
-
-PSINGLE_LIST_ENTRY
-STDCALL
-ExInterlockedPushEntrySList (
- PSLIST_HEADER ListHead,
- PSINGLE_LIST_ENTRY ListEntry,
- PKSPIN_LOCK Lock
- )
-{
- UNIMPLEMENTED;
-}
-
-
-USHORT
-STDCALL
-ExQueryDepthSListHead (
- PSLIST_HEADER SListHead
- )
-{
- UNIMPLEMENTED;
-}
-
-
-VOID
-STDCALL
-ExInitializeSListHead (
- PSLIST_HEADER SListHead
- )
-{
- UNIMPLEMENTED;
-}
-
-
-PSINGLE_LIST_ENTRY
-STDCALL
-ExInterlockedPopEntryList (
- PSINGLE_LIST_ENTRY ListHead,
- PKSPIN_LOCK Lock
- )
-{
- PSINGLE_LIST_ENTRY ret;
- KIRQL oldlvl;
-
- KeAcquireSpinLock(Lock,&oldlvl);
- ret = PopEntryList(ListHead);
- KeReleaseSpinLock(Lock,oldlvl);
- return(ret);
-}
-
-
-PSINGLE_LIST_ENTRY
-STDCALL
-ExInterlockedPushEntryList (
- PSINGLE_LIST_ENTRY ListHead,
- PSINGLE_LIST_ENTRY ListEntry,
- PKSPIN_LOCK Lock
- )
-{
- KIRQL oldlvl;
- PSINGLE_LIST_ENTRY ret;
-
- KeAcquireSpinLock(Lock,&oldlvl);
- ret=ListHead->Next;
- PushEntryList(ListHead,ListEntry);
- KeReleaseSpinLock(Lock,oldlvl);
- return(ret);
-}
-
-PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY ListHead)
-/*
- * FUNCTION: Removes an entry from the head of a single linked list
- * ARGUMENTS:
- * ListHead = Head of the list
- * RETURNS: The removed entry
- */
-{
- PSINGLE_LIST_ENTRY ListEntry = ListHead->Next;
- if (ListEntry!=NULL)
- {
- ListHead->Next = ListEntry->Next;
- }
- return(ListEntry);
-}
-
-
-VOID PushEntryList(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry)
-{
- Entry->Next = ListHead->Next;
- ListHead->Next = Entry;
-}
-
-/* EOF */