ladybird/Kernel/API/POSIX
Daniel Bertalan 77f9272aaf Kernel+UE: Add MAP_FIXED_NOREPLACE mmap() flag
This feature was introduced in version 4.17 of the Linux kernel, and
while it's not specified by POSIX, I think it will be a nice addition to
our system.

MAP_FIXED_NOREPLACE provides a less error-prone alternative to
MAP_FIXED: while regular fixed mappings would cause any intersecting
ranges to be unmapped, MAP_FIXED_NOREPLACE returns EEXIST instead. This
ensures that we don't corrupt our process's address space if something
is already at the requested address.

Note that the more portable way to do this is to use regular
MAP_ANONYMOUS, and check afterwards whether the returned address matches
what we wanted. This, however, has a large performance impact on
programs like Wine which try to reserve large portions of the address
space at once, as the non-matching addresses have to be unmapped
separately.
2021-12-23 23:08:10 +01:00
..
net Kernel+LibC: Stub out if_nameindex() and if_freenameindex() 2021-12-22 00:02:36 -08:00
netinet Kernel: Add the IP_{BLOCK_SOURCE, UNBLOCK_SOURCE, OPTIONS} macros 2021-12-05 12:53:29 +01:00
sys Kernel+UE: Add MAP_FIXED_NOREPLACE mmap() flag 2021-12-23 23:08:10 +01:00
dirent.h Kernel+LibC: Share definitions for dirent.h 2021-08-14 19:58:11 +02:00
errno.h Kernel+LibC: Move errno definitions to Kernel/API/POSIX 2021-12-16 22:21:35 +03:30
fcntl.h Kernel+LibC: Share definitions in fcntl.h and sys/types.h 2021-08-14 19:58:11 +02:00
futex.h Kernel+Userland: Remove global futexes 2021-08-17 01:21:47 +02:00
ifaddrs.h Kernel+LibC: Stub out getifaddrs() and freeifaddrs() 2021-12-22 00:02:36 -08:00
poll.h Kernel: Add support for the POLLWRBAND poll event 2021-12-05 12:53:29 +01:00
sched.h Kernel+LibC: Share definitions for sched.h 2021-08-14 19:58:11 +02:00
serenity.h Kernel+LibC: Share definitions for serenity.h 2021-08-14 19:58:11 +02:00
signal.h Kernel: Add the si_errno and si_band siginfo_t members 2021-12-22 22:53:56 +02:00
stdio.h Kernel+LibC: Share definitions for stdio.h 2021-08-14 19:58:11 +02:00
termios.h Kernel+LibC: Share definitions for termios.h 2021-08-14 19:58:11 +02:00
time.h Kernel+LibC: Share definitions for time.h and sys/stat.h 2021-08-14 19:58:11 +02:00
unistd.h Kernel: Implement sysconf(_SC_SYMLOOP_MAX) 2021-12-21 12:54:11 -08:00