Public Member Functions |
unsigned | call_server (Utcb &utcb, bool drop_frame) |
| Call the server in a loop to resolve all faults.
|
unsigned | call_server_drop (Utcb &utcb) |
unsigned | call_server_keep (Utcb &utcb) |
template<class T > |
void | destroy (Utcb &utcb, unsigned portal_num, T *obj) |
| Destroy the object.
|
void | close (Utcb &utcb, unsigned portal_num, bool revoke_lock=true, bool _release_pseudonym=true) |
| Close the session to the parent.
|
unsigned | get_notify_sm () |
Utcb & | init_frame (Utcb &utcb, unsigned op) |
| GenericProtocol (const char *service, unsigned instance, unsigned cap_base, bool blocking, unsigned session_base=~0u) |
| static_assert ((CAP_PT_PERCPU+Config::MAX_CPUS)< (1U<< Config::CAP_RESERVED_ORDER),"Capability Space misconfiguration.") |
Static Public Member Functions |
static Utcb & | init_frame_noid (Utcb &utcb, unsigned op) |
static Utcb & | init_frame (Utcb &utcb, unsigned op, unsigned id) |
static unsigned | call (Utcb &utcb, unsigned cap_base, bool drop_frame, bool percpu=true) |
| Low-level systemcall.
|
static unsigned | get_pseudonym (Utcb &utcb, const char *service, unsigned instance, unsigned cap_pseudonym, unsigned parent_id=CAP_PARENT_ID) |
static unsigned | release_pseudonym (Utcb &utcb, unsigned cap_pseudonym) |
static unsigned | get_portal (Utcb &utcb, unsigned cap_pseudonym, unsigned cap_portal, bool blocking, char const *service_name=0) |
| Ask parent to get the portal to talk to the service.
|
static unsigned | register_service (Utcb &utcb, const char *service, unsigned cpu, unsigned pt, unsigned cap_service, char *revoke_mem=0) |
static unsigned | unregister_service (Utcb &utcb, unsigned cap_service) |
static unsigned | get_quota (Utcb &utcb, unsigned cap_client_pseudonym, const char *name, long invalue, long *outvalue=0) |
static unsigned | set_singleton (Utcb &utcb, unsigned cap_client_pseudonym, unsigned cap_local_session) |
static unsigned | check_singleton (Utcb &utcb, unsigned cap_client_pseudonym, unsigned &cap_local_session, Crd crd=Crd(0, 31, DESC_CAP_ALL)) |
| Services can use check_singleton() in conjunction with set_singleton() to enforce a one-session-per-client policy.
|
static unsigned | kill (Utcb &utcb, unsigned cap_client_pseudonym, unsigned service_cap=0) |
static unsigned | signal (Utcb &utcb, unsigned value) |
| Signals an (arbitrary) event to the parent.
|
Generic protocol handling, hides the parent protocol handling.
Specific protocols will be inherited from it. This is meant to be used only by clients.
Features: session-open, parent-open, request-portal, optional blocking Missing: restrict-quota