Author: tkreuzer
Date: Thu May 14 14:49:41 2015
New Revision: 67714
URL:
http://svn.reactos.org/svn/reactos?rev=67714&view=rev
Log:
[NTOSKRNL] Fix some Interlocked exports for non-x86, export some ARM specific functions
[NTDLL] Export some ARM specific functions
[SCSIPORT] Fix ARM exports
Modified:
trunk/reactos/dll/ntdll/def/ntdll.spec
trunk/reactos/drivers/storage/scsiport/scsiport.spec
trunk/reactos/ntoskrnl/ntoskrnl.spec
Modified: trunk/reactos/dll/ntdll/def/ntdll.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/def/ntdll.spec?r…
==============================================================================
--- trunk/reactos/dll/ntdll/def/ntdll.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/ntdll/def/ntdll.spec [iso-8859-1] Thu May 14 14:49:41 2015
@@ -716,9 +716,9 @@
@ stdcall RtlIntegerToChar(long long long ptr)
@ stdcall RtlIntegerToUnicodeString(long long ptr)
@ stdcall -arch=win32 -ret64 RtlInterlockedCompareExchange64(ptr double double)
-@ stdcall -arch=i386,x86_64 RtlInterlockedFlushSList(ptr)
-@ stdcall -arch=i386,x86_64 RtlInterlockedPopEntrySList(ptr)
-@ stdcall -arch=i386,x86_64 RtlInterlockedPushEntrySList(ptr ptr)
+@ stdcall RtlInterlockedFlushSList(ptr)
+@ stdcall RtlInterlockedPopEntrySList(ptr)
+@ stdcall RtlInterlockedPushEntrySList(ptr ptr)
@ stdcall RtlIpv4AddressToStringA(ptr ptr)
@ stdcall RtlIpv4AddressToStringExA(ptr long ptr ptr)
@ stdcall RtlIpv4AddressToStringExW(ptr long ptr ptr)
@@ -1272,7 +1272,8 @@
@ cdecl -arch=i386 _CIpow()
@ cdecl -arch=i386 _CIsin()
@ cdecl -arch=i386 _CIsqrt()
-@ cdecl -arch=x86_64 __C_specific_handler(ptr long ptr ptr)
+@ cdecl -arch=x86_64,arm __C_specific_handler(ptr long ptr ptr)
+@ cdecl -arch=arm __jump_unwind()
@ cdecl __isascii(long)
@ cdecl __iscsym(long)
@ cdecl __iscsymf(long)
@@ -1290,7 +1291,7 @@
@ cdecl -arch=i386 -ret64 _aullrem(double double)
@ cdecl -arch=i386 _aullshr()
@ extern -arch=i386 _chkstk
-@ cdecl -arch=i386,x86_64 _fltused()
+@ cdecl -arch=i386,x86_64,arm _fltused()
@ cdecl -arch=i386 -ret64 _ftol()
@ cdecl _i64toa(double ptr long)
@ cdecl _i64tow(double ptr long)
@@ -1334,10 +1335,10 @@
@ cdecl atoi(str)
@ cdecl atol(str)
@ cdecl bsearch(ptr ptr long long ptr)
-@ cdecl -arch=i386,x86_64 ceil(double)
-@ cdecl -arch=i386,x86_64 cos(double)
-@ cdecl -arch=i386,x86_64 fabs(double)
-@ cdecl -arch=i386,x86_64 floor(double)
+@ cdecl ceil(double)
+@ cdecl cos(double)
+@ cdecl fabs(double)
+@ cdecl floor(double)
@ cdecl isalnum(long)
@ cdecl isalpha(long)
@ cdecl iscntrl(long)
@@ -1366,7 +1367,7 @@
@ cdecl memset(ptr long long)
@ cdecl -arch=i386,x86_64 pow(double double)
@ cdecl qsort(ptr long long ptr)
-@ cdecl -arch=i386,x86_64 sin(double)
+@ cdecl sin(double)
@ varargs sprintf(ptr str)
@ cdecl -arch=i386,x86_64 sqrt(double)
@ varargs sscanf(str str)
@@ -1410,3 +1411,14 @@
@ cdecl wcstol(wstr ptr long)
@ cdecl wcstombs(ptr ptr long)
@ cdecl wcstoul(wstr ptr long)
+
+# FIXME: check if this is correct
+@ stdcall -arch=arm __dtoi64()
+@ stdcall -arch=arm __dtou64()
+@ stdcall -arch=arm __i64tod()
+@ stdcall -arch=arm __u64tod()
+@ stdcall -arch=arm __rt_sdiv()
+@ stdcall -arch=arm __rt_sdiv64()
+@ stdcall -arch=arm __rt_udiv()
+@ stdcall -arch=arm __rt_udiv64()
+@ stdcall -arch=arm __rt_srsh()
Modified: trunk/reactos/drivers/storage/scsiport/scsiport.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/scsiport/s…
==============================================================================
--- trunk/reactos/drivers/storage/scsiport/scsiport.spec [iso-8859-1] (original)
+++ trunk/reactos/drivers/storage/scsiport/scsiport.spec [iso-8859-1] Thu May 14 14:49:41
2015
@@ -1,7 +1,7 @@
@ cdecl ScsiDebugPrint()
@ stdcall ScsiPortCompleteRequest(ptr long long long long)
@ stdcall ScsiPortConvertPhysicalAddressToUlong(long long)
-@ stdcall -arch=i386 ScsiPortConvertUlongToPhysicalAddress(long)
NTOSKRNL.RtlConvertUlongToLargeInteger
+@ stdcall -arch=i386,arm ScsiPortConvertUlongToPhysicalAddress(long)
NTOSKRNL.RtlConvertUlongToLargeInteger
@ stdcall -arch=x86_64 ScsiPortConvertUlongToPhysicalAddress(long)
@ stdcall ScsiPortFlushDma(ptr)
@ stdcall ScsiPortFreeDeviceBase(ptr ptr)
@@ -17,18 +17,18 @@
@ stdcall ScsiPortLogError(ptr ptr long long long long long)
@ stdcall ScsiPortMoveMemory(ptr ptr long)
@ cdecl ScsiPortNotification()
-@ stdcall -arch=i386 ScsiPortReadPortBufferUchar(ptr ptr long)
HAL.READ_PORT_BUFFER_UCHAR
-@ stdcall -arch=i386 ScsiPortReadPortBufferUshort(ptr ptr long)
HAL.READ_PORT_BUFFER_USHORT
-@ stdcall -arch=i386 ScsiPortReadPortBufferUlong(ptr ptr long)
HAL.READ_PORT_BUFFER_ULONG
-@ stdcall -arch=i386 ScsiPortReadPortUchar(ptr) HAL.READ_PORT_UCHAR
-@ stdcall -arch=i386 ScsiPortReadPortUshort(ptr) HAL.READ_PORT_USHORT
-@ stdcall -arch=i386 ScsiPortReadPortUlong(ptr) HAL.READ_PORT_ULONG
-@ stdcall -arch=i386 ScsiPortReadRegisterBufferUchar(ptr ptr long)
NTOSKRNL.READ_REGISTER_BUFFER_UCHAR
-@ stdcall -arch=i386 ScsiPortReadRegisterBufferUshort(ptr ptr long)
NTOSKRNL.READ_REGISTER_BUFFER_USHORT
-@ stdcall -arch=i386 ScsiPortReadRegisterBufferUlong(ptr ptr long)
NTOSKRNL.READ_REGISTER_BUFFER_ULONG
-@ stdcall -arch=i386 ScsiPortReadRegisterUchar(ptr) NTOSKRNL.READ_REGISTER_UCHAR
-@ stdcall -arch=i386 ScsiPortReadRegisterUshort(ptr) NTOSKRNL.READ_REGISTER_USHORT
-@ stdcall -arch=i386 ScsiPortReadRegisterUlong(ptr) NTOSKRNL.READ_REGISTER_ULONG
+@ stdcall -arch=i386,arm ScsiPortReadPortBufferUchar(ptr ptr long)
HAL.READ_PORT_BUFFER_UCHAR
+@ stdcall -arch=i386,arm ScsiPortReadPortBufferUshort(ptr ptr long)
HAL.READ_PORT_BUFFER_USHORT
+@ stdcall -arch=i386,arm ScsiPortReadPortBufferUlong(ptr ptr long)
HAL.READ_PORT_BUFFER_ULONG
+@ stdcall -arch=i386,arm ScsiPortReadPortUchar(ptr) HAL.READ_PORT_UCHAR
+@ stdcall -arch=i386,arm ScsiPortReadPortUshort(ptr) HAL.READ_PORT_USHORT
+@ stdcall -arch=i386,arm ScsiPortReadPortUlong(ptr) HAL.READ_PORT_ULONG
+@ stdcall -arch=i386,arm ScsiPortReadRegisterBufferUchar(ptr ptr long)
NTOSKRNL.READ_REGISTER_BUFFER_UCHAR
+@ stdcall -arch=i386,arm ScsiPortReadRegisterBufferUshort(ptr ptr long)
NTOSKRNL.READ_REGISTER_BUFFER_USHORT
+@ stdcall -arch=i386,arm ScsiPortReadRegisterBufferUlong(ptr ptr long)
NTOSKRNL.READ_REGISTER_BUFFER_ULONG
+@ stdcall -arch=i386,arm ScsiPortReadRegisterUchar(ptr) NTOSKRNL.READ_REGISTER_UCHAR
+@ stdcall -arch=i386,arm ScsiPortReadRegisterUshort(ptr) NTOSKRNL.READ_REGISTER_USHORT
+@ stdcall -arch=i386,arm ScsiPortReadRegisterUlong(ptr) NTOSKRNL.READ_REGISTER_ULONG
@ stdcall -arch=x86_64 ScsiPortReadPortBufferUchar(ptr ptr long)
@ stdcall -arch=x86_64 ScsiPortReadPortBufferUshort(ptr ptr long)
@ stdcall -arch=x86_64 ScsiPortReadPortBufferUlong(ptr ptr long)
@@ -44,18 +44,18 @@
@ stdcall ScsiPortSetBusDataByOffset(ptr long long long ptr long long)
@ stdcall ScsiPortStallExecution(long) HAL.KeStallExecutionProcessor
@ stdcall ScsiPortValidateRange(ptr long long long long long long)
-@ stdcall -arch=i386 ScsiPortWritePortBufferUchar(ptr ptr long)
HAL.WRITE_PORT_BUFFER_UCHAR
-@ stdcall -arch=i386 ScsiPortWritePortBufferUshort(ptr ptr long)
HAL.WRITE_PORT_BUFFER_USHORT
-@ stdcall -arch=i386 ScsiPortWritePortBufferUlong(ptr ptr long)
HAL.WRITE_PORT_BUFFER_ULONG
-@ stdcall -arch=i386 ScsiPortWritePortUchar(ptr long) HAL.WRITE_PORT_UCHAR
-@ stdcall -arch=i386 ScsiPortWritePortUshort(ptr long) HAL.WRITE_PORT_USHORT
-@ stdcall -arch=i386 ScsiPortWritePortUlong(ptr long) HAL.WRITE_PORT_ULONG
-@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUchar(ptr ptr long)
NTOSKRNL.WRITE_REGISTER_BUFFER_UCHAR
-@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUshort(ptr ptr long)
NTOSKRNL.WRITE_REGISTER_BUFFER_USHORT
-@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUlong(ptr ptr long)
NTOSKRNL.WRITE_REGISTER_BUFFER_ULONG
-@ stdcall -arch=i386 ScsiPortWriteRegisterUchar(ptr long) NTOSKRNL.WRITE_REGISTER_UCHAR
-@ stdcall -arch=i386 ScsiPortWriteRegisterUshort(ptr long)
NTOSKRNL.WRITE_REGISTER_USHORT
-@ stdcall -arch=i386 ScsiPortWriteRegisterUlong(ptr long) NTOSKRNL.WRITE_REGISTER_ULONG
+@ stdcall -arch=i386,arm ScsiPortWritePortBufferUchar(ptr ptr long)
HAL.WRITE_PORT_BUFFER_UCHAR
+@ stdcall -arch=i386,arm ScsiPortWritePortBufferUshort(ptr ptr long)
HAL.WRITE_PORT_BUFFER_USHORT
+@ stdcall -arch=i386,arm ScsiPortWritePortBufferUlong(ptr ptr long)
HAL.WRITE_PORT_BUFFER_ULONG
+@ stdcall -arch=i386,arm ScsiPortWritePortUchar(ptr long) HAL.WRITE_PORT_UCHAR
+@ stdcall -arch=i386,arm ScsiPortWritePortUshort(ptr long) HAL.WRITE_PORT_USHORT
+@ stdcall -arch=i386,arm ScsiPortWritePortUlong(ptr long) HAL.WRITE_PORT_ULONG
+@ stdcall -arch=i386,arm ScsiPortWriteRegisterBufferUchar(ptr ptr long)
NTOSKRNL.WRITE_REGISTER_BUFFER_UCHAR
+@ stdcall -arch=i386,arm ScsiPortWriteRegisterBufferUshort(ptr ptr long)
NTOSKRNL.WRITE_REGISTER_BUFFER_USHORT
+@ stdcall -arch=i386,arm ScsiPortWriteRegisterBufferUlong(ptr ptr long)
NTOSKRNL.WRITE_REGISTER_BUFFER_ULONG
+@ stdcall -arch=i386,arm ScsiPortWriteRegisterUchar(ptr long)
NTOSKRNL.WRITE_REGISTER_UCHAR
+@ stdcall -arch=i386,arm ScsiPortWriteRegisterUshort(ptr long)
NTOSKRNL.WRITE_REGISTER_USHORT
+@ stdcall -arch=i386,arm ScsiPortWriteRegisterUlong(ptr long)
NTOSKRNL.WRITE_REGISTER_ULONG
@ stdcall -arch=x86_64 ScsiPortWritePortBufferUchar(ptr ptr long)
@ stdcall -arch=x86_64 ScsiPortWritePortBufferUshort(ptr ptr long)
@ stdcall -arch=x86_64 ScsiPortWritePortBufferUlong(ptr ptr long)
Modified: trunk/reactos/ntoskrnl/ntoskrnl.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.spec?rev…
==============================================================================
--- trunk/reactos/ntoskrnl/ntoskrnl.spec [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ntoskrnl.spec [iso-8859-1] Thu May 14 14:49:41 2015
@@ -100,27 +100,27 @@
@ stdcall ExInitializeRundownProtectionCacheAware(ptr long)
@ stdcall ExInitializeZone(ptr long ptr long)
@ stdcall ExInterlockedAddLargeInteger(ptr long long ptr)
-@ fastcall -arch=i386,arm ExInterlockedAddLargeStatistic(ptr long)
+@ fastcall -arch=i386 ExInterlockedAddLargeStatistic(ptr long)
@ stdcall ExInterlockedAddUlong(ptr long ptr)
@ fastcall -arch=i386 ExInterlockedCompareExchange64(ptr ptr ptr ptr)
@ stdcall -arch=i386 ExInterlockedDecrementLong(ptr ptr)
@ stdcall -arch=i386 ExInterlockedExchangeUlong(ptr long ptr)
@ stdcall ExInterlockedExtendZone(ptr ptr long ptr)
-@ fastcall -arch=i386,arm ExInterlockedFlushSList(ptr)
-@ stdcall -arch=i386,arm ExInterlockedIncrementLong(ptr ptr)
+@ fastcall -arch=i386 ExInterlockedFlushSList(ptr)
+@ stdcall -arch=i386 ExInterlockedIncrementLong(ptr ptr)
@ stdcall ExInterlockedInsertHeadList(ptr ptr ptr)
@ stdcall ExInterlockedInsertTailList(ptr ptr ptr)
@ stdcall ExInterlockedPopEntryList(ptr ptr)
-@ fastcall -arch=i386,arm ExInterlockedPopEntrySList(ptr ptr)
+@ fastcall -arch=i386 ExInterlockedPopEntrySList(ptr ptr)
@ stdcall ExInterlockedPushEntryList(ptr ptr ptr)
-@ fastcall -arch=i386,arm ExInterlockedPushEntrySList(ptr ptr ptr)
+@ fastcall -arch=i386 ExInterlockedPushEntrySList(ptr ptr ptr)
@ stdcall ExInterlockedRemoveHeadList(ptr ptr)
@ stdcall ExIsProcessorFeaturePresent(long)
@ stdcall ExIsResourceAcquiredExclusiveLite(ptr)
@ stdcall ExIsResourceAcquiredSharedLite(ptr)
@ stdcall ExLocalTimeToSystemTime(ptr ptr)
@ stdcall ExNotifyCallback(ptr ptr ptr)
-@ stdcall -arch=x86_64 ExQueryDepthSList(ptr)
+@ stdcall -arch=x86_64,arm ExQueryDepthSList(ptr) RtlQueryDepthSList
@ stdcall ExQueryPoolBlockSize(ptr ptr)
@ stdcall ExQueueWorkItem(ptr long)
@ stdcall ExRaiseAccessViolation()
@@ -159,21 +159,21 @@
@ extern ExWindowStationObjectType
@ fastcall ExfAcquirePushLockExclusive(ptr)
@ fastcall ExfAcquirePushLockShared(ptr)
-@ fastcall -arch=i386,arm ExfInterlockedAddUlong(ptr long ptr)
-@ fastcall -arch=i386,arm ExfInterlockedCompareExchange64(ptr ptr ptr)
-@ fastcall -arch=i386,arm ExfInterlockedInsertHeadList(ptr ptr ptr)
-@ fastcall -arch=i386,arm ExfInterlockedInsertTailList(ptr ptr ptr)
-@ fastcall -arch=i386,arm ExfInterlockedPopEntryList(ptr ptr)
-@ fastcall -arch=i386,arm ExfInterlockedPushEntryList(ptr ptr ptr)
-@ fastcall -arch=i386,arm ExfInterlockedRemoveHeadList(ptr ptr)
+@ fastcall -arch=i386 ExfInterlockedAddUlong(ptr long ptr)
+@ fastcall -arch=i386 ExfInterlockedCompareExchange64(ptr ptr ptr)
+@ fastcall -arch=i386 ExfInterlockedInsertHeadList(ptr ptr ptr)
+@ fastcall -arch=i386 ExfInterlockedInsertTailList(ptr ptr ptr)
+@ fastcall -arch=i386 ExfInterlockedPopEntryList(ptr ptr)
+@ fastcall -arch=i386 ExfInterlockedPushEntryList(ptr ptr ptr)
+@ fastcall -arch=i386 ExfInterlockedRemoveHeadList(ptr ptr)
@ fastcall ExfReleasePushLock(ptr)
@ fastcall ExfReleasePushLockExclusive(ptr)
@ fastcall ExfReleasePushLockShared(ptr)
@ fastcall ExfTryToWakePushLock(ptr)
@ fastcall ExfUnblockPushLock(ptr ptr)
-@ stdcall -arch=x86_64 ExpInterlockedFlushSList(ptr)
-@ stdcall -arch=x86_64 ExpInterlockedPopEntrySList(ptr ptr)
-@ stdcall -arch=x86_64 ExpInterlockedPushEntrySList(ptr ptr)
+@ stdcall -arch=x86_64,arm ExpInterlockedFlushSList(ptr) RtlInterlockedFlushSList
+@ stdcall -arch=x86_64,arm ExpInterlockedPopEntrySList(ptr ptr)
RtlInterlockedPopEntrySList
+@ stdcall -arch=x86_64,arm ExpInterlockedPushEntrySList(ptr ptr)
RtlInterlockedPushEntrySList
@ fastcall -arch=i386 Exfi386InterlockedDecrementLong(ptr)
@ fastcall -arch=i386 Exfi386InterlockedExchangeUlong(ptr long)
@ fastcall -arch=i386 Exfi386InterlockedIncrementLong(ptr)
@@ -324,8 +324,10 @@
@ fastcall -arch=i386,arm InterlockedExchange(ptr long)
@ fastcall -arch=i386,arm InterlockedExchangeAdd(ptr long)
@ fastcall -arch=i386,arm InterlockedIncrement(ptr)
-@ fastcall -arch=i386,arm InterlockedPopEntrySList(ptr)
-@ fastcall -arch=i386,arm InterlockedPushEntrySList(ptr ptr)
+@ fastcall -arch=i386 InterlockedPopEntrySList(ptr)
+@ fastcall -arch=i386 InterlockedPushEntrySList(ptr ptr)
+@ stdcall -arch=arm InterlockedPopEntrySList(ptr) RtlInterlockedPopEntrySList
+@ stdcall -arch=arm InterlockedPushEntrySList(ptr ptr) RtlInterlockedPushEntrySList
@ stdcall -arch=x86_64 InitializeSListHead(ptr) RtlInitializeSListHead
@ stdcall IoAcquireCancelSpinLock(ptr)
@ stdcall IoAcquireRemoveLockEx(ptr ptr str long long)
@@ -582,6 +584,7 @@
@ stdcall KeFindConfigurationEntry(ptr long long ptr)
@ stdcall KeFindConfigurationNextEntry(ptr long long ptr ptr)
@ stdcall KeFlushEntireTb(long long)
+@ stdcall -arch=arm KeFlushIoBuffers(ptr long long)
@ stdcall KeFlushQueuedDpcs()
@ stdcall KeGenericCallDpc(ptr ptr)
@ stdcall KeGetCurrentThread()
@@ -1535,7 +1538,8 @@
@ stdcall ZwWaitForSingleObject(ptr long ptr)
@ stdcall ZwWriteFile(ptr ptr ptr ptr ptr ptr long ptr ptr)
@ stdcall ZwYieldExecution()
-@ cdecl -arch=x86_64 __C_specific_handler(ptr long ptr ptr)
+@ cdecl -arch=x86_64,arm __C_specific_handler(ptr long ptr ptr)
+@ cdecl -arch=arm __jump_unwind()
@ cdecl -arch=x86_64 __chkstk()
;@ cdecl -arch=x86_64 __misaligned_access()
;@ cdecl -arch=i386 _CIcos
@@ -1561,7 +1565,7 @@
@ cdecl -arch=i386,arm _local_unwind2()
@ cdecl -arch=x86_64 _local_unwind()
@ cdecl _purecall()
-@ cdecl -arch=x86_64 _setjmp(ptr ptr)
+@ cdecl -arch=x86_64,arm _setjmp(ptr ptr)
@ cdecl -arch=x86_64 _setjmpex(ptr ptr)
@ cdecl _snprintf()
@ cdecl _snwprintf()
@@ -1588,7 +1592,7 @@
@ cdecl isspace()
@ cdecl isupper()
@ cdecl isxdigit()
-@ cdecl -arch=x86_64 longjmp(ptr long)
+@ cdecl -arch=x86_64,arm longjmp(ptr long)
@ cdecl mbstowcs()
@ cdecl mbtowc()
@ cdecl memchr()
@@ -1633,3 +1637,14 @@
@ cdecl wcsstr()
@ cdecl wcstombs()
@ cdecl wctomb()
+
+# FIXME: check if this is correct
+@ stdcall -arch=arm __dtoi64()
+@ stdcall -arch=arm __dtou64()
+@ stdcall -arch=arm __i64tod()
+@ stdcall -arch=arm __u64tod()
+@ stdcall -arch=arm __rt_sdiv()
+@ stdcall -arch=arm __rt_sdiv64()
+@ stdcall -arch=arm __rt_udiv()
+@ stdcall -arch=arm __rt_udiv64()
+@ stdcall -arch=arm __rt_srsh()