diff --git a/libc/nt/kernel32/MapViewOfFile3.S b/libc/nt/API-MS-Win-Core-Memory-l1-1-6/MapViewOfFile3.S similarity index 79% rename from libc/nt/kernel32/MapViewOfFile3.S rename to libc/nt/API-MS-Win-Core-Memory-l1-1-6/MapViewOfFile3.S index 2b242dfd3..059fe827c 100644 --- a/libc/nt/kernel32/MapViewOfFile3.S +++ b/libc/nt/API-MS-Win-Core-Memory-l1-1-6/MapViewOfFile3.S @@ -1,5 +1,5 @@ #include "libc/nt/codegen.h" -.imp kernel32,__imp_MapViewOfFile3,MapViewOfFile3 +.imp API-MS-Win-Core-Memory-l1-1-6,__imp_MapViewOfFile3,MapViewOfFile3 .text.windows .ftrace1 diff --git a/libc/nt/kernel32/VirtualAlloc2.S b/libc/nt/API-MS-Win-Core-Memory-l1-1-6/VirtualAlloc2.S similarity index 79% rename from libc/nt/kernel32/VirtualAlloc2.S rename to libc/nt/API-MS-Win-Core-Memory-l1-1-6/VirtualAlloc2.S index 77b2af26c..755aafb20 100644 --- a/libc/nt/kernel32/VirtualAlloc2.S +++ b/libc/nt/API-MS-Win-Core-Memory-l1-1-6/VirtualAlloc2.S @@ -1,5 +1,5 @@ #include "libc/nt/codegen.h" -.imp kernel32,__imp_VirtualAlloc2,VirtualAlloc2 +.imp API-MS-Win-Core-Memory-l1-1-6,__imp_VirtualAlloc2,VirtualAlloc2 .text.windows .ftrace1 diff --git a/libc/nt/BUILD.mk b/libc/nt/BUILD.mk index feaa79e24..f6bd28be4 100644 --- a/libc/nt/BUILD.mk +++ b/libc/nt/BUILD.mk @@ -158,6 +158,27 @@ $(LIBC_NT_SYNCHRONIZATION_A).pkg: \ #─────────────────────────────────────────────────────────────────────────────── +LIBC_NT_ARTIFACTS += LIBC_NT_MEMORY_A +LIBC_NT_MEMORY = $(LIBC_NT_MEMORY_A_DEPS) $(LIBC_NT_MEMORY_A) +LIBC_NT_MEMORY_A = o/$(MODE)/libc/nt/memory.a +LIBC_NT_MEMORY_A_SRCS := $(wildcard libc/nt/API-MS-Win-Core-Memory-l1-1-6/*.S) +LIBC_NT_MEMORY_A_OBJS = $(LIBC_NT_MEMORY_A_SRCS:%.S=o/$(MODE)/%.o) +LIBC_NT_MEMORY_A_CHECKS = $(LIBC_NT_MEMORY_A).pkg +LIBC_NT_MEMORY_A_DIRECTDEPS = LIBC_NT_KERNEL32 +LIBC_NT_MEMORY_A_DEPS := \ + $(call uniq,$(foreach x,$(LIBC_NT_MEMORY_A_DIRECTDEPS),$($(x)))) + +$(LIBC_NT_MEMORY_A): \ + libc/nt/API-MS-Win-Core-Memory-l1-1-6/ \ + $(LIBC_NT_MEMORY_A).pkg \ + $(LIBC_NT_MEMORY_A_OBJS) + +$(LIBC_NT_MEMORY_A).pkg: \ + $(LIBC_NT_MEMORY_A_OBJS) \ + $(foreach x,$(LIBC_NT_MEMORY_A_DIRECTDEPS),$($(x)_A).pkg) + +#─────────────────────────────────────────────────────────────────────────────── + LIBC_NT_ARTIFACTS += LIBC_NT_USER32_A LIBC_NT_USER32 = $(LIBC_NT_USER32_A_DEPS) $(LIBC_NT_USER32_A) LIBC_NT_USER32_A = o/$(MODE)/libc/nt/user32.a diff --git a/libc/nt/enum/memflags.h b/libc/nt/enum/memflags.h index fffb09ef9..7d7f11f61 100644 --- a/libc/nt/enum/memflags.h +++ b/libc/nt/enum/memflags.h @@ -16,6 +16,7 @@ #define kNtMemLargePages 0x20000000 #define kNtMem4mbPages 0x80000000 +#define kNtMemReservePlaceholder 0x00040000 #define kNtMemReplacePlaceholder 0x00004000 #endif /* COSMOPOLITAN_LIBC_NT_ENUM_MEMFLAGS_H_ */ diff --git a/libc/nt/master.sh b/libc/nt/master.sh index 21a07cdcd..4f44cc057 100755 --- a/libc/nt/master.sh +++ b/libc/nt/master.sh @@ -205,7 +205,6 @@ imp 'LoadResource' LoadResource kernel32 2 imp 'LocalFree' LocalFree kernel32 1 imp 'LockFile' LockFile kernel32 5 imp 'LockResource' LockResource kernel32 1 -imp 'MapViewOfFile3' MapViewOfFile3 kernel32 9 imp 'MoveFile' MoveFileW kernel32 2 imp 'MultiByteToWideChar' MultiByteToWideChar kernel32 6 imp 'OfferVirtualMemory' OfferVirtualMemory kernel32 3 @@ -296,7 +295,6 @@ imp 'UnmapViewOfFile2' UnmapViewOfFile2 kernel32 2 imp 'UnmapViewOfFileEx' UnmapViewOfFileEx kernel32 3 imp 'UpdateProcThreadAttribute' UpdateProcThreadAttribute kernel32 7 imp 'VirtualAlloc' VirtualAlloc kernel32 4 -imp 'VirtualAlloc2' VirtualAlloc2 kernel32 7 imp 'VirtualAllocEx' VirtualAllocEx kernel32 5 imp 'VirtualFree' VirtualFree kernel32 3 imp 'VirtualLock' VirtualLock kernel32 2 @@ -629,6 +627,12 @@ imp 'WaitOnAddress' WaitOnAddress API-MS-Win-Core-Synch-l1-2-0 4 imp 'WakeByAddressAll' WakeByAddressAll API-MS-Win-Core-Synch-l1-2-0 1 imp 'WakeByAddressSingle' WakeByAddressSingle API-MS-Win-Core-Synch-l1-2-0 1 +# API-MS-Win-Core-Memory-l1-1-6.dll (Windows 10+) +# +# Name Actual DLL Arity +imp 'MapViewOfFile3' MapViewOfFile3 API-MS-Win-Core-Memory-l1-1-6 9 +imp 'VirtualAlloc2' VirtualAlloc2 API-MS-Win-Core-Memory-l1-1-6 7 + # NTDLL.DLL # BEYOND THE PALE #