- Make syscalls ARM compatible

svn path=/trunk/; revision=67640
This commit is contained in:
Timo Kreuzer 2015-05-10 21:03:53 +00:00
parent 89ee675f59
commit 9fbce543e9
6 changed files with 1075 additions and 995 deletions

View file

@ -1,4 +1,57 @@
#ifdef _M_ARM
#include <ksarm.h>
GBLA SyscallId
SyscallId SETA 0
MACRO
STUB_K $Name
LCLS ZwFuncName
LCLS ZwFuncEndName
ZwFuncName SETS "Zw$Name"
ZwFuncEndName SETS "$ZwFuncName":CC:"_end"
ALIGN 2
EXPORT $ZwFuncName [FUNC]
$ZwFuncName
ROUT
mov r12, #SyscallId
svc #1
bx lr
$ZwFuncEndName
MEND
MACRO
STUB_U $Name
LCLS NtFuncName
LCLS NtFuncEndName
LCLS ZwFuncName
LCLS ZwFuncEndName
NtFuncName SETS "Nt$Name"
NtFuncEndName SETS "$NtFuncName":CC:"_end"
ZwFuncName SETS "Zw$Name"
ZwFuncEndName SETS "$ZwFuncName":CC:"_end"
ALIGN 2
EXPORT $NtFuncName [FUNC]
$NtFuncName
EXPORT $ZwFuncName [FUNC]
$ZwFuncName
ROUT
mov r12, #SyscallId
svc #1
bx lr
$NtFuncEndName
$ZwFuncEndName
MEND
#else
#include <asm.inc>
SyscallId = 0
#ifdef _M_IX86 #ifdef _M_IX86
#define KUSER_SHARED_SYSCALL HEX(7ffe0300) #define KUSER_SHARED_SYSCALL HEX(7ffe0300)
#define KGDT_R0_CODE 8 #define KGDT_R0_CODE 8
@ -35,16 +88,6 @@ MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
mov r10, ArgCount * 8 mov r10, ArgCount * 8
jmp KiZwSystemService jmp KiZwSystemService
ENDM ENDM
#elif defined(_M_ARM)
MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
swi #SyscallId
bx lr
ENDM
MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
mov ip, lr
swi #SyscallId
bx ip
ENDM
#elif defined(_M_PPC) #elif defined(_M_PPC)
MACRO(STUBCODE_U, Name, SyscallId, ArgCount) MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
stwu 1,-16(1) stwu 1,-16(1)
@ -107,3 +150,5 @@ MACRO(STUB_K, Name, ArgCount)
.ENDP .ENDP
SyscallId = SyscallId + 1 SyscallId = SyscallId + 1
ENDM ENDM
#endif

View file

@ -1,7 +1,16 @@
#include <asm.inc>
#include <syscalls.inc> #include <syscalls.inc>
#ifdef _M_ARM
TEXTAREA
#define SVC_(name, argcount) STUB_K name
#include <sysfuncs.h>
#else
#ifdef _M_IX86 #ifdef _M_IX86
EXTERN _KiSystemService:PROC EXTERN _KiSystemService:PROC
#elif defined(_M_AMD64) #elif defined(_M_AMD64)
@ -12,9 +21,10 @@ EXTERN KiZwSystemService:PROC
.code .code
SyscallId = 0
#define SVC_(name, argcount) STUB_K name, argcount #define SVC_(name, argcount) STUB_K name, argcount
#include <sysfuncs.h> #include <sysfuncs.h>
END #endif
END

View file

@ -1,296 +1,296 @@
SVC_(AcceptConnectPort, 6) SVC_(AcceptConnectPort, 6)
SVC_(AccessCheck, 8) SVC_(AccessCheck, 8)
SVC_(AccessCheckAndAuditAlarm, 11) SVC_(AccessCheckAndAuditAlarm, 11)
SVC_(AccessCheckByType, 11) SVC_(AccessCheckByType, 11)
SVC_(AccessCheckByTypeAndAuditAlarm, 16) SVC_(AccessCheckByTypeAndAuditAlarm, 16)
SVC_(AccessCheckByTypeResultList, 11) SVC_(AccessCheckByTypeResultList, 11)
SVC_(AccessCheckByTypeResultListAndAuditAlarm, 16) SVC_(AccessCheckByTypeResultListAndAuditAlarm, 16)
SVC_(AccessCheckByTypeResultListAndAuditAlarmByHandle, 17) SVC_(AccessCheckByTypeResultListAndAuditAlarmByHandle, 17)
SVC_(AddAtom, 3) SVC_(AddAtom, 3)
SVC_(AddBootEntry, 2) SVC_(AddBootEntry, 2)
SVC_(AddDriverEntry, 2) SVC_(AddDriverEntry, 2)
SVC_(AdjustGroupsToken, 6) SVC_(AdjustGroupsToken, 6)
SVC_(AdjustPrivilegesToken, 6) SVC_(AdjustPrivilegesToken, 6)
SVC_(AlertResumeThread, 2) SVC_(AlertResumeThread, 2)
SVC_(AlertThread, 1) SVC_(AlertThread, 1)
SVC_(AllocateLocallyUniqueId, 1) SVC_(AllocateLocallyUniqueId, 1)
SVC_(AllocateUserPhysicalPages, 3) SVC_(AllocateUserPhysicalPages, 3)
SVC_(AllocateUuids, 4) SVC_(AllocateUuids, 4)
SVC_(AllocateVirtualMemory, 6) SVC_(AllocateVirtualMemory, 6)
SVC_(ApphelpCacheControl, 2) SVC_(ApphelpCacheControl, 2)
SVC_(AreMappedFilesTheSame, 2) SVC_(AreMappedFilesTheSame, 2)
SVC_(AssignProcessToJobObject, 2) SVC_(AssignProcessToJobObject, 2)
SVC_(CallbackReturn, 3) SVC_(CallbackReturn, 3)
SVC_(CancelDeviceWakeupRequest, 1) SVC_(CancelDeviceWakeupRequest, 1)
SVC_(CancelIoFile, 2) SVC_(CancelIoFile, 2)
SVC_(CancelTimer, 2) SVC_(CancelTimer, 2)
SVC_(ClearEvent, 1) SVC_(ClearEvent, 1)
SVC_(Close, 1) SVC_(Close, 1)
SVC_(CloseObjectAuditAlarm, 3) SVC_(CloseObjectAuditAlarm, 3)
SVC_(CompactKeys, 2) SVC_(CompactKeys, 2)
SVC_(CompareTokens, 3) SVC_(CompareTokens, 3)
SVC_(CompleteConnectPort, 1) SVC_(CompleteConnectPort, 1)
SVC_(CompressKey, 1) SVC_(CompressKey, 1)
SVC_(ConnectPort, 8) SVC_(ConnectPort, 8)
SVC_(Continue, 2) SVC_(Continue, 2)
SVC_(CreateDebugObject, 4) SVC_(CreateDebugObject, 4)
SVC_(CreateDirectoryObject, 3) SVC_(CreateDirectoryObject, 3)
SVC_(CreateEvent, 5) SVC_(CreateEvent, 5)
SVC_(CreateEventPair, 3) SVC_(CreateEventPair, 3)
SVC_(CreateFile, 11) SVC_(CreateFile, 11)
SVC_(CreateIoCompletion, 4) SVC_(CreateIoCompletion, 4)
SVC_(CreateJobObject, 3) SVC_(CreateJobObject, 3)
SVC_(CreateJobSet, 3) SVC_(CreateJobSet, 3)
SVC_(CreateKey, 7) SVC_(CreateKey, 7)
SVC_(CreateMailslotFile, 8) SVC_(CreateMailslotFile, 8)
SVC_(CreateMutant, 4) SVC_(CreateMutant, 4)
SVC_(CreateNamedPipeFile, 14) SVC_(CreateNamedPipeFile, 14)
SVC_(CreatePagingFile, 4) SVC_(CreatePagingFile, 4)
SVC_(CreatePort, 5) SVC_(CreatePort, 5)
SVC_(CreateProcess, 8) SVC_(CreateProcess, 8)
SVC_(CreateProcessEx, 9) SVC_(CreateProcessEx, 9)
SVC_(CreateProfile, 9) SVC_(CreateProfile, 9)
SVC_(CreateSection, 7) SVC_(CreateSection, 7)
SVC_(CreateSemaphore, 5) SVC_(CreateSemaphore, 5)
SVC_(CreateSymbolicLinkObject, 4) SVC_(CreateSymbolicLinkObject, 4)
SVC_(CreateThread, 8) SVC_(CreateThread, 8)
SVC_(CreateTimer, 4) SVC_(CreateTimer, 4)
SVC_(CreateToken, 13) SVC_(CreateToken, 13)
SVC_(CreateWaitablePort, 5) SVC_(CreateWaitablePort, 5)
SVC_(DebugActiveProcess, 2) SVC_(DebugActiveProcess, 2)
SVC_(DebugContinue, 3) SVC_(DebugContinue, 3)
SVC_(DelayExecution, 2) SVC_(DelayExecution, 2)
SVC_(DeleteAtom, 1) SVC_(DeleteAtom, 1)
SVC_(DeleteBootEntry, 1) SVC_(DeleteBootEntry, 1)
SVC_(DeleteDriverEntry, 1) SVC_(DeleteDriverEntry, 1)
SVC_(DeleteFile, 1) SVC_(DeleteFile, 1)
SVC_(DeleteKey, 1) SVC_(DeleteKey, 1)
SVC_(DeleteObjectAuditAlarm, 3) SVC_(DeleteObjectAuditAlarm, 3)
SVC_(DeleteValueKey, 2) SVC_(DeleteValueKey, 2)
SVC_(DeviceIoControlFile, 10) SVC_(DeviceIoControlFile, 10)
SVC_(DisplayString, 1) SVC_(DisplayString, 1)
SVC_(DuplicateObject, 7) SVC_(DuplicateObject, 7)
SVC_(DuplicateToken, 6) SVC_(DuplicateToken, 6)
SVC_(EnumerateBootEntries, 2) SVC_(EnumerateBootEntries, 2)
SVC_(EnumerateDriverEntries, 2) SVC_(EnumerateDriverEntries, 2)
SVC_(EnumerateKey, 6) SVC_(EnumerateKey, 6)
SVC_(EnumerateSystemEnvironmentValuesEx, 3) SVC_(EnumerateSystemEnvironmentValuesEx, 3)
SVC_(EnumerateValueKey, 6) SVC_(EnumerateValueKey, 6)
SVC_(ExtendSection, 2) SVC_(ExtendSection, 2)
SVC_(FilterToken, 6) SVC_(FilterToken, 6)
SVC_(FindAtom, 3) SVC_(FindAtom, 3)
SVC_(FlushBuffersFile, 2) SVC_(FlushBuffersFile, 2)
SVC_(FlushInstructionCache, 3) SVC_(FlushInstructionCache, 3)
SVC_(FlushKey, 1) SVC_(FlushKey, 1)
SVC_(FlushVirtualMemory, 4) SVC_(FlushVirtualMemory, 4)
SVC_(FlushWriteBuffer, 0) SVC_(FlushWriteBuffer, 0)
SVC_(FreeUserPhysicalPages, 3) SVC_(FreeUserPhysicalPages, 3)
SVC_(FreeVirtualMemory, 4) SVC_(FreeVirtualMemory, 4)
SVC_(FsControlFile, 10) SVC_(FsControlFile, 10)
SVC_(GetContextThread, 2) SVC_(GetContextThread, 2)
SVC_(GetDevicePowerState, 2) SVC_(GetDevicePowerState, 2)
SVC_(GetPlugPlayEvent, 4) SVC_(GetPlugPlayEvent, 4)
SVC_(GetWriteWatch, 7) SVC_(GetWriteWatch, 7)
SVC_(ImpersonateAnonymousToken, 1) SVC_(ImpersonateAnonymousToken, 1)
SVC_(ImpersonateClientOfPort, 2) SVC_(ImpersonateClientOfPort, 2)
SVC_(ImpersonateThread, 3) SVC_(ImpersonateThread, 3)
SVC_(InitializeRegistry, 1) SVC_(InitializeRegistry, 1)
SVC_(InitiatePowerAction, 4) SVC_(InitiatePowerAction, 4)
SVC_(IsProcessInJob, 2) SVC_(IsProcessInJob, 2)
SVC_(IsSystemResumeAutomatic, 0) SVC_(IsSystemResumeAutomatic, 0)
SVC_(ListenPort, 2) SVC_(ListenPort, 2)
SVC_(LoadDriver, 1) SVC_(LoadDriver, 1)
SVC_(LoadKey, 2) SVC_(LoadKey, 2)
SVC_(LoadKey2, 3) SVC_(LoadKey2, 3)
SVC_(LoadKeyEx, 4) SVC_(LoadKeyEx, 4)
SVC_(LockFile, 10) SVC_(LockFile, 10)
SVC_(LockProductActivationKeys, 2) SVC_(LockProductActivationKeys, 2)
SVC_(LockRegistryKey, 1) SVC_(LockRegistryKey, 1)
SVC_(LockVirtualMemory, 4) SVC_(LockVirtualMemory, 4)
SVC_(MakePermanentObject, 1) SVC_(MakePermanentObject, 1)
SVC_(MakeTemporaryObject, 1) SVC_(MakeTemporaryObject, 1)
SVC_(MapUserPhysicalPages, 3) SVC_(MapUserPhysicalPages, 3)
SVC_(MapUserPhysicalPagesScatter, 3) SVC_(MapUserPhysicalPagesScatter, 3)
SVC_(MapViewOfSection, 10) SVC_(MapViewOfSection, 10)
SVC_(ModifyBootEntry, 1) SVC_(ModifyBootEntry, 1)
SVC_(ModifyDriverEntry, 1) SVC_(ModifyDriverEntry, 1)
SVC_(NotifyChangeDirectoryFile, 9) SVC_(NotifyChangeDirectoryFile, 9)
SVC_(NotifyChangeKey, 10) SVC_(NotifyChangeKey, 10)
SVC_(NotifyChangeMultipleKeys, 12) SVC_(NotifyChangeMultipleKeys, 12)
SVC_(OpenDirectoryObject, 3) SVC_(OpenDirectoryObject, 3)
SVC_(OpenEvent, 3) SVC_(OpenEvent, 3)
SVC_(OpenEventPair, 3) SVC_(OpenEventPair, 3)
SVC_(OpenFile, 6) SVC_(OpenFile, 6)
SVC_(OpenIoCompletion, 3) SVC_(OpenIoCompletion, 3)
SVC_(OpenJobObject, 3) SVC_(OpenJobObject, 3)
SVC_(OpenKey, 3) SVC_(OpenKey, 3)
SVC_(OpenMutant, 3) SVC_(OpenMutant, 3)
SVC_(OpenObjectAuditAlarm, 12) SVC_(OpenObjectAuditAlarm, 12)
SVC_(OpenProcess, 4) SVC_(OpenProcess, 4)
SVC_(OpenProcessToken, 3) SVC_(OpenProcessToken, 3)
SVC_(OpenProcessTokenEx, 4) SVC_(OpenProcessTokenEx, 4)
SVC_(OpenSection, 3) SVC_(OpenSection, 3)
SVC_(OpenSemaphore, 3) SVC_(OpenSemaphore, 3)
SVC_(OpenSymbolicLinkObject, 3) SVC_(OpenSymbolicLinkObject, 3)
SVC_(OpenThread, 4) SVC_(OpenThread, 4)
SVC_(OpenThreadToken, 4) SVC_(OpenThreadToken, 4)
SVC_(OpenThreadTokenEx, 5) SVC_(OpenThreadTokenEx, 5)
SVC_(OpenTimer, 3) SVC_(OpenTimer, 3)
SVC_(PlugPlayControl, 3) SVC_(PlugPlayControl, 3)
SVC_(PowerInformation, 5) SVC_(PowerInformation, 5)
SVC_(PrivilegeCheck, 3) SVC_(PrivilegeCheck, 3)
SVC_(PrivilegeObjectAuditAlarm, 6) SVC_(PrivilegeObjectAuditAlarm, 6)
SVC_(PrivilegedServiceAuditAlarm, 5) SVC_(PrivilegedServiceAuditAlarm, 5)
SVC_(ProtectVirtualMemory, 5) SVC_(ProtectVirtualMemory, 5)
SVC_(PulseEvent, 2) SVC_(PulseEvent, 2)
SVC_(QueryAttributesFile, 2) SVC_(QueryAttributesFile, 2)
SVC_(QueryBootEntryOrder, 2) SVC_(QueryBootEntryOrder, 2)
SVC_(QueryBootOptions, 2) SVC_(QueryBootOptions, 2)
SVC_(QueryDebugFilterState, 2) SVC_(QueryDebugFilterState, 2)
SVC_(QueryDefaultLocale, 2) SVC_(QueryDefaultLocale, 2)
SVC_(QueryDefaultUILanguage, 1) SVC_(QueryDefaultUILanguage, 1)
SVC_(QueryDirectoryFile, 11) SVC_(QueryDirectoryFile, 11)
SVC_(QueryDirectoryObject, 7) SVC_(QueryDirectoryObject, 7)
SVC_(QueryDriverEntryOrder, 2) SVC_(QueryDriverEntryOrder, 2)
SVC_(QueryEaFile, 9) SVC_(QueryEaFile, 9)
SVC_(QueryEvent, 5) SVC_(QueryEvent, 5)
SVC_(QueryFullAttributesFile, 2) SVC_(QueryFullAttributesFile, 2)
SVC_(QueryInformationAtom, 5) SVC_(QueryInformationAtom, 5)
SVC_(QueryInformationFile, 5) SVC_(QueryInformationFile, 5)
SVC_(QueryInformationJobObject, 5) SVC_(QueryInformationJobObject, 5)
SVC_(QueryInformationPort, 5) SVC_(QueryInformationPort, 5)
SVC_(QueryInformationProcess, 5) SVC_(QueryInformationProcess, 5)
SVC_(QueryInformationThread, 5) SVC_(QueryInformationThread, 5)
SVC_(QueryInformationToken, 5) SVC_(QueryInformationToken, 5)
SVC_(QueryInstallUILanguage, 1) SVC_(QueryInstallUILanguage, 1)
SVC_(QueryIntervalProfile, 2) SVC_(QueryIntervalProfile, 2)
SVC_(QueryIoCompletion, 5) SVC_(QueryIoCompletion, 5)
SVC_(QueryKey, 5) SVC_(QueryKey, 5)
SVC_(QueryMultipleValueKey, 6) SVC_(QueryMultipleValueKey, 6)
SVC_(QueryMutant, 5) SVC_(QueryMutant, 5)
SVC_(QueryObject, 5) SVC_(QueryObject, 5)
SVC_(QueryOpenSubKeys, 2) SVC_(QueryOpenSubKeys, 2)
SVC_(QueryOpenSubKeysEx, 4) SVC_(QueryOpenSubKeysEx, 4)
SVC_(QueryPerformanceCounter, 2) SVC_(QueryPerformanceCounter, 2)
SVC_(QueryQuotaInformationFile, 9) SVC_(QueryQuotaInformationFile, 9)
SVC_(QuerySection, 5) SVC_(QuerySection, 5)
SVC_(QuerySecurityObject, 5) SVC_(QuerySecurityObject, 5)
SVC_(QuerySemaphore, 5) SVC_(QuerySemaphore, 5)
SVC_(QuerySymbolicLinkObject, 3) SVC_(QuerySymbolicLinkObject, 3)
SVC_(QuerySystemEnvironmentValue, 4) SVC_(QuerySystemEnvironmentValue, 4)
SVC_(QuerySystemEnvironmentValueEx, 5) SVC_(QuerySystemEnvironmentValueEx, 5)
SVC_(QuerySystemInformation, 4) SVC_(QuerySystemInformation, 4)
SVC_(QuerySystemTime, 1) SVC_(QuerySystemTime, 1)
SVC_(QueryTimer, 5) SVC_(QueryTimer, 5)
SVC_(QueryTimerResolution, 3) SVC_(QueryTimerResolution, 3)
SVC_(QueryValueKey, 6) SVC_(QueryValueKey, 6)
SVC_(QueryVirtualMemory, 6) SVC_(QueryVirtualMemory, 6)
SVC_(QueryVolumeInformationFile, 5) SVC_(QueryVolumeInformationFile, 5)
SVC_(QueueApcThread, 5) SVC_(QueueApcThread, 5)
SVC_(RaiseException, 3) SVC_(RaiseException, 3)
SVC_(RaiseHardError, 6) SVC_(RaiseHardError, 6)
SVC_(ReadFile, 9) SVC_(ReadFile, 9)
SVC_(ReadFileScatter, 9) SVC_(ReadFileScatter, 9)
SVC_(ReadRequestData, 6) SVC_(ReadRequestData, 6)
SVC_(ReadVirtualMemory, 5) SVC_(ReadVirtualMemory, 5)
SVC_(RegisterThreadTerminatePort, 1) SVC_(RegisterThreadTerminatePort, 1)
SVC_(ReleaseMutant, 2) SVC_(ReleaseMutant, 2)
SVC_(ReleaseSemaphore, 3) SVC_(ReleaseSemaphore, 3)
SVC_(RemoveIoCompletion, 5) SVC_(RemoveIoCompletion, 5)
SVC_(RemoveProcessDebug, 2) SVC_(RemoveProcessDebug, 2)
SVC_(RenameKey, 2) SVC_(RenameKey, 2)
SVC_(ReplaceKey, 3) SVC_(ReplaceKey, 3)
SVC_(ReplyPort, 2) SVC_(ReplyPort, 2)
SVC_(ReplyWaitReceivePort, 4) SVC_(ReplyWaitReceivePort, 4)
SVC_(ReplyWaitReceivePortEx, 5) SVC_(ReplyWaitReceivePortEx, 5)
SVC_(ReplyWaitReplyPort, 2) SVC_(ReplyWaitReplyPort, 2)
SVC_(RequestDeviceWakeup, 1) SVC_(RequestDeviceWakeup, 1)
SVC_(RequestPort, 2) SVC_(RequestPort, 2)
SVC_(RequestWaitReplyPort, 3) SVC_(RequestWaitReplyPort, 3)
SVC_(RequestWakeupLatency, 1) SVC_(RequestWakeupLatency, 1)
SVC_(ResetEvent, 2) SVC_(ResetEvent, 2)
SVC_(ResetWriteWatch, 3) SVC_(ResetWriteWatch, 3)
SVC_(RestoreKey, 3) SVC_(RestoreKey, 3)
SVC_(ResumeProcess, 1) SVC_(ResumeProcess, 1)
SVC_(ResumeThread, 2) SVC_(ResumeThread, 2)
SVC_(SaveKey, 2) SVC_(SaveKey, 2)
SVC_(SaveKeyEx, 3) SVC_(SaveKeyEx, 3)
SVC_(SaveMergedKeys, 3) SVC_(SaveMergedKeys, 3)
SVC_(SecureConnectPort, 9) SVC_(SecureConnectPort, 9)
SVC_(SetBootEntryOrder, 2) SVC_(SetBootEntryOrder, 2)
SVC_(SetBootOptions, 2) SVC_(SetBootOptions, 2)
SVC_(SetContextThread, 2) SVC_(SetContextThread, 2)
SVC_(SetDebugFilterState, 3) SVC_(SetDebugFilterState, 3)
SVC_(SetDefaultHardErrorPort, 1) SVC_(SetDefaultHardErrorPort, 1)
SVC_(SetDefaultLocale, 2) SVC_(SetDefaultLocale, 2)
SVC_(SetDefaultUILanguage, 1) SVC_(SetDefaultUILanguage, 1)
SVC_(SetDriverEntryOrder, 2) SVC_(SetDriverEntryOrder, 2)
SVC_(SetEaFile, 4) SVC_(SetEaFile, 4)
SVC_(SetEvent, 2) SVC_(SetEvent, 2)
SVC_(SetEventBoostPriority, 1) SVC_(SetEventBoostPriority, 1)
SVC_(SetHighEventPair, 1) SVC_(SetHighEventPair, 1)
SVC_(SetHighWaitLowEventPair, 1) SVC_(SetHighWaitLowEventPair, 1)
SVC_(SetInformationDebugObject, 5) SVC_(SetInformationDebugObject, 5)
SVC_(SetInformationFile, 5) SVC_(SetInformationFile, 5)
SVC_(SetInformationJobObject, 4) SVC_(SetInformationJobObject, 4)
SVC_(SetInformationKey, 4) SVC_(SetInformationKey, 4)
SVC_(SetInformationObject, 4) SVC_(SetInformationObject, 4)
SVC_(SetInformationProcess, 4) SVC_(SetInformationProcess, 4)
SVC_(SetInformationThread, 4) SVC_(SetInformationThread, 4)
SVC_(SetInformationToken, 4) SVC_(SetInformationToken, 4)
SVC_(SetIntervalProfile, 2) SVC_(SetIntervalProfile, 2)
SVC_(SetIoCompletion, 5) SVC_(SetIoCompletion, 5)
SVC_(SetLdtEntries, 6) SVC_(SetLdtEntries, 6)
SVC_(SetLowEventPair, 1) SVC_(SetLowEventPair, 1)
SVC_(SetLowWaitHighEventPair, 1) SVC_(SetLowWaitHighEventPair, 1)
SVC_(SetQuotaInformationFile, 4) SVC_(SetQuotaInformationFile, 4)
SVC_(SetSecurityObject, 3) SVC_(SetSecurityObject, 3)
SVC_(SetSystemEnvironmentValue, 2) SVC_(SetSystemEnvironmentValue, 2)
SVC_(SetSystemEnvironmentValueEx, 2) SVC_(SetSystemEnvironmentValueEx, 2)
SVC_(SetSystemInformation, 3) SVC_(SetSystemInformation, 3)
SVC_(SetSystemPowerState, 3) SVC_(SetSystemPowerState, 3)
SVC_(SetSystemTime, 2) SVC_(SetSystemTime, 2)
SVC_(SetThreadExecutionState, 2) SVC_(SetThreadExecutionState, 2)
SVC_(SetTimer, 7) SVC_(SetTimer, 7)
SVC_(SetTimerResolution, 3) SVC_(SetTimerResolution, 3)
SVC_(SetUuidSeed, 1) SVC_(SetUuidSeed, 1)
SVC_(SetValueKey, 6) SVC_(SetValueKey, 6)
SVC_(SetVolumeInformationFile, 5) SVC_(SetVolumeInformationFile, 5)
SVC_(ShutdownSystem, 1) SVC_(ShutdownSystem, 1)
SVC_(SignalAndWaitForSingleObject, 4) SVC_(SignalAndWaitForSingleObject, 4)
SVC_(StartProfile, 1) SVC_(StartProfile, 1)
SVC_(StopProfile, 1) SVC_(StopProfile, 1)
SVC_(SuspendProcess, 1) SVC_(SuspendProcess, 1)
SVC_(SuspendThread, 2) SVC_(SuspendThread, 2)
SVC_(SystemDebugControl, 6) SVC_(SystemDebugControl, 6)
SVC_(TerminateJobObject, 2) SVC_(TerminateJobObject, 2)
SVC_(TerminateProcess, 2) SVC_(TerminateProcess, 2)
SVC_(TerminateThread, 2) SVC_(TerminateThread, 2)
SVC_(TestAlert, 0) SVC_(TestAlert, 0)
SVC_(TraceEvent, 4) SVC_(TraceEvent, 4)
SVC_(TranslateFilePath, 4) SVC_(TranslateFilePath, 4)
SVC_(UnloadDriver, 1) SVC_(UnloadDriver, 1)
SVC_(UnloadKey, 1) SVC_(UnloadKey, 1)
SVC_(UnloadKey2, 2) SVC_(UnloadKey2, 2)
SVC_(UnloadKeyEx, 2) SVC_(UnloadKeyEx, 2)
SVC_(UnlockFile, 5) SVC_(UnlockFile, 5)
SVC_(UnlockVirtualMemory, 4) SVC_(UnlockVirtualMemory, 4)
SVC_(UnmapViewOfSection, 2) SVC_(UnmapViewOfSection, 2)
SVC_(VdmControl, 2) SVC_(VdmControl, 2)
SVC_(WaitForDebugEvent, 4) SVC_(WaitForDebugEvent, 4)
SVC_(WaitForMultipleObjects, 5) SVC_(WaitForMultipleObjects, 5)
SVC_(WaitForSingleObject, 3) SVC_(WaitForSingleObject, 3)
SVC_(WaitHighEventPair, 1) SVC_(WaitHighEventPair, 1)
SVC_(WaitLowEventPair, 1) SVC_(WaitLowEventPair, 1)
SVC_(WriteFile, 9) SVC_(WriteFile, 9)
SVC_(WriteFileGather, 9) SVC_(WriteFileGather, 9)
SVC_(WriteRequestData, 6) SVC_(WriteRequestData, 6)
SVC_(WriteVirtualMemory, 5) SVC_(WriteVirtualMemory, 5)
SVC_(YieldExecution, 0) SVC_(YieldExecution, 0)
SVC_(CreateKeyedEvent, 4) SVC_(CreateKeyedEvent, 4)
SVC_(OpenKeyedEvent, 3) SVC_(OpenKeyedEvent, 3)
SVC_(ReleaseKeyedEvent, 4) SVC_(ReleaseKeyedEvent, 4)
SVC_(WaitForKeyedEvent, 4) SVC_(WaitForKeyedEvent, 4)
SVC_(QueryPortInformationProcess, 0) SVC_(QueryPortInformationProcess, 0)
SVC_(GetCurrentProcessorNumber, 0) SVC_(GetCurrentProcessorNumber, 0)
SVC_(WaitForMultipleObjects32, 5) SVC_(WaitForMultipleObjects32, 5)

View file

@ -1,12 +1,23 @@
#include <asm.inc>
#include <syscalls.inc> #include <syscalls.inc>
#ifdef _M_ARM
TEXTAREA
#define SVC_(name, argcount) STUB_U name
#include <sysfuncs.h>
END
#else
.code .code
SyscallId = 0
#define SVC_(name, argcount) STUB_U name, argcount #define SVC_(name, argcount) STUB_U name, argcount
#include <sysfuncs.h> #include <sysfuncs.h>
END END
#endif

View file

@ -1,7 +1,18 @@
#include <asm.inc>
#include <syscalls.inc> #include <syscalls.inc>
#ifdef _M_ARM
TEXTAREA
#define SVC_(name, argcount) STUB_U name
#include "w32ksvc.h"
END
#else
.code .code
SyscallId = HEX(1000) SyscallId = HEX(1000)
@ -9,4 +20,6 @@ SyscallId = HEX(1000)
#include "w32ksvc.h" #include "w32ksvc.h"
END END
#endif

File diff suppressed because it is too large Load diff