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:
chao an
2024-02-29 10:19:49 +08:00
committed by Xiang Xiao
parent 9f62947d40
commit 6d50274ebe
25 changed files with 59 additions and 22 deletions
+35 -22
View File
@@ -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