Annotation of Gnu-Mach/kern/rdxtree_i.h, revision 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.