Move defines in utils.h to utils_def.h to fix shared header compile issues
authorScott Branden <scott.branden@broadcom.com>
Mon, 10 Apr 2017 18:45:52 +0000 (11:45 -0700)
committerScott Branden <scott.branden@broadcom.com>
Sat, 29 Apr 2017 15:30:05 +0000 (08:30 -0700)
utils.h is included in various header files for the defines in it.
Some of the other header files only contain defines.  This allows the
header files to be shared between host and target builds for shared defines.

Recently types.h has been included in utils.h as well as some function
prototypes.

Because of the inclusion of types.h conflicts exist building host tools
abd these header files now.  To solve this problem,
move the defines to utils_def.h and have this included by utils.h and
change header files to only include utils_def.h and not pick up the new
types.h being introduced.

Fixes ARM-software/tf-issues#461

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Remove utils_def.h from utils.h

This patch removes utils_def.h from utils.h as it is not required.
And also makes a minor change to ensure Juno platform compiles.

Change-Id: I10cf1fb51e44a8fa6dcec02980354eb9ecc9fa29

16 files changed:
include/bl32/payloads/tlk.h
include/common/bl_common.h
include/lib/aarch64/arch.h
include/lib/cpus/errata_report.h
include/lib/smcc.h
include/lib/utils.h
include/lib/utils_def.h [new file with mode: 0644]
include/lib/xlat_tables/xlat_tables_defs.h
include/plat/arm/board/common/board_css_def.h
include/plat/arm/common/arm_def.h
include/plat/arm/common/plat_arm.h
include/plat/arm/soc/common/soc_css_def.h
lib/xlat_tables/xlat_tables_private.h
lib/xlat_tables_v2/xlat_tables_private.h
plat/arm/board/juno/juno_trng.c
plat/arm/css/common/css_bl2_setup.c

index d355313ea9d29a72bf5713a3af8ab40cd171f80a..1a83b1f78ce4305eb9f4b1ca07f7a26818c894fa 100644 (file)
@@ -31,7 +31,7 @@
 #ifndef __TLK_H__
 #define __TLK_H__
 
