blob: de4f9973588e657b28a35667a2f59b6411b7be4a [file] [log] [blame]
#ifndef _ADC_PARVIEW_TREE_DEF_H_
#define _ADC_PARVIEW_TREE_DEF_H_
#define MAX_TREE_HEIGHT 64
enum{BLACK,RED};
typedef struct treeNode{
struct treeNode *left;
struct treeNode *right;
uint32 clr;
int64 nodeMemPool[1];
} treeNode;
typedef struct RBTree{
treeNode root;
treeNode * mp;
uint32 count;
uint32 treeNodeSize;
uint32 nodeDataSize;
uint32 memoryLimit;
uint32 memaddr;
uint32 memoryIsFull;
uint32 freeNodeCounter;
uint32 nNodesLimit;
uint32 nd;
uint32 nm;
uint32 *drcts;
treeNode **nodes;
unsigned char * memPool;
} RBTree;
#define NEW_TREE_NODE(node_ptr,memPool,memaddr,treeNodeSize, \
freeNodeCounter,memoryIsFull) \
node_ptr=(struct treeNode*)(memPool+memaddr); \
memaddr+=treeNodeSize; \
(freeNodeCounter)--; \
if( freeNodeCounter == 0 ) { \
memoryIsFull = 1; \
}
int32 TreeInsert(RBTree *tree, uint32 *attrs);
#endif /* _ADC_PARVIEW_TREE_DEF_H_ */