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

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 Armv7SyscallManager & instance ()
 
static void handle (SyscallState &state)
 
- Static Public Member Functions inherited from SyscallManager
static EXPORTED_PUBLIC SyscallManager & instance ()
 

Static Private Attributes

static Armv7SyscallManager 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/armv7/SyscallManager.h.

Member Function Documentation

◆ handle()

void Armv7SyscallManager::handle ( SyscallState &  state)
static

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

◆ instance()

static Armv7SyscallManager & Armv7SyscallManager::instance ( )
inlinestatic

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

◆ registerSyscallHandler()

bool Armv7SyscallManager::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 armv7/SyscallManager.cc.

◆ syscall()

uintptr_t Armv7SyscallManager::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 225 of file armv7/SyscallManager.cc.

Member Data Documentation

◆ m_Instance

Armv7SyscallManager Armv7SyscallManager::m_Instance
staticprivate

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


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