Index: uspace/lib/c/generic/iplink_srv.c
===================================================================
--- uspace/lib/c/generic/iplink_srv.c	(revision a46e56be16ae82f0d007dd26c68b250f3f725ae0)
+++ uspace/lib/c/generic/iplink_srv.c	(revision 984a9ba2fa05c490a7066737655ed19130c714e8)
@@ -42,127 +42,121 @@
 #include <inet/iplink_srv.h>
 
-static void iplink_get_mtu_srv(iplink_srv_t *srv, cap_call_handle_t chandle,
-    ipc_call_t *call)
+static void iplink_get_mtu_srv(iplink_srv_t *srv, ipc_call_t *call)
 {
 	size_t mtu;
 	errno_t rc = srv->ops->get_mtu(srv, &mtu);
-	async_answer_1(chandle, rc, mtu);
-}
-
-static void iplink_get_mac48_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle,
-    ipc_call_t *icall)
+	async_answer_1(call, rc, mtu);
+}
+
+static void iplink_get_mac48_srv(iplink_srv_t *srv, ipc_call_t *icall)
 {
 	addr48_t mac;
 	errno_t rc = srv->ops->get_mac48(srv, &mac);
 	if (rc != EOK) {
-		async_answer_0(icall_handle, rc);
-		return;
-	}
-
-	cap_call_handle_t chandle;
-	size_t size;
-	if (!async_data_read_receive(&chandle, &size)) {
-		async_answer_0(chandle, EREFUSED);
-		async_answer_0(icall_handle, EREFUSED);
+		async_answer_0(icall, rc);
+		return;
+	}
+
+	ipc_call_t call;
+	size_t size;
+	if (!async_data_read_receive(&call, &size)) {
+		async_answer_0(&call, EREFUSED);
+		async_answer_0(icall, EREFUSED);
 		return;
 	}
 
 	if (size != sizeof(addr48_t)) {
-		async_answer_0(chandle, EINVAL);
-		async_answer_0(icall_handle, EINVAL);
-		return;
-	}
-
-	rc = async_data_read_finalize(chandle, &mac, size);
+		async_answer_0(&call, EINVAL);
+		async_answer_0(icall, EINVAL);
+		return;
+	}
+
+	rc = async_data_read_finalize(&call, &mac, size);
 	if (rc != EOK)
