list_entry
#define udev_list_entry_foreach(list_entry, first_entry) \
for(list_entry = first_entry; \
list_entry != NULL; \
list_entry = udev_list_entry_get_next(list_entry))
struct udev_list_entry *udev_list_entry_get_next(struct udev_list_entry *list_entry);
prop_dictionary_t udev_list_entry_get_dictionary(struct udev_list_entry *list_entry);
struct udev_device *udev_list_entry_get_device(struct udev_list_entry *list_entry);
udev_list_entry_get_next(struct udev_list_entry *list_entry)
return TAILQ_NEXT(list_entry, link);
udev_list_entry_get_dictionary(struct udev_list_entry *list_entry)
return list_entry->dict;
udev_list_entry_get_device(struct udev_list_entry *list_entry)
udev_dev = udev_device_new_from_dictionary(list_entry->udev_ctx,
list_entry->dict);
udev_list_entry_get_next(struct udev_list_entry *list_entry)
return TAILQ_NEXT(list_entry, link);
udev_list_entry_get_dictionary(struct udev_list_entry *list_entry)
return list_entry->dict;
#define udev_list_entry_foreach(list_entry, first_entry) \
for(list_entry = first_entry; \
list_entry != NULL; \
list_entry = udev_list_entry_get_next(list_entry))
sa_bo = list_entry(sa_manager->hole->next, struct amdgpu_sa_bo, olist);
return list_entry(hole, struct amdgpu_sa_bo, olist)->eoffset;
return list_entry(hole->next, struct amdgpu_sa_bo, olist)->soffset;
handler = list_entry(entry, struct amdgpu_dm_irq_handler_data,
handler_data = list_entry(entry,
handler_data = list_entry(entry,
r_list = list_entry(list, struct drm_map_list, head);
iter->conn = list_entry(lhead, struct drm_connector, head);
struct pci_bus *b = list_entry(pci_root_buses.next,
struct drm_display_mode *a = list_entry(lh_a, struct drm_display_mode, head);
struct drm_display_mode *b = list_entry(lh_b, struct drm_display_mode, head);
list_entry((ptr)->next, type, member)
list_entry(list_last((ptr)), type, field)
list_entry(((ptr)->member.next), typeof(*(ptr)), member)
list_entry(((ptr)->member.prev), typeof(*(ptr)), member)
for (p = list_entry((h)->next, typeof(*p), field); &p->field != (h); \
p = list_entry(p->field.next, typeof(*p), field))
for (p = list_entry((h)->next, typeof(*p), field), \
n = list_entry(p->field.next, typeof(*p), field); &p->field != (h);\
p = n, n = list_entry(n->field.next, typeof(*n), field))
p = list_entry((p)->field.next, typeof(*p), field))
pos = list_entry(pos->member.prev, __typeof(*pos), member))
for (pos = list_entry(pos->member.prev, __typeof(*pos), member); \
pos = list_entry(pos->member.prev, __typeof(*pos), member))
for (n = list_entry(pos->member.next, typeof(*pos), member); \
pos = n, n = list_entry(n->member.next, typeof(*n), member))
for (p = list_entry((h)->prev, typeof(*p), field); &p->field != (h); \
p = list_entry(p->field.prev, typeof(*p), field))
for (p = list_entry((h)->prev, typeof(*p), field), \
n = list_entry((p)->field.prev, typeof(*p), field); &(p)->field != (h); \
p = n, n = list_entry(n->field.prev, typeof(*n), field))
struct radeon_bo_list *la = list_entry(a, struct radeon_bo_list, tv.head);
struct radeon_bo_list *lb = list_entry(b, struct radeon_bo_list, tv.head);
sa_bo = list_entry(sa_manager->hole->next, struct radeon_sa_bo, olist);
return list_entry(hole, struct radeon_sa_bo, olist)->eoffset;
return list_entry(hole->next, struct radeon_sa_bo, olist)->soffset;
list_entry((ptr)->next, type, member)
for (pos = list_entry((head)->next, typeof(*pos), member); \
pos = list_entry(pos->member.next, typeof(*pos), member))
for (pos = list_entry((head)->prev, typeof(*pos), member); \
pos = list_entry(pos->member.prev, typeof(*pos), member))
((pos) ? : list_entry(head, typeof(*pos), member))
for (pos = list_entry(pos->member.next, typeof(*pos), member); \
pos = list_entry(pos->member.next, typeof(*pos), member))
for (pos = list_entry(pos->member.prev, typeof(*pos), member); \
pos = list_entry(pos->member.prev, typeof(*pos), member))
pos = list_entry(pos->member.next, typeof(*pos), member))
for (pos = list_entry((head)->next, typeof(*pos), member), \
n = list_entry(pos->member.next, typeof(*pos), member); \
pos = n, n = list_entry(n->member.next, typeof(*n), member))
for (pos = list_entry(pos->member.next, typeof(*pos), member), \
n = list_entry(pos->member.next, typeof(*pos), member); \
pos = n, n = list_entry(n->member.next, typeof(*n), member))
for (n = list_entry(pos->member.next, typeof(*pos), member); \
pos = n, n = list_entry(n->member.next, typeof(*n), member))
for (pos = list_entry((head)->prev, typeof(*pos), member), \
n = list_entry(pos->member.prev, typeof(*pos), member); \
pos = n, n = list_entry(n->member.prev, typeof(*n), member))