Add epoll and do more release readiness changes

This change also pays off some of the remaining technical debt with
stdio, file descriptors, and memory managemnt polyfills.
This commit is contained in:
Justine Tunney 2020-11-28 12:01:51 -08:00
parent a9ea949df8
commit 3e4fd4b0ad
271 changed files with 5706 additions and 1365 deletions

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_AcquireSRWLockExclusive,AcquireSRWLockExclusive,683
.text.windows
AcquireSRWLockExclusive:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_AcquireSRWLockExclusive(%rip)
leave
ret
.endfn AcquireSRWLockExclusive,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_AcquireSRWLockShared,AcquireSRWLockShared,684
.text.windows
AcquireSRWLockShared:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_AcquireSRWLockShared(%rip)
leave
ret
.endfn AcquireSRWLockShared,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_DeleteCriticalSection,DeleteCriticalSection,0
.text.windows
DeleteCriticalSection:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_DeleteCriticalSection(%rip)
leave
ret
.endfn DeleteCriticalSection,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_EnterCriticalSection,EnterCriticalSection,0
.text.windows
EnterCriticalSection:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_EnterCriticalSection(%rip)
leave
ret
.endfn EnterCriticalSection,globl
.previous

View file

@ -1,2 +1,14 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_GetTickCount64,GetTickCount64,780
.text.windows
GetTickCount64:
push %rbp
mov %rsp,%rbp
.profilable
sub $32,%rsp
call *__imp_GetTickCount64(%rip)
leave
ret
.endfn GetTickCount64,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_InitializeCriticalSection,InitializeCriticalSection,0
.text.windows
InitializeCriticalSection:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_InitializeCriticalSection(%rip)
leave
ret
.endfn InitializeCriticalSection,globl
.previous

View file

@ -1,5 +1,5 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_InitializeCriticalSectionAndSpinCount,InitializeCriticalSectionAndSpinCount,856
.imp KernelBase,__imp_InitializeCriticalSectionAndSpinCount,InitializeCriticalSectionAndSpinCount,0
.text.windows
InitializeCriticalSectionAndSpinCount:

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_InitializeSRWLock,InitializeSRWLock,1128
.text.windows
InitializeSRWLock:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_InitializeSRWLock(%rip)
leave
ret
.endfn InitializeSRWLock,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_LeaveCriticalSection,LeaveCriticalSection,0
.text.windows
LeaveCriticalSection:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_LeaveCriticalSection(%rip)
leave
ret
.endfn LeaveCriticalSection,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_ReleaseSRWLockExclusive,ReleaseSRWLockExclusive,1341
.text.windows
ReleaseSRWLockExclusive:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_ReleaseSRWLockExclusive(%rip)
leave
ret
.endfn ReleaseSRWLockExclusive,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_ReleaseSRWLockShared,ReleaseSRWLockShared,1342
.text.windows
ReleaseSRWLockShared:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_ReleaseSRWLockShared(%rip)
leave
ret
.endfn ReleaseSRWLockShared,globl
.previous

View file

@ -0,0 +1,12 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_SetCriticalSectionSpinCount,SetCriticalSectionSpinCount,0
.text.windows
SetCriticalSectionSpinCount:
push %rbp
mov %rsp,%rbp
.profilable
mov __imp_SetCriticalSectionSpinCount(%rip),%rax
jmp __sysv2nt
.endfn SetCriticalSectionSpinCount,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_TryAcquireSRWLockExclusive,TryAcquireSRWLockExclusive,1467
.text.windows
TryAcquireSRWLockExclusive:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_TryAcquireSRWLockExclusive(%rip)
leave
ret
.endfn TryAcquireSRWLockExclusive,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_TryAcquireSRWLockShared,TryAcquireSRWLockShared,1468
.text.windows
TryAcquireSRWLockShared:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_TryAcquireSRWLockShared(%rip)
leave
ret
.endfn TryAcquireSRWLockShared,globl
.previous

View file

@ -0,0 +1,15 @@
.include "o/libc/nt/codegen.inc"
.imp KernelBase,__imp_TryEnterCriticalSection,TryEnterCriticalSection,0
.text.windows
TryEnterCriticalSection:
push %rbp
mov %rsp,%rbp
.profilable
mov %rdi,%rcx
sub $32,%rsp
call *__imp_TryEnterCriticalSection(%rip)
leave
ret
.endfn TryEnterCriticalSection,globl
.previous