-#include <utils.h>
+#include <utils_def.h>
 
 /*
  * Generate function IDs for the Trusted OS/Apps
index 38be6283575ee53a970baf316ea3596eb60c2aa5..2a026b8f474cf22268e11fe6a9ad6259461a4830 100644 (file)
@@ -85,7 +85,7 @@
 #include <stddef.h>
 #include <stdint.h>
 #include <types.h>
-#include <utils.h> /* To retain compatibility */
+#include <utils_def.h> /* To retain compatibility */
 
 /*
  * Declarations of linker defined symbols to help determine memory layout of
index a2c736c9903bb7ff50e621ba9ddebc68aa9c616c..399a6438534599ea35b76035c17ed7fcd284985f 100644 (file)
@@ -31,7 +31,7 @@
 #ifndef __ARCH_H__
 #define __ARCH_H__
 
-#include <utils.h>
+#include <utils_def.h>
 
 /*******************************************************************************
  * MIDR bit definitions
index 6c6a844dd808ae6c6d971b0930adb6b0eb17c445..228ffea253c6da5f17fbbdf62c551543e2e483ad 100644 (file)
@@ -36,7 +36,7 @@
 #include <arch.h>
 #include <arch_helpers.h>
 #include <spinlock.h>
-#include <utils.h>
+#include <utils_def.h>
 
 #if DEBUG
 void print_errata_status(void);
index 2f562c5dcb13c22545c32daf85e1e24563ce610f..e3ffb782dc418c7d0bb4405d55f3a5776278a9aa 100644 (file)
@@ -31,7 +31,7 @@
 #ifndef __SMCC_H__
 #define __SMCC_H__
 
-#include <utils.h>
+#include <utils_def.h>
 
 /*******************************************************************************
  * Bit definitions inside the function id as per the SMC calling convention
index 279c91351fc316d10766a6c707a68d6d52ee07c6..c085b7d532fbd0159333df93c48c1ad4f88ea9f9 100644 (file)
 #ifndef __UTILS_H__
 #define __UTILS_H__
 
-/* Compute the number of elements in the given array */
-#define ARRAY_SIZE(a)                          \
-       (sizeof(a) / sizeof((a)[0]))
-
-#define IS_POWER_OF_TWO(x)                     \
-       (((x) & ((x) - 1)) == 0)
-
-#define SIZE_FROM_LOG2_WORDS(n)                (4 << (n))
-
-#define BIT(nr)                                (1UL << (nr))
-
-#define MIN(x, y) __extension__ ({     \
-       __typeof__(x) _x = (x);         \
-       __typeof__(y) _y = (y);         \
-       (void)(&_x == &_y);             \
-       _x < _y ? _x : _y;              \
-})
-
-#define MAX(x, y) __extension__ ({     \
-       __typeof__(x) _x = (x);         \
-       __typeof__(y) _y = (y);         \
-       (void)(&_x == &_y);             \
-       _x > _y ? _x : _y;              \
-})
-
-/*
- * The round_up() macro rounds up a value to the given boundary in a
- * type-agnostic yet type-safe manner. The boundary must be a power of two.
- * In other words, it computes the smallest multiple of boundary which is
- * greater than or equal to value.
- *
- * round_down() is similar but rounds the value down instead.
- */
-#define round_boundary(value, boundary)                \
-       ((__typeof__(value))((boundary) - 1))
-
-#define round_up(value, boundary)              \
-       ((((value) - 1) | round_boundary(value, boundary)) + 1)
-
-#define round_down(value, boundary)            \
-       ((value) & ~round_boundary(value, boundary))
-
-/*
- * Evaluates to 1 if (ptr + inc) overflows, 0 otherwise.
- * Both arguments must be unsigned pointer values (i.e. uintptr_t).
- */
-#define check_uptr_overflow(ptr, inc)          \
-       (((ptr) > UINTPTR_MAX - (inc)) ? 1 : 0)
-
-/*
- * For those constants to be shared between C and other sources, apply a 'ull'
- * suffix to the argument only in C, to avoid undefined or unintended behaviour.
- *
- * The GNU assembler and linker do not support the 'ull' suffix (it causes the
- * build process to fail) therefore the suffix is omitted when used in linker
- * scripts and assembler files.
-*/
-#if defined(__LINKER__) || defined(__ASSEMBLY__)
-# define ULL(_x)       (_x)
-#else
-# define ULL(_x)       (_x##ull)
+#if !ERROR_DEPRECATED
+#include <utils_def.h>
 #endif
 
 /*
diff --git a/include/lib/utils_def.h b/include/lib/utils_def.h
new file mode 100644 (file)
index 0000000..202f050
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * Neither the name of ARM nor the names of its contributors may be used
+ * to endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __UTILS_DEF_H__
+#define __UTILS_DEF_H__
+
+/* Compute the number of elements in the given array */
+#define ARRAY_SIZE(a)                          \
+       (sizeof(a) / sizeof((a)[0]))
+
+#define IS_POWER_OF_TWO(x)                     \
+       (((x) & ((x) - 1)) == 0)
+
+#define SIZE_FROM_LOG2_WORDS(n)                (4 << (n))
+
+#define BIT(nr)                                (1UL << (nr))
+
+#define MIN(x, y) __extension__ ({     \
+       __typeof__(x) _x = (x);         \
+       __typeof__(y) _y = (y);         \
+       (void)(&_x == &_y);             \
+       _x < _y ? _x : _y;              \
+})
+
+#define MAX(x, y) __extension__ ({     \
+       __typeof__(x) _x = (x);         \
+       __typeof__(y) _y = (y);         \
+       (void)(&_x == &_y);             \
+       _x > _y ? _x : _y;              \
+})
+
+/*
+ * The round_up() macro rounds up a value to the given boundary in a
+ * type-agnostic yet type-safe manner. The boundary must be a power of two.
+ * In other words, it computes the smallest multiple of boundary which is
+ * greater than or equal to value.
+ *
+ * round_down() is similar but rounds the value down instead.
+ */
+#define round_boundary(value, boundary)                \
+       ((__typeof__(value))((boundary) - 1))
+
+#define round_up(value, boundary)              \
+       ((((value) - 1) | round_boundary(value, boundary)) + 1)
+
+#define round_down(value, boundary)            \
+       ((value) & ~round_boundary(value, boundary))
+
+/*
+ * Evaluates to 1 if (ptr + inc) overflows, 0 otherwise.
+ * Both arguments must be unsigned pointer values (i.e. uintptr_t).
+ */
+#define check_uptr_overflow(ptr, inc)          \
+       (((ptr) > UINTPTR_MAX - (inc)) ? 1 : 0)
+
+/*
+ * For those constants to be shared between C and other sources, apply a 'ull'
+ * suffix to the argument only in C, to avoid undefined or unintended behaviour.
+ *
+ * The GNU assembler and linker do not support the 'ull' suffix (it causes the
+ * build process to fail) therefore the suffix is omitted when used in linker
+ * scripts and assembler files.
+*/
+#if defined(__LINKER__) || defined(__ASSEMBLY__)
+# define ULL(_x)       (_x)
+#else
+# define ULL(_x)       (_x##ull)
+#endif
+
+#endif /* __UTILS_DEF_H__ */
index 3105d7aaee5c31200d5d00a0d3dea4417607e44c..032ce9257b1ee9c0847be077111ee6ae6e646d86 100644 (file)
@@ -31,7 +31,7 @@
 #ifndef __XLAT_TABLES_DEFS_H__
 #define __XLAT_TABLES_DEFS_H__
 
