Index: Makefile
===================================================================
--- Makefile	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ Makefile	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -95,4 +95,5 @@
 
 GENERIC_SOURCES = \
+	generic/src/adt/list.c \
 	generic/src/console/chardev.c \
 	generic/src/console/console.c \
@@ -118,5 +119,4 @@
 	generic/src/mm/slab.c \
 	generic/src/lib/func.c \
-	generic/src/lib/list.c \
 	generic/src/lib/memstr.c \
 	generic/src/lib/sort.c \
Index: genarch/src/mm/asid.c
===================================================================
--- genarch/src/mm/asid.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ genarch/src/mm/asid.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -54,5 +54,5 @@
 #include <synch/spinlock.h>
 #include <arch.h>
-#include <list.h>
+#include <adt/list.h>
 #include <debug.h>
 
Index: genarch/src/mm/asid_fifo.c
===================================================================
--- genarch/src/mm/asid_fifo.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ genarch/src/mm/asid_fifo.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -31,5 +31,5 @@
 #include <mm/asid.h>
 #include <typedefs.h>
-#include <fifo.h>
+#include <adt/fifo.h>
 
 /**
Index: generic/include/adt/fifo.h
===================================================================
--- generic/include/adt/fifo.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
+++ generic/include/adt/fifo.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2006 Jakub Jermar
+ * 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.
+ */
+
+/*
+ * This implementation of FIFO stores values in a statically
+ * allocated array created on each FIFO's initialization.
+ * As such, these FIFOs have upper bound on number of values
+ * they can store. Push and pop operations are done via accessing
+ * the array through head and tail indices. Because of better
+ * operation ordering in fifo_pop(), the access policy for these
+ * two indices is to 'increment (mod size of FIFO) and use'.
+ */
+
+#ifndef __FIFO_H__
+#define __FIFO_H__
+
+#include <typedefs.h>
+
+/** Create and initialize FIFO.
+ *
+ * @param name Name of FIFO.
+ * @param t Type of values stored in FIFO.
+ * @param itms Number of items that can be stored in FIFO.
+ */
+#define FIFO_INITIALIZE(name, t, itms)			\
+	struct {					\
+		t fifo[(itms)];				\
+		count_t items;				\
+		index_t head;				\
+		index_t tail;				\
+	} name = {					\
+		.items = (itms),			\
+		.head = 0,				\
+		.tail = 0				\
+	}
+
+/** Pop value from head of FIFO.
+ *
+ * @param name FIFO name.
+ *
+ * @return Leading value in FIFO.
+ */
+#define fifo_pop(name) \
+	name.fifo[name.head = (name.head + 1) < name.items ? (name.head + 1) : 0]
+
+/** Push value to tail of FIFO.
+ *
+ * @param name FIFO name.
+ * @param value Value to be appended to FIFO.
+ *
+ */
+#define fifo_push(name, value) \
+	name.fifo[name.tail = (name.tail + 1) < name.items ? (name.tail + 1) : 0] = (value) 
+
+#endif
Index: generic/include/adt/list.h
===================================================================
--- generic/include/adt/list.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
+++ generic/include/adt/list.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2001-2004 Jakub Jermar
+ * 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.
+ */
+
+#ifndef __LIST_H__
+#define __LIST_H__
+
+#include <arch/types.h>
+#include <typedefs.h>
+
+/** Doubly linked list head and link type. */
+struct link {
+	link_t *prev;	/**< Pointer to the previous item in the list. */
+	link_t *next;	/**< Pointer to the next item in the list. */
+};
+
+/** Declare and initialize statically allocated list.
+ *
+ * @param name Name of the new statically allocated list.
+ */
+#define LIST_INITIALIZE(name)		link_t name = { .prev = &name, .next = &name }
+
+/** Initialize doubly-linked circular list link
+ *
+ * Initialize doubly-linked list link.
+ *
+ * @param link Pointer to link_t structure to be initialized.
+ */
+static inline void link_initialize(link_t *link)
+{
+	link->prev = NULL;
+	link->next = NULL;
+}
+
+/** Initialize doubly-linked circular list
+ *
+ * Initialize doubly-linked circular list.
+ *
+ * @param head Pointer to link_t structure representing head of the list.
+ */
+static inline void list_initialize(link_t *head)
+{
+	head->prev = head;
+	head->next = head;
+}
+
+/** Add item to the beginning of doubly-linked circular list
+ *
+ * Add item to the beginning of doubly-linked circular list.
+ *
+ * @param link Pointer to link_t structure to be added.
+ * @param head Pointer to link_t structure representing head of the list.
+ */
+static inline void list_prepend(link_t *link, link_t *head)
+{
+	link->next = head->next;
+	link->prev = head;
+	head->next->prev = link;
+	head->next = link;
+}
+
+/** Add item to the end of doubly-linked circular list
+ *
+ * Add item to the end of doubly-linked circular list.
+ *
+ * @param link Pointer to link_t structure to be added.
+ * @param head Pointer to link_t structure representing head of the list.
+ */
+static inline void list_append(link_t *link, link_t *head)
+{
+	link->prev = head->prev;
+	link->next = head;
+	head->prev->next = link;
+	head->prev = link;
+}
+
+/** Remove item from doubly-linked circular list
+ *
+ * Remove item from doubly-linked circular list.
+ *
+ * @param link Pointer to link_t structure to be removed from the list it is contained in.
+ */
+static inline void list_remove(link_t *link)
+{
+	link->next->prev = link->prev;
+	link->prev->next = link->next;
+	link_initialize(link);
+}
+
+/** Query emptiness of doubly-linked circular list
+ *
+ * Query emptiness of doubly-linked circular list.
+ *
+ * @param head Pointer to link_t structure representing head of the list.
+ */
+static inline bool list_empty(link_t *head)
+{
+	return head->next == head ? true : false;
+}
+
+
+/** Split or concatenate headless doubly-linked circular list
+ *
+ * Split or concatenate headless doubly-linked circular list.
+ *
+ * Note that the algorithm works both directions:
+ * concatenates splitted lists and splits concatenated lists.
+ *
+ * @param part1 Pointer to link_t structure leading the first (half of the headless) list.
+ * @param part2 Pointer to link_t structure leading the second (half of the headless) list. 
+ */
+static inline void headless_list_split_or_concat(link_t *part1, link_t *part2)
+{
+	link_t *hlp;
+
+	part1->prev->next = part2;
+	part2->prev->next = part1;	
+	hlp = part1->prev;
+	part1->prev = part2->prev;
+	part2->prev = hlp;
+}
+
+
+/** Split headless doubly-linked circular list
+ *
+ * Split headless doubly-linked circular list.
+ *
+ * @param part1 Pointer to link_t structure leading the first half of the headless list.
+ * @param part2 Pointer to link_t structure leading the second half of the headless list. 
+ */
+static inline void headless_list_split(link_t *part1, link_t *part2)
+{
+	headless_list_split_or_concat(part1, part2);
+}
+
+/** Concatenate two headless doubly-linked circular lists
+ *
+ * Concatenate two headless doubly-linked circular lists.
+ *
+ * @param part1 Pointer to link_t structure leading the first headless list.
+ * @param part2 Pointer to link_t structure leading the second headless list. 
+ */
+static inline void headless_list_concat(link_t *part1, link_t *part2)
+{
+	headless_list_split_or_concat(part1, part2);
+}
+
+#define list_get_instance(link,type,member) (type *)(((__u8*)(link))-((__u8*)&(((type *)NULL)->member)))
+
+extern bool list_member(const link_t *link, const link_t *head);
+extern void list_concat(link_t *head1, link_t *head2);
+
+#endif
Index: generic/include/console/kconsole.h
===================================================================
--- generic/include/console/kconsole.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/console/kconsole.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -31,5 +31,5 @@
 
 #include <typedefs.h>
