-/* $Id: ntddk.h,v 1.23 2001/06/22 12:39:48 ekohl Exp $
+/* $Id: ntddk.h,v 1.24 2001/07/06 21:31:30 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
/* INCLUDES ***************************************************************/
-/* GCC can not handle __fastcall */
-//#ifdef USE_FASTCALL
-//#define FASTCALL __attribute__((fastcall))
-//#else
-#define FASTCALL STDCALL
-//#endif
+#define FASTCALL __attribute__((fastcall))
+
#define STATIC static
#include <ntos/types.h>
#ifndef _INCLUDE_DDK_SEFUNCS_H
#define _INCLUDE_DDK_SEFUNCS_H
-/* $Id: sefuncs.h,v 1.13 2000/07/04 08:52:34 dwelch Exp $ */
-NTSTATUS STDCALL RtlCreateAcl(PACL Acl, ULONG AclSize, ULONG AclRevision);
-NTSTATUS STDCALL RtlQueryInformationAcl (PACL Acl, PVOID Information, ULONG InformationLength, ACL_INFORMATION_CLASS InformationClass);
-NTSTATUS STDCALL RtlSetInformationAcl (PACL Acl, PVOID Information, ULONG InformationLength, ACL_INFORMATION_CLASS InformationClass);
-BOOLEAN STDCALL RtlValidAcl (PACL Acl);
-
-NTSTATUS STDCALL RtlAddAccessAllowedAce(PACL Acl, ULONG Revision, ACCESS_MASK AccessMask, PSID Sid);
-NTSTATUS STDCALL RtlAddAccessDeniedAce(PACL Acl, ULONG Revision, ACCESS_MASK AccessMask, PSID Sid);
-NTSTATUS STDCALL RtlAddAce(PACL Acl, ULONG Revision, ULONG StartingIndex, PACE AceList, ULONG AceListLength);
-NTSTATUS STDCALL RtlAddAuditAccessAce (PACL Acl, ULONG Revision, ACCESS_MASK AccessMask, PSID Sid, BOOLEAN Success, BOOLEAN Failure);
-NTSTATUS STDCALL RtlDeleteAce(PACL Acl, ULONG AceIndex);
-BOOLEAN STDCALL RtlFirstFreeAce(PACL Acl, PACE* Ace);
-NTSTATUS STDCALL RtlGetAce(PACL Acl, ULONG AceIndex, PACE *Ace);
-
-NTSTATUS STDCALL RtlAbsoluteToSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD, PSECURITY_DESCRIPTOR RelSD, PULONG BufferLength);
-NTSTATUS STDCALL RtlMakeSelfRelativeSD (PSECURITY_DESCRIPTOR AbsSD, PSECURITY_DESCRIPTOR RelSD, PULONG BufferLength);
-NTSTATUS STDCALL RtlCreateSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, ULONG Revision);
-BOOLEAN STDCALL RtlValidSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor);
-ULONG STDCALL RtlLengthSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor);
-NTSTATUS STDCALL RtlSetDaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, BOOLEAN DaclPresent, PACL Dacl, BOOLEAN DaclDefaulted);
-NTSTATUS STDCALL RtlGetDaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PBOOLEAN DaclPresent, PACL* Dacl, PBOOLEAN DaclDefauted);
-NTSTATUS STDCALL RtlSetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID Owner, BOOLEAN OwnerDefaulted);
-NTSTATUS STDCALL RtlGetOwnerSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID* Owner, PBOOLEAN OwnerDefaulted);
-NTSTATUS STDCALL RtlSetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID Group, BOOLEAN GroupDefaulted);
-NTSTATUS STDCALL RtlGetGroupSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSID* Group, PBOOLEAN GroupDefaulted);
-NTSTATUS STDCALL RtlGetControlSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PSECURITY_DESCRIPTOR_CONTROL Control, PULONG Revision);
-NTSTATUS STDCALL RtlSetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, BOOLEAN SaclPresent, PACL Sacl, BOOLEAN SaclDefaulted);
-NTSTATUS STDCALL RtlGetSaclSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor, PBOOLEAN SaclPresent, PACL* Sacl, PBOOLEAN SaclDefauted);
-NTSTATUS STDCALL RtlSelfRelativeToAbsoluteSD (PSECURITY_DESCRIPTOR RelSD,
- PSECURITY_DESCRIPTOR AbsSD,
- PDWORD AbsSDSize,
- PACL Dacl,
- PDWORD DaclSize,
- PACL Sacl,
- PDWORD SaclSize,
- PSID Owner,
- PDWORD OwnerSize,
- PSID Group,
- PDWORD GroupSize);
-
-NTSTATUS STDCALL RtlAllocateAndInitializeSid (PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
- UCHAR SubAuthorityCount,
- ULONG SubAuthority0,
- ULONG SubAuthority1,
- ULONG SubAuthority2,
- ULONG SubAuthority3,
- ULONG SubAuthority4,
- ULONG SubAuthority5,
- ULONG SubAuthority6,
- ULONG SubAuthority7,
- PSID *Sid);
-ULONG STDCALL RtlLengthRequiredSid (UCHAR SubAuthorityCount);
-PSID_IDENTIFIER_AUTHORITY STDCALL RtlIdentifierAuthoritySid (PSID Sid);
-NTSTATUS STDCALL RtlInitializeSid (PSID Sid, PSID_IDENTIFIER_AUTHORITY IdentifierAuthority, UCHAR SubAuthorityCount);
-PULONG STDCALL RtlSubAuthoritySid (PSID Sid, ULONG SubAuthority);
-NTSTATUS STDCALL RtlCopySid (ULONG BufferLength, PSID Dest, PSID Src);
-BOOLEAN STDCALL RtlEqualPrefixSid (PSID Sid1, PSID Sid2);
-BOOLEAN STDCALL RtlEqualSid(PSID Sid1, PSID Sid2);
-PSID STDCALL RtlFreeSid (PSID Sid);
-ULONG STDCALL RtlLengthSid (PSID Sid);
-PULONG STDCALL RtlSubAuthoritySid (PSID Sid, ULONG SubAuthority);
-PUCHAR STDCALL RtlSubAuthorityCountSid (PSID Sid);
-BOOLEAN STDCALL RtlValidSid (PSID Sid);
-NTSTATUS STDCALL RtlConvertSidToUnicodeString (PUNICODE_STRING String, PSID Sid, BOOLEAN AllocateBuffer);
-
-BOOLEAN STDCALL RtlAreAllAccessesGranted (ACCESS_MASK GrantedAccess, ACCESS_MASK DesiredAccess);
-BOOLEAN STDCALL RtlAreAnyAccessesGranted (ACCESS_MASK GrantedAccess, ACCESS_MASK DesiredAccess);
-VOID STDCALL RtlMapGenericMask (PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping);
+/* $Id: sefuncs.h,v 1.14 2001/07/06 21:32:43 ekohl Exp $ */
BOOLEAN STDCALL SeAccessCheck (IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
-; $Id: ntoskrnl.def,v 1.109 2001/07/04 20:40:20 chorns Exp $
+; $Id: ntoskrnl.def,v 1.110 2001/07/06 21:30:59 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
;DbgLoadImageSymbols@12
DbgPrint
DbgPrompt@12
-ExAcquireFastMutexUnsafe@4
+@ExAcquireFastMutexUnsafe@4
ExAcquireResourceExclusive@8
ExAcquireResourceExclusiveLite@8
ExAcquireResourceSharedLite@8
ExInitializeResourceLite@4
ExInitializeZone@16
ExInterlockedAddLargeInteger@16
-;@ExInterlockedAddLargeStatistic@8
-ExInterlockedAddLargeStatistic@8
+@ExInterlockedAddLargeStatistic@8
ExInterlockedAddUlong@12
-;@ExInterlockedCompareExchange64@16
-ExInterlockedCompareExchange64@16
+@ExInterlockedCompareExchange64@16
ExInterlockedDecrementLong@8
ExInterlockedExchangeUlong@12
ExInterlockedExtendZone@16
ExInterlockedInsertHeadList@12
ExInterlockedInsertTailList@12
ExInterlockedPopEntryList@8
-ExInterlockedPopEntrySList@8
+@ExInterlockedPopEntrySList@8
ExInterlockedPushEntryList@12
-ExInterlockedPushEntrySList@12
+@ExInterlockedPushEntrySList@12
ExInterlockedRemoveHeadList@8
ExIsProcessorFeaturePresent@4
ExIsResourceAcquiredExclusiveLite@4
ExRaiseStatus@4
ExRegisterCallback@12
ExReinitializeResourceLite@4
-ExReleaseFastMutexUnsafe@4
+@ExReleaseFastMutexUnsafe@4
ExReleaseResourceForThread@8
ExReleaseResourceForThreadLite@8
-ExReleaseResourceLite@4
+@ExReleaseResourceLite@4
ExSetResourceOwnerPointer@8
;ExSystemExceptionFilter
ExSystemTimeToLocalTime@8
ExTryToAcquireResourceExclusiveLite@4
ExUnregisterCallback@4
ExWindowStationObjectType DATA
-;ExfInterlockedAddUlong
-;ExfInterlockedInsertHeadList
-;ExfInterlockedInsertTailList
-;ExfInterlockedPopEntryList
-;ExfInterlockedPushEntryList
-;ExfInterlockedRemoveHeadList
-;Exfi386InterlockedDecrementLong
-;Exfi386InterlockedExchangeUlong
-;Exfi386InterlockedIncrementLong
+;@ExfInterlockedAddUlong
+;@ExfInterlockedInsertHeadList
+;@ExfInterlockedInsertTailList
+;@ExfInterlockedPopEntryList
+;@ExfInterlockedPushEntryList
+;@ExfInterlockedRemoveHeadList
+;@Exfi386InterlockedDecrementLong
+;@Exfi386InterlockedExchangeUlong
+;@Exfi386InterlockedIncrementLong
;Exi386InterlockedDecrementLong
;Exi386InterlockedExchangeUlong
;Exi386InterlockedIncrementLong
FsRtlUninitializeOplock@4
HalDispatchTable DATA
HalPrivateDispatchTable DATA
-;@InterlockedCompareExchange@12
-InterlockedCompareExchange@12
-;@InterlockedDecrement@4
-InterlockedDecrement@4
-;@InterlockedExchange@8
-InterlockedExchange@8
-;@InterlockedExchangeAdd@8
-InterlockedExchangeAdd@8
-;@InterlockedIncrement@4
-InterlockedIncrement@4
+@InterlockedCompareExchange@12
+@InterlockedDecrement@4
+@InterlockedExchange@8
+@InterlockedExchangeAdd@8
+@InterlockedIncrement@4
IoAcquireCancelSpinLock@4
IoAcquireVpbSpinLock@4
IoAdapterObjectType DATA
IoWriteErrorLogEntry@4
IoWriteOperationCount DATA
IoWriteTransferCount DATA
-;@IofCallDriver@8
-IofCallDriver@8
-;@IofCompleteRequest@8
-IofCompleteRequest@8
+@IofCallDriver@8
+@IofCompleteRequest@8
KdDebuggerEnabled DATA
KdDebuggerNotPresent DATA
KdPollBreakIn@0
;KeSetKernelStackSwapEnable
KeSetPriorityThread@8
;KeSetProfileIrql
-;KeSetSwapContextNotifyRoutine
+;@KeSetSwapContextNotifyRoutine
KeSetTargetProcessorDpc@8
-;KeSetThreadSelectNotifyRoutine
+;@KeSetThreadSelectNotifyRoutine
;KeSetTimeIncrement
KeSetTimer@16
KeSetTimerEx@20
-;KeSetTimeUpdateNotifyRoutine
+;@KeSetTimeUpdateNotifyRoutine
KeSynchronizeExecution@12
;KeTerminateThread
;KeTickCount DATA
KeWaitForMultipleObjects@32
KeWaitForMutexObject@20
KeWaitForSingleObject@20
-;KefAcquireSpinLockAtDpcLevel
-;KefReleaseSpinLockFromDpcLevel
+;@KefAcquireSpinLockAtDpcLevel
+;@KefReleaseSpinLockFromDpcLevel
;Kei386EoiHelper
-;KiAcquireSpinLock@4
+;@KiAcquireSpinLock@4
;KiBugCheckData DATA
;KiCoprocessorError@0
KiDeliverApc@12
KiDispatchInterrupt@0
;KiIpiServiceRoutine@8
-;KiReleaseSpinLock@4
+;@KiReleaseSpinLock@4
;KiUnexpectedInterrupt
;Kii386SpinOnSpinLock
LdrAccessResource@16
ObOpenObjectByPointer@28
;ObQueryNameString@16
;ObQueryObjectAuditingByHandle@8
-ObfDereferenceObject@4
-ObfReferenceObject@4
+@ObfDereferenceObject@4
+@ObfReferenceObject@4
ObReferenceObjectByHandle@24
ObReferenceObjectByName@32
ObReferenceObjectByPointer@16
; exports from hal.dll
;
;
-ExAcquireFastMutex@4
-ExReleaseFastMutex@4
-ExTryToAcquireFastMutex@4
+@ExAcquireFastMutex@4
+@ExReleaseFastMutex@4
+@ExTryToAcquireFastMutex@4
HalAcquireDisplayOwnership@4
HalAdjustResourceList@4
HalAllProcessorsStarted@0
HalBeginSystemInterrupt@12
HalCalibratePerformanceCounter@4
;@HalClearSoftwareInterrupt@4
-;HalClearSoftwareInterrupt@4
HalDisableSystemInterrupt@8
HalDisplayString@4
HalEnableSystemInterrupt@12
HalReportResourceUsage@0
HalRequestIpi@4
;@HalRequestSoftwareInterrupt@4
-;HalRequestSoftwareInterrupt@4
HalReturnToFirmware@4
HalSetBusData@20
HalSetBusDataByOffset@24
HalStartNextProcessor@8
;HalStartProfileInterrupt@4
;HalStopProfileInterrupt@4
-HalSystemVectorDispatchEntry@12
+@HalSystemVectorDispatchEntry@12
HalTranslateBusAddress@24
IoAssignDriveLetters@16
IoFlushAdapterBuffers@24
KdPortRestore@0
KdPortSave@0
KeAcquireSpinLock@8
-;@KeAcquireSpinLockRaiseToSynch@4
-KeAcquireSpinLockRaiseToSynch@4
+@KeAcquireSpinLockRaiseToSynch@4
KeFlushWriteBuffer@0
KeGetCurrentIrql@0
KeLowerIrql@4
KeRaiseIrqlToSynchLevel@0
KeReleaseSpinLock@8
KeStallExecutionProcessor@4
-;@KfAcquireSpinLock@4
-KfAcquireSpinLock@4
-;@KfLowerIrql@4
-KfLowerIrql@4
-;@KfRaiseIrql@4
-KfRaiseIrql@4
-;@KfReleaseSpinLock@8
-KfReleaseSpinLock@8
+@KfAcquireSpinLock@4
+@KfLowerIrql@4
+@KfRaiseIrql@4
+@KfReleaseSpinLock@8
READ_PORT_BUFFER_UCHAR@12
READ_PORT_BUFFER_ULONG@12
READ_PORT_BUFFER_USHORT@12
-; $Id: ntoskrnl.edf,v 1.95 2001/06/16 14:05:29 ekohl Exp $
+; $Id: ntoskrnl.edf,v 1.96 2001/07/06 21:30:59 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
;DbgLoadImageSymbols=DbgLoadImageSymbols@12
DbgPrint
DbgPrompt=DbgPrompt@12
-ExAcquireFastMutexUnsafe=ExAcquireFastMutexUnsafe@4
+ExAcquireFastMutexUnsafe=@ExAcquireFastMutexUnsafe@4
ExAcquireResourceExclusive=ExAcquireResourceExclusive@8
ExAcquireResourceExclusiveLite=ExAcquireResourceExclusiveLite@8
ExAcquireResourceSharedLite=ExAcquireResourceSharedLite@8
ExInitializeResourceLite=ExInitializeResourceLite@4
ExInitializeZone=ExInitializeZone@16
ExInterlockedAddLargeInteger=ExInterlockedAddLargeInteger@16
-;ExInterlockedAddLargeStatistic=@ExInterlockedAddLargeStatistic@8
-ExInterlockedAddLargeStatistic=ExInterlockedAddLargeStatistic@8
+ExInterlockedAddLargeStatistic=@ExInterlockedAddLargeStatistic@8
ExInterlockedAddUlong=ExInterlockedAddUlong@12
-;ExInterlockedCompareExchange64=@ExInterlockedCompareExchange64@16
-ExInterlockedCompareExchange64=ExInterlockedCompareExchange64@16
+ExInterlockedCompareExchange64=@ExInterlockedCompareExchange64@16
ExInterlockedDecrementLong=ExInterlockedDecrementLong@8
ExInterlockedExchangeUlong=ExInterlockedExchangeUlong@12
ExInterlockedExtendZone=ExInterlockedExtendZone@16
ExInterlockedInsertHeadList=ExInterlockedInsertHeadList@12
ExInterlockedInsertTailList=ExInterlockedInsertTailList@12
ExInterlockedPopEntryList=ExInterlockedPopEntryList@8
-ExInterlockedPopEntrySList=ExInterlockedPopEntrySList@8
+ExInterlockedPopEntrySList=@ExInterlockedPopEntrySList@8
ExInterlockedPushEntryList=ExInterlockedPushEntryList@12
-ExInterlockedPushEntrySList=ExInterlockedPushEntrySList@12
+ExInterlockedPushEntrySList=@ExInterlockedPushEntrySList@12
ExInterlockedRemoveHeadList=ExInterlockedRemoveHeadList@8
ExIsProcessorFeaturePresent=ExIsProcessorFeaturePresent@4
ExIsResourceAcquiredExclusiveLite=ExIsResourceAcquiredExclusiveLite@4
ExRaiseStatus=ExRaiseStatus@4
ExRegisterCallback=ExRegisterCallback@12
ExReinitializeResourceLite=ExReinitializeResourceLite@4
-ExReleaseFastMutexUnsafe=ExReleaseFastMutexUnsafe@4
+ExReleaseFastMutexUnsafe=@ExReleaseFastMutexUnsafe@4
ExReleaseResourceForThread=ExReleaseResourceForThread@8
ExReleaseResourceForThreadLite=ExReleaseResourceForThreadLite@8
-ExReleaseResourceLite=ExReleaseResourceLite@4
+ExReleaseResourceLite=@ExReleaseResourceLite@4
ExSetResourceOwnerPointer=ExSetResourceOwnerPointer@8
;ExSystemExceptionFilter
ExSystemTimeToLocalTime=ExSystemTimeToLocalTime@8
FsRtlUninitializeOplock=FsRtlUninitializeOplock@4
HalDispatchTable DATA
HalPrivateDispatchTable DATA
-;InterlockedCompareExchange=@InterlockedCompareExchange@12
-InterlockedCompareExchange=InterlockedCompareExchange@12
-;InterlockedDecrement=@InterlockedDecrement@4
-InterlockedDecrement=InterlockedDecrement@4
-;InterlockedExchange=@InterlockedExchange@8
-InterlockedExchange=InterlockedExchange@8
-;InterlockedExchangeAdd=@InterlockedExchangeAdd@8
-InterlockedExchangeAdd=InterlockedExchangeAdd@8
-;InterlockedIncrement=@InterlockedIncrement@4
-InterlockedIncrement=InterlockedIncrement@4
+InterlockedCompareExchange=@InterlockedCompareExchange@12
+InterlockedDecrement=@InterlockedDecrement@4
+InterlockedExchange=@InterlockedExchange@8
+InterlockedExchangeAdd=@InterlockedExchangeAdd@8
+InterlockedIncrement=@InterlockedIncrement@4
IoAcquireCancelSpinLock=IoAcquireCancelSpinLock@4
IoAcquireVpbSpinLock=IoAcquireVpbSpinLock@4
IoAdapterObjectType DATA
IoWriteErrorLogEntry=IoWriteErrorLogEntry@4
IoWriteOperationCount DATA
IoWriteTransferCount DATA
-;IofCallDriver=@IofCallDriver@0
-IofCallDriver=IofCallDriver@8
-;IofCompleteRequest=@IofCompleteRequest@0
-IofCompleteRequest=IofCompleteRequest@8
+IofCallDriver=@IofCallDriver@8
+IofCompleteRequest=@IofCompleteRequest@8
KdDebuggerEnabled DATA
KdDebuggerNotPresent DATA
KdPollBreakIn=KdPollBreakIn@0
ObOpenObjectByPointer=ObOpenObjectByPointer@28
;ObQueryNameString=ObQueryNameString@16
;ObQueryObjectAuditingByHandle=ObQueryObjectAuditingByHandle@8
-ObfDereferenceObject=ObfDereferenceObject@4
-ObfReferenceObject=ObfReferenceObject@4
+ObfDereferenceObject=@ObfDereferenceObject@4
+ObfReferenceObject=@ObfReferenceObject@4
ObReferenceObjectByHandle=ObReferenceObjectByHandle@24
ObReferenceObjectByName=ObReferenceObjectByName@32
ObReferenceObjectByPointer=ObReferenceObjectByPointer@16
; exports from hal.dll
;
;
-ExAcquireFastMutex=ExAcquireFastMutex@4
-ExReleaseFastMutex=ExReleaseFastMutex@4
-ExTryToAcquireFastMutex=ExTryToAcquireFastMutex@4
+ExAcquireFastMutex=@ExAcquireFastMutex@4
+ExReleaseFastMutex=@ExReleaseFastMutex@4
+ExTryToAcquireFastMutex=@ExTryToAcquireFastMutex@4
HalAcquireDisplayOwnership=HalAcquireDisplayOwnership@4
HalAdjustResourceList=HalAdjustResourceList@4
HalAllProcessorsStarted=HalAllProcessorsStarted@0
HalBeginSystemInterrupt=HalBeginSystemInterrupt@12
HalCalibratePerformanceCounter=HalCalibratePerformanceCounter@4
;HalClearSoftwareInterrupt=@HalClearSoftwareInterrupt@4
-;HalClearSoftwareInterrupt=HalClearSoftwareInterrupt@4
HalDisableSystemInterrupt=HalDisableSystemInterrupt@8
HalDisplayString=HalDisplayString@4
HalEnableSystemInterrupt=HalEnableSystemInterrupt@12
HalReportResourceUsage=HalReportResourceUsage@0
HalRequestIpi=HalRequestIpi@4
;HalRequestSoftwareInterrupt=@HalRequestSoftwareInterrupt@4
-;HalRequestSoftwareInterrupt=HalRequestSoftwareInterrupt@4
HalReturnToFirmware=HalReturnToFirmware@4
HalSetBusData=HalSetBusData@20
HalSetBusDataByOffset=HalSetBusDataByOffset@24
HalStartNextProcessor=HalStartNextProcessor@8
;HalStartProfileInterrupt=HalStartProfileInterrupt@4
;HalStopProfileInterrupt=HalStopProfileInterrupt@4
-;HalSystemVectorDispatchEntry=@HalSystemVectorDispatchEntry@12
-HalSystemVectorDispatchEntry=HalSystemVectorDispatchEntry@12
+HalSystemVectorDispatchEntry=@HalSystemVectorDispatchEntry@12
HalTranslateBusAddress=HalTranslateBusAddress@24
IoAssignDriveLetters=IoAssignDriveLetters@16
IoFlushAdapterBuffers=IoFlushAdapterBuffers@24
KdPortRestore=KdPortRestore@0
KdPortSave=KdPortSave@0
KeAcquireSpinLock=KeAcquireSpinLock@8
-;KeAcquireSpinLockRaiseToSynch=@KeAcquireSpinLockRaiseToSynch@4
-KeAcquireSpinLockRaiseToSynch=KeAcquireSpinLockRaiseToSynch@4
+KeAcquireSpinLockRaiseToSynch=@KeAcquireSpinLockRaiseToSynch@4
KeFlushWriteBuffer=KeFlushWriteBuffer@0
KeGetCurrentIrql=KeGetCurrentIrql@0
KeLowerIrql=KeLowerIrql@4
KeRaiseIrqlToSynchLevel=KeRaiseIrqlToSynchLevel@0
KeReleaseSpinLock=KeReleaseSpinLock@8
KeStallExecutionProcessor=KeStallExecutionProcessor@4
-;KfAcquireSpinLock=@KfAcquireSpinLock@4
-KfAcquireSpinLock=KfAcquireSpinLock@4
-;KfLowerIrql=@KfLowerIrql@4
-KfLowerIrql=KfLowerIrql@4
-;KfRaiseIrql=@KfRaiseIrql@4
-KfRaiseIrql=KfRaiseIrql@4
-;KfReleaseSpinLock=@KfReleaseSpinLock@8
-KfReleaseSpinLock=KfReleaseSpinLock@8
+KfAcquireSpinLock=@KfAcquireSpinLock@4
+KfLowerIrql=@KfLowerIrql@4
+KfRaiseIrql=@KfRaiseIrql@4
+KfReleaseSpinLock=@KfReleaseSpinLock@8
READ_PORT_BUFFER_UCHAR=READ_PORT_BUFFER_UCHAR@12
READ_PORT_BUFFER_ULONG=READ_PORT_BUFFER_ULONG@12
READ_PORT_BUFFER_USHORT=READ_PORT_BUFFER_USHORT@12
-/* $Id: interlck.c,v 1.8 2001/06/20 20:00:36 ekohl Exp $
+/* $Id: interlck.c,v 1.9 2001/07/06 21:30:33 ekohl Exp $
*
* reactos/ntoskrnl/rtl/interlck.c
*
- * FIXME: change decorated names when __fastcall will be available
- * (for both egcs 1.1.2 and gcc 2.95 FASTCALL == STDCALL).
*/
#include <reactos/config.h>
#include <ntos.h>
#include <internal/debug.h>
-//#define USE_FASTCALL
-
-#if 0
-LONG FASTCALL InterlockedIncrement(PLONG Addend)
-{
- LONG r;
- (*Addend)++;
- r = (*Addend);
- return(r);
-}
-
-LONG FASTCALL InterlockedDecrement(PLONG Addend)
-{
- LONG r;
- (*Addend)--;
- r = (*Addend);
- return(r);
-}
-#endif
-
-#ifdef I386_FIX
-
-LONG FASTCALL InterlockedIncrement (PLONG Addend)
-{
- *Addend = *Addend + 1;
- return *Addend;
-}
-
-LONG FASTCALL InterlockedDecrement (PLONG Addend)
-{
- *Addend = *Addend - 1;
- return *Addend;
-}
-
-LONG
-FASTCALL
-InterlockedExchange (
- PLONG Target,
- LONG Value
- )
-{
- LONG Val = *Target;
- *Target = Value;
- return Val;
-}
-
-LONG
-FASTCALL
-InterlockedExchangeAdd (
- PLONG Addend,
- LONG Value
- )
-{
- LONG Val = *Addend;
- *Addend = Value;
- return Val;
-}
-
-PVOID
-FASTCALL
-InterlockedCompareExchange (
- PVOID * Destination,
- PVOID Exchange,
- PVOID Comperand
- )
-{
- LONG Val = *((LONG*)Destination);
-
- if (*((LONG*)Destination) == (LONG)Comperand) {
- *((LONG*)Destination) = (LONG)Exchange;
- }
- return (PVOID)Val;
-}
-
-#else /* I386_FIX */
+#define USE_FASTCALL
/**********************************************************************
* FASTCALL: @InterlockedIncrement@4
* RETURNS: The incremented value
*/
-#ifndef USE_FASTCALL
-__asm__("\n\t.global _InterlockedIncrement@4\n\t"
- "_InterlockedIncrement@4:\n\t"
- "pushl %ebp\n\t"
- "movl %esp,%ebp\n\t"
- "pushl %ebx\n\t"
- "movl $1,%eax\n\t"
- "movl 8(%ebp),%ebx\n\t"
- "xaddl %eax,(%ebx)\n\t"
- "incl %eax\n\t"
- "popl %ebx\n\t"
- "movl %ebp,%esp\n\t"
- "popl %ebp\n\t"
- "ret $4\n\t");
-#else
__asm__("\n\t.global @InterlockedIncrement@4\n\t"
"@InterlockedIncrement@4:\n\t"
"movl $1,%eax\n\t"
"xaddl %eax,(%ecx)\n\t"
"incl %eax\n\t"
"ret\n\t");
-#endif
+
/**********************************************************************
* FASTCALL: @InterlockedDecrement@4
LONG FASTCALL
InterlockedDecrement(PLONG Addend);
-#ifndef USE_FASTCALL
-__asm__("\n\t.global _InterlockedDecrement@4\n\t"
- "_InterlockedDecrement@4:\n\t"
- "pushl %ebp\n\t"
- "movl %esp,%ebp\n\t"
- "pushl %ebx\n\t"
- "movl $-1,%eax\n\t"
- "movl 8(%ebp),%ebx\n\t"
- "xaddl %eax,(%ebx)\n\t"
- "decl %eax\n\t"
- "popl %ebx\n\t"
- "movl %ebp,%esp\n\t"
- "popl %ebp\n\t"
- "ret $4\n\t");
-#else
__asm__("\n\t.global @InterlockedDecrement@4\n\t"
"@InterlockedDecrement@4:\n\t"
"movl $-1,%eax\n\t"
"xaddl %eax,(%ecx)\n\t"
"decl %eax\n\t"
"ret\n\t");
-#endif
+
/**********************************************************************
* FASTCALL: @InterlockedExchange@8
InterlockedExchange(PLONG Target,
LONG Value);
-#ifndef USE_FASTCALL
-__asm__("\n\t.global _InterlockedExchange@8\n\t"
- "_InterlockedExchange@8:\n\t"
- "pushl %ebp\n\t"
- "movl %esp,%ebp\n\t"
- "pushl %ebx\n\t"
- "movl 12(%ebp),%eax\n\t"
- "movl 8(%ebp),%ebx\n\t"
- "xchgl %eax,(%ebx)\n\t"
- "popl %ebx\n\t"
- "movl %ebp,%esp\n\t"
- "popl %ebp\n\t"
- "ret $8\n\t");
-#else
__asm__("\n\t.global @InterlockedExchange@8\n\t"
"@InterlockedExchange@8:\n\t"
"movl (%ecx),%eax\n"
"xchgl %edx,(%ecx)\n\t"
"ret\n\t");
-#endif
/**********************************************************************
* FASTCALL: @InterlockedExchangeAdd@8
- * STDCALL : _InterlockedExchangeAdd@8
+ * STDCALL: _InterlockedExchangeAdd@8
*/
LONG FASTCALL
InterlockedExchangeAdd(PLONG Addend,
LONG Value);
-#ifndef USE_FASTCALL
-__asm__("\n\t.global _InterlockedExchangeAdd@8\n\t"
- "_InterlockedExchangeAdd@8:\n\t"
- "movl 8(%esp),%eax\n\t"
- "movl 4(%esp),%ebx\n\t"
- "xaddl %eax,(%ebx)\n\t"
- "ret $8\n\t");
-#else
__asm__("\n\t.global @InterlockedExchangeAdd@8\n\t"
"@InterlockedExchangeAdd@8:\n\t"
"xaddl %edx,(%ecx)\n\t"
"movl %edx,%eax\n\t"
"ret\n\t");
-#endif
/**********************************************************************
* FASTCALL: @InterlockedCompareExchange@12
- * STDCALL : _InterlockedCompareExchange@12
+ * STDCALL: _InterlockedCompareExchange@12
*/
PVOID FASTCALL
InterlockedCompareExchange(PVOID *Destination,
PVOID Exchange,
PVOID Comperand);
-#ifndef USE_FASTCALL
-__asm__("\n\t.global _InterlockedCompareExchange@12\n\t"
- "_InterlockedCompareExchange@12:\n\t"
- "movl 12(%esp),%eax\n\t"
- "movl 8(%esp),%edx\n\t"
- "movl 4(%esp),%ebx\n\t"
- "cmpxchg %edx,(%ebx)\n\t"
- "movl %edx,%eax\n\t"
- "ret $12\n\t");
-#else
__asm__("\n\t.global @InterlockedCompareExchange@12\n\t"
"@InterlockedCompareExchange@12:\n\t"
"movl 4(%esp),%eax\n\t"
"cmpxchg %edx,(%ecx)\n\t"
"ret $4\n\t");
-#endif
-
-#endif /* I386_FIX */
/* EOF */