The Pedigree Project 0.1
Public Member Functions | Static Public Member Functions | Static Private Attributes | List of all members
Arm64SyscallManager Class Reference
+ Inheritance diagram for Arm64SyscallManager:
+ Collaboration diagram for Arm64SyscallManager:

Public Member Functions

bool registerSyscallHandler (Service_t service, SyscallHandler *handler, Registration &registration, FastEntry entry=nullptr) override
 
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) override
 
- Public Member Functions inherited from SyscallManager
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)
 

Static Public Member Functions

static Arm64SyscallManagerinstance ()
 
static void handle (SyscallState &state)
 
- Static Public Member Functions inherited from SyscallManager
static EXPORTED_PUBLIC SyscallManagerinstance ()
 

Static Private Attributes

static Arm64SyscallManager m_Instance
 

Additional Inherited Members

- Public Types inherited from SyscallManager
enum  PostSyscallActionKind {
  NoPostSyscallAction , TerminateCurrentThread , ExitCurrentProcess , ReturnFromEvent ,
  PopEventState , RestoreProcessorState , JumpToUserspace , RebootSystem
}
 
using FastEntry = uintptr_t(*)(SyscallHandler *, SyscallState &)
 
- Protected Member Functions inherited from SyscallManager
bool registerHandler (Service_t service, SyscallHandler *pHandler, Registration &registration, FastEntry entry=nullptr)
 
ALWAYS_INLINE uintptr_t dispatchHandler (const HandlerLease &lease, SyscallState &state) const
 
bool closeHandler (Registration &registration)
 
bool unregisterHandler (Registration &registration)
 
bool acquireHandler (Service_t service, HandlerLease &lease, PostSyscallAction &action)
 
 SyscallManager ()
 
virtual ~SyscallManager ()
 

Detailed Description

Definition at line 6 of file kernel/core/processor/arm64/SyscallManager.h.

Member Function Documentation

◆ handle()

void Arm64SyscallManager::handle ( SyscallState &  state)
static

Definition at line 58 of file arm64/SyscallManager.cc.

◆ instance()

static Arm64SyscallManager & Arm64SyscallManager::instance ( )
inlinestatic

Definition at line 8 of file kernel/core/processor/arm64/SyscallManager.h.

◆ registerSyscallHandler()

bool Arm64SyscallManager::registerSyscallHandler ( Service_t  Service,
SyscallHandler pHandler,
Registration registration,
FastEntry  entry = nullptr 
)
overridevirtual

Register a syscall handler

Parameters
[in]Servicethe service number you want to register
[in]pHandlerthe interrupt handler
[in]entryoptional nonvirtual implementation of the same syscall contract
Returns
true, if successfully registered, false otherwise

Implements SyscallManager.

Definition at line 53 of file arm64/SyscallManager.cc.

◆ syscall()

uintptr_t Arm64SyscallManager::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 
)
overridevirtual

Calls a syscall.

Implements SyscallManager.

Definition at line 223 of file arm64/SyscallManager.cc.

Member Data Documentation

◆ m_Instance

Arm64SyscallManager Arm64SyscallManager::m_Instance
staticprivate

Definition at line 23 of file kernel/core/processor/arm64/SyscallManager.h.


The documentation for this class was generated from the following files: