mirror of
https://github.com/reactos/reactos.git
synced 2025-07-16 04:34:03 +00:00
Enabled FASTCALL calling convention
svn path=/trunk/; revision=2048
This commit is contained in:
parent
af1605f6f6
commit
e575ed9544
5 changed files with 78 additions and 325 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $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
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -19,12 +19,8 @@ extern "C"
|
||||||
|
|
||||||
/* INCLUDES ***************************************************************/
|
/* INCLUDES ***************************************************************/
|
||||||
|
|
||||||
/* GCC can not handle __fastcall */
|
#define FASTCALL __attribute__((fastcall))
|
||||||
//#ifdef USE_FASTCALL
|
|
||||||
//#define FASTCALL __attribute__((fastcall))
|
|
||||||
//#else
|
|
||||||
#define FASTCALL STDCALL
|
|
||||||
//#endif
|
|
||||||
#define STATIC static
|
#define STATIC static
|
||||||
|
|
||||||
#include <ntos/types.h>
|
#include <ntos/types.h>
|
||||||
|
|
|
@ -1,73 +1,6 @@
|
||||||
#ifndef _INCLUDE_DDK_SEFUNCS_H
|
#ifndef _INCLUDE_DDK_SEFUNCS_H
|
||||||
#define _INCLUDE_DDK_SEFUNCS_H
|
#define _INCLUDE_DDK_SEFUNCS_H
|
||||||
/* $Id: sefuncs.h,v 1.13 2000/07/04 08:52:34 dwelch Exp $ */
|
/* $Id: sefuncs.h,v 1.14 2001/07/06 21:32:43 ekohl 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);
|
|
||||||
|
|
||||||
BOOLEAN STDCALL SeAccessCheck (IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
BOOLEAN STDCALL SeAccessCheck (IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||||
IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
|
IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; $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
|
; reactos/ntoskrnl/ntoskrnl.def
|
||||||
;
|
;
|
||||||
|
@ -15,7 +15,7 @@ DbgBreakPointWithStatus@4
|
||||||
;DbgLoadImageSymbols@12
|
;DbgLoadImageSymbols@12
|
||||||
DbgPrint
|
DbgPrint
|
||||||
DbgPrompt@12
|
DbgPrompt@12
|
||||||
ExAcquireFastMutexUnsafe@4
|
@ExAcquireFastMutexUnsafe@4
|
||||||
ExAcquireResourceExclusive@8
|
ExAcquireResourceExclusive@8
|
||||||
ExAcquireResourceExclusiveLite@8
|
ExAcquireResourceExclusiveLite@8
|
||||||
ExAcquireResourceSharedLite@8
|
ExAcquireResourceSharedLite@8
|
||||||
|
@ -47,11 +47,9 @@ ExInitializeResource@4
|
||||||
ExInitializeResourceLite@4
|
ExInitializeResourceLite@4
|
||||||
ExInitializeZone@16
|
ExInitializeZone@16
|
||||||
ExInterlockedAddLargeInteger@16
|
ExInterlockedAddLargeInteger@16
|
||||||
;@ExInterlockedAddLargeStatistic@8
|
@ExInterlockedAddLargeStatistic@8
|
||||||
ExInterlockedAddLargeStatistic@8
|
|
||||||
ExInterlockedAddUlong@12
|
ExInterlockedAddUlong@12
|
||||||
;@ExInterlockedCompareExchange64@16
|
@ExInterlockedCompareExchange64@16
|
||||||
ExInterlockedCompareExchange64@16
|
|
||||||
ExInterlockedDecrementLong@8
|
ExInterlockedDecrementLong@8
|
||||||
ExInterlockedExchangeUlong@12
|
ExInterlockedExchangeUlong@12
|
||||||
ExInterlockedExtendZone@16
|
ExInterlockedExtendZone@16
|
||||||
|
@ -59,9 +57,9 @@ ExInterlockedIncrementLong@8
|
||||||
ExInterlockedInsertHeadList@12
|
ExInterlockedInsertHeadList@12
|
||||||
ExInterlockedInsertTailList@12
|
ExInterlockedInsertTailList@12
|
||||||
ExInterlockedPopEntryList@8
|
ExInterlockedPopEntryList@8
|
||||||
ExInterlockedPopEntrySList@8
|
@ExInterlockedPopEntrySList@8
|
||||||
ExInterlockedPushEntryList@12
|
ExInterlockedPushEntryList@12
|
||||||
ExInterlockedPushEntrySList@12
|
@ExInterlockedPushEntrySList@12
|
||||||
ExInterlockedRemoveHeadList@8
|
ExInterlockedRemoveHeadList@8
|
||||||
ExIsProcessorFeaturePresent@4
|
ExIsProcessorFeaturePresent@4
|
||||||
ExIsResourceAcquiredExclusiveLite@4
|
ExIsResourceAcquiredExclusiveLite@4
|
||||||
|
@ -78,25 +76,25 @@ ExRaiseDatatypeMisalignment@0
|
||||||
ExRaiseStatus@4
|
ExRaiseStatus@4
|
||||||
ExRegisterCallback@12
|
ExRegisterCallback@12
|
||||||
ExReinitializeResourceLite@4
|
ExReinitializeResourceLite@4
|
||||||
ExReleaseFastMutexUnsafe@4
|
@ExReleaseFastMutexUnsafe@4
|
||||||
ExReleaseResourceForThread@8
|
ExReleaseResourceForThread@8
|
||||||
ExReleaseResourceForThreadLite@8
|
ExReleaseResourceForThreadLite@8
|
||||||
ExReleaseResourceLite@4
|
@ExReleaseResourceLite@4
|
||||||
ExSetResourceOwnerPointer@8
|
ExSetResourceOwnerPointer@8
|
||||||
;ExSystemExceptionFilter
|
;ExSystemExceptionFilter
|
||||||
ExSystemTimeToLocalTime@8
|
ExSystemTimeToLocalTime@8
|
||||||
ExTryToAcquireResourceExclusiveLite@4
|
ExTryToAcquireResourceExclusiveLite@4
|
||||||
ExUnregisterCallback@4
|
ExUnregisterCallback@4
|
||||||
ExWindowStationObjectType DATA
|
ExWindowStationObjectType DATA
|
||||||
;ExfInterlockedAddUlong
|
;@ExfInterlockedAddUlong
|
||||||
;ExfInterlockedInsertHeadList
|
;@ExfInterlockedInsertHeadList
|
||||||
;ExfInterlockedInsertTailList
|
;@ExfInterlockedInsertTailList
|
||||||
;ExfInterlockedPopEntryList
|
;@ExfInterlockedPopEntryList
|
||||||
;ExfInterlockedPushEntryList
|
;@ExfInterlockedPushEntryList
|
||||||
;ExfInterlockedRemoveHeadList
|
;@ExfInterlockedRemoveHeadList
|
||||||
;Exfi386InterlockedDecrementLong
|
;@Exfi386InterlockedDecrementLong
|
||||||
;Exfi386InterlockedExchangeUlong
|
;@Exfi386InterlockedExchangeUlong
|
||||||
;Exfi386InterlockedIncrementLong
|
;@Exfi386InterlockedIncrementLong
|
||||||
;Exi386InterlockedDecrementLong
|
;Exi386InterlockedDecrementLong
|
||||||
;Exi386InterlockedExchangeUlong
|
;Exi386InterlockedExchangeUlong
|
||||||
;Exi386InterlockedIncrementLong
|
;Exi386InterlockedIncrementLong
|
||||||
|
@ -186,16 +184,11 @@ FsRtlUninitializeMcb@4
|
||||||
FsRtlUninitializeOplock@4
|
FsRtlUninitializeOplock@4
|
||||||
HalDispatchTable DATA
|
HalDispatchTable DATA
|
||||||
HalPrivateDispatchTable DATA
|
HalPrivateDispatchTable DATA
|
||||||
;@InterlockedCompareExchange@12
|
@InterlockedCompareExchange@12
|
||||||
InterlockedCompareExchange@12
|
@InterlockedDecrement@4
|
||||||
;@InterlockedDecrement@4
|
@InterlockedExchange@8
|
||||||
InterlockedDecrement@4
|
@InterlockedExchangeAdd@8
|
||||||
;@InterlockedExchange@8
|
@InterlockedIncrement@4
|
||||||
InterlockedExchange@8
|
|
||||||
;@InterlockedExchangeAdd@8
|
|
||||||
InterlockedExchangeAdd@8
|
|
||||||
;@InterlockedIncrement@4
|
|
||||||
InterlockedIncrement@4
|
|
||||||
IoAcquireCancelSpinLock@4
|
IoAcquireCancelSpinLock@4
|
||||||
IoAcquireVpbSpinLock@4
|
IoAcquireVpbSpinLock@4
|
||||||
IoAdapterObjectType DATA
|
IoAdapterObjectType DATA
|
||||||
|
@ -302,10 +295,8 @@ IoVerifyVolume@8
|
||||||
IoWriteErrorLogEntry@4
|
IoWriteErrorLogEntry@4
|
||||||
IoWriteOperationCount DATA
|
IoWriteOperationCount DATA
|
||||||
IoWriteTransferCount DATA
|
IoWriteTransferCount DATA
|
||||||
;@IofCallDriver@8
|
@IofCallDriver@8
|
||||||
IofCallDriver@8
|
@IofCompleteRequest@8
|
||||||
;@IofCompleteRequest@8
|
|
||||||
IofCompleteRequest@8
|
|
||||||
KdDebuggerEnabled DATA
|
KdDebuggerEnabled DATA
|
||||||
KdDebuggerNotPresent DATA
|
KdDebuggerNotPresent DATA
|
||||||
KdPollBreakIn@0
|
KdPollBreakIn@0
|
||||||
|
@ -405,13 +396,13 @@ KeSetImportanceDpc@8
|
||||||
;KeSetKernelStackSwapEnable
|
;KeSetKernelStackSwapEnable
|
||||||
KeSetPriorityThread@8
|
KeSetPriorityThread@8
|
||||||
;KeSetProfileIrql
|
;KeSetProfileIrql
|
||||||
;KeSetSwapContextNotifyRoutine
|
;@KeSetSwapContextNotifyRoutine
|
||||||
KeSetTargetProcessorDpc@8
|
KeSetTargetProcessorDpc@8
|
||||||
;KeSetThreadSelectNotifyRoutine
|
;@KeSetThreadSelectNotifyRoutine
|
||||||
;KeSetTimeIncrement
|
;KeSetTimeIncrement
|
||||||
KeSetTimer@16
|
KeSetTimer@16
|
||||||
KeSetTimerEx@20
|
KeSetTimerEx@20
|
||||||
;KeSetTimeUpdateNotifyRoutine
|
;@KeSetTimeUpdateNotifyRoutine
|
||||||
KeSynchronizeExecution@12
|
KeSynchronizeExecution@12
|
||||||
;KeTerminateThread
|
;KeTerminateThread
|
||||||
;KeTickCount DATA
|
;KeTickCount DATA
|
||||||
|
@ -420,16 +411,16 @@ KeSynchronizeExecution@12
|
||||||
KeWaitForMultipleObjects@32
|
KeWaitForMultipleObjects@32
|
||||||
KeWaitForMutexObject@20
|
KeWaitForMutexObject@20
|
||||||
KeWaitForSingleObject@20
|
KeWaitForSingleObject@20
|
||||||
;KefAcquireSpinLockAtDpcLevel
|
;@KefAcquireSpinLockAtDpcLevel
|
||||||
;KefReleaseSpinLockFromDpcLevel
|
;@KefReleaseSpinLockFromDpcLevel
|
||||||
;Kei386EoiHelper
|
;Kei386EoiHelper
|
||||||
;KiAcquireSpinLock@4
|
;@KiAcquireSpinLock@4
|
||||||
;KiBugCheckData DATA
|
;KiBugCheckData DATA
|
||||||
;KiCoprocessorError@0
|
;KiCoprocessorError@0
|
||||||
KiDeliverApc@12
|
KiDeliverApc@12
|
||||||
KiDispatchInterrupt@0
|
KiDispatchInterrupt@0
|
||||||
;KiIpiServiceRoutine@8
|
;KiIpiServiceRoutine@8
|
||||||
;KiReleaseSpinLock@4
|
;@KiReleaseSpinLock@4
|
||||||
;KiUnexpectedInterrupt
|
;KiUnexpectedInterrupt
|
||||||
;Kii386SpinOnSpinLock
|
;Kii386SpinOnSpinLock
|
||||||
LdrAccessResource@16
|
LdrAccessResource@16
|
||||||
|
@ -560,8 +551,8 @@ ObOpenObjectByName@28
|
||||||
ObOpenObjectByPointer@28
|
ObOpenObjectByPointer@28
|
||||||
;ObQueryNameString@16
|
;ObQueryNameString@16
|
||||||
;ObQueryObjectAuditingByHandle@8
|
;ObQueryObjectAuditingByHandle@8
|
||||||
ObfDereferenceObject@4
|
@ObfDereferenceObject@4
|
||||||
ObfReferenceObject@4
|
@ObfReferenceObject@4
|
||||||
ObReferenceObjectByHandle@24
|
ObReferenceObjectByHandle@24
|
||||||
ObReferenceObjectByName@32
|
ObReferenceObjectByName@32
|
||||||
ObReferenceObjectByPointer@16
|
ObReferenceObjectByPointer@16
|
||||||
|
@ -1012,9 +1003,9 @@ wctomb
|
||||||
; exports from hal.dll
|
; exports from hal.dll
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
ExAcquireFastMutex@4
|
@ExAcquireFastMutex@4
|
||||||
ExReleaseFastMutex@4
|
@ExReleaseFastMutex@4
|
||||||
ExTryToAcquireFastMutex@4
|
@ExTryToAcquireFastMutex@4
|
||||||
HalAcquireDisplayOwnership@4
|
HalAcquireDisplayOwnership@4
|
||||||
HalAdjustResourceList@4
|
HalAdjustResourceList@4
|
||||||
HalAllProcessorsStarted@0
|
HalAllProcessorsStarted@0
|
||||||
|
@ -1025,7 +1016,6 @@ HalAssignSlotResources@32
|
||||||
HalBeginSystemInterrupt@12
|
HalBeginSystemInterrupt@12
|
||||||
HalCalibratePerformanceCounter@4
|
HalCalibratePerformanceCounter@4
|
||||||
;@HalClearSoftwareInterrupt@4
|
;@HalClearSoftwareInterrupt@4
|
||||||
;HalClearSoftwareInterrupt@4
|
|
||||||
HalDisableSystemInterrupt@8
|
HalDisableSystemInterrupt@8
|
||||||
HalDisplayString@4
|
HalDisplayString@4
|
||||||
HalEnableSystemInterrupt@12
|
HalEnableSystemInterrupt@12
|
||||||
|
@ -1048,7 +1038,6 @@ HalReadDmaCounter@4
|
||||||
HalReportResourceUsage@0
|
HalReportResourceUsage@0
|
||||||
HalRequestIpi@4
|
HalRequestIpi@4
|
||||||
;@HalRequestSoftwareInterrupt@4
|
;@HalRequestSoftwareInterrupt@4
|
||||||
;HalRequestSoftwareInterrupt@4
|
|
||||||
HalReturnToFirmware@4
|
HalReturnToFirmware@4
|
||||||
HalSetBusData@20
|
HalSetBusData@20
|
||||||
HalSetBusDataByOffset@24
|
HalSetBusDataByOffset@24
|
||||||
|
@ -1060,7 +1049,7 @@ HalSetRealTimeClock@4
|
||||||
HalStartNextProcessor@8
|
HalStartNextProcessor@8
|
||||||
;HalStartProfileInterrupt@4
|
;HalStartProfileInterrupt@4
|
||||||
;HalStopProfileInterrupt@4
|
;HalStopProfileInterrupt@4
|
||||||
HalSystemVectorDispatchEntry@12
|
@HalSystemVectorDispatchEntry@12
|
||||||
HalTranslateBusAddress@24
|
HalTranslateBusAddress@24
|
||||||
IoAssignDriveLetters@16
|
IoAssignDriveLetters@16
|
||||||
IoFlushAdapterBuffers@24
|
IoFlushAdapterBuffers@24
|
||||||
|
@ -1099,8 +1088,7 @@ KdPortPutByte@4
|
||||||
KdPortRestore@0
|
KdPortRestore@0
|
||||||
KdPortSave@0
|
KdPortSave@0
|
||||||
KeAcquireSpinLock@8
|
KeAcquireSpinLock@8
|
||||||
;@KeAcquireSpinLockRaiseToSynch@4
|
@KeAcquireSpinLockRaiseToSynch@4
|
||||||
KeAcquireSpinLockRaiseToSynch@4
|
|
||||||
KeFlushWriteBuffer@0
|
KeFlushWriteBuffer@0
|
||||||
KeGetCurrentIrql@0
|
KeGetCurrentIrql@0
|
||||||
KeLowerIrql@4
|
KeLowerIrql@4
|
||||||
|
@ -1110,14 +1098,10 @@ KeRaiseIrqlToDpcLevel@0
|
||||||
KeRaiseIrqlToSynchLevel@0
|
KeRaiseIrqlToSynchLevel@0
|
||||||
KeReleaseSpinLock@8
|
KeReleaseSpinLock@8
|
||||||
KeStallExecutionProcessor@4
|
KeStallExecutionProcessor@4
|
||||||
;@KfAcquireSpinLock@4
|
@KfAcquireSpinLock@4
|
||||||
KfAcquireSpinLock@4
|
@KfLowerIrql@4
|
||||||
;@KfLowerIrql@4
|
@KfRaiseIrql@4
|
||||||
KfLowerIrql@4
|
@KfReleaseSpinLock@8
|
||||||
;@KfRaiseIrql@4
|
|
||||||
KfRaiseIrql@4
|
|
||||||
;@KfReleaseSpinLock@8
|
|
||||||
KfReleaseSpinLock@8
|
|
||||||
READ_PORT_BUFFER_UCHAR@12
|
READ_PORT_BUFFER_UCHAR@12
|
||||||
READ_PORT_BUFFER_ULONG@12
|
READ_PORT_BUFFER_ULONG@12
|
||||||
READ_PORT_BUFFER_USHORT@12
|
READ_PORT_BUFFER_USHORT@12
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; $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
|
; reactos/ntoskrnl/ntoskrnl.def
|
||||||
;
|
;
|
||||||
|
@ -15,7 +15,7 @@ DbgBreakPointWithStatus=DbgBreakPointWithStatus@4
|
||||||
;DbgLoadImageSymbols=DbgLoadImageSymbols@12
|
;DbgLoadImageSymbols=DbgLoadImageSymbols@12
|
||||||
DbgPrint
|
DbgPrint
|
||||||
DbgPrompt=DbgPrompt@12
|
DbgPrompt=DbgPrompt@12
|
||||||
ExAcquireFastMutexUnsafe=ExAcquireFastMutexUnsafe@4
|
ExAcquireFastMutexUnsafe=@ExAcquireFastMutexUnsafe@4
|
||||||
ExAcquireResourceExclusive=ExAcquireResourceExclusive@8
|
ExAcquireResourceExclusive=ExAcquireResourceExclusive@8
|
||||||
ExAcquireResourceExclusiveLite=ExAcquireResourceExclusiveLite@8
|
ExAcquireResourceExclusiveLite=ExAcquireResourceExclusiveLite@8
|
||||||
ExAcquireResourceSharedLite=ExAcquireResourceSharedLite@8
|
ExAcquireResourceSharedLite=ExAcquireResourceSharedLite@8
|
||||||
|
@ -47,11 +47,9 @@ ExInitializeResource=ExInitializeResource@4
|
||||||
ExInitializeResourceLite=ExInitializeResourceLite@4
|
ExInitializeResourceLite=ExInitializeResourceLite@4
|
||||||
ExInitializeZone=ExInitializeZone@16
|
ExInitializeZone=ExInitializeZone@16
|
||||||
ExInterlockedAddLargeInteger=ExInterlockedAddLargeInteger@16
|
ExInterlockedAddLargeInteger=ExInterlockedAddLargeInteger@16
|
||||||
;ExInterlockedAddLargeStatistic=@ExInterlockedAddLargeStatistic@8
|
ExInterlockedAddLargeStatistic=@ExInterlockedAddLargeStatistic@8
|
||||||
ExInterlockedAddLargeStatistic=ExInterlockedAddLargeStatistic@8
|
|
||||||
ExInterlockedAddUlong=ExInterlockedAddUlong@12
|
ExInterlockedAddUlong=ExInterlockedAddUlong@12
|
||||||
;ExInterlockedCompareExchange64=@ExInterlockedCompareExchange64@16
|
ExInterlockedCompareExchange64=@ExInterlockedCompareExchange64@16
|
||||||
ExInterlockedCompareExchange64=ExInterlockedCompareExchange64@16
|
|
||||||
ExInterlockedDecrementLong=ExInterlockedDecrementLong@8
|
ExInterlockedDecrementLong=ExInterlockedDecrementLong@8
|
||||||
ExInterlockedExchangeUlong=ExInterlockedExchangeUlong@12
|
ExInterlockedExchangeUlong=ExInterlockedExchangeUlong@12
|
||||||
ExInterlockedExtendZone=ExInterlockedExtendZone@16
|
ExInterlockedExtendZone=ExInterlockedExtendZone@16
|
||||||
|
@ -59,9 +57,9 @@ ExInterlockedIncrementLong=ExInterlockedIncrementLong@8
|
||||||
ExInterlockedInsertHeadList=ExInterlockedInsertHeadList@12
|
ExInterlockedInsertHeadList=ExInterlockedInsertHeadList@12
|
||||||
ExInterlockedInsertTailList=ExInterlockedInsertTailList@12
|
ExInterlockedInsertTailList=ExInterlockedInsertTailList@12
|
||||||
ExInterlockedPopEntryList=ExInterlockedPopEntryList@8
|
ExInterlockedPopEntryList=ExInterlockedPopEntryList@8
|
||||||
ExInterlockedPopEntrySList=ExInterlockedPopEntrySList@8
|
ExInterlockedPopEntrySList=@ExInterlockedPopEntrySList@8
|
||||||
ExInterlockedPushEntryList=ExInterlockedPushEntryList@12
|
ExInterlockedPushEntryList=ExInterlockedPushEntryList@12
|
||||||
ExInterlockedPushEntrySList=ExInterlockedPushEntrySList@12
|
ExInterlockedPushEntrySList=@ExInterlockedPushEntrySList@12
|
||||||
ExInterlockedRemoveHeadList=ExInterlockedRemoveHeadList@8
|
ExInterlockedRemoveHeadList=ExInterlockedRemoveHeadList@8
|
||||||
ExIsProcessorFeaturePresent=ExIsProcessorFeaturePresent@4
|
ExIsProcessorFeaturePresent=ExIsProcessorFeaturePresent@4
|
||||||
ExIsResourceAcquiredExclusiveLite=ExIsResourceAcquiredExclusiveLite@4
|
ExIsResourceAcquiredExclusiveLite=ExIsResourceAcquiredExclusiveLite@4
|
||||||
|
@ -78,10 +76,10 @@ ExRaiseDatatypeMisalignment=ExRaiseDatatypeMisalignment@0
|
||||||
ExRaiseStatus=ExRaiseStatus@4
|
ExRaiseStatus=ExRaiseStatus@4
|
||||||
ExRegisterCallback=ExRegisterCallback@12
|
ExRegisterCallback=ExRegisterCallback@12
|
||||||
ExReinitializeResourceLite=ExReinitializeResourceLite@4
|
ExReinitializeResourceLite=ExReinitializeResourceLite@4
|
||||||
ExReleaseFastMutexUnsafe=ExReleaseFastMutexUnsafe@4
|
ExReleaseFastMutexUnsafe=@ExReleaseFastMutexUnsafe@4
|
||||||
ExReleaseResourceForThread=ExReleaseResourceForThread@8
|
ExReleaseResourceForThread=ExReleaseResourceForThread@8
|
||||||
ExReleaseResourceForThreadLite=ExReleaseResourceForThreadLite@8
|
ExReleaseResourceForThreadLite=ExReleaseResourceForThreadLite@8
|
||||||
ExReleaseResourceLite=ExReleaseResourceLite@4
|
ExReleaseResourceLite=@ExReleaseResourceLite@4
|
||||||
ExSetResourceOwnerPointer=ExSetResourceOwnerPointer@8
|
ExSetResourceOwnerPointer=ExSetResourceOwnerPointer@8
|
||||||
;ExSystemExceptionFilter
|
;ExSystemExceptionFilter
|
||||||
ExSystemTimeToLocalTime=ExSystemTimeToLocalTime@8
|
ExSystemTimeToLocalTime=ExSystemTimeToLocalTime@8
|
||||||
|
@ -186,16 +184,11 @@ FsRtlUninitializeMcb=FsRtlUninitializeMcb@4
|
||||||
FsRtlUninitializeOplock=FsRtlUninitializeOplock@4
|
FsRtlUninitializeOplock=FsRtlUninitializeOplock@4
|
||||||
HalDispatchTable DATA
|
HalDispatchTable DATA
|
||||||
HalPrivateDispatchTable DATA
|
HalPrivateDispatchTable DATA
|
||||||
;InterlockedCompareExchange=@InterlockedCompareExchange@12
|
InterlockedCompareExchange=@InterlockedCompareExchange@12
|
||||||
InterlockedCompareExchange=InterlockedCompareExchange@12
|
InterlockedDecrement=@InterlockedDecrement@4
|
||||||
;InterlockedDecrement=@InterlockedDecrement@4
|
InterlockedExchange=@InterlockedExchange@8
|
||||||
InterlockedDecrement=InterlockedDecrement@4
|
InterlockedExchangeAdd=@InterlockedExchangeAdd@8
|
||||||
;InterlockedExchange=@InterlockedExchange@8
|
InterlockedIncrement=@InterlockedIncrement@4
|
||||||
InterlockedExchange=InterlockedExchange@8
|
|
||||||
;InterlockedExchangeAdd=@InterlockedExchangeAdd@8
|
|
||||||
InterlockedExchangeAdd=InterlockedExchangeAdd@8
|
|
||||||
;InterlockedIncrement=@InterlockedIncrement@4
|
|
||||||
InterlockedIncrement=InterlockedIncrement@4
|
|
||||||
IoAcquireCancelSpinLock=IoAcquireCancelSpinLock@4
|
IoAcquireCancelSpinLock=IoAcquireCancelSpinLock@4
|
||||||
IoAcquireVpbSpinLock=IoAcquireVpbSpinLock@4
|
IoAcquireVpbSpinLock=IoAcquireVpbSpinLock@4
|
||||||
IoAdapterObjectType DATA
|
IoAdapterObjectType DATA
|
||||||
|
@ -302,10 +295,8 @@ IoVerifyVolume=IoVerifyVolume@8
|
||||||
IoWriteErrorLogEntry=IoWriteErrorLogEntry@4
|
IoWriteErrorLogEntry=IoWriteErrorLogEntry@4
|
||||||
IoWriteOperationCount DATA
|
IoWriteOperationCount DATA
|
||||||
IoWriteTransferCount DATA
|
IoWriteTransferCount DATA
|
||||||
;IofCallDriver=@IofCallDriver@0
|
IofCallDriver=@IofCallDriver@8
|
||||||
IofCallDriver=IofCallDriver@8
|
IofCompleteRequest=@IofCompleteRequest@8
|
||||||
;IofCompleteRequest=@IofCompleteRequest@0
|
|
||||||
IofCompleteRequest=IofCompleteRequest@8
|
|
||||||
KdDebuggerEnabled DATA
|
KdDebuggerEnabled DATA
|
||||||
KdDebuggerNotPresent DATA
|
KdDebuggerNotPresent DATA
|
||||||
KdPollBreakIn=KdPollBreakIn@0
|
KdPollBreakIn=KdPollBreakIn@0
|
||||||
|
@ -560,8 +551,8 @@ ObOpenObjectByName=ObOpenObjectByName@28
|
||||||
ObOpenObjectByPointer=ObOpenObjectByPointer@28
|
ObOpenObjectByPointer=ObOpenObjectByPointer@28
|
||||||
;ObQueryNameString=ObQueryNameString@16
|
;ObQueryNameString=ObQueryNameString@16
|
||||||
;ObQueryObjectAuditingByHandle=ObQueryObjectAuditingByHandle@8
|
;ObQueryObjectAuditingByHandle=ObQueryObjectAuditingByHandle@8
|
||||||
ObfDereferenceObject=ObfDereferenceObject@4
|
ObfDereferenceObject=@ObfDereferenceObject@4
|
||||||
ObfReferenceObject=ObfReferenceObject@4
|
ObfReferenceObject=@ObfReferenceObject@4
|
||||||
ObReferenceObjectByHandle=ObReferenceObjectByHandle@24
|
ObReferenceObjectByHandle=ObReferenceObjectByHandle@24
|
||||||
ObReferenceObjectByName=ObReferenceObjectByName@32
|
ObReferenceObjectByName=ObReferenceObjectByName@32
|
||||||
ObReferenceObjectByPointer=ObReferenceObjectByPointer@16
|
ObReferenceObjectByPointer=ObReferenceObjectByPointer@16
|
||||||
|
@ -1010,9 +1001,9 @@ wctomb
|
||||||
; exports from hal.dll
|
; exports from hal.dll
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
ExAcquireFastMutex=ExAcquireFastMutex@4
|
ExAcquireFastMutex=@ExAcquireFastMutex@4
|
||||||
ExReleaseFastMutex=ExReleaseFastMutex@4
|
ExReleaseFastMutex=@ExReleaseFastMutex@4
|
||||||
ExTryToAcquireFastMutex=ExTryToAcquireFastMutex@4
|
ExTryToAcquireFastMutex=@ExTryToAcquireFastMutex@4
|
||||||
HalAcquireDisplayOwnership=HalAcquireDisplayOwnership@4
|
HalAcquireDisplayOwnership=HalAcquireDisplayOwnership@4
|
||||||
HalAdjustResourceList=HalAdjustResourceList@4
|
HalAdjustResourceList=HalAdjustResourceList@4
|
||||||
HalAllProcessorsStarted=HalAllProcessorsStarted@0
|
HalAllProcessorsStarted=HalAllProcessorsStarted@0
|
||||||
|
@ -1023,7 +1014,6 @@ HalAssignSlotResource=HalAssignSlotResources@32
|
||||||
HalBeginSystemInterrupt=HalBeginSystemInterrupt@12
|
HalBeginSystemInterrupt=HalBeginSystemInterrupt@12
|
||||||
HalCalibratePerformanceCounter=HalCalibratePerformanceCounter@4
|
HalCalibratePerformanceCounter=HalCalibratePerformanceCounter@4
|
||||||
;HalClearSoftwareInterrupt=@HalClearSoftwareInterrupt@4
|
;HalClearSoftwareInterrupt=@HalClearSoftwareInterrupt@4
|
||||||
;HalClearSoftwareInterrupt=HalClearSoftwareInterrupt@4
|
|
||||||
HalDisableSystemInterrupt=HalDisableSystemInterrupt@8
|
HalDisableSystemInterrupt=HalDisableSystemInterrupt@8
|
||||||
HalDisplayString=HalDisplayString@4
|
HalDisplayString=HalDisplayString@4
|
||||||
HalEnableSystemInterrupt=HalEnableSystemInterrupt@12
|
HalEnableSystemInterrupt=HalEnableSystemInterrupt@12
|
||||||
|
@ -1046,7 +1036,6 @@ HalReadDmaCounter=HalReadDmaCounter@4
|
||||||
HalReportResourceUsage=HalReportResourceUsage@0
|
HalReportResourceUsage=HalReportResourceUsage@0
|
||||||
HalRequestIpi=HalRequestIpi@4
|
HalRequestIpi=HalRequestIpi@4
|
||||||
;HalRequestSoftwareInterrupt=@HalRequestSoftwareInterrupt@4
|
;HalRequestSoftwareInterrupt=@HalRequestSoftwareInterrupt@4
|
||||||
;HalRequestSoftwareInterrupt=HalRequestSoftwareInterrupt@4
|
|
||||||
HalReturnToFirmware=HalReturnToFirmware@4
|
HalReturnToFirmware=HalReturnToFirmware@4
|
||||||
HalSetBusData=HalSetBusData@20
|
HalSetBusData=HalSetBusData@20
|
||||||
HalSetBusDataByOffset=HalSetBusDataByOffset@24
|
HalSetBusDataByOffset=HalSetBusDataByOffset@24
|
||||||
|
@ -1058,8 +1047,7 @@ HalSetRealTimeClock=HalSetRealTimeClock@4
|
||||||
HalStartNextProcessor=HalStartNextProcessor@8
|
HalStartNextProcessor=HalStartNextProcessor@8
|
||||||
;HalStartProfileInterrupt=HalStartProfileInterrupt@4
|
;HalStartProfileInterrupt=HalStartProfileInterrupt@4
|
||||||
;HalStopProfileInterrupt=HalStopProfileInterrupt@4
|
;HalStopProfileInterrupt=HalStopProfileInterrupt@4
|
||||||
;HalSystemVectorDispatchEntry=@HalSystemVectorDispatchEntry@12
|
HalSystemVectorDispatchEntry=@HalSystemVectorDispatchEntry@12
|
||||||
HalSystemVectorDispatchEntry=HalSystemVectorDispatchEntry@12
|
|
||||||
HalTranslateBusAddress=HalTranslateBusAddress@24
|
HalTranslateBusAddress=HalTranslateBusAddress@24
|
||||||
IoAssignDriveLetters=IoAssignDriveLetters@16
|
IoAssignDriveLetters=IoAssignDriveLetters@16
|
||||||
IoFlushAdapterBuffers=IoFlushAdapterBuffers@24
|
IoFlushAdapterBuffers=IoFlushAdapterBuffers@24
|
||||||
|
@ -1098,8 +1086,7 @@ KdPortPutByte=KdPortPutByte@4
|
||||||
KdPortRestore=KdPortRestore@0
|
KdPortRestore=KdPortRestore@0
|
||||||
KdPortSave=KdPortSave@0
|
KdPortSave=KdPortSave@0
|
||||||
KeAcquireSpinLock=KeAcquireSpinLock@8
|
KeAcquireSpinLock=KeAcquireSpinLock@8
|
||||||
;KeAcquireSpinLockRaiseToSynch=@KeAcquireSpinLockRaiseToSynch@4
|
KeAcquireSpinLockRaiseToSynch=@KeAcquireSpinLockRaiseToSynch@4
|
||||||
KeAcquireSpinLockRaiseToSynch=KeAcquireSpinLockRaiseToSynch@4
|
|
||||||
KeFlushWriteBuffer=KeFlushWriteBuffer@0
|
KeFlushWriteBuffer=KeFlushWriteBuffer@0
|
||||||
KeGetCurrentIrql=KeGetCurrentIrql@0
|
KeGetCurrentIrql=KeGetCurrentIrql@0
|
||||||
KeLowerIrql=KeLowerIrql@4
|
KeLowerIrql=KeLowerIrql@4
|
||||||
|
@ -1109,14 +1096,10 @@ KeRaiseIrqlToDpcLevel=KeRaiseIrqlToDpcLevel@0
|
||||||
KeRaiseIrqlToSynchLevel=KeRaiseIrqlToSynchLevel@0
|
KeRaiseIrqlToSynchLevel=KeRaiseIrqlToSynchLevel@0
|
||||||
KeReleaseSpinLock=KeReleaseSpinLock@8
|
KeReleaseSpinLock=KeReleaseSpinLock@8
|
||||||
KeStallExecutionProcessor=KeStallExecutionProcessor@4
|
KeStallExecutionProcessor=KeStallExecutionProcessor@4
|
||||||
;KfAcquireSpinLock=@KfAcquireSpinLock@4
|
KfAcquireSpinLock=@KfAcquireSpinLock@4
|
||||||
KfAcquireSpinLock=KfAcquireSpinLock@4
|
KfLowerIrql=@KfLowerIrql@4
|
||||||
;KfLowerIrql=@KfLowerIrql@4
|
KfRaiseIrql=@KfRaiseIrql@4
|
||||||
KfLowerIrql=KfLowerIrql@4
|
KfReleaseSpinLock=@KfReleaseSpinLock@8
|
||||||
;KfRaiseIrql=@KfRaiseIrql@4
|
|
||||||
KfRaiseIrql=KfRaiseIrql@4
|
|
||||||
;KfReleaseSpinLock=@KfReleaseSpinLock@8
|
|
||||||
KfReleaseSpinLock=KfReleaseSpinLock@8
|
|
||||||
READ_PORT_BUFFER_UCHAR=READ_PORT_BUFFER_UCHAR@12
|
READ_PORT_BUFFER_UCHAR=READ_PORT_BUFFER_UCHAR@12
|
||||||
READ_PORT_BUFFER_ULONG=READ_PORT_BUFFER_ULONG@12
|
READ_PORT_BUFFER_ULONG=READ_PORT_BUFFER_ULONG@12
|
||||||
READ_PORT_BUFFER_USHORT=READ_PORT_BUFFER_USHORT@12
|
READ_PORT_BUFFER_USHORT=READ_PORT_BUFFER_USHORT@12
|
||||||
|
|
|
@ -1,89 +1,13 @@
|
||||||
/* $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
|
* 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 <reactos/config.h>
|
||||||
#include <ntos.h>
|
#include <ntos.h>
|
||||||
#include <internal/debug.h>
|
#include <internal/debug.h>
|
||||||
|
|
||||||
//#define USE_FASTCALL
|
#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 */
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* FASTCALL: @InterlockedIncrement@4
|
* FASTCALL: @InterlockedIncrement@4
|
||||||
|
@ -99,28 +23,13 @@ InterlockedIncrement(PLONG Addend);
|
||||||
* RETURNS: The incremented value
|
* 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"
|
__asm__("\n\t.global @InterlockedIncrement@4\n\t"
|
||||||
"@InterlockedIncrement@4:\n\t"
|
"@InterlockedIncrement@4:\n\t"
|
||||||
"movl $1,%eax\n\t"
|
"movl $1,%eax\n\t"
|
||||||
"xaddl %eax,(%ecx)\n\t"
|
"xaddl %eax,(%ecx)\n\t"
|
||||||
"incl %eax\n\t"
|
"incl %eax\n\t"
|
||||||
"ret\n\t");
|
"ret\n\t");
|
||||||
#endif
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* FASTCALL: @InterlockedDecrement@4
|
* FASTCALL: @InterlockedDecrement@4
|
||||||
|
@ -129,28 +38,13 @@ __asm__("\n\t.global @InterlockedIncrement@4\n\t"
|
||||||
LONG FASTCALL
|
LONG FASTCALL
|
||||||
InterlockedDecrement(PLONG Addend);
|
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"
|
__asm__("\n\t.global @InterlockedDecrement@4\n\t"
|
||||||
"@InterlockedDecrement@4:\n\t"
|
"@InterlockedDecrement@4:\n\t"
|
||||||
"movl $-1,%eax\n\t"
|
"movl $-1,%eax\n\t"
|
||||||
"xaddl %eax,(%ecx)\n\t"
|
"xaddl %eax,(%ecx)\n\t"
|
||||||
"decl %eax\n\t"
|
"decl %eax\n\t"
|
||||||
"ret\n\t");
|
"ret\n\t");
|
||||||
#endif
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* FASTCALL: @InterlockedExchange@8
|
* FASTCALL: @InterlockedExchange@8
|
||||||
|
@ -161,26 +55,11 @@ LONG FASTCALL
|
||||||
InterlockedExchange(PLONG Target,
|
InterlockedExchange(PLONG Target,
|
||||||
LONG Value);
|
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"
|
__asm__("\n\t.global @InterlockedExchange@8\n\t"
|
||||||
"@InterlockedExchange@8:\n\t"
|
"@InterlockedExchange@8:\n\t"
|
||||||
"movl (%ecx),%eax\n"
|
"movl (%ecx),%eax\n"
|
||||||
"xchgl %edx,(%ecx)\n\t"
|
"xchgl %edx,(%ecx)\n\t"
|
||||||
"ret\n\t");
|
"ret\n\t");
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
@ -191,20 +70,11 @@ LONG FASTCALL
|
||||||
InterlockedExchangeAdd(PLONG Addend,
|
InterlockedExchangeAdd(PLONG Addend,
|
||||||
LONG Value);
|
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"
|
__asm__("\n\t.global @InterlockedExchangeAdd@8\n\t"
|
||||||
"@InterlockedExchangeAdd@8:\n\t"
|
"@InterlockedExchangeAdd@8:\n\t"
|
||||||
"xaddl %edx,(%ecx)\n\t"
|
"xaddl %edx,(%ecx)\n\t"
|
||||||
"movl %edx,%eax\n\t"
|
"movl %edx,%eax\n\t"
|
||||||
"ret\n\t");
|
"ret\n\t");
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
@ -216,23 +86,10 @@ InterlockedCompareExchange(PVOID *Destination,
|
||||||
PVOID Exchange,
|
PVOID Exchange,
|
||||||
PVOID Comperand);
|
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"
|
__asm__("\n\t.global @InterlockedCompareExchange@12\n\t"
|
||||||
"@InterlockedCompareExchange@12:\n\t"
|
"@InterlockedCompareExchange@12:\n\t"
|
||||||
"movl 4(%esp),%eax\n\t"
|
"movl 4(%esp),%eax\n\t"
|
||||||
"cmpxchg %edx,(%ecx)\n\t"
|
"cmpxchg %edx,(%ecx)\n\t"
|
||||||
"ret $4\n\t");
|
"ret $4\n\t");
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* I386_FIX */
|
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue