]> andersk Git - splint.git/blob - src/Headers/interfaceNodeList.h
Updated copyrights
[splint.git] / src / Headers / interfaceNodeList.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
4 **
5 */
6 # ifndef interfaceNodeLIST_H
7 # define interfaceNodeLIST_H
8
9 typedef /*@only@*/ interfaceNode o_interfaceNode;
10
11 abst_typedef struct
12 {
13   int nelements;
14   int nspacehigh;
15   int nspacelow;
16   /*@dependent@*/ /*@reldef@*/ /*@relnull@*/ o_interfaceNode *elements;
17   /*@only@*/ /*@reldef@*/ /*@relnull@*/ o_interfaceNode *elementsroot;
18 } *interfaceNodeList ;
19
20 /*@iter interfaceNodeList_elements (sef interfaceNodeList x, yield exposed interfaceNode el); @*/
21 # define interfaceNodeList_elements(x, m_el) \
22    { int m_ind; interfaceNode *m_elements = &((x)->elements[0]); \
23      for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \
24          { interfaceNode m_el = *(m_elements++); 
25
26 # define end_interfaceNodeList_elements }}
27
28 extern /*@only@*/ interfaceNodeList interfaceNodeList_new(void);
29
30 extern interfaceNodeList
31   interfaceNodeList_addh (/*@returned@*/ interfaceNodeList p_s, /*@only@*/ interfaceNode p_el);
32 extern void interfaceNodeList_addl (interfaceNodeList p_s, /*@keep@*/ interfaceNode p_el) ;
33
34 extern void interfaceNodeList_free (/*@only@*/ interfaceNodeList p_s) ;
35
36 /*@constant int interfaceNodeListGROWLOW;@*/
37 # define interfaceNodeListGROWLOW 4 /* addl used in abstract.c */
38
39 /*@constant int interfaceNodeListGROWHI;@*/
40 # define interfaceNodeListGROWHI 4
41
42 /*@constant int interfaceNodeListBASESIZE;@*/
43 # define interfaceNodeListBASESIZE \
44   (interfaceNodeListGROWLOW + interfaceNodeListGROWHI)
45
46 # else
47 # error "Multiple include"
48 # endif
49
50
51
52
This page took 0.533657 seconds and 5 git commands to generate.