instead of defining this useful macro in every single config file.

There's only one quirk: ARRAY_SIZE is defined for hypervisor code in util.h,
which we can't include in cell-config.h, as it's GPL-only. So we have to
duplicate the definitions, which might lead to redefinitions of the macro.
Hence, surround the macro by guards.

Also remove the macro from the root cell template.

Signed-off-by: Ralf Ramsauer <[email protected]>
---
 configs/arm/bananapi-gic-demo.c               | 2 --
 configs/arm/bananapi-linux-demo.c             | 2 --
 configs/arm/bananapi-uart-demo.c              | 2 --
 configs/arm/bananapi.c                        | 2 --
 configs/arm/emtrion-rzg1e-linux-demo.c        | 2 --
 configs/arm/emtrion-rzg1e-uart-demo.c         | 2 --
 configs/arm/emtrion-rzg1e.c                   | 2 --
 configs/arm/emtrion-rzg1h-linux-demo.c        | 2 --
 configs/arm/emtrion-rzg1h-uart-demo.c         | 2 --
 configs/arm/emtrion-rzg1h.c                   | 2 --
 configs/arm/emtrion-rzg1m-linux-demo.c        | 2 --
 configs/arm/emtrion-rzg1m-uart-demo.c         | 2 --
 configs/arm/emtrion-rzg1m.c                   | 2 --
 configs/arm/jetson-tk1-demo.c                 | 2 --
 configs/arm/jetson-tk1-linux-demo.c           | 2 --
 configs/arm/jetson-tk1.c                      | 2 --
 configs/arm/orangepi0-gic-demo.c              | 2 --
 configs/arm/orangepi0-linux-demo.c            | 2 --
 configs/arm/orangepi0.c                       | 2 --
 configs/arm64/amd-seattle-gic-demo.c          | 2 --
 configs/arm64/amd-seattle-linux-demo.c        | 2 --
 configs/arm64/amd-seattle-uart-demo.c         | 2 --
 configs/arm64/amd-seattle.c                   | 2 --
 configs/arm64/espressobin-gic-demo.c          | 2 --
 configs/arm64/espressobin-linux-demo.c        | 2 --
 configs/arm64/espressobin.c                   | 2 --
 configs/arm64/foundation-v8-gic-demo.c        | 2 --
 configs/arm64/foundation-v8-linux-demo.c      | 2 --
 configs/arm64/foundation-v8-uart-demo.c       | 2 --
 configs/arm64/foundation-v8.c                 | 2 --
 configs/arm64/hikey-gic-demo.c                | 2 --
 configs/arm64/hikey-linux-demo.c              | 2 --
 configs/arm64/hikey.c                         | 2 --
 configs/arm64/imx8mq-gic-demo.c               | 2 --
 configs/arm64/imx8mq.c                        | 2 --
 configs/arm64/jetson-tx1-demo.c               | 2 --
 configs/arm64/jetson-tx1-linux-demo.c         | 2 --
 configs/arm64/jetson-tx1.c                    | 2 --
 configs/arm64/jetson-tx2-demo.c               | 2 --
 configs/arm64/jetson-tx2.c                    | 2 --
 configs/arm64/k3-am654-gic-demo.c             | 2 --
 configs/arm64/k3-am654-idk-linux-demo.c       | 2 --
 configs/arm64/k3-am654-idk.c                  | 2 --
 configs/arm64/k3-am654-uart-demo.c            | 2 --
 configs/arm64/macchiatobin-gic-demo.c         | 2 --
 configs/arm64/macchiatobin-linux-demo.c       | 2 --
 configs/arm64/macchiatobin.c                  | 2 --
 configs/arm64/miriac-sbc-ls1046a-gic-demo.c   | 2 --
 configs/arm64/miriac-sbc-ls1046a-linux-demo.c | 2 --
 configs/arm64/miriac-sbc-ls1046a.c            | 2 --
 configs/arm64/qemu-arm64-gic-demo.c           | 2 --
 configs/arm64/qemu-arm64-linux-demo.c         | 2 --
 configs/arm64/qemu-arm64.c                    | 2 --
 configs/arm64/ultra96-gic-demo.c              | 2 --
 configs/arm64/ultra96-linux-demo.c            | 2 --
 configs/arm64/ultra96.c                       | 2 --
 configs/arm64/zynqmp-zcu102-gic-demo.c        | 2 --
 configs/arm64/zynqmp-zcu102-linux-demo-2.c    | 2 --
 configs/arm64/zynqmp-zcu102-linux-demo.c      | 2 --
 configs/arm64/zynqmp-zcu102.c                 | 2 --
 configs/x86/apic-demo.c                       | 2 --
 configs/x86/e1000-demo.c                      | 2 --
 configs/x86/f2a88xm-hd3.c                     | 2 --
 configs/x86/imb-a180.c                        | 2 --
 configs/x86/ioapic-demo.c                     | 2 --
 configs/x86/ivshmem-demo.c                    | 2 --
 configs/x86/linux-x86-demo.c                  | 2 --
 configs/x86/pci-demo.c                        | 2 --
 configs/x86/qemu-x86.c                        | 2 --
 configs/x86/smp-demo.c                        | 2 --
 configs/x86/tiny-demo.c                       | 2 --
 hypervisor/include/jailhouse/utils.h          | 2 ++
 include/jailhouse/cell-config.h               | 4 ++++
 tools/root-cell-config.c.tmpl                 | 2 --
 74 files changed, 6 insertions(+), 144 deletions(-)

