Skip to content

Commit 782cc26

Browse files
authored
Update list.h
1 parent eaec360 commit 782cc26

File tree

1 file changed

+0
-108
lines changed

1 file changed

+0
-108
lines changed

list.h

Lines changed: 0 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -220,112 +220,4 @@ static inline void list_splice_init(struct list_head *list,
220220
&pos->member != (head); \
221221
pos = list_entry(pos->member.next, typeof (*pos), member))
222222

223-
/*
224-
* Singly linked list implementation.
225-
*/
226-
227-
struct slist_node {
228-
struct slist_node *next;
229-
};
230-
231-
struct slist_head {
232-
struct slist_node first, *last;
233-
};
234-
235-
#define SLIST_HEAD_INIT(name) { { (struct slist_node *)0 }, &(name).first }
236-
237-
#define SLIST_HEAD(name) \
238-
struct slist_head name = SLIST_HEAD_INIT(name)
239-
240-
static inline void INIT_SLIST_HEAD(struct slist_head *list)
241-
{
242-
list->first.next = (struct slist_node *)0;
243-
list->last = &list->first;
244-
}
245-
246-
static inline void slist_add_after(struct slist_node *entry,
247-
struct slist_node *prev,
248-
struct slist_head *list)
249-
{
250-
entry->next = prev->next;
251-
prev->next = entry;
252-
if (!entry->next)
253-
list->last = entry;
254-
}
255-
256-
static inline void slist_add_head(struct slist_node *entry,
257-
struct slist_head *list)
258-
{
259-
slist_add_after(entry, &list->first, list);
260-
}
261-
262-
static inline void slist_add_tail(struct slist_node *entry,
263-
struct slist_head *list)
264-
{
265-
entry->next = (struct slist_node *)0;
266-
list->last->next = entry;
267-
list->last = entry;
268-
}
269-
270-
static inline void slist_del_after(struct slist_node *prev,
271-
struct slist_head *list)
272-
{
273-
prev->next = prev->next->next;
274-
if (!prev->next)
275-
list->last = prev;
276-
}
277-
278-
static inline void slist_del_head(struct slist_head *list)
279-
{
280-
slist_del_after(&list->first, list);
281-
}
282-
283-
static inline int slist_empty(const struct slist_head *list)
284-
{
285-
return !list->first.next;
286-
}
287-
288-
static inline void __slist_splice(const struct slist_head *list,
289-
struct slist_node *prev,
290-
struct slist_head *head)
291-
{
292-
list->last->next = prev->next;
293-
prev->next = list->first.next;
294-
if (!list->last->next)
295-
head->last = list->last;
296-
}
297-
298-
static inline void slist_splice(const struct slist_head *list,
299-
struct slist_node *prev,
300-
struct slist_head *head)
301-
{
302-
if (!slist_empty(list))
303-
__slist_splice(list, prev, head);
304-
}
305-
306-
static inline void slist_splice_init(struct slist_head *list,
307-
struct slist_node *prev,
308-
struct slist_head *head)
309-
{
310-
if (!slist_empty(list)) {
311-
__slist_splice(list, prev, head);
312-
INIT_SLIST_HEAD(list);
313-
}
314-
}
315-
316-
#define slist_entry(ptr, type, member) \
317-
((type *)((char *)(ptr)-(size_t)(&((type *)0)->member)))
318-
319-
#define slist_for_each(pos, head) \
320-
for (pos = (head)->first.next; pos; pos = pos->next)
321-
322-
#define slist_for_each_safe(pos, prev, head) \
323-
for (prev = &(head)->first, pos = prev->next; pos; \
324-
prev = prev->next == pos ? pos : prev, pos = prev->next)
325-
326-
#define slist_for_each_entry(pos, head, member) \
327-
for (pos = slist_entry((head)->first.next, typeof (*pos), member); \
328-
&pos->member != (struct slist_node *)0; \
329-
pos = slist_entry(pos->member.next, typeof (*pos), member))
330-
331223
#endif

0 commit comments

Comments
 (0)