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

22
libc/nt/struct/afd.h Normal file
View file

@ -0,0 +1,22 @@
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_AFD_H_
#define COSMOPOLITAN_LIBC_NT_STRUCT_AFD_H_
#include "libc/nt/enum/status.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
struct NtAfdPollHandleInfo {
int64_t Handle;
uint32_t Events;
NtStatus Status;
};
struct NtAfdPollInfo {
int64_t Timeout;
uint32_t NumberOfHandles;
uint32_t Exclusive;
struct NtAfdPollHandleInfo Handles[1];
};
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_NT_STRUCT_AFD_H_ */

View file

@ -1,9 +1,8 @@
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_CRITICALSECTION_H_
#define COSMOPOLITAN_LIBC_NT_STRUCT_CRITICALSECTION_H_
#include "libc/nt/struct/criticalsectiondebug.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
struct NtCriticalSectionDebug;
struct NtCriticalSection {
struct NtCriticalSectionDebug *DebugInfo;
int32_t LockCount;

View file

@ -1,10 +1,9 @@
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_CRITICALSECTIONDEBUG_H_
#define COSMOPOLITAN_LIBC_NT_STRUCT_CRITICALSECTIONDEBUG_H_
#include "libc/nt/struct/criticalsection.h"
#include "libc/nt/struct/linkedlist.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
struct NtCriticalSection;
struct NtCriticalSectionDebug {
uint16_t Type;
uint16_t CreatorBackTraceIndex;

View file

@ -1,13 +1,12 @@
#ifndef COSMOPOLITAN_LIBC_NT_I_OBJECTATTRIBUTES_H_
#define COSMOPOLITAN_LIBC_NT_I_OBJECTATTRIBUTES_H_
#include "libc/nt/struct/rtluserprocessparameters.h"
#include "libc/nt/struct/securityattributes.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
struct NtUnicodeString;
struct NtSecurityDescriptor;
struct NtObjectAttributes {
uint32_t Length;
void *RootDirectory;
int64_t RootDirectory;
struct NtUnicodeString *ObjectName;
uint32_t Attributes; /* OBJ_INHERIT, etc. */
struct NtSecurityDescriptor *SecurityDescriptor;

View file

@ -1,9 +1,8 @@
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_RTLUSERPROCESSPARAMETERS_H_
#define COSMOPOLITAN_LIBC_NT_STRUCT_RTLUSERPROCESSPARAMETERS_H_
#include "libc/nt/struct/unicodestring.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
struct NtUnicodeString;
struct NtRtlUserProcessParameters {
uint32_t MaximumLength;
uint32_t Length;

View file

@ -1,9 +1,8 @@
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_SECURITYATTRIBUTES_H_
#define COSMOPOLITAN_LIBC_NT_STRUCT_SECURITYATTRIBUTES_H_
#include "libc/nt/struct/securitydescriptor.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
struct NtSecurityDescriptor;
struct NtSecurityAttributes {
uint32_t nLength;
struct NtSecurityDescriptor *lpSecurityDescriptor;

View file

@ -1,9 +1,8 @@
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_SECURITYDESCRIPTOR_H_
#define COSMOPOLITAN_LIBC_NT_STRUCT_SECURITYDESCRIPTOR_H_
#include "libc/nt/struct/acl.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
struct NtAcl;
struct NtSecurityDescriptor {
uint8_t Revision;
uint8_t Sbz1;