diff --git a/configs/arm/bananapi-gic-demo.c b/configs/arm/bananapi-gic-demo.c
index 757d9503..855a72a7 100644
--- a/configs/arm/bananapi-gic-demo.c
+++ b/configs/arm/bananapi-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/bananapi-linux-demo.c 
b/configs/arm/bananapi-linux-demo.c
index e9e584f2..fd1931f3 100644
--- a/configs/arm/bananapi-linux-demo.c
+++ b/configs/arm/bananapi-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/bananapi-uart-demo.c b/configs/arm/bananapi-uart-demo.c
index aeec6f8d..0621ca52 100644
--- a/configs/arm/bananapi-uart-demo.c
+++ b/configs/arm/bananapi-uart-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/bananapi.c b/configs/arm/bananapi.c
index e7e6bb1e..ffc4589c 100644
--- a/configs/arm/bananapi.c
+++ b/configs/arm/bananapi.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1e-linux-demo.c 
b/configs/arm/emtrion-rzg1e-linux-demo.c
index ea638989..1bf08b66 100644
--- a/configs/arm/emtrion-rzg1e-linux-demo.c
+++ b/configs/arm/emtrion-rzg1e-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1e-uart-demo.c 
b/configs/arm/emtrion-rzg1e-uart-demo.c
index a2590adb..42c74127 100644
--- a/configs/arm/emtrion-rzg1e-uart-demo.c
+++ b/configs/arm/emtrion-rzg1e-uart-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1e.c b/configs/arm/emtrion-rzg1e.c
index 0a38ed8d..e3872cf2 100644
--- a/configs/arm/emtrion-rzg1e.c
+++ b/configs/arm/emtrion-rzg1e.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1h-linux-demo.c 
b/configs/arm/emtrion-rzg1h-linux-demo.c
index 61c58666..ad2dceeb 100644
--- a/configs/arm/emtrion-rzg1h-linux-demo.c
+++ b/configs/arm/emtrion-rzg1h-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1h-uart-demo.c 
b/configs/arm/emtrion-rzg1h-uart-demo.c
index d8076be5..f20c94cb 100644
--- a/configs/arm/emtrion-rzg1h-uart-demo.c
+++ b/configs/arm/emtrion-rzg1h-uart-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1h.c b/configs/arm/emtrion-rzg1h.c
index a23e1589..03e1be5b 100644
--- a/configs/arm/emtrion-rzg1h.c
+++ b/configs/arm/emtrion-rzg1h.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1m-linux-demo.c 
b/configs/arm/emtrion-rzg1m-linux-demo.c
index 0c3d0cfd..d8b8441a 100644
--- a/configs/arm/emtrion-rzg1m-linux-demo.c
+++ b/configs/arm/emtrion-rzg1m-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1m-uart-demo.c 
b/configs/arm/emtrion-rzg1m-uart-demo.c
index 3a0eda5c..c89c1d82 100644
--- a/configs/arm/emtrion-rzg1m-uart-demo.c
+++ b/configs/arm/emtrion-rzg1m-uart-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/emtrion-rzg1m.c b/configs/arm/emtrion-rzg1m.c
index f97805f7..84d68f62 100644
--- a/configs/arm/emtrion-rzg1m.c
+++ b/configs/arm/emtrion-rzg1m.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm/jetson-tk1-demo.c b/configs/arm/jetson-tk1-demo.c
index 7562222c..57ea5a3d 100644
--- a/configs/arm/jetson-tk1-demo.c
+++ b/configs/arm/jetson-tk1-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 #ifndef CONFIG_INMATE_BASE
 #define CONFIG_INMATE_BASE 0x0
 #endif
