mirror of
https://github.com/apache/nuttx.git
synced 2026-06-05 15:58:59 +08:00
nuttx/list: rename container_of to list_container_of from public header
Use private naming to avoid conflicts with user applications
In file included from libuv/src/unix/internal.h:25,
from libuv/src/unix/udp.c:23:
libuv/src/uv-common.h:57: warning: "container_of" redefined
57 | #define container_of(ptr, type, member) \
|
In file included from nuttx/include/nuttx/list.h:47,
from nuttx/include/nuttx/tls.h:40,
from nuttx/include/nuttx/sched.h:48,
from nuttx/include/nuttx/arch.h:87,
from nuttx/include/nuttx/userspace.h:35,
from nuttx/include/nuttx/mm/mm.h:30,
from nuttx/include/nuttx/kmalloc.h:34,
from nuttx/include/nuttx/lib/lib.h:31,
from nuttx/include/stdio.h:35,
from apps/system/libuv/libuv/include/uv.h:59,
from libuv/src/unix/udp.c:22:
nuttx/include/nuttx/nuttx.h:48: note: this is the location of the previous definition
48 | #define container_of(ptr, type, member) \
|
Signed-off-by: chao an <anchao@lixiang.com>
This commit is contained in:
+35
-22
@@ -44,8 +44,6 @@
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/nuttx.h>
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
@@ -53,6 +51,21 @@
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Name: list_container_of
|
||||
*
|
||||
* Description:
|
||||
* Cast a member of a structure out to get the address of the containing
|
||||
* structure
|
||||
*
|
||||
* Arguments:
|
||||
* ptr - The pointer to the member.
|
||||
* type - The type of the container struct this is embedded in.
|
||||
* member - The name of the member within the struct.
|
||||
*/
|
||||
|
||||
#define list_container_of(ptr, type, member) \
|
||||
((type *)((uintptr_t)(ptr) - offsetof(type, member)))
|
||||
|
||||
#define LIST_INITIAL_VALUE(list) { &(list), &(list) }
|
||||
#define LIST_INITIAL_CLEARED_VALUE { NULL, NULL }
|
||||
|
||||
@@ -89,11 +102,11 @@
|
||||
((item)->next != (list) ? (item)->next : \
|
||||
(item)->next->next != (list) ? (item)->next->next : NULL)
|
||||
|
||||
#define list_entry(ptr, type, member) container_of(ptr, type, member)
|
||||
#define list_first_entry(list, type, member) container_of((list)->next, type, member)
|
||||
#define list_last_entry(list, type, member) container_of((list)->prev, type, member)
|
||||
#define list_next_entry(list, type, member) container_of((list)->member.next, type, member)
|
||||
#define list_prev_entry(list, type, member) container_of((list)->member.prev, type, member)
|
||||
#define list_entry(ptr, type, member) list_container_of(ptr, type, member)
|
||||
#define list_first_entry(list, type, member) list_container_of((list)->next, type, member)
|
||||
#define list_last_entry(list, type, member) list_container_of((list)->prev, type, member)
|
||||
#define list_next_entry(list, type, member) list_container_of((list)->member.next, type, member)
|
||||
#define list_prev_entry(list, type, member) list_container_of((list)->member.prev, type, member)
|
||||
|
||||
#define list_add_after(entry, new_entry) list_add_head(entry, new_entry)
|
||||
#define list_add_head(list, item) \
|
||||
@@ -145,7 +158,7 @@
|
||||
FAR type *__t = NULL; \
|
||||
if(__node) \
|
||||
{ \
|
||||
__t = container_of(__node, type, member); \
|
||||
__t = list_container_of(__node, type, member); \
|
||||
} \
|
||||
__t; \
|
||||
})
|
||||
@@ -156,7 +169,7 @@
|
||||
FAR type *__t = NULL; \
|
||||
if(__node) \
|
||||
{ \
|
||||
__t = container_of(__node, type, member); \
|
||||
__t = list_container_of(__node, type, member); \
|
||||
} \
|
||||
__t; \
|
||||
})
|
||||
@@ -167,7 +180,7 @@
|
||||
FAR type *__t = NULL; \
|
||||
if(__node) \
|
||||
{ \
|
||||
__t = container_of(__node, type, member); \
|
||||
__t = list_container_of(__node, type, member); \
|
||||
} \
|
||||
__t; \
|
||||
})
|
||||
@@ -178,7 +191,7 @@
|
||||
FAR type *__t = NULL; \
|
||||
if(__node) \
|
||||
{ \
|
||||
__t = container_of(__node, type, member); \
|
||||
__t = list_container_of(__node, type, member); \
|
||||
} \
|
||||
__t; \
|
||||
})
|
||||
@@ -189,7 +202,7 @@
|
||||
FAR type *__t = NULL; \
|
||||
if(__node) \
|
||||
{ \
|
||||
__t = container_of(__node, type, member); \
|
||||
__t = list_container_of(__node, type, member); \
|
||||
} \
|
||||
__t; \
|
||||
})
|
||||
@@ -200,7 +213,7 @@
|
||||
FAR type *__t = NULL; \
|
||||
if(__node) \
|
||||
{ \
|
||||
__t = container_of(__node, type, member); \
|
||||
__t = list_container_of(__node, type, member); \
|
||||
} \
|
||||
__t; \
|
||||
})
|
||||
@@ -211,7 +224,7 @@
|
||||
FAR type *__t = NULL; \
|
||||
if(__node) \
|
||||
{ \
|
||||
__t = container_of(__node, type, member); \
|
||||
__t = list_container_of(__node, type, member); \
|
||||
} \
|
||||
__t; \
|
||||
})
|
||||
@@ -222,7 +235,7 @@
|
||||
FAR type *__t = NULL; \
|
||||
if(__node) \
|
||||
{ \
|
||||
__t = container_of(__node, type, member); \
|
||||
__t = list_container_of(__node, type, member); \
|
||||
} \
|
||||
__t; \
|
||||
})
|
||||
@@ -243,19 +256,19 @@
|
||||
/* iterates over the list, entry should be the container structure type */
|
||||
|
||||
#define list_for_every_entry(list, entry, type, member) \
|
||||
for(entry = container_of((list)->next, type, member); \
|
||||
for(entry = list_container_of((list)->next, type, member); \
|
||||
&entry->member != (list); \
|
||||
entry = container_of(entry->member.next, type, member))
|
||||
entry = list_container_of(entry->member.next, type, member))
|
||||
|
||||
/* iterates over the list in a safe way for deletion of current node
|
||||
* entry and temp_entry should be the container structure type *
|
||||
*/
|
||||
|
||||
#define list_for_every_entry_safe(list, entry, temp, type, member) \
|
||||
for(entry = container_of((list)->next, type, member), \
|
||||
temp = container_of(entry->member.next, type, member); \
|
||||
for(entry = list_container_of((list)->next, type, member), \
|
||||
temp = list_container_of(entry->member.next, type, member); \
|
||||
&entry->member != (list); entry = temp, \
|
||||
temp = container_of(temp->member.next, type, member))
|
||||
temp = list_container_of(temp->member.next, type, member))
|
||||
|
||||
/* Iterate from a given entry node in a safe way */
|
||||
|
||||
@@ -274,9 +287,9 @@
|
||||
*/
|
||||
|
||||
#define list_for_every_entry_reverse(list, entry, type, member) \
|
||||
for(entry = container_of((list)->prev, type, member); \
|
||||
for(entry = list_container_of((list)->prev, type, member); \
|
||||
&entry->member != (list); \
|
||||
entry = container_of(entry->member.prev, type, member))
|
||||
entry = list_container_of(entry->member.prev, type, member))
|
||||
|
||||
/****************************************************************************
|
||||
* Public Type Definitions
|
||||
|
||||
Reference in New Issue
Block a user