114
119
#define LIST_FOR_EACH_ENTRY(pos, head, member) \
115
for (pos = container_of((head)->next, pos, member); \
120
for (pos = NULL, pos = container_of((head)->next, pos, member); \
116
121
&pos->member != (head); \
117
122
pos = container_of(pos->member.next, pos, member))
119
124
#define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \
120
for (pos = container_of((head)->next, pos, member), \
125
for (pos = NULL, pos = container_of((head)->next, pos, member), \
121
126
storage = container_of(pos->member.next, pos, member); \
122
127
&pos->member != (head); \
123
128
pos = storage, storage = container_of(storage->member.next, storage, member))
125
130
#define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \
126
for (pos = container_of((head)->prev, pos, member), \
131
for (pos = NULL, pos = container_of((head)->prev, pos, member), \
127
132
storage = container_of(pos->member.prev, pos, member); \
128
133
&pos->member != (head); \
129
134
pos = storage, storage = container_of(storage->member.prev, storage, member))
131
136
#define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \
132
for (pos = container_of((start), pos, member); \
137
for (pos = NULL, pos = container_of((start), pos, member); \
133
138
&pos->member != (head); \
134
139
pos = container_of(pos->member.next, pos, member))
136
141
#define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \
137
for (pos = container_of((start), pos, member); \
142
for (pos = NULL, pos = container_of((start), pos, member); \
138
143
&pos->member != (head); \
139
144
pos = container_of(pos->member.prev, pos, member))