X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Fhlist.h;h=d7d5c87f1c28d1c3710ed1d1bb4a08f0751b3a55;hb=4b832c2a390ca145635444433273e014052cb7ec;hp=e3b94ced234f61a721a52cef7a19fec543c63b5a;hpb=bc2433a9853a945a825c244e9ccfe341b73b2ceb;p=urcu.git diff --git a/urcu/hlist.h b/urcu/hlist.h index e3b94ce..d7d5c87 100644 --- a/urcu/hlist.h +++ b/urcu/hlist.h @@ -16,6 +16,8 @@ * published by the Free Software Foundation. */ +#include + struct cds_hlist_head { struct cds_hlist_node *next; @@ -60,16 +62,16 @@ static inline void cds_hlist_del (struct cds_hlist_node *elem) #define cds_hlist_for_each_entry(entry, pos, head, member) \ for (pos = (head)->next, \ - entry = cds_hlist_entry(pos, typeof(*entry), member); \ + entry = cds_hlist_entry(pos, __typeof__(*entry), member); \ pos != NULL; \ pos = pos->next, \ - entry = cds_hlist_entry(pos, typeof(*entry), member)) + entry = cds_hlist_entry(pos, __typeof__(*entry), member)) #define cds_hlist_for_each_entry_safe(entry, pos, p, head, member) \ for (pos = (head)->next, \ - entry = cds_hlist_entry(pos, typeof(*entry), member); \ + entry = cds_hlist_entry(pos, __typeof__(*entry), member); \ (pos != NULL) && ({ p = pos->next; 1;}); \ pos = p, \ - entry = cds_hlist_entry(pos, typeof(*entry), member)) + entry = cds_hlist_entry(pos, __typeof__(*entry), member)) #endif /* _KCOMPAT_HLIST_H */