-#include <list.h>
+#include <adt/list.h>
 #include <synch/spinlock.h>
 
Index: generic/include/cpu.h
===================================================================
--- generic/include/cpu.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/cpu.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -38,5 +38,5 @@
 #include <arch/context.h>
 #include <config.h>
-#include <list.h>
+#include <adt/list.h>
 
 #define CPU_STACK_SIZE	STACK_SIZE
Index: neric/include/fifo.h
===================================================================
--- generic/include/fifo.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ 	(revision )
@@ -1,80 +1,0 @@
-/*
- * Copyright (C) 2006 Jakub Jermar
- * 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.
- */
-
-/*
- * This implementation of FIFO stores values in a statically
- * allocated array created on each FIFO's initialization.
- * As such, these FIFOs have upper bound on number of values
- * they can store. Push and pop operations are done via accessing
- * the array through head and tail indices. Because of better
- * operation ordering in fifo_pop(), the access policy for these
- * two indices is to 'increment (mod size of FIFO) and use'.
- */
-
-#ifndef __FIFO_H__
-#define __FIFO_H__
-
-#include <typedefs.h>
-
-/** Create and initialize FIFO.
- *
- * @param name Name of FIFO.
- * @param t Type of values stored in FIFO.
- * @param itms Number of items that can be stored in FIFO.
- */
-#define FIFO_INITIALIZE(name, t, itms)			\
-	struct {					\
-		t fifo[(itms)];				\
-		count_t items;				\
-		index_t head;				\
-		index_t tail;				\
-	} name = {					\
-		.items = (itms),			\
-		.head = 0,				\
-		.tail = 0				\
-	}
-
-/** Pop value from head of FIFO.
- *
- * @param name FIFO name.
- *
- * @return Leading value in FIFO.
- */
-#define fifo_pop(name) \
-	name.fifo[name.head = (name.head + 1) < name.items ? (name.head + 1) : 0]
-
-/** Push value to tail of FIFO.
- *
- * @param name FIFO name.
- * @param value Value to be appended to FIFO.
- *
- */
-#define fifo_push(name, value) \
-	name.fifo[name.tail = (name.tail + 1) < name.items ? (name.tail + 1) : 0] = (value) 
-
-#endif
Index: neric/include/list.h
===================================================================
--- generic/include/list.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ 	(revision )
@@ -1,177 +1,0 @@
-/*
- * Copyright (C) 2001-2004 Jakub Jermar
- * 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.
- */
-
-#ifndef __LIST_H__
-#define __LIST_H__
-
-#include <arch/types.h>
-#include <typedefs.h>
-
-/** Doubly linked list head and link type. */
-struct link {
-	link_t *prev;	/**< Pointer to the previous item in the list. */
-	link_t *next;	/**< Pointer to the next item in the list. */
-};
-
-/** Declare and initialize statically allocated list.
- *
- * @param name Name of the new statically allocated list.
- */
-#define LIST_INITIALIZE(name)		link_t name = { .prev = &name, .next = &name }
-
-/** Initialize doubly-linked circular list link
- *
- * Initialize doubly-linked list link.
- *
- * @param link Pointer to link_t structure to be initialized.
- */
-static inline void link_initialize(link_t *link)
-{
-	link->prev = NULL;
-	link->next = NULL;
-}
-
-/** Initialize doubly-linked circular list
- *
- * Initialize doubly-linked circular list.
- *
- * @param head Pointer to link_t structure representing head of the list.
- */
-static inline void list_initialize(link_t *head)
-{
-	head->prev = head;
-	head->next = head;
-}
-
-/** Add item to the beginning of doubly-linked circular list
- *
- * Add item to the beginning of doubly-linked circular list.
- *
- * @param link Pointer to link_t structure to be added.
- * @param head Pointer to link_t structure representing head of the list.
- */
-static inline void list_prepend(link_t *link, link_t *head)
-{
-	link->next = head->next;
-	link->prev = head;
-	head->next->prev = link;
-	head->next = link;
-}
-
-/** Add item to the end of doubly-linked circular list
- *
- * Add item to the end of doubly-linked circular list.
- *
- * @param link Pointer to link_t structure to be added.
- * @param head Pointer to link_t structure representing head of the list.
- */
-static inline void list_append(link_t *link, link_t *head)
-{
-	link->prev = head->prev;
-	link->next = head;
-	head->prev->next = link;
-	head->prev = link;
-}
-
-/** Remove item from doubly-linked circular list
- *
- * Remove item from doubly-linked circular list.
- *
- * @param link Pointer to link_t structure to be removed from the list it is contained in.
- */
-static inline void list_remove(link_t *link)
-{
-	link->next->prev = link->prev;
-	link->prev->next = link->next;
-	link_initialize(link);
-}
-
-/** Query emptiness of doubly-linked circular list
- *
- * Query emptiness of doubly-linked circular list.
- *
- * @param head Pointer to link_t structure representing head of the list.
- */
-static inline bool list_empty(link_t *head)
-{
-	return head->next == head ? true : false;
-}
-
-
-/** Split or concatenate headless doubly-linked circular list
- *
- * Split or concatenate headless doubly-linked circular list.
- *
- * Note that the algorithm works both directions:
- * concatenates splitted lists and splits concatenated lists.
- *
- * @param part1 Pointer to link_t structure leading the first (half of the headless) list.
- * @param part2 Pointer to link_t structure leading the second (half of the headless) list. 
- */
-static inline void headless_list_split_or_concat(link_t *part1, link_t *part2)
-{
-	link_t *hlp;
-
-	part1->prev->next = part2;
-	part2->prev->next = part1;	
-	hlp = part1->prev;
-	part1->prev = part2->prev;
-	part2->prev = hlp;
-}
-
-
-/** Split headless doubly-linked circular list
- *
- * Split headless doubly-linked circular list.
- *
- * @param part1 Pointer to link_t structure leading the first half of the headless list.
- * @param part2 Pointer to link_t structure leading the second half of the headless list. 
- */
-static inline void headless_list_split(link_t *part1, link_t *part2)
-{
-	headless_list_split_or_concat(part1, part2);
-}
-
-/** Concatenate two headless doubly-linked circular lists
- *
- * Concatenate two headless doubly-linked circular lists.
- *
- * @param part1 Pointer to link_t structure leading the first headless list.
- * @param part2 Pointer to link_t structure leading the second headless list. 
- */
-static inline void headless_list_concat(link_t *part1, link_t *part2)
-{
-	headless_list_split_or_concat(part1, part2);
-}
-
-#define list_get_instance(link,type,member) (type *)(((__u8*)(link))-((__u8*)&(((type *)NULL)->member)))
-
-extern bool list_member(const link_t *link, const link_t *head);
-extern void list_concat(link_t *head1, link_t *head2);
-
-#endif
Index: generic/include/mm/as.h
===================================================================
--- generic/include/mm/as.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/mm/as.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -36,5 +36,5 @@
 #include <typedefs.h>
 #include <synch/spinlock.h>
