#include <SyscallManager.h>
|
| enum | PostSyscallActionKind {
NoPostSyscallAction
, TerminateCurrentThread
, ExitCurrentProcess
, ReturnFromEvent
,
PopEventState
, RestoreProcessorState
, JumpToUserspace
, RebootSystem
} |
| |
| using | FastEntry = uintptr_t(*)(SyscallHandler *, SyscallState &) |
| |
|
| virtual bool | registerSyscallHandler (Service_t Service, SyscallHandler *pHandler, Registration ®istration, FastEntry entry=nullptr)=0 |
| |
| EXPORTED_PUBLIC bool | requestThreadExit () |
| |
| EXPORTED_PUBLIC bool | requestProcessExit (int status) |
| |
| EXPORTED_PUBLIC bool | requestEventReturn () |
| |
| EXPORTED_PUBLIC bool | requestEventStatePop () |
| |
| EXPORTED_PUBLIC bool | requestStateRestore (const ProcessorState &state) |
| |
| EXPORTED_PUBLIC bool | requestUserJump (uintptr_t instructionPointer, uintptr_t stackPointer) |
| |
| EXPORTED_PUBLIC bool | requestReboot (Machine::ShutdownType type=Machine::ShutdownType::Restart) |
| |
| virtual uintptr_t | syscall (Service_t service, uintptr_t function, uintptr_t p1=0, uintptr_t p2=0, uintptr_t p3=0, uintptr_t p4=0, uintptr_t p5=0)=0 |
| |
The syscall manager allows syscall handler registrations and handles syscalls
Definition at line 41 of file include/pedigree/kernel/processor/SyscallManager.h.
◆ FastEntry
| using SyscallManager::FastEntry = uintptr_t (*)(SyscallHandler*, SyscallState&) |
◆ PostSyscallActionKind
| enum SyscallManager::PostSyscallActionKind |
◆ SyscallManager() [1/2]
| SyscallManager::SyscallManager |
( |
| ) |
|
|
protected |
◆ ~SyscallManager()
| SyscallManager::~SyscallManager |
( |
| ) |
|
|
protectedvirtualdefault |
◆ SyscallManager() [2/2]
The copy-constructor
- Note
- Not implemented (singleton)
◆ abandonedHandlerCleanup()
| void SyscallManager::abandonedHandlerCleanup |
( |
void * |
context | ) |
|
|
staticprivate |
◆ acquireHandler()
◆ closeHandler()
| bool SyscallManager::closeHandler |
( |
Registration & |
registration | ) |
|
|
protected |
◆ dispatchHandler()
◆ dispatchVirtual()
| uintptr_t SyscallManager::dispatchVirtual |
( |
SyscallHandler * |
handler, |
|
|
SyscallState & |
state |
|
) |
| |
|
staticprivate |
◆ inCallback()
| bool SyscallManager::inCallback |
( |
| ) |
|
|
staticprivate |
◆ instance()
◆ operator=()
The copy-constructor
- Note
- Not implemented (singleton)
◆ registerHandler()
| bool SyscallManager::registerHandler |
( |
Service_t |
service, |
|
|
SyscallHandler * |
pHandler, |
|
|
Registration & |
registration, |
|
|
FastEntry |
entry = nullptr |
|
) |
| |
|
protected |
◆ registerSyscallHandler()
| virtual bool SyscallManager::registerSyscallHandler |
( |
Service_t |
Service, |
|
|
SyscallHandler * |
pHandler, |
|
|
Registration & |
registration, |
|
|
FastEntry |
entry = nullptr |
|
) |
| |
|
pure virtual |
◆ releaseHandler()
| void SyscallManager::releaseHandler |
( |
HandlerLease & |
lease, |
|
|
bool |
normalReturn |
|
) |
| |
|
staticprivate |
◆ requestEventReturn()
| bool SyscallManager::requestEventReturn |
( |
| ) |
|
◆ requestEventStatePop()
| bool SyscallManager::requestEventStatePop |
( |
| ) |
|
◆ requestPostSyscallAction()
| bool SyscallManager::requestPostSyscallAction |
( |
PostSyscallActionKind |
kind, |
|
|
intptr_t |
value, |
|
|
const ProcessorState * |
state = nullptr |
|
) |
| |
|
private |
◆ requestProcessExit()
| bool SyscallManager::requestProcessExit |
( |
int |
status | ) |
|
◆ requestReboot()
| bool SyscallManager::requestReboot |
( |
Machine::ShutdownType |
type = Machine::ShutdownType::Restart | ) |
|
◆ requestStateRestore()
| bool SyscallManager::requestStateRestore |
( |
const ProcessorState & |
state | ) |
|
◆ requestThreadExit()
| bool SyscallManager::requestThreadExit |
( |
| ) |
|
Queue a terminal operation until the active handler lease is retired.
Definition at line 335 of file SyscallManager.cc.
◆ requestUserJump()
| bool SyscallManager::requestUserJump |
( |
uintptr_t |
instructionPointer, |
|
|
uintptr_t |
stackPointer |
|
) |
| |
◆ syscall()
| virtual uintptr_t SyscallManager::syscall |
( |
Service_t |
service, |
|
|
uintptr_t |
function, |
|
|
uintptr_t |
p1 = 0, |
|
|
uintptr_t |
p2 = 0, |
|
|
uintptr_t |
p3 = 0, |
|
|
uintptr_t |
p4 = 0, |
|
|
uintptr_t |
p5 = 0 |
|
) |
| |
|
pure virtual |
◆ unregisterHandler()
| bool SyscallManager::unregisterHandler |
( |
Registration & |
registration | ) |
|
|
protected |
◆ m_ClosingSlot
◆ m_HandlerLock
◆ m_HandlerSlots
| HandlerSlot* SyscallManager::m_HandlerSlots[serviceEnd] |
|
private |
◆ m_Published
The documentation for this class was generated from the following files: