mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-10-07 06:57:20 +00:00
Use better memory strategy on Windows
Rather than using the the rollo global to pick addresses, we select them randomly now using a conservative vaspace.
This commit is contained in:
parent
6a5d4ed65b
commit
2018cac11f
13 changed files with 113 additions and 124 deletions
|
@ -54,6 +54,8 @@ TEST(munmap, test) {
|
|||
}
|
||||
|
||||
TEST(munmap, punchHoleInMemory) {
|
||||
if (IsWindows())
|
||||
return; // needs carving
|
||||
char *p;
|
||||
ASSERT_NE(MAP_FAILED, (p = mmap(0, gransz * 3, PROT_READ | PROT_WRITE,
|
||||
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)));
|
||||
|
@ -72,6 +74,8 @@ TEST(munmap, punchHoleInMemory) {
|
|||
}
|
||||
|
||||
TEST(munmap, memoryHasHole) {
|
||||
if (IsWindows())
|
||||
return; // needs carving
|
||||
char *p;
|
||||
ASSERT_NE(MAP_FAILED, (p = mmap(0, gransz * 3, PROT_READ | PROT_WRITE,
|
||||
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)));
|
||||
|
@ -86,6 +90,8 @@ TEST(munmap, memoryHasHole) {
|
|||
}
|
||||
|
||||
TEST(munmap, blanketFree) {
|
||||
if (IsWindows())
|
||||
return; // needs carving
|
||||
char *p;
|
||||
ASSERT_NE(MAP_FAILED, (p = mmap(0, gransz * 3, PROT_READ | PROT_WRITE,
|
||||
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)));
|
||||
|
@ -104,6 +110,8 @@ TEST(munmap, blanketFree) {
|
|||
}
|
||||
|
||||
TEST(munmap, trimLeft) {
|
||||
if (IsWindows())
|
||||
return; // needs carving
|
||||
char *p;
|
||||
ASSERT_NE(MAP_FAILED, (p = mmap(0, gransz * 2, PROT_READ | PROT_WRITE,
|
||||
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)));
|
||||
|
@ -118,6 +126,8 @@ TEST(munmap, trimLeft) {
|
|||
}
|
||||
|
||||
TEST(munmap, trimRight) {
|
||||
if (IsWindows())
|
||||
return; // needs carving
|
||||
char *p;
|
||||
ASSERT_NE(MAP_FAILED, (p = mmap(0, gransz * 2, PROT_READ | PROT_WRITE,
|
||||
MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)));
|
||||
|
@ -173,7 +183,7 @@ TEST(munmap, tinyFile_preciseUnmapSize) {
|
|||
|
||||
// clang-format off
|
||||
TEST(munmap, tinyFile_mapThriceUnmapOnce) {
|
||||
char *p = randaddr();
|
||||
char *p = __maps_randaddr();
|
||||
ASSERT_SYS(0, 3, open("doge", O_RDWR | O_CREAT | O_TRUNC, 0644));
|
||||
ASSERT_SYS (0, 5, write(3, "hello", 5));
|
||||
ASSERT_EQ(p+gransz*0, mmap(p+gransz*0, gransz, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue