Index: uspace/lib/drv/include/usbhc_iface.h
===================================================================
--- uspace/lib/drv/include/usbhc_iface.h	(revision d345ce2f2396010ea2fd5ad90e85202da83d5197)
+++ uspace/lib/drv/include/usbhc_iface.h	(revision 5ef3afdf4e5aa4f84ed956962e5facd43397a2aa)
@@ -104,5 +104,10 @@
 
 // FIXME: DMA buffers shall be part of libdrv anyway.
-typedef unsigned dma_policy_t;
+typedef uintptr_t dma_policy_t;
+
+typedef struct dma_buffer {
+	void *virt;
+	dma_policy_t policy;
+} dma_buffer_t;
 
 typedef struct usb_pipe_desc {
@@ -134,14 +139,11 @@
 
 	/**
-	 * Base address of the buffer to share. Must be at least offset + size
-	 * large. Is patched after being transmitted over IPC, so the pointer is
-	 * still valid.
-	 *
-	 * Note that offset might be actually more than PAGE_SIZE.
+	 * The DMA buffer to share. Must be at least offset + size large. Is
+	 * patched after being transmitted over IPC, so the pointer is still
+	 * valid.
 	 */
-	void *base;
+	dma_buffer_t buffer;
 	size_t offset;			/**< Offset to the buffer */
 	size_t size;			/**< Requested size. */
-	dma_policy_t buffer_policy;	/**< Properties of the buffer. */
 } usbhc_iface_transfer_request_t;
 
