Home | History | Annotate | Download | only in src

Lines Matching refs:type

84 #define DECLARE_LIST(type, prefix)\
86 struct prefix##element_##type\
88 struct prefix##element_##type* m_prev;\
89 struct prefix##element_##type* m_next;\
90 type m_data;\
92 typedef struct prefix##element_##type ELEMENT_##type;\
94 _LIST_INLINE _CVLIST* prefix##create_list_##type(long);\
95 _LIST_INLINE void prefix##destroy_list_##type(_CVLIST*);\
97 _LIST_INLINE CVPOS prefix##get_head_pos_##type(_CVLIST*);\
98 _LIST_INLINE CVPOS prefix##get_tail_pos_##type(_CVLIST*);\
99 _LIST_INLINE type* prefix##get_next_##type(CVPOS*);\
100 _LIST_INLINE type* prefix##get_prev_##type(CVPOS*);\
102 _LIST_INLINE void prefix##clear_list_##type(_CVLIST*);\
103 _LIST_INLINE CVPOS prefix##add_head_##type(_CVLIST*, type*);\
104 _LIST_INLINE CVPOS prefix##add_tail_##type(_CVLIST*, type*);\
105 _LIST_INLINE void prefix##remove_head_##type(_CVLIST*);\
106 _LIST_INLINE void prefix##remove_tail_##type(_CVLIST*);\
107 _LIST_INLINE CVPOS prefix##insert_before_##type(_CVLIST*, CVPOS, type*);\
108 _LIST_INLINE CVPOS prefix##insert_after_##type(_CVLIST*, CVPOS, type*);\
109 _LIST_INLINE void prefix##remove_at_##type(_CVLIST*, CVPOS);\
110 _LIST_INLINE void prefix##set_##type(CVPOS, type*);\
111 _LIST_INLINE type* prefix##get_##type(CVPOS);\
113 _LIST_INLINE int prefix##get_count_##type(_CVLIST*);
156 /*#define GET_FIRST_FREE(l) ((ELEMENT_##type*)(l->m_head_free.m_pos))*/
158 #define IMPLEMENT_LIST(type, prefix)\
159 _CVLIST* prefix##create_list_##type(long size)\
163 pl->m_first_buffer = cvAlloc(pl->m_buf_size*sizeof(ELEMENT_##type) + sizeof(void*));\
172 void prefix##destroy_list_##type(_CVLIST* l)\
184 CVPOS prefix##get_head_pos_##type(_CVLIST* l)\
188 CVPOS prefix##get_tail_pos_##type(_CVLIST* l)\
192 type* prefix##get_next_##type(CVPOS* pos)\
196 ELEMENT_##type* element = (ELEMENT_##type*)(pos->m_pos);\
205 type* prefix##get_prev_##type(CVPOS* pos)\
209 ELEMENT_##type* element = (ELEMENT_##type*)(pos->m_pos);\
218 int prefix##is_pos_##type(CVPOS pos)\
222 void prefix##clear_list_##type(_CVLIST* l)\
229 CVPOS prefix##add_head_##type(_CVLIST* l, type* data)\
231 ELEMENT_##type* element;\
232 INSERT_NEW(ELEMENT_##type, l, element);\
234 element->m_next = (ELEMENT_##type*)(l->m_head.m_pos);\
247 CVPOS prefix##add_tail_##type(_CVLIST* l, type* data)\
249 ELEMENT_##type* element;\
250 INSERT_NEW(ELEMENT_##type, l, element);\
252 element->m_prev = (ELEMENT_##type*)(l->m_tail.m_pos);\
265 void prefix##remove_head_##type(_CVLIST* l)\
267 ELEMENT_##type* element = ((ELEMENT_##type*)(l->m_head.m_pos));\
273 INSERT_FREE(ELEMENT_##type, l, element);\
276 void prefix##remove_tail_##type(_CVLIST* l)\
278 ELEMENT_##type* element = ((ELEMENT_##type*)(l->m_tail.m_pos));\
284 INSERT_FREE(ELEMENT_##type, l, element);\
287 CVPOS prefix##insert_after_##type(_CVLIST* l, CVPOS pos, type* data)\
289 ELEMENT_##type* element;\
290 ELEMENT_##type* before;\
292 INSERT_NEW(ELEMENT_##type, l, element);\
294 before = (ELEMENT_##type*)pos.m_pos;\
305 CVPOS prefix##insert_before_##type(_CVLIST* l, CVPOS pos, type* data)\
307 ELEMENT_##type* element;\
308 ELEMENT_##type* after;\
310 INSERT_NEW(ELEMENT_##type, l, element);\
312 after = (ELEMENT_##type*)pos.m_pos;\
323 void prefix##remove_at_##type(_CVLIST* l, CVPOS pos)\
325 ELEMENT_##type* element = ((ELEMENT_##type*)pos.m_pos);\
342 INSERT_FREE(ELEMENT_##type, l, element);\
345 void prefix##set_##type(CVPOS pos, type* data)\
347 ELEMENT_##type* element = ((ELEMENT_##type*)(pos.m_pos));\
350 type* prefix##get_##type(CVPOS pos)\
352 ELEMENT_##type* element = ((ELEMENT_##type*)(pos.m_pos));\
355 int prefix##get_count_##type(_CVLIST* list)\
360 #define DECLARE_AND_IMPLEMENT_LIST(type, prefix)\
361 DECLARE_LIST(type, prefix)\
362 IMPLEMENT_LIST(type, prefix)