0
0
mirror of https://github.com/darkk/redsocks.git synced 2025-08-26 19:55:30 +00:00

Use __typeof instead of typeof.

__typeof adheres to ISO C standard as it is reserved identifier [1],
so it is collision-free and works in non-GNU mode as long as compiler
supports it.

[1] C99: "All identifiers that begin with an underscore and either an
uppercase letter or another underscore are always reserved for any use."
This commit is contained in:
Przemyslaw Pawelczyk 2014-07-05 01:11:34 +02:00
parent fce288f657
commit 19f0fb225a

38
list.h
View File

@ -300,9 +300,9 @@ static inline void list_splice_init(struct list_head_t *list,
* @member: the name of the list_struct within the struct. * @member: the name of the list_struct within the struct.
*/ */
#define list_for_each_entry(pos, head, member) \ #define list_for_each_entry(pos, head, member) \
for (pos = list_entry((head)->next, typeof(*pos), member); \ for (pos = list_entry((head)->next, __typeof(*pos), member); \
&pos->member != (head); \ &pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member)) pos = list_entry(pos->member.next, __typeof(*pos), member))
/** /**
* list_for_each_entry_reverse - iterate backwards over list of given type. * list_for_each_entry_reverse - iterate backwards over list of given type.
@ -311,9 +311,9 @@ static inline void list_splice_init(struct list_head_t *list,
* @member: the name of the list_struct within the struct. * @member: the name of the list_struct within the struct.
*/ */
#define list_for_each_entry_reverse(pos, head, member) \ #define list_for_each_entry_reverse(pos, head, member) \
for (pos = list_entry((head)->prev, typeof(*pos), member); \ for (pos = list_entry((head)->prev, __typeof(*pos), member); \
&pos->member != (head); \ &pos->member != (head); \
pos = list_entry(pos->member.prev, typeof(*pos), member)) pos = list_entry(pos->member.prev, __typeof(*pos), member))
/** /**
* list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue * list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue
@ -324,7 +324,7 @@ static inline void list_splice_init(struct list_head_t *list,
* Prepares a pos entry for use as a start point in list_for_each_entry_continue. * Prepares a pos entry for use as a start point in list_for_each_entry_continue.
*/ */
#define list_prepare_entry(pos, head, member) \ #define list_prepare_entry(pos, head, member) \
((pos) ? : list_entry(head, typeof(*pos), member)) ((pos) ? : list_entry(head, __typeof(*pos), member))
/** /**
* list_for_each_entry_continue - continue iteration over list of given type * list_for_each_entry_continue - continue iteration over list of given type
@ -336,9 +336,9 @@ static inline void list_splice_init(struct list_head_t *list,
* the current position. * the current position.
*/ */
#define list_for_each_entry_continue(pos, head, member) \ #define list_for_each_entry_continue(pos, head, member) \
for (pos = list_entry(pos->member.next, typeof(*pos), member); \ for (pos = list_entry(pos->member.next, __typeof(*pos), member); \
&pos->member != (head); \ &pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member)) pos = list_entry(pos->member.next, __typeof(*pos), member))
/** /**
* list_for_each_entry_from - iterate over list of given type from the current point * list_for_each_entry_from - iterate over list of given type from the current point
@ -350,7 +350,7 @@ static inline void list_splice_init(struct list_head_t *list,
*/ */
#define list_for_each_entry_from(pos, head, member) \ #define list_for_each_entry_from(pos, head, member) \
for (; &pos->member != (head); \ for (; &pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member)) pos = list_entry(pos->member.next, __typeof(*pos), member))
/** /**
* list_for_each_entry_safe - iterate over list of given type safe against removal of list entry * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
@ -360,10 +360,10 @@ static inline void list_splice_init(struct list_head_t *list,
* @member: the name of the list_struct within the struct. * @member: the name of the list_struct within the struct.
*/ */
#define list_for_each_entry_safe(pos, n, head, member) \ #define list_for_each_entry_safe(pos, n, head, member) \
for (pos = list_entry((head)->next, typeof(*pos), member), \ for (pos = list_entry((head)->next, __typeof(*pos), member), \
n = list_entry(pos->member.next, typeof(*pos), member); \ n = list_entry(pos->member.next, __typeof(*pos), member); \
&pos->member != (head); \ &pos->member != (head); \
pos = n, n = list_entry(n->member.next, typeof(*n), member)) pos = n, n = list_entry(n->member.next, __typeof(*n), member))
/** /**
* list_for_each_entry_safe_continue * list_for_each_entry_safe_continue
@ -376,10 +376,10 @@ static inline void list_splice_init(struct list_head_t *list,
* safe against removal of list entry. * safe against removal of list entry.
*/ */
#define list_for_each_entry_safe_continue(pos, n, head, member) \ #define list_for_each_entry_safe_continue(pos, n, head, member) \
for (pos = list_entry(pos->member.next, typeof(*pos), member), \ for (pos = list_entry(pos->member.next, __typeof(*pos), member), \
n = list_entry(pos->member.next, typeof(*pos), member); \ n = list_entry(pos->member.next, __typeof(*pos), member); \
&pos->member != (head); \ &pos->member != (head); \
pos = n, n = list_entry(n->member.next, typeof(*n), member)) pos = n, n = list_entry(n->member.next, __typeof(*n), member))
/** /**
* list_for_each_entry_safe_from * list_for_each_entry_safe_from
@ -392,9 +392,9 @@ static inline void list_splice_init(struct list_head_t *list,
* removal of list entry. * removal of list entry.
*/ */
#define list_for_each_entry_safe_from(pos, n, head, member) \ #define list_for_each_entry_safe_from(pos, n, head, member) \
for (n = list_entry(pos->member.next, typeof(*pos), member); \ for (n = list_entry(pos->member.next, __typeof(*pos), member); \
&pos->member != (head); \ &pos->member != (head); \
pos = n, n = list_entry(n->member.next, typeof(*n), member)) pos = n, n = list_entry(n->member.next, __typeof(*n), member))
/** /**
* list_for_each_entry_safe_reverse * list_for_each_entry_safe_reverse
@ -407,9 +407,9 @@ static inline void list_splice_init(struct list_head_t *list,
* of list entry. * of list entry.
*/ */
#define list_for_each_entry_safe_reverse(pos, n, head, member) \ #define list_for_each_entry_safe_reverse(pos, n, head, member) \
for (pos = list_entry((head)->prev, typeof(*pos), member), \ for (pos = list_entry((head)->prev, __typeof(*pos), member), \
n = list_entry(pos->member.prev, typeof(*pos), member); \ n = list_entry(pos->member.prev, __typeof(*pos), member); \
&pos->member != (head); \ &pos->member != (head); \
pos = n, n = list_entry(n->member.prev, typeof(*n), member)) pos = n, n = list_entry(n->member.prev, __typeof(*n), member))
#endif #endif