-#include <list.h>
+#include <adt/list.h>
 
 #define KERNEL_ADDRESS_SPACE_START	KERNEL_ADDRESS_SPACE_START_ARCH
Index: generic/include/mm/frame.h
===================================================================
--- generic/include/mm/frame.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/mm/frame.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -33,5 +33,5 @@
 #include <arch/types.h>
 #include <typedefs.h>
-#include <list.h>
+#include <adt/list.h>
 #include <synch/spinlock.h>
 #include <mm/buddy.h>
Index: generic/include/mm/slab.h
===================================================================
--- generic/include/mm/slab.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/mm/slab.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -30,5 +30,5 @@
 #define __SLAB_H__
 
-#include <list.h>
+#include <adt/list.h>
 #include <synch/spinlock.h>
 #include <arch/atomic.h>
Index: generic/include/proc/scheduler.h
===================================================================
--- generic/include/proc/scheduler.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/proc/scheduler.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -34,5 +34,5 @@
 #include <typedefs.h>
 #include <arch/atomic.h>
-#include <list.h>
+#include <adt/list.h>
 
 #define RQ_COUNT 		16
Index: generic/include/proc/task.h
===================================================================
--- generic/include/proc/task.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/proc/task.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -32,5 +32,5 @@
 #include <typedefs.h>
 #include <synch/spinlock.h>