diff --git a/configs/arm/jetson-tk1-linux-demo.c 
b/configs/arm/jetson-tk1-linux-demo.c
index 16d79774..7ee83f7a 100644
--- a/configs/arm/jetson-tk1-linux-demo.c
+++ b/configs/arm/jetson-tk1-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/jetson-tk1.c b/configs/arm/jetson-tk1.c
index 9e2e23f9..7374ef44 100644
--- a/configs/arm/jetson-tk1.c
+++ b/configs/arm/jetson-tk1.c
@@ -18,8 +18,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm/orangepi0-gic-demo.c b/configs/arm/orangepi0-gic-demo.c
index 45c38425..51b3bf8b 100644
--- a/configs/arm/orangepi0-gic-demo.c
+++ b/configs/arm/orangepi0-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/orangepi0-linux-demo.c 
b/configs/arm/orangepi0-linux-demo.c
index e7154078..49ee10e9 100644
--- a/configs/arm/orangepi0-linux-demo.c
+++ b/configs/arm/orangepi0-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm/orangepi0.c b/configs/arm/orangepi0.c
index 9eca773d..e45c8d62 100644
--- a/configs/arm/orangepi0.c
+++ b/configs/arm/orangepi0.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/amd-seattle-gic-demo.c 
b/configs/arm64/amd-seattle-gic-demo.c
index d407d6e3..5a4d726a 100644
--- a/configs/arm64/amd-seattle-gic-demo.c
+++ b/configs/arm64/amd-seattle-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/amd-seattle-linux-demo.c 
b/configs/arm64/amd-seattle-linux-demo.c
index 96edbc4f..5349323c 100644
--- a/configs/arm64/amd-seattle-linux-demo.c
+++ b/configs/arm64/amd-seattle-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/amd-seattle-uart-demo.c 
b/configs/arm64/amd-seattle-uart-demo.c
index 61073486..bcaac58d 100644
--- a/configs/arm64/amd-seattle-uart-demo.c
+++ b/configs/arm64/amd-seattle-uart-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/amd-seattle.c b/configs/arm64/amd-seattle.c
index 911ae1da..b5cff3b3 100644
--- a/configs/arm64/amd-seattle.c
+++ b/configs/arm64/amd-seattle.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/espressobin-gic-demo.c 
b/configs/arm64/espressobin-gic-demo.c
index 452ab668..6de940d7 100644
--- a/configs/arm64/espressobin-gic-demo.c
+++ b/configs/arm64/espressobin-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/espressobin-linux-demo.c 
b/configs/arm64/espressobin-linux-demo.c
index c0b09981..92da96e9 100644
--- a/configs/arm64/espressobin-linux-demo.c
+++ b/configs/arm64/espressobin-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/espressobin.c b/configs/arm64/espressobin.c
index d620080d..a23dc24b 100644
--- a/configs/arm64/espressobin.c
+++ b/configs/arm64/espressobin.c
@@ -17,8 +17,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/foundation-v8-gic-demo.c 
b/configs/arm64/foundation-v8-gic-demo.c
index 5d69e01e..8b1ff1ac 100644
--- a/configs/arm64/foundation-v8-gic-demo.c
+++ b/configs/arm64/foundation-v8-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/foundation-v8-linux-demo.c 
b/configs/arm64/foundation-v8-linux-demo.c
index 86fe8ada..2a448b49 100644
--- a/configs/arm64/foundation-v8-linux-demo.c
+++ b/configs/arm64/foundation-v8-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/foundation-v8-uart-demo.c 
b/configs/arm64/foundation-v8-uart-demo.c
index f057fbbc..da919d4a 100644
--- a/configs/arm64/foundation-v8-uart-demo.c
+++ b/configs/arm64/foundation-v8-uart-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/foundation-v8.c b/configs/arm64/foundation-v8.c
index 5109929f..7a632491 100644
--- a/configs/arm64/foundation-v8.c
+++ b/configs/arm64/foundation-v8.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/hikey-gic-demo.c b/configs/arm64/hikey-gic-demo.c
index 908b0c71..c7ddf469 100644
--- a/configs/arm64/hikey-gic-demo.c
+++ b/configs/arm64/hikey-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/hikey-linux-demo.c b/configs/arm64/hikey-linux-demo.c
index 71bc7c82..76dda9da 100644
--- a/configs/arm64/hikey-linux-demo.c
+++ b/configs/arm64/hikey-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/hikey.c b/configs/arm64/hikey.c
index bcfbe188..7e6bb952 100644
--- a/configs/arm64/hikey.c
+++ b/configs/arm64/hikey.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/imx8mq-gic-demo.c b/configs/arm64/imx8mq-gic-demo.c
index 041751c0..ae1877d0 100644
--- a/configs/arm64/imx8mq-gic-demo.c
+++ b/configs/arm64/imx8mq-gic-demo.c
@@ -13,8 +13,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/imx8mq.c b/configs/arm64/imx8mq.c
index 95b4b363..7d113264 100644
--- a/configs/arm64/imx8mq.c
+++ b/configs/arm64/imx8mq.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/jetson-tx1-demo.c b/configs/arm64/jetson-tx1-demo.c
index 446b1a6d..b16b9ba7 100644
--- a/configs/arm64/jetson-tx1-demo.c
+++ b/configs/arm64/jetson-tx1-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/jetson-tx1-linux-demo.c 
b/configs/arm64/jetson-tx1-linux-demo.c
index 4a643873..b8698259 100644
--- a/configs/arm64/jetson-tx1-linux-demo.c
+++ b/configs/arm64/jetson-tx1-linux-demo.c
@@ -18,8 +18,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 #ifndef CONFIG_INMATE_BASE
 #define CONFIG_INMATE_BASE 0x0
 #endif