-		async_answer_0(chandle, rc);
-
-	async_answer_0(icall_handle, rc);
-}
-
-static void iplink_set_mac48_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle,
-    ipc_call_t *icall)
+		async_answer_0(&call, rc);
+
+	async_answer_0(icall, rc);
+}
+
+static void iplink_set_mac48_srv(iplink_srv_t *srv, ipc_call_t *icall)
 {
 	errno_t rc;
 	size_t size;
 	addr48_t mac;
-	cap_call_handle_t chandle;
-
-	if (!async_data_write_receive(&chandle, &size)) {
-		async_answer_0(chandle, EREFUSED);
-		async_answer_0(icall_handle, EREFUSED);
+
+	ipc_call_t call;
+	if (!async_data_write_receive(&call, &size)) {
+		async_answer_0(&call, EREFUSED);
+		async_answer_0(icall, EREFUSED);
 	}
 
 	rc = srv->ops->set_mac48(srv, &mac);
 	if (rc != EOK) {
-		async_answer_0(icall_handle, rc);
-		return;
-	}
-
-	rc = async_data_read_finalize(chandle, &mac, sizeof(addr48_t));
+		async_answer_0(icall, rc);
+		return;
+	}
+
+	rc = async_data_read_finalize(&call, &mac, sizeof(addr48_t));
 	if (rc != EOK)
-		async_answer_0(chandle, rc);
-
-	async_answer_0(icall_handle, rc);
-}
-
-static void iplink_addr_add_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle,
-    ipc_call_t *icall)
-{
-	cap_call_handle_t chandle;
-	size_t size;
-	if (!async_data_write_receive(&chandle, &size)) {
-		async_answer_0(chandle, EREFUSED);
-		async_answer_0(icall_handle, EREFUSED);
+		async_answer_0(&call, rc);
+
+	async_answer_0(icall, rc);
+}
+
+static void iplink_addr_add_srv(iplink_srv_t *srv, ipc_call_t *icall)
+{
+	ipc_call_t call;
+	size_t size;
+	if (!async_data_write_receive(&call, &size)) {
+		async_answer_0(&call, EREFUSED);
+		async_answer_0(icall, EREFUSED);
 		return;
 	}
 
 	if (size != sizeof(inet_addr_t)) {
-		async_answer_0(chandle, EINVAL);
-		async_answer_0(icall_handle, EINVAL);
+		async_answer_0(&call, EINVAL);
+		async_answer_0(icall, EINVAL);
 		return;
 	}
 
 	inet_addr_t addr;
-	errno_t rc = async_data_write_finalize(chandle, &addr, size);
-	if (rc != EOK) {
-		async_answer_0(chandle, rc);
-		async_answer_0(icall_handle, rc);
+	errno_t rc = async_data_write_finalize(&call, &addr, size);
+	if (rc != EOK) {
+		async_answer_0(&call, rc);
+		async_answer_0(icall, rc);
 	}
 
 	rc = srv->ops->addr_add(srv, &addr);
-	async_answer_0(icall_handle, rc);
-}
-
-static void iplink_addr_remove_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle,
-    ipc_call_t *icall)
-{
-	cap_call_handle_t chandle;
-	size_t size;
-	if (!async_data_write_receive(&chandle, &size)) {
-		async_answer_0(chandle, EREFUSED);
-		async_answer_0(icall_handle, EREFUSED);
+	async_answer_0(icall, rc);
+}
+
+static void iplink_addr_remove_srv(iplink_srv_t *srv, ipc_call_t *icall)
+{
+	ipc_call_t call;
+	size_t size;
+	if (!async_data_write_receive(&call, &size)) {
+		async_answer_0(&call, EREFUSED);
+		async_answer_0(icall, EREFUSED);
 		return;
 	}
 
 	if (size != sizeof(inet_addr_t)) {
-		async_answer_0(chandle, EINVAL);
-		async_answer_0(icall_handle, EINVAL);
+		async_answer_0(&call, EINVAL);
+		async_answer_0(icall, EINVAL);
 		return;
 	}
 
 	inet_addr_t addr;
-	errno_t rc = async_data_write_finalize(chandle, &addr, size);
-	if (rc != EOK) {
-		async_answer_0(chandle, rc);
-		async_answer_0(icall_handle, rc);
+	errno_t rc = async_data_write_finalize(&call, &addr, size);
+	if (rc != EOK) {
+		async_answer_0(&call, rc);
+		async_answer_0(icall, rc);
 	}
 
 	rc = srv->ops->addr_remove(srv, &addr);
-	async_answer_0(icall_handle, rc);
-}
-
-static void iplink_send_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle,
-    ipc_call_t *icall)
+	async_answer_0(icall, rc);
+}
+
+static void iplink_send_srv(iplink_srv_t *srv, ipc_call_t *icall)
 {
 	iplink_sdu_t sdu;
@@ -174,5 +168,5 @@
 	    &sdu.size);
 	if (rc != EOK) {
-		async_answer_0(icall_handle, rc);
+		async_answer_0(icall, rc);
 		return;
 	}
@@ -180,30 +174,29 @@
 	rc = srv->ops->send(srv, &sdu);
 	free(sdu.data);
-	async_answer_0(icall_handle, rc);
-}
-
-static void iplink_send6_srv(iplink_srv_t *srv, cap_call_handle_t icall_handle,
-    ipc_call_t *icall)
+	async_answer_0(icall, rc);
+}
+
+static void iplink_send6_srv(iplink_srv_t *srv, ipc_call_t *icall)
 {
 	iplink_sdu6_t sdu;
 
-	cap_call_handle_t chandle;
-	size_t size;
-	if (!async_data_write_receive(&chandle, &size)) {
-		async_answer_0(chandle, EREFUSED);
-		async_answer_0(icall_handle, EREFUSED);
+	ipc_call_t call;
+	size_t size;
+	if (!async_data_write_receive(&call, &size)) {
+		async_answer_0(&call, EREFUSED);
+		async_answer_0(icall, EREFUSED);
 		return;
 	}
 
 	if (size != sizeof(addr48_t)) {
-		async_answer_0(chandle, EINVAL);
-		async_answer_0(icall_handle, EINVAL);
-		return;
-	}
-
-	errno_t rc = async_data_write_finalize(chandle, &sdu.dest, size);
-	if (rc != EOK) {
-		async_answer_0(chandle, rc);
-		async_answer_0(icall_handle, rc);
+		async_answer_0(&call, EINVAL);
+		async_answer_0(icall, EINVAL);
+		return;
+	}
+
+	errno_t rc = async_data_write_finalize(&call, &sdu.dest, size);
+	if (rc != EOK) {
+		async_answer_0(&call, rc);
+		async_answer_0(icall, rc);
 	}
 
@@ -211,5 +204,5 @@
 	    &sdu.size);
 	if (rc != EOK) {
-		async_answer_0(icall_handle, rc);
+		async_answer_0(icall, rc);
 		return;
 	}
@@ -217,5 +210,5 @@
 	rc = srv->ops->send6(srv, &sdu);
 	free(sdu.data);
-	async_answer_0(icall_handle, rc);
+	async_answer_0(icall, rc);
 }
 
