NOVA User-Level Environment  Version testbox/changed-memory-timing-317-g320d8b5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BaseSService< Session, A > Class Template Reference

#include <sservice.h>

Inheritance diagram for BaseSService< Session, A >:
NoXlateSService< Session, A > XlateSService< Session, A >

Public Member Functions

virtual cap_sel alloc_cap (unsigned count=1)=0
virtual void dealloc_cap (cap_sel c)=0
virtual cap_sel create_ec4pt (phy_cpu_no cpu, Utcb **utcb_out, cap_sel ec=~0u)=0
unsigned alloc_crd ()
bool register_service (const char *service_name, Hip &hip=Global::hip)
 Registers the service with parent.
unsigned open_session (Utcb &utcb, cap_sel pseudonym, bool &free_cap)
unsigned close_session (Utcb &utcb, cap_sel session_id)
unsigned handle_session (Utcb &utcb, cap_sel session_id, unsigned op, Utcb::Frame &input, bool &free_cap)

Protected Types

typedef ClientDataStorage
< Session, A > 
Sessions

Protected Member Functions

virtual unsigned new_session (Session *session)=0
virtual unsigned handle_request (Session *session, unsigned op, Utcb::Frame &input, Utcb &utcb, bool &free_cap)=0
mword get_portal_func_addr ()

Protected Attributes

Sessions _sessions
cap_sel _worker_ec_base
char * flag_revoke

Member Typedef Documentation

template<class Session, class A>
typedef ClientDataStorage<Session, A> BaseSService< Session, A >::Sessions
protected

Member Function Documentation

template<class Session, class A>
virtual cap_sel BaseSService< Session, A >::alloc_cap ( unsigned  count = 1)
pure virtual

Implemented in DiskService.

template<class Session, class A>
unsigned BaseSService< Session, A >::alloc_crd ( )
inline
template<class Session, class A>
unsigned BaseSService< Session, A >::close_session ( Utcb utcb,
cap_sel  session_id 
)
inline
template<class Session, class A>
virtual cap_sel BaseSService< Session, A >::create_ec4pt ( phy_cpu_no  cpu,
Utcb **  utcb_out,
cap_sel  ec = ~0u 
)
pure virtual

Implemented in DiskService.

template<class Session, class A>
virtual void BaseSService< Session, A >::dealloc_cap ( cap_sel  c)
pure virtual

Implemented in DiskService.

template<class Session, class A>
mword BaseSService< Session, A >::get_portal_func_addr ( )
inlineprotected
template<class Session, class A>
virtual unsigned BaseSService< Session, A >::handle_request ( Session *  session,
unsigned  op,
Utcb::Frame input,
Utcb utcb,
bool &  free_cap 
)
protectedpure virtual
template<class Session, class A>
unsigned BaseSService< Session, A >::handle_session ( Utcb utcb,
cap_sel  session_id,
unsigned  op,
Utcb::Frame input,
bool &  free_cap 
)
inline
template<class Session, class A>
virtual unsigned BaseSService< Session, A >::new_session ( Session *  session)
protectedpure virtual
template<class Session, class A>
unsigned BaseSService< Session, A >::open_session ( Utcb utcb,
cap_sel  pseudonym,
bool &  free_cap 
)
inline
template<class Session, class A>
bool BaseSService< Session, A >::register_service ( const char *  service_name,
Hip hip = Global::hip 
)
inline

Registers the service with parent.

Parameters
service_nameService name to register
hipSpecifies on which CPUs to start the service.
Returns
true in case of success, false otherwise.

Member Data Documentation

template<class Session, class A>
Sessions BaseSService< Session, A >::_sessions
protected
template<class Session, class A>
cap_sel BaseSService< Session, A >::_worker_ec_base
protected
template<class Session, class A>
char* BaseSService< Session, A >::flag_revoke
protected

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