/trunk/kernel/generic/include/proc/task.h |
---|
41,6 → 41,7 |
#include <synch/mutex.h> |
#include <synch/rwlock.h> |
#include <synch/futex.h> |
#include <adt/avl.h> |
#include <adt/btree.h> |
#include <adt/list.h> |
#include <security/cap.h> |
56,6 → 57,9 |
/** Task structure. */ |
typedef struct task { |
/** Task's linkage for the tasks_tree AVL tree. */ |
avltree_node_t tasks_tree_node; |
/** Task lock. |
* |
* Must be acquired before threads_lock and thread lock of any of its |
106,7 → 110,7 |
} task_t; |
SPINLOCK_EXTERN(tasks_lock); |
extern btree_t tasks_btree; |
extern avltree_t tasks_tree; |
extern void task_init(void); |
extern void task_done(void); |
/trunk/kernel/generic/include/adt/avl.h |
---|
53,7 → 53,7 |
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. */ |
struct avltree_node |
133,7 → 133,7 |
extern void avltree_insert(avltree_t *t, avltree_node_t *newnode); |
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 |