Instead of open-coding the same section and symbol naming scheme over
and over, add helper macros that take the list name (and, for entries,
the name of the entry/entries) and construct a suitable string
literal.

This will be particularly important when the followup patches add even
more uses of those names.

No functional change.

Signed-off-by: Rasmus Villemoes <[email protected]>
---
 include/linker_lists.h | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/include/linker_lists.h b/include/linker_lists.h
index a8b7e2c9f2b..b6437ad6462 100644
--- a/include/linker_lists.h
+++ b/include/linker_lists.h
@@ -19,6 +19,12 @@
 
 #if !defined(__ASSEMBLY__)
 
+#define ll_start_section_name(_list)        "__u_boot_list_2_"#_list"_1"
+#define ll_entry_section_name(_list, _name) "__u_boot_list_2_"#_list"_2_"#_name
+#define ll_end_section_name(_list)          "__u_boot_list_2_"#_list"_3"
+
+#define ll_entry_symbol_name(_list, _name) _u_boot_list_2_##_list##_2_##_name
+
 /**
  * llsym() - Access a linker-generated array entry
  * @_type:     Data type of the entry
@@ -27,7 +33,7 @@
  *             in a C variable name!
  */
 #define llsym(_type, _name, _list) \
-               ((_type *)&_u_boot_list_2_##_list##_2_##_name)
+               ((_type *)&ll_entry_symbol_name(_list, _name))
 
 /**
  * ll_entry_declare() - Declare linker-generated array entry
@@ -68,8 +74,8 @@
  *   };
  */
 #define ll_entry_declare(_type, _name, _list)                          \
-       _type _u_boot_list_2_##_list##_2_##_name __aligned(4)           \
-                       __section("__u_boot_list_2_"#_list"_2_"#_name)
+       _type ll_entry_symbol_name(_list, _name) __aligned(4)           \
+                       __section(ll_entry_section_name(_list, _name))
 
 /**
  * ll_entry_declare_list() - Declare a list of link-generated array entries
@@ -90,8 +96,8 @@
  *   };
  */
 #define ll_entry_declare_list(_type, _name, _list)                     \
-       _type _u_boot_list_2_##_list##_2_##_name[] __aligned(4)         \
-                       __section("__u_boot_list_2_"#_list"_2_"#_name)
+       _type ll_entry_symbol_name(_list, _name)[] __aligned(4)         \
+                       __section(ll_entry_section_name(_list, _name))
 
 /*
  * We need a 0-byte-size type for iterator symbols, and the compiler
@@ -123,7 +129,7 @@
 #define ll_entry_start(_type, _list)                                   \
 ({                                                                     \
        static char start[0] __aligned(CONFIG_LINKER_LIST_ALIGN)        \
-               __section("__u_boot_list_2_"#_list"_1");                        
\
+               __section(ll_start_section_name(_list));                \
        _type * tmp = (_type *)&start;                                  \
        asm("":"+r"(tmp));                                              \
        tmp;                                                            \
@@ -165,7 +171,7 @@
 #define ll_entry_end(_type, _list)                                     \
 ({                                                                     \
        static char end[0] __aligned(1)                                 \
-               __section("__u_boot_list_2_"#_list"_3");                        
\
+               __section(ll_end_section_name(_list));                  \
        _type * tmp = (_type *)&end;                                    \
        asm("":"+r"(tmp));                                              \
        tmp;                                                            \
@@ -248,7 +254,7 @@
  */
 #define ll_start_decl(_sym, _type, _list)                                      
\
        static _type _sym[0] __aligned(CONFIG_LINKER_LIST_ALIGN)        \
-               __section("__u_boot_list_2_" #_list "_1")
+               __section(ll_start_section_name(_list))
 
 /*
  * ll_end_decl uses __aligned(1) to avoid padding before the end marker.
@@ -256,7 +262,7 @@
  */
 #define ll_end_decl(_sym, _type, _list)                                        
\
        static _type _sym[0] __aligned(1)                               \
-               __section("__u_boot_list_2_" #_list "_3")
+               __section(ll_end_section_name(_list))
 
 /**
  * ll_entry_get() - Retrieve entry from linker-generated array by name
@@ -281,10 +287,10 @@
  */
 #define ll_entry_get(_type, _name, _list)                              \
        ({                                                              \
-               extern _type _u_boot_list_2_##_list##_2_##_name         \
+               extern _type ll_entry_symbol_name(_list, _name)         \
                        __aligned(4);                                   \
                _type *_ll_result =                                     \
-                       &_u_boot_list_2_##_list##_2_##_name;            \
+                       &ll_entry_symbol_name(_list, _name);            \
                _ll_result;                                             \
        })
 
@@ -302,7 +308,7 @@
  * @_list: name of the list
  */
 #define ll_entry_ref(_type, _name, _list)                              \
-       ((_type *)&_u_boot_list_2_##_list##_2_##_name)
+       ((_type *)&ll_entry_symbol_name(_list, _name))
 
 #endif /* __ASSEMBLY__ */
 
-- 
2.54.0

Reply via email to