Annotation of Gnu-Mach/kern/rdxtree_i.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 2013-2015 Richard Braun.
                      3:  *
                      4:  * This program is free software: you can redistribute it and/or modify
                      5:  * it under the terms of the GNU General Public License as published by
                      6:  * the Free Software Foundation, either version 3 of the License, or
                      7:  * (at your option) any later version.
                      8:  *
                      9:  * This program is distributed in the hope that it will be useful,
                     10:  * but WITHOUT ANY WARRANTY; without even the implied warranty of
                     11:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     12:  * GNU General Public License for more details.
                     13:  *
                     14:  * You should have received a copy of the GNU General Public License
                     15:  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
                     16:  *
                     17:  *
                     18:  * Upstream site with license notes :
                     19:  * http://git.sceen.net/rbraun/librbraun.git/
                     20:  */
                     21: 
                     22: #ifndef _RDXTREE_I_H
                     23: #define _RDXTREE_I_H
                     24: 
                     25: /*
                     26:  * Radix tree.
                     27:  */
                     28: struct rdxtree {
                     29:     unsigned int height;
                     30:     void *root;
                     31: };
                     32: 
                     33: /*
                     34:  * Radix tree iterator.
                     35:  *
                     36:  * The node member refers to the node containing the current pointer, if any.
                     37:  * The key member refers to the current pointer, and is valid if and only if
                     38:  * rdxtree_walk() has been called at least once on the iterator.
                     39:  */
                     40: struct rdxtree_iter {
                     41:     void *node;
                     42:     rdxtree_key_t key;
                     43: };
                     44: 
                     45: /*
                     46:  * Initialize an iterator.
                     47:  */
                     48: static inline void
                     49: rdxtree_iter_init(struct rdxtree_iter *iter)
                     50: {
                     51:     iter->node = NULL;
                     52:     iter->key = (rdxtree_key_t)-1;
                     53: }
                     54: 
                     55: int rdxtree_insert_common(struct rdxtree *tree, rdxtree_key_t key,
                     56:                           void *ptr, void ***slotp);
                     57: 
                     58: int rdxtree_insert_alloc_common(struct rdxtree *tree, void *ptr,
                     59:                                 rdxtree_key_t *keyp, void ***slotp);
                     60: 
                     61: void * rdxtree_lookup_common(const struct rdxtree *tree, rdxtree_key_t key,
                     62:                              int get_slot);
                     63: 
                     64: void * rdxtree_walk(struct rdxtree *tree, struct rdxtree_iter *iter);
                     65: 
                     66: #endif /* _RDXTREE_I_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.