#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_ */