Get Redbean fork() working on the New Technology

Now that we have understandable system call tracing on Windows, this
change rewrites many of the polyfill internals for that platform, to
help things get closer to tip top shape. Support for complex forking
scenarios had been in a regressed state for quite some time. Now, it
works! Subsequent changes should be able to address the performance.
This commit is contained in:
Justine Tunney 2022-03-20 08:01:14 -07:00
parent efedef6e65
commit 0cb6b6ff4b
84 changed files with 1340 additions and 338 deletions

View file

@ -2,25 +2,25 @@
#define COSMOPOLITAN_LIBC_NT_ENUM_PAGEFLAGS_H_
/* Pick One */
#define kNtPageNoaccess 0x01
#define kNtPageReadonly 0x02
#define kNtPageReadwrite 0x04
#define kNtPageWritecopy 0x08
#define kNtPageExecute 0x10
#define kNtPageExecuteRead 0x20
#define kNtPageExecuteReadwrite 0x40
#define kNtPageExecuteWritecopy 0x80
#define kNtPageGuard 0x100
#define kNtPageNocache 0x200
#define kNtPageWritecombine 0x400
#define kNtPageNoaccess 0x001
#define kNtPageReadonly 0x002
#define kNtPageReadwrite 0x004
#define kNtPageWritecopy 0x008
#define kNtPageExecute 0x010
#define kNtPageExecuteRead 0x020
#define kNtPageExecuteReadwrite 0x040
#define kNtPageExecuteWritecopy 0x080
#define kNtPageGuard 0x100
#define kNtPageNocache 0x200
#define kNtPageWritecombine 0x400
/* These may be OR'd */
#define kNtSecReserve 0x4000000
#define kNtSecCommit 0x8000000 /* ←default */
#define kNtSecImage 0x1000000
#define kNtSecReserve 0x04000000
#define kNtSecCommit 0x08000000 /* default */
#define kNtSecImageNoExecute 0x11000000
#define kNtSecLargePages 0x80000000
#define kNtSecNocache 0x10000000
#define kNtSecWritecombine 0x40000000
#define kNtSecImage 0x01000000
#define kNtSecNocache 0x10000000
#define kNtSecLargePages 0x80000000
#define kNtSecWritecombine 0x40000000
#endif /* COSMOPOLITAN_LIBC_NT_ENUM_PAGEFLAGS_H_ */