The Pedigree Project  0.1
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
HostedSyscallManager Class Reference

#include <SyscallManager.h>

+ Inheritance diagram for HostedSyscallManager:
+ Collaboration diagram for HostedSyscallManager:

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 HostedSyscallManagerinstance ()
 
static void initialiseProcessor () INITIALISATION_ONLY
 
- Static Public Member Functions inherited from SyscallManager
static EXPORTED_PUBLIC SyscallManagerinstance ()
 

Private Member Functions

 HostedSyscallManager () INITIALISATION_ONLY
 
 HostedSyscallManager (const HostedSyscallManager &)
 
HostedSyscallManageroperator= (const HostedSyscallManager &)
 
virtual ~HostedSyscallManager ()
 

Static Private Member Functions

static void syscall (SyscallState &syscallState)
 

Private Attributes

Spinlock m_Lock
 
SyscallHandlerm_pHandler [serviceEnd]
 

Static Private Attributes

static HostedSyscallManager m_Instance
 

Additional Inherited Members

- Protected Member Functions inherited from SyscallManager
 SyscallManager ()
 
virtual ~SyscallManager ()
 

Detailed Description

The syscall manager on x64 processors

Definition at line 31 of file kernel/core/processor/hosted/SyscallManager.h.

Constructor & Destructor Documentation

HostedSyscallManager::HostedSyscallManager ( )
private

The constructor

Definition at line 100 of file hosted/SyscallManager.cc.

References m_pHandler.

Referenced by instance().

+ Here is the caller graph for this function:

HostedSyscallManager::HostedSyscallManager ( const HostedSyscallManager )
private

Copy constructor

Note
NOT implemented
HostedSyscallManager::~HostedSyscallManager ( )
privatevirtual

The destructor

Definition at line 107 of file hosted/SyscallManager.cc.

Referenced by instance().

+ Here is the caller graph for this function:

Member Function Documentation

void HostedSyscallManager::initialiseProcessor ( )
static

Initialises this processors syscall handling

Note
This should only be called from Processor::initialise1() and Multiprocessor::applicationProcessorStartup()

Definition at line 96 of file hosted/SyscallManager.cc.

Referenced by Processor::initialisationDone(), and instance().

+ Here is the caller graph for this function:

static HostedSyscallManager& HostedSyscallManager::instance ( )
inlinestatic
HostedSyscallManager& HostedSyscallManager::operator= ( const HostedSyscallManager )
private

Assignment operator

Note
NOT implemented

Referenced by instance().

+ Here is the caller graph for this function:

bool HostedSyscallManager::registerSyscallHandler ( Service_t  Service,
SyscallHandler pHandler 
)
virtual

Register a syscall handler

Parameters
[in]Servicethe service number you want to register
[in]pHandlerthe interrupt handler
Returns
true, if successfully registered, false otherwise

Implements SyscallManager.

Definition at line 32 of file hosted/SyscallManager.cc.

References UNLIKELY.

Referenced by instance().

+ Here is the caller graph for this function:

uintptr_t HostedSyscallManager::syscall ( Service_t  service,
uintptr_t  function,
uintptr_t  p1,
uintptr_t  p2,
uintptr_t  p3,
uintptr_t  p4,
uintptr_t  p5 
)
virtual

Called to execute a syscall.

Implements SyscallManager.

Definition at line 85 of file hosted/SyscallManager.cc.

Referenced by instance().

+ Here is the caller graph for this function:

void HostedSyscallManager::syscall ( SyscallState &  syscallState)
staticprivate

Called when a syscall was called

Parameters
[in]syscallStatereference 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.

Member Data Documentation

HostedSyscallManager HostedSyscallManager::m_Instance
staticprivate

The instance of the syscall manager

Definition at line 78 of file kernel/core/processor/hosted/SyscallManager.h.

Referenced by instance().

Spinlock HostedSyscallManager::m_Lock
private

Spinlock protecting the member variables

Definition at line 72 of file kernel/core/processor/hosted/SyscallManager.h.

SyscallHandler* HostedSyscallManager::m_pHandler[serviceEnd]
private

The syscall handlers

Definition at line 75 of file kernel/core/processor/hosted/SyscallManager.h.

Referenced by HostedSyscallManager().


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