The Pedigree Project
0.1
|
#include <SyscallManager.h>
Public Member Functions | |
virtual bool | registerSyscallHandler (Service_t Service, SyscallHandler *pHandler) |
uintptr_t | syscall (Service_t service, uintptr_t function, uintptr_t p1, uintptr_t p2, uintptr_t p3, uintptr_t p4, uintptr_t p5) |
Static Public Member Functions | |
static HostedSyscallManager & | instance () |
static void | initialiseProcessor () INITIALISATION_ONLY |
Static Public Member Functions inherited from SyscallManager | |
static EXPORTED_PUBLIC SyscallManager & | instance () |
Private Member Functions | |
HostedSyscallManager () INITIALISATION_ONLY | |
HostedSyscallManager (const HostedSyscallManager &) | |
HostedSyscallManager & | operator= (const HostedSyscallManager &) |
virtual | ~HostedSyscallManager () |
Static Private Member Functions | |
static void | syscall (SyscallState &syscallState) |
Private Attributes | |
Spinlock | m_Lock |
SyscallHandler * | m_pHandler [serviceEnd] |
Static Private Attributes | |
static HostedSyscallManager | m_Instance |
Additional Inherited Members | |
Protected Member Functions inherited from SyscallManager | |
SyscallManager () | |
virtual | ~SyscallManager () |
The syscall manager on x64 processors
Definition at line 31 of file kernel/core/processor/hosted/SyscallManager.h.
|
private |
The constructor
Definition at line 100 of file hosted/SyscallManager.cc.
References m_pHandler.
Referenced by instance().
|
private |
Copy constructor
|
privatevirtual |
The destructor
Definition at line 107 of file hosted/SyscallManager.cc.
Referenced by instance().
|
static |
Initialises this processors syscall handling
Definition at line 96 of file hosted/SyscallManager.cc.
Referenced by Processor::initialisationDone(), and instance().
|
inlinestatic |
Get the HostedSyscallManager class instance
Definition at line 36 of file kernel/core/processor/hosted/SyscallManager.h.
References HostedSyscallManager(), INITIALISATION_ONLY, initialiseProcessor(), m_Instance, operator=(), registerSyscallHandler(), syscall(), and ~HostedSyscallManager().
|
private |
Assignment operator
Referenced by instance().
|
virtual |
Register a syscall handler
[in] | Service | the service number you want to register |
[in] | pHandler | the interrupt handler |
Implements SyscallManager.
Definition at line 32 of file hosted/SyscallManager.cc.
References UNLIKELY.
Referenced by instance().
|
virtual |
Called to execute a syscall.
Implements SyscallManager.
Definition at line 85 of file hosted/SyscallManager.cc.
Referenced by instance().
|
staticprivate |
Called when a syscall was called
[in] | syscallState | reference to the usermode state before the syscall |
Definition at line 49 of file hosted/SyscallManager.cc.
References Thread::Exit, Processor::information(), LIKELY, NOTICE, SyscallHandler::syscall(), and UNLIKELY.
|
staticprivate |
The instance of the syscall manager
Definition at line 78 of file kernel/core/processor/hosted/SyscallManager.h.
Referenced by instance().
|
private |
Spinlock protecting the member variables
Definition at line 72 of file kernel/core/processor/hosted/SyscallManager.h.
|
private |
The syscall handlers
Definition at line 75 of file kernel/core/processor/hosted/SyscallManager.h.
Referenced by HostedSyscallManager().