Index: uspace/drv/uhci/callback.c
===================================================================
--- uspace/drv/uhci/callback.c	(revision 45c4f5afa8edc63b9162bd39ff8164e4b26222d3)
+++ uspace/drv/uhci/callback.c	(revision de0e6b3b72cdfc7d29d8455f440dcfb4fc2a9f1d)
@@ -9,5 +9,5 @@
 	assert(instance);
 	assert(func_in == NULL || func_out == NULL);
-	instance->new_buffer = trans_malloc(size);
+	instance->new_buffer = malloc32(size);
 	if (!instance->new_buffer) {
 		uhci_print_error("Failed to allocate device acessible buffer.\n");
@@ -34,5 +34,5 @@
 	if (instance->new_buffer) {
 		memcpy(instance->new_buffer, instance->old_buffer, instance->buffer_size);
-		trans_free(instance->new_buffer);
+		free32(instance->new_buffer);
 		instance->new_buffer = NULL;
 	}
Index: uspace/drv/uhci/callback.h
===================================================================
--- uspace/drv/uhci/callback.h	(revision 45c4f5afa8edc63b9162bd39ff8164e4b26222d3)
+++ uspace/drv/uhci/callback.h	(revision de0e6b3b72cdfc7d29d8455f440dcfb4fc2a9f1d)
@@ -39,5 +39,5 @@
 
 #include "debug.h"
-#include "translating_malloc.h"
+#include "utils/malloc32.h"
 
 typedef struct callback
@@ -80,5 +80,5 @@
 	assert(instance);
 	if (instance->new_buffer)
-		trans_free(instance->new_buffer);
+		free32(instance->new_buffer);
 }
 
Index: uspace/drv/uhci/transfer_list.c
===================================================================
--- uspace/drv/uhci/transfer_list.c	(revision 45c4f5afa8edc63b9162bd39ff8164e4b26222d3)
+++ uspace/drv/uhci/transfer_list.c	(revision de0e6b3b72cdfc7d29d8455f440dcfb4fc2a9f1d)
@@ -8,5 +8,5 @@
 	instance->first = NULL;
 	instance->last = NULL;
-	instance->queue_head = trans_malloc(sizeof(queue_head_t));
+	instance->queue_head = malloc32(sizeof(queue_head_t));
 	if (!instance->queue_head) {
 		uhci_print_error("Failed to allocate queue head.\n");
Index: uspace/drv/uhci/transfer_list.h
===================================================================
--- uspace/drv/uhci/transfer_list.h	(revision 45c4f5afa8edc63b9162bd39ff8164e4b26222d3)
+++ uspace/drv/uhci/transfer_list.h	(revision de0e6b3b72cdfc7d29d8455f440dcfb4fc2a9f1d)
@@ -36,7 +36,7 @@
 
 #include "debug.h"
-#include "translating_malloc.h"
 #include "uhci_struct/queue_head.h"
 #include "uhci_struct/transfer_descriptor.h"
+#include "utils/malloc32.h"
 
 typedef struct transfer_list
@@ -54,5 +54,5 @@
 	assert(instance);
 	if (instance->queue_head)
-		trans_free(instance->queue_head);
+		free32(instance->queue_head);
 }
 
Index: uspace/drv/uhci/translating_malloc.h
===================================================================
--- uspace/drv/uhci/translating_malloc.h	(revision 45c4f5afa8edc63b9162bd39ff8164e4b26222d3)
+++ 	(revision )
@@ -1,54 +1,0 @@
-/*
- * Copyright (c) 2010 Jan Vesely
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** @addtogroup usb
- * @{
- */
-/** @file
- * @brief UHCI driver
- */
-#ifndef DRV_UHCI_TRANSLATOR_H
-#define DRV_UHCI_TRANSLATOR_H
-
-#include <malloc.h>
-
-static inline void * addr_to_phys( void *addr )
-	{ return addr; }
-
-static inline void * addr_to_virt( void *addr )
-	{ return addr; }
-
-static inline void * trans_malloc( size_t size )
-	{ return malloc( size ); }
-
-static inline void trans_free( void * addr )
-	{ free( addr ); }
-
-#endif
-/**
- * @}
- */
Index: uspace/drv/uhci/uhci.c
===================================================================
--- uspace/drv/uhci/uhci.c	(revision 45c4f5afa8edc63b9162bd39ff8164e4b26222d3)
+++ uspace/drv/uhci/uhci.c	(revision de0e6b3b72cdfc7d29d8455f440dcfb4fc2a9f1d)
@@ -3,5 +3,5 @@
 #include <usb/usb.h>
 
