Changeset d1e9321 in mainline for kernel/generic/include/adt/avl.h
- Timestamp:
- 2007-07-29T13:46:34Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5dcee525
- Parents:
- 0d65d76
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/adt/avl.h
r0d65d76 rd1e9321 33 33 */ 34 34 35 36 35 #ifndef KERN_AVLTREE_H_ 37 36 #define KERN_AVLTREE_H_ … … 47 46 * @param member Name of avltree attribute in the outer structure. 48 47 */ 49 #define avltree_get_instance(link, type, member) \ 50 ((type *)(((uint8_t *)(link)) - ((uint8_t *) &(((type *) NULL)->member)))) 51 48 #define avltree_get_instance(node, type, member) \ 49 ((type *)(((uint8_t *)(node)) - ((uint8_t *) &(((type *) NULL)->member)))) 52 50 53 51 typedef struct avltree_node avltree_node_t; 54 52 typedef struct avltree avltree_t; 55 53 54 typedef uint64_t avltree_key_t; 55 56 typedef void (* avltree_walker_t)(avltree_node_t *); 56 57 57 58 /** AVL tree node structure. */ … … 78 79 79 80 /** Node's key. */ 80 uint64_t key;81 avltree_key_t key; 81 82 82 83 /** … … 101 102 * with avltree_delete_min(). 102 103 */ 103 uint64_t base;104 avltree_key_t base; 104 105 }; 105 106 … … 109 110 * @param t AVL tree. 110 111 */ 111 static inline void avltree_create 112 static inline void avltree_create(avltree_t *t) 112 113 { 113 114 t->root = NULL; … … 129 130 130 131 extern avltree_node_t *avltree_find_min(avltree_t *t); 131 extern avltree_node_t *avltree_search(avltree_t *t, uint64_t key);132 extern avltree_node_t *avltree_search(avltree_t *t, avltree_key_t key); 132 133 extern void avltree_insert(avltree_t *t, avltree_node_t *newnode); 133 134 extern void avltree_delete(avltree_t *t, avltree_node_t *node); 134 135 extern bool avltree_delete_min(avltree_t *t); 136 extern void avltree_walk(avltree_t *t, avltree_walker_t walker); 135 137 136 138 #endif
Note:
See TracChangeset
for help on using the changeset viewer.