]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - kernel/include/kern/orb.h
xfer to laptop
[polintos/scott/priv.git] / kernel / include / kern / orb.h
index dc832c385c1566d0e8122c389408eea6e1d1522b..e420fc77e11f72e10597797808a6146b36288f49 100644 (file)
@@ -2,6 +2,7 @@
 #define _KERN_ORB_H
 
 #include <kern/types.h>
+#include <kern/radix.h>
 #include <orb.h>
 
 #include <util/list.h>
@@ -54,11 +55,11 @@ namespace ORB {
        struct ObjectHdr;
        struct Object;
        
-       typedef Util::RBTree<ObjectHdr, Object *, Object *> IDRMap;
+       typedef u32 ID;
+       typedef Util::RadixTree<ObjectHdr, ID> IDRMap;
 
        struct ObjectHdr {
-               IDRMap::Node rbtree_node;
-               u32 id;
+               ID id;
 
                union {
                        struct {
@@ -80,11 +81,11 @@ namespace ORB {
 
        class IDSpace {
                // Reverse mapping of object pointers to local IDs
-               IDRMap id_rmap;
+               IDRMap idrmap;
        
        public:
                Object *lookup(u32 id);
-               u32 rlookup(Object *obj);
+               ObjectHdr *get_local_hdr(Object *obj);
        };
 }