-#include <list.h>
+#include <adt/list.h>
 
 /** Task structure. */
Index: generic/include/proc/thread.h
===================================================================
--- generic/include/proc/thread.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/proc/thread.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -39,5 +39,5 @@
 #include <synch/rwlock.h>
 #include <config.h>
-#include <list.h>
+#include <adt/list.h>
 
 #define THREAD_STACK_SIZE	STACK_SIZE
Index: generic/include/synch/waitq.h
===================================================================
--- generic/include/synch/waitq.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/synch/waitq.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -34,5 +34,5 @@
 #include <synch/spinlock.h>
 #include <synch/synch.h>
-#include <list.h>
+#include <adt/list.h>
 
 #define WAKEUP_FIRST	0
Index: generic/include/time/timeout.h
===================================================================
--- generic/include/time/timeout.h	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/include/time/timeout.h	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -33,5 +33,5 @@
 #include <typedefs.h>
 #include <synch/spinlock.h>
-#include <list.h>
+#include <adt/list.h>
 
 #define us2ticks(us)	((__u64)(((__u32) (us)/(1000000/HZ))))
Index: generic/src/adt/list.c
===================================================================
--- generic/src/adt/list.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
+++ generic/src/adt/list.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2004 Jakub Jermar
+ * 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.
+ */
+
+#include <adt/list.h>
+
+
+/** Check for membership
+ *
+ * Check whether link is contained in the list head.
+ * The membership is defined as pointer equivalence.
+ *
+ * @param link Item to look for.
+ * @param head List to look in.
+ *
+ * @return true if link is contained in head, false otherwise.
+ *
+ */
+bool list_member(const link_t *link, const link_t *head)
+{
+	bool found = false;
+	link_t *hlp = head->next;
+	
+	while (hlp != head) {
+		if (hlp == link) {
+			found = true;
+			break;
+		}
+		hlp = hlp->next;
+	}
+	
+	return found;
+}
+
+
+/** Concatenate two lists
+ *
+ * Concatenate lists head1 and head2, producing a single
+ * list head1 containing items from both (in head1, head2
+ * order) and empty list head2.
+ *
+ * @param head1 First list and concatenated output
+ * @param head2 Second list and empty output.
+ *
+ */
+void list_concat(link_t *head1, link_t *head2)
+{
+	if (list_empty(head2))
+		return;
+
+	head2->next->prev = head1->prev;
+	head2->prev->next = head1;	
+	head1->prev->next = head2->next;
+	head1->prev = head2->prev;
+	list_initialize(head2);
+}
Index: generic/src/console/cmd.c
===================================================================
--- generic/src/console/cmd.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/console/cmd.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -40,5 +40,5 @@
 #include <typedefs.h>
 #include <arch/types.h>
