Lines Matching refs:ph
27 #define ph(a_type) \ macro
195 a_attr void a_prefix##new(a_ph_type *ph); \
196 a_attr bool a_prefix##empty(a_ph_type *ph); \
197 a_attr a_type *a_prefix##first(a_ph_type *ph); \
198 a_attr void a_prefix##insert(a_ph_type *ph, a_type *phn); \
199 a_attr a_type *a_prefix##remove_first(a_ph_type *ph); \
200 a_attr void a_prefix##remove(a_ph_type *ph, a_type *phn);
208 a_prefix##new(a_ph_type *ph) \
211 memset(ph, 0, sizeof(ph(a_type))); \
214 a_prefix##empty(a_ph_type *ph) \
217 return (ph->ph_root == NULL); \
220 a_prefix##first(a_ph_type *ph) \
223 if (ph->ph_root == NULL) \
225 ph_merge_aux(a_type, a_field, ph, a_cmp); \
226 return (ph->ph_root); \
229 a_prefix##insert(a_ph_type *ph, a_type *phn) \
242 if (ph->ph_root == NULL) \
243 ph->ph_root = phn; \
246 a_field, ph->ph_root)); \
247 if (phn_next_get(a_type, a_field, ph->ph_root) != \
250 phn_next_get(a_type, a_field, ph->ph_root), \
253 phn_prev_set(a_type, a_field, phn, ph->ph_root); \
254 phn_next_set(a_type, a_field, ph->ph_root, phn); \
258 a_prefix##remove_first(a_ph_type *ph) \
262 if (ph->ph_root == NULL) \
264 ph_merge_aux(a_type, a_field, ph, a_cmp); \
266 ret = ph->ph_root; \
268 ph_merge_children(a_type, a_field, ph->ph_root, a_cmp, \
269 ph->ph_root); \
274 a_prefix##remove(a_ph_type *ph, a_type *phn) \
282 if (ph->ph_root == phn) { \
283 ph_merge_aux(a_type, a_field, ph, a_cmp); \
284 if (ph->ph_root == phn) { \
285 ph_merge_children(a_type, a_field, ph->ph_root, \
286 a_cmp, ph->ph_root); \