1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 06:47:34 +00:00

Kernel: Map signal trampoline into each process's address space

The signal trampoline was previously in kernelspace memory, but with
a special exception to make it user-accessible.

This patch moves it into each process's regular address space so we
can stop supporting user-allowed memory above 0xc0000000.
This commit is contained in:
Andreas Kling 2021-02-14 00:53:53 +01:00
parent 3551198f99
commit 1593219a41
4 changed files with 30 additions and 17 deletions

View file

@ -57,8 +57,6 @@ namespace Kernel {
timeval kgettimeofday();
void kgettimeofday(timeval&);
extern VirtualAddress g_return_to_ring3_from_signal_trampoline;
#define ENUMERATE_PLEDGE_PROMISES \
__ENUMERATE_PLEDGE_PROMISE(stdio) \
__ENUMERATE_PLEDGE_PROMISE(rpath) \
@ -458,6 +456,8 @@ public:
Space& space() { return *m_space; }
const Space& space() const { return *m_space; }
VirtualAddress signal_trampoline() const { return m_signal_trampoline; }
private:
friend class MemoryManager;
friend class Scheduler;
@ -507,6 +507,7 @@ private:
String m_name;
OwnPtr<Space> m_space;
VirtualAddress m_signal_trampoline;
ProcessID m_pid { 0 };
SessionID m_sid { 0 };