Graphviz
2.41.20171026.1811
Main Page
Data Structures
Files
File List
Globals
lib
cdt
dthdr.h
Go to the documentation of this file.
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 */
cdt.h
Generated by
1.8.5