include: Make sbi_hart_id_to_scratch() as macro
authorAnup Patel <anup.patel@wdc.com>
Wed, 11 Mar 2020 13:38:08 +0000 (19:08 +0530)
committerAnup Patel <anup@brainfault.org>
Fri, 13 Mar 2020 06:48:07 +0000 (12:18 +0530)
The sbi_hart_id_to_scratch() just forwards call to firmware specific
hartid_to_scratch() callback so we make sbi_hart_id_to_scratch() as
macro in sbi_scratch.h instead of regular function in sbi_hart.c.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
include/sbi/sbi_hart.h
include/sbi/sbi_scratch.h
lib/sbi/sbi_hart.c

index c999b58..d91e58f 100644 (file)
@@ -32,9 +32,6 @@ sbi_hart_switch_mode(unsigned long arg0, unsigned long arg1,
                     unsigned long next_addr, unsigned long next_mode,
                     bool next_virt);
 
-struct sbi_scratch *sbi_hart_id_to_scratch(struct sbi_scratch *scratch,
-                                          u32 hartid);
-
 u32 sbi_current_hartid(void);
 
 #endif
index 1c85562..8960c02 100644 (file)
@@ -103,6 +103,12 @@ void sbi_scratch_free_offset(unsigned long offset);
 #define sbi_scratch_thishart_offset_ptr(offset)        \
        ((void *)sbi_scratch_thishart_ptr() + (offset))
 
+typedef struct sbi_scratch *(*hartid2scratch)(ulong hartid);
+
+/** Get sbi_scratch from HART id */
+#define sbi_hart_id_to_scratch(__scratch, __hartid) \
+       ((hartid2scratch)(__scratch)->hartid_to_scratch)(__hartid)
+
 #endif
 
 #endif
index 732ff5f..f61a82f 100644 (file)
@@ -340,11 +340,3 @@ sbi_hart_switch_mode(unsigned long arg0, unsigned long arg1,
        __asm__ __volatile__("mret" : : "r"(a0), "r"(a1));
        __builtin_unreachable();
 }
-
-typedef struct sbi_scratch *(*h2s)(ulong hartid);
-
-struct sbi_scratch *sbi_hart_id_to_scratch(struct sbi_scratch *scratch,
-                                          u32 hartid)
-{
-       return ((h2s)scratch->hartid_to_scratch)(hartid);
-}