fix mmap error case

This commit is contained in:
Ryan Fleury
2024-07-18 14:45:16 -07:00
parent 4835264059
commit d143fec0d1
2 changed files with 19 additions and 1 deletions
+3 -1
View File
@@ -49,7 +49,8 @@ commands =
{ {
//.win = "build rdi_from_pdb rdi_dump && pushd build && rdi_from_pdb --pdb:mule_main.pdb --out:mule_main.rdi && rdi_dump mule_main.rdi > mule_main.dump && popd", //.win = "build rdi_from_pdb rdi_dump && pushd build && rdi_from_pdb --pdb:mule_main.pdb --out:mule_main.rdi && rdi_dump mule_main.rdi > mule_main.dump && popd",
//.win = "build raddbg telemetry", //.win = "build raddbg telemetry",
.win = "build ryan_scratch", //.win = "build ryan_scratch",
.win = "wsl ./build.sh ryan_scratch",
.linux = "", .linux = "",
.out = "*compilation*", .out = "*compilation*",
.footer_panel = true, .footer_panel = true,
@@ -69,6 +70,7 @@ commands =
{ {
// .win = "pushd build && raddbg.exe --user:local_dev.raddbg_user --project:local_dev.raddbg_project && popd", // .win = "pushd build && raddbg.exe --user:local_dev.raddbg_user --project:local_dev.raddbg_project && popd",
.win = "pushd build && ryan_scratch.exe && popd", .win = "pushd build && ryan_scratch.exe && popd",
.win = "wsl ./build/ryan_scratch",
.linux = "", .linux = "",
.out = "*compilation*", .out = "*compilation*",
.footer_panel = true, .footer_panel = true,
+16
View File
@@ -162,6 +162,10 @@ internal void *
os_reserve(U64 size) os_reserve(U64 size)
{ {
void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
if(result == MAP_FAILED)
{
result = 0;
}
return result; return result;
} }
@@ -191,6 +195,10 @@ internal void *
os_reserve_large(U64 size) os_reserve_large(U64 size)
{ {
void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0); void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0);
if(result == MAP_FAILED)
{
result = 0;
}
return result; return result;
} }
@@ -497,6 +505,10 @@ os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range)
if(flags & OS_AccessFlag_Read) { prot_flags |= PROT_READ; } if(flags & OS_AccessFlag_Read) { prot_flags |= PROT_READ; }
int map_flags = MAP_PRIVATE; int map_flags = MAP_PRIVATE;
void *base = mmap(0, dim_1u64(range), prot_flags, map_flags, fd, range.min); void *base = mmap(0, dim_1u64(range), prot_flags, map_flags, fd, range.min);
if(base == MAP_FAILED)
{
base = 0;
}
return base; return base;
} }
@@ -637,6 +649,10 @@ os_shared_memory_view_open(OS_Handle handle, Rng1U64 range)
if(os_handle_match(handle, os_handle_zero())){return 0;} if(os_handle_match(handle, os_handle_zero())){return 0;}
int id = (int)handle.u64[0]; int id = (int)handle.u64[0];
void *base = mmap(0, dim_1u64(range), PROT_READ|PROT_WRITE, MAP_SHARED, id, range.min); void *base = mmap(0, dim_1u64(range), PROT_READ|PROT_WRITE, MAP_SHARED, id, range.min);
if(base == MAP_FAILED)
{
base = 0;
}
return base; return base;
} }