| 1 | #ifndef _DTHDR_H | 
|---|
| 2 | #define _DTHDR_H	1 | 
|---|
| 3 |  | 
|---|
| 4 | /*	Internal definitions for libcdt. | 
|---|
| 5 | **	Written by Kiem-Phong Vo (5/25/96) | 
|---|
| 6 | */ | 
|---|
| 7 |  | 
|---|
| 8 | #include <stdlib.h> | 
|---|
| 9 |  | 
|---|
| 10 | #include	<cdt.h> | 
|---|
| 11 |  | 
|---|
| 12 | /* short-hand notations */ | 
|---|
| 13 | #define NIL(t)	((t)0) | 
|---|
| 14 | #define reg	register | 
|---|
| 15 | #define uint	unsigned int | 
|---|
| 16 | #define left	hl._left | 
|---|
| 17 | #define hash	hl._hash | 
|---|
| 18 | #define htab	hh._htab | 
|---|
| 19 | #define head	hh._head | 
|---|
| 20 |  | 
|---|
| 21 | /* this must be disjoint from DT_METHODS */ | 
|---|
| 22 | #define DT_FLATTEN	010000	/* dictionary already flattened	*/ | 
|---|
| 23 | #define DT_WALK		020000	/* hash table being walked	*/ | 
|---|
| 24 |  | 
|---|
| 25 | /* how the Dt_t handle was allocated */ | 
|---|
| 26 | #define DT_MALLOC	0 | 
|---|
| 27 | #define DT_MEMORYF	1 | 
|---|
| 28 |  | 
|---|
| 29 | /* max search length before splaying */ | 
|---|
| 30 | #define DT_MINP		(sizeof(size_t)*8 - 2) | 
|---|
| 31 |  | 
|---|
| 32 | /* hash start size and load factor */ | 
|---|
| 33 | #define HSLOT		(256) | 
|---|
| 34 | #define HRESIZE(n)	((n) << 1) | 
|---|
| 35 | #define HLOAD(s)	((s) << 1) | 
|---|
| 36 | #define HINDEX(n,h)	((h)&((n)-1)) | 
|---|
| 37 |  | 
|---|
| 38 | #define UNFLATTEN(dt) \ | 
|---|
| 39 | ((dt->data->type&DT_FLATTEN) ? dtrestore(dt,NIL(Dtlink_t*)) : 0) | 
|---|
| 40 |  | 
|---|
| 41 | /* tree rotation/linking functions */ | 
|---|
| 42 | #define rrotate(x,y)	((x)->left  = (y)->right, (y)->right = (x)) | 
|---|
| 43 | #define lrotate(x,y)	((x)->right = (y)->left,  (y)->left  = (x)) | 
|---|
| 44 | #define rlink(r,x)	((r) = (r)->left   = (x) ) | 
|---|
| 45 | #define llink(l,x)	((l) = (l)->right  = (x) ) | 
|---|
| 46 |  | 
|---|
| 47 | #define RROTATE(x,y)	(rrotate(x,y), (x) = (y)) | 
|---|
| 48 | #define LROTATE(x,y)	(lrotate(x,y), (x) = (y)) | 
|---|
| 49 |  | 
|---|
| 50 | #endif /* _DTHDR_H */ | 
|---|
| 51 |  | 
|---|