diff --git a/configs/arm64/jetson-tx1.c b/configs/arm64/jetson-tx1.c
index d4a00daf..d1fb21b8 100644
--- a/configs/arm64/jetson-tx1.c
+++ b/configs/arm64/jetson-tx1.c
@@ -18,8 +18,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/jetson-tx2-demo.c b/configs/arm64/jetson-tx2-demo.c
index 6e09226c..d500e124 100644
--- a/configs/arm64/jetson-tx2-demo.c
+++ b/configs/arm64/jetson-tx2-demo.c
@@ -11,8 +11,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/jetson-tx2.c b/configs/arm64/jetson-tx2.c
index 814a4b08..c2e17e67 100644
--- a/configs/arm64/jetson-tx2.c
+++ b/configs/arm64/jetson-tx2.c
@@ -21,8 +21,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/k3-am654-gic-demo.c 
b/configs/arm64/k3-am654-gic-demo.c
index fc9deb75..556b0b4a 100644
--- a/configs/arm64/k3-am654-gic-demo.c
+++ b/configs/arm64/k3-am654-gic-demo.c
@@ -17,8 +17,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/k3-am654-idk-linux-demo.c 
b/configs/arm64/k3-am654-idk-linux-demo.c
index 23824890..5eab1502 100644
--- a/configs/arm64/k3-am654-idk-linux-demo.c
+++ b/configs/arm64/k3-am654-idk-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 #ifndef CONFIG_INMATE_BASE
 #define CONFIG_INMATE_BASE 0x0000000
 #endif