-#include "translating_malloc.h"
+#include "utils/malloc32.h"
 
 #include "debug.h"
@@ -61,5 +61,5 @@
 
 	instance->frame_list =
-	  trans_malloc(sizeof(link_pointer_t) * UHCI_FRAME_LIST_COUNT);
+	  malloc32(sizeof(link_pointer_t) * UHCI_FRAME_LIST_COUNT);
 	if (instance->frame_list == NULL) {
 		uhci_print_error("Failed to allocate frame list pointer.\n");
@@ -200,5 +200,5 @@
 			callback_dispose(job); \
 		} \
-		if (td) { trans_free(td); } \
+		if (td) { free32(td); } \
 		return ret; \
 	} else (void) 0
@@ -243,6 +243,5 @@
 				uhci_print_verbose("Cleaning fibril found inactive transport.");
 				instance->transfers[i].first = transfer->next_va;
-				transfer_descriptor_fini(transfer);
-				trans_free(transfer);
+				transfer_descriptor_dispose(transfer);
 			}
 			if (!instance->transfers[i].first)
Index: uspace/drv/uhci/uhci_struct/transfer_descriptor.h
===================================================================
--- uspace/drv/uhci/uhci_struct/transfer_descriptor.h	(revision 45c4f5afa8edc63b9162bd39ff8164e4b26222d3)
+++ uspace/drv/uhci/uhci_struct/transfer_descriptor.h	(revision de0e6b3b72cdfc7d29d8455f440dcfb4fc2a9f1d)
@@ -38,5 +38,5 @@
 #include <usb/usb.h>
 
-#include "translating_malloc.h"
+#include "utils/malloc32.h"
 #include "callback.h"
 #include "link_pointer.h"
@@ -104,5 +104,5 @@
 {
 	transfer_descriptor_t * instance =
-	  trans_malloc(sizeof(transfer_descriptor_t));
+	  malloc32(sizeof(transfer_descriptor_t));
 
 	if (instance)
@@ -118,5 +118,5 @@
 	assert(instance);
 	transfer_descriptor_fini(instance);
-	trans_free(instance);
+	free32(instance);
 }
 
Index: uspace/drv/uhci/utils/malloc32.h
===================================================================
--- uspace/drv/uhci/utils/malloc32.h	(revision de0e6b3b72cdfc7d29d8455f440dcfb4fc2a9f1d)
+++ uspace/drv/uhci/utils/malloc32.h	(revision de0e6b3b72cdfc7d29d8455f440dcfb4fc2a9f1d)
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2010 Jan Vesely
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/** @addtogroup usb
+ * @{
+ */
+/** @file
+ * @brief UHCI driver
+ */
+#ifndef DRV_UHCI_TRANSLATOR_H
+#define DRV_UHCI_TRANSLATOR_H
+
+#include <usb/usbmem.h>
+
+static inline void * addr_to_phys(void *addr)
+	{ return mman_getPA(addr); }
+
+static inline void * malloc32(size_t size)
+/* TODO: tis is ugly */
+	{ return mman_malloc(size, 128, 0xffffffff); }
+
+static inline void free32(void * addr)
+	{ mman_free(addr); }
+
+#endif
+/**
+ * @}
+ */
