Lines Matching full:member
13 * container_of - cast a member of a structure out to the containing structure
14 * @ptr: the pointer to the member.
16 * @member: the name of the member within the struct.
19 #define container_of(ptr, type, member) ({ \ argument
21 _Static_assert(__same_type(*(ptr), ((type *)0)->member) || \
24 ((type *)(__mptr - offsetof(type, member))); })
226 * @member: the name of the list_head within the struct.
228 #define list_entry(ptr, type, member) \ argument
229 container_of(ptr, type, member)
235 * @member: the name of the list_head within the struct.
239 #define list_first_entry(ptr, type, member) \ argument
240 list_entry((ptr)->next, type, member)
246 * @member: the name of the list_head within the struct.
250 #define list_last_entry(ptr, type, member) \ argument
251 list_entry((ptr)->prev, type, member)
256 * @member: the name of the list_head within the struct.
258 #define list_next_entry(pos, member) \ argument
259 list_entry((pos)->member.next, typeof(*(pos)), member)
264 * @member: the name of the list_head within the struct.
266 #define list_prev_entry(pos, member) \ argument
267 list_entry((pos)->member.prev, typeof(*(pos)), member)
273 * @member: the name of the list_head within the struct.
275 #define list_entry_is_head(pos, head, member) \ argument
276 (&pos->member == (head))
282 * @member: the name of the list_head within the struct.
284 #define list_for_each_entry(pos, head, member) \ argument
285 for (pos = list_first_entry(head, typeof(*pos), member); \
286 !list_entry_is_head(pos, head, member); \
287 pos = list_next_entry(pos, member))
293 * @member: the name of the list_head within the struct.
295 #define list_for_each_entry_reverse(pos, head, member) \ argument
296 for (pos = list_last_entry(head, typeof(*pos), member); \
297 !list_entry_is_head(pos, head, member); \
298 pos = list_prev_entry(pos, member))
305 * @member: the name of the list_head within the struct.
307 #define list_for_each_entry_safe(pos, n, head, member) \ argument
308 for (pos = list_first_entry(head, typeof(*pos), member), \
309 n = list_next_entry(pos, member); \
310 !list_entry_is_head(pos, head, member); \
311 pos = n, n = list_next_entry(n, member))
398 #define hlist_entry(ptr, type, member) container_of(ptr, type, member) argument
400 #define hlist_entry_safe(ptr, type, member) \ argument
402 ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
409 * @member: the name of the hlist_node within the struct.
411 #define hlist_for_each_entry(pos, head, member) \ argument
412 for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
414 pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
421 * @member: the name of the hlist_node within the struct.
423 #define hlist_for_each_entry_safe(pos, n, head, member) \ argument
424 for (pos = hlist_entry_safe((head)->first, typeof(*pos), member);\
425 pos && ({ n = pos->member.next; 1; }); \
426 pos = hlist_entry_safe(n, typeof(*pos), member))