Index: kernel/generic/include/ddi/ddi.h
===================================================================
--- kernel/generic/include/ddi/ddi.h	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
+++ kernel/generic/include/ddi/ddi.h	(revision 30e2bbabc6e6d2fb1df50ace4a1582aa7b8d4617)
@@ -39,11 +39,12 @@
 #include <arch/types.h>
 #include <proc/task.h>
+#include <adt/list.h>
 
 /** Structure representing contiguous physical memory area. */
 typedef struct {
-	uintptr_t pbase;	/**< Physical base of the area. */
-	uintptr_t vbase;	/**< Virtual base of the area. */
-	count_t frames;		/**< Number of frames in the area. */
-	bool cacheable;		/**< Cacheability. */
+	uintptr_t pbase;    /**< Physical base of the area. */
+	pfn_t frames;       /**< Number of frames in the area. */
+	
+	link_t link;        /**< Linked list link */
 } parea_t;
 
Index: kernel/generic/include/mm/page.h
===================================================================
--- kernel/generic/include/mm/page.h	(revision 6cd9aa607e6515e17e369c7e888779416251db4d)
+++ kernel/generic/include/mm/page.h	(revision 30e2bbabc6e6d2fb1df50ace4a1582aa7b8d4617)
@@ -43,5 +43,5 @@
 typedef struct {
 	void (* mapping_insert)(as_t *as, uintptr_t page, uintptr_t frame,
-		int flags);
+	    int flags);
 	void (* mapping_remove)(as_t *as, uintptr_t page);
 	pte_t *(* mapping_find)(as_t *as, uintptr_t page);
@@ -60,5 +60,7 @@
 extern void page_table_destroy(pte_t *page_table);
 extern void map_structure(uintptr_t s, size_t size);
+
 extern uintptr_t hw_map(uintptr_t physaddr, size_t size);
+extern void hw_area(uintptr_t *physaddr, pfn_t *frames);
 
 #endif
