Index: kernel/generic/include/adt/avl.h
===================================================================
--- kernel/generic/include/adt/avl.h	(revision 5dcee525bccbdcd56e08f5269158e2d305ff94d3)
+++ kernel/generic/include/adt/avl.h	(revision 556fc532f3c6e9105f7ccbabcd6867fe9432d379)
@@ -54,5 +54,5 @@
 typedef uint64_t avltree_key_t;
 
-typedef void (* avltree_walker_t)(avltree_node_t *);
+typedef bool (* avltree_walker_t)(avltree_node_t *, void *);
 
 /** AVL tree node structure. */
@@ -134,5 +134,5 @@
 extern void avltree_delete(avltree_t *t, avltree_node_t *node);
 extern bool avltree_delete_min(avltree_t *t);
-extern void avltree_walk(avltree_t *t, avltree_walker_t walker);
+extern void avltree_walk(avltree_t *t, avltree_walker_t walker, void *arg);
 
 #endif
Index: kernel/generic/include/proc/task.h
===================================================================
--- kernel/generic/include/proc/task.h	(revision 5dcee525bccbdcd56e08f5269158e2d305ff94d3)
+++ kernel/generic/include/proc/task.h	(revision 556fc532f3c6e9105f7ccbabcd6867fe9432d379)
@@ -42,4 +42,5 @@
 #include <synch/rwlock.h>
 #include <synch/futex.h>
+#include <adt/avl.h>
 #include <adt/btree.h>
 #include <adt/list.h>
@@ -57,4 +58,7 @@
 /** Task structure. */
 typedef struct task {
+	/** Task's linkage for the tasks_tree AVL tree. */
+	avltree_node_t tasks_tree_node;
+	
 	/** Task lock.
 	 *
@@ -107,5 +111,5 @@
 
 SPINLOCK_EXTERN(tasks_lock);
-extern btree_t tasks_btree;
+extern avltree_t tasks_tree;
 
 extern void task_init(void);
