X-Git-Url: http://git.liburcu.org/?p=userspace-rcu.git;a=blobdiff_plain;f=urcu%2Flist.h;h=04dad80929ef1d6f2ec1a3adcd302d8f2f962533;hp=7d2a9a11e39b12d061e6a68b90b6918f307af17a;hb=58090b340c54e555a0162f21bfd11e58d13398a0;hpb=ae4510b56f1b6a65562ecd1c79dc0d470274aaf2 diff --git a/urcu/list.h b/urcu/list.h index 7d2a9a1..04dad80 100644 --- a/urcu/list.h +++ b/urcu/list.h @@ -126,12 +126,15 @@ cds_list_splice (struct cds_list_head *add, struct cds_list_head *head) } } - /* Get typed element from list at a given position. */ #define cds_list_entry(ptr, type, member) \ ((type *) ((char *) (ptr) - (unsigned long) (&((type *) 0)->member))) +/* Get first entry from a list. */ +#define cds_list_first_entry(ptr, type, member) \ + cds_list_entry((ptr)->next, type, member) + /* Iterate forward over the elements of the list. */ #define cds_list_for_each(pos, head) \