Index: kernel/generic/src/ipc/irq.c
===================================================================
--- kernel/generic/src/ipc/irq.c	(revision fafb8e5dc8a80c87cf66270ca6f93d574a95471c)
+++ kernel/generic/src/ipc/irq.c	(revision 9675296fe33ff287a6d2d86321c97dbd34619703)
@@ -223,5 +223,5 @@
  *
  */
-static irq_code_t *code_from_uspace(irq_code_t *ucode)
+static irq_code_t *code_from_uspace(uspace_ptr_irq_code_t ucode)
 {
 	irq_pio_range_t *ranges = NULL;
@@ -242,5 +242,5 @@
 	if (!ranges)
 		goto error;
-	rc = copy_from_uspace(ranges, code->ranges,
+	rc = copy_from_uspace(ranges, (uintptr_t) code->ranges,
 	    sizeof(code->ranges[0]) * code->rangecount);
 	if (rc != EOK)
@@ -250,5 +250,5 @@
 	if (!cmds)
 		goto error;
-	rc = copy_from_uspace(cmds, code->cmds,
+	rc = copy_from_uspace(cmds, (uintptr_t) code->cmds,
 	    sizeof(code->cmds[0]) * code->cmdcount);
 	if (rc != EOK)
@@ -323,5 +323,5 @@
  */
 errno_t ipc_irq_subscribe(answerbox_t *box, inr_t inr, sysarg_t imethod,
-    irq_code_t *ucode, cap_irq_handle_t *uspace_handle)
+    uspace_ptr_irq_code_t ucode, uspace_ptr_cap_irq_handle_t uspace_handle)
 {
 	if ((inr < 0) || (inr > last_inr))
Index: kernel/generic/src/ipc/ops/dataread.c
===================================================================
--- kernel/generic/src/ipc/ops/dataread.c	(revision fafb8e5dc8a80c87cf66270ca6f93d574a95471c)
+++ kernel/generic/src/ipc/ops/dataread.c	(revision 9675296fe33ff287a6d2d86321c97dbd34619703)
@@ -63,6 +63,6 @@
 	if (!ipc_get_retval(&answer->data)) {
 		/* The recipient agreed to send data. */
-		uintptr_t src = ipc_get_arg1(&answer->data);
-		uintptr_t dst = ipc_get_arg1(olddata);
+		uspace_addr_t src = ipc_get_arg1(&answer->data);
+		uspace_addr_t dst = ipc_get_arg1(olddata);
 		size_t max_size = ipc_get_arg2(olddata);
 		size_t size = ipc_get_arg2(&answer->data);
@@ -81,5 +81,5 @@
 			}
 			errno_t rc = copy_from_uspace(answer->buffer,
-			    (void *) src, size);
+			    src, size);
 			if (rc) {
 				ipc_set_retval(&answer->data, rc);
@@ -103,9 +103,9 @@
 {
 	if (answer->buffer) {
-		uintptr_t dst = ipc_get_arg1(&answer->data);
+		uspace_addr_t dst = ipc_get_arg1(&answer->data);
 		size_t size = ipc_get_arg2(&answer->data);
 		errno_t rc;
 
-		rc = copy_to_uspace((void *) dst, answer->buffer, size);
+		rc = copy_to_uspace(dst, answer->buffer, size);
 		if (rc)
 			ipc_set_retval(&answer->data, rc);
Index: kernel/generic/src/ipc/ops/datawrite.c
===================================================================
--- kernel/generic/src/ipc/ops/datawrite.c	(revision fafb8e5dc8a80c87cf66270ca6f93d574a95471c)
+++ kernel/generic/src/ipc/ops/datawrite.c	(revision 9675296fe33ff287a6d2d86321c97dbd34619703)
@@ -43,5 +43,5 @@
 static errno_t request_preprocess(call_t *call, phone_t *phone)
 {
-	uintptr_t src = ipc_get_arg1(&call->data);
+	uspace_addr_t src = ipc_get_arg1(&call->data);
 	size_t size = ipc_get_arg2(&call->data);
 
@@ -59,5 +59,5 @@
 	if (!call->buffer)
 		return ENOMEM;
-	errno_t rc = copy_from_uspace(call->buffer, (void *) src, size);
+	errno_t rc = copy_from_uspace(call->buffer, src, size);
 	if (rc != EOK) {
 		/*
@@ -77,10 +77,10 @@
 	if (!ipc_get_retval(&answer->data)) {
 		/* The recipient agreed to receive data. */
-		uintptr_t dst = (uintptr_t)ipc_get_arg1(&answer->data);
-		size_t size = (size_t)ipc_get_arg2(&answer->data);
-		size_t max_size = (size_t)ipc_get_arg2(olddata);
+		uspace_addr_t dst = ipc_get_arg1(&answer->data);
+		size_t size = ipc_get_arg2(&answer->data);
+		size_t max_size = ipc_get_arg2(olddata);
 
 		if (size <= max_size) {
-			errno_t rc = copy_to_uspace((void *) dst,
+			errno_t rc = copy_to_uspace(dst,
 			    answer->buffer, size);
 			if (rc)
Index: kernel/generic/src/ipc/ops/debug.c
===================================================================
--- kernel/generic/src/ipc/ops/debug.c	(revision fafb8e5dc8a80c87cf66270ca6f93d574a95471c)
+++ kernel/generic/src/ipc/ops/debug.c	(revision 9675296fe33ff287a6d2d86321c97dbd34619703)
@@ -47,9 +47,9 @@
 {
 	if (answer->buffer) {
-		uintptr_t dst = ipc_get_arg1(&answer->data);
+		uspace_addr_t dst = ipc_get_arg1(&answer->data);
 		size_t size = ipc_get_arg2(&answer->data);
 		errno_t rc;
 
-		rc = copy_to_uspace((void *) dst, answer->buffer, size);
+		rc = copy_to_uspace(dst, answer->buffer, size);
 		if (rc)
 			ipc_set_retval(&answer->data, rc);
Index: kernel/generic/src/ipc/ops/shareout.c
===================================================================
--- kernel/generic/src/ipc/ops/shareout.c	(revision fafb8e5dc8a80c87cf66270ca6f93d574a95471c)
+++ kernel/generic/src/ipc/ops/shareout.c	(revision 9675296fe33ff287a6d2d86321c97dbd34619703)
@@ -70,5 +70,5 @@
 
 		if (rc == EOK) {
-			rc = copy_to_uspace((void *) ipc_get_arg2(&answer->data),
+			rc = copy_to_uspace(ipc_get_arg2(&answer->data),
 			    &dst_base, sizeof(dst_base));
 		}
Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision fafb8e5dc8a80c87cf66270ca6f93d574a95471c)
+++ kernel/generic/src/ipc/sysipc.c	(revision 9675296fe33ff287a6d2d86321c97dbd34619703)
@@ -419,5 +419,5 @@
  *
  */
-sys_errno_t sys_ipc_call_async_slow(cap_phone_handle_t handle, ipc_data_t *data,
+sys_errno_t sys_ipc_call_async_slow(cap_phone_handle_t handle, uspace_ptr_ipc_data_t data,
     sysarg_t label)
 {
@@ -437,5 +437,5 @@
 	}
 
-	errno_t rc = copy_from_uspace(&call->data.args, &data->args,
+	errno_t rc = copy_from_uspace(&call->data.args, data + offsetof(ipc_data_t, args),
 	    sizeof(call->data.args));
 	if (rc != EOK) {
@@ -623,8 +623,8 @@
  */
 sys_errno_t sys_ipc_forward_slow(cap_call_handle_t chandle,
-    cap_phone_handle_t phandle, ipc_data_t *data, unsigned int mode)
+    cap_phone_handle_t phandle, uspace_ptr_ipc_data_t data, unsigned int mode)
 {
 	ipc_data_t newdata;
-	errno_t rc = copy_from_uspace(&newdata.args, &data->args,
+	errno_t rc = copy_from_uspace(&newdata.args, data + offsetof(ipc_data_t, args),
 	    sizeof(newdata.args));
 	if (rc != EOK)
@@ -700,5 +700,5 @@
  *
  */
-sys_errno_t sys_ipc_answer_slow(cap_call_handle_t chandle, ipc_data_t *data)
+sys_errno_t sys_ipc_answer_slow(cap_call_handle_t chandle, uspace_ptr_ipc_data_t data)
 {
 	kobject_t *kobj = cap_unpublish(TASK, chandle, KOBJECT_TYPE_CALL);
@@ -718,5 +718,5 @@
 		saved = false;
 
-	errno_t rc = copy_from_uspace(&call->data.args, &data->args,
+	errno_t rc = copy_from_uspace(&call->data.args, data + offsetof(ipc_data_t, args),
 	    sizeof(call->data.args));
 	if (rc != EOK) {
@@ -766,5 +766,5 @@
  * @return An error code on error.
  */
-sys_errno_t sys_ipc_wait_for_call(ipc_data_t *calldata, uint32_t usec,
+sys_errno_t sys_ipc_wait_for_call(uspace_ptr_ipc_data_t calldata, uint32_t usec,
     unsigned int flags)
 {
@@ -888,5 +888,5 @@
  */
 sys_errno_t sys_ipc_irq_subscribe(inr_t inr, sysarg_t imethod,
-    irq_code_t *ucode, cap_irq_handle_t *uspace_handle)
+    uspace_ptr_irq_code_t ucode, uspace_ptr_cap_irq_handle_t uspace_handle)
 {
 	if (!(perm_get(TASK) & PERM_IRQ_REG))
@@ -918,6 +918,6 @@
  *
  */
-sys_errno_t sys_ipc_connect_kbox(task_id_t *uspace_taskid,
-    cap_phone_handle_t *uspace_phone)
+sys_errno_t sys_ipc_connect_kbox(uspace_ptr_task_id_t uspace_taskid,
+    uspace_ptr_cap_phone_handle_t uspace_phone)
 {
 #ifdef CONFIG_UDEBUG