-#include <list.h>
+#include <adt/list.h>
 #include <arch.h>
 #include <func.h>
Index: generic/src/console/kconsole.c
===================================================================
--- generic/src/console/kconsole.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/console/kconsole.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -35,5 +35,5 @@
 #include <typedefs.h>
 #include <arch/types.h>
-#include <list.h>
+#include <adt/list.h>
 #include <arch.h>
 #include <macros.h>
Index: generic/src/cpu/cpu.c
===================================================================
--- generic/src/cpu/cpu.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/cpu/cpu.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -38,5 +38,5 @@
 #include <typedefs.h>
 #include <memstr.h>
-#include <list.h>
+#include <adt/list.h>
 #include <print.h>
 
Index: neric/src/lib/list.c
===================================================================
--- generic/src/lib/list.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ 	(revision )
@@ -1,80 +1,0 @@
-/*
- * Copyright (C) 2004 Jakub Jermar
- * 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.
- */
-
-#include <list.h>
-
-
-/** Check for membership
- *
- * Check whether link is contained in the list head.
- * The membership is defined as pointer equivalence.
- *
- * @param link Item to look for.
- * @param head List to look in.
- *
- * @return true if link is contained in head, false otherwise.
- *
- */
-bool list_member(const link_t *link, const link_t *head)
-{
-	bool found = false;
-	link_t *hlp = head->next;
-	
-	while (hlp != head) {
-		if (hlp == link) {
-			found = true;
-			break;
-		}
-		hlp = hlp->next;
-	}
-	
-	return found;
-}
-
-
-/** Concatenate two lists
- *
- * Concatenate lists head1 and head2, producing a single
- * list head1 containing items from both (in head1, head2
- * order) and empty list head2.
- *
- * @param head1 First list and concatenated output
- * @param head2 Second list and empty output.
- *
- */
-void list_concat(link_t *head1, link_t *head2)
-{
-	if (list_empty(head2))
-		return;
-
-	head2->next->prev = head1->prev;
-	head2->prev->next = head1;	
-	head1->prev->next = head2->next;
-	head1->prev = head2->prev;
-	list_initialize(head2);
-}
Index: generic/src/mm/as.c
===================================================================
--- generic/src/mm/as.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/mm/as.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -47,5 +47,5 @@
 #include <synch/spinlock.h>
 #include <config.h>