@@ -229,5 +222,5 @@
 }
 
-errno_t iplink_conn(cap_call_handle_t icall_handle, ipc_call_t *icall, void *arg)
+errno_t iplink_conn(ipc_call_t *icall, void *arg)
 {
 	iplink_srv_t *srv = (iplink_srv_t *) arg;
@@ -237,5 +230,5 @@
 	if (srv->connected) {
 		fibril_mutex_unlock(&srv->lock);
-		async_answer_0(icall_handle, EBUSY);
+		async_answer_0(icall, EBUSY);
 		return EBUSY;
 	}
@@ -245,5 +238,5 @@
 
 	/* Accept the connection */
-	async_answer_0(icall_handle, EOK);
+	async_answer_0(icall, EOK);
 
 	async_sess_t *sess = async_callback_receive(EXCHANGE_SERIALIZE);
@@ -259,5 +252,5 @@
 	while (true) {
 		ipc_call_t call;
-		cap_call_handle_t chandle = async_get_call(&call);
+		async_get_call(&call);
 		sysarg_t method = IPC_GET_IMETHOD(call);
 
@@ -267,5 +260,5 @@
 			srv->connected = false;
 			fibril_mutex_unlock(&srv->lock);
-			async_answer_0(chandle, EOK);
+			async_answer_0(&call, EOK);
 			break;
 		}
@@ -273,26 +266,26 @@
 		switch (method) {
 		case IPLINK_GET_MTU:
-			iplink_get_mtu_srv(srv, chandle, &call);
+			iplink_get_mtu_srv(srv, &call);
 			break;
 		case IPLINK_GET_MAC48:
-			iplink_get_mac48_srv(srv, chandle, &call);
+			iplink_get_mac48_srv(srv, &call);
 			break;
 		case IPLINK_SET_MAC48:
-			iplink_set_mac48_srv(srv, chandle, &call);
+			iplink_set_mac48_srv(srv, &call);
 			break;
 		case IPLINK_SEND:
-			iplink_send_srv(srv, chandle, &call);
+			iplink_send_srv(srv, &call);
 			break;
 		case IPLINK_SEND6:
-			iplink_send6_srv(srv, chandle, &call);
+			iplink_send6_srv(srv, &call);
 			break;
 		case IPLINK_ADDR_ADD:
-			iplink_addr_add_srv(srv, chandle, &call);
+			iplink_addr_add_srv(srv, &call);
 			break;
 		case IPLINK_ADDR_REMOVE:
-			iplink_addr_remove_srv(srv, chandle, &call);
+			iplink_addr_remove_srv(srv, &call);
 			break;
 		default:
-			async_answer_0(chandle, EINVAL);
+			async_answer_0(&call, EINVAL);
 		}
 	}
