| author | |
| committer | |
| log | 1cc388d5263058f9e9eecc410eea825a9a58e143 |
| tree | 90a02eaeeb263bd175a9525fd27e16d8eb269acb |
| parent | ecc76348e6858f00b920d8dc9e44a6e703d8e497 |
3 files changed, 10 insertions(+), 2 deletions(-)
lib/std/Thread.zig+1| ... | ... | @@ -1420,6 +1420,7 @@ const LinuxThreadImpl = struct { |
| 1420 | 1420 | error.PermissionDenied => unreachable, |
| 1421 | 1421 | error.ProcessFdQuotaExceeded => unreachable, |
| 1422 | 1422 | error.SystemFdQuotaExceeded => unreachable, |
| 1423 | error.MappingAlreadyExists => unreachable, | |
| 1423 | 1424 | else => |e| return e, |
| 1424 | 1425 | }; |
| 1425 | 1426 | assert(mapped.len >= map_bytes); |
lib/std/debug/Dwarf.zig+5-2| ... | ... | @@ -2434,14 +2434,17 @@ pub const ElfModule = struct { |
| 2434 | 2434 | const end_pos = elf_file.getEndPos() catch return bad(); |
| 2435 | 2435 | const file_len = cast(usize, end_pos) orelse return error.Overflow; |
| 2436 | 2436 | |
| 2437 | const mapped_mem = try std.posix.mmap( | |
| 2437 | const mapped_mem = std.posix.mmap( | |
| 2438 | 2438 | null, |
| 2439 | 2439 | file_len, |
| 2440 | 2440 | std.posix.PROT.READ, |
| 2441 | 2441 | .{ .TYPE = .SHARED }, |
| 2442 | 2442 | elf_file.handle, |
| 2443 | 2443 | 0, |
| 2444 | ); | |
| 2444 | ) catch |err| switch (err) { | |
| 2445 | error.MappingAlreadyExists => unreachable, | |
| 2446 | else => |e| return e, | |
| 2447 | }; | |
| 2445 | 2448 | errdefer std.posix.munmap(mapped_mem); |
| 2446 | 2449 | |
| 2447 | 2450 | return load( |
lib/std/posix.zig+4| ... | ... | @@ -4754,6 +4754,9 @@ pub const MMapError = error{ |
| 4754 | 4754 | ProcessFdQuotaExceeded, |
| 4755 | 4755 | SystemFdQuotaExceeded, |
| 4756 | 4756 | OutOfMemory, |
| 4757 | ||
| 4758 | /// Using FIXED_NOREPLACE flag and the process has already mapped memory at the given address | |
| 4759 | MappingAlreadyExists, | |
| 4757 | 4760 | } || UnexpectedError; |
| 4758 | 4761 | |
| 4759 | 4762 | /// Map files or devices into memory. |
| ... | ... | @@ -4792,6 +4795,7 @@ pub fn mmap( |
| 4792 | 4795 | .MFILE => return error.ProcessFdQuotaExceeded, |
| 4793 | 4796 | .NFILE => return error.SystemFdQuotaExceeded, |
| 4794 | 4797 | .NOMEM => return error.OutOfMemory, |
| 4798 | .EXIST => return error.MappingAlreadyExists, | |
| 4795 | 4799 | else => return unexpectedErrno(err), |
| 4796 | 4800 | } |
| 4797 | 4801 | } |