1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 07:28:11 +00:00
serenity/Kernel/VM
Tom e373e5f007 Kernel: Fix signal delivery
When delivering urgent signals to the current thread
we need to check if we should be unblocked, and if not
we need to yield to another process.

We also need to make sure that we suppress context switches
during Process::exec() so that we don't clobber the registers
that it sets up (eip mainly) by a context switch. To be able
to do that we add the concept of a critical section, which are
similar to Process::m_in_irq but different in that they can be
requested at any time. Calls to Scheduler::yield and
Scheduler::donate_to will return instantly without triggering
a context switch, but the processor will then asynchronously
trigger a context switch once the critical section is left.
2020-07-03 19:32:34 +02:00
..
AnonymousVMObject.cpp Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
AnonymousVMObject.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
ContiguousVMObject.cpp Kernel: Allow contiguous allocations in physical memory 2020-03-08 14:13:30 +01:00
ContiguousVMObject.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
InodeVMObject.cpp Kernel: Include the dirty bits when cloning an InodeVMObject 2020-03-01 12:11:50 +01:00
InodeVMObject.h Kernel: Add for_each_vmobject_of_type<T> 2020-05-08 22:10:47 +02:00
MappedROM.h Kernel: Simplify scanning BIOS/EBDA and MP parser initialization 2020-05-22 13:36:57 +02:00
MemoryManager.cpp Kernel: Fix signal delivery 2020-07-03 19:32:34 +02:00
MemoryManager.h Kernel: Fix signal delivery 2020-07-03 19:32:34 +02:00
PageDirectory.cpp Kernel: Make Random work on CPUs without rdrand 2020-06-27 19:40:33 +02:00
PageDirectory.h Kernel: Add mechanism to identity map the lowest 2MB 2020-06-04 18:15:23 +02:00
PhysicalPage.cpp Kernel: Run clang-format on files 2020-03-22 01:22:32 +01:00
PhysicalPage.h Kernel: List all CPUs in /proc/cpuinfo 2020-07-01 12:07:01 +02:00
PhysicalRegion.cpp Kernel: Use NonnullRefPtrVector<T> instead of Vector<RefPtr<T>> some 2020-05-08 21:12:16 +02:00
PhysicalRegion.h Kernel: Use NonnullRefPtrVector<T> instead of Vector<RefPtr<T>> some 2020-05-08 21:12:16 +02:00
PrivateInodeVMObject.cpp Kernel: Split InodeVMObject into two subclasses 2020-02-28 20:20:35 +01:00
PrivateInodeVMObject.h Kernel: Add some InodeVMObject type assertions in Region::clone() 2020-03-01 11:23:10 +01:00
ProcessPagingScope.cpp Kernel: Turn Thread::current and Process::current into functions 2020-07-01 12:07:01 +02:00
ProcessPagingScope.h Kernel: Move ProcessPagingScope to its own files 2020-03-01 15:38:09 +01:00
PurgeableVMObject.cpp Kernel: Memory purging was incorrectly "purging" the shared zero page 2020-05-07 09:44:41 +02:00
PurgeableVMObject.h Kernel: Add for_each_vmobject_of_type<T> 2020-05-08 22:10:47 +02:00
RangeAllocator.cpp AK: Add global FlatPtr typedef. It's u32 or u64, based on sizeof(void*) 2020-03-08 13:06:51 +01:00
RangeAllocator.h Kernel: Add mechanism to identity map the lowest 2MB 2020-06-04 18:15:23 +02:00
Region.cpp Kernel: Turn Thread::current and Process::current into functions 2020-07-01 12:07:01 +02:00
Region.h Kernel: List all CPUs in /proc/cpuinfo 2020-07-01 12:07:01 +02:00
SharedInodeVMObject.cpp Kernel: Split InodeVMObject into two subclasses 2020-02-28 20:20:35 +01:00
SharedInodeVMObject.h Kernel: Add some InodeVMObject type assertions in Region::clone() 2020-03-01 11:23:10 +01:00
TypedMapping.h Kernel: Add non-const version of TypedMapping::operator->() 2020-05-23 15:57:19 +02:00
VMObject.cpp Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
VMObject.h Kernel: Add for_each_vmobject_of_type<T> 2020-05-08 22:10:47 +02:00