-#include <list.h>
+#include <adt/list.h>
 #include <panic.h>
 #include <arch/asm.h>
Index: generic/src/mm/buddy.c
===================================================================
--- generic/src/mm/buddy.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/mm/buddy.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -32,5 +32,5 @@
 #include <arch/types.h>
 #include <typedefs.h>
-#include <list.h>
+#include <adt/list.h>
 #include <debug.h>
 #include <print.h>
Index: generic/src/mm/frame.c
===================================================================
--- generic/src/mm/frame.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/mm/frame.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -35,5 +35,5 @@
 #include <panic.h>
 #include <debug.h>
-#include <list.h>
+#include <adt/list.h>
 #include <synch/spinlock.h>
 #include <arch/asm.h>
Index: generic/src/mm/slab.c
===================================================================
--- generic/src/mm/slab.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/mm/slab.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -94,5 +94,5 @@
 #include <synch/spinlock.h>
 #include <mm/slab.h>
-#include <list.h>
+#include <adt/list.h>
 #include <memstr.h>
 #include <align.h>
Index: generic/src/proc/scheduler.c
===================================================================
--- generic/src/proc/scheduler.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/proc/scheduler.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -42,5 +42,5 @@
 #include <func.h>
 #include <arch.h>
-#include <list.h>
+#include <adt/list.h>
 #include <panic.h>
 #include <typedefs.h>
Index: generic/src/proc/task.c
===================================================================
--- generic/src/proc/task.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/proc/task.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -35,5 +35,5 @@
 #include <arch.h>
 #include <panic.h>
-#include <list.h>
+#include <adt/list.h>
 
 SPINLOCK_INITIALIZE(tasks_lock);
Index: generic/src/proc/thread.c
===================================================================
--- generic/src/proc/thread.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/proc/thread.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -42,8 +42,8 @@
 #include <func.h>
 #include <context.h>
-#include <list.h>
+#include <adt/list.h>
 #include <typedefs.h>
 #include <time/clock.h>
-#include <list.h>
+#include <adt/list.h>
 #include <config.h>
 #include <arch/interrupt.h>
Index: generic/src/synch/rwlock.c
===================================================================
--- generic/src/synch/rwlock.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/synch/rwlock.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -57,5 +57,5 @@
 #include <synch/waitq.h>
 #include <synch/synch.h>
-#include <list.h>
+#include <adt/list.h>
 #include <typedefs.h>
 #include <arch/asm.h>
Index: generic/src/synch/waitq.c
===================================================================
--- generic/src/synch/waitq.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/synch/waitq.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -38,5 +38,5 @@
 #include <arch.h>
 #include <context.h>
-#include <list.h>
+#include <adt/list.h>
 
 /** Initialize wait queue
Index: generic/src/time/clock.c
===================================================================
--- generic/src/time/clock.c	(revision 266294a9258f81b86dd330ce9d8a831828decba0)
+++ generic/src/time/clock.c	(revision 5c9a08b46f360925ecb95360eb2b35b88a5f8087)
@@ -38,5 +38,5 @@
 #include <print.h>
 #include <arch.h>
-#include <list.h>
+#include <adt/list.h>
 #include <arch/atomic.h>
 #include <proc/thread.h>
