TREE
#define SETNOTREE(b) (LEFT(b) = (TREE *)(-1))
#define ISNOTREE(b) (LEFT(b) == (TREE *)(-1))
#define BLOCK(d) ((TREE *)(((uintptr_t)(d)) - WORDSIZE))
#define SELFP(b) ((TREE **)(((uintptr_t)(b)) + SIZE(b)))
#define LAST(b) (*((TREE **)(((uintptr_t)(b)) - WORDSIZE)))
#define NEXT(b) ((TREE *)(((uintptr_t)(b)) + SIZE(b) + WORDSIZE))
#define MINSIZE (sizeof (TREE) - sizeof (WORD))
static TREE *List[MINSIZE/WORDSIZE-1]; /* lists of small blocks */
TREE *tp;
TREE *np;
TREE *tp, *sp;
TREE *tp, *np;
TREE *tp, *sp, *np;
static TREE *
TREE *tp;
tp = (TREE *)(uintptr_t)addr;
t_delete(TREE *op)
TREE *tp, *sp, *gp;
static TREE *Root, /* root of the free tree */
t_splay(TREE *tp)
TREE *pp, *gp;
static void t_delete(TREE *);
static void t_splay(TREE *);
p = (TREE *)malloc(reqsize);
if (p == (TREE *)NULL) {
alignedp = (TREE *)x;
#define _nextblk(p, size) ((TREE *)((uintptr_t)(p) + (size)))
TREE *p; /* Ptr returned from malloc() */
TREE *blk; /* For addressing fragment blocks */
TREE *alignedp; /* Ptr to properly aligned boundary */
TREE *aligned_blk; /* The block to be returned */
#define SETNOTREE(b) (LEFT(b) = (TREE *)(-1))
#define ISNOTREE(b) (LEFT(b) == (TREE *)(-1))
#define BLOCK(d) ((TREE *)(((char *)(d)) - WORDSIZE))
#define NEXT(b) ((TREE *)(((char *)(b)) + RSIZE(b) + WORDSIZE))
#define MINSIZE (sizeof (TREE) - sizeof (WORD))
t_splay(TREE *tp)
TREE *pp, *gp;
static TREE *List[MINSIZE/WORDSIZE-1];
static TREE *Last[MINSIZE/WORDSIZE-1];
#define nextblk(p, size) ((TREE *)((char *)(p) + (size)))
TREE *p; /* Ptr returned from malloc() */
TREE *blk; /* For addressing fragment blocks */
TREE *alignedp; /* Ptr to properly aligned boundary */
TREE *aligned_blk; /* The block to be returned */
TREE *tp;
p = (TREE *) malloc(reqsize);
if (p == (TREE *) NULL) {
alignedp = (TREE *)x;
TREE *np;
protect(TREE *tp)
unprotect(TREE *tp)
TREE *tp, *sp, *tmp;
TREE *tp, *np;
TREE *tmp;
TREE *tp, *sp, *np, *tmp;
static TREE *Root; /* root of the free tree */
static TREE *
TREE *tp;
static TREE *Bottom; /* the last free chunk in the arena */
static void t_delete(TREE *);
static void t_splay(TREE *);
static TREE *morecore(size_t);
tp = ((TREE *)addr);
static void protect(TREE *);
in_list(TREE *tp, TREE **npp)
TREE *sp;
static void unprotect(TREE *);
LEFT1(TREE *x, TREE *y)
TREE *node[3];
TREE **npp = node;
TREE *tp;
RIGHT1(TREE *x, TREE *y)
TREE *node[3];
TREE **npp = node;
TREE *tp;
BULEFT2(TREE *x, TREE *y, TREE *z)
TREE *node[4];
TREE **npp = node;
TREE *tp;
BURIGHT2(TREE *x, TREE *y, TREE *z)
TREE *node[4];
TREE **npp = node;
TREE *tp;
TDLEFT2(TREE *x, TREE *y, TREE *z)
TREE *node[3];
TREE **npp = node;
TREE *tp;
copy_pattern(int pat, TREE *tp)
TDRIGHT2(TREE *x, TREE *y, TREE *z)
TREE *node[3];
TREE **npp = node;
TREE *tp;
t_delete(TREE *op)
TREE *tp, *sp, *gp;