-#include <utils.h>
+#include <utils_def.h>
 
 /* Miscellaneous MMU related constants */
 #define NUM_2MB_IN_GB          (1 << 9)
index 4b5e84dd588b62072f8652904c776e2102a28374..88a97d9950fe33420eaf0ab65a4590b00f864d12 100644 (file)
@@ -33,7 +33,7 @@
 
 #include <common_def.h>
 #include <soc_css_def.h>
-#include <utils.h>
+#include <utils_def.h>
 #include <v2m_def.h>
 
 /*
index 43e0eb893ca3d11c9a45fe75d89871319548b042..f5f83780df7a71145b62a297c653940d746ae210 100644 (file)
@@ -34,7 +34,7 @@
 #include <common_def.h>
 #include <platform_def.h>
 #include <tbbr_img_def.h>
-#include <utils.h>
+#include <utils_def.h>
 #include <xlat_tables_defs.h>
 
 
index b24af78d9442b7a921acba449261238d8208ef39..e6192590539b8e5cd7369f74fee7e1197bac2f65 100644 (file)
@@ -34,8 +34,7 @@
 #include <cassert.h>
 #include <cpu_data.h>
 #include <stdint.h>
-#include <utils.h>
-#include <xlat_tables_v2.h>
+#include <utils_def.h>
 
 /*******************************************************************************
  * Forward declarations
index 3b4cc79f8e3661df85f293cc93dc7f128b7cdab8..2c08296cae21c032bf879d1a3961062456abb70b 100644 (file)
@@ -32,7 +32,7 @@
 #define __SOC_CSS_DEF_H__
 
 #include <common_def.h>
-#include <utils.h>
+#include <utils_def.h>
 
 
 /*
index f0f656bd00293cf2a255b8b7b09cf0cdc2f1f7dd..54ad909fec035599cd6a31b98ba3030a08211df9 100644 (file)
@@ -33,7 +33,7 @@
 
 #include <cassert.h>
 #include <platform_def.h>
-#include <utils.h>
+#include <utils_def.h>
 
 /*
  * If the platform hasn't defined a physical and a virtual address space size
index 048c4a8360524c4c31bdd1b5b3e76f7eb8927e86..e79890e5831dc34d50bc8bef190c5b5429974ab6 100644 (file)
@@ -33,7 +33,7 @@
 
 #include <cassert.h>
 #include <platform_def.h>
-#include <utils.h>
+#include <utils_def.h>
 
 /*
  * If the platform hasn't defined a physical and a virtual address space size
index 2fcddcdb56948999298da05344fed8b88f5d6f1e..9bb760f9ca53aa53c6bf0b9ed00b980b54730c96 100644 (file)
@@ -31,7 +31,7 @@
 #include <assert.h>
 #include <mmio.h>
 #include <string.h>
-#include <utils.h>
+#include <utils_def.h>
 #include "juno_def.h"
 
 #define NSAMPLE_CLOCKS 1 /* min 1 cycle, max 231 cycles */
index 5361d897ec390934cb81bf2153294988beb3a7ba..65a98ba4fa3f26fea5ce4ff25e81514c5cf8f680 100644 (file)
@@ -34,6 +34,7 @@
 #include <mmio.h>
 #include <plat_arm.h>
 #include <string.h>
+#include <utils.h>
 #include "css_scp_bootloader.h"
 
 /* Weak definition may be overridden in specific CSS based platform */