Re: [PATCH] Introduce a handy list_first_entry macro
- From: Randy Dunlap <randy.dunlap@xxxxxxxxxx>
- Date: Tue, 17 Apr 2007 10:29:45 -0700
On Tue, 17 Apr 2007 15:18:56 +0400 Pavel Emelianov wrote:
There are many places in the kernel where the construction like
foo = list_entry(head->next, struct foo_struct, list);
are used.
The code might look more descriptive and neat if using the macro
list_first_entry(head, type, member) \
list_entry((head)->next, type, member)
Here is the macro itself and the examples of its usage in the
generic code. If it will turn out to be useful, I can prepare
the set of patches to inject in into arch-specific code, drivers,
networking, etc.
Signed-off-by: Pavel Emelianov <xemul@xxxxxxxxxx>
Signed-off-by: Kirill Korotaev <dev@xxxxxxxxxx>
---
diff --git a/include/linux/list.h b/include/linux/list.h
index fd59659..71318fc 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -425,6 +425,9 @@ static inline void list_splice_init_rcu(
#define list_entry(ptr, type, member) \
container_of(ptr, type, member)
+#define list_first_entry(ptr, type, member) \
+ list_entry((ptr)->next, type, member)
+
Please provide kernel-doc for that like the rest of list.h has.
/**
* list_for_each - iterate over a list
* @pos: the &struct list_head to use as a loop cursor.
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- References:
- [PATCH] Introduce a handy list_first_entry macro
- From: Pavel Emelianov
- [PATCH] Introduce a handy list_first_entry macro
- Prev by Date: Re: [patch] CFS (Completely Fair Scheduler), v2
- Next by Date: Re: [PATCH] general: convert "kernel" subdirectory to UTF-8
- Previous by thread: Re: [PATCH] Introduce a handy list_first_entry macro
- Next by thread: Re: [PATCH] Introduce a handy list_first_entry macro
- Index(es):
Relevant Pages
|