interface ns { /* Register a clonable service or a generic service */ ipcarg_t ipc_m_connect_to_me(in ipcarg_t service); /* Connect to a clonable service or a generic service */ ipcarg_t ipc_m_connect_me_to(in ipcarg_t service, in ipcarg_t arg2, in ipcarg_t arg3, in ipcarg_t flags); /* Share real-time clock page or klog page */ ipcarg_t ipc_m_share_in(in ipcarg_t as_area_base, in ipcarg_t as_area_size, in ipcarg_t service); /* For IPC testing purposes */ ipcarg_t ping(void); /* Wait for task exit and get exit status and return value */ ipcarg_t task_wait(in ipcarg_t id_lower, in ipcarg_t id_upper, out ipcarg_t status, out ipcarg_t retval); /* Introduce a new loader task id in such a way it cannot be spoofed */ ipcarg_t id_intro(in ipcarg_t id_lower, in ipcarg_t id_upper); /* Set task return value */ ipcarg_t retval(in ipcarg_t retval); /* Implicit connection close */ ipcarg_t ipc_m_phone_hungup(void); protocol: [ns.bp] }; frame ns { provides: ns ns; requires: [/uspace/lib/libc/requires] kbd kbd; fb fb; console console; vfs vfs; devmap_driver devmap_driver; devmap_client devmap_client; loader loader; protocol: [/uspace/lib/libc/protocol] };