Deleted Added
full compact
38c38,44
< #define VM_RADIX_HEIGHT 0xf /* Bits of height in root */
---
> #define VM_RADIX_FLAGS 0x3 /* Flag bits stored in node pointers. */
> #define VM_RADIX_BLACK 0x1 /* Black node. (leaf only) */
> #define VM_RADIX_RED 0x2 /* Red node. (leaf only) */
> #define VM_RADIX_ANY (VM_RADIX_RED | VM_RADIX_BLACK)
> #define VM_RADIX_EMPTY 0x1 /* Empty hint. (internal only) */
> #define VM_RADIX_HEIGHT 0xf /* Bits of height in root */
> #define VM_RADIX_STACK 8 /* Nodes to store on stack. */
48c54
< void *rn_child[VM_RADIX_COUNT]; /* child nodes. */
---
> void *rn_child[VM_RADIX_COUNT]; /* child nodes. */
60a67,70
>
> /*
> * Functions which only work with black nodes. (object lock)
> */
62,66d71
< void *vm_radix_remove(struct vm_radix *, vm_pindex_t);
< void *vm_radix_lookup(struct vm_radix *, vm_pindex_t);
< int vm_radix_lookupn(struct vm_radix *rtree, vm_pindex_t start,
< vm_pindex_t end, void **out, int cnt, vm_pindex_t *next);
< void *vm_radix_lookup_le(struct vm_radix *, vm_pindex_t);
69a75,84
> * Functions which work on specified colors. (object, vm_page_queue_free locks)
> */
> void *vm_radix_color(struct vm_radix *, vm_pindex_t, int color);
> void *vm_radix_lookup(struct vm_radix *, vm_pindex_t, int color);
> int vm_radix_lookupn(struct vm_radix *rtree, vm_pindex_t start,
> vm_pindex_t end, int color, void **out, int cnt, vm_pindex_t *next);
> void *vm_radix_lookup_le(struct vm_radix *, vm_pindex_t, int color);
> void *vm_radix_remove(struct vm_radix *, vm_pindex_t, int color);
>
> /*
73c88
< vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
---
> vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index, int color)
75d89
< vm_pindex_t unused;
78c92
< if (vm_radix_lookupn(rtree, index, 0, &val, 1, &unused))
---
> if (vm_radix_lookupn(rtree, index, 0, color, &val, 1, &index))