Open CI Scripts: Initial Commit

* build_helper: Python script which builds sets
of configurations from a json file input
* checkpatch: Bash scripts helping with running checkpatch
* cppcheck: Bash script helping with running cppcheck
* lava_helper: Python script which generates a lava job
definition and parses the output of a lava dispatcher
* tfm_ci_pylib: Generic Python module for Open CI
* configs: Directory storing reference configurations

Change-Id: Ibda0cbfeb5b004b35fef3c2af4cb5c012f2672b4
Signed-off-by: Galanakis, Minos <minos.galanakis@linaro.org>
diff --git a/cppcheck/arm-cortex-m.cfg b/cppcheck/arm-cortex-m.cfg
new file mode 100644
index 0000000..5da59d6
--- /dev/null
+++ b/cppcheck/arm-cortex-m.cfg
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--
+#-------------------------------------------------------------------------------
+# Copyright (c) 2018-2019, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+-->
+<def format="2">
+  <!-- Minimum-width integer types -->
+  <podtype name="int_least8_t" sign="s" size="1"/>
+  <podtype name="uint_least8_t" sign="u" size="1"/>
+  <podtype name="int_least16_t" sign="s" size="2"/>
+  <podtype name="uint_least16_t" sign="u" size="2"/>
+  <podtype name="int_least32_t" sign="s" size="4"/>
+  <podtype name="uint_least32_t" sign="u" size="4"/>
+  <podtype name="int_least64_t" sign="s" size="8"/>
+  <podtype name="uint_least64_t" sign="u" size="8"/>
+  <!-- Greatest-width integer types -->
+  <podtype name="intmax_t" sign="s" size="8"/>
+  <podtype name="uintmax_t" sign="u" size="8"/>
+  <!-- inttypes.h -->
+  <podtype name="intptr_t" sign="s" size="4"/>
+  <podtype name="uintptr_t" sign="u" size="4"/>
+  <define name="INT8_MAX" value="0x7f"/>
+  <define name="INT8_MIN" value="(-INT8_MAX - 1)"/>
+  <define name="UINT8_MAX" value="(__CONCAT(INT8_MAX, U) * 2U + 1U)"/>
+  <define name="INT16_MAX" value="0x7fff"/>
+  <define name="INT16_MIN" value="(-INT16_MAX - 1)"/>
+  <define name="UINT16_MAX" value="(__CONCAT(INT16_MAX, U) * 2U + 1U)"/>
+  <define name="INT32_MAX" value="0x7fffffffL"/>
+  <define name="INT32_MIN" value="(-INT32_MAX - 1L)"/>
+  <define name="UINT32_MAX" value="(__CONCAT(INT32_MAX, U) * 2UL + 1UL)"/>
+  <define name="INT64_MAX" value="0x7fffffffffffffffLL"/>
+  <define name="INT64_MIN" value="(-INT64_MAX - 1LL)"/>
+  <define name="UINT64_MAX" value="(__CONCAT(INT64_MAX, U) * 2ULL + 1ULL)"/>
+  <!-- Limits of minimum-width integer types -->
+  <define name="INT_LEAST8_MAX" value="INT8_MAX"/>
+  <define name="INT_LEAST8_MIN" value="INT8_MIN"/>
+  <define name="UINT_LEAST8_MAX" value="UINT8_MAX"/>
+  <define name="INT_LEAST16_MAX" value="INT16_MAX"/>
+  <define name="INT_LEAST16_MIN" value="INT16_MIN"/>
+  <define name="UINT_LEAST16_MAX" value="UINT16_MAX"/>
+  <define name="INT_LEAST32_MAX" value="INT32_MAX"/>
+  <define name="INT_LEAST32_MIN" value="INT32_MIN"/>
+  <define name="UINT_LEAST32_MAX" value="UINT32_MAX"/>
+  <define name="INT_LEAST64_MAX" value="INT64_MAX"/>
+  <define name="INT_LEAST64_MIN" value="INT64_MIN"/>
+  <define name="UINT_LEAST64_MAX" value="UINT64_MAX"/>
+  <!-- Limits of fastest minimum-width integer types -->
+  <define name="INT_FAST8_MAX" value="INT8_MAX"/>
+  <define name="INT_FAST8_MIN" value="INT8_MIN"/>
+  <define name="UINT_FAST8_MAX" value="UINT8_MAX"/>
+  <define name="INT_FAST16_MAX" value="INT16_MAX"/>
+  <define name="INT_FAST16_MIN" value="INT16_MIN"/>
+  <define name="UINT_FAST16_MAX" value="UINT16_MAX"/>
+  <define name="INT_FAST32_MAX" value="INT32_MAX"/>
+  <define name="INT_FAST32_MIN" value="INT32_MIN"/>
+  <define name="UINT_FAST32_MAX" value="UINT32_MAX"/>
+  <define name="INT_FAST64_MAX" value="INT64_MAX"/>
+  <define name="INT_FAST64_MIN" value="INT64_MIN"/>
+  <define name="UINT_FAST64_MAX" value="UINT64_MAX"/>
+  <!-- Limits of integer types capable of holding object pointers -->
+  <define name="INTPTR_MAX" value="INT32_MAX"/>
+  <define name="INTPTR_MIN" value="INT32_MIN"/>
+  <define name="UINTPTR_MAX" value="UINT32_MAX"/>
+  <!-- Limits of greatest-width integer types -->
+  <define name="INTMAX_MAX" value="INT64_MAX"/>
+  <define name="INTMAX_MIN" value="INT64_MIN"/>
+  <define name="UINTMAX_MAX" value="UINT64_MAX"/>
+  <!-- Limits of other integer types -->
+  <define name="PTRDIFF_MAX" value="INT32_MAX"/>
+  <define name="PTRDIFF_MIN" value="INT32_MIN"/>
+  <define name="SIG_ATOMIC_MAX" value="INT8_MAX"/>
+  <define name="SIG_ATOMIC_MIN" value="INT8_MIN"/>
+  <define name="SIZE_MAX" value="(__CONCAT(INT16_MAX, U))"/>
+  <!-- Macros for integer constants -->
+  <define name="INT8_C(value)" value="((int8_t) value)"/>
+  <define name="UINT8_C(value)" value="((uint8_t) __CONCAT(value, U))"/>
+  <define name="INT16_C(value)" value="value"/>
+  <define name="UINT16_C(value)" value="__CONCAT(value, U)"/>
+  <define name="INT32_C(value)" value="__CONCAT(value, L)"/>
+  <define name="UINT32_C(value)" value="__CONCAT(value, UL)"/>
+  <define name="INT64_C(value)" value="__CONCAT(value, LL)"/>
+  <define name="UINT64_C(value)" value="__CONCAT(value, ULL)"/>
+  <define name="INTMAX_C(value)" value="__CONCAT(value, LL)"/>
+  <define name="UINTMAX_C(value)" value="__CONCAT(value, ULL)"/>
+</def>