diff --git a/configs/arm64/k3-am654-idk.c b/configs/arm64/k3-am654-idk.c
index edc31b8b..a951a461 100644
--- a/configs/arm64/k3-am654-idk.c
+++ b/configs/arm64/k3-am654-idk.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/k3-am654-uart-demo.c 
b/configs/arm64/k3-am654-uart-demo.c
index 10cc0365..29a022e9 100644
--- a/configs/arm64/k3-am654-uart-demo.c
+++ b/configs/arm64/k3-am654-uart-demo.c
@@ -17,8 +17,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/macchiatobin-gic-demo.c 
b/configs/arm64/macchiatobin-gic-demo.c
index 713319d2..63e1e433 100644
--- a/configs/arm64/macchiatobin-gic-demo.c
+++ b/configs/arm64/macchiatobin-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/macchiatobin-linux-demo.c 
b/configs/arm64/macchiatobin-linux-demo.c
index 63fbbba7..6e18f62f 100644
--- a/configs/arm64/macchiatobin-linux-demo.c
+++ b/configs/arm64/macchiatobin-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/macchiatobin.c b/configs/arm64/macchiatobin.c
index c0df0572..4811e8dd 100644
--- a/configs/arm64/macchiatobin.c
+++ b/configs/arm64/macchiatobin.c
@@ -17,8 +17,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/miriac-sbc-ls1046a-gic-demo.c 
b/configs/arm64/miriac-sbc-ls1046a-gic-demo.c
index 614b572e..6a93935f 100644
--- a/configs/arm64/miriac-sbc-ls1046a-gic-demo.c
+++ b/configs/arm64/miriac-sbc-ls1046a-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/miriac-sbc-ls1046a-linux-demo.c 
b/configs/arm64/miriac-sbc-ls1046a-linux-demo.c
index 1c63ae0e..ec2531b2 100644
--- a/configs/arm64/miriac-sbc-ls1046a-linux-demo.c
+++ b/configs/arm64/miriac-sbc-ls1046a-linux-demo.c
@@ -17,8 +17,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/miriac-sbc-ls1046a.c 
b/configs/arm64/miriac-sbc-ls1046a.c
index 9597500d..6f3ad198 100644
--- a/configs/arm64/miriac-sbc-ls1046a.c
+++ b/configs/arm64/miriac-sbc-ls1046a.c
@@ -17,8 +17,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/qemu-arm64-gic-demo.c 
b/configs/arm64/qemu-arm64-gic-demo.c
index 2a50ef3f..9e51e821 100644
--- a/configs/arm64/qemu-arm64-gic-demo.c
+++ b/configs/arm64/qemu-arm64-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/qemu-arm64-linux-demo.c 
b/configs/arm64/qemu-arm64-linux-demo.c
index be88e107..ed89413b 100644
--- a/configs/arm64/qemu-arm64-linux-demo.c
+++ b/configs/arm64/qemu-arm64-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/qemu-arm64.c b/configs/arm64/qemu-arm64.c
index 0570a1dd..6eff7403 100644
--- a/configs/arm64/qemu-arm64.c
+++ b/configs/arm64/qemu-arm64.c
@@ -17,8 +17,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/ultra96-gic-demo.c b/configs/arm64/ultra96-gic-demo.c
index 12556335..403c6972 100644
--- a/configs/arm64/ultra96-gic-demo.c
+++ b/configs/arm64/ultra96-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/ultra96-linux-demo.c 
b/configs/arm64/ultra96-linux-demo.c
index e6b33466..7cbfd772 100644
--- a/configs/arm64/ultra96-linux-demo.c
+++ b/configs/arm64/ultra96-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/ultra96.c b/configs/arm64/ultra96.c
index 1fc54356..bcf08772 100644
--- a/configs/arm64/ultra96.c
+++ b/configs/arm64/ultra96.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/arm64/zynqmp-zcu102-gic-demo.c 
b/configs/arm64/zynqmp-zcu102-gic-demo.c
index 6ca18686..15767396 100644
--- a/configs/arm64/zynqmp-zcu102-gic-demo.c
+++ b/configs/arm64/zynqmp-zcu102-gic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/zynqmp-zcu102-linux-demo-2.c 
b/configs/arm64/zynqmp-zcu102-linux-demo-2.c
index 2fcc86c6..02ec89e8 100644
--- a/configs/arm64/zynqmp-zcu102-linux-demo-2.c
+++ b/configs/arm64/zynqmp-zcu102-linux-demo-2.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/zynqmp-zcu102-linux-demo.c 
b/configs/arm64/zynqmp-zcu102-linux-demo.c
index ca80535d..c30ed924 100644
--- a/configs/arm64/zynqmp-zcu102-linux-demo.c
+++ b/configs/arm64/zynqmp-zcu102-linux-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/arm64/zynqmp-zcu102.c b/configs/arm64/zynqmp-zcu102.c
index 65515e56..9de04d6c 100644
--- a/configs/arm64/zynqmp-zcu102.c
+++ b/configs/arm64/zynqmp-zcu102.c
@@ -17,8 +17,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/x86/apic-demo.c b/configs/x86/apic-demo.c
index 969f9527..8840c632 100644
--- a/configs/x86/apic-demo.c
+++ b/configs/x86/apic-demo.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/x86/e1000-demo.c b/configs/x86/e1000-demo.c
index 1c602883..09ca9eac 100644
--- a/configs/x86/e1000-demo.c
+++ b/configs/x86/e1000-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/x86/f2a88xm-hd3.c b/configs/x86/f2a88xm-hd3.c
index d5320d7b..e73cbb06 100644
--- a/configs/x86/f2a88xm-hd3.c
+++ b/configs/x86/f2a88xm-hd3.c
@@ -20,8 +20,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/x86/imb-a180.c b/configs/x86/imb-a180.c
index 9073a4ac..4faa0b41 100644
--- a/configs/x86/imb-a180.c
+++ b/configs/x86/imb-a180.c
@@ -19,8 +19,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/x86/ioapic-demo.c b/configs/x86/ioapic-demo.c
index 8b47a335..30e0ac98 100644
--- a/configs/x86/ioapic-demo.c
+++ b/configs/x86/ioapic-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/x86/ivshmem-demo.c b/configs/x86/ivshmem-demo.c
index 501d722f..b3a12a9d 100644
--- a/configs/x86/ivshmem-demo.c
+++ b/configs/x86/ivshmem-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/x86/linux-x86-demo.c b/configs/x86/linux-x86-demo.c
index af8c6da4..c8f18701 100644
--- a/configs/x86/linux-x86-demo.c
+++ b/configs/x86/linux-x86-demo.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/x86/pci-demo.c b/configs/x86/pci-demo.c
index c5719459..0b8c1aad 100644
--- a/configs/x86/pci-demo.c
+++ b/configs/x86/pci-demo.c
@@ -16,8 +16,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/x86/qemu-x86.c b/configs/x86/qemu-x86.c
index 68b8f18d..4d671cb2 100644
--- a/configs/x86/qemu-x86.c
+++ b/configs/x86/qemu-x86.c
@@ -19,8 +19,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
diff --git a/configs/x86/smp-demo.c b/configs/x86/smp-demo.c
index a9625353..d175c618 100644
--- a/configs/x86/smp-demo.c
+++ b/configs/x86/smp-demo.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/configs/x86/tiny-demo.c b/configs/x86/tiny-demo.c
index 426333f6..493059ae 100644
--- a/configs/x86/tiny-demo.c
+++ b/configs/x86/tiny-demo.c
@@ -15,8 +15,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
-
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
diff --git a/hypervisor/include/jailhouse/utils.h 
b/hypervisor/include/jailhouse/utils.h
index eae0f390..6f6e8371 100644
--- a/hypervisor/include/jailhouse/utils.h
+++ b/hypervisor/include/jailhouse/utils.h
@@ -12,7 +12,9 @@
  * Partly derived from Linux kernel code.
  */
 
