]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
include/uk/plat/lcpu: Add per-lcpu variable definition
authorAndra Paraschiv <andra@unikraft.io>
Thu, 2 Mar 2023 14:11:28 +0000 (14:11 +0000)
committerUnikraft <monkey@unikraft.io>
Fri, 28 Apr 2023 11:58:17 +0000 (11:58 +0000)
Add a definition for the per-lcpu variable and functionality to
get this variable using the lcpu index.

Checkpatch-Ignore: COMPLEX_MACRO
Signed-off-by: Andra Paraschiv <andra@unikraft.io>
Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>
Approved-by: Marc Rittinghaus <marc.rittinghaus@unikraft.io>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #784

include/uk/plat/lcpu.h

index 136e64d7496fb05e0d0856858f440cbb54eae23c..4d12f258bb9b92e7a002225f5067162eee272376 100644 (file)
@@ -229,6 +229,22 @@ int ukplat_lcpu_wakeup(const __lcpuidx lcpuidx[], unsigned int *num);
 #define ukplat_lcpu_count()    (1)
 #endif /* CONFIG_HAVE_SMP */
 
+/* Per-LCPU variable definition */
+
+#define UKPLAT_PER_LCPU_DEFINE(var_type, var_name) \
+       var_type var_name[CONFIG_UKPLAT_LCPU_MAXCOUNT]
+#define ukplat_per_lcpu(var_name, lcpu_idx) \
+       var_name[lcpu_idx]
+#define ukplat_per_lcpu_current(var_name) \
+       ukplat_per_lcpu(var_name, ukplat_lcpu_idx())
+
+#define UKPLAT_PER_LCPU_ARRAY_DEFINE(var_type, var_name, size) \
+       var_type var_name[CONFIG_UKPLAT_LCPU_MAXCOUNT][size]
+#define ukplat_per_lcpu_array(var_name, lcpu_idx, idx) \
+       var_name[lcpu_idx][idx]
+#define ukplat_per_lcpu_array_current(var_name, idx) \
+       ukplat_per_lcpu_array(var_name, ukplat_lcpu_idx(), idx)
+
 #ifdef __cplusplus
 }
 #endif