Index: uspace/app/wavplay/dplay.c
===================================================================
--- uspace/app/wavplay/dplay.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/app/wavplay/dplay.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -94,5 +94,5 @@
  * @param arg Argument, pointer to the playback helper function
  */
-static void device_event_callback(ipc_callid_t iid, ipc_call_t *icall, void* arg)
+static void device_event_callback(cap_call_handle_t iid, ipc_call_t *icall, void* arg)
 {
 	async_answer_0(iid, EOK);
@@ -101,5 +101,5 @@
 	while (1) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		switch(IPC_GET_IMETHOD(call)) {
 		case PCM_EVENT_PLAYBACK_STARTED:
Index: uspace/app/wavplay/drec.c
===================================================================
--- uspace/app/wavplay/drec.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/app/wavplay/drec.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -91,5 +91,5 @@
  * @param arg Argument. Poitner to recording helper structure.
  */
-static void device_event_callback(ipc_callid_t iid, ipc_call_t *icall, void* arg)
+static void device_event_callback(cap_call_handle_t iid, ipc_call_t *icall, void* arg)
 {
 	async_answer_0(iid, EOK);
@@ -99,5 +99,5 @@
 	while (record) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		switch(IPC_GET_IMETHOD(call)) {
 		case PCM_EVENT_CAPTURE_TERMINATED:
Index: uspace/drv/block/ata_bd/main.c
===================================================================
--- uspace/drv/block/ata_bd/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/block/ata_bd/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -47,5 +47,5 @@
 static errno_t ata_fun_offline(ddf_fun_t *fun);
 
-static void ata_bd_connection(ipc_callid_t, ipc_call_t *, void *);
+static void ata_bd_connection(cap_call_handle_t, ipc_call_t *, void *);
 
 static driver_ops_t driver_ops = {
@@ -313,5 +313,5 @@
 
 /** Block device connection handler */
-static void ata_bd_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void ata_bd_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	ata_fun_t *afun;
Index: uspace/drv/block/ddisk/ddisk.c
===================================================================
--- uspace/drv/block/ddisk/ddisk.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/block/ddisk/ddisk.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -62,5 +62,5 @@
 static errno_t ddisk_fun_offline(ddf_fun_t *);
 
-static void ddisk_bd_connection(ipc_callid_t, ipc_call_t *, void *);
+static void ddisk_bd_connection(cap_call_handle_t, ipc_call_t *, void *);
 
 static void ddisk_irq_handler(ipc_call_t *, ddf_dev_t *);
@@ -587,5 +587,5 @@
 
 /** Block device connection handler */
-static void ddisk_bd_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void ddisk_bd_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	ddisk_t *ddisk;
Index: uspace/drv/block/usbmast/main.c
===================================================================
--- uspace/drv/block/usbmast/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/block/usbmast/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -79,5 +79,5 @@
 
 static errno_t usbmast_fun_create(usbmast_dev_t *mdev, unsigned lun);
-static void usbmast_bd_connection(ipc_callid_t iid, ipc_call_t *icall,
+static void usbmast_bd_connection(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg);
 
@@ -317,5 +317,5 @@
 
 /** Blockdev client connection handler. */
-static void usbmast_bd_connection(ipc_callid_t iid, ipc_call_t *icall,
+static void usbmast_bd_connection(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
Index: uspace/drv/bus/adb/cuda_adb/cuda_adb.c
===================================================================
--- uspace/drv/bus/adb/cuda_adb/cuda_adb.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/bus/adb/cuda_adb/cuda_adb.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -55,5 +55,5 @@
 #define NAME  "cuda_adb"
 
-static void cuda_dev_connection(ipc_callid_t, ipc_call_t *, void *);
+static void cuda_dev_connection(cap_call_handle_t, ipc_call_t *, void *);
 static errno_t cuda_init(cuda_t *);
 static void cuda_irq_handler(ipc_call_t *, void *);
@@ -198,8 +198,8 @@
 
 /** Device connection handler */
-static void cuda_dev_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void cuda_dev_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	adb_dev_t *dev = (adb_dev_t *) ddf_fun_data_get((ddf_fun_t *) arg);
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	sysarg_t method;
Index: uspace/drv/bus/usb/vhc/conndev.c
===================================================================
--- uspace/drv/bus/usb/vhc/conndev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/bus/usb/vhc/conndev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -93,5 +93,5 @@
  * @param icall Call data.
  */
-void default_connection_handler(ddf_fun_t *fun, ipc_callid_t icallid,
+void default_connection_handler(ddf_fun_t *fun, cap_call_handle_t icallid,
     ipc_call_t *icall)
 {
Index: uspace/drv/bus/usb/vhc/vhcd.h
===================================================================
--- uspace/drv/bus/usb/vhc/vhcd.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/bus/usb/vhc/vhcd.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -88,5 +88,5 @@
 
 void on_client_close(ddf_fun_t *fun);
-void default_connection_handler(ddf_fun_t *fun, ipc_callid_t icallid,
+void default_connection_handler(ddf_fun_t *fun, cap_call_handle_t icallid,
     ipc_call_t *icall);
 
Index: uspace/drv/char/i8042/i8042.c
===================================================================
--- uspace/drv/char/i8042/i8042.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/char/i8042/i8042.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -67,5 +67,5 @@
 #define i8042_KBD_TRANSLATE  0x40  /* Use this to switch to XT scancodes */
 
-static void i8042_char_conn(ipc_callid_t, ipc_call_t *, void *);
+static void i8042_char_conn(cap_call_handle_t, ipc_call_t *, void *);
 static errno_t i8042_read(chardev_srv_t *, void *, size_t, size_t *);
 static errno_t i8042_write(chardev_srv_t *, const void *, size_t, size_t *);
@@ -418,5 +418,5 @@
  * @param arg  ddf_fun_t function.
  */
-void i8042_char_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void i8042_char_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	i8042_port_t *port = ddf_fun_data_get((ddf_fun_t *)arg);
Index: uspace/drv/char/msim-con/msim-con.c
===================================================================
--- uspace/drv/char/msim-con/msim-con.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/char/msim-con/msim-con.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -41,5 +41,5 @@
 #include "msim-con.h"
 
-static void msim_con_connection(ipc_callid_t, ipc_call_t *, void *);
+static void msim_con_connection(cap_call_handle_t, ipc_call_t *, void *);
 
 static errno_t msim_con_read(chardev_srv_t *, void *, size_t, size_t *);
@@ -217,5 +217,5 @@
 
 /** Character device connection handler. */
-static void msim_con_connection(ipc_callid_t iid, ipc_call_t *icall,
+static void msim_con_connection(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
Index: uspace/drv/char/ns8250/ns8250.c
===================================================================
--- uspace/drv/char/ns8250/ns8250.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/char/ns8250/ns8250.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -311,5 +311,5 @@
 static errno_t ns8250_open(chardev_srvs_t *, chardev_srv_t *);
 static errno_t ns8250_close(chardev_srv_t *);
-static void ns8250_default_handler(chardev_srv_t *, ipc_callid_t, ipc_call_t *);
+static void ns8250_default_handler(chardev_srv_t *, cap_call_handle_t, ipc_call_t *);
 
 /** The character interface's callbacks. */
@@ -322,5 +322,5 @@
 };
 
-static void ns8250_char_conn(ipc_callid_t, ipc_call_t *, void *);
+static void ns8250_char_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 static errno_t ns8250_dev_add(ddf_dev_t *dev);
@@ -1068,5 +1068,5 @@
  * Configure the parameters of the serial communication.
  */
-static void ns8250_default_handler(chardev_srv_t *srv, ipc_callid_t callid,
+static void ns8250_default_handler(chardev_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -1099,5 +1099,5 @@
 }
 
-void ns8250_char_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void ns8250_char_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	ns8250_t *ns8250 = fun_ns8250((ddf_fun_t *)arg);
Index: uspace/drv/char/pl050/pl050.c
===================================================================
--- uspace/drv/char/pl050/pl050.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/char/pl050/pl050.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -54,5 +54,5 @@
 static errno_t pl050_fun_online(ddf_fun_t *);
 static errno_t pl050_fun_offline(ddf_fun_t *);
-static void pl050_char_conn(ipc_callid_t, ipc_call_t *, void *);
+static void pl050_char_conn(cap_call_handle_t, ipc_call_t *, void *);
 static errno_t pl050_read(chardev_srv_t *, void *, size_t, size_t *);
 static errno_t pl050_write(chardev_srv_t *, const void *, size_t, size_t *);
@@ -286,5 +286,5 @@
 }
 
-void pl050_char_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void pl050_char_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	pl050_t *pl050 = pl050_from_fun((ddf_fun_t *)arg);
Index: uspace/drv/char/ski-con/ski-con.c
===================================================================
--- uspace/drv/char/ski-con/ski-con.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/char/ski-con/ski-con.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -50,5 +50,5 @@
 static errno_t ski_con_fibril(void *arg);
 static int32_t ski_con_getchar(void);
-static void ski_con_connection(ipc_callid_t, ipc_call_t *, void *);
+static void ski_con_connection(cap_call_handle_t, ipc_call_t *, void *);
 
 static errno_t ski_con_read(chardev_srv_t *, void *, size_t, size_t *);
@@ -255,5 +255,5 @@
 
 /** Character device connection handler. */
-static void ski_con_connection(ipc_callid_t iid, ipc_call_t *icall,
+static void ski_con_connection(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
Index: uspace/drv/char/sun4v-con/sun4v-con.c
===================================================================
--- uspace/drv/char/sun4v-con/sun4v-con.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/char/sun4v-con/sun4v-con.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -42,5 +42,5 @@
 #include "sun4v-con.h"
 
-static void sun4v_con_connection(ipc_callid_t, ipc_call_t *, void *);
+static void sun4v_con_connection(cap_call_handle_t, ipc_call_t *, void *);
 
 #define POLL_INTERVAL  10000
@@ -180,5 +180,5 @@
 
 /** Character device connection handler. */
-static void sun4v_con_connection(ipc_callid_t iid, ipc_call_t *icall,
+static void sun4v_con_connection(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
Index: uspace/drv/fb/amdm37x_dispc/main.c
===================================================================
--- uspace/drv/fb/amdm37x_dispc/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/fb/amdm37x_dispc/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -46,5 +46,5 @@
 #define NAME  "amdm37x_dispc"
 
-static void graph_vsl_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void graph_vsl_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	visualizer_t *vsl;
Index: uspace/drv/fb/kfb/port.c
===================================================================
--- uspace/drv/fb/kfb/port.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/fb/kfb/port.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -162,5 +162,5 @@
 };
 
-static void graph_vsl_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void graph_vsl_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	visualizer_t *vsl;
Index: uspace/drv/hid/adb-kbd/adb-kbd.c
===================================================================
--- uspace/drv/hid/adb-kbd/adb-kbd.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/hid/adb-kbd/adb-kbd.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -43,7 +43,7 @@
 #include "ctl.h"
 
-static void adb_kbd_events(ipc_callid_t, ipc_call_t *, void *);
+static void adb_kbd_events(cap_call_handle_t, ipc_call_t *, void *);
 static void adb_kbd_reg0_data(adb_kbd_t *, uint16_t);
-static void adb_kbd_conn(ipc_callid_t, ipc_call_t *, void *);
+static void adb_kbd_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 /** Add ADB keyboard device */
@@ -130,5 +130,5 @@
 }
 
-static void adb_kbd_events(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void adb_kbd_events(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	adb_kbd_t *kbd = (adb_kbd_t *) arg;
@@ -138,5 +138,5 @@
 
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		errno_t retval = EOK;
@@ -190,7 +190,7 @@
 
 /** Handle client connection */
-static void adb_kbd_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
-{
-	ipc_callid_t callid;
+static void adb_kbd_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
+{
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	sysarg_t method;
Index: uspace/drv/hid/adb-mouse/adb-mouse.c
===================================================================
--- uspace/drv/hid/adb-mouse/adb-mouse.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/hid/adb-mouse/adb-mouse.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -41,5 +41,5 @@
 #include "adb-mouse.h"
 
-static void adb_mouse_conn(ipc_callid_t, ipc_call_t *, void *);
+static void adb_mouse_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 static void adb_mouse_event_button(adb_mouse_t *mouse, int bnum, int bpress)
@@ -88,5 +88,5 @@
 }
 
-static void adb_mouse_events(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void adb_mouse_events(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	adb_mouse_t *mouse = (adb_mouse_t *) arg;
@@ -95,5 +95,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		errno_t retval = EOK;
@@ -200,7 +200,7 @@
 
 /** Handle client connection */
-static void adb_mouse_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
-{
-	ipc_callid_t callid;
+static void adb_mouse_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
+{
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	sysarg_t method;
Index: uspace/drv/hid/atkbd/atkbd.c
===================================================================
--- uspace/drv/hid/atkbd/atkbd.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/hid/atkbd/atkbd.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -298,5 +298,5 @@
  */
 static void default_connection_handler(ddf_fun_t *fun,
-    ipc_callid_t icallid, ipc_call_t *icall)
+    cap_call_handle_t icallid, ipc_call_t *icall)
 {
 	const sysarg_t method = IPC_GET_IMETHOD(*icall);
Index: uspace/drv/hid/ps2mouse/ps2mouse.c
===================================================================
--- uspace/drv/hid/ps2mouse/ps2mouse.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/hid/ps2mouse/ps2mouse.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -104,5 +104,5 @@
 static errno_t polling_intellimouse(void *);
 static errno_t probe_intellimouse(ps2_mouse_t *, bool);
-static void default_connection_handler(ddf_fun_t *, ipc_callid_t, ipc_call_t *);
+static void default_connection_handler(ddf_fun_t *, cap_call_handle_t, ipc_call_t *);
 
 /** ps/2 mouse driver ops. */
@@ -404,5 +404,5 @@
  */
 void default_connection_handler(ddf_fun_t *fun,
-    ipc_callid_t icallid, ipc_call_t *icall)
+    cap_call_handle_t icallid, ipc_call_t *icall)
 {
 	const sysarg_t method = IPC_GET_IMETHOD(*icall);
Index: uspace/drv/hid/usbhid/kbd/kbddev.c
===================================================================
--- uspace/drv/hid/usbhid/kbd/kbddev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/hid/usbhid/kbd/kbddev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -72,5 +72,5 @@
 #include "../usbhid.h"
 
-static void default_connection_handler(ddf_fun_t *, ipc_callid_t, ipc_call_t *);
+static void default_connection_handler(ddf_fun_t *, cap_call_handle_t, ipc_call_t *);
 static ddf_dev_ops_t kbdops = { .default_handler = default_connection_handler };
 
@@ -161,5 +161,5 @@
  */
 static void default_connection_handler(ddf_fun_t *fun,
-    ipc_callid_t icallid, ipc_call_t *icall)
+    cap_call_handle_t icallid, ipc_call_t *icall)
 {
 	const sysarg_t method = IPC_GET_IMETHOD(*icall);
Index: uspace/drv/hid/usbhid/mouse/mousedev.c
===================================================================
--- uspace/drv/hid/usbhid/mouse/mousedev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/hid/usbhid/mouse/mousedev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -55,5 +55,5 @@
 #define NAME "mouse"
 
-static void default_connection_handler(ddf_fun_t *, ipc_callid_t, ipc_call_t *);
+static void default_connection_handler(ddf_fun_t *, cap_call_handle_t, ipc_call_t *);
 
 static ddf_dev_ops_t ops = { .default_handler = default_connection_handler };
@@ -114,5 +114,5 @@
  */
 static void default_connection_handler(ddf_fun_t *fun,
-    ipc_callid_t icallid, ipc_call_t *icall)
+    cap_call_handle_t icallid, ipc_call_t *icall)
 {
 	usb_mouse_t *mouse_dev = ddf_fun_data_get(fun);
Index: uspace/drv/hid/usbhid/multimedia/multimedia.c
===================================================================
--- uspace/drv/hid/usbhid/multimedia/multimedia.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/hid/usbhid/multimedia/multimedia.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -85,5 +85,5 @@
  */
 static void default_connection_handler(ddf_fun_t *fun,
-    ipc_callid_t icallid, ipc_call_t *icall)
+    cap_call_handle_t icallid, ipc_call_t *icall)
 {
 	usb_log_debug(NAME " default_connection_handler()");
Index: uspace/drv/hid/xtkbd/xtkbd.c
===================================================================
--- uspace/drv/hid/xtkbd/xtkbd.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/hid/xtkbd/xtkbd.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -334,5 +334,5 @@
  */
 static void default_connection_handler(ddf_fun_t *fun,
-    ipc_callid_t icallid, ipc_call_t *icall)
+    cap_call_handle_t icallid, ipc_call_t *icall)
 {
 	const sysarg_t method = IPC_GET_IMETHOD(*icall);
Index: uspace/drv/intctl/apic/apic.c
===================================================================
--- uspace/drv/intctl/apic/apic.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/intctl/apic/apic.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -164,7 +164,7 @@
  * @param arg	Local argument.
  */
-static void apic_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
-{
-	ipc_callid_t callid;
+static void apic_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
+{
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	apic_t *apic;
Index: uspace/drv/intctl/i8259/i8259.c
===================================================================
--- uspace/drv/intctl/i8259/i8259.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/intctl/i8259/i8259.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -93,7 +93,7 @@
  * @param arg	Local argument.
  */
-static void i8259_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
-{
-	ipc_callid_t callid;
+static void i8259_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
+{
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	i8259_t *i8259 = NULL /* XXX */;
Index: uspace/drv/intctl/icp-ic/icp-ic.c
===================================================================
--- uspace/drv/intctl/icp-ic/icp-ic.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/intctl/icp-ic/icp-ic.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -69,7 +69,7 @@
  * @param arg	Local argument.
  */
-static void icpic_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void icpic_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	icpic_t *icpic;
Index: uspace/drv/intctl/obio/obio.c
===================================================================
--- uspace/drv/intctl/obio/obio.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/drv/intctl/obio/obio.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -73,7 +73,7 @@
  * @param arg		Local argument.
  */
-static void obio_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void obio_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	obio_t *obio;
Index: uspace/lib/c/generic/bd.c
===================================================================
--- uspace/lib/c/generic/bd.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/bd.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -46,5 +46,5 @@
 #include <offset.h>
 
-static void bd_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void bd_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 errno_t bd_open(async_sess_t *sess, bd_t **rbd)
@@ -196,5 +196,5 @@
 }
 
-static void bd_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void bd_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	bd_t *bd = (bd_t *)arg;
@@ -204,5 +204,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/lib/c/generic/bd_srv.c
===================================================================
--- uspace/lib/c/generic/bd_srv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/bd_srv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -43,5 +43,5 @@
 #include <bd_srv.h>
 
-static void bd_read_blocks_srv(bd_srv_t *srv, ipc_callid_t callid,
+static void bd_read_blocks_srv(bd_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -51,5 +51,5 @@
 	size_t size;
 	errno_t rc;
-	ipc_callid_t rcallid;
+	cap_call_handle_t rcallid;
 
 	ba = MERGE_LOUP32(IPC_GET_ARG1(*call), IPC_GET_ARG2(*call));
@@ -89,5 +89,5 @@
 }
 
-static void bd_read_toc_srv(bd_srv_t *srv, ipc_callid_t callid,
+static void bd_read_toc_srv(bd_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -96,5 +96,5 @@
 	size_t size;
 	errno_t rc;
-	ipc_callid_t rcallid;
+	cap_call_handle_t rcallid;
 
 	session = IPC_GET_ARG1(*call);
@@ -133,5 +133,5 @@
 }
 
-static void bd_sync_cache_srv(bd_srv_t *srv, ipc_callid_t callid,
+static void bd_sync_cache_srv(bd_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -152,5 +152,5 @@
 }
 
-static void bd_write_blocks_srv(bd_srv_t *srv, ipc_callid_t callid,
+static void bd_write_blocks_srv(bd_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -180,5 +180,5 @@
 }
 
-static void bd_get_block_size_srv(bd_srv_t *srv, ipc_callid_t callid,
+static void bd_get_block_size_srv(bd_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -195,5 +195,5 @@
 }
 
-static void bd_get_num_blocks_srv(bd_srv_t *srv, ipc_callid_t callid,
+static void bd_get_num_blocks_srv(bd_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -228,5 +228,5 @@
 }
 
-errno_t bd_conn(ipc_callid_t iid, ipc_call_t *icall, bd_srvs_t *srvs)
+errno_t bd_conn(cap_call_handle_t iid, ipc_call_t *icall, bd_srvs_t *srvs)
 {
 	bd_srv_t *srv;
@@ -252,5 +252,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/lib/c/generic/inet.c
===================================================================
--- uspace/lib/c/generic/inet.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/inet.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -36,5 +36,5 @@
 #include <stdlib.h>
 
-static void inet_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void inet_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 static async_sess_t *inet_sess = NULL;
@@ -176,5 +176,5 @@
 }
 
-static void inet_ev_recv(ipc_callid_t iid, ipc_call_t *icall)
+static void inet_ev_recv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	inet_dgram_t dgram;
@@ -183,5 +183,5 @@
 	dgram.iplink = IPC_GET_ARG2(*icall);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -234,9 +234,9 @@
 }
 
-static void inet_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void inet_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/lib/c/generic/inet/tcp.c
===================================================================
--- uspace/lib/c/generic/inet/tcp.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/inet/tcp.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -41,5 +41,5 @@
 #include <stdlib.h>
 
-static void tcp_cb_conn(ipc_callid_t, ipc_call_t *, void *);
+static void tcp_cb_conn(cap_call_handle_t, ipc_call_t *, void *);
 static errno_t tcp_conn_fibril(void *);
 
@@ -637,5 +637,5 @@
  * @param icall Call data
  */
-static void tcp_ev_connected(tcp_t *tcp, ipc_callid_t iid, ipc_call_t *icall)
+static void tcp_ev_connected(tcp_t *tcp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	tcp_conn_t *conn;
@@ -665,5 +665,5 @@
  * @param icall Call data
  */
-static void tcp_ev_conn_failed(tcp_t *tcp, ipc_callid_t iid, ipc_call_t *icall)
+static void tcp_ev_conn_failed(tcp_t *tcp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	tcp_conn_t *conn;
@@ -693,5 +693,5 @@
  * @param icall Call data
  */
-static void tcp_ev_conn_reset(tcp_t *tcp, ipc_callid_t iid, ipc_call_t *icall)
+static void tcp_ev_conn_reset(tcp_t *tcp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	tcp_conn_t *conn;
@@ -721,5 +721,5 @@
  * @param icall Call data
  */
-static void tcp_ev_data(tcp_t *tcp, ipc_callid_t iid, ipc_call_t *icall)
+static void tcp_ev_data(tcp_t *tcp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	tcp_conn_t *conn;
@@ -750,5 +750,5 @@
  * @param icall Call data
  */
-static void tcp_ev_urg_data(tcp_t *tcp, ipc_callid_t iid, ipc_call_t *icall)
+static void tcp_ev_urg_data(tcp_t *tcp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	async_answer_0(iid, ENOTSUP);
@@ -761,5 +761,5 @@
  * @param icall Call data
  */
-static void tcp_ev_new_conn(tcp_t *tcp, ipc_callid_t iid, ipc_call_t *icall)
+static void tcp_ev_new_conn(tcp_t *tcp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	tcp_listener_t *lst;
@@ -813,5 +813,5 @@
  * @param arg Argument, TCP client
  */
-static void tcp_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void tcp_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	tcp_t *tcp = (tcp_t *)arg;
@@ -821,5 +821,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/lib/c/generic/inet/udp.c
===================================================================
--- uspace/lib/c/generic/inet/udp.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/inet/udp.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -41,5 +41,5 @@
 #include <stdlib.h>
 
-static void udp_cb_conn(ipc_callid_t, ipc_call_t *, void *);
+static void udp_cb_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 /** Create callback connection from UDP service.
@@ -455,5 +455,5 @@
  * @param icall IPC message
  */
-static void udp_ev_data(udp_t *udp, ipc_callid_t iid, ipc_call_t *icall)
+static void udp_ev_data(udp_t *udp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	udp_rmsg_t rmsg;
@@ -490,5 +490,5 @@
  * @param arg Argument, UDP client
  */
-static void udp_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void udp_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	udp_t *udp = (udp_t *)arg;
@@ -498,5 +498,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/lib/c/generic/inetping.c
===================================================================
--- uspace/lib/c/generic/inetping.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/inetping.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -38,6 +38,6 @@
 #include <str.h>
 
-static void inetping_cb_conn(ipc_callid_t, ipc_call_t *, void *);
-static void inetping_ev_recv(ipc_callid_t, ipc_call_t *);
+static void inetping_cb_conn(cap_call_handle_t, ipc_call_t *, void *);
+static void inetping_ev_recv(cap_call_handle_t, ipc_call_t *);
 
 static async_sess_t *inetping_sess = NULL;
@@ -150,5 +150,5 @@
 }
 
-static void inetping_ev_recv(ipc_callid_t iid, ipc_call_t *icall)
+static void inetping_ev_recv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	inetping_sdu_t sdu;
@@ -156,5 +156,5 @@
 	sdu.seq_no = IPC_GET_ARG1(*icall);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -207,9 +207,9 @@
 }
 
-static void inetping_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void inetping_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/lib/c/generic/io/chardev_srv.c
===================================================================
--- uspace/lib/c/generic/io/chardev_srv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/io/chardev_srv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -43,5 +43,5 @@
 static chardev_srv_t *chardev_srv_create(chardev_srvs_t *);
 
-static void chardev_read_srv(chardev_srv_t *srv, ipc_callid_t callid,
+static void chardev_read_srv(chardev_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -50,5 +50,5 @@
 	size_t nread;
 	errno_t rc;
-	ipc_callid_t rcallid;
+	cap_call_handle_t rcallid;
 
 	if (!async_data_read_receive(&rcallid, &size)) {
@@ -85,5 +85,5 @@
 }
 
-static void chardev_write_srv(chardev_srv_t *srv, ipc_callid_t callid,
+static void chardev_write_srv(chardev_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -132,5 +132,5 @@
 }
 
-errno_t chardev_conn(ipc_callid_t iid, ipc_call_t *icall, chardev_srvs_t *srvs)
+errno_t chardev_conn(cap_call_handle_t iid, ipc_call_t *icall, chardev_srvs_t *srvs)
 {
 	chardev_srv_t *srv;
@@ -152,5 +152,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/lib/c/generic/io/con_srv.c
===================================================================
--- uspace/lib/c/generic/io/con_srv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/io/con_srv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -66,5 +66,5 @@
 }
 
-static void con_read_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_read_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -72,5 +72,5 @@
 	size_t size;
 	errno_t rc;
-	ipc_callid_t rcallid;
+	cap_call_handle_t rcallid;
 
 	if (!async_data_read_receive(&rcallid, &size)) {
@@ -108,5 +108,5 @@
 }
 
-static void con_write_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_write_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -133,5 +133,5 @@
 }
 
-static void con_sync_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_sync_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -145,5 +145,5 @@
 }
 
-static void con_clear_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_clear_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -157,5 +157,5 @@
 }
 
-static void con_set_pos_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_set_pos_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -175,5 +175,5 @@
 }
 
-static void con_get_pos_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_get_pos_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -191,5 +191,5 @@
 }
 
-static void con_get_size_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_get_size_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -207,5 +207,5 @@
 }
 
-static void con_get_color_cap_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_get_color_cap_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -222,5 +222,5 @@
 }
 
-static void con_set_style_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_set_style_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -238,5 +238,5 @@
 }
 
-static void con_set_color_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_set_color_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -258,5 +258,5 @@
 }
 
-static void con_set_rgb_color_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_set_rgb_color_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -276,5 +276,5 @@
 }
 
-static void con_set_cursor_visibility_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_set_cursor_visibility_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -292,5 +292,5 @@
 }
 
-static void con_get_event_srv(con_srv_t *srv, ipc_callid_t callid,
+static void con_get_event_srv(con_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -340,5 +340,5 @@
 }
 
-errno_t con_conn(ipc_callid_t iid, ipc_call_t *icall, con_srvs_t *srvs)
+errno_t con_conn(cap_call_handle_t iid, ipc_call_t *icall, con_srvs_t *srvs)
 {
 	con_srv_t *srv;
@@ -366,5 +366,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = 0;
+		cap_call_handle_t callid = 0;
 
 		while (callid == 0) {
Index: uspace/lib/c/generic/io/input.c
===================================================================
--- uspace/lib/c/generic/io/input.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/io/input.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -43,5 +43,5 @@
 #include <stdlib.h>
 
-static void input_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void input_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 errno_t input_open(async_sess_t *sess, input_ev_ops_t *ev_ops,
@@ -92,5 +92,5 @@
 }
 
-static void input_ev_active(input_t *input, ipc_callid_t callid,
+static void input_ev_active(input_t *input, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -99,5 +99,5 @@
 }
 
-static void input_ev_deactive(input_t *input, ipc_callid_t callid,
+static void input_ev_deactive(input_t *input, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -106,5 +106,5 @@
 }
 
-static void input_ev_key(input_t *input, ipc_callid_t callid,
+static void input_ev_key(input_t *input, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -124,5 +124,5 @@
 }
 
-static void input_ev_move(input_t *input, ipc_callid_t callid,
+static void input_ev_move(input_t *input, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -138,5 +138,5 @@
 }
 
-static void input_ev_abs_move(input_t *input, ipc_callid_t callid,
+static void input_ev_abs_move(input_t *input, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -156,5 +156,5 @@
 }
 
-static void input_ev_button(input_t *input, ipc_callid_t callid,
+static void input_ev_button(input_t *input, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -170,5 +170,5 @@
 }
 
-static void input_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void input_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	input_t *input = (input_t *)arg;
@@ -176,5 +176,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/lib/c/generic/iplink.c
===================================================================
--- uspace/lib/c/generic/iplink.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/iplink.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -45,5 +45,5 @@
 #include <stdlib.h>
 
-static void iplink_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void iplink_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 errno_t iplink_open(async_sess_t *sess, iplink_ev_ops_t *ev_ops, void *arg,
@@ -245,5 +245,5 @@
 }
 
-static void iplink_ev_recv(iplink_t *iplink, ipc_callid_t iid,
+static void iplink_ev_recv(iplink_t *iplink, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -264,5 +264,5 @@
 }
 
-static void iplink_ev_change_addr(iplink_t *iplink, ipc_callid_t iid,
+static void iplink_ev_change_addr(iplink_t *iplink, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -282,5 +282,5 @@
 }
 
-static void iplink_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void iplink_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	iplink_t *iplink = (iplink_t *) arg;
@@ -288,5 +288,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/lib/c/generic/iplink_srv.c
===================================================================
--- uspace/lib/c/generic/iplink_srv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/iplink_srv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -42,5 +42,5 @@
 #include <inet/iplink_srv.h>
 
-static void iplink_get_mtu_srv(iplink_srv_t *srv, ipc_callid_t callid,
+static void iplink_get_mtu_srv(iplink_srv_t *srv, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -50,5 +50,5 @@
 }
 
-static void iplink_get_mac48_srv(iplink_srv_t *srv, ipc_callid_t iid,
+static void iplink_get_mac48_srv(iplink_srv_t *srv, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -60,5 +60,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -81,5 +81,5 @@
 }
 
-static void iplink_set_mac48_srv(iplink_srv_t *srv, ipc_callid_t iid,
+static void iplink_set_mac48_srv(iplink_srv_t *srv, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -87,5 +87,5 @@
 	size_t size;
 	addr48_t mac;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 
 	if (!async_data_write_receive(&callid, &size)) {
@@ -107,8 +107,8 @@
 }
 
-static void iplink_addr_add_srv(iplink_srv_t *srv, ipc_callid_t iid,
-    ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void iplink_addr_add_srv(iplink_srv_t *srv, cap_call_handle_t iid,
+    ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -135,8 +135,8 @@
 }
 
-static void iplink_addr_remove_srv(iplink_srv_t *srv, ipc_callid_t iid,
-    ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void iplink_addr_remove_srv(iplink_srv_t *srv, cap_call_handle_t iid,
+    ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -163,5 +163,5 @@
 }
 
-static void iplink_send_srv(iplink_srv_t *srv, ipc_callid_t iid,
+static void iplink_send_srv(iplink_srv_t *srv, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -183,10 +183,10 @@
 }
 
-static void iplink_send6_srv(iplink_srv_t *srv, ipc_callid_t iid,
+static void iplink_send6_srv(iplink_srv_t *srv, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
 	iplink_sdu6_t sdu;
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -229,5 +229,5 @@
 }
 
-errno_t iplink_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+errno_t iplink_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	iplink_srv_t *srv = (iplink_srv_t *) arg;
@@ -259,5 +259,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/lib/c/generic/loc.c
===================================================================
--- uspace/lib/c/generic/loc.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/loc.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -55,9 +55,9 @@
 static async_sess_t *loc_consumer_sess = NULL;
 
-static void loc_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void loc_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/lib/c/generic/vfs/vfs.c
===================================================================
--- uspace/lib/c/generic/vfs/vfs.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/generic/vfs/vfs.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -802,5 +802,5 @@
 errno_t vfs_receive_handle(bool high, int *handle)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	if (!async_state_change_receive(&callid, NULL, NULL, NULL)) {
 		async_answer_0(callid, EINVAL);
Index: uspace/lib/c/include/bd_srv.h
===================================================================
--- uspace/lib/c/include/bd_srv.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/include/bd_srv.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -70,5 +70,5 @@
 extern void bd_srvs_init(bd_srvs_t *);
 
-extern errno_t bd_conn(ipc_callid_t, ipc_call_t *, bd_srvs_t *);
+extern errno_t bd_conn(cap_call_handle_t, ipc_call_t *, bd_srvs_t *);
 
 #endif
Index: uspace/lib/c/include/inet/iplink_srv.h
===================================================================
--- uspace/lib/c/include/inet/iplink_srv.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/include/inet/iplink_srv.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -66,5 +66,5 @@
 extern void iplink_srv_init(iplink_srv_t *);
 
-extern errno_t iplink_conn(ipc_callid_t, ipc_call_t *, void *);
+extern errno_t iplink_conn(cap_call_handle_t, ipc_call_t *, void *);
 extern errno_t iplink_ev_recv(iplink_srv_t *, iplink_recv_sdu_t *, ip_ver_t);
 extern errno_t iplink_ev_change_addr(iplink_srv_t *, addr48_t *);
Index: uspace/lib/c/include/io/chardev_srv.h
===================================================================
--- uspace/lib/c/include/io/chardev_srv.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/include/io/chardev_srv.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -61,10 +61,10 @@
 	errno_t (*read)(chardev_srv_t *, void *, size_t, size_t *);
 	errno_t (*write)(chardev_srv_t *, const void *, size_t, size_t *);
-	void (*def_handler)(chardev_srv_t *, ipc_callid_t, ipc_call_t *);
+	void (*def_handler)(chardev_srv_t *, cap_call_handle_t, ipc_call_t *);
 };
 
 extern void chardev_srvs_init(chardev_srvs_t *);
 
-extern errno_t chardev_conn(ipc_callid_t, ipc_call_t *, chardev_srvs_t *);
+extern errno_t chardev_conn(cap_call_handle_t, ipc_call_t *, chardev_srvs_t *);
 
 #endif
Index: uspace/lib/c/include/io/con_srv.h
===================================================================
--- uspace/lib/c/include/io/con_srv.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/include/io/con_srv.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -87,5 +87,5 @@
 extern void con_srvs_init(con_srvs_t *);
 
-extern errno_t con_conn(ipc_callid_t, ipc_call_t *, con_srvs_t *);
+extern errno_t con_conn(cap_call_handle_t, ipc_call_t *, con_srvs_t *);
 
 #endif
Index: uspace/lib/c/include/ipc/common.h
===================================================================
--- uspace/lib/c/include/ipc/common.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/c/include/ipc/common.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -55,6 +55,4 @@
 } ipc_call_t;
 
-typedef cap_call_handle_t ipc_callid_t;
-
 extern futex_t async_futex;
 
Index: uspace/lib/drv/generic/driver.c
===================================================================
--- uspace/lib/drv/generic/driver.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/driver.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -118,5 +118,5 @@
 }
 
-static void driver_dev_add(ipc_callid_t iid, ipc_call_t *icall)
+static void driver_dev_add(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t dev_handle = IPC_GET_ARG1(*icall);
@@ -174,5 +174,5 @@
 }
 
-static void driver_dev_remove(ipc_callid_t iid, ipc_call_t *icall)
+static void driver_dev_remove(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t devh = IPC_GET_ARG1(*icall);
@@ -207,5 +207,5 @@
 }
 
-static void driver_dev_gone(ipc_callid_t iid, ipc_call_t *icall)
+static void driver_dev_gone(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t devh = IPC_GET_ARG1(*icall);
@@ -240,5 +240,5 @@
 }
 
-static void driver_fun_online(ipc_callid_t iid, ipc_call_t *icall)
+static void driver_fun_online(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t funh = IPC_GET_ARG1(*icall);
@@ -275,5 +275,5 @@
 }
 
-static void driver_fun_offline(ipc_callid_t iid, ipc_call_t *icall)
+static void driver_fun_offline(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t funh = IPC_GET_ARG1(*icall);
@@ -308,5 +308,5 @@
 }
 
-static void driver_stop(ipc_callid_t iid, ipc_call_t *icall)
+static void driver_stop(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	/* Prevent new devices from being added */
@@ -337,5 +337,5 @@
 }
 
-static void driver_connection_devman(ipc_callid_t iid, ipc_call_t *icall,
+static void driver_connection_devman(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
@@ -345,5 +345,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
@@ -381,5 +381,5 @@
  *
  */
-static void driver_connection_gen(ipc_callid_t iid, ipc_call_t *icall, bool drv)
+static void driver_connection_gen(cap_call_handle_t iid, ipc_call_t *icall, bool drv)
 {
 	/*
@@ -426,5 +426,5 @@
 
 	while (true) {
-		ipc_callid_t callid;
+		cap_call_handle_t callid;
 		ipc_call_t call;
 		callid = async_get_call(&call);
@@ -504,5 +504,5 @@
 }
 
-static void driver_connection_driver(ipc_callid_t iid, ipc_call_t *icall,
+static void driver_connection_driver(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
@@ -510,5 +510,5 @@
 }
 
-static void driver_connection_client(ipc_callid_t iid, ipc_call_t *icall,
+static void driver_connection_client(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
Index: uspace/lib/drv/generic/remote_ahci.c
===================================================================
--- uspace/lib/drv/generic/remote_ahci.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_ahci.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -182,13 +182,13 @@
 }
 
-static void remote_ahci_get_sata_device_name(ddf_fun_t *, void *, ipc_callid_t,
-    ipc_call_t *);
-static void remote_ahci_get_num_blocks(ddf_fun_t *, void *, ipc_callid_t,
-    ipc_call_t *);
-static void remote_ahci_get_block_size(ddf_fun_t *, void *, ipc_callid_t,
-    ipc_call_t *);
-static void remote_ahci_read_blocks(ddf_fun_t *, void *, ipc_callid_t,
-    ipc_call_t *);
-static void remote_ahci_write_blocks(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_ahci_get_sata_device_name(ddf_fun_t *, void *, cap_call_handle_t,
+    ipc_call_t *);
+static void remote_ahci_get_num_blocks(ddf_fun_t *, void *, cap_call_handle_t,
+    ipc_call_t *);
+static void remote_ahci_get_block_size(ddf_fun_t *, void *, cap_call_handle_t,
+    ipc_call_t *);
+static void remote_ahci_read_blocks(ddf_fun_t *, void *, cap_call_handle_t,
+    ipc_call_t *);
+static void remote_ahci_write_blocks(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
 
@@ -210,5 +210,5 @@
 
 void remote_ahci_get_sata_device_name(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const ahci_iface_t *ahci_iface = (ahci_iface_t *) iface;
@@ -232,5 +232,5 @@
 
 	size_t real_size;
-	ipc_callid_t cid;
+	cap_call_handle_t cid;
 	if ((async_data_read_receive(&cid, &real_size)) &&
 	    (real_size == sata_dev_name_length))
@@ -242,5 +242,5 @@
 
 static void remote_ahci_get_num_blocks(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const ahci_iface_t *ahci_iface = (ahci_iface_t *) iface;
@@ -261,5 +261,5 @@
 
 static void remote_ahci_get_block_size(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const ahci_iface_t *ahci_iface = (ahci_iface_t *) iface;
@@ -280,5 +280,5 @@
 
 void remote_ahci_read_blocks(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const ahci_iface_t *ahci_iface = (ahci_iface_t *) iface;
@@ -292,5 +292,5 @@
 	unsigned int flags;
 
-	ipc_callid_t cid;
+	cap_call_handle_t cid;
 	async_share_out_receive(&cid, &maxblock_size, &flags);
 
@@ -308,5 +308,5 @@
 }
 
-void remote_ahci_write_blocks(ddf_fun_t *fun, void *iface, ipc_callid_t callid,
+void remote_ahci_write_blocks(ddf_fun_t *fun, void *iface, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -321,5 +321,5 @@
 	unsigned int flags;
 
-	ipc_callid_t cid;
+	cap_call_handle_t cid;
 	async_share_out_receive(&cid, &maxblock_size, &flags);
 
Index: uspace/lib/drv/generic/remote_audio_mixer.c
===================================================================
--- uspace/lib/drv/generic/remote_audio_mixer.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_audio_mixer.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -199,8 +199,8 @@
  * SERVER SIDE
  */
-static void remote_audio_mixer_get_info(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_mixer_get_item_info(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_mixer_get_item_level(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_mixer_set_item_level(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
+static void remote_audio_mixer_get_info(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_mixer_get_item_info(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_mixer_get_item_level(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_mixer_set_item_level(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
 
 /** Remote audio mixer interface operations. */
@@ -219,5 +219,5 @@
 
 void remote_audio_mixer_get_info(
-    ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+    ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	audio_mixer_iface_t *mixer_iface = iface;
@@ -235,5 +235,5 @@
 	if (ret == EOK && name_size > 0) {
 		size_t size;
-		ipc_callid_t name_id;
+		cap_call_handle_t name_id;
 		if (!async_data_read_receive(&name_id, &size)) {
 			async_answer_0(name_id, EPARTY);
@@ -249,5 +249,5 @@
 
 void remote_audio_mixer_get_item_info(
-    ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+    ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	audio_mixer_iface_t *mixer_iface = iface;
@@ -267,5 +267,5 @@
 	if (ret == EOK && name_size > 0) {
 		size_t size;
-		ipc_callid_t name_id;
+		cap_call_handle_t name_id;
 		if (!async_data_read_receive(&name_id, &size)) {
 			async_answer_0(name_id, EPARTY);
@@ -281,5 +281,5 @@
 
 void remote_audio_mixer_set_item_level(
-    ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+    ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	audio_mixer_iface_t *mixer_iface = iface;
@@ -296,5 +296,5 @@
 
 void remote_audio_mixer_get_item_level(
-    ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+    ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	audio_mixer_iface_t *mixer_iface = iface;
Index: uspace/lib/drv/generic/remote_audio_pcm.c
===================================================================
--- uspace/lib/drv/generic/remote_audio_pcm.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_audio_pcm.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -596,16 +596,16 @@
  * SERVER SIDE
  */
-static void remote_audio_pcm_get_info_str(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_query_caps(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_events_register(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_events_unregister(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_get_buffer_pos(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_test_format(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_get_buffer(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_release_buffer(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_start_playback(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_stop_playback(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_start_capture(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_audio_pcm_stop_capture(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
+static void remote_audio_pcm_get_info_str(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_query_caps(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_events_register(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_events_unregister(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_get_buffer_pos(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_test_format(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_get_buffer(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_release_buffer(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_start_playback(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_stop_playback(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_start_capture(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_audio_pcm_stop_capture(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
 
 /** Remote audio pcm buffer interface operations. */
@@ -632,5 +632,5 @@
 
 void remote_audio_pcm_get_info_str(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -647,5 +647,5 @@
 	if (ret == EOK && name_size > 0) {
 		size_t size;
-		ipc_callid_t name_id;
+		cap_call_handle_t name_id;
 		if (!async_data_read_receive(&name_id, &size)) {
 			async_answer_0(name_id, EPARTY);
@@ -660,5 +660,5 @@
 }
 
-void remote_audio_pcm_query_caps(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_audio_pcm_query_caps(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -672,5 +672,5 @@
 }
 
-static void remote_audio_pcm_events_register(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+static void remote_audio_pcm_events_register(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -684,5 +684,5 @@
 
 	ipc_call_t callback_call;
-	ipc_callid_t callback_id = async_get_call(&callback_call);
+	cap_call_handle_t callback_id = async_get_call(&callback_call);
 	async_sess_t *sess =
 	    async_callback_receive_start(EXCHANGE_ATOMIC, &callback_call);
@@ -702,5 +702,5 @@
 }
 
-static void remote_audio_pcm_events_unregister(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+static void remote_audio_pcm_events_unregister(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -718,5 +718,5 @@
 }
 
-void remote_audio_pcm_get_buffer_pos(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_audio_pcm_get_buffer_pos(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -727,5 +727,5 @@
 }
 
-void remote_audio_pcm_test_format(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_audio_pcm_test_format(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -739,5 +739,5 @@
 
 void remote_audio_pcm_get_buffer(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -757,5 +757,5 @@
 	/* Share the buffer. */
 	size_t share_size = 0;
-	ipc_callid_t share_id = 0;
+	cap_call_handle_t share_id = 0;
 
 	ddf_msg(LVL_DEBUG2, "Receiving share request.");
@@ -788,5 +788,5 @@
 
 void remote_audio_pcm_release_buffer(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -798,5 +798,5 @@
 
 void remote_audio_pcm_start_playback(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -814,5 +814,5 @@
 
 void remote_audio_pcm_stop_playback(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -825,5 +825,5 @@
 
 void remote_audio_pcm_start_capture(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
@@ -841,5 +841,5 @@
 
 void remote_audio_pcm_stop_capture(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const audio_pcm_iface_t *pcm_iface = iface;
Index: uspace/lib/drv/generic/remote_battery_dev.c
===================================================================
--- uspace/lib/drv/generic/remote_battery_dev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_battery_dev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -90,7 +90,7 @@
 }
 
-static void remote_battery_status_get(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_battery_status_get(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
-static void remote_battery_charge_level_get(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_battery_charge_level_get(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
 
@@ -118,5 +118,5 @@
  */
 static void
-remote_battery_status_get(ddf_fun_t *fun, void *ops, ipc_callid_t callid,
+remote_battery_status_get(ddf_fun_t *fun, void *ops, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -144,5 +144,5 @@
  */
 static void
-remote_battery_charge_level_get(ddf_fun_t *fun, void *ops, ipc_callid_t callid,
+remote_battery_charge_level_get(ddf_fun_t *fun, void *ops, cap_call_handle_t callid,
     ipc_call_t *call)
 {
Index: uspace/lib/drv/generic/remote_clock_dev.c
===================================================================
--- uspace/lib/drv/generic/remote_clock_dev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_clock_dev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -42,7 +42,7 @@
 #include <ddf/driver.h>
 
-static void remote_clock_time_get(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_clock_time_get(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
-static void remote_clock_time_set(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_clock_time_set(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
 
@@ -69,9 +69,9 @@
  */
 static void
-remote_clock_time_get(ddf_fun_t *fun, void *ops, ipc_callid_t callid,
+remote_clock_time_get(ddf_fun_t *fun, void *ops, cap_call_handle_t callid,
     ipc_call_t *call)
 {
 	clock_dev_ops_t *clock_dev_ops = (clock_dev_ops_t *) ops;
-	ipc_callid_t cid;
+	cap_call_handle_t cid;
 	struct tm t;
 	errno_t rc;
@@ -111,10 +111,10 @@
  */
 static void remote_clock_time_set(ddf_fun_t *fun, void *ops,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	clock_dev_ops_t *clock_dev_ops = (clock_dev_ops_t *) ops;
 	errno_t      rc;
 	struct tm    t;
-	ipc_callid_t cid;
+	cap_call_handle_t cid;
 	size_t       len;
 
Index: uspace/lib/drv/generic/remote_hw_res.c
===================================================================
--- uspace/lib/drv/generic/remote_hw_res.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_hw_res.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -41,15 +41,15 @@
 #include "ddf/driver.h"
 
-static void remote_hw_res_get_resource_list(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_hw_res_get_resource_list(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
-static void remote_hw_res_enable_interrupt(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_hw_res_enable_interrupt(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
-static void remote_hw_res_disable_interrupt(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_hw_res_disable_interrupt(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
-static void remote_hw_res_clear_interrupt(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_hw_res_clear_interrupt(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
-static void remote_hw_res_dma_channel_setup(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_hw_res_dma_channel_setup(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
-static void remote_hw_res_dma_channel_remain(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_hw_res_dma_channel_remain(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
 
@@ -69,5 +69,5 @@
 
 static void remote_hw_res_enable_interrupt(ddf_fun_t *fun, void *ops,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	hw_res_ops_t *hw_res_ops = (hw_res_ops_t *) ops;
@@ -84,5 +84,5 @@
 
 static void remote_hw_res_disable_interrupt(ddf_fun_t *fun, void *ops,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	hw_res_ops_t *hw_res_ops = (hw_res_ops_t *) ops;
@@ -99,5 +99,5 @@
 
 static void remote_hw_res_clear_interrupt(ddf_fun_t *fun, void *ops,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	hw_res_ops_t *hw_res_ops = (hw_res_ops_t *) ops;
@@ -114,5 +114,5 @@
 
 static void remote_hw_res_get_resource_list(ddf_fun_t *fun, void *ops,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	hw_res_ops_t *hw_res_ops = (hw_res_ops_t *) ops;
@@ -140,5 +140,5 @@
 
 static void remote_hw_res_dma_channel_setup(ddf_fun_t *fun, void *ops,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	hw_res_ops_t *hw_res_ops = ops;
@@ -159,5 +159,5 @@
 
 static void remote_hw_res_dma_channel_remain(ddf_fun_t *fun, void *ops,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	hw_res_ops_t *hw_res_ops = ops;
Index: uspace/lib/drv/generic/remote_ieee80211.c
===================================================================
--- uspace/lib/drv/generic/remote_ieee80211.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_ieee80211.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -268,5 +268,5 @@
 
 static void remote_ieee80211_get_scan_results(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	ieee80211_iface_t *ieee80211_iface = (ieee80211_iface_t *) iface;
@@ -280,5 +280,5 @@
 	errno_t rc = ieee80211_iface->get_scan_results(fun, &scan_results, now);
 	if (rc == EOK) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		size_t max_len;
 		if (!async_data_read_receive(&data_callid, &max_len)) {
@@ -302,5 +302,5 @@
 
 static void remote_ieee80211_connect(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	ieee80211_iface_t *ieee80211_iface = (ieee80211_iface_t *) iface;
@@ -310,5 +310,5 @@
 	char password[MAX_STRING_SIZE];
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t len;
 	if (!async_data_write_receive(&data_callid, &len)) {
@@ -356,5 +356,5 @@
 
 static void remote_ieee80211_disconnect(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	ieee80211_iface_t *ieee80211_iface = (ieee80211_iface_t *) iface;
Index: uspace/lib/drv/generic/remote_led_dev.c
===================================================================
--- uspace/lib/drv/generic/remote_led_dev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_led_dev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -41,5 +41,5 @@
 #include <ddf/driver.h>
 
-static void remote_led_color_set(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_led_color_set(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
 
@@ -66,5 +66,5 @@
  *
  */
-static void remote_led_color_set(ddf_fun_t *fun, void *ops, ipc_callid_t callid,
+static void remote_led_color_set(ddf_fun_t *fun, void *ops, cap_call_handle_t callid,
     ipc_call_t *call)
 {
Index: uspace/lib/drv/generic/remote_nic.c
===================================================================
--- uspace/lib/drv/generic/remote_nic.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_nic.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -1337,5 +1337,5 @@
 
 static void remote_nic_send_frame(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1358,5 +1358,5 @@
 
 static void remote_nic_callback_create(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1368,5 +1368,5 @@
 
 static void remote_nic_get_state(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1380,5 +1380,5 @@
 
 static void remote_nic_set_state(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1392,5 +1392,5 @@
 
 static void remote_nic_get_address(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1403,5 +1403,5 @@
 	if (rc == EOK) {
 		size_t max_len;
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 
 		/* All errors will be translated into EPARTY anyway */
@@ -1426,10 +1426,10 @@
 
 static void remote_nic_set_address(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
 
 	size_t length;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	if (!async_data_write_receive(&data_callid, &length)) {
 		async_answer_0(data_callid, EINVAL);
@@ -1458,5 +1458,5 @@
 
 static void remote_nic_get_stats(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1471,5 +1471,5 @@
 	errno_t rc = nic_iface->get_stats(dev, &stats);
 	if (rc == EOK) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		size_t max_len;
 		if (!async_data_read_receive(&data_callid, &max_len)) {
@@ -1493,5 +1493,5 @@
 
 static void remote_nic_get_device_info(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1506,5 +1506,5 @@
 	errno_t rc = nic_iface->get_device_info(dev, &info);
 	if (rc == EOK) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		size_t max_len;
 		if (!async_data_read_receive(&data_callid, &max_len)) {
@@ -1528,5 +1528,5 @@
 
 static void remote_nic_get_cable_state(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1543,5 +1543,5 @@
 
 static void remote_nic_get_operation_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1561,5 +1561,5 @@
 
 static void remote_nic_set_operation_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1578,5 +1578,5 @@
 
 static void remote_nic_autoneg_enable(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1593,5 +1593,5 @@
 
 static void remote_nic_autoneg_disable(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1606,5 +1606,5 @@
 
 static void remote_nic_autoneg_probe(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1626,5 +1626,5 @@
 
 static void remote_nic_autoneg_restart(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1639,5 +1639,5 @@
 
 static void remote_nic_get_pause(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1656,5 +1656,5 @@
 
 static void remote_nic_set_pause(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1674,5 +1674,5 @@
 
 static void remote_nic_unicast_get_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1706,5 +1706,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t max_len;
 	if (!async_data_read_receive(&data_callid, &max_len)) {
@@ -1729,5 +1729,5 @@
 
 static void remote_nic_unicast_set_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1739,5 +1739,5 @@
 
 	if (address_count) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		if (!async_data_write_receive(&data_callid, &length)) {
 			async_answer_0(data_callid, EINVAL);
@@ -1778,5 +1778,5 @@
 
 static void remote_nic_multicast_get_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1811,5 +1811,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t max_len;
 	if (!async_data_read_receive(&data_callid, &max_len)) {
@@ -1833,5 +1833,5 @@
 
 static void remote_nic_multicast_set_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1842,5 +1842,5 @@
 
 	if (address_count) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		size_t length;
 		if (!async_data_write_receive(&data_callid, &length)) {
@@ -1882,5 +1882,5 @@
 
 static void remote_nic_broadcast_get_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1897,5 +1897,5 @@
 
 static void remote_nic_broadcast_set_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1912,5 +1912,5 @@
 
 static void remote_nic_defective_get_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1927,5 +1927,5 @@
 
 static void remote_nic_defective_set_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1942,5 +1942,5 @@
 
 static void remote_nic_blocked_sources_get(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -1973,5 +1973,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t max_len;
 	if (!async_data_read_receive(&data_callid, &max_len)) {
@@ -1996,5 +1996,5 @@
 
 static void remote_nic_blocked_sources_set(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2005,5 +2005,5 @@
 
 	if (address_count) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		if (!async_data_write_receive(&data_callid, &length)) {
 			async_answer_0(data_callid, EINVAL);
@@ -2044,5 +2044,5 @@
 
 static void remote_nic_vlan_get_mask(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2057,5 +2057,5 @@
 	errno_t rc = nic_iface->vlan_get_mask(dev, &vlan_mask);
 	if (rc == EOK) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		size_t max_len;
 		if (!async_data_read_receive(&data_callid, &max_len)) {
@@ -2078,5 +2078,5 @@
 
 static void remote_nic_vlan_set_mask(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2087,5 +2087,5 @@
 
 	if (vlan_mask_set) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		size_t length;
 		if (!async_data_write_receive(&data_callid, &length)) {
@@ -2118,5 +2118,5 @@
 
 static void remote_nic_vlan_set_tag(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2136,10 +2136,10 @@
 
 static void remote_nic_wol_virtue_add(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
 
 	int send_data = (int) IPC_GET_ARG3(*call);
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 
 	if (nic_iface->wol_virtue_add == NULL) {
@@ -2186,5 +2186,5 @@
 
 static void remote_nic_wol_virtue_remove(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2202,5 +2202,5 @@
 
 static void remote_nic_wol_virtue_probe(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2215,5 +2215,5 @@
 	nic_wv_type_t type = NIC_WV_NONE;
 	size_t length = 0;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	void *data = NULL;
 
@@ -2254,5 +2254,5 @@
 
 static void remote_nic_wol_virtue_list(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2266,5 +2266,5 @@
 	size_t count = 0;
 	nic_wv_id_t *id_list = NULL;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 
 	if (max_count != 0) {
@@ -2304,5 +2304,5 @@
 
 static void remote_nic_wol_virtue_get_caps(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2320,5 +2320,5 @@
 
 static void remote_nic_wol_load_info(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2346,5 +2346,5 @@
 	    &frame_length);
 	if (rc == EOK) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		size_t req_length;
 		if (!async_data_read_receive(&data_callid, &req_length)) {
@@ -2365,5 +2365,5 @@
 
 static void remote_nic_offload_probe(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2381,5 +2381,5 @@
 
 static void remote_nic_offload_set(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2397,5 +2397,5 @@
 
 static void remote_nic_poll_get_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2415,5 +2415,5 @@
 	if ((rc == EOK) && (request_data)) {
 		size_t max_len;
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 
 		if (!async_data_read_receive(&data_callid, &max_len)) {
@@ -2437,5 +2437,5 @@
 
 static void remote_nic_poll_set_mode(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
@@ -2448,5 +2448,5 @@
 
 	if (has_period) {
-		ipc_callid_t data_callid;
+		cap_call_handle_t data_callid;
 		if (!async_data_write_receive(&data_callid, &length)) {
 			async_answer_0(data_callid, EINVAL);
@@ -2477,5 +2477,5 @@
 
 static void remote_nic_poll_now(ddf_fun_t *dev, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	nic_iface_t *nic_iface = (nic_iface_t *) iface;
Index: uspace/lib/drv/generic/remote_pci.c
===================================================================
--- uspace/lib/drv/generic/remote_pci.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_pci.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -124,11 +124,11 @@
 }
 
-static void remote_config_space_read_8(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_config_space_read_16(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_config_space_read_32(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-
-static void remote_config_space_write_8(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_config_space_write_16(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_config_space_write_32(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
+static void remote_config_space_read_8(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_config_space_read_16(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_config_space_read_32(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+
+static void remote_config_space_write_8(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_config_space_write_16(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_config_space_write_32(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
 
 /** Remote USB interface operations. */
@@ -150,5 +150,5 @@
 };
 
-void remote_config_space_read_8(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_config_space_read_8(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(iface);
@@ -168,5 +168,5 @@
 }
 
-void remote_config_space_read_16(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_config_space_read_16(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(iface);
@@ -185,5 +185,5 @@
 	}
 }
-void remote_config_space_read_32(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_config_space_read_32(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(iface);
@@ -203,5 +203,5 @@
 }
 
-void remote_config_space_write_8(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_config_space_write_8(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(iface);
@@ -221,5 +221,5 @@
 }
 
-void remote_config_space_write_16(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_config_space_write_16(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(iface);
@@ -239,5 +239,5 @@
 }
 
-void remote_config_space_write_32(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_config_space_write_32(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(iface);
Index: uspace/lib/drv/generic/remote_pio_window.c
===================================================================
--- uspace/lib/drv/generic/remote_pio_window.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_pio_window.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -40,5 +40,5 @@
 #include "ddf/driver.h"
 
-static void remote_pio_window_get(ddf_fun_t *, void *, ipc_callid_t,
+static void remote_pio_window_get(ddf_fun_t *, void *, cap_call_handle_t,
     ipc_call_t *);
 
@@ -53,5 +53,5 @@
 
 static void remote_pio_window_get(ddf_fun_t *fun, void *ops,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	pio_window_ops_t *pio_win_ops = (pio_window_ops_t *) ops;
Index: uspace/lib/drv/generic/remote_usb.c
===================================================================
--- uspace/lib/drv/generic/remote_usb.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_usb.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -92,5 +92,5 @@
 
 static void remote_usb_get_my_description(ddf_fun_t *, void *,
-    ipc_callid_t, ipc_call_t *);
+    cap_call_handle_t, ipc_call_t *);
 
 /** Remote USB interface operations. */
@@ -107,5 +107,5 @@
 
 void remote_usb_get_my_description(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const usb_iface_t *usb_iface = (usb_iface_t *) iface;
Index: uspace/lib/drv/generic/remote_usbdiag.c
===================================================================
--- uspace/lib/drv/generic/remote_usbdiag.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_usbdiag.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -127,7 +127,7 @@
 
 static void remote_usbdiag_test_in(ddf_fun_t *, void *,
-    ipc_callid_t, ipc_call_t *);
+    cap_call_handle_t, ipc_call_t *);
 static void remote_usbdiag_test_out(ddf_fun_t *, void *,
-    ipc_callid_t, ipc_call_t *);
+    cap_call_handle_t, ipc_call_t *);
 
 /** Remote USB diagnostic interface operations. */
@@ -144,10 +144,10 @@
 
 void remote_usbdiag_test_in(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface;
 
 	size_t size;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	if (!async_data_write_receive(&data_callid, &size)) {
 		async_answer_0(data_callid, EINVAL);
@@ -198,10 +198,10 @@
 
 void remote_usbdiag_test_out(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const usbdiag_iface_t *diag_iface = (usbdiag_iface_t *) iface;
 
 	size_t size;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	if (!async_data_write_receive(&data_callid, &size)) {
 		async_answer_0(data_callid, EINVAL);
Index: uspace/lib/drv/generic/remote_usbhc.c
===================================================================
--- uspace/lib/drv/generic/remote_usbhc.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_usbhc.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -227,10 +227,10 @@
 }
 
-static void remote_usbhc_default_address_reservation(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_usbhc_device_enumerate(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_usbhc_device_remove(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_usbhc_register_endpoint(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_usbhc_unregister_endpoint(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_usbhc_transfer(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call);
+static void remote_usbhc_default_address_reservation(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_usbhc_device_enumerate(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_usbhc_device_remove(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_usbhc_register_endpoint(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_usbhc_unregister_endpoint(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_usbhc_transfer(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call);
 
 /** Remote USB interface operations. */
@@ -252,10 +252,10 @@
 
 typedef struct {
-	ipc_callid_t caller;
+	cap_call_handle_t caller;
 	usbhc_iface_transfer_request_t request;
 } async_transaction_t;
 
 void remote_usbhc_default_address_reservation(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const usbhc_iface_t *usbhc_iface = (usbhc_iface_t *) iface;
@@ -273,5 +273,5 @@
 
 static void remote_usbhc_device_enumerate(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const usbhc_iface_t *usbhc_iface = (usbhc_iface_t *) iface;
@@ -289,5 +289,5 @@
 
 static void remote_usbhc_device_remove(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	const usbhc_iface_t *usbhc_iface = (usbhc_iface_t *) iface;
@@ -304,5 +304,5 @@
 
 static void remote_usbhc_register_endpoint(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(fun);
@@ -318,5 +318,5 @@
 
 	usb_endpoint_descriptors_t ep_desc;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t len;
 
@@ -341,5 +341,5 @@
 
 static void remote_usbhc_unregister_endpoint(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(fun);
@@ -355,5 +355,5 @@
 
 	usb_pipe_desc_t pipe_desc;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t len;
 
@@ -381,5 +381,5 @@
 }
 
-static async_transaction_t *async_transaction_create(ipc_callid_t caller)
+static async_transaction_t *async_transaction_create(cap_call_handle_t caller)
 {
 	async_transaction_t *trans = calloc(1, sizeof(async_transaction_t));
@@ -410,5 +410,5 @@
 
 	errno_t err;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t size;
 	unsigned flags;
@@ -445,5 +445,5 @@
 }
 
-void remote_usbhc_transfer(ddf_fun_t *fun, void *iface, ipc_callid_t callid, ipc_call_t *call)
+void remote_usbhc_transfer(ddf_fun_t *fun, void *iface, cap_call_handle_t callid, ipc_call_t *call)
 {
 	assert(fun);
@@ -466,5 +466,5 @@
 	errno_t err = EPARTY;
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t len;
 	if (!async_data_write_receive(&data_callid, &len)
Index: uspace/lib/drv/generic/remote_usbhid.c
===================================================================
--- uspace/lib/drv/generic/remote_usbhid.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/generic/remote_usbhid.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -283,9 +283,9 @@
 }
 
-static void remote_usbhid_get_event_length(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_usbhid_get_event(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_usbhid_get_report_descriptor_length(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-static void remote_usbhid_get_report_descriptor(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-// static void remote_usbhid_(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
+static void remote_usbhid_get_event_length(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_usbhid_get_event(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_usbhid_get_report_descriptor_length(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+static void remote_usbhid_get_report_descriptor(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
+// static void remote_usbhid_(ddf_fun_t *, void *, cap_call_handle_t, ipc_call_t *);
 
 /** Remote USB HID interface operations. */
@@ -309,5 +309,5 @@
 
 void remote_usbhid_get_event_length(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	printf("remote_usbhid_get_event_length()\n");
@@ -335,5 +335,5 @@
 
 void remote_usbhid_get_event(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	usbhid_iface_t *hid_iface = (usbhid_iface_t *) iface;
@@ -347,5 +347,5 @@
 
 	size_t len;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	if (!async_data_read_receive(&data_callid, &len)) {
 		async_answer_0(callid, EPARTY);
@@ -394,5 +394,5 @@
 
 void remote_usbhid_get_report_descriptor_length(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	usbhid_iface_t *hid_iface = (usbhid_iface_t *) iface;
@@ -408,5 +408,5 @@
 
 void remote_usbhid_get_report_descriptor(ddf_fun_t *fun, void *iface,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	usbhid_iface_t *hid_iface = (usbhid_iface_t *) iface;
@@ -418,5 +418,5 @@
 
 	size_t len;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	if (!async_data_read_receive(&data_callid, &len)) {
 		async_answer_0(callid, EINVAL);
Index: uspace/lib/drv/include/dev_iface.h
===================================================================
--- uspace/lib/drv/include/dev_iface.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/drv/include/dev_iface.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -49,8 +49,8 @@
  * devices driver.
  */
-typedef void remote_iface_func_t(struct ddf_fun *, void *, ipc_callid_t,
+typedef void remote_iface_func_t(struct ddf_fun *, void *, cap_call_handle_t,
     ipc_call_t *);
 typedef remote_iface_func_t *remote_iface_func_ptr_t;
-typedef void remote_handler_t(struct ddf_fun *, ipc_callid_t, ipc_call_t *);
+typedef void remote_handler_t(struct ddf_fun *, cap_call_handle_t, ipc_call_t *);
 
 typedef struct {
Index: uspace/lib/ext4/src/ops.c
===================================================================
--- uspace/lib/ext4/src/ops.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/ext4/src/ops.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -58,7 +58,7 @@
 /* Forward declarations of auxiliary functions */
 
-static errno_t ext4_read_directory(ipc_callid_t, aoff64_t, size_t,
+static errno_t ext4_read_directory(cap_call_handle_t, aoff64_t, size_t,
     ext4_instance_t *, ext4_inode_ref_t *, size_t *);
-static errno_t ext4_read_file(ipc_callid_t, aoff64_t, size_t, ext4_instance_t *,
+static errno_t ext4_read_file(cap_call_handle_t, aoff64_t, size_t, ext4_instance_t *,
     ext4_inode_ref_t *, size_t *);
 static bool ext4_is_dots(const uint8_t *, size_t);
@@ -1021,5 +1021,5 @@
 	 * Receive the read request.
 	 */
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -1094,5 +1094,5 @@
  *
  */
-errno_t ext4_read_directory(ipc_callid_t callid, aoff64_t pos, size_t size,
+errno_t ext4_read_directory(cap_call_handle_t callid, aoff64_t pos, size_t size,
     ext4_instance_t *inst, ext4_inode_ref_t *inode_ref, size_t *rbytes)
 {
@@ -1185,5 +1185,5 @@
  *
  */
-errno_t ext4_read_file(ipc_callid_t callid, aoff64_t pos, size_t size,
+errno_t ext4_read_file(cap_call_handle_t callid, aoff64_t pos, size_t size,
     ext4_instance_t *inst, ext4_inode_ref_t *inode_ref, size_t *rbytes)
 {
@@ -1283,5 +1283,5 @@
 		return rc;
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len;
 	if (!async_data_write_receive(&callid, &len)) {
Index: uspace/lib/fs/libfs.c
===================================================================
--- uspace/lib/fs/libfs.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/fs/libfs.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -71,15 +71,15 @@
 static char fs_name[FS_NAME_MAXLEN + 1];
 
-static void libfs_link(libfs_ops_t *, fs_handle_t, ipc_callid_t,
+static void libfs_link(libfs_ops_t *, fs_handle_t, cap_call_handle_t,
     ipc_call_t *);
-static void libfs_lookup(libfs_ops_t *, fs_handle_t, ipc_callid_t,
+static void libfs_lookup(libfs_ops_t *, fs_handle_t, cap_call_handle_t,
     ipc_call_t *);
-static void libfs_stat(libfs_ops_t *, fs_handle_t, ipc_callid_t, ipc_call_t *);
-static void libfs_open_node(libfs_ops_t *, fs_handle_t, ipc_callid_t,
+static void libfs_stat(libfs_ops_t *, fs_handle_t, cap_call_handle_t, ipc_call_t *);
+static void libfs_open_node(libfs_ops_t *, fs_handle_t, cap_call_handle_t,
     ipc_call_t *);
-static void libfs_statfs(libfs_ops_t *, fs_handle_t, ipc_callid_t,
+static void libfs_statfs(libfs_ops_t *, fs_handle_t, cap_call_handle_t,
     ipc_call_t *);
 
-static void vfs_out_fsprobe(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_fsprobe(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -87,5 +87,5 @@
 	vfs_fs_probe_info_t info;
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if ((!async_data_read_receive(&callid, &size)) ||
@@ -108,5 +108,5 @@
 }
 
-static void vfs_out_mounted(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_mounted(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -133,5 +133,5 @@
 }
 
-static void vfs_out_unmounted(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_unmounted(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -143,15 +143,15 @@
 }
 
-static void vfs_out_link(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_link(cap_call_handle_t rid, ipc_call_t *req)
 {
 	libfs_link(libfs_ops, reg.fs_handle, rid, req);
 }
 
-static void vfs_out_lookup(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_lookup(cap_call_handle_t rid, ipc_call_t *req)
 {
 	libfs_lookup(libfs_ops, reg.fs_handle, rid, req);
 }
 
-static void vfs_out_read(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_read(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -170,5 +170,5 @@
 }
 
-static void vfs_out_write(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_write(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -189,5 +189,5 @@
 }
 
-static void vfs_out_truncate(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_truncate(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -202,5 +202,5 @@
 }
 
-static void vfs_out_close(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_close(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -213,5 +213,5 @@
 }
 
-static void vfs_out_destroy(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_destroy(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -230,15 +230,15 @@
 }
 
-static void vfs_out_open_node(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_open_node(cap_call_handle_t rid, ipc_call_t *req)
 {
 	libfs_open_node(libfs_ops, reg.fs_handle, rid, req);
 }
 
-static void vfs_out_stat(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_stat(cap_call_handle_t rid, ipc_call_t *req)
 {
 	libfs_stat(libfs_ops, reg.fs_handle, rid, req);
 }
 
-static void vfs_out_sync(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_sync(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -251,10 +251,10 @@
 }
 
-static void vfs_out_statfs(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_statfs(cap_call_handle_t rid, ipc_call_t *req)
 {
 	libfs_statfs(libfs_ops, reg.fs_handle, rid, req);
 }
 
-static void vfs_out_is_empty(ipc_callid_t rid, ipc_call_t *req)
+static void vfs_out_is_empty(cap_call_handle_t rid, ipc_call_t *req)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*req);
@@ -278,5 +278,5 @@
 }
 
-static void vfs_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void vfs_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	if (iid) {
@@ -291,5 +291,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
@@ -479,5 +479,5 @@
 {
 	size_t size;
-	ipc_callid_t wcall;
+	cap_call_handle_t wcall;
 
 	if (!async_data_write_receive(&wcall, &size))
@@ -492,5 +492,5 @@
 /** Link a file at a path.
  */
-void libfs_link(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid,
+void libfs_link(libfs_ops_t *ops, fs_handle_t fs_handle, cap_call_handle_t rid,
     ipc_call_t *req)
 {
@@ -540,5 +540,5 @@
  *
  */
-void libfs_lookup(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid,
+void libfs_lookup(libfs_ops_t *ops, fs_handle_t fs_handle, cap_call_handle_t rid,
     ipc_call_t *req)
 {
@@ -720,5 +720,5 @@
 }
 
-void libfs_stat(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid,
+void libfs_stat(libfs_ops_t *ops, fs_handle_t fs_handle, cap_call_handle_t rid,
     ipc_call_t *request)
 {
@@ -730,5 +730,5 @@
 	on_error(rc, answer_and_return(rid, rc));
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if ((!async_data_read_receive(&callid, &size)) ||
@@ -759,5 +759,5 @@
 }
 
-void libfs_statfs(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid,
+void libfs_statfs(libfs_ops_t *ops, fs_handle_t fs_handle, cap_call_handle_t rid,
     ipc_call_t *request)
 {
@@ -769,5 +769,5 @@
 	on_error(rc, answer_and_return(rid, rc));
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if ((!async_data_read_receive(&callid, &size)) ||
@@ -819,5 +819,5 @@
  *
  */
-void libfs_open_node(libfs_ops_t *ops, fs_handle_t fs_handle, ipc_callid_t rid,
+void libfs_open_node(libfs_ops_t *ops, fs_handle_t fs_handle, cap_call_handle_t rid,
     ipc_call_t *request)
 {
Index: uspace/lib/graph/graph.c
===================================================================
--- uspace/lib/graph/graph.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/graph/graph.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -239,5 +239,5 @@
 }
 
-static void vs_claim(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
+static void vs_claim(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	vs->client_side_handle = IPC_GET_ARG1(*icall);
@@ -246,5 +246,5 @@
 }
 
-static void vs_yield(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
+static void vs_yield(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	/* Deallocate resources for the current mode. */
@@ -267,7 +267,7 @@
 }
 
-static void vs_enumerate_modes(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void vs_enumerate_modes(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t len;
 
@@ -295,7 +295,7 @@
 }
 
-static void vs_get_default_mode(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void vs_get_default_mode(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t len;
 
@@ -328,7 +328,7 @@
 }
 
-static void vs_get_current_mode(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void vs_get_current_mode(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t len;
 
@@ -348,7 +348,7 @@
 }
 
-static void vs_get_mode(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void vs_get_mode(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t len;
 
@@ -382,7 +382,7 @@
 }
 
-static void vs_set_mode(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void vs_set_mode(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	unsigned int flags;
@@ -467,5 +467,5 @@
 }
 
-static void vs_update_damaged_region(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
+static void vs_update_damaged_region(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	sysarg_t x_offset = (IPC_GET_ARG5(*icall) >> 16);
@@ -479,5 +479,5 @@
 }
 
-static void vs_suspend(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
+static void vs_suspend(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	errno_t rc = vs->ops.suspend(vs);
@@ -485,5 +485,5 @@
 }
 
-static void vs_wakeup(visualizer_t *vs, ipc_callid_t iid, ipc_call_t *icall)
+static void vs_wakeup(visualizer_t *vs, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	errno_t rc = vs->ops.wakeup(vs);
@@ -492,8 +492,8 @@
 
 void graph_visualizer_connection(visualizer_t *vs,
-    ipc_callid_t iid, ipc_call_t *icall, void *arg)
+    cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	ipc_call_t call;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 
 	/* Claim the visualizer. */
@@ -567,10 +567,10 @@
 
 void graph_renderer_connection(renderer_t *rnd,
-    ipc_callid_t iid, ipc_call_t *icall, void *arg)
+    cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	// TODO
 
 	ipc_call_t call;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 
 	/* Accept the connection. */
@@ -598,5 +598,5 @@
 }
 
-void graph_client_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void graph_client_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Find the visualizer or renderer with the given service ID. */
Index: uspace/lib/graph/graph.h
===================================================================
--- uspace/lib/graph/graph.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/graph/graph.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -332,11 +332,11 @@
 
 /** Shall be registered to libdrv by physical device driver. */
-extern void graph_visualizer_connection(visualizer_t *, ipc_callid_t, ipc_call_t *, void *);
+extern void graph_visualizer_connection(visualizer_t *, cap_call_handle_t, ipc_call_t *, void *);
 
 /** Shall be registered to libdrv by physical device driver. */
-extern void graph_renderer_connection(renderer_t *, ipc_callid_t, ipc_call_t *, void *);
+extern void graph_renderer_connection(renderer_t *, cap_call_handle_t, ipc_call_t *, void *);
 
 /** Shall be registered to location service by emulated device driver. */
-extern void graph_client_connection(ipc_callid_t, ipc_call_t *, void *);
+extern void graph_client_connection(cap_call_handle_t, ipc_call_t *, void *);
 
 #endif
Index: uspace/lib/gui/terminal.c
===================================================================
--- uspace/lib/gui/terminal.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/gui/terminal.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -677,5 +677,5 @@
 }
 
-static void term_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void term_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	terminal_t *term = NULL;
Index: uspace/lib/hound/include/hound/protocol.h
===================================================================
--- uspace/lib/hound/include/hound/protocol.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/hound/include/hound/protocol.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -127,5 +127,5 @@
 void hound_service_set_server_iface(const hound_server_iface_t *iface);
 
-void hound_connection_handler(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+void hound_connection_handler(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 #endif
Index: uspace/lib/hound/src/protocol.c
===================================================================
--- uspace/lib/hound/src/protocol.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/hound/src/protocol.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -384,5 +384,5 @@
  * @param arg (unused)
  */
-void hound_connection_handler(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void hound_connection_handler(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	hound_context_id_t id;
@@ -402,5 +402,5 @@
 	while (1) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		switch (IPC_GET_IMETHOD(call)) {
 		case IPC_M_HOUND_CONTEXT_REGISTER:
@@ -486,5 +486,5 @@
 
 			/* Send sizes table */
-			ipc_callid_t id;
+			cap_call_handle_t id;
 			if (async_data_read_receive(&id, NULL)) {
 				ret = async_data_read_finalize(id, sizes,
@@ -496,5 +496,5 @@
 			for (unsigned i = 0; i < count; ++i) {
 				size_t size = str_size(list[i]);
-				ipc_callid_t id;
+				cap_call_handle_t id;
 				if (ret == EOK &&
 				    async_data_read_receive(&id, NULL)) {
@@ -624,5 +624,5 @@
 static void hound_server_read_data(void *stream)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	size_t size = 0;
@@ -671,5 +671,5 @@
 {
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	size_t size = 0;
Index: uspace/lib/nic/include/nic_impl.h
===================================================================
--- uspace/lib/nic/include/nic_impl.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/nic/include/nic_impl.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -82,5 +82,5 @@
 
 extern void nic_default_handler_impl(ddf_fun_t *dev_fun,
-    ipc_callid_t callid, ipc_call_t *call);
+    cap_call_handle_t callid, ipc_call_t *call);
 extern errno_t nic_open_impl(ddf_fun_t *fun);
 extern void nic_close_impl(ddf_fun_t *fun);
Index: uspace/lib/nic/src/nic_impl.c
===================================================================
--- uspace/lib/nic/src/nic_impl.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/nic/src/nic_impl.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -808,5 +808,5 @@
  * @param call		IPC call data
  */
-void nic_default_handler_impl(ddf_fun_t *fun, ipc_callid_t callid,
+void nic_default_handler_impl(ddf_fun_t *fun, cap_call_handle_t callid,
     ipc_call_t *call)
 {
Index: uspace/lib/usbhost/include/usb/host/ddf_helpers.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/ddf_helpers.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/usbhost/include/usb/host/ddf_helpers.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -58,5 +58,5 @@
 errno_t hcd_ddf_get_registers(hc_device_t *hcd, hw_res_list_parsed_t *hw_res);
 
-void hcd_ddf_gen_irq_handler(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev);
+void hcd_ddf_gen_irq_handler(cap_call_handle_t iid, ipc_call_t *call, ddf_dev_t *dev);
 
 #endif
Index: uspace/lib/usbvirt/include/usbvirt/ipc.h
===================================================================
--- uspace/lib/usbvirt/include/usbvirt/ipc.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/usbvirt/include/usbvirt/ipc.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -64,5 +64,5 @@
 
 extern bool usbvirt_is_usbvirt_method(sysarg_t);
-extern bool usbvirt_ipc_handle_call(usbvirt_device_t *, ipc_callid_t,
+extern bool usbvirt_ipc_handle_call(usbvirt_device_t *, cap_call_handle_t,
     ipc_call_t *);
 
Index: uspace/lib/usbvirt/src/device.c
===================================================================
--- uspace/lib/usbvirt/src/device.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/usbvirt/src/device.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -54,5 +54,5 @@
  * @param arg   Local argument
  */
-static void callback_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void callback_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	assert(DEV != NULL);
@@ -61,5 +61,5 @@
 
 	while (true) {
-		ipc_callid_t callid;
+		cap_call_handle_t callid;
 		ipc_call_t call;
 
Index: uspace/lib/usbvirt/src/ipc_dev.c
===================================================================
--- uspace/lib/usbvirt/src/ipc_dev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/lib/usbvirt/src/ipc_dev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -49,5 +49,5 @@
  */
 static void ipc_get_name(usbvirt_device_t *dev,
-    ipc_callid_t iid, ipc_call_t *icall)
+    cap_call_handle_t iid, ipc_call_t *icall)
 {
 	if (dev->name == NULL) {
@@ -57,5 +57,5 @@
 	size_t size = str_size(dev->name);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t accepted_size;
 	if (!async_data_read_receive(&callid, &accepted_size)) {
@@ -79,5 +79,5 @@
  */
 static void ipc_control_read(usbvirt_device_t *dev,
-    ipc_callid_t iid, ipc_call_t *icall)
+    cap_call_handle_t iid, ipc_call_t *icall)
 {
 	errno_t rc;
@@ -94,5 +94,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	if (!async_data_read_receive(&data_callid, &data_len)) {
 		async_answer_0(iid, EPARTY);
@@ -134,5 +134,5 @@
  */
 static void ipc_control_write(usbvirt_device_t *dev,
-    ipc_callid_t iid, ipc_call_t *icall)
+    cap_call_handle_t iid, ipc_call_t *icall)
 {
 	size_t data_buffer_len = IPC_GET_ARG1(*icall);
@@ -179,5 +179,5 @@
 static void ipc_data_in(usbvirt_device_t *dev,
     usb_transfer_type_t transfer_type,
-    ipc_callid_t iid, ipc_call_t *icall)
+    cap_call_handle_t iid, ipc_call_t *icall)
 {
 	usb_endpoint_t endpoint = IPC_GET_ARG1(*icall);
@@ -186,5 +186,5 @@
 
 	size_t data_len = 0;
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	if (!async_data_read_receive(&data_callid, &data_len)) {
 		async_answer_0(iid, EPARTY);
@@ -223,5 +223,5 @@
 static void ipc_data_out(usbvirt_device_t *dev,
     usb_transfer_type_t transfer_type,
-    ipc_callid_t iid, ipc_call_t *icall)
+    cap_call_handle_t iid, ipc_call_t *icall)
 {
 	usb_endpoint_t endpoint = IPC_GET_ARG1(*icall);
@@ -253,5 +253,5 @@
  */
 bool usbvirt_ipc_handle_call(usbvirt_device_t *dev,
-    ipc_callid_t callid, ipc_call_t *call)
+    cap_call_handle_t callid, ipc_call_t *call)
 {
 	switch (IPC_GET_IMETHOD(*call)) {
Index: uspace/srv/audio/hound/audio_device.c
===================================================================
--- uspace/srv/audio/hound/audio_device.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/audio/hound/audio_device.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -53,5 +53,5 @@
 static errno_t device_sink_connection_callback(audio_sink_t *sink, bool new);
 static errno_t device_source_connection_callback(audio_source_t *source, bool new);
-static void device_event_callback(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void device_event_callback(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 static errno_t device_check_format(audio_sink_t* sink);
 static errno_t get_buffer(audio_device_t *dev);
@@ -261,5 +261,5 @@
  * @param arg (unused)
  */
-static void device_event_callback(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void device_event_callback(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	struct timeval time1;
@@ -272,5 +272,5 @@
 	while (1) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		async_answer_0(callid, EOK);
 		switch(IPC_GET_IMETHOD(call)) {
Index: uspace/srv/bd/file_bd/file_bd.c
===================================================================
--- uspace/srv/bd/file_bd/file_bd.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/bd/file_bd/file_bd.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -68,5 +68,5 @@
 static void print_usage(void);
 static errno_t file_bd_init(const char *fname);
-static void file_bd_connection(ipc_callid_t iid, ipc_call_t *icall, void *);
+static void file_bd_connection(cap_call_handle_t iid, ipc_call_t *icall, void *);
 
 static errno_t file_bd_open(bd_srvs_t *, bd_srv_t *);
@@ -201,5 +201,5 @@
 }
 
-static void file_bd_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void file_bd_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	bd_conn(iid, icall, &bd_srvs);
Index: uspace/srv/bd/rd/rd.c
===================================================================
--- uspace/srv/bd/rd/rd.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/bd/rd/rd.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -94,5 +94,5 @@
 static bd_srvs_t bd_srvs;
 
-static void rd_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void rd_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	bd_conn(iid, icall, &bd_srvs);
Index: uspace/srv/bd/sata_bd/sata_bd.c
===================================================================
--- uspace/srv/bd/sata_bd/sata_bd.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/bd/sata_bd/sata_bd.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -167,5 +167,5 @@
 
 /** Block device connection handler. */
-static void sata_bd_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void sata_bd_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	service_id_t dsid;
Index: uspace/srv/bd/vbd/disk.c
===================================================================
--- uspace/srv/bd/vbd/disk.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/bd/vbd/disk.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -1068,5 +1068,5 @@
 }
 
-void vbds_bd_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void vbds_bd_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	vbds_part_t *part;
Index: uspace/srv/bd/vbd/disk.h
===================================================================
--- uspace/srv/bd/vbd/disk.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/bd/vbd/disk.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -55,5 +55,5 @@
 extern errno_t vbds_part_delete(vbds_part_id_t);
 extern errno_t vbds_suggest_ptype(service_id_t, label_pcnt_t, label_ptype_t *);
-extern void vbds_bd_conn(ipc_callid_t, ipc_call_t *, void *);
+extern void vbds_bd_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 #endif
Index: uspace/srv/bd/vbd/vbd.c
===================================================================
--- uspace/srv/bd/vbd/vbd.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/bd/vbd/vbd.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -53,5 +53,5 @@
 #define NAME  "vbd"
 
-static void vbds_client_conn(ipc_callid_t, ipc_call_t *, void *);
+static void vbds_client_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 static service_id_t ctl_sid;
@@ -87,7 +87,7 @@
 }
 
-static void vbds_get_disks_srv(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void vbds_get_disks_srv(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -121,5 +121,5 @@
 }
 
-static void vbds_disk_info_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vbds_disk_info_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t disk_sid;
@@ -136,5 +136,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -161,5 +161,5 @@
 }
 
-static void vbds_label_create_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vbds_label_create_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t disk_sid;
@@ -175,5 +175,5 @@
 }
 
-static void vbds_label_delete_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vbds_label_delete_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t disk_sid;
@@ -187,7 +187,7 @@
 }
 
-static void vbds_label_get_parts_srv(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void vbds_label_get_parts_srv(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -225,5 +225,5 @@
 }
 
-static void vbds_part_get_info_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vbds_part_get_info_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	vbds_part_id_t part;
@@ -240,5 +240,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -265,5 +265,5 @@
 }
 
-static void vbds_part_create_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vbds_part_create_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t disk_sid;
@@ -276,5 +276,5 @@
 	disk_sid = IPC_GET_ARG1(*icall);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -306,5 +306,5 @@
 }
 
-static void vbds_part_delete_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vbds_part_delete_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	vbds_part_id_t part;
@@ -318,5 +318,5 @@
 }
 
-static void vbds_suggest_ptype_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vbds_suggest_ptype_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t disk_sid;
@@ -336,5 +336,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -360,5 +360,5 @@
 }
 
-static void vbds_ctl_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void vbds_ctl_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "vbds_client_conn()");
@@ -369,5 +369,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
@@ -412,5 +412,5 @@
 }
 
-static void vbds_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void vbds_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	service_id_t sid;
Index: uspace/srv/clipboard/clipboard.c
===================================================================
--- uspace/srv/clipboard/clipboard.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/clipboard/clipboard.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -47,5 +47,5 @@
 static service_id_t svc_id;
 
-static void clip_put_data(ipc_callid_t rid, ipc_call_t *request)
+static void clip_put_data(cap_call_handle_t rid, ipc_call_t *request)
 {
 	char *data;
@@ -91,9 +91,9 @@
 }
 
-static void clip_get_data(ipc_callid_t rid, ipc_call_t *request)
+static void clip_get_data(cap_call_handle_t rid, ipc_call_t *request)
 {
 	fibril_mutex_lock(&clip_mtx);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 
@@ -141,5 +141,5 @@
 }
 
-static void clip_content(ipc_callid_t rid, ipc_call_t *request)
+static void clip_content(cap_call_handle_t rid, ipc_call_t *request)
 {
 	fibril_mutex_lock(&clip_mtx);
@@ -152,5 +152,5 @@
 }
 
-static void clip_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void clip_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Accept connection */
@@ -159,5 +159,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/devman/client_conn.c
===================================================================
--- uspace/srv/devman/client_conn.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/devman/client_conn.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -61,5 +61,5 @@
 /** Find handle for the device instance identified by the device's path in the
  * device tree. */
-static void devman_function_get_handle(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_function_get_handle(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	char *pathname;
@@ -100,5 +100,5 @@
 
 /** Get device match ID. */
-static void devman_fun_get_match_id(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_fun_get_match_id(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t handle = IPC_GET_ARG1(*icall);
@@ -112,5 +112,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t data_len;
 	if (!async_data_read_receive(&data_callid, &data_len)) {
@@ -163,5 +163,5 @@
 
 /** Get device name. */
-static void devman_fun_get_name(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_fun_get_name(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t handle = IPC_GET_ARG1(*icall);
@@ -173,5 +173,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t data_len;
 	if (!async_data_read_receive(&data_callid, &data_len)) {
@@ -216,5 +216,5 @@
 
 /** Get function driver name. */
-static void devman_fun_get_driver_name(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_fun_get_driver_name(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t handle = IPC_GET_ARG1(*icall);
@@ -226,5 +226,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t data_len;
 	if (!async_data_read_receive(&data_callid, &data_len)) {
@@ -281,5 +281,5 @@
 
 /** Get device path. */
-static void devman_fun_get_path(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_fun_get_path(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t handle = IPC_GET_ARG1(*icall);
@@ -291,5 +291,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t data_len;
 	if (!async_data_read_receive(&data_callid, &data_len)) {
@@ -334,5 +334,5 @@
 
 /** Get handle for parent function of a device. */
-static void devman_dev_get_parent(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_dev_get_parent(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	dev_node_t *dev;
@@ -358,7 +358,7 @@
 }
 
-static void devman_dev_get_functions(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void devman_dev_get_functions(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -407,5 +407,5 @@
 
 /** Get handle for child device of a function. */
-static void devman_fun_get_child(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_fun_get_child(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	fun_node_t *fun;
@@ -437,5 +437,5 @@
  * of this function is linked to state of another function somehow).
  */
-static void devman_fun_online(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_fun_online(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	fun_node_t *fun;
@@ -462,5 +462,5 @@
  * function somehow).
  */
-static void devman_fun_offline(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_fun_offline(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	fun_node_t *fun;
@@ -480,5 +480,5 @@
 
 /** Find handle for the function instance identified by its service ID. */
-static void devman_fun_sid_to_handle(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_fun_sid_to_handle(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	fun_node_t *fun;
@@ -506,7 +506,7 @@
 
 /** Get list of all registered drivers. */
-static void devman_get_drivers(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void devman_get_drivers(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -538,7 +538,7 @@
 }
 
-static void devman_driver_get_devices(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void devman_driver_get_devices(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -580,5 +580,5 @@
 
 /** Find driver by name. */
-static void devman_driver_get_handle(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_driver_get_handle(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	char *drvname;
@@ -603,5 +603,5 @@
 
 /** Get driver match ID. */
-static void devman_driver_get_match_id(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_driver_get_match_id(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t handle = IPC_GET_ARG1(*icall);
@@ -614,5 +614,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t data_len;
 	if (!async_data_read_receive(&data_callid, &data_len)) {
@@ -654,5 +654,5 @@
 
 /** Get driver name. */
-static void devman_driver_get_name(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_driver_get_name(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	devman_handle_t handle = IPC_GET_ARG1(*icall);
@@ -664,5 +664,5 @@
 	}
 
-	ipc_callid_t data_callid;
+	cap_call_handle_t data_callid;
 	size_t data_len;
 	if (!async_data_read_receive(&data_callid, &data_len)) {
@@ -694,5 +694,5 @@
 
 /** Get driver state. */
-static void devman_driver_get_state(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_driver_get_state(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	driver_t *drv;
@@ -708,5 +708,5 @@
 
 /** Forcibly load a driver. */
-static void devman_driver_load(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_driver_load(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	driver_t *drv;
@@ -727,5 +727,5 @@
 
 /** Unload a driver by user request. */
-static void devman_driver_unload(ipc_callid_t iid, ipc_call_t *icall)
+static void devman_driver_unload(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	driver_t *drv;
@@ -746,5 +746,5 @@
 
 /** Function for handling connections from a client to the device manager. */
-void devman_connection_client(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void devman_connection_client(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Accept connection. */
@@ -753,5 +753,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/devman/client_conn.h
===================================================================
--- uspace/srv/devman/client_conn.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/devman/client_conn.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -36,5 +36,5 @@
 #include "devman.h"
 
-extern void devman_connection_client(ipc_callid_t, ipc_call_t *, void *);
+extern void devman_connection_client(cap_call_handle_t, ipc_call_t *, void *);
 
 #endif
Index: uspace/srv/devman/drv_conn.c
===================================================================
--- uspace/srv/devman/drv_conn.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/devman/drv_conn.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -64,5 +64,5 @@
 
 /** Register running driver. */
-static driver_t *devman_driver_register(ipc_callid_t callid, ipc_call_t *call)
+static driver_t *devman_driver_register(cap_call_handle_t callid, ipc_call_t *call)
 {
 	driver_t *driver = NULL;
@@ -166,5 +166,5 @@
 {
 	match_id_t *match_id = create_match_id();
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	ipc_call_t call;
 	errno_t rc = 0;
@@ -230,5 +230,5 @@
  * Child devices are registered by their parent's device driver.
  */
-static void devman_add_function(ipc_callid_t callid, ipc_call_t *call)
+static void devman_add_function(cap_call_handle_t callid, ipc_call_t *call)
 {
 	fun_type_t ftype = (fun_type_t) IPC_GET_ARG1(*call);
@@ -328,5 +328,5 @@
 }
 
-static void devman_add_function_to_cat(ipc_callid_t callid, ipc_call_t *call)
+static void devman_add_function_to_cat(cap_call_handle_t callid, ipc_call_t *call)
 {
 	devman_handle_t handle = IPC_GET_ARG1(*call);
@@ -377,5 +377,5 @@
  *
  */
-static void devman_drv_fun_online(ipc_callid_t iid, ipc_call_t *icall,
+static void devman_drv_fun_online(cap_call_handle_t iid, ipc_call_t *icall,
     driver_t *drv)
 {
@@ -421,5 +421,5 @@
  *
  */
-static void devman_drv_fun_offline(ipc_callid_t iid, ipc_call_t *icall,
+static void devman_drv_fun_offline(cap_call_handle_t iid, ipc_call_t *icall,
     driver_t *drv)
 {
@@ -458,5 +458,5 @@
 
 /** Remove function. */
-static void devman_remove_function(ipc_callid_t callid, ipc_call_t *call)
+static void devman_remove_function(cap_call_handle_t callid, ipc_call_t *call)
 {
 	devman_handle_t fun_handle = IPC_GET_ARG1(*call);
@@ -586,5 +586,5 @@
 
 /** Function for handling connections from a driver to the device manager. */
-void devman_connection_driver(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void devman_connection_driver(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	client_t *client;
@@ -602,5 +602,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/devman/drv_conn.h
===================================================================
--- uspace/srv/devman/drv_conn.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/devman/drv_conn.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -37,5 +37,5 @@
 #include "devman.h"
 
-extern void devman_connection_driver(ipc_callid_t, ipc_call_t *, void *);
+extern void devman_connection_driver(cap_call_handle_t, ipc_call_t *, void *);
 
 #endif
Index: uspace/srv/devman/main.c
===================================================================
--- uspace/srv/devman/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/devman/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -66,5 +66,5 @@
 dev_tree_t device_tree;
 
-static void devman_connection_device(ipc_callid_t iid, ipc_call_t *icall,
+static void devman_connection_device(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
@@ -149,5 +149,5 @@
 }
 
-static void devman_connection_parent(ipc_callid_t iid, ipc_call_t *icall,
+static void devman_connection_parent(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
@@ -229,5 +229,5 @@
 }
 
-static void devman_forward(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void devman_forward(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	iface_t iface = IPC_GET_ARG1(*icall);
Index: uspace/srv/fs/cdfs/cdfs_ops.c
===================================================================
--- uspace/srv/fs/cdfs/cdfs_ops.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/cdfs/cdfs_ops.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -1271,5 +1271,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len;
 	if (!async_data_read_receive(&callid, &len)) {
Index: uspace/srv/fs/exfat/exfat_ops.c
===================================================================
--- uspace/srv/fs/exfat/exfat_ops.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/exfat/exfat_ops.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -1337,5 +1337,5 @@
 	nodep = EXFAT_NODE(fn);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len;
 	if (!async_data_read_receive(&callid, &len)) {
@@ -1481,5 +1481,5 @@
 	nodep = EXFAT_NODE(fn);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len;
 	if (!async_data_write_receive(&callid, &len)) {
Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/fat/fat_ops.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -1226,5 +1226,5 @@
 	nodep = FAT_NODE(fn);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len;
 	if (!async_data_read_receive(&callid, &len)) {
@@ -1338,5 +1338,5 @@
 	nodep = FAT_NODE(fn);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len;
 	if (!async_data_write_receive(&callid, &len)) {
Index: uspace/srv/fs/locfs/locfs_ops.c
===================================================================
--- uspace/srv/fs/locfs/locfs_ops.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/locfs/locfs_ops.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -478,5 +478,5 @@
 {
 	if (index == 0) {
-		ipc_callid_t callid;
+		cap_call_handle_t callid;
 		size_t size;
 		if (!async_data_read_receive(&callid, &size)) {
@@ -532,5 +532,5 @@
 	if (type == LOC_OBJECT_NAMESPACE) {
 		/* Namespace directory */
-		ipc_callid_t callid;
+		cap_call_handle_t callid;
 		size_t size;
 		if (!async_data_read_receive(&callid, &size)) {
@@ -568,5 +568,5 @@
 		assert(dev->sess);
 
-		ipc_callid_t callid;
+		cap_call_handle_t callid;
 		if (!async_data_read_receive(&callid, NULL)) {
 			fibril_mutex_unlock(&services_mutex);
@@ -632,5 +632,5 @@
 		assert(dev->sess);
 
-		ipc_callid_t callid;
+		cap_call_handle_t callid;
 		if (!async_data_write_receive(&callid, NULL)) {
 			fibril_mutex_unlock(&services_mutex);
Index: uspace/srv/fs/mfs/mfs_ops.c
===================================================================
--- uspace/srv/fs/mfs/mfs_ops.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/mfs/mfs_ops.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -837,5 +837,5 @@
 	struct mfs_ino_info *ino_i;
 	size_t len, bytes = 0;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 
 	mnode = fn->data;
@@ -946,5 +946,5 @@
 		return ENOENT;
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len;
 
Index: uspace/srv/fs/tmpfs/tmpfs_ops.c
===================================================================
--- uspace/srv/fs/tmpfs/tmpfs_ops.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/tmpfs/tmpfs_ops.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -484,5 +484,5 @@
 	 * Receive the read request.
 	 */
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -547,5 +547,5 @@
 	 * Receive the write request.
 	 */
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
Index: uspace/srv/fs/udf/udf_file.c
===================================================================
--- uspace/srv/fs/udf/udf_file.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/udf/udf_file.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -576,5 +576,5 @@
  *
  */
-errno_t udf_read_file(size_t *read_len, ipc_callid_t callid, udf_node_t *node,
+errno_t udf_read_file(size_t *read_len, cap_call_handle_t callid, udf_node_t *node,
     aoff64_t pos, size_t len)
 {
Index: uspace/srv/fs/udf/udf_file.h
===================================================================
--- uspace/srv/fs/udf/udf_file.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/udf/udf_file.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -198,5 +198,5 @@
 extern errno_t udf_read_allocation_sequence(udf_node_t *, uint8_t *, uint16_t,
     uint32_t, uint32_t);
-extern errno_t udf_read_file(size_t *, ipc_callid_t, udf_node_t *, aoff64_t,
+extern errno_t udf_read_file(size_t *, cap_call_handle_t, udf_node_t *, aoff64_t,
     size_t);
 extern errno_t udf_get_fid(udf_file_identifier_descriptor_t **, block_t **,
Index: uspace/srv/fs/udf/udf_ops.c
===================================================================
--- uspace/srv/fs/udf/udf_ops.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/fs/udf/udf_ops.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -464,5 +464,5 @@
 	udf_node_t *node = UDF_NODE(rfn);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len = 0;
 	if (!async_data_read_receive(&callid, &len)) {
Index: uspace/srv/hid/compositor/compositor.c
===================================================================
--- uspace/srv/hid/compositor/compositor.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/compositor/compositor.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -589,9 +589,9 @@
 }
 
-static void comp_window_get_event(window_t *win, ipc_callid_t iid, ipc_call_t *icall)
+static void comp_window_get_event(window_t *win, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	window_event_t *event = (window_event_t *) prodcons_consume(&win->queue);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t len;
 
@@ -613,5 +613,5 @@
 }
 
-static void comp_window_damage(window_t *win, ipc_callid_t iid, ipc_call_t *icall)
+static void comp_window_damage(window_t *win, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	double x = IPC_GET_ARG1(*icall);
@@ -634,5 +634,5 @@
 }
 
-static void comp_window_grab(window_t *win, ipc_callid_t iid, ipc_call_t *icall)
+static void comp_window_grab(window_t *win, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	sysarg_t pos_id = IPC_GET_ARG1(*icall);
@@ -693,7 +693,7 @@
 }
 
-static void comp_window_resize(window_t *win, ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void comp_window_resize(window_t *win, cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	unsigned int flags;
@@ -836,5 +836,5 @@
 }
 
-static void comp_window_close(window_t *win, ipc_callid_t iid, ipc_call_t *icall)
+static void comp_window_close(window_t *win, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	/* Stop managing the window. */
@@ -879,5 +879,5 @@
 }
 
-static void comp_window_close_request(window_t *win, ipc_callid_t iid, ipc_call_t *icall)
+static void comp_window_close_request(window_t *win, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	window_event_t *event = (window_event_t *) malloc(sizeof(window_event_t));
@@ -894,8 +894,8 @@
 }
 
-static void client_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void client_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	ipc_call_t call;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	service_id_t service_id = (service_id_t) IPC_GET_ARG2(*icall);
 
@@ -1042,5 +1042,5 @@
 }
 
-static void comp_mode_change(viewport_t *vp, ipc_callid_t iid, ipc_call_t *icall)
+static void comp_mode_change(viewport_t *vp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	sysarg_t mode_idx = IPC_GET_ARG2(*icall);
@@ -1121,5 +1121,5 @@
 #endif
 
-static void comp_visualizer_disconnect(viewport_t *vp, ipc_callid_t iid, ipc_call_t *icall)
+static void comp_visualizer_disconnect(viewport_t *vp, cap_call_handle_t iid, ipc_call_t *icall)
 {
 	/* Release viewport resources. */
@@ -1137,5 +1137,5 @@
 }
 
-static void vsl_notifications(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void vsl_notifications(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	viewport_t *vp = NULL;
@@ -1155,5 +1155,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/srv/hid/console/console.c
===================================================================
--- uspace/srv/hid/console/console.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/console/console.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -507,5 +507,5 @@
 }
 
-static void client_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void client_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	console_t *cons = NULL;
Index: uspace/srv/hid/input/ctl/kbdev.c
===================================================================
--- uspace/srv/hid/input/ctl/kbdev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/input/ctl/kbdev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -54,5 +54,5 @@
 static void kbdev_ctl_set_ind(kbd_dev_t *, unsigned int);
 
-static void kbdev_callback_conn(ipc_callid_t, ipc_call_t *, void *arg);
+static void kbdev_callback_conn(cap_call_handle_t, ipc_call_t *, void *arg);
 
 kbd_ctl_ops_t kbdev_ctl = {
@@ -147,5 +147,5 @@
 }
 
-static void kbdev_callback_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void kbdev_callback_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	kbdev_t *kbdev;
@@ -158,5 +158,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid;
+		cap_call_handle_t callid;
 
 		callid = async_get_call(&call);
Index: uspace/srv/hid/input/input.c
===================================================================
--- uspace/srv/hid/input/input.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/input/input.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -320,5 +320,5 @@
 
 /** New client connection */
-static void client_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void client_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	client_t *client = (client_t *) async_get_client_data();
@@ -332,5 +332,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/srv/hid/input/proto/mousedev.c
===================================================================
--- uspace/srv/hid/input/proto/mousedev.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/input/proto/mousedev.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -70,5 +70,5 @@
 }
 
-static void mousedev_callback_conn(ipc_callid_t iid, ipc_call_t *icall,
+static void mousedev_callback_conn(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
@@ -78,5 +78,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/srv/hid/isdv4_tablet/main.c
===================================================================
--- uspace/srv/hid/isdv4_tablet/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/isdv4_tablet/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -63,5 +63,5 @@
 }
 
-static void mouse_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void mouse_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	async_answer_0(iid, EOK);
@@ -79,5 +79,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/hid/output/output.c
===================================================================
--- uspace/srv/hid/output/output.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/output/output.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -78,5 +78,5 @@
 }
 
-static void srv_yield(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_yield(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	errno_t ret = EOK;
@@ -93,5 +93,5 @@
 }
 
-static void srv_claim(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_claim(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	errno_t ret = EOK;
@@ -108,5 +108,5 @@
 }
 
-static void srv_get_dimensions(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_get_dimensions(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	sysarg_t cols = MAX_COLS;
@@ -121,5 +121,5 @@
 }
 
-static void srv_get_caps(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_get_caps(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	console_caps_t caps = 0;
@@ -134,5 +134,5 @@
 }
 
-static frontbuf_t *resolve_frontbuf(sysarg_t handle, ipc_callid_t iid)
+static frontbuf_t *resolve_frontbuf(sysarg_t handle, cap_call_handle_t iid)
 {
 	frontbuf_t *frontbuf = NULL;
@@ -152,5 +152,5 @@
 }
 
-static void srv_frontbuf_create(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_frontbuf_create(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	frontbuf_t *frontbuf = (frontbuf_t *) malloc(sizeof(frontbuf_t));
@@ -162,5 +162,5 @@
 	link_initialize(&frontbuf->link);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	if (!async_share_out_receive(&callid, &frontbuf->size,
 	    &frontbuf->flags)) {
@@ -181,5 +181,5 @@
 }
 
-static void srv_frontbuf_destroy(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_frontbuf_destroy(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	frontbuf_t *frontbuf = resolve_frontbuf(IPC_GET_ARG1(*icall), iid);
@@ -194,5 +194,5 @@
 }
 
-static void srv_cursor_update(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_cursor_update(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	frontbuf_t *frontbuf = resolve_frontbuf(IPC_GET_ARG1(*icall), iid);
@@ -226,5 +226,5 @@
 }
 
-static void srv_set_style(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_set_style(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	list_foreach(outdevs, link, outdev_t, dev) {
@@ -237,5 +237,5 @@
 }
 
-static void srv_set_color(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_set_color(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	list_foreach(outdevs, link, outdev_t, dev) {
@@ -252,5 +252,5 @@
 }
 
-static void srv_set_rgb_color(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_set_rgb_color(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	list_foreach(outdevs, link, outdev_t, dev) {
@@ -302,5 +302,5 @@
 }
 
-static void srv_update(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_update(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	frontbuf_t *frontbuf = resolve_frontbuf(IPC_GET_ARG1(*icall), iid);
@@ -352,5 +352,5 @@
 }
 
-static void srv_damage(ipc_callid_t iid, ipc_call_t *icall)
+static void srv_damage(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	frontbuf_t *frontbuf = resolve_frontbuf(IPC_GET_ARG1(*icall), iid);
@@ -391,5 +391,5 @@
 }
 
-static void client_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void client_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Accept the connection */
@@ -398,5 +398,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/srv/hid/remcons/remcons.c
===================================================================
--- uspace/srv/hid/remcons/remcons.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/remcons/remcons.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -216,5 +216,5 @@
 
 /** Callback when client connects to a telnet terminal. */
-static void client_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void client_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Find the user. */
Index: uspace/srv/hid/rfb/main.c
===================================================================
--- uspace/srv/hid/rfb/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/rfb/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -146,5 +146,5 @@
 }
 
-static void client_connection(ipc_callid_t callid, ipc_call_t *call, void *data)
+static void client_connection(cap_call_handle_t callid, ipc_call_t *call, void *data)
 {
 	graph_visualizer_connection(vis, callid, call, data);
Index: uspace/srv/hid/s3c24xx_ts/s3c24xx_ts.c
===================================================================
--- uspace/srv/hid/s3c24xx_ts/s3c24xx_ts.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hid/s3c24xx_ts/s3c24xx_ts.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -69,5 +69,5 @@
 static s3c24xx_ts_t *ts;
 
-static void s3c24xx_ts_connection(ipc_callid_t iid, ipc_call_t *icall,
+static void s3c24xx_ts_connection(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg);
 static void s3c24xx_ts_irq_handler(ipc_call_t *call, void *);
@@ -373,5 +373,5 @@
 
 /** Handle mouse client connection. */
-static void s3c24xx_ts_connection(ipc_callid_t iid, ipc_call_t *icall,
+static void s3c24xx_ts_connection(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
@@ -380,5 +380,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/srv/hw/char/s3c24xx_uart/s3c24xx_uart.c
===================================================================
--- uspace/srv/hw/char/s3c24xx_uart/s3c24xx_uart.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/hw/char/s3c24xx_uart/s3c24xx_uart.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -64,5 +64,5 @@
 static s3c24xx_uart_t *uart;
 
-static void s3c24xx_uart_connection(ipc_callid_t, ipc_call_t *, void *);
+static void s3c24xx_uart_connection(cap_call_handle_t, ipc_call_t *, void *);
 static void s3c24xx_uart_irq_handler(ipc_call_t *, void *);
 static int s3c24xx_uart_init(s3c24xx_uart_t *);
@@ -113,5 +113,5 @@
 
 /** Character device connection handler. */
-static void s3c24xx_uart_connection(ipc_callid_t iid, ipc_call_t *icall,
+static void s3c24xx_uart_connection(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
Index: uspace/srv/loader/main.c
===================================================================
--- uspace/srv/loader/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/loader/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -90,7 +90,7 @@
 static bool connected = false;
 
-static void ldr_get_taskid(ipc_callid_t rid, ipc_call_t *request)
-{
-	ipc_callid_t callid;
+static void ldr_get_taskid(cap_call_handle_t rid, ipc_call_t *request)
+{
+	cap_call_handle_t callid;
 	task_id_t task_id;
 	size_t len;
@@ -116,5 +116,5 @@
  * @param request
  */
-static void ldr_set_cwd(ipc_callid_t rid, ipc_call_t *request)
+static void ldr_set_cwd(cap_call_handle_t rid, ipc_call_t *request)
 {
 	char *buf;
@@ -136,7 +136,7 @@
  * @param request
  */
-static void ldr_set_program(ipc_callid_t rid, ipc_call_t *request)
-{
-	ipc_callid_t writeid;
+static void ldr_set_program(cap_call_handle_t rid, ipc_call_t *request)
+{
+	cap_call_handle_t writeid;
 	size_t namesize;
 	if (!async_data_write_receive(&writeid, &namesize)) {
@@ -169,5 +169,5 @@
  * @param request
  */
-static void ldr_set_args(ipc_callid_t rid, ipc_call_t *request)
+static void ldr_set_args(cap_call_handle_t rid, ipc_call_t *request)
 {
 	char *buf;
@@ -234,5 +234,5 @@
  * @param request
  */
-static void ldr_add_inbox(ipc_callid_t rid, ipc_call_t *request)
+static void ldr_add_inbox(cap_call_handle_t rid, ipc_call_t *request)
 {
 	if (inbox_entries == INBOX_MAX_ENTRIES) {
@@ -241,5 +241,5 @@
 	}
 
-	ipc_callid_t writeid;
+	cap_call_handle_t writeid;
 	size_t namesize;
 	if (!async_data_write_receive(&writeid, &namesize)) {
@@ -281,5 +281,5 @@
  * @return 0 on success, !0 on error.
  */
-static int ldr_load(ipc_callid_t rid, ipc_call_t *request)
+static int ldr_load(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int rc = elf_load(program_fd, &prog_info);
@@ -310,5 +310,5 @@
  * @return 0 on success, !0 on error.
  */
-static __attribute__((noreturn)) void ldr_run(ipc_callid_t rid,
+static __attribute__((noreturn)) void ldr_run(cap_call_handle_t rid,
     ipc_call_t *request)
 {
@@ -332,5 +332,5 @@
  * to execute the loaded program).
  */
-static void ldr_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void ldr_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Already have a connection? */
@@ -351,5 +351,5 @@
 		errno_t retval;
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/locsrv/locsrv.c
===================================================================
--- uspace/srv/locsrv/locsrv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/locsrv/locsrv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -339,5 +339,5 @@
 {
 	ipc_call_t icall;
-	ipc_callid_t iid = async_get_call(&icall);
+	cap_call_handle_t iid = async_get_call(&icall);
 
 	if (IPC_GET_IMETHOD(icall) != LOC_SERVER_REGISTER) {
@@ -453,5 +453,5 @@
  *
  */
-static void loc_service_register(ipc_callid_t iid, ipc_call_t *icall,
+static void loc_service_register(cap_call_handle_t iid, ipc_call_t *icall,
     loc_server_t *server)
 {
@@ -541,5 +541,5 @@
  *
  */
-static void loc_service_unregister(ipc_callid_t iid, ipc_call_t *icall,
+static void loc_service_unregister(cap_call_handle_t iid, ipc_call_t *icall,
     loc_server_t *server)
 {
@@ -568,7 +568,7 @@
 }
 
-static void loc_category_get_name(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void loc_category_get_name(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -607,7 +607,7 @@
 }
 
-static void loc_service_get_name(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void loc_service_get_name(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -656,7 +656,7 @@
 }
 
-static void loc_service_get_server_name(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void loc_service_get_server_name(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -708,5 +708,5 @@
  *
  */
-static void loc_forward(ipc_callid_t callid, ipc_call_t *call, void *arg)
+static void loc_forward(cap_call_handle_t callid, ipc_call_t *call, void *arg)
 {
 	fibril_mutex_lock(&services_list_mutex);
@@ -738,5 +738,5 @@
  *
  */
-static void loc_service_get_id(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_service_get_id(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	char *fqsn;
@@ -801,5 +801,5 @@
  *
  */
-static void loc_namespace_get_id(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_namespace_get_id(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	char *name;
@@ -855,5 +855,5 @@
  *
  */
-static void loc_callback_create(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_callback_create(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	cb_sess_t *cb_sess = calloc(1, sizeof(cb_sess_t));
@@ -899,5 +899,5 @@
  *
  */
-static void loc_category_get_id(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_category_get_id(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	char *name;
@@ -927,5 +927,5 @@
 }
 
-static void loc_id_probe(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_id_probe(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	fibril_mutex_lock(&services_list_mutex);
@@ -946,5 +946,5 @@
 }
 
-static void loc_get_namespace_count(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_get_namespace_count(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	fibril_mutex_lock(&services_list_mutex);
@@ -953,5 +953,5 @@
 }
 
-static void loc_get_service_count(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_get_service_count(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	fibril_mutex_lock(&services_list_mutex);
@@ -967,7 +967,7 @@
 }
 
-static void loc_get_categories(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void loc_get_categories(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -1006,7 +1006,7 @@
 }
 
-static void loc_get_namespaces(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void loc_get_namespaces(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -1055,10 +1055,10 @@
 }
 
-static void loc_get_services(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_get_services(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	/* FIXME: Use faster algorithm which can make better use
 	   of namespaces */
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -1118,7 +1118,7 @@
 }
 
-static void loc_category_get_svcs(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void loc_category_get_svcs(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -1170,5 +1170,5 @@
 
 
-static void loc_null_create(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_null_create(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	fibril_mutex_lock(&null_services_mutex);
@@ -1244,5 +1244,5 @@
 }
 
-static void loc_null_destroy(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_null_destroy(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	sysarg_t i = IPC_GET_ARG1(*icall);
@@ -1272,5 +1272,5 @@
 }
 
-static void loc_service_add_to_cat(ipc_callid_t iid, ipc_call_t *icall)
+static void loc_service_add_to_cat(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	category_t *cat;
@@ -1393,5 +1393,5 @@
  *
  */
-static void loc_connection_supplier(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void loc_connection_supplier(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Accept connection */
@@ -1404,5 +1404,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
@@ -1451,5 +1451,5 @@
  *
  */
-static void loc_connection_consumer(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void loc_connection_consumer(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Accept connection */
@@ -1458,5 +1458,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/logger/ctl.c
===================================================================
--- uspace/srv/logger/ctl.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/logger/ctl.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -63,5 +63,5 @@
 }
 
-void logger_connection_handler_control(ipc_callid_t callid)
+void logger_connection_handler_control(cap_call_handle_t callid)
 {
 	errno_t rc;
@@ -73,5 +73,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/logger/logger.h
===================================================================
--- uspace/srv/logger/logger.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/logger/logger.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -98,6 +98,6 @@
 
 
-void logger_connection_handler_control(ipc_callid_t);
-void logger_connection_handler_writer(ipc_callid_t);
+void logger_connection_handler_control(cap_call_handle_t);
+void logger_connection_handler_writer(cap_call_handle_t);
 
 void parse_initial_settings(void);
Index: uspace/srv/logger/main.c
===================================================================
--- uspace/srv/logger/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/logger/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -48,5 +48,5 @@
 #include "logger.h"
 
-static void connection_handler_control(ipc_callid_t iid, ipc_call_t *icall,
+static void connection_handler_control(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
@@ -54,5 +54,5 @@
 }
 
-static void connection_handler_writer(ipc_callid_t iid, ipc_call_t *icall,
+static void connection_handler_writer(cap_call_handle_t iid, ipc_call_t *icall,
     void *arg)
 {
Index: uspace/srv/logger/writer.c
===================================================================
--- uspace/srv/logger/writer.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/logger/writer.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -94,5 +94,5 @@
 }
 
-void logger_connection_handler_writer(ipc_callid_t callid)
+void logger_connection_handler_writer(cap_call_handle_t callid)
 {
 	logger_log_t *log;
@@ -109,5 +109,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/net/dhcp/main.c
===================================================================
--- uspace/srv/net/dhcp/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/dhcp/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -50,5 +50,5 @@
 #define NAME  "dhcp"
 
-static void dhcp_client_conn(ipc_callid_t, ipc_call_t *, void *);
+static void dhcp_client_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 static errno_t dhcp_init(void)
@@ -84,5 +84,5 @@
 }
 
-static void dhcp_link_add_srv(ipc_callid_t callid, ipc_call_t *call)
+static void dhcp_link_add_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	sysarg_t link_id;
@@ -97,5 +97,5 @@
 }
 
-static void dhcp_link_remove_srv(ipc_callid_t callid, ipc_call_t *call)
+static void dhcp_link_remove_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	sysarg_t link_id;
@@ -110,5 +110,5 @@
 }
 
-static void dhcp_discover_srv(ipc_callid_t callid, ipc_call_t *call)
+static void dhcp_discover_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	sysarg_t link_id;
@@ -123,5 +123,5 @@
 }
 
-static void dhcp_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void dhcp_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "dhcp_client_conn()");
@@ -132,5 +132,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/srv/net/dnsrsrv/dnsrsrv.c
===================================================================
--- uspace/srv/net/dnsrsrv/dnsrsrv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/dnsrsrv/dnsrsrv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -53,5 +53,5 @@
 #define NAME  "dnsres"
 
-static void dnsr_client_conn(ipc_callid_t, ipc_call_t *, void *);
+static void dnsr_client_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 static errno_t dnsr_init(void)
@@ -86,5 +86,5 @@
 }
 
-static void dnsr_name2host_srv(dnsr_client_t *client, ipc_callid_t iid,
+static void dnsr_name2host_srv(dnsr_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -108,5 +108,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -151,10 +151,10 @@
 }
 
-static void dnsr_get_srvaddr_srv(dnsr_client_t *client, ipc_callid_t iid,
+static void dnsr_get_srvaddr_srv(dnsr_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_get_srvaddr_srv()");
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -179,10 +179,10 @@
 }
 
-static void dnsr_set_srvaddr_srv(dnsr_client_t *client, ipc_callid_t iid,
+static void dnsr_set_srvaddr_srv(dnsr_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "dnsr_set_srvaddr_srv()");
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -209,5 +209,5 @@
 }
 
-static void dnsr_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void dnsr_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	dnsr_client_t client;
@@ -220,5 +220,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/srv/net/ethip/ethip.c
===================================================================
--- uspace/srv/net/ethip/ethip.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/ethip/ethip.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -63,5 +63,5 @@
 static errno_t ethip_addr_remove(iplink_srv_t *srv, inet_addr_t *addr);
 
-static void ethip_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void ethip_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 static iplink_ops_t ethip_iplink_ops = {
@@ -142,5 +142,5 @@
 }
 
-static void ethip_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void ethip_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	ethip_nic_t *nic;
Index: uspace/srv/net/ethip/ethip_nic.c
===================================================================
--- uspace/srv/net/ethip/ethip_nic.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/ethip/ethip_nic.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -52,5 +52,5 @@
 
 static errno_t ethip_nic_open(service_id_t sid);
-static void ethip_nic_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void ethip_nic_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 static LIST_INITIALIZE(ethip_nic_list);
@@ -229,5 +229,5 @@
 }
 
-static void ethip_nic_addr_changed(ethip_nic_t *nic, ipc_callid_t callid,
+static void ethip_nic_addr_changed(ethip_nic_t *nic, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -258,5 +258,5 @@
 }
 
-static void ethip_nic_received(ethip_nic_t *nic, ipc_callid_t callid,
+static void ethip_nic_received(ethip_nic_t *nic, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -285,5 +285,5 @@
 }
 
-static void ethip_nic_device_state(ethip_nic_t *nic, ipc_callid_t callid,
+static void ethip_nic_device_state(ethip_nic_t *nic, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -292,5 +292,5 @@
 }
 
-static void ethip_nic_cb_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void ethip_nic_cb_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	ethip_nic_t *nic = (ethip_nic_t *)arg;
@@ -300,5 +300,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call)) {
Index: uspace/srv/net/inetsrv/inetcfg.c
===================================================================
--- uspace/srv/net/inetsrv/inetcfg.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/inetsrv/inetcfg.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -253,5 +253,5 @@
 }
 
-static void inetcfg_addr_create_static_srv(ipc_callid_t iid,
+static void inetcfg_addr_create_static_srv(cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -260,5 +260,5 @@
 	sysarg_t link_id = IPC_GET_ARG1(*icall);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -296,5 +296,5 @@
 }
 
-static void inetcfg_addr_delete_srv(ipc_callid_t callid, ipc_call_t *call)
+static void inetcfg_addr_delete_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	sysarg_t addr_id;
@@ -309,5 +309,5 @@
 }
 
-static void inetcfg_addr_get_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void inetcfg_addr_get_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "inetcfg_addr_get_srv()");
@@ -327,5 +327,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -367,5 +367,5 @@
 }
 
-static void inetcfg_addr_get_id_srv(ipc_callid_t callid, ipc_call_t *call)
+static void inetcfg_addr_get_id_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	char *name;
@@ -391,7 +391,7 @@
 }
 
-static void inetcfg_get_addr_list_srv(ipc_callid_t callid, ipc_call_t *call)
-{
-	ipc_callid_t rcallid;
+static void inetcfg_get_addr_list_srv(cap_call_handle_t callid, ipc_call_t *call)
+{
+	cap_call_handle_t rcallid;
 	size_t count;
 	size_t max_size;
@@ -425,7 +425,7 @@
 }
 
-static void inetcfg_get_link_list_srv(ipc_callid_t callid, ipc_call_t *call)
-{
-	ipc_callid_t rcallid;
+static void inetcfg_get_link_list_srv(cap_call_handle_t callid, ipc_call_t *call)
+{
+	cap_call_handle_t rcallid;
 	size_t count;
 	size_t max_size;
@@ -459,7 +459,7 @@
 }
 
-static void inetcfg_get_sroute_list_srv(ipc_callid_t callid, ipc_call_t *call)
-{
-	ipc_callid_t rcallid;
+static void inetcfg_get_sroute_list_srv(cap_call_handle_t callid, ipc_call_t *call)
+{
+	cap_call_handle_t rcallid;
 	size_t count;
 	size_t max_size;
@@ -493,5 +493,5 @@
 }
 
-static void inetcfg_link_add_srv(ipc_callid_t callid, ipc_call_t *call)
+static void inetcfg_link_add_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	sysarg_t link_id;
@@ -506,8 +506,8 @@
 }
 
-static void inetcfg_link_get_srv(ipc_callid_t callid, ipc_call_t *call)
-{
-	ipc_callid_t name_callid;
-	ipc_callid_t laddr_callid;
+static void inetcfg_link_get_srv(cap_call_handle_t callid, ipc_call_t *call)
+{
+	cap_call_handle_t name_callid;
+	cap_call_handle_t laddr_callid;
 	size_t name_max_size;
 	size_t laddr_max_size;
@@ -559,5 +559,5 @@
 }
 
-static void inetcfg_link_remove_srv(ipc_callid_t callid, ipc_call_t *call)
+static void inetcfg_link_remove_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	sysarg_t link_id;
@@ -572,10 +572,10 @@
 }
 
-static void inetcfg_sroute_create_srv(ipc_callid_t iid,
+static void inetcfg_sroute_create_srv(cap_call_handle_t iid,
     ipc_call_t *icall)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "inetcfg_sroute_create_srv()");
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -633,5 +633,5 @@
 }
 
-static void inetcfg_sroute_delete_srv(ipc_callid_t callid, ipc_call_t *call)
+static void inetcfg_sroute_delete_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	sysarg_t sroute_id;
@@ -646,5 +646,5 @@
 }
 
-static void inetcfg_sroute_get_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void inetcfg_sroute_get_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "inetcfg_sroute_get_srv()");
@@ -664,5 +664,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -717,5 +717,5 @@
 }
 
-static void inetcfg_sroute_get_id_srv(ipc_callid_t callid, ipc_call_t *call)
+static void inetcfg_sroute_get_id_srv(cap_call_handle_t callid, ipc_call_t *call)
 {
 	char *name;
@@ -738,5 +738,5 @@
 }
 
-void inet_cfg_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void inet_cfg_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_cfg_conn()");
@@ -747,5 +747,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/srv/net/inetsrv/inetcfg.h
===================================================================
--- uspace/srv/net/inetsrv/inetcfg.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/inetsrv/inetcfg.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -38,5 +38,5 @@
 #define INETCFG_H_
 
-extern void inet_cfg_conn(ipc_callid_t, ipc_call_t *, void *);
+extern void inet_cfg_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 #endif
Index: uspace/srv/net/inetsrv/inetping.c
===================================================================
--- uspace/srv/net/inetsrv/inetping.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/inetsrv/inetping.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -136,5 +136,5 @@
 }
 
-static void inetping_send_srv(inetping_client_t *client, ipc_callid_t iid,
+static void inetping_send_srv(inetping_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -146,5 +146,5 @@
 	sdu.seq_no = IPC_GET_ARG1(*icall);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -200,9 +200,9 @@
 
 static void inetping_get_srcaddr_srv(inetping_client_t *client,
-    ipc_callid_t iid, ipc_call_t *icall)
+    cap_call_handle_t iid, ipc_call_t *icall)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "inetping_get_srcaddr_srv()");
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 
@@ -281,5 +281,5 @@
 }
 
-void inetping_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void inetping_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "inetping_conn()");
@@ -295,5 +295,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/srv/net/inetsrv/inetping.h
===================================================================
--- uspace/srv/net/inetsrv/inetping.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/inetsrv/inetping.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -41,5 +41,5 @@
 #include "inetsrv.h"
 
-extern void inetping_conn(ipc_callid_t, ipc_call_t *, void *);
+extern void inetping_conn(cap_call_handle_t, ipc_call_t *, void *);
 extern errno_t inetping_recv(uint16_t, inetping_sdu_t *);
 
Index: uspace/srv/net/inetsrv/inetsrv.c
===================================================================
--- uspace/srv/net/inetsrv/inetsrv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/inetsrv/inetsrv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -82,5 +82,5 @@
 static LIST_INITIALIZE(client_list);
 
-static void inet_default_conn(ipc_callid_t, ipc_call_t *, void *);
+static void inet_default_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 static errno_t inet_init(void)
@@ -120,5 +120,5 @@
 }
 
-static void inet_callback_create_srv(inet_client_t *client, ipc_callid_t callid,
+static void inet_callback_create_srv(inet_client_t *client, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -230,5 +230,5 @@
 }
 
-static void inet_get_srcaddr_srv(inet_client_t *client, ipc_callid_t iid,
+static void inet_get_srcaddr_srv(inet_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -237,5 +237,5 @@
 	uint8_t tos = IPC_GET_ARG1(*icall);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -287,5 +287,5 @@
 }
 
-static void inet_send_srv(inet_client_t *client, ipc_callid_t iid,
+static void inet_send_srv(inet_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -300,5 +300,5 @@
 	int df = IPC_GET_ARG4(*icall);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_write_receive(&callid, &size)) {
@@ -351,5 +351,5 @@
 }
 
-static void inet_set_proto_srv(inet_client_t *client, ipc_callid_t callid,
+static void inet_set_proto_srv(inet_client_t *client, cap_call_handle_t callid,
     ipc_call_t *call)
 {
@@ -387,5 +387,5 @@
 }
 
-static void inet_default_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void inet_default_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	inet_client_t client;
@@ -400,5 +400,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/srv/net/loopip/loopip.c
===================================================================
--- uspace/srv/net/loopip/loopip.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/loopip/loopip.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -59,5 +59,5 @@
 static errno_t loopip_addr_remove(iplink_srv_t *srv, inet_addr_t *addr);
 
-static void loopip_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void loopip_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 static iplink_ops_t loopip_iplink_ops = {
@@ -148,5 +148,5 @@
 }
 
-static void loopip_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void loopip_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "loopip_client_conn()");
Index: uspace/srv/net/nconfsrv/nconfsrv.c
===================================================================
--- uspace/srv/net/nconfsrv/nconfsrv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/nconfsrv/nconfsrv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -54,5 +54,5 @@
 #define NAME "nconfsrv"
 
-static void ncs_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+static void ncs_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 static errno_t ncs_init(void)
@@ -98,5 +98,5 @@
 }
 
-static void ncs_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void ncs_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	async_answer_0(iid, ENOTSUP);
Index: uspace/srv/net/slip/slip.c
===================================================================
--- uspace/srv/net/slip/slip.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/slip/slip.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -199,5 +199,5 @@
 }
 
-static void slip_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void slip_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "slip_client_conn()");
Index: uspace/srv/net/tcp/service.c
===================================================================
--- uspace/srv/net/tcp/service.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/tcp/service.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -728,5 +728,5 @@
  * @param icall   Async request data
  */
-static void tcp_callback_create_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_callback_create_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -751,8 +751,8 @@
  * @param icall    Async request data
  */
-static void tcp_conn_create_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_conn_create_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	inet_ep2_t epp;
@@ -798,5 +798,5 @@
  * @param icall    Async request data
  */
-static void tcp_conn_destroy_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_conn_destroy_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -819,8 +819,8 @@
  * @param icall    Async request data
  */
-static void tcp_listener_create_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_listener_create_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	inet_ep_t ep;
@@ -866,5 +866,5 @@
  * @param icall    Async request data
  */
-static void tcp_listener_destroy_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_listener_destroy_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -887,5 +887,5 @@
  * @param icall    Async request data
  */
-static void tcp_conn_send_fin_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_conn_send_fin_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -908,5 +908,5 @@
  * @param icall    Async request data
  */
-static void tcp_conn_push_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_conn_push_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -929,5 +929,5 @@
  * @param icall    Async request data
  */
-static void tcp_conn_reset_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_conn_reset_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -950,8 +950,8 @@
  * @param icall    Async request data
  */
-static void tcp_conn_send_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_conn_send_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	sysarg_t conn_id;
@@ -1011,8 +1011,8 @@
  * @param icall    Async request data
  */
-static void tcp_conn_recv_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_conn_recv_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	sysarg_t conn_id;
 	size_t size, rsize;
@@ -1067,8 +1067,8 @@
  * @param icall    Async request data
  */
-static void tcp_conn_recv_wait_srv(tcp_client_t *client, ipc_callid_t iid,
+static void tcp_conn_recv_wait_srv(tcp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	sysarg_t conn_id;
 	size_t size, rsize;
@@ -1172,5 +1172,5 @@
  * @param arg   Connection argument
  */
-static void tcp_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void tcp_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	tcp_client_t client;
@@ -1187,5 +1187,5 @@
 		log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_client_conn: wait req");
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/srv/net/udp/service.c
===================================================================
--- uspace/srv/net/udp/service.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/net/udp/service.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -335,5 +335,5 @@
  * @param icall    Async request data
  */
-static void udp_callback_create_srv(udp_client_t *client, ipc_callid_t iid,
+static void udp_callback_create_srv(udp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -358,8 +358,8 @@
  * @param icall    Async request data
  */
-static void udp_assoc_create_srv(udp_client_t *client, ipc_callid_t iid,
+static void udp_assoc_create_srv(udp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	inet_ep2_t epp;
@@ -405,5 +405,5 @@
  * @param icall    Async request data
  */
-static void udp_assoc_destroy_srv(udp_client_t *client, ipc_callid_t iid,
+static void udp_assoc_destroy_srv(udp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -426,5 +426,5 @@
  * @param icall    Async request data
  */
-static void udp_assoc_set_nolocal_srv(udp_client_t *client, ipc_callid_t iid,
+static void udp_assoc_set_nolocal_srv(udp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -447,8 +447,8 @@
  * @param icall    Async request data
  */
-static void udp_assoc_send_msg_srv(udp_client_t *client, ipc_callid_t iid,
+static void udp_assoc_send_msg_srv(udp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	inet_ep_t dest;
@@ -545,8 +545,8 @@
  * @param icall    Async request data
  */
-static void udp_rmsg_info_srv(udp_client_t *client, ipc_callid_t iid,
+static void udp_rmsg_info_srv(udp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	udp_crcv_queue_entry_t *enext;
@@ -592,8 +592,8 @@
  * @param icall    Async request data
  */
-static void udp_rmsg_read_srv(udp_client_t *client, ipc_callid_t iid,
+static void udp_rmsg_read_srv(udp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t msg_size;
 	udp_crcv_queue_entry_t *enext;
@@ -648,5 +648,5 @@
  * @param icall    Async request data
  */
-static void udp_rmsg_discard_srv(udp_client_t *client, ipc_callid_t iid,
+static void udp_rmsg_discard_srv(udp_client_t *client, cap_call_handle_t iid,
     ipc_call_t *icall)
 {
@@ -674,5 +674,5 @@
  * @param arg   Connection argument
  */
-static void udp_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void udp_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	udp_client_t client;
@@ -691,5 +691,5 @@
 		log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_client_conn: wait req");
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/srv/ns/clonable.c
===================================================================
--- uspace/srv/ns/clonable.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/ns/clonable.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -48,5 +48,5 @@
 	service_t service;
 	iface_t iface;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	sysarg_t arg3;
 } cs_req_t;
@@ -75,5 +75,5 @@
  */
 void register_clonable(service_t service, sysarg_t phone, ipc_call_t *call,
-    ipc_callid_t callid)
+    cap_call_handle_t callid)
 {
 	link_t *req_link = list_first(&cs_req);
@@ -117,5 +117,5 @@
  */
 void connect_to_clonable(service_t service, iface_t iface, ipc_call_t *call,
-    ipc_callid_t callid)
+    cap_call_handle_t callid)
 {
 	assert(service == SERVICE_LOADER);
Index: uspace/srv/ns/clonable.h
===================================================================
--- uspace/srv/ns/clonable.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/ns/clonable.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -43,6 +43,6 @@
 extern bool service_clonable(service_t);
 extern void register_clonable(service_t, sysarg_t, ipc_call_t *,
-    ipc_callid_t);
-extern void connect_to_clonable(service_t, iface_t, ipc_call_t *, ipc_callid_t);
+    cap_call_handle_t);
+extern void connect_to_clonable(service_t, iface_t, ipc_call_t *, cap_call_handle_t);
 
 #endif
Index: uspace/srv/ns/ns.c
===================================================================
--- uspace/srv/ns/ns.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/ns/ns.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -49,8 +49,8 @@
 #include "task.h"
 
-static void ns_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void ns_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	ipc_call_t call;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	iface_t iface;
 	service_t service;
Index: uspace/srv/ns/service.c
===================================================================
--- uspace/srv/ns/service.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/ns/service.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -89,5 +89,5 @@
 	service_t service;    /**< Service ID */
 	iface_t iface;        /**< Interface ID */
-	ipc_callid_t callid;  /**< Call ID waiting for the connection */
+	cap_call_handle_t callid;  /**< Call ID waiting for the connection */
 	sysarg_t arg3;        /**< Third argument */
 } pending_conn_t;
@@ -169,5 +169,5 @@
  */
 void connect_to_service(service_t service, iface_t iface, ipc_call_t *call,
-    ipc_callid_t callid)
+    cap_call_handle_t callid)
 {
 	sysarg_t arg3 = IPC_GET_ARG3(*call);
Index: uspace/srv/ns/service.h
===================================================================
--- uspace/srv/ns/service.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/ns/service.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -42,5 +42,5 @@
 
 extern errno_t register_service(service_t, sysarg_t, ipc_call_t *);
-extern void connect_to_service(service_t, iface_t, ipc_call_t *, ipc_callid_t);
+extern void connect_to_service(service_t, iface_t, ipc_call_t *, cap_call_handle_t);
 
 #endif
Index: uspace/srv/ns/task.c
===================================================================
--- uspace/srv/ns/task.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/ns/task.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -146,5 +146,5 @@
 	link_t link;
 	task_id_t id;         /**< Task ID. */
-	ipc_callid_t callid;  /**< Call ID waiting for the connection */
+	cap_call_handle_t callid;  /**< Call ID waiting for the connection */
 } pending_wait_t;
 
@@ -192,5 +192,5 @@
 }
 
-void wait_for_task(task_id_t id, ipc_call_t *call, ipc_callid_t callid)
+void wait_for_task(task_id_t id, ipc_call_t *call, cap_call_handle_t callid)
 {
 	ht_link_t *link = hash_table_find(&task_hash_table, &id);
Index: uspace/srv/ns/task.h
===================================================================
--- uspace/srv/ns/task.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/ns/task.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -40,5 +40,5 @@
 extern void process_pending_wait(void);
 
-extern void wait_for_task(task_id_t, ipc_call_t *, ipc_callid_t);
+extern void wait_for_task(task_id_t, ipc_call_t *, cap_call_handle_t);
 
 extern errno_t ns_task_id_intro(ipc_call_t *);
Index: uspace/srv/taskmon/taskmon.c
===================================================================
--- uspace/srv/taskmon/taskmon.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/taskmon/taskmon.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -49,5 +49,5 @@
 static bool write_core_files;
 
-static void corecfg_client_conn(ipc_callid_t , ipc_call_t *, void *);
+static void corecfg_client_conn(cap_call_handle_t , ipc_call_t *, void *);
 
 static void fault_event(ipc_call_t *call, void *arg)
@@ -94,10 +94,10 @@
 }
 
-static void corecfg_get_enable_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void corecfg_get_enable_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	async_answer_1(iid, EOK, write_core_files);
 }
 
-static void corecfg_set_enable_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void corecfg_set_enable_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	write_core_files = IPC_GET_ARG1(*icall);
@@ -105,5 +105,5 @@
 }
 
-static void corecfg_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void corecfg_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	/* Accept the connection */
@@ -112,5 +112,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
Index: uspace/srv/test/chardev-test/main.c
===================================================================
--- uspace/srv/test/chardev-test/main.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/test/chardev-test/main.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -84,5 +84,5 @@
 };
 
-static void chardev_test_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void chardev_test_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	chardev_srvs_t *svc;
Index: uspace/srv/vfs/vfs.c
===================================================================
--- uspace/srv/vfs/vfs.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/vfs/vfs.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -55,5 +55,5 @@
 #define NAME  "vfs"
 
-static void vfs_pager(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void vfs_pager(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	async_answer_0(iid, EOK);
@@ -61,5 +61,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/vfs/vfs.h
===================================================================
--- uspace/srv/vfs/vfs.h	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/vfs/vfs.h	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -222,7 +222,7 @@
 extern errno_t vfs_op_write(int fd, aoff64_t, size_t *out_bytes);
 
-extern void vfs_register(ipc_callid_t, ipc_call_t *);
-
-extern void vfs_page_in(ipc_callid_t, ipc_call_t *);
+extern void vfs_register(cap_call_handle_t, ipc_call_t *);
+
+extern void vfs_page_in(cap_call_handle_t, ipc_call_t *);
 
 typedef struct {
@@ -233,5 +233,5 @@
 extern errno_t vfs_rdwr_internal(int, aoff64_t, bool, rdwr_io_chunk_t *);
 
-extern void vfs_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg);
+extern void vfs_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg);
 
 #endif
Index: uspace/srv/vfs/vfs_ipc.c
===================================================================
--- uspace/srv/vfs/vfs_ipc.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/vfs/vfs_ipc.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -35,5 +35,5 @@
 #include <vfs/canonify.h>
 
-static void vfs_in_clone(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_clone(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int oldfd = IPC_GET_ARG1(*request);
@@ -46,9 +46,9 @@
 }
 
-static void vfs_in_fsprobe(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_fsprobe(cap_call_handle_t rid, ipc_call_t *request)
 {
 	service_id_t service_id = (service_id_t) IPC_GET_ARG1(*request);
 	char *fs_name = NULL;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	vfs_fs_probe_info_t info;
 	size_t len;
@@ -83,7 +83,7 @@
 }
 
-static void vfs_in_fstypes(ipc_callid_t rid, ipc_call_t *request)
-{
-	ipc_callid_t callid;
+static void vfs_in_fstypes(cap_call_handle_t rid, ipc_call_t *request)
+{
+	cap_call_handle_t callid;
 	size_t len;
 	vfs_fstypes_t fstypes;
@@ -111,5 +111,5 @@
 }
 
-static void vfs_in_mount(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_mount(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int mpfd = IPC_GET_ARG1(*request);
@@ -156,5 +156,5 @@
 }
 
-static void vfs_in_open(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_open(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int fd = IPC_GET_ARG1(*request);
@@ -165,5 +165,5 @@
 }
 
-static void vfs_in_put(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_put(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int fd = IPC_GET_ARG1(*request);
@@ -172,5 +172,5 @@
 }
 
-static void vfs_in_read(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_read(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int fd = IPC_GET_ARG1(*request);
@@ -183,5 +183,5 @@
 }
 
-static void vfs_in_rename(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_rename(cap_call_handle_t rid, ipc_call_t *request)
 {
 	/* The common base directory. */
@@ -227,5 +227,5 @@
 }
 
-static void vfs_in_resize(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_resize(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int fd = IPC_GET_ARG1(*request);
@@ -235,5 +235,5 @@
 }
 
-static void vfs_in_stat(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_stat(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int fd = IPC_GET_ARG1(*request);
@@ -242,5 +242,5 @@
 }
 
-static void vfs_in_statfs(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_statfs(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int fd = (int) IPC_GET_ARG1(*request);
@@ -250,5 +250,5 @@
 }
 
-static void vfs_in_sync(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_sync(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int fd = IPC_GET_ARG1(*request);
@@ -257,5 +257,5 @@
 }
 
-static void vfs_in_unlink(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_unlink(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int parentfd = IPC_GET_ARG1(*request);
@@ -270,5 +270,5 @@
 }
 
-static void vfs_in_unmount(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_unmount(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int mpfd = IPC_GET_ARG1(*request);
@@ -277,5 +277,5 @@
 }
 
-static void vfs_in_wait_handle(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_wait_handle(cap_call_handle_t rid, ipc_call_t *request)
 {
 	bool high_fd = IPC_GET_ARG1(*request);
@@ -285,5 +285,5 @@
 }
 
-static void vfs_in_walk(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_walk(cap_call_handle_t rid, ipc_call_t *request)
 {
 	/*
@@ -304,5 +304,5 @@
 }
 
-static void vfs_in_write(ipc_callid_t rid, ipc_call_t *request)
+static void vfs_in_write(cap_call_handle_t rid, ipc_call_t *request)
 {
 	int fd = IPC_GET_ARG1(*request);
@@ -315,5 +315,5 @@
 }
 
-void vfs_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+void vfs_connection(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	bool cont = true;
@@ -327,5 +327,5 @@
 	while (cont) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 
 		if (!IPC_GET_IMETHOD(call))
Index: uspace/srv/vfs/vfs_pager.c
===================================================================
--- uspace/srv/vfs/vfs_pager.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/vfs/vfs_pager.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -42,5 +42,5 @@
 #include <as.h>
 
-void vfs_page_in(ipc_callid_t rid, ipc_call_t *request)
+void vfs_page_in(cap_call_handle_t rid, ipc_call_t *request)
 {
 	aoff64_t offset = IPC_GET_ARG1(*request);
Index: uspace/srv/vfs/vfs_register.c
===================================================================
--- uspace/srv/vfs/vfs_register.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/vfs/vfs_register.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -112,5 +112,5 @@
  *
  */
-void vfs_register(ipc_callid_t rid, ipc_call_t *request)
+void vfs_register(cap_call_handle_t rid, ipc_call_t *request)
 {
 	dprintf("Processing VFS_REGISTER request received from %zx.\n",
@@ -195,5 +195,5 @@
 
 	size_t size;
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	if (!async_share_in_receive(&callid, &size)) {
 		dprintf("Unexpected call\n");
Index: uspace/srv/volsrv/volsrv.c
===================================================================
--- uspace/srv/volsrv/volsrv.c	(revision eadaeae8dacc68cf558028f23cc96b90a08b7361)
+++ uspace/srv/volsrv/volsrv.c	(revision 3be9d10120f7923a0b3d52282b8de0b670566c71)
@@ -52,5 +52,5 @@
 #define NAME  "volsrv"
 
-static void vol_client_conn(ipc_callid_t, ipc_call_t *, void *);
+static void vol_client_conn(cap_call_handle_t, ipc_call_t *, void *);
 
 static errno_t vol_init(void)
@@ -85,7 +85,7 @@
 }
 
-static void vol_get_parts_srv(ipc_callid_t iid, ipc_call_t *icall)
-{
-	ipc_callid_t callid;
+static void vol_get_parts_srv(cap_call_handle_t iid, ipc_call_t *icall)
+{
+	cap_call_handle_t callid;
 	size_t size;
 	size_t act_size;
@@ -118,5 +118,5 @@
 }
 
-static void vol_part_add_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vol_part_add_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t sid;
@@ -134,5 +134,5 @@
 }
 
-static void vol_part_info_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vol_part_info_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t sid;
@@ -156,5 +156,5 @@
 	}
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -181,5 +181,5 @@
 }
 
-static void vol_part_empty_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vol_part_empty_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t sid;
@@ -205,5 +205,5 @@
 }
 
-static void vol_part_get_lsupp_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vol_part_get_lsupp_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	vol_fstype_t fstype;
@@ -217,5 +217,5 @@
 	volsrv_part_get_lsupp(fstype, &vlsupp);
 
-	ipc_callid_t callid;
+	cap_call_handle_t callid;
 	size_t size;
 	if (!async_data_read_receive(&callid, &size)) {
@@ -243,5 +243,5 @@
 
 
-static void vol_part_mkfs_srv(ipc_callid_t iid, ipc_call_t *icall)
+static void vol_part_mkfs_srv(cap_call_handle_t iid, ipc_call_t *icall)
 {
 	service_id_t sid;
@@ -282,5 +282,5 @@
 }
 
-static void vol_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+static void vol_client_conn(cap_call_handle_t iid, ipc_call_t *icall, void *arg)
 {
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_client_conn()");
@@ -291,5 +291,5 @@
 	while (true) {
 		ipc_call_t call;
-		ipc_callid_t callid = async_get_call(&call);
+		cap_call_handle_t callid = async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
