Improve system call support on NT

- Improve i/o perf on New Technology
- Code cleanup on read() for New Technology
- Fix bad bug with dup() of socket on New Technology
- Clean up some more strace errors on New Technology
This commit is contained in:
Justine Tunney 2022-04-07 20:30:04 -07:00
parent 29bf8b1a30
commit 4f98ad1054
79 changed files with 707 additions and 197 deletions

View file

@ -2,11 +2,11 @@
.imp kernel32,__imp_CreateDirectoryW,CreateDirectoryW,0
.text.windows
CreateDirectory:
__CreateDirectory:
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_CreateDirectoryW(%rip),%rax
jmp __sysv2nt
.endfn CreateDirectory,globl
.endfn __CreateDirectory,globl
.previous

View file

@ -2,11 +2,11 @@
.imp kernel32,__imp_CreateProcessW,CreateProcessW,0
.text.windows
CreateProcess:
__CreateProcess:
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_CreateProcessW(%rip),%rax
jmp __sysv2nt10
.endfn CreateProcess,globl
.endfn __CreateProcess,globl
.previous

View file

@ -2,11 +2,11 @@
.imp kernel32,__imp_DeviceIoControl,DeviceIoControl,0
.text.windows
DeviceIoControl:
__DeviceIoControl:
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_DeviceIoControl(%rip),%rax
jmp __sysv2nt8
.endfn DeviceIoControl,globl
.endfn __DeviceIoControl,globl
.previous

View file

@ -2,7 +2,7 @@
.imp kernel32,__imp_GetFileAttributesW,GetFileAttributesW,0
.text.windows
GetFileAttributes:
__GetFileAttributes:
push %rbp
mov %rsp,%rbp
.profilable
@ -11,5 +11,5 @@ GetFileAttributes:
call *__imp_GetFileAttributesW(%rip)
leave
ret
.endfn GetFileAttributes,globl
.endfn __GetFileAttributes,globl
.previous

View file

@ -560,7 +560,7 @@ imp 'CreateDialogIndirectParamAor' CreateDialogIndirectParamAorW user32 1
imp 'CreateDialogIndirectParam' CreateDialogIndirectParamW user32 1612
imp 'CreateDialogParamA' CreateDialogParamA user32 1613
imp 'CreateDialogParam' CreateDialogParamW user32 1614
imp 'CreateDirectory' CreateDirectoryW kernel32 0 2 # KernelBase
imp '__CreateDirectory' CreateDirectoryW kernel32 0 2 # KernelBase
imp 'CreateDirectoryA' CreateDirectoryA kernel32 0 2 # KernelBase
imp 'CreateDirectoryExA' CreateDirectoryExA kernel32 182
imp 'CreateDirectoryEx' CreateDirectoryExW kernel32 0 # KernelBase
@ -643,7 +643,7 @@ imp 'CreatePrivateObjectSecurity' CreatePrivateObjectSecurity advapi32 0
imp 'CreatePrivateObjectSecurityEx' CreatePrivateObjectSecurityEx advapi32 0 # KernelBase
imp 'CreatePrivateObjectSecurityWithMultipleInheritance' CreatePrivateObjectSecurityWithMultipleInheritance advapi32 0 # KernelBase
imp 'CreateProcessA' CreateProcessA kernel32 0 10 # KernelBase
imp 'CreateProcess' CreateProcessW kernel32 0 10 # KernelBase
imp '__CreateProcess' CreateProcessW kernel32 0 10 # KernelBase
imp 'CreateProcessAsUserA' CreateProcessAsUserA advapi32 0 11 # KernelBase
imp 'CreateProcessAsUser' CreateProcessAsUserW advapi32 0 11 # KernelBase
imp 'CreateProcessInternal' CreateProcessInternalW KernelBase 211
@ -1218,7 +1218,7 @@ imp 'DestroyPrivateObjectSecurity' DestroyPrivateObjectSecurity advapi32 0
imp 'DestroyReasons' DestroyReasons user32 1689
imp 'DestroyWindow' DestroyWindow user32 1690 1
imp 'DeviceCapabilitiesExA' DeviceCapabilitiesExA gdi32 1391
imp 'DeviceIoControl' DeviceIoControl kernel32 0 8 # KernelBase
imp '__DeviceIoControl' DeviceIoControl kernel32 0 8 # KernelBase
imp 'DialogBoxIndirectParamA' DialogBoxIndirectParamA user32 1691
imp 'DialogBoxIndirectParamAor' DialogBoxIndirectParamAorW user32 1692
imp 'DialogBoxIndirectParam' DialogBoxIndirectParamW user32 1693
@ -2121,7 +2121,7 @@ imp 'GetExtensionProperty' GetExtensionProperty KernelBase 540
imp 'GetExtensionProperty2' GetExtensionProperty2 KernelBase 541
imp 'GetFallbackDisplayName' GetFallbackDisplayName KernelBase 542
imp 'GetFileAttributesA' GetFileAttributesA kernel32 0 1 # KernelBase
imp 'GetFileAttributes' GetFileAttributesW kernel32 0 1 # KernelBase
imp '__GetFileAttributes' GetFileAttributesW kernel32 0 1 # KernelBase
imp 'GetFileAttributesExA' GetFileAttributesExA kernel32 0 3 # KernelBase
imp 'GetFileAttributesEx' GetFileAttributesExW kernel32 0 3 # KernelBase
imp 'GetFileAttributesTransactedA' GetFileAttributesTransactedA kernel32 583

View file

@ -15,8 +15,5 @@ extern typeof(SetPriorityClass) *const __imp_SetPriorityClass __msabi;
#define GetCurrentProcessId(...) __imp_GetCurrentProcessId(__VA_ARGS__)
extern typeof(GetCurrentProcessId) *const __imp_GetCurrentProcessId __msabi;
#define CreateProcess(...) __imp_CreateProcessW(__VA_ARGS__)
extern typeof(CreateProcess) *const __imp_CreateProcessW __msabi;
extern typeof(FormatMessage) *const __imp_FormatMessageW __msabi;
extern typeof(SetLastError) *const __imp_SetLastError __msabi;