+#ifndef ARRAY_SIZE
 #define ARRAY_SIZE(array)      (sizeof(array) / sizeof((array)[0]))
+#endif
 
 /* sizeof() for a structure/union field */
 #define FIELD_SIZEOF(type, fld)        (sizeof(((type *)0)->fld))
diff --git a/include/jailhouse/cell-config.h b/include/jailhouse/cell-config.h
index 66e13c3d..63eb5fa5 100644
--- a/include/jailhouse/cell-config.h
+++ b/include/jailhouse/cell-config.h
@@ -41,6 +41,10 @@
 
 #include <jailhouse/console.h>
 
+#ifndef ARRAY_SIZE
+#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])
+#endif
+
 /*
  * Incremented on any layout or semantic change of system or cell config.
  * Also update HEADER_REVISION in tools.
diff --git a/tools/root-cell-config.c.tmpl b/tools/root-cell-config.c.tmpl
index 5a8e1412..b80d7889 100644
--- a/tools/root-cell-config.c.tmpl
+++ b/tools/root-cell-config.c.tmpl
@@ -42,8 +42,6 @@
 #include <jailhouse/types.h>
 #include <jailhouse/cell-config.h>
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
-
 struct {
        struct jailhouse_system header;
        __u64 cpus[${int((cpucount + 63) / 64)}];
-- 
2.21.0

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to