serenity/Kernel/Memory
Andreas Kling d3e8eb5918 Kernel: Make file-backed memory regions remember description permissions
This allows sys$mprotect() to honor the original readable & writable
flags of the open file description as they were at the point we did the
original sys$mmap().

IIUC, this is what Dr. POSIX wants us to do:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/mprotect.html

Also, remove the bogus and racy "W^X" checking we did against mappings
based on their current inode metadata. If we want to do this, we can do
it properly. For now, it was not only racy, but also did blocking I/O
while holding a spinlock.
2022-08-24 14:57:51 +02:00
..
AddressSpace.cpp Kernel: Make file-backed memory regions remember description permissions 2022-08-24 14:57:51 +02:00
AddressSpace.h Kernel: Wrap process address spaces in SpinlockProtected 2022-08-24 14:57:51 +02:00
AllocationStrategy.h
AnonymousVMObject.cpp Kernel: Stop taking MM lock while using regular quickmaps 2022-08-22 17:56:03 +02:00
AnonymousVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
InodeVMObject.cpp Kernel: Make file-backed memory regions remember description permissions 2022-08-24 14:57:51 +02:00
InodeVMObject.h Kernel: Make file-backed memory regions remember description permissions 2022-08-24 14:57:51 +02:00
MappedROM.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
MemoryManager.cpp Kernel: Wrap process address spaces in SpinlockProtected 2022-08-24 14:57:51 +02:00
MemoryManager.h Kernel: Wrap process address spaces in SpinlockProtected 2022-08-24 14:57:51 +02:00
PageDirectory.cpp Kernel: Stop taking MM lock while using regular quickmaps 2022-08-22 17:56:03 +02:00
PageDirectory.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PageFaultResponse.h
PhysicalPage.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PhysicalPage.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PhysicalRegion.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PhysicalRegion.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PhysicalZone.cpp Kernel: Add implied auto qualifiers in Memory 2022-01-09 23:29:57 -08:00
PhysicalZone.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
PrivateInodeVMObject.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
PrivateInodeVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
Region.cpp Kernel: Make file-backed memory regions remember description permissions 2022-08-24 14:57:51 +02:00
Region.h Kernel: Make file-backed memory regions remember description permissions 2022-08-24 14:57:51 +02:00
RegionTree.cpp Kernel: Wrap RegionTree objects in SpinlockProtected 2022-08-24 14:57:51 +02:00
RegionTree.h Kernel: Wrap process address spaces in SpinlockProtected 2022-08-24 14:57:51 +02:00
RingBuffer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
RingBuffer.h Kernel: Require lock rank for Spinlock construction 2022-08-19 20:26:47 -07:00
ScatterGatherList.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ScatterGatherList.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
ScopedAddressSpaceSwitcher.cpp Kernel: Implement InterruptDisabler using generic Processor functions 2022-06-02 13:14:12 +01:00
ScopedAddressSpaceSwitcher.h Kernel: Rename ProcessPagingScope => ScopedAddressSpaceSwitcher 2021-09-06 18:56:51 +02:00
SharedFramebufferVMObject.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SharedFramebufferVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SharedInodeVMObject.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
SharedInodeVMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
TypedMapping.h Kernel/Memory: Add TypedMapping base_address method 2022-05-05 20:55:57 +02:00
VirtualRange.cpp Kernel: Use AddressSpace region tree for range allocation 2022-04-03 21:51:58 +02:00
VirtualRange.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
VMObject.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
VMObject.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00