|
Data Structures |
struct | cs_req_t |
| Request for connection to a clonable service. More...
|
struct | hashed_service_t |
| Service hash table item. More...
|
struct | hashed_task_t |
| Task hash table item. More...
|
struct | p2i_entry_t |
struct | pending_conn_t |
| Pending connection structure. More...
|
struct | pending_wait_t |
| Pending task wait structure. More...
|
Defines |
#define | NAME "ns" |
#define | P2I_HASH_TABLE_CHAINS 256 |
#define | SERVICE_HASH_TABLE_CHAINS 20 |
#define | TASK_HASH_TABLE_CHAINS 256 |
Functions |
int | clonable_init (void) |
void | connect_to_clonable (sysarg_t service, ipc_call_t *call, ipc_callid_t callid) |
| Connect client to clonable service.
|
void | connect_to_service (sysarg_t service, ipc_call_t *call, ipc_callid_t callid) |
| Connect client to service.
|
static int | get_id_by_phone (sysarg_t phone_hash, task_id_t *id) |
int | main (int argc, char **argv) |
int | ns_task_disconnect (ipc_call_t *call) |
int | ns_task_id_intro (ipc_call_t *call) |
int | ns_task_retval (ipc_call_t *call) |
static int | p2i_compare (unsigned long key[], hash_count_t keys, link_t *item) |
| Compare a key with hashed item.
|
static hash_index_t | p2i_hash (unsigned long key[]) |
| Compute hash index into task hash table.
|
static void | p2i_remove (link_t *item) |
| Perform actions after removal of item from the hash table.
|
void | process_pending_conn (void) |
| Process pending connection requests.
|
void | process_pending_wait (void) |
| Process pending wait requests.
|
void | register_clonable (sysarg_t service, sysarg_t phone, ipc_call_t *call, ipc_callid_t callid) |
| Register clonable service.
|
int | register_service (sysarg_t service, sysarg_t phone, ipc_call_t *call) |
| Register service.
|
bool | service_clonable (int service) |
| Return true if service is clonable.
|
static int | service_compare (unsigned long key[], hash_count_t keys, link_t *item) |
| Compare a key with hashed item.
|
static hash_index_t | service_hash (unsigned long key[]) |
| Compute hash index into service hash table.
|
int | service_init (void) |
static void | service_remove (link_t *item) |
| Perform actions after removal of item from the hash table.
|
static int | task_compare (unsigned long key[], hash_count_t keys, link_t *item) |
| Compare a key with hashed item.
|
static hash_index_t | task_hash (unsigned long key[]) |
| Compute hash index into task hash table.
|
int | task_init (void) |
static void | task_remove (link_t *item) |
| Perform actions after removal of item from the hash table.
|
void | wait_for_task (task_id_t id, ipc_call_t *call, ipc_callid_t callid) |
Variables |
static link_t | cs_req |
| List of clonable-service connection requests.
|
static hash_table_operations_t | p2i_ops |
| Operations for task hash table.
|
static link_t | pending_conn |
static link_t | pending_wait |
static hash_table_t | phone_to_id |
| Map phone hash to task ID.
|
static hash_table_t | service_hash_table |
| Service hash table structure.
|
static hash_table_operations_t | service_hash_table_ops |
| Operations for service hash table.
|
static hash_table_t | task_hash_table |
| Task hash table structure.
|
static hash_table_operations_t | task_hash_table_ops |
| Operations for task hash table.
|