summaryrefslogtreecommitdiff
path: root/Core/EM/usb/tree.h
blob: 6dba1c613351698cb4135e54cd7b9693c9e637be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
//****************************************************************************
//****************************************************************************
//**                                                                        **
//**             (C)Copyright 1985-2008, American Megatrends, Inc.          **
//**                                                                        **
//**                          All Rights Reserved.                          **
//**                                                                        **
//**                 5555 Oakbrook Pkwy, Norcross, GA 30093                 **
//**                                                                        **
//**                          Phone (770)-246-8600                          **
//**                                                                        **
//****************************************************************************
//****************************************************************************

//****************************************************************************
// $Header: /Alaska/SOURCE/Modules/USB/ALASKA/tree.h 7     9/05/08 4:13p Olegi $
//
// $Revision: 7 $
//
// $Date: 9/05/08 4:13p $
//
//****************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/USB/ALASKA/tree.h $
// 
// 7     9/05/08 4:13p Olegi
// 
// 6     5/16/08 12:02p Olegi
// Compliance with AMI coding standard.
// 
// 5     3/20/07 1:29p Olegi
//
// 3     3/20/06 3:37p Olegi
// Version 8.5 - x64 compatible.
//
// 2     6/15/05 1:59p Andriyn
// Comments were changed
//****************************************************************************

//<AMI_FHDR_START>
//----------------------------------------------------------------------------
//
//  Name:           Tree.h
//
//  Description:    Tree routines header
//
//----------------------------------------------------------------------------
//<AMI_FHDR_END>

#ifndef __TREE_H__
#define __TREE_H__

typedef struct _TREENODE_T TREENODE_T;
typedef struct _TREENODE_T{
    VOID* data;
    TREENODE_T* right;
    TREENODE_T* left;
    TREENODE_T* child;
    TREENODE_T* parent;
} TREENODE_T;

typedef struct QUEUE_T;

typedef int (*TREE_PREDICATE1_T)(VOID* n, VOID* context);
typedef VOID (*TREE_CALLBACK_T)(VOID* n, VOID* context );

TREENODE_T* TreeCreate( TREENODE_T* n, VOID* d);
VOID TreeAddChild( TREENODE_T* p, TREENODE_T* c );
VOID TreeRemove( TREENODE_T* n );
TREENODE_T* TreeSearchSibling(TREENODE_T* n, TREE_PREDICATE1_T pr, VOID* data );
TREENODE_T* TreeSearchDeep(TREENODE_T* n, TREE_PREDICATE1_T pr, VOID* data );
VOID TreeForEachSibling(TREENODE_T* n, TREE_CALLBACK_T pr, VOID* data );

VOID* QueueGet( QUEUE_T* q);
int QueueSize(QUEUE_T* q);
VOID QueuePut( QUEUE_T* q, VOID * d);
VOID* QueueRemoveMsg( QUEUE_T* q, int sz);
VOID QueuePutMsg( QUEUE_T* q, VOID * d, int sz );

#endif //__TREE_H__

//****************************************************************************
//****************************************************************************
//**                                                                        **
//**             (C)Copyright 1985-2008, American Megatrends, Inc.          **
//**                                                                        **
//**                          All Rights Reserved.                          **
//**                                                                        **
//**                 5555 Oakbrook Pkwy, Norcross, GA 30093                 **
//**                                                                        **
//**                          Phone (770)-246-8600                          **
//**                                                                        **
//****************************************************************************
//****************************************************************************