Build: Update app_broker build
Update app_broker build to make dependencies more stable.
- Sort NS library folder structure.
Move common library folders out of app_broker. Place them under lib
folder. Move CMSIS to lib/ext.
It is expected that users can re-use those library in other NS
integration with TF-M.
- NS libraries depend on each other and therefore the dependencies are
complicated. Build those NS libraries under app_broker to more
easily sort out dependencies. Remove build files from library
folders.
Signed-off-by: David Hu <david.hu@arm.com>
Change-Id: I8c2ff7bbec6c03738b9cbe49fd286a5147293ba5
diff --git a/app_broker/CMSIS/CMakeLists.txt b/app_broker/CMSIS/CMakeLists.txt
deleted file mode 100644
index 3a20f9c..0000000
--- a/app_broker/CMSIS/CMakeLists.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-#
-# This CMake script used in a split build only. In the legacy 'sinlge' build
-# this file is ignoed. Please don't be confused.
-#
-cmake_minimum_required(VERSION 3.15)
-cmake_policy(SET CMP0079 NEW)
-
-add_library(CMSIS_5_RTX_V8MMN STATIC IMPORTED GLOBAL)
-add_library(CMSIS_5_RTX_V8MMFN STATIC IMPORTED GLOBAL)
-add_library(CMSIS_5_RTX_V8MBN STATIC IMPORTED GLOBAL)
-add_library(CMSIS_5_RTX_CM3 STATIC IMPORTED GLOBAL)
-
-set(CMSIS_LIBS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/RTOS2/RTX/Library)
-
-if ("${CMAKE_C_COMPILER_ID}" STREQUAL GNU)
- set_target_properties(CMSIS_5_RTX_V8MMN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/GCC/libRTX_V8MMN.a)
- set_target_properties(CMSIS_5_RTX_V8MMFN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/GCC/libRTX_V8MMFN.a)
- set_target_properties(CMSIS_5_RTX_V8MBN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/GCC/libRTX_V8MBN.a)
- set_target_properties(CMSIS_5_RTX_CM3 PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/GCC/libRTX_CM3.a)
-elseif("${CMAKE_C_COMPILER_ID}" STREQUAL ARMClang)
- set_target_properties(CMSIS_5_RTX_V8MMN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/ARM/RTX_V8MMN.lib)
- set_target_properties(CMSIS_5_RTX_V8MMFN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/ARM/RTX_V8MMFN.lib)
- set_target_properties(CMSIS_5_RTX_V8MBN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/ARM/RTX_V8MBN.lib)
- set_target_properties(CMSIS_5_RTX_CM3 PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/ARM/RTX_CM3.lib)
-elseif("${CMAKE_C_COMPILER_ID}" STREQUAL IAR)
- add_library(CMSIS_5_RTX_V81MMN STATIC IMPORTED GLOBAL)
- set_target_properties(CMSIS_5_RTX_V8MMN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_V8MMN.a)
- set_target_properties(CMSIS_5_RTX_V81MMN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_V81MMN.a)
- set_target_properties(CMSIS_5_RTX_V8MMFN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_V8MMFN.a)
- set_target_properties(CMSIS_5_RTX_V8MBN PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_V8MBN.a)
- set_target_properties(CMSIS_5_RTX_CM3 PROPERTIES IMPORTED_LOCATION ${CMSIS_LIBS_DIR}/IAR/RTX_CM3.a)
-else()
- message(FATAL_ERROR "${CMAKE_C_COMPILER_ID} does not have CMSIS RTX static libraries set up")
-endif()
-
-add_library(RTX_OS STATIC)
-
-target_sources(RTX_OS
- PUBLIC
- RTOS2/RTX/Config/RTX_Config.c
- RTOS2/RTX/Source/rtx_lib.c
-)
-
-target_include_directories(RTX_OS
- PUBLIC
- Core/Include
- RTOS2/Include
- RTOS2/RTX/Include
- RTOS2/RTX/Config
-)
-
-target_link_libraries(RTX_OS
- PRIVATE
- CMSIS_5_RTX_V8MMN
- tfm_test_broker
- PUBLIC
- platform_ns # for cmsis_compiler.h
- psa_interface # for os_wrapper/common.h
-)
diff --git a/app_broker/CMSIS/LICENSE.txt b/app_broker/CMSIS/LICENSE.txt
deleted file mode 100644
index 8dada3e..0000000
--- a/app_broker/CMSIS/LICENSE.txt
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/app_broker/CMSIS/README b/app_broker/CMSIS/README
deleted file mode 100644
index 307528f..0000000
--- a/app_broker/CMSIS/README
+++ /dev/null
@@ -1,15 +0,0 @@
-The source codes under this folder are copied from:
-https://github.com/ARM-software/CMSIS_5.git, tag 5.5.0, without modifications.
-Only CMakeLists.txt file is added for TF-M test build purpose.
-
-The prebuilt libraries have two versions:
- - v5.5.0 for ARMCLANG and GCC compilers
- - v5.7.0 for IAR compiler
-
-The v5.7.0 libraries for ARMCLANG and GCC have linking issues on Musca_A and
-AN524. So libraries for these two compilers keep using v5.5.0 which has been
-tested and verified.
-
-The IAR libraries of v5.5.0 has a problem and has been updated in CMSIS_5 5.7.0.
-So IAR libraries use v5.7.0.
-
diff --git a/app_broker/CMSIS/RTOS2/Include/cmsis_os2.h b/app_broker/CMSIS/RTOS2/Include/cmsis_os2.h
deleted file mode 100644
index e0b602c..0000000
--- a/app_broker/CMSIS/RTOS2/Include/cmsis_os2.h
+++ /dev/null
@@ -1,756 +0,0 @@
-/*
- * Copyright (c) 2013-2018 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ----------------------------------------------------------------------
- *
- * $Date: 18. June 2018
- * $Revision: V2.1.3
- *
- * Project: CMSIS-RTOS2 API
- * Title: cmsis_os2.h header file
- *
- * Version 2.1.3
- * Additional functions allowed to be called from Interrupt Service Routines:
- * - osThreadGetId
- * Version 2.1.2
- * Additional functions allowed to be called from Interrupt Service Routines:
- * - osKernelGetInfo, osKernelGetState
- * Version 2.1.1
- * Additional functions allowed to be called from Interrupt Service Routines:
- * - osKernelGetTickCount, osKernelGetTickFreq
- * Changed Kernel Tick type to uint32_t:
- * - updated: osKernelGetTickCount, osDelayUntil
- * Version 2.1.0
- * Support for critical and uncritical sections (nesting safe):
- * - updated: osKernelLock, osKernelUnlock
- * - added: osKernelRestoreLock
- * Updated Thread and Event Flags:
- * - changed flags parameter and return type from int32_t to uint32_t
- * Version 2.0.0
- * Initial Release
- *---------------------------------------------------------------------------*/
-
-#ifndef CMSIS_OS2_H_
-#define CMSIS_OS2_H_
-
-#ifndef __NO_RETURN
-#if defined(__CC_ARM)
-#define __NO_RETURN __declspec(noreturn)
-#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
-#define __NO_RETURN __attribute__((__noreturn__))
-#elif defined(__GNUC__)
-#define __NO_RETURN __attribute__((__noreturn__))
-#elif defined(__ICCARM__)
-#define __NO_RETURN __noreturn
-#else
-#define __NO_RETURN
-#endif
-#endif
-
-#include <stdint.h>
-#include <stddef.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-// ==== Enumerations, structures, defines ====
-
-/// Version information.
-typedef struct {
- uint32_t api; ///< API version (major.minor.rev: mmnnnrrrr dec).
- uint32_t kernel; ///< Kernel version (major.minor.rev: mmnnnrrrr dec).
-} osVersion_t;
-
-/// Kernel state.
-typedef enum {
- osKernelInactive = 0, ///< Inactive.
- osKernelReady = 1, ///< Ready.
- osKernelRunning = 2, ///< Running.
- osKernelLocked = 3, ///< Locked.
- osKernelSuspended = 4, ///< Suspended.
- osKernelError = -1, ///< Error.
- osKernelReserved = 0x7FFFFFFFU ///< Prevents enum down-size compiler optimization.
-} osKernelState_t;
-
-/// Thread state.
-typedef enum {
- osThreadInactive = 0, ///< Inactive.
- osThreadReady = 1, ///< Ready.
- osThreadRunning = 2, ///< Running.
- osThreadBlocked = 3, ///< Blocked.
- osThreadTerminated = 4, ///< Terminated.
- osThreadError = -1, ///< Error.
- osThreadReserved = 0x7FFFFFFF ///< Prevents enum down-size compiler optimization.
-} osThreadState_t;
-
-/// Priority values.
-typedef enum {
- osPriorityNone = 0, ///< No priority (not initialized).
- osPriorityIdle = 1, ///< Reserved for Idle thread.
- osPriorityLow = 8, ///< Priority: low
- osPriorityLow1 = 8+1, ///< Priority: low + 1
- osPriorityLow2 = 8+2, ///< Priority: low + 2
- osPriorityLow3 = 8+3, ///< Priority: low + 3
- osPriorityLow4 = 8+4, ///< Priority: low + 4
- osPriorityLow5 = 8+5, ///< Priority: low + 5
- osPriorityLow6 = 8+6, ///< Priority: low + 6
- osPriorityLow7 = 8+7, ///< Priority: low + 7
- osPriorityBelowNormal = 16, ///< Priority: below normal
- osPriorityBelowNormal1 = 16+1, ///< Priority: below normal + 1
- osPriorityBelowNormal2 = 16+2, ///< Priority: below normal + 2
- osPriorityBelowNormal3 = 16+3, ///< Priority: below normal + 3
- osPriorityBelowNormal4 = 16+4, ///< Priority: below normal + 4
- osPriorityBelowNormal5 = 16+5, ///< Priority: below normal + 5
- osPriorityBelowNormal6 = 16+6, ///< Priority: below normal + 6
- osPriorityBelowNormal7 = 16+7, ///< Priority: below normal + 7
- osPriorityNormal = 24, ///< Priority: normal
- osPriorityNormal1 = 24+1, ///< Priority: normal + 1
- osPriorityNormal2 = 24+2, ///< Priority: normal + 2
- osPriorityNormal3 = 24+3, ///< Priority: normal + 3
- osPriorityNormal4 = 24+4, ///< Priority: normal + 4
- osPriorityNormal5 = 24+5, ///< Priority: normal + 5
- osPriorityNormal6 = 24+6, ///< Priority: normal + 6
- osPriorityNormal7 = 24+7, ///< Priority: normal + 7
- osPriorityAboveNormal = 32, ///< Priority: above normal
- osPriorityAboveNormal1 = 32+1, ///< Priority: above normal + 1
- osPriorityAboveNormal2 = 32+2, ///< Priority: above normal + 2
- osPriorityAboveNormal3 = 32+3, ///< Priority: above normal + 3
- osPriorityAboveNormal4 = 32+4, ///< Priority: above normal + 4
- osPriorityAboveNormal5 = 32+5, ///< Priority: above normal + 5
- osPriorityAboveNormal6 = 32+6, ///< Priority: above normal + 6
- osPriorityAboveNormal7 = 32+7, ///< Priority: above normal + 7
- osPriorityHigh = 40, ///< Priority: high
- osPriorityHigh1 = 40+1, ///< Priority: high + 1
- osPriorityHigh2 = 40+2, ///< Priority: high + 2
- osPriorityHigh3 = 40+3, ///< Priority: high + 3
- osPriorityHigh4 = 40+4, ///< Priority: high + 4
- osPriorityHigh5 = 40+5, ///< Priority: high + 5
- osPriorityHigh6 = 40+6, ///< Priority: high + 6
- osPriorityHigh7 = 40+7, ///< Priority: high + 7
- osPriorityRealtime = 48, ///< Priority: realtime
- osPriorityRealtime1 = 48+1, ///< Priority: realtime + 1
- osPriorityRealtime2 = 48+2, ///< Priority: realtime + 2
- osPriorityRealtime3 = 48+3, ///< Priority: realtime + 3
- osPriorityRealtime4 = 48+4, ///< Priority: realtime + 4
- osPriorityRealtime5 = 48+5, ///< Priority: realtime + 5
- osPriorityRealtime6 = 48+6, ///< Priority: realtime + 6
- osPriorityRealtime7 = 48+7, ///< Priority: realtime + 7
- osPriorityISR = 56, ///< Reserved for ISR deferred thread.
- osPriorityError = -1, ///< System cannot determine priority or illegal priority.
- osPriorityReserved = 0x7FFFFFFF ///< Prevents enum down-size compiler optimization.
-} osPriority_t;
-
-/// Entry point of a thread.
-typedef void (*osThreadFunc_t) (void *argument);
-
-/// Timer callback function.
-typedef void (*osTimerFunc_t) (void *argument);
-
-/// Timer type.
-typedef enum {
- osTimerOnce = 0, ///< One-shot timer.
- osTimerPeriodic = 1 ///< Repeating timer.
-} osTimerType_t;
-
-// Timeout value.
-#define osWaitForever 0xFFFFFFFFU ///< Wait forever timeout value.
-
-// Flags options (\ref osThreadFlagsWait and \ref osEventFlagsWait).
-#define osFlagsWaitAny 0x00000000U ///< Wait for any flag (default).
-#define osFlagsWaitAll 0x00000001U ///< Wait for all flags.
-#define osFlagsNoClear 0x00000002U ///< Do not clear flags which have been specified to wait for.
-
-// Flags errors (returned by osThreadFlagsXxxx and osEventFlagsXxxx).
-#define osFlagsError 0x80000000U ///< Error indicator.
-#define osFlagsErrorUnknown 0xFFFFFFFFU ///< osError (-1).
-#define osFlagsErrorTimeout 0xFFFFFFFEU ///< osErrorTimeout (-2).
-#define osFlagsErrorResource 0xFFFFFFFDU ///< osErrorResource (-3).
-#define osFlagsErrorParameter 0xFFFFFFFCU ///< osErrorParameter (-4).
-#define osFlagsErrorISR 0xFFFFFFFAU ///< osErrorISR (-6).
-
-// Thread attributes (attr_bits in \ref osThreadAttr_t).
-#define osThreadDetached 0x00000000U ///< Thread created in detached mode (default)
-#define osThreadJoinable 0x00000001U ///< Thread created in joinable mode
-
-// Mutex attributes (attr_bits in \ref osMutexAttr_t).
-#define osMutexRecursive 0x00000001U ///< Recursive mutex.
-#define osMutexPrioInherit 0x00000002U ///< Priority inherit protocol.
-#define osMutexRobust 0x00000008U ///< Robust mutex.
-
-/// Status code values returned by CMSIS-RTOS functions.
-typedef enum {
- osOK = 0, ///< Operation completed successfully.
- osError = -1, ///< Unspecified RTOS error: run-time error but no other error message fits.
- osErrorTimeout = -2, ///< Operation not completed within the timeout period.
- osErrorResource = -3, ///< Resource not available.
- osErrorParameter = -4, ///< Parameter error.
- osErrorNoMemory = -5, ///< System is out of memory: it was impossible to allocate or reserve memory for the operation.
- osErrorISR = -6, ///< Not allowed in ISR context: the function cannot be called from interrupt service routines.
- osStatusReserved = 0x7FFFFFFF ///< Prevents enum down-size compiler optimization.
-} osStatus_t;
-
-
-/// \details Thread ID identifies the thread.
-typedef void *osThreadId_t;
-
-/// \details Timer ID identifies the timer.
-typedef void *osTimerId_t;
-
-/// \details Event Flags ID identifies the event flags.
-typedef void *osEventFlagsId_t;
-
-/// \details Mutex ID identifies the mutex.
-typedef void *osMutexId_t;
-
-/// \details Semaphore ID identifies the semaphore.
-typedef void *osSemaphoreId_t;
-
-/// \details Memory Pool ID identifies the memory pool.
-typedef void *osMemoryPoolId_t;
-
-/// \details Message Queue ID identifies the message queue.
-typedef void *osMessageQueueId_t;
-
-
-#ifndef TZ_MODULEID_T
-#define TZ_MODULEID_T
-/// \details Data type that identifies secure software modules called by a process.
-typedef uint32_t TZ_ModuleId_t;
-#endif
-
-
-/// Attributes structure for thread.
-typedef struct {
- const char *name; ///< name of the thread
- uint32_t attr_bits; ///< attribute bits
- void *cb_mem; ///< memory for control block
- uint32_t cb_size; ///< size of provided memory for control block
- void *stack_mem; ///< memory for stack
- uint32_t stack_size; ///< size of stack
- osPriority_t priority; ///< initial thread priority (default: osPriorityNormal)
- TZ_ModuleId_t tz_module; ///< TrustZone module identifier
- uint32_t reserved; ///< reserved (must be 0)
-} osThreadAttr_t;
-
-/// Attributes structure for timer.
-typedef struct {
- const char *name; ///< name of the timer
- uint32_t attr_bits; ///< attribute bits
- void *cb_mem; ///< memory for control block
- uint32_t cb_size; ///< size of provided memory for control block
-} osTimerAttr_t;
-
-/// Attributes structure for event flags.
-typedef struct {
- const char *name; ///< name of the event flags
- uint32_t attr_bits; ///< attribute bits
- void *cb_mem; ///< memory for control block
- uint32_t cb_size; ///< size of provided memory for control block
-} osEventFlagsAttr_t;
-
-/// Attributes structure for mutex.
-typedef struct {
- const char *name; ///< name of the mutex
- uint32_t attr_bits; ///< attribute bits
- void *cb_mem; ///< memory for control block
- uint32_t cb_size; ///< size of provided memory for control block
-} osMutexAttr_t;
-
-/// Attributes structure for semaphore.
-typedef struct {
- const char *name; ///< name of the semaphore
- uint32_t attr_bits; ///< attribute bits
- void *cb_mem; ///< memory for control block
- uint32_t cb_size; ///< size of provided memory for control block
-} osSemaphoreAttr_t;
-
-/// Attributes structure for memory pool.
-typedef struct {
- const char *name; ///< name of the memory pool
- uint32_t attr_bits; ///< attribute bits
- void *cb_mem; ///< memory for control block
- uint32_t cb_size; ///< size of provided memory for control block
- void *mp_mem; ///< memory for data storage
- uint32_t mp_size; ///< size of provided memory for data storage
-} osMemoryPoolAttr_t;
-
-/// Attributes structure for message queue.
-typedef struct {
- const char *name; ///< name of the message queue
- uint32_t attr_bits; ///< attribute bits
- void *cb_mem; ///< memory for control block
- uint32_t cb_size; ///< size of provided memory for control block
- void *mq_mem; ///< memory for data storage
- uint32_t mq_size; ///< size of provided memory for data storage
-} osMessageQueueAttr_t;
-
-
-// ==== Kernel Management Functions ====
-
-/// Initialize the RTOS Kernel.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osKernelInitialize (void);
-
-/// Get RTOS Kernel Information.
-/// \param[out] version pointer to buffer for retrieving version information.
-/// \param[out] id_buf pointer to buffer for retrieving kernel identification string.
-/// \param[in] id_size size of buffer for kernel identification string.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osKernelGetInfo (osVersion_t *version, char *id_buf, uint32_t id_size);
-
-/// Get the current RTOS Kernel state.
-/// \return current RTOS Kernel state.
-osKernelState_t osKernelGetState (void);
-
-/// Start the RTOS Kernel scheduler.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osKernelStart (void);
-
-/// Lock the RTOS Kernel scheduler.
-/// \return previous lock state (1 - locked, 0 - not locked, error code if negative).
-int32_t osKernelLock (void);
-
-/// Unlock the RTOS Kernel scheduler.
-/// \return previous lock state (1 - locked, 0 - not locked, error code if negative).
-int32_t osKernelUnlock (void);
-
-/// Restore the RTOS Kernel scheduler lock state.
-/// \param[in] lock lock state obtained by \ref osKernelLock or \ref osKernelUnlock.
-/// \return new lock state (1 - locked, 0 - not locked, error code if negative).
-int32_t osKernelRestoreLock (int32_t lock);
-
-/// Suspend the RTOS Kernel scheduler.
-/// \return time in ticks, for how long the system can sleep or power-down.
-uint32_t osKernelSuspend (void);
-
-/// Resume the RTOS Kernel scheduler.
-/// \param[in] sleep_ticks time in ticks for how long the system was in sleep or power-down mode.
-void osKernelResume (uint32_t sleep_ticks);
-
-/// Get the RTOS kernel tick count.
-/// \return RTOS kernel current tick count.
-uint32_t osKernelGetTickCount (void);
-
-/// Get the RTOS kernel tick frequency.
-/// \return frequency of the kernel tick in hertz, i.e. kernel ticks per second.
-uint32_t osKernelGetTickFreq (void);
-
-/// Get the RTOS kernel system timer count.
-/// \return RTOS kernel current system timer count as 32-bit value.
-uint32_t osKernelGetSysTimerCount (void);
-
-/// Get the RTOS kernel system timer frequency.
-/// \return frequency of the system timer in hertz, i.e. timer ticks per second.
-uint32_t osKernelGetSysTimerFreq (void);
-
-
-// ==== Thread Management Functions ====
-
-/// Create a thread and add it to Active Threads.
-/// \param[in] func thread function.
-/// \param[in] argument pointer that is passed to the thread function as start argument.
-/// \param[in] attr thread attributes; NULL: default values.
-/// \return thread ID for reference by other functions or NULL in case of error.
-osThreadId_t osThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr);
-
-/// Get name of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return name as null-terminated string.
-const char *osThreadGetName (osThreadId_t thread_id);
-
-/// Return the thread ID of the current running thread.
-/// \return thread ID for reference by other functions or NULL in case of error.
-osThreadId_t osThreadGetId (void);
-
-/// Get current thread state of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return current thread state of the specified thread.
-osThreadState_t osThreadGetState (osThreadId_t thread_id);
-
-/// Get stack size of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return stack size in bytes.
-uint32_t osThreadGetStackSize (osThreadId_t thread_id);
-
-/// Get available stack space of a thread based on stack watermark recording during execution.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return remaining stack space in bytes.
-uint32_t osThreadGetStackSpace (osThreadId_t thread_id);
-
-/// Change priority of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \param[in] priority new priority value for the thread function.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadSetPriority (osThreadId_t thread_id, osPriority_t priority);
-
-/// Get current priority of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return current priority value of the specified thread.
-osPriority_t osThreadGetPriority (osThreadId_t thread_id);
-
-/// Pass control to next thread that is in state \b READY.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadYield (void);
-
-/// Suspend execution of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadSuspend (osThreadId_t thread_id);
-
-/// Resume execution of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadResume (osThreadId_t thread_id);
-
-/// Detach a thread (thread storage can be reclaimed when thread terminates).
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadDetach (osThreadId_t thread_id);
-
-/// Wait for specified thread to terminate.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadJoin (osThreadId_t thread_id);
-
-/// Terminate execution of current running thread.
-__NO_RETURN void osThreadExit (void);
-
-/// Terminate execution of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osThreadTerminate (osThreadId_t thread_id);
-
-/// Get number of active threads.
-/// \return number of active threads.
-uint32_t osThreadGetCount (void);
-
-/// Enumerate active threads.
-/// \param[out] thread_array pointer to array for retrieving thread IDs.
-/// \param[in] array_items maximum number of items in array for retrieving thread IDs.
-/// \return number of enumerated threads.
-uint32_t osThreadEnumerate (osThreadId_t *thread_array, uint32_t array_items);
-
-
-// ==== Thread Flags Functions ====
-
-/// Set the specified Thread Flags of a thread.
-/// \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-/// \param[in] flags specifies the flags of the thread that shall be set.
-/// \return thread flags after setting or error code if highest bit set.
-uint32_t osThreadFlagsSet (osThreadId_t thread_id, uint32_t flags);
-
-/// Clear the specified Thread Flags of current running thread.
-/// \param[in] flags specifies the flags of the thread that shall be cleared.
-/// \return thread flags before clearing or error code if highest bit set.
-uint32_t osThreadFlagsClear (uint32_t flags);
-
-/// Get the current Thread Flags of current running thread.
-/// \return current thread flags.
-uint32_t osThreadFlagsGet (void);
-
-/// Wait for one or more Thread Flags of the current running thread to become signaled.
-/// \param[in] flags specifies the flags to wait for.
-/// \param[in] options specifies flags options (osFlagsXxxx).
-/// \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return thread flags before clearing or error code if highest bit set.
-uint32_t osThreadFlagsWait (uint32_t flags, uint32_t options, uint32_t timeout);
-
-
-// ==== Generic Wait Functions ====
-
-/// Wait for Timeout (Time Delay).
-/// \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value
-/// \return status code that indicates the execution status of the function.
-osStatus_t osDelay (uint32_t ticks);
-
-/// Wait until specified time.
-/// \param[in] ticks absolute time in ticks
-/// \return status code that indicates the execution status of the function.
-osStatus_t osDelayUntil (uint32_t ticks);
-
-
-// ==== Timer Management Functions ====
-
-/// Create and Initialize a timer.
-/// \param[in] func function pointer to callback function.
-/// \param[in] type \ref osTimerOnce for one-shot or \ref osTimerPeriodic for periodic behavior.
-/// \param[in] argument argument to the timer callback function.
-/// \param[in] attr timer attributes; NULL: default values.
-/// \return timer ID for reference by other functions or NULL in case of error.
-osTimerId_t osTimerNew (osTimerFunc_t func, osTimerType_t type, void *argument, const osTimerAttr_t *attr);
-
-/// Get name of a timer.
-/// \param[in] timer_id timer ID obtained by \ref osTimerNew.
-/// \return name as null-terminated string.
-const char *osTimerGetName (osTimerId_t timer_id);
-
-/// Start or restart a timer.
-/// \param[in] timer_id timer ID obtained by \ref osTimerNew.
-/// \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value of the timer.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osTimerStart (osTimerId_t timer_id, uint32_t ticks);
-
-/// Stop a timer.
-/// \param[in] timer_id timer ID obtained by \ref osTimerNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osTimerStop (osTimerId_t timer_id);
-
-/// Check if a timer is running.
-/// \param[in] timer_id timer ID obtained by \ref osTimerNew.
-/// \return 0 not running, 1 running.
-uint32_t osTimerIsRunning (osTimerId_t timer_id);
-
-/// Delete a timer.
-/// \param[in] timer_id timer ID obtained by \ref osTimerNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osTimerDelete (osTimerId_t timer_id);
-
-
-// ==== Event Flags Management Functions ====
-
-/// Create and Initialize an Event Flags object.
-/// \param[in] attr event flags attributes; NULL: default values.
-/// \return event flags ID for reference by other functions or NULL in case of error.
-osEventFlagsId_t osEventFlagsNew (const osEventFlagsAttr_t *attr);
-
-/// Get name of an Event Flags object.
-/// \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-/// \return name as null-terminated string.
-const char *osEventFlagsGetName (osEventFlagsId_t ef_id);
-
-/// Set the specified Event Flags.
-/// \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-/// \param[in] flags specifies the flags that shall be set.
-/// \return event flags after setting or error code if highest bit set.
-uint32_t osEventFlagsSet (osEventFlagsId_t ef_id, uint32_t flags);
-
-/// Clear the specified Event Flags.
-/// \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-/// \param[in] flags specifies the flags that shall be cleared.
-/// \return event flags before clearing or error code if highest bit set.
-uint32_t osEventFlagsClear (osEventFlagsId_t ef_id, uint32_t flags);
-
-/// Get the current Event Flags.
-/// \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-/// \return current event flags.
-uint32_t osEventFlagsGet (osEventFlagsId_t ef_id);
-
-/// Wait for one or more Event Flags to become signaled.
-/// \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-/// \param[in] flags specifies the flags to wait for.
-/// \param[in] options specifies flags options (osFlagsXxxx).
-/// \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return event flags before clearing or error code if highest bit set.
-uint32_t osEventFlagsWait (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout);
-
-/// Delete an Event Flags object.
-/// \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osEventFlagsDelete (osEventFlagsId_t ef_id);
-
-
-// ==== Mutex Management Functions ====
-
-/// Create and Initialize a Mutex object.
-/// \param[in] attr mutex attributes; NULL: default values.
-/// \return mutex ID for reference by other functions or NULL in case of error.
-osMutexId_t osMutexNew (const osMutexAttr_t *attr);
-
-/// Get name of a Mutex object.
-/// \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-/// \return name as null-terminated string.
-const char *osMutexGetName (osMutexId_t mutex_id);
-
-/// Acquire a Mutex or timeout if it is locked.
-/// \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-/// \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMutexAcquire (osMutexId_t mutex_id, uint32_t timeout);
-
-/// Release a Mutex that was acquired by \ref osMutexAcquire.
-/// \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMutexRelease (osMutexId_t mutex_id);
-
-/// Get Thread which owns a Mutex object.
-/// \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-/// \return thread ID of owner thread or NULL when mutex was not acquired.
-osThreadId_t osMutexGetOwner (osMutexId_t mutex_id);
-
-/// Delete a Mutex object.
-/// \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMutexDelete (osMutexId_t mutex_id);
-
-
-// ==== Semaphore Management Functions ====
-
-/// Create and Initialize a Semaphore object.
-/// \param[in] max_count maximum number of available tokens.
-/// \param[in] initial_count initial number of available tokens.
-/// \param[in] attr semaphore attributes; NULL: default values.
-/// \return semaphore ID for reference by other functions or NULL in case of error.
-osSemaphoreId_t osSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t *attr);
-
-/// Get name of a Semaphore object.
-/// \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-/// \return name as null-terminated string.
-const char *osSemaphoreGetName (osSemaphoreId_t semaphore_id);
-
-/// Acquire a Semaphore token or timeout if no tokens are available.
-/// \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-/// \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout);
-
-/// Release a Semaphore token up to the initial maximum count.
-/// \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osSemaphoreRelease (osSemaphoreId_t semaphore_id);
-
-/// Get current Semaphore token count.
-/// \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-/// \return number of tokens available.
-uint32_t osSemaphoreGetCount (osSemaphoreId_t semaphore_id);
-
-/// Delete a Semaphore object.
-/// \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osSemaphoreDelete (osSemaphoreId_t semaphore_id);
-
-
-// ==== Memory Pool Management Functions ====
-
-/// Create and Initialize a Memory Pool object.
-/// \param[in] block_count maximum number of memory blocks in memory pool.
-/// \param[in] block_size memory block size in bytes.
-/// \param[in] attr memory pool attributes; NULL: default values.
-/// \return memory pool ID for reference by other functions or NULL in case of error.
-osMemoryPoolId_t osMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr);
-
-/// Get name of a Memory Pool object.
-/// \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return name as null-terminated string.
-const char *osMemoryPoolGetName (osMemoryPoolId_t mp_id);
-
-/// Allocate a memory block from a Memory Pool.
-/// \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-/// \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return address of the allocated memory block or NULL in case of no memory is available.
-void *osMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout);
-
-/// Return an allocated memory block back to a Memory Pool.
-/// \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-/// \param[in] block address of the allocated memory block to be returned to the memory pool.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMemoryPoolFree (osMemoryPoolId_t mp_id, void *block);
-
-/// Get maximum number of memory blocks in a Memory Pool.
-/// \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return maximum number of memory blocks.
-uint32_t osMemoryPoolGetCapacity (osMemoryPoolId_t mp_id);
-
-/// Get memory block size in a Memory Pool.
-/// \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return memory block size in bytes.
-uint32_t osMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id);
-
-/// Get number of memory blocks used in a Memory Pool.
-/// \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return number of memory blocks used.
-uint32_t osMemoryPoolGetCount (osMemoryPoolId_t mp_id);
-
-/// Get number of memory blocks available in a Memory Pool.
-/// \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return number of memory blocks available.
-uint32_t osMemoryPoolGetSpace (osMemoryPoolId_t mp_id);
-
-/// Delete a Memory Pool object.
-/// \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMemoryPoolDelete (osMemoryPoolId_t mp_id);
-
-
-// ==== Message Queue Management Functions ====
-
-/// Create and Initialize a Message Queue object.
-/// \param[in] msg_count maximum number of messages in queue.
-/// \param[in] msg_size maximum message size in bytes.
-/// \param[in] attr message queue attributes; NULL: default values.
-/// \return message queue ID for reference by other functions or NULL in case of error.
-osMessageQueueId_t osMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr);
-
-/// Get name of a Message Queue object.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \return name as null-terminated string.
-const char *osMessageQueueGetName (osMessageQueueId_t mq_id);
-
-/// Put a Message into a Queue or timeout if Queue is full.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \param[in] msg_ptr pointer to buffer with message to put into a queue.
-/// \param[in] msg_prio message priority.
-/// \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMessageQueuePut (osMessageQueueId_t mq_id, const void *msg_ptr, uint8_t msg_prio, uint32_t timeout);
-
-/// Get a Message from a Queue or timeout if Queue is empty.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \param[out] msg_ptr pointer to buffer for message to get from a queue.
-/// \param[out] msg_prio pointer to buffer for message priority or NULL.
-/// \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMessageQueueGet (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t *msg_prio, uint32_t timeout);
-
-/// Get maximum number of messages in a Message Queue.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \return maximum number of messages.
-uint32_t osMessageQueueGetCapacity (osMessageQueueId_t mq_id);
-
-/// Get maximum message size in a Memory Pool.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \return maximum message size in bytes.
-uint32_t osMessageQueueGetMsgSize (osMessageQueueId_t mq_id);
-
-/// Get number of queued messages in a Message Queue.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \return number of queued messages.
-uint32_t osMessageQueueGetCount (osMessageQueueId_t mq_id);
-
-/// Get number of available slots for messages in a Message Queue.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \return number of available slots for messages.
-uint32_t osMessageQueueGetSpace (osMessageQueueId_t mq_id);
-
-/// Reset a Message Queue to initial empty state.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMessageQueueReset (osMessageQueueId_t mq_id);
-
-/// Delete a Message Queue object.
-/// \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-/// \return status code that indicates the execution status of the function.
-osStatus_t osMessageQueueDelete (osMessageQueueId_t mq_id);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // CMSIS_OS2_H_
diff --git a/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.c b/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.c
deleted file mode 100644
index e487101..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2013-2018 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * $Revision: V5.1.0
- *
- * Project: CMSIS-RTOS RTX
- * Title: RTX Configuration
- *
- * -----------------------------------------------------------------------------
- */
-
-#include "cmsis_compiler.h"
-#include "rtx_os.h"
-
-// OS Idle Thread
-__WEAK __NO_RETURN void osRtxIdleThread (void *argument) {
- (void)argument;
-
- for (;;) {}
-}
-
-// OS Error Callback function
-__WEAK uint32_t osRtxErrorNotify (uint32_t code, void *object_id) {
- (void)object_id;
-
- switch (code) {
- case osRtxErrorStackUnderflow:
- // Stack overflow detected for thread (thread_id=object_id)
- break;
- case osRtxErrorISRQueueOverflow:
- // ISR Queue overflow detected when inserting object (object_id)
- break;
- case osRtxErrorTimerQueueOverflow:
- // User Timer Callback Queue overflow detected for timer (timer_id=object_id)
- break;
- case osRtxErrorClibSpace:
- // Standard C/C++ library libspace not available: increase OS_THREAD_LIBSPACE_NUM
- break;
- case osRtxErrorClibMutex:
- // Standard C/C++ library mutex initialization failed
- break;
- default:
- // Reserved
- break;
- }
- for (;;) {}
-//return 0U;
-}
diff --git a/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.h b/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.h
deleted file mode 100644
index 1671aab..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Config/RTX_Config.h
+++ /dev/null
@@ -1,578 +0,0 @@
-/*
- * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * $Revision: V5.5.0
- *
- * Project: CMSIS-RTOS RTX
- * Title: RTX Configuration definitions
- *
- * -----------------------------------------------------------------------------
- */
-
-#ifndef RTX_CONFIG_H_
-#define RTX_CONFIG_H_
-
-#ifdef _RTE_
-#include "RTE_Components.h"
-#ifdef RTE_RTX_CONFIG_H
-#include RTE_RTX_CONFIG_H
-#endif
-#endif
-
-//-------- <<< Use Configuration Wizard in Context Menu >>> --------------------
-
-// <h>System Configuration
-// =======================
-
-// <o>Global Dynamic Memory size [bytes] <0-1073741824:8>
-// <i> Defines the combined global dynamic memory size.
-// <i> Default: 4096
-#ifndef OS_DYNAMIC_MEM_SIZE
-#define OS_DYNAMIC_MEM_SIZE 8192
-#endif
-
-// <o>Kernel Tick Frequency [Hz] <1-1000000>
-// <i> Defines base time unit for delays and timeouts.
-// <i> Default: 1000 (1ms tick)
-#ifndef OS_TICK_FREQ
-#define OS_TICK_FREQ 1000
-#endif
-
-// <e>Round-Robin Thread switching
-// <i> Enables Round-Robin Thread switching.
-#ifndef OS_ROBIN_ENABLE
-#define OS_ROBIN_ENABLE 1
-#endif
-
-// <o>Round-Robin Timeout <1-1000>
-// <i> Defines how many ticks a thread will execute before a thread switch.
-// <i> Default: 5
-#ifndef OS_ROBIN_TIMEOUT
-#define OS_ROBIN_TIMEOUT 5
-#endif
-
-// </e>
-
-// <o>ISR FIFO Queue
-// <4=> 4 entries <8=> 8 entries <12=> 12 entries <16=> 16 entries
-// <24=> 24 entries <32=> 32 entries <48=> 48 entries <64=> 64 entries
-// <96=> 96 entries <128=> 128 entries <196=> 196 entries <256=> 256 entries
-// <i> RTOS Functions called from ISR store requests to this buffer.
-// <i> Default: 16 entries
-#ifndef OS_ISR_FIFO_QUEUE
-#define OS_ISR_FIFO_QUEUE 16
-#endif
-
-// <q>Object Memory usage counters
-// <i> Enables object memory usage counters (requires RTX source variant).
-#ifndef OS_OBJ_MEM_USAGE
-#define OS_OBJ_MEM_USAGE 0
-#endif
-
-// </h>
-
-// <h>Thread Configuration
-// =======================
-
-// <e>Object specific Memory allocation
-// <i> Enables object specific memory allocation.
-#ifndef OS_THREAD_OBJ_MEM
-#define OS_THREAD_OBJ_MEM 0
-#endif
-
-// <o>Number of user Threads <1-1000>
-// <i> Defines maximum number of user threads that can be active at the same time.
-// <i> Applies to user threads with system provided memory for control blocks.
-#ifndef OS_THREAD_NUM
-#define OS_THREAD_NUM 1
-#endif
-
-// <o>Number of user Threads with default Stack size <0-1000>
-// <i> Defines maximum number of user threads with default stack size.
-// <i> Applies to user threads with zero stack size specified.
-#ifndef OS_THREAD_DEF_STACK_NUM
-#define OS_THREAD_DEF_STACK_NUM 0
-#endif
-
-// <o>Total Stack size [bytes] for user Threads with user-provided Stack size <0-1073741824:8>
-// <i> Defines the combined stack size for user threads with user-provided stack size.
-// <i> Applies to user threads with user-provided stack size and system provided memory for stack.
-// <i> Default: 0
-#ifndef OS_THREAD_USER_STACK_SIZE
-#define OS_THREAD_USER_STACK_SIZE 0
-#endif
-
-// </e>
-
-// <o>Default Thread Stack size [bytes] <96-1073741824:8>
-// <i> Defines stack size for threads with zero stack size specified.
-// <i> Default: 256
-#ifndef OS_STACK_SIZE
-#define OS_STACK_SIZE 256
-#endif
-
-// <o>Idle Thread Stack size [bytes] <72-1073741824:8>
-// <i> Defines stack size for Idle thread.
-// <i> Default: 256
-#ifndef OS_IDLE_THREAD_STACK_SIZE
-#define OS_IDLE_THREAD_STACK_SIZE 256
-#endif
-
-// <o>Idle Thread TrustZone Module Identifier
-// <i> Defines TrustZone Thread Context Management Identifier.
-// <i> Applies only to cores with TrustZone technology.
-// <i> Default: 0 (not used)
-#ifndef OS_IDLE_THREAD_TZ_MOD_ID
-#define OS_IDLE_THREAD_TZ_MOD_ID 0
-#endif
-
-// <q>Stack overrun checking
-// <i> Enables stack overrun check at thread switch.
-// <i> Enabling this option increases slightly the execution time of a thread switch.
-#ifndef OS_STACK_CHECK
-#define OS_STACK_CHECK 1
-#endif
-
-// <q>Stack usage watermark
-// <i> Initializes thread stack with watermark pattern for analyzing stack usage.
-// <i> Enabling this option increases significantly the execution time of thread creation.
-#ifndef OS_STACK_WATERMARK
-#define OS_STACK_WATERMARK 0
-#endif
-
-// <o>Processor mode for Thread execution
-// <0=> Unprivileged mode
-// <1=> Privileged mode
-// <i> Default: Privileged mode
-#ifndef OS_PRIVILEGE_MODE
-#define OS_PRIVILEGE_MODE 1
-#endif
-
-// </h>
-
-// <h>Timer Configuration
-// ======================
-
-// <e>Object specific Memory allocation
-// <i> Enables object specific memory allocation.
-#ifndef OS_TIMER_OBJ_MEM
-#define OS_TIMER_OBJ_MEM 0
-#endif
-
-// <o>Number of Timer objects <1-1000>
-// <i> Defines maximum number of objects that can be active at the same time.
-// <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_TIMER_NUM
-#define OS_TIMER_NUM 1
-#endif
-
-// </e>
-
-// <o>Timer Thread Priority
-// <8=> Low
-// <16=> Below Normal <24=> Normal <32=> Above Normal
-// <40=> High
-// <48=> Realtime
-// <i> Defines priority for timer thread
-// <i> Default: High
-#ifndef OS_TIMER_THREAD_PRIO
-#define OS_TIMER_THREAD_PRIO 40
-#endif
-
-// <o>Timer Thread Stack size [bytes] <0-1073741824:8>
-// <i> Defines stack size for Timer thread.
-// <i> May be set to 0 when timers are not used.
-// <i> Default: 256
-#ifndef OS_TIMER_THREAD_STACK_SIZE
-#define OS_TIMER_THREAD_STACK_SIZE 256
-#endif
-
-// <o>Timer Thread TrustZone Module Identifier
-// <i> Defines TrustZone Thread Context Management Identifier.
-// <i> Applies only to cores with TrustZone technology.
-// <i> Default: 0 (not used)
-#ifndef OS_TIMER_THREAD_TZ_MOD_ID
-#define OS_TIMER_THREAD_TZ_MOD_ID 0
-#endif
-
-// <o>Timer Callback Queue entries <0-256>
-// <i> Number of concurrent active timer callback functions.
-// <i> May be set to 0 when timers are not used.
-// <i> Default: 4
-#ifndef OS_TIMER_CB_QUEUE
-#define OS_TIMER_CB_QUEUE 4
-#endif
-
-// </h>
-
-// <h>Event Flags Configuration
-// ============================
-
-// <e>Object specific Memory allocation
-// <i> Enables object specific memory allocation.
-#ifndef OS_EVFLAGS_OBJ_MEM
-#define OS_EVFLAGS_OBJ_MEM 0
-#endif
-
-// <o>Number of Event Flags objects <1-1000>
-// <i> Defines maximum number of objects that can be active at the same time.
-// <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_EVFLAGS_NUM
-#define OS_EVFLAGS_NUM 1
-#endif
-
-// </e>
-
-// </h>
-
-// <h>Mutex Configuration
-// ======================
-
-// <e>Object specific Memory allocation
-// <i> Enables object specific memory allocation.
-#ifndef OS_MUTEX_OBJ_MEM
-#define OS_MUTEX_OBJ_MEM 0
-#endif
-
-// <o>Number of Mutex objects <1-1000>
-// <i> Defines maximum number of objects that can be active at the same time.
-// <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_MUTEX_NUM
-#define OS_MUTEX_NUM 1
-#endif
-
-// </e>
-
-// </h>
-
-// <h>Semaphore Configuration
-// ==========================
-
-// <e>Object specific Memory allocation
-// <i> Enables object specific memory allocation.
-#ifndef OS_SEMAPHORE_OBJ_MEM
-#define OS_SEMAPHORE_OBJ_MEM 0
-#endif
-
-// <o>Number of Semaphore objects <1-1000>
-// <i> Defines maximum number of objects that can be active at the same time.
-// <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_SEMAPHORE_NUM
-#define OS_SEMAPHORE_NUM 1
-#endif
-
-// </e>
-
-// </h>
-
-// <h>Memory Pool Configuration
-// ============================
-
-// <e>Object specific Memory allocation
-// <i> Enables object specific memory allocation.
-#ifndef OS_MEMPOOL_OBJ_MEM
-#define OS_MEMPOOL_OBJ_MEM 0
-#endif
-
-// <o>Number of Memory Pool objects <1-1000>
-// <i> Defines maximum number of objects that can be active at the same time.
-// <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_MEMPOOL_NUM
-#define OS_MEMPOOL_NUM 1
-#endif
-
-// <o>Data Storage Memory size [bytes] <0-1073741824:8>
-// <i> Defines the combined data storage memory size.
-// <i> Applies to objects with system provided memory for data storage.
-// <i> Default: 0
-#ifndef OS_MEMPOOL_DATA_SIZE
-#define OS_MEMPOOL_DATA_SIZE 0
-#endif
-
-// </e>
-
-// </h>
-
-// <h>Message Queue Configuration
-// ==============================
-
-// <e>Object specific Memory allocation
-// <i> Enables object specific memory allocation.
-#ifndef OS_MSGQUEUE_OBJ_MEM
-#define OS_MSGQUEUE_OBJ_MEM 0
-#endif
-
-// <o>Number of Message Queue objects <1-1000>
-// <i> Defines maximum number of objects that can be active at the same time.
-// <i> Applies to objects with system provided memory for control blocks.
-#ifndef OS_MSGQUEUE_NUM
-#define OS_MSGQUEUE_NUM 1
-#endif
-
-// <o>Data Storage Memory size [bytes] <0-1073741824:8>
-// <i> Defines the combined data storage memory size.
-// <i> Applies to objects with system provided memory for data storage.
-// <i> Default: 0
-#ifndef OS_MSGQUEUE_DATA_SIZE
-#define OS_MSGQUEUE_DATA_SIZE 0
-#endif
-
-// </e>
-
-// </h>
-
-// <h>Event Recorder Configuration
-// ===============================
-
-// <e>Global Initialization
-// <i> Initialize Event Recorder during 'osKernelInitialize'.
-#ifndef OS_EVR_INIT
-#define OS_EVR_INIT 0
-#endif
-
-// <q>Start recording
-// <i> Start event recording after initialization.
-#ifndef OS_EVR_START
-#define OS_EVR_START 1
-#endif
-
-// <h>Global Event Filter Setup
-// <i> Initial recording level applied to all components.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_LEVEL
-#define OS_EVR_LEVEL 0x00U
-#endif
-
-// <h>RTOS Event Filter Setup
-// <i> Recording levels for RTX components.
-// <i> Only applicable if events for the respective component are generated.
-
-// <h>Memory Management
-// <i> Recording level for Memory Management events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_MEMORY_LEVEL
-#define OS_EVR_MEMORY_LEVEL 0x01U
-#endif
-
-// <h>Kernel
-// <i> Recording level for Kernel events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_KERNEL_LEVEL
-#define OS_EVR_KERNEL_LEVEL 0x01U
-#endif
-
-// <h>Thread
-// <i> Recording level for Thread events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_THREAD_LEVEL
-#define OS_EVR_THREAD_LEVEL 0x05U
-#endif
-
-// <h>Generic Wait
-// <i> Recording level for Generic Wait events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_WAIT_LEVEL
-#define OS_EVR_WAIT_LEVEL 0x01U
-#endif
-
-// <h>Thread Flags
-// <i> Recording level for Thread Flags events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_THFLAGS_LEVEL
-#define OS_EVR_THFLAGS_LEVEL 0x01U
-#endif
-
-// <h>Event Flags
-// <i> Recording level for Event Flags events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_EVFLAGS_LEVEL
-#define OS_EVR_EVFLAGS_LEVEL 0x01U
-#endif
-
-// <h>Timer
-// <i> Recording level for Timer events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_TIMER_LEVEL
-#define OS_EVR_TIMER_LEVEL 0x01U
-#endif
-
-// <h>Mutex
-// <i> Recording level for Mutex events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_MUTEX_LEVEL
-#define OS_EVR_MUTEX_LEVEL 0x01U
-#endif
-
-// <h>Semaphore
-// <i> Recording level for Semaphore events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_SEMAPHORE_LEVEL
-#define OS_EVR_SEMAPHORE_LEVEL 0x01U
-#endif
-
-// <h>Memory Pool
-// <i> Recording level for Memory Pool events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_MEMPOOL_LEVEL
-#define OS_EVR_MEMPOOL_LEVEL 0x01U
-#endif
-
-// <h>Message Queue
-// <i> Recording level for Message Queue events.
-// <o.0>Error events
-// <o.1>API function call events
-// <o.2>Operation events
-// <o.3>Detailed operation events
-// </h>
-#ifndef OS_EVR_MSGQUEUE_LEVEL
-#define OS_EVR_MSGQUEUE_LEVEL 0x01U
-#endif
-
-// </h>
-
-// </e>
-
-// <h>RTOS Event Generation
-// <i> Enables event generation for RTX components (requires RTX source variant).
-
-// <q>Memory Management
-// <i> Enables Memory Management event generation.
-#ifndef OS_EVR_MEMORY
-#define OS_EVR_MEMORY 1
-#endif
-
-// <q>Kernel
-// <i> Enables Kernel event generation.
-#ifndef OS_EVR_KERNEL
-#define OS_EVR_KERNEL 1
-#endif
-
-// <q>Thread
-// <i> Enables Thread event generation.
-#ifndef OS_EVR_THREAD
-#define OS_EVR_THREAD 1
-#endif
-
-// <q>Generic Wait
-// <i> Enables Generic Wait event generation.
-#ifndef OS_EVR_WAIT
-#define OS_EVR_WAIT 1
-#endif
-
-// <q>Thread Flags
-// <i> Enables Thread Flags event generation.
-#ifndef OS_EVR_THFLAGS
-#define OS_EVR_THFLAGS 1
-#endif
-
-// <q>Event Flags
-// <i> Enables Event Flags event generation.
-#ifndef OS_EVR_EVFLAGS
-#define OS_EVR_EVFLAGS 1
-#endif
-
-// <q>Timer
-// <i> Enables Timer event generation.
-#ifndef OS_EVR_TIMER
-#define OS_EVR_TIMER 1
-#endif
-
-// <q>Mutex
-// <i> Enables Mutex event generation.
-#ifndef OS_EVR_MUTEX
-#define OS_EVR_MUTEX 1
-#endif
-
-// <q>Semaphore
-// <i> Enables Semaphore event generation.
-#ifndef OS_EVR_SEMAPHORE
-#define OS_EVR_SEMAPHORE 1
-#endif
-
-// <q>Memory Pool
-// <i> Enables Memory Pool event generation.
-#ifndef OS_EVR_MEMPOOL
-#define OS_EVR_MEMPOOL 1
-#endif
-
-// <q>Message Queue
-// <i> Enables Message Queue event generation.
-#ifndef OS_EVR_MSGQUEUE
-#define OS_EVR_MSGQUEUE 1
-#endif
-
-// </h>
-
-// </h>
-
-// Number of Threads which use standard C/C++ library libspace
-// (when thread specific memory allocation is not used).
-#if (OS_THREAD_OBJ_MEM == 0)
-#define OS_THREAD_LIBSPACE_NUM 4
-#else
-#define OS_THREAD_LIBSPACE_NUM OS_THREAD_NUM
-#endif
-
-//------------- <<< end of configuration section >>> ---------------------------
-
-#endif // RTX_CONFIG_H_
diff --git a/app_broker/CMSIS/RTOS2/RTX/Include/rtx_evr.h b/app_broker/CMSIS/RTOS2/RTX/Include/rtx_evr.h
deleted file mode 100644
index bcc82a6..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Include/rtx_evr.h
+++ /dev/null
@@ -1,1974 +0,0 @@
-/*
- * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * Project: CMSIS-RTOS RTX
- * Title: RTX Event Recorder definitions
- *
- * -----------------------------------------------------------------------------
- */
-
-#ifndef RTX_EVR_H_
-#define RTX_EVR_H_
-
-#include "cmsis_os2.h" // CMSIS RTOS API
-#include "RTX_Config.h" // RTX Configuration
-#include "rtx_os.h" // RTX OS definitions
-
-// Initial Thread configuration covered also Thread Flags and Generic Wait
-#ifndef OS_EVR_THFLAGS
-#define OS_EVR_THFLAGS OS_EVR_THREAD
-#endif
-#ifndef OS_EVR_WAIT
-#define OS_EVR_WAIT OS_EVR_THREAD
-#endif
-
-#ifdef _RTE_
-#include "RTE_Components.h"
-#endif
-
-#ifdef RTE_Compiler_EventRecorder
-
-//lint -emacro((835,845),EventID) [MISRA Note 13]
-
-#include "EventRecorder.h"
-#include "EventRecorderConf.h"
-
-#if ((defined(OS_EVR_INIT) && (OS_EVR_INIT != 0)) || (EVENT_TIMESTAMP_SOURCE == 2))
-#ifndef EVR_RTX_KERNEL_GET_STATE_DISABLE
-#define EVR_RTX_KERNEL_GET_STATE_DISABLE
-#endif
-#endif
-
-#if (EVENT_TIMESTAMP_SOURCE == 2)
-#ifndef EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE
-#define EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE
-#endif
-#ifndef EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE
-#define EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE
-#endif
-#endif
-
-/// RTOS component number
-#define EvtRtxMemoryNo (0xF0U)
-#define EvtRtxKernelNo (0xF1U)
-#define EvtRtxThreadNo (0xF2U)
-#define EvtRtxThreadFlagsNo (0xF4U)
-#define EvtRtxWaitNo (0xF3U)
-#define EvtRtxTimerNo (0xF6U)
-#define EvtRtxEventFlagsNo (0xF5U)
-#define EvtRtxMutexNo (0xF7U)
-#define EvtRtxSemaphoreNo (0xF8U)
-#define EvtRtxMemoryPoolNo (0xF9U)
-#define EvtRtxMessageQueueNo (0xFAU)
-
-#endif // RTE_Compiler_EventRecorder
-
-
-/// Extended Status codes
-#define osRtxErrorKernelNotReady (-7)
-#define osRtxErrorKernelNotRunning (-8)
-#define osRtxErrorInvalidControlBlock (-9)
-#define osRtxErrorInvalidDataMemory (-10)
-#define osRtxErrorInvalidThreadStack (-11)
-#define osRtxErrorInvalidPriority (-12)
-#define osRtxErrorThreadNotJoinable (-13)
-#define osRtxErrorMutexNotOwned (-14)
-#define osRtxErrorMutexNotLocked (-15)
-#define osRtxErrorMutexLockLimit (-16)
-#define osRtxErrorSemaphoreCountLimit (-17)
-#define osRtxErrorTZ_InitContext_S (-18)
-#define osRtxErrorTZ_AllocContext_S (-19)
-#define osRtxErrorTZ_FreeContext_S (-20)
-#define osRtxErrorTZ_LoadContext_S (-21)
-#define osRtxErrorTZ_SaveContext_S (-22)
-
-
-// ==== Memory Events ====
-
-/**
- \brief Event on memory initialization (Op)
- \param[in] mem pointer to memory pool.
- \param[in] size size of a memory pool in bytes.
- \param[in] result execution status: 1 - success, 0 - failure.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_INIT_DISABLE))
-extern void EvrRtxMemoryInit (void *mem, uint32_t size, uint32_t result);
-#else
-#define EvrRtxMemoryInit(mem, size, result)
-#endif
-
-/**
- \brief Event on memory allocate (Op)
- \param[in] mem pointer to memory pool.
- \param[in] size size of a memory block in bytes.
- \param[in] type memory block type: 0 - generic, 1 - control block.
- \param[in] block pointer to allocated memory block or NULL in case of no memory is available.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_ALLOC_DISABLE))
-extern void EvrRtxMemoryAlloc (void *mem, uint32_t size, uint32_t type, void *block);
-#else
-#define EvrRtxMemoryAlloc(mem, size, type, block)
-#endif
-
-/**
- \brief Event on memory free (Op)
- \param[in] mem pointer to memory pool.
- \param[in] block memory block to be returned to the memory pool.
- \param[in] result execution status: 1 - success, 0 - failure.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_FREE_DISABLE))
-extern void EvrRtxMemoryFree (void *mem, void *block, uint32_t result);
-#else
-#define EvrRtxMemoryFree(mem, block, result)
-#endif
-
-/**
- \brief Event on memory block initialization (Op)
- \param[in] mp_info memory pool info.
- \param[in] block_count maximum number of memory blocks in memory pool.
- \param[in] block_size size of a memory block in bytes.
- \param[in] block_mem pointer to memory for block storage.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_INIT_DISABLE))
-extern void EvrRtxMemoryBlockInit (osRtxMpInfo_t *mp_info, uint32_t block_count, uint32_t block_size, void *block_mem);
-#else
-#define EvrRtxMemoryBlockInit(mp_info, block_count, block_size, block_mem)
-#endif
-
-/**
- \brief Event on memory block alloc (Op)
- \param[in] mp_info memory pool info.
- \param[in] block address of the allocated memory block or NULL in case of no memory is available.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_ALLOC_DISABLE))
-extern void EvrRtxMemoryBlockAlloc (osRtxMpInfo_t *mp_info, void *block);
-#else
-#define EvrRtxMemoryBlockAlloc(mp_info, block)
-#endif
-
-/**
- \brief Event on memory block free (Op)
- \param[in] mp_info memory pool info.
- \param[in] block address of the allocated memory block to be returned to the memory pool.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMORY != 0) && !defined(EVR_RTX_MEMORY_BLOCK_FREE_DISABLE))
-extern void EvrRtxMemoryBlockFree (osRtxMpInfo_t *mp_info, void *block, int32_t status);
-#else
-#define EvrRtxMemoryBlockFree(mp_info, block, status)
-#endif
-
-
-// ==== Kernel Events ====
-
-/**
- \brief Event on RTOS kernel error (Error)
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_ERROR_DISABLE))
-extern void EvrRtxKernelError (int32_t status);
-#else
-#define EvrRtxKernelError(status)
-#endif
-
-/**
- \brief Event on RTOS kernel initialize (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INITIALIZE_DISABLE))
-extern void EvrRtxKernelInitialize (void);
-#else
-#define EvrRtxKernelInitialize()
-#endif
-
-/**
- \brief Event on successful RTOS kernel initialize (Op)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INITIALIZED_DISABLE))
-extern void EvrRtxKernelInitialized (void);
-#else
-#define EvrRtxKernelInitialized()
-#endif
-
-/**
- \brief Event on RTOS kernel information retrieve (API)
- \param[in] version pointer to buffer for retrieving version information.
- \param[in] id_buf pointer to buffer for retrieving kernel identification string.
- \param[in] id_size size of buffer for kernel identification string.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_INFO_DISABLE))
-extern void EvrRtxKernelGetInfo (osVersion_t *version, char *id_buf, uint32_t id_size);
-#else
-#define EvrRtxKernelGetInfo(version, id_buf, id_size)
-#endif
-
-/**
- \brief Event on successful RTOS kernel information retrieve (Op)
- \param[in] version pointer to buffer for retrieving version information.
- \param[in] id_buf pointer to buffer for retrieving kernel identification string.
- \param[in] id_size size of buffer for kernel identification string.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_INFO_RETRIEVED_DISABLE))
-extern void EvrRtxKernelInfoRetrieved (const osVersion_t *version, const char *id_buf, uint32_t id_size);
-#else
-#define EvrRtxKernelInfoRetrieved(version, id_buf, id_size)
-#endif
-
-/**
- \brief Event on current RTOS Kernel state retrieve (API)
- \param[in] state current RTOS Kernel state.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_STATE_DISABLE))
-extern void EvrRtxKernelGetState (osKernelState_t state);
-#else
-#define EvrRtxKernelGetState(state)
-#endif
-
-/**
- \brief Event on RTOS Kernel scheduler start (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_START_DISABLE))
-extern void EvrRtxKernelStart (void);
-#else
-#define EvrRtxKernelStart()
-#endif
-
-/**
- \brief Event on successful RTOS Kernel scheduler start (Op)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_STARTED_DISABLE))
-extern void EvrRtxKernelStarted (void);
-#else
-#define EvrRtxKernelStarted()
-#endif
-
-/**
- \brief Event on RTOS Kernel scheduler lock (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCK_DISABLE))
-extern void EvrRtxKernelLock (void);
-#else
-#define EvrRtxKernelLock()
-#endif
-
-/**
- \brief Event on successful RTOS Kernel scheduler lock (Op)
- \param[in] lock previous lock state (1 - locked, 0 - not locked).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCKED_DISABLE))
-extern void EvrRtxKernelLocked (int32_t lock);
-#else
-#define EvrRtxKernelLocked(lock)
-#endif
-
-/**
- \brief Event on RTOS Kernel scheduler unlock (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_UNLOCK_DISABLE))
-extern void EvrRtxKernelUnlock (void);
-#else
-#define EvrRtxKernelUnlock()
-#endif
-
-/**
- \brief Event on successful RTOS Kernel scheduler unlock (Op)
- \param[in] lock previous lock state (1 - locked, 0 - not locked).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_UNLOCKED_DISABLE))
-extern void EvrRtxKernelUnlocked (int32_t lock);
-#else
-#define EvrRtxKernelUnlocked(lock)
-#endif
-
-/**
- \brief Event on RTOS Kernel scheduler lock state restore (API)
- \param[in] lock lock state obtained by \ref osKernelLock or \ref osKernelUnlock.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESTORE_LOCK_DISABLE))
-extern void EvrRtxKernelRestoreLock (int32_t lock);
-#else
-#define EvrRtxKernelRestoreLock(lock)
-#endif
-
-/**
- \brief Event on successful RTOS Kernel scheduler lock state restore (Op)
- \param[in] lock new lock state (1 - locked, 0 - not locked).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_LOCK_RESTORED_DISABLE))
-extern void EvrRtxKernelLockRestored (int32_t lock);
-#else
-#define EvrRtxKernelLockRestored(lock)
-#endif
-
-/**
- \brief Event on RTOS Kernel scheduler suspend (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_SUSPEND_DISABLE))
-extern void EvrRtxKernelSuspend (void);
-#else
-#define EvrRtxKernelSuspend()
-#endif
-
-/**
- \brief Event on successful RTOS Kernel scheduler suspend (Op)
- \param[in] sleep_ticks time in ticks, for how long the system can sleep or power-down.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_SUSPENDED_DISABLE))
-extern void EvrRtxKernelSuspended (uint32_t sleep_ticks);
-#else
-#define EvrRtxKernelSuspended(sleep_ticks)
-#endif
-
-/**
- \brief Event on RTOS Kernel scheduler resume (API)
- \param[in] sleep_ticks time in ticks, for how long the system was in sleep or power-down mode.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESUME_DISABLE))
-extern void EvrRtxKernelResume (uint32_t sleep_ticks);
-#else
-#define EvrRtxKernelResume(sleep_ticks)
-#endif
-
-/**
- \brief Event on successful RTOS Kernel scheduler resume (Op)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_RESUMED_DISABLE))
-extern void EvrRtxKernelResumed (void);
-#else
-#define EvrRtxKernelResumed()
-#endif
-
-/**
- \brief Event on RTOS kernel tick count retrieve (API)
- \param[in] count RTOS kernel current tick count.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_TICK_COUNT_DISABLE))
-extern void EvrRtxKernelGetTickCount (uint32_t count);
-#else
-#define EvrRtxKernelGetTickCount(count)
-#endif
-
-/**
- \brief Event on RTOS kernel tick frequency retrieve (API)
- \param[in] freq frequency of the kernel tick.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_TICK_FREQ_DISABLE))
-extern void EvrRtxKernelGetTickFreq (uint32_t freq);
-#else
-#define EvrRtxKernelGetTickFreq(freq)
-#endif
-
-/**
- \brief Event on RTOS kernel system timer count retrieve (API)
- \param[in] count RTOS kernel current system timer count as 32-bit value.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE))
-extern void EvrRtxKernelGetSysTimerCount (uint32_t count);
-#else
-#define EvrRtxKernelGetSysTimerCount(count)
-#endif
-
-/**
- \brief Event on RTOS kernel system timer frequency retrieve (API)
- \param[in] freq frequency of the system timer.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_KERNEL != 0) && !defined(EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE))
-extern void EvrRtxKernelGetSysTimerFreq (uint32_t freq);
-#else
-#define EvrRtxKernelGetSysTimerFreq(freq)
-#endif
-
-
-// ==== Thread Events ====
-
-/**
- \brief Event on thread error (Error)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId or NULL when ID is unknown.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_ERROR_DISABLE))
-extern void EvrRtxThreadError (osThreadId_t thread_id, int32_t status);
-#else
-#define EvrRtxThreadError(thread_id, status)
-#endif
-
-/**
- \brief Event on thread create and intialize (API)
- \param[in] func thread function.
- \param[in] argument pointer that is passed to the thread function as start argument.
- \param[in] attr thread attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_NEW_DISABLE))
-extern void EvrRtxThreadNew (osThreadFunc_t func, void *argument, const osThreadAttr_t *attr);
-#else
-#define EvrRtxThreadNew(func, argument, attr)
-#endif
-
-/**
- \brief Event on successful thread create (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] thread_addr thread entry address.
- \param[in] name pointer to thread object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_CREATED_DISABLE))
-extern void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr, const char *name);
-#else
-#define EvrRtxThreadCreated(thread_id, thread_addr, name)
-#endif
-
-/**
- \brief Event on thread name retrieve (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] name pointer to thread object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_NAME_DISABLE))
-extern void EvrRtxThreadGetName (osThreadId_t thread_id, const char *name);
-#else
-#define EvrRtxThreadGetName(thread_id, name)
-#endif
-
-/**
- \brief Event on current running thread ID retrieve (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_ID_DISABLE))
-extern void EvrRtxThreadGetId (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadGetId(thread_id)
-#endif
-
-/**
- \brief Event on thread state retrieve (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] state current thread state of the specified thread.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STATE_DISABLE))
-extern void EvrRtxThreadGetState (osThreadId_t thread_id, osThreadState_t state);
-#else
-#define EvrRtxThreadGetState(thread_id, state)
-#endif
-
-/**
- \brief Event on thread stack size retrieve (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] stack_size stack size in bytes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STACK_SIZE_DISABLE))
-extern void EvrRtxThreadGetStackSize (osThreadId_t thread_id, uint32_t stack_size);
-#else
-#define EvrRtxThreadGetStackSize(thread_id, stack_size)
-#endif
-
-/**
- \brief Event on available stack space retrieve (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] stack_space remaining stack space in bytes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_STACK_SPACE_DISABLE))
-extern void EvrRtxThreadGetStackSpace (osThreadId_t thread_id, uint32_t stack_space);
-#else
-#define EvrRtxThreadGetStackSpace(thread_id, stack_space)
-#endif
-
-/**
- \brief Event on thread priority set (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] priority new priority value for the thread function.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SET_PRIORITY_DISABLE))
-extern void EvrRtxThreadSetPriority (osThreadId_t thread_id, osPriority_t priority);
-#else
-#define EvrRtxThreadSetPriority(thread_id, priority)
-#endif
-
-/**
- \brief Event on thread priority updated (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] priority new priority value for the thread function.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_PRIORITY_UPDATED_DISABLE))
-extern void EvrRtxThreadPriorityUpdated (osThreadId_t thread_id, osPriority_t priority);
-#else
-#define EvrRtxThreadPriorityUpdated(thread_id, priority)
-#endif
-
-/**
- \brief Event on thread priority retrieve (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] priority current priority value of the specified thread.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_PRIORITY_DISABLE))
-extern void EvrRtxThreadGetPriority (osThreadId_t thread_id, osPriority_t priority);
-#else
-#define EvrRtxThreadGetPriority(thread_id, priority)
-#endif
-
-/**
- \brief Event on thread yield (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_YIELD_DISABLE))
-extern void EvrRtxThreadYield (void);
-#else
-#define EvrRtxThreadYield()
-#endif
-
-/**
- \brief Event on thread suspend (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SUSPEND_DISABLE))
-extern void EvrRtxThreadSuspend (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadSuspend(thread_id)
-#endif
-
-/**
- \brief Event on successful thread suspend (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SUSPENDED_DISABLE))
-extern void EvrRtxThreadSuspended (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadSuspended(thread_id)
-#endif
-
-/**
- \brief Event on thread resume (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_RESUME_DISABLE))
-extern void EvrRtxThreadResume (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadResume(thread_id)
-#endif
-
-/**
- \brief Event on successful thread resume (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_RESUMED_DISABLE))
-extern void EvrRtxThreadResumed (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadResumed(thread_id)
-#endif
-
-/**
- \brief Event on thread detach (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DETACH_DISABLE))
-extern void EvrRtxThreadDetach (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadDetach(thread_id)
-#endif
-
-/**
- \brief Event on successful thread detach (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DETACHED_DISABLE))
-extern void EvrRtxThreadDetached (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadDetached(thread_id)
-#endif
-
-/**
- \brief Event on thread join (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOIN_DISABLE))
-extern void EvrRtxThreadJoin (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadJoin(thread_id)
-#endif
-
-/**
- \brief Event on pending thread join (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOIN_PENDING_DISABLE))
-extern void EvrRtxThreadJoinPending (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadJoinPending(thread_id)
-#endif
-
-/**
- \brief Event on successful thread join (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_JOINED_DISABLE))
-extern void EvrRtxThreadJoined (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadJoined(thread_id)
-#endif
-
-/**
- \brief Event on thread execution block (Detail)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_BLOCKED_DISABLE))
-extern void EvrRtxThreadBlocked (osThreadId_t thread_id, uint32_t timeout);
-#else
-#define EvrRtxThreadBlocked(thread_id, timeout)
-#endif
-
-/**
- \brief Event on thread execution unblock (Detail)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] ret_val extended execution status of the thread.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_UNBLOCKED_DISABLE))
-extern void EvrRtxThreadUnblocked (osThreadId_t thread_id, uint32_t ret_val);
-#else
-#define EvrRtxThreadUnblocked(thread_id, ret_val)
-#endif
-
-/**
- \brief Event on running thread pre-emption (Detail)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_PREEMPTED_DISABLE))
-extern void EvrRtxThreadPreempted (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadPreempted(thread_id)
-#endif
-
-/**
- \brief Event on running thread switch (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_SWITCHED_DISABLE))
-extern void EvrRtxThreadSwitched (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadSwitched(thread_id)
-#endif
-
-/**
- \brief Event on thread exit (API)
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_EXIT_DISABLE))
-extern void EvrRtxThreadExit (void);
-#else
-#define EvrRtxThreadExit()
-#endif
-
-/**
- \brief Event on thread terminate (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_TERMINATE_DISABLE))
-extern void EvrRtxThreadTerminate (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadTerminate(thread_id)
-#endif
-
-/**
- \brief Event on successful thread terminate (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_DESTROYED_DISABLE))
-extern void EvrRtxThreadDestroyed (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadDestroyed(thread_id)
-#endif
-
-/**
- \brief Event on active thread count retrieve (API)
- \param[in] count number of active threads.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_GET_COUNT_DISABLE))
-extern void EvrRtxThreadGetCount (uint32_t count);
-#else
-#define EvrRtxThreadGetCount(count)
-#endif
-
-/**
- \brief Event on active threads enumerate (API)
- \param[in] thread_array pointer to array for retrieving thread IDs.
- \param[in] array_items maximum number of items in array for retrieving thread IDs.
- \param[in] count number of enumerated threads.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_ENUMERATE_DISABLE))
-extern void EvrRtxThreadEnumerate (osThreadId_t *thread_array, uint32_t array_items, uint32_t count);
-#else
-#define EvrRtxThreadEnumerate(thread_array, array_items, count)
-#endif
-
-
-// ==== Thread Flags Events ====
-
-/**
- \brief Event on thread flags error (Error)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId or NULL when ID is unknown.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_ERROR_DISABLE))
-extern void EvrRtxThreadFlagsError (osThreadId_t thread_id, int32_t status);
-#else
-#define EvrRtxThreadFlagsError(thread_id, status)
-#endif
-
-/**
- \brief Event on thread flags set (API)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] flags flags of the thread that shall be set.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_SET_DISABLE))
-extern void EvrRtxThreadFlagsSet (osThreadId_t thread_id, uint32_t flags);
-#else
-#define EvrRtxThreadFlagsSet(thread_id, flags)
-#endif
-
-/**
- \brief Event on successful thread flags set (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
- \param[in] thread_flags thread flags after setting.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_SET_DONE_DISABLE))
-extern void EvrRtxThreadFlagsSetDone (osThreadId_t thread_id, uint32_t thread_flags);
-#else
-#define EvrRtxThreadFlagsSetDone(thread_id, thread_flags)
-#endif
-
-/**
- \brief Event on thread flags clear (API)
- \param[in] flags flags of the thread that shall be cleared.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_CLEAR_DISABLE))
-extern void EvrRtxThreadFlagsClear (uint32_t flags);
-#else
-#define EvrRtxThreadFlagsClear(flags)
-#endif
-
-/**
- \brief Event on successful thread flags clear (Op)
- \param[in] thread_flags thread flags before clearing.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_CLEAR_DONE_DISABLE))
-extern void EvrRtxThreadFlagsClearDone (uint32_t thread_flags);
-#else
-#define EvrRtxThreadFlagsClearDone(thread_flags)
-#endif
-
-/**
- \brief Event on thread flags retrieve (API)
- \param[in] thread_flags current thread flags.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_GET_DISABLE))
-extern void EvrRtxThreadFlagsGet (uint32_t thread_flags);
-#else
-#define EvrRtxThreadFlagsGet(thread_flags)
-#endif
-
-/**
- \brief Event on wait for thread flags (API)
- \param[in] flags flags to wait for.
- \param[in] options flags options (osFlagsXxxx).
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_DISABLE))
-extern void EvrRtxThreadFlagsWait (uint32_t flags, uint32_t options, uint32_t timeout);
-#else
-#define EvrRtxThreadFlagsWait(flags, options, timeout)
-#endif
-
-/**
- \brief Event on pending wait for thread flags (Op)
- \param[in] flags flags to wait for.
- \param[in] options flags options (osFlagsXxxx).
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_PENDING_DISABLE))
-extern void EvrRtxThreadFlagsWaitPending (uint32_t flags, uint32_t options, uint32_t timeout);
-#else
-#define EvrRtxThreadFlagsWaitPending(flags, options, timeout)
-#endif
-
-/**
- \brief Event on wait timeout for thread flags (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_TIMEOUT_DISABLE))
-extern void EvrRtxThreadFlagsWaitTimeout (osThreadId_t thread_id);
-#else
-#define EvrRtxThreadFlagsWaitTimeout(thread_id)
-#endif
-
-/**
- \brief Event on successful wait for thread flags (Op)
- \param[in] flags flags to wait for.
- \param[in] options flags options (osFlagsXxxx).
- \param[in] thread_flags thread flags before clearing.
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_COMPLETED_DISABLE))
-extern void EvrRtxThreadFlagsWaitCompleted (uint32_t flags, uint32_t options, uint32_t thread_flags, osThreadId_t thread_id);
-#else
-#define EvrRtxThreadFlagsWaitCompleted(flags, options, thread_flags, thread_id)
-#endif
-
-/**
- \brief Event on unsuccessful wait for thread flags (Op)
- \param[in] flags flags to wait for.
- \param[in] options flags options (osFlagsXxxx).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THFLAGS != 0) && !defined(EVR_RTX_THREAD_FLAGS_WAIT_NOT_COMPLETED_DISABLE))
-extern void EvrRtxThreadFlagsWaitNotCompleted (uint32_t flags, uint32_t options);
-#else
-#define EvrRtxThreadFlagsWaitNotCompleted(flags, options)
-#endif
-
-
-// ==== Generic Wait Events ====
-
-/**
- \brief Event on delay error (Error)
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_ERROR_DISABLE))
-extern void EvrRtxDelayError (int32_t status);
-#else
-#define EvrRtxDelayError(status)
-#endif
-
-/**
- \brief Event on delay for specified time (API)
- \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_DISABLE))
-extern void EvrRtxDelay (uint32_t ticks);
-#else
-#define EvrRtxDelay(ticks)
-#endif
-
-/**
- \brief Event on delay until specified time (API)
- \param[in] ticks absolute time in ticks.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_UNTIL_DISABLE))
-extern void EvrRtxDelayUntil (uint32_t ticks);
-#else
-#define EvrRtxDelayUntil(ticks)
-#endif
-
-/**
- \brief Event on delay started (Op)
- \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_STARTED_DISABLE))
-extern void EvrRtxDelayStarted (uint32_t ticks);
-#else
-#define EvrRtxDelayStarted(ticks)
-#endif
-
-/**
- \brief Event on delay until specified time started (Op)
- \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_UNTIL_STARTED_DISABLE))
-extern void EvrRtxDelayUntilStarted (uint32_t ticks);
-#else
-#define EvrRtxDelayUntilStarted(ticks)
-#endif
-
-/**
- \brief Event on delay completed (Op)
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_WAIT != 0) && !defined(EVR_RTX_DELAY_COMPLETED_DISABLE))
-extern void EvrRtxDelayCompleted (osThreadId_t thread_id);
-#else
-#define EvrRtxDelayCompleted(thread_id)
-#endif
-
-
-// ==== Timer Events ====
-
-/**
- \brief Event on timer error (Error)
- \param[in] timer_id timer ID obtained by \ref osTimerNew or NULL when ID is unknown.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_ERROR_DISABLE))
-extern void EvrRtxTimerError (osTimerId_t timer_id, int32_t status);
-#else
-#define EvrRtxTimerError(timer_id, status)
-#endif
-
-/**
- \brief Event on timer callback call (Op)
- \param[in] func start address of a timer call back function.
- \param[in] argument argument to the timer call back function.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_CALLBACK_DISABLE))
-extern void EvrRtxTimerCallback (osTimerFunc_t func, void *argument);
-#else
-#define EvrRtxTimerCallback(func, argument)
-#endif
-
-/**
- \brief Event on timer create and initialize (API)
- \param[in] func start address of a timer call back function.
- \param[in] type osTimerOnce for one-shot or osTimerPeriodic for periodic behavior.
- \param[in] argument argument to the timer call back function.
- \param[in] attr timer attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_NEW_DISABLE))
-extern void EvrRtxTimerNew (osTimerFunc_t func, osTimerType_t type, void *argument, const osTimerAttr_t *attr);
-#else
-#define EvrRtxTimerNew(func, type, argument, attr)
-#endif
-
-/**
- \brief Event on successful timer create (Op)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
- \param[in] name pointer to timer object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_CREATED_DISABLE))
-extern void EvrRtxTimerCreated (osTimerId_t timer_id, const char *name);
-#else
-#define EvrRtxTimerCreated(timer_id, name)
-#endif
-
-/**
- \brief Event on timer name retrieve (API)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
- \param[in] name pointer to timer object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_GET_NAME_DISABLE))
-extern void EvrRtxTimerGetName (osTimerId_t timer_id, const char *name);
-#else
-#define EvrRtxTimerGetName(timer_id, name)
-#endif
-
-/**
- \brief Event on timer start (API)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
- \param[in] ticks \ref CMSIS_RTOS_TimeOutValue "time ticks" value of the timer.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_START_DISABLE))
-extern void EvrRtxTimerStart (osTimerId_t timer_id, uint32_t ticks);
-#else
-#define EvrRtxTimerStart(timer_id, ticks)
-#endif
-
-/**
- \brief Event on successful timer start (Op)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STARTED_DISABLE))
-extern void EvrRtxTimerStarted (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerStarted(timer_id)
-#endif
-
-/**
- \brief Event on timer stop (API)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STOP_DISABLE))
-extern void EvrRtxTimerStop (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerStop(timer_id)
-#endif
-
-/**
- \brief Event on successful timer stop (Op)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_STOPPED_DISABLE))
-extern void EvrRtxTimerStopped (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerStopped(timer_id)
-#endif
-
-/**
- \brief Event on timer running state check (API)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
- \param[in] running running state: 0 not running, 1 running.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_IS_RUNNING_DISABLE))
-extern void EvrRtxTimerIsRunning (osTimerId_t timer_id, uint32_t running);
-#else
-#define EvrRtxTimerIsRunning(timer_id, running)
-#endif
-
-/**
- \brief Event on timer delete (API)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_DELETE_DISABLE))
-extern void EvrRtxTimerDelete (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerDelete(timer_id)
-#endif
-
-/**
- \brief Event on successful timer delete (Op)
- \param[in] timer_id timer ID obtained by \ref osTimerNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_TIMER != 0) && !defined(EVR_RTX_TIMER_DESTROYED_DISABLE))
-extern void EvrRtxTimerDestroyed (osTimerId_t timer_id);
-#else
-#define EvrRtxTimerDestroyed(timer_id)
-#endif
-
-
-// ==== Event Flags Events ====
-
-/**
- \brief Event on event flags error (Error)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew or NULL when ID is unknown.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_ERROR_DISABLE))
-extern void EvrRtxEventFlagsError (osEventFlagsId_t ef_id, int32_t status);
-#else
-#define EvrRtxEventFlagsError(ef_id, status)
-#endif
-
-/**
- \brief Event on event flags create and initialize (API)
- \param[in] attr event flags attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_NEW_DISABLE))
-extern void EvrRtxEventFlagsNew (const osEventFlagsAttr_t *attr);
-#else
-#define EvrRtxEventFlagsNew(attr)
-#endif
-
-/**
- \brief Event on successful event flags create (Op)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] name pointer to event flags object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CREATED_DISABLE))
-extern void EvrRtxEventFlagsCreated (osEventFlagsId_t ef_id, const char *name);
-#else
-#define EvrRtxEventFlagsCreated(ef_id, name)
-#endif
-
-/**
- \brief Event on event flags name retrieve (API)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] name pointer to event flags object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_GET_NAME_DISABLE))
-extern void EvrRtxEventFlagsGetName (osEventFlagsId_t ef_id, const char *name);
-#else
-#define EvrRtxEventFlagsGetName(ef_id, name)
-#endif
-
-/**
- \brief Event on event flags set (API)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] flags flags that shall be set.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_SET_DISABLE))
-extern void EvrRtxEventFlagsSet (osEventFlagsId_t ef_id, uint32_t flags);
-#else
-#define EvrRtxEventFlagsSet(ef_id, flags)
-#endif
-
-/**
- \brief Event on successful event flags set (Op)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] event_flags event flags after setting.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_SET_DONE_DISABLE))
-extern void EvrRtxEventFlagsSetDone (osEventFlagsId_t ef_id, uint32_t event_flags);
-#else
-#define EvrRtxEventFlagsSetDone(ef_id, event_flags)
-#endif
-
-/**
- \brief Event on event flags clear (API)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] flags flags that shall be cleared.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CLEAR_DISABLE))
-extern void EvrRtxEventFlagsClear (osEventFlagsId_t ef_id, uint32_t flags);
-#else
-#define EvrRtxEventFlagsClear(ef_id, flags)
-#endif
-
-/**
- \brief Event on successful event flags clear (Op)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] event_flags event flags before clearing.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_CLEAR_DONE_DISABLE))
-extern void EvrRtxEventFlagsClearDone (osEventFlagsId_t ef_id, uint32_t event_flags);
-#else
-#define EvrRtxEventFlagsClearDone(ef_id, event_flags)
-#endif
-
-/**
- \brief Event on event flags retrieve (API)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] event_flags current event flags.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_GET_DISABLE))
-extern void EvrRtxEventFlagsGet (osEventFlagsId_t ef_id, uint32_t event_flags);
-#else
-#define EvrRtxEventFlagsGet(ef_id, event_flags)
-#endif
-
-/**
- \brief Event on wait for event flags (API)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] flags flags to wait for.
- \param[in] options flags options (osFlagsXxxx).
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_DISABLE))
-extern void EvrRtxEventFlagsWait (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout);
-#else
-#define EvrRtxEventFlagsWait(ef_id, flags, options, timeout)
-#endif
-
-/**
- \brief Event on pending wait for event flags (Op)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] flags flags to wait for.
- \param[in] options flags options (osFlagsXxxx).
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_PENDING_DISABLE))
-extern void EvrRtxEventFlagsWaitPending (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout);
-#else
-#define EvrRtxEventFlagsWaitPending(ef_id, flags, options, timeout)
-#endif
-
-/**
- \brief Event on wait timeout for event flags (Op)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_TIMEOUT_DISABLE))
-extern void EvrRtxEventFlagsWaitTimeout (osEventFlagsId_t ef_id);
-#else
-#define EvrRtxEventFlagsWaitTimeout(ef_id)
-#endif
-
-/**
- \brief Event on successful wait for event flags (Op)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] flags flags to wait for.
- \param[in] options flags options (osFlagsXxxx).
- \param[in] event_flags event flags before clearing or 0 if specified flags have not been set.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_COMPLETED_DISABLE))
-extern void EvrRtxEventFlagsWaitCompleted (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t event_flags);
-#else
-#define EvrRtxEventFlagsWaitCompleted(ef_id, flags, options, event_flags)
-#endif
-
-/**
- \brief Event on unsuccessful wait for event flags (Op)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
- \param[in] flags flags to wait for.
- \param[in] options flags options (osFlagsXxxx).
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_WAIT_NOT_COMPLETED_DISABLE))
-extern void EvrRtxEventFlagsWaitNotCompleted (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options);
-#else
-#define EvrRtxEventFlagsWaitNotCompleted(ef_id, flags, options)
-#endif
-
-/**
- \brief Event on event flags delete (API)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_DELETE_DISABLE))
-extern void EvrRtxEventFlagsDelete (osEventFlagsId_t ef_id);
-#else
-#define EvrRtxEventFlagsDelete(ef_id)
-#endif
-
-/**
- \brief Event on successful event flags delete (Op)
- \param[in] ef_id event flags ID obtained by \ref osEventFlagsNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_EVFLAGS != 0) && !defined(EVR_RTX_EVENT_FLAGS_DESTROYED_DISABLE))
-extern void EvrRtxEventFlagsDestroyed (osEventFlagsId_t ef_id);
-#else
-#define EvrRtxEventFlagsDestroyed(ef_id)
-#endif
-
-
-// ==== Mutex Events ====
-
-/**
- \brief Event on mutex error (Error)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew or NULL when ID is unknown.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ERROR_DISABLE))
-extern void EvrRtxMutexError (osMutexId_t mutex_id, int32_t status);
-#else
-#define EvrRtxMutexError(mutex_id, status)
-#endif
-
-/**
- \brief Event on mutex create and initialize (API)
- \param[in] attr mutex attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_NEW_DISABLE))
-extern void EvrRtxMutexNew (const osMutexAttr_t *attr);
-#else
-#define EvrRtxMutexNew(attr)
-#endif
-
-/**
- \brief Event on successful mutex create (Op)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
- \param[in] name pointer to mutex object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_CREATED_DISABLE))
-extern void EvrRtxMutexCreated (osMutexId_t mutex_id, const char *name);
-#else
-#define EvrRtxMutexCreated(mutex_id, name)
-#endif
-
-/**
- \brief Event on mutex name retrieve (API)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
- \param[in] name pointer to mutex object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_GET_NAME_DISABLE))
-extern void EvrRtxMutexGetName (osMutexId_t mutex_id, const char *name);
-#else
-#define EvrRtxMutexGetName(mutex_id, name)
-#endif
-
-/**
- \brief Event on mutex acquire (API)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_DISABLE))
-extern void EvrRtxMutexAcquire (osMutexId_t mutex_id, uint32_t timeout);
-#else
-#define EvrRtxMutexAcquire(mutex_id, timeout)
-#endif
-
-/**
- \brief Event on pending mutex acquire (Op)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_PENDING_DISABLE))
-extern void EvrRtxMutexAcquirePending (osMutexId_t mutex_id, uint32_t timeout);
-#else
-#define EvrRtxMutexAcquirePending(mutex_id, timeout);
-#endif
-
-/**
- \brief Event on mutex acquire timeout (Op)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRE_TIMEOUT_DISABLE))
-extern void EvrRtxMutexAcquireTimeout (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexAcquireTimeout(mutex_id)
-#endif
-
-/**
- \brief Event on successful mutex acquire (Op)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
- \param[in] lock current number of times mutex object is locked.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_ACQUIRED_DISABLE))
-extern void EvrRtxMutexAcquired (osMutexId_t mutex_id, uint32_t lock);
-#else
-#define EvrRtxMutexAcquired(mutex_id, lock)
-#endif
-
-/**
- \brief Event on unsuccessful mutex acquire (Op)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_NOT_ACQUIRED_DISABLE))
-extern void EvrRtxMutexNotAcquired (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexNotAcquired(mutex_id)
-#endif
-
-/**
- \brief Event on mutex release (API)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_RELEASE_DISABLE))
-extern void EvrRtxMutexRelease (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexRelease(mutex_id)
-#endif
-
-/**
- \brief Event on successful mutex release (Op)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
- \param[in] lock current number of times mutex object is locked.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_RELEASED_DISABLE))
-extern void EvrRtxMutexReleased (osMutexId_t mutex_id, uint32_t lock);
-#else
-#define EvrRtxMutexReleased(mutex_id, lock)
-#endif
-
-/**
- \brief Event on mutex owner retrieve (API)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
- \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_GET_OWNER_DISABLE))
-extern void EvrRtxMutexGetOwner (osMutexId_t mutex_id, osThreadId_t thread_id);
-#else
-#define EvrRtxMutexGetOwner(mutex_id, thread_id)
-#endif
-
-/**
- \brief Event on mutex delete (API)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_DELETE_DISABLE))
-extern void EvrRtxMutexDelete (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexDelete(mutex_id)
-#endif
-
-/**
- \brief Event on successful mutex delete (Op)
- \param[in] mutex_id mutex ID obtained by \ref osMutexNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MUTEX != 0) && !defined(EVR_RTX_MUTEX_DESTROYED_DISABLE))
-extern void EvrRtxMutexDestroyed (osMutexId_t mutex_id);
-#else
-#define EvrRtxMutexDestroyed(mutex_id)
-#endif
-
-
-// ==== Semaphore Events ====
-
-/**
- \brief Event on semaphore error (Error)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew or NULL when ID is unknown.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ERROR_DISABLE))
-extern void EvrRtxSemaphoreError (osSemaphoreId_t semaphore_id, int32_t status);
-#else
-#define EvrRtxSemaphoreError(semaphore_id, status)
-#endif
-
-/**
- \brief Event on semaphore create and initialize (API)
- \param[in] max_count maximum number of available tokens.
- \param[in] initial_count initial number of available tokens.
- \param[in] attr semaphore attributes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_NEW_DISABLE))
-extern void EvrRtxSemaphoreNew (uint32_t max_count, uint32_t initial_count, const osSemaphoreAttr_t *attr);
-#else
-#define EvrRtxSemaphoreNew(max_count, initial_count, attr)
-#endif
-
-/**
- \brief Event on successful semaphore create (Op)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
- \param[in] name pointer to semaphore object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_CREATED_DISABLE))
-extern void EvrRtxSemaphoreCreated (osSemaphoreId_t semaphore_id, const char *name);
-#else
-#define EvrRtxSemaphoreCreated(semaphore_id, name)
-#endif
-
-/**
- \brief Event on semaphore name retrieve (API)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
- \param[in] name pointer to semaphore object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_GET_NAME_DISABLE))
-extern void EvrRtxSemaphoreGetName (osSemaphoreId_t semaphore_id, const char *name);
-#else
-#define EvrRtxSemaphoreGetName(semaphore_id, name)
-#endif
-
-/**
- \brief Event on semaphore acquire (API)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_DISABLE))
-extern void EvrRtxSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout);
-#else
-#define EvrRtxSemaphoreAcquire(semaphore_id, timeout)
-#endif
-
-/**
- \brief Event on pending semaphore acquire (Op)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_PENDING_DISABLE))
-extern void EvrRtxSemaphoreAcquirePending (osSemaphoreId_t semaphore_id, uint32_t timeout);
-#else
-#define EvrRtxSemaphoreAcquirePending(semaphore_id, timeout);
-#endif
-
-/**
- \brief Event on semaphore acquire timeout (Op)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRE_TIMEOUT_DISABLE))
-extern void EvrRtxSemaphoreAcquireTimeout (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreAcquireTimeout(semaphore_id)
-#endif
-
-/**
- \brief Event on successful semaphore acquire (Op)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
- \param[in] tokens number of available tokens.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_ACQUIRED_DISABLE))
-extern void EvrRtxSemaphoreAcquired (osSemaphoreId_t semaphore_id, uint32_t tokens);
-#else
-#define EvrRtxSemaphoreAcquired(semaphore_id, tokens)
-#endif
-
-/**
- \brief Event on unsuccessful semaphore acquire (Op)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_NOT_ACQUIRED_DISABLE))
-extern void EvrRtxSemaphoreNotAcquired (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreNotAcquired(semaphore_id)
-#endif
-
-/**
- \brief Event on semaphore release (API)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_RELEASE_DISABLE))
-extern void EvrRtxSemaphoreRelease (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreRelease(semaphore_id)
-#endif
-
-/**
- \brief Event on successful semaphore release (Op)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
- \param[in] tokens number of available tokens.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_RELEASED_DISABLE))
-extern void EvrRtxSemaphoreReleased (osSemaphoreId_t semaphore_id, uint32_t tokens);
-#else
-#define EvrRtxSemaphoreReleased(semaphore_id, tokens)
-#endif
-
-/**
- \brief Event on semaphore token count retrieval (API)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
- \param[in] count current number of available tokens.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_GET_COUNT_DISABLE))
-extern void EvrRtxSemaphoreGetCount (osSemaphoreId_t semaphore_id, uint32_t count);
-#else
-#define EvrRtxSemaphoreGetCount(semaphore_id, count)
-#endif
-
-/**
- \brief Event on semaphore delete (API)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_DELETE_DISABLE))
-extern void EvrRtxSemaphoreDelete (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreDelete(semaphore_id)
-#endif
-
-/**
- \brief Event on successful semaphore delete (Op)
- \param[in] semaphore_id semaphore ID obtained by \ref osSemaphoreNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_SEMAPHORE != 0) && !defined(EVR_RTX_SEMAPHORE_DESTROYED_DISABLE))
-extern void EvrRtxSemaphoreDestroyed (osSemaphoreId_t semaphore_id);
-#else
-#define EvrRtxSemaphoreDestroyed(semaphore_id)
-#endif
-
-
-// ==== Memory Pool Events ====
-
-/**
- \brief Event on memory pool error (Error)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew or NULL when ID is unknown.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ERROR_DISABLE))
-extern void EvrRtxMemoryPoolError (osMemoryPoolId_t mp_id, int32_t status);
-#else
-#define EvrRtxMemoryPoolError(mp_id, status)
-#endif
-
-/**
- \brief Event on memory pool create and initialize (API)
- \param[in] block_count maximum number of memory blocks in memory pool.
- \param[in] block_size memory block size in bytes.
- \param[in] attr memory pool attributes; NULL: default values.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_NEW_DISABLE))
-extern void EvrRtxMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr);
-#else
-#define EvrRtxMemoryPoolNew(block_count, block_size, attr)
-#endif
-
-/**
- \brief Event on successful memory pool create (Op)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] name pointer to memory pool object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_CREATED_DISABLE))
-extern void EvrRtxMemoryPoolCreated (osMemoryPoolId_t mp_id, const char *name);
-#else
-#define EvrRtxMemoryPoolCreated(mp_id, name)
-#endif
-
-/**
- \brief Event on memory pool name retrieve (API)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] name pointer to memory pool object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_NAME_DISABLE))
-extern void EvrRtxMemoryPoolGetName (osMemoryPoolId_t mp_id, const char *name);
-#else
-#define EvrRtxMemoryPoolGetName(mp_id, name)
-#endif
-
-/**
- \brief Event on memory pool allocation (API)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_DISABLE))
-extern void EvrRtxMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout);
-#else
-#define EvrRtxMemoryPoolAlloc(mp_id, timeout)
-#endif
-
-/**
- \brief Event on pending memory pool allocation (Op)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_PENDING_DISABLE))
-extern void EvrRtxMemoryPoolAllocPending (osMemoryPoolId_t mp_id, uint32_t timeout);
-#else
-#define EvrRtxMemoryPoolAllocPending(mp_id, timeout)
-#endif
-
-/**
- \brief Event on memory pool allocation timeout (Op)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_TIMEOUT_DISABLE))
-extern void EvrRtxMemoryPoolAllocTimeout (osMemoryPoolId_t mp_id);
-#else
-#define EvrRtxMemoryPoolAllocTimeout(mp_id)
-#endif
-
-/**
- \brief Event on successful memory pool allocation (Op)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] block address of the allocated memory block.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOCATED_DISABLE))
-extern void EvrRtxMemoryPoolAllocated (osMemoryPoolId_t mp_id, void *block);
-#else
-#define EvrRtxMemoryPoolAllocated(mp_id, block)
-#endif
-
-/**
- \brief Event on unsuccessful memory pool allocation (Op)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_ALLOC_FAILED_DISABLE))
-extern void EvrRtxMemoryPoolAllocFailed (osMemoryPoolId_t mp_id);
-#else
-#define EvrRtxMemoryPoolAllocFailed(mp_id)
-#endif
-
-/**
- \brief Event on memory pool free (API)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] block address of the allocated memory block to be returned to the memory pool.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_FREE_DISABLE))
-extern void EvrRtxMemoryPoolFree (osMemoryPoolId_t mp_id, void *block);
-#else
-#define EvrRtxMemoryPoolFree(mp_id, block)
-#endif
-
-/**
- \brief Event on successful memory pool free (Op)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] block address of the allocated memory block to be returned to the memory pool.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DEALLOCATED_DISABLE))
-extern void EvrRtxMemoryPoolDeallocated (osMemoryPoolId_t mp_id, void *block);
-#else
-#define EvrRtxMemoryPoolDeallocated(mp_id, block)
-#endif
-
-/**
- \brief Event on unsuccessful memory pool free (Op)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] block address of the allocated memory block to be returned to the memory pool.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_FREE_FAILED_DISABLE))
-extern void EvrRtxMemoryPoolFreeFailed (osMemoryPoolId_t mp_id, void *block);
-#else
-#define EvrRtxMemoryPoolFreeFailed(mp_id, block)
-#endif
-
-/**
- \brief Event on memory pool capacity retrieve (API)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] capacity maximum number of memory blocks.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_CAPACITY_DISABLE))
-extern void EvrRtxMemoryPoolGetCapacity (osMemoryPoolId_t mp_id, uint32_t capacity);
-#else
-#define EvrRtxMemoryPoolGetCapacity(mp_id, capacity)
-#endif
-
-/**
- \brief Event on memory pool block size retrieve (API)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] block_size memory block size in bytes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_BLOCK_SZIE_DISABLE))
-extern void EvrRtxMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id, uint32_t block_size);
-#else
-#define EvrRtxMemoryPoolGetBlockSize(mp_id, block_size)
-#endif
-
-/**
- \brief Event on used memory pool blocks retrieve (API)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] count number of memory blocks used.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_COUNT_DISABLE))
-extern void EvrRtxMemoryPoolGetCount (osMemoryPoolId_t mp_id, uint32_t count);
-#else
-#define EvrRtxMemoryPoolGetCount(mp_id, count)
-#endif
-
-/**
- \brief Event on available memory pool blocks retrieve (API)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
- \param[in] space number of memory blocks available.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_GET_SPACE_DISABLE))
-extern void EvrRtxMemoryPoolGetSpace (osMemoryPoolId_t mp_id, uint32_t space);
-#else
-#define EvrRtxMemoryPoolGetSpace(mp_id, space)
-#endif
-
-/**
- \brief Event on memory pool delete (API)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DELETE_DISABLE))
-extern void EvrRtxMemoryPoolDelete (osMemoryPoolId_t mp_id);
-#else
-#define EvrRtxMemoryPoolDelete(mp_id)
-#endif
-
-/**
- \brief Event on successful memory pool delete (Op)
- \param[in] mp_id memory pool ID obtained by \ref osMemoryPoolNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MEMPOOL != 0) && !defined(EVR_RTX_MEMORY_POOL_DESTROYED_DISABLE))
-extern void EvrRtxMemoryPoolDestroyed (osMemoryPoolId_t mp_id);
-#else
-#define EvrRtxMemoryPoolDestroyed(mp_id)
-#endif
-
-
-// ==== Message Queue Events ====
-
-/**
- \brief Event on message queue error (Error)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew or NULL when ID is unknown.
- \param[in] status extended execution status.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_ERROR_DISABLE))
-extern void EvrRtxMessageQueueError (osMessageQueueId_t mq_id, int32_t status);
-#else
-#define EvrRtxMessageQueueError(mq_id, status)
-#endif
-
-/**
- \brief Event on message queue create and initialization (API)
- \param[in] msg_count maximum number of messages in queue.
- \param[in] msg_size maximum message size in bytes.
- \param[in] attr message queue attributes; NULL: default values.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NEW_DISABLE))
-extern void EvrRtxMessageQueueNew (uint32_t msg_count, uint32_t msg_size, const osMessageQueueAttr_t *attr);
-#else
-#define EvrRtxMessageQueueNew(msg_count, msg_size, attr)
-#endif
-
-/**
- \brief Event on successful message queue create (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] name pointer to message queue object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_CREATED_DISABLE))
-extern void EvrRtxMessageQueueCreated (osMessageQueueId_t mq_id, const char *name);
-#else
-#define EvrRtxMessageQueueCreated(mq_id, name)
-#endif
-
-/**
- \brief Event on message queue name retrieve(API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] name pointer to message queue object name.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_NAME_DISABLE))
-extern void EvrRtxMessageQueueGetName (osMessageQueueId_t mq_id, const char *name);
-#else
-#define EvrRtxMessageQueueGetName(mq_id, name)
-#endif
-
-/**
- \brief Event on message put (API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer with message to put into a queue.
- \param[in] msg_prio message priority.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_DISABLE))
-extern void EvrRtxMessageQueuePut (osMessageQueueId_t mq_id, const void *msg_ptr, uint8_t msg_prio, uint32_t timeout);
-#else
-#define EvrRtxMessageQueuePut(mq_id, msg_ptr, msg_prio, timeout)
-#endif
-
-/**
- \brief Event on pending message put (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer with message to put into a queue.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_PENDING_DISABLE))
-extern void EvrRtxMessageQueuePutPending (osMessageQueueId_t mq_id, const void *msg_ptr, uint32_t timeout);
-#else
-#define EvrRtxMessageQueuePutPending(mq_id, msg_ptr, timeout)
-#endif
-
-/**
- \brief Event on message put timeout (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_PUT_TIMEOUT_DISABLE))
-extern void EvrRtxMessageQueuePutTimeout (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueuePutTimeout(mq_id)
-#endif
-
-/**
- \brief Event on pending message insert (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer with message to put into a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_INSERT_PENDING_DISABLE))
-extern void EvrRtxMessageQueueInsertPending (osMessageQueueId_t mq_id, const void *msg_ptr);
-#else
-#define EvrRtxMessageQueueInsertPending(mq_id, msg_ptr)
-#endif
-
-/**
- \brief Event on successful message insert (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer with message to put into a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_INSERTED_DISABLE))
-extern void EvrRtxMessageQueueInserted (osMessageQueueId_t mq_id, const void *msg_ptr);
-#else
-#define EvrRtxMessageQueueInserted(mq_id, msg_ptr)
-#endif
-
-/**
- \brief Event on unsuccessful message insert (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer with message to put into a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NOT_INSERTED_DISABLE))
-extern void EvrRtxMessageQueueNotInserted (osMessageQueueId_t mq_id, const void *msg_ptr);
-#else
-#define EvrRtxMessageQueueNotInserted(mq_id, msg_ptr)
-#endif
-
-/**
- \brief Event on message get (API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer for message to get from a queue.
- \param[in] msg_prio message priority.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_DISABLE))
-extern void EvrRtxMessageQueueGet (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t *msg_prio, uint32_t timeout);
-#else
-#define EvrRtxMessageQueueGet(mq_id, msg_ptr, msg_prio, timeout)
-#endif
-
-/**
- \brief Event on pending message get (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer for message to get from a queue.
- \param[in] timeout \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_PENDING_DISABLE))
-extern void EvrRtxMessageQueueGetPending (osMessageQueueId_t mq_id, void *msg_ptr, uint32_t timeout);
-#else
-#define EvrRtxMessageQueueGetPending(mq_id, msg_ptr, timeout)
-#endif
-
-/**
- \brief Event on message get timeout (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_TIMEOUT_DISABLE))
-extern void EvrRtxMessageQueueGetTimeout (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueGetTimeout(mq_id)
-#endif
-
-/**
- \brief Event on successful message get (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer for message to get from a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RETRIEVED_DISABLE))
-extern void EvrRtxMessageQueueRetrieved (osMessageQueueId_t mq_id, void *msg_ptr);
-#else
-#define EvrRtxMessageQueueRetrieved(mq_id, msg_ptr)
-#endif
-
-/**
- \brief Event on unsuccessful message get (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_ptr pointer to buffer for message to get from a queue.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_NOT_RETRIEVED_DISABLE))
-extern void EvrRtxMessageQueueNotRetrieved (osMessageQueueId_t mq_id, void *msg_ptr);
-#else
-#define EvrRtxMessageQueueNotRetrieved(mq_id, msg_ptr)
-#endif
-
-/**
- \brief Event on message queue capacity retrieve (API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] capacity maximum number of messages.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_CAPACITY_DISABLE))
-extern void EvrRtxMessageQueueGetCapacity (osMessageQueueId_t mq_id, uint32_t capacity);
-#else
-#define EvrRtxMessageQueueGetCapacity(mq_id, capacity)
-#endif
-
-/**
- \brief Event on message queue message size retrieve (API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] msg_size maximum message size in bytes.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_MSG_SIZE_DISABLE))
-extern void EvrRtxMessageQueueGetMsgSize (osMessageQueueId_t mq_id, uint32_t msg_size);
-#else
-#define EvrRtxMessageQueueGetMsgSize(mq_id, msg_size)
-#endif
-
-/**
- \brief Event on message queue message count retrieve (API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] count number of queued messages.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_COUNT_DISABLE))
-extern void EvrRtxMessageQueueGetCount (osMessageQueueId_t mq_id, uint32_t count);
-#else
-#define EvrRtxMessageQueueGetCount(mq_id, count)
-#endif
-
-/**
- \brief Event on message queue message slots retrieve (API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
- \param[in] space number of available slots for messages.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_GET_SPACE_DISABLE))
-extern void EvrRtxMessageQueueGetSpace (osMessageQueueId_t mq_id, uint32_t space);
-#else
-#define EvrRtxMessageQueueGetSpace(mq_id, space)
-#endif
-
-/**
- \brief Event on message queue reset (API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RESET_DISABLE))
-extern void EvrRtxMessageQueueReset (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueReset(mq_id)
-#endif
-
-/**
- \brief Event on successful message queue reset (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_RESET_DONE_DISABLE))
-extern void EvrRtxMessageQueueResetDone (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueResetDone(mq_id)
-#endif
-
-/**
- \brief Event on message queue delete (API)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_DELETE_DISABLE))
-extern void EvrRtxMessageQueueDelete (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueDelete(mq_id)
-#endif
-
-/**
- \brief Event on successful message queue delete (Op)
- \param[in] mq_id message queue ID obtained by \ref osMessageQueueNew.
-*/
-#if (!defined(EVR_RTX_DISABLE) && (OS_EVR_MSGQUEUE != 0) && !defined(EVR_RTX_MESSAGE_QUEUE_DESTROYED_DISABLE))
-extern void EvrRtxMessageQueueDestroyed (osMessageQueueId_t mq_id);
-#else
-#define EvrRtxMessageQueueDestroyed(mq_id)
-#endif
-
-
-#endif // RTX_EVR_H_
diff --git a/app_broker/CMSIS/RTOS2/RTX/Include/rtx_os.h b/app_broker/CMSIS/RTOS2/RTX/Include/rtx_os.h
deleted file mode 100644
index 2b348cc..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Include/rtx_os.h
+++ /dev/null
@@ -1,472 +0,0 @@
-/*
- * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * Project: CMSIS-RTOS RTX
- * Title: RTX OS definitions
- *
- * -----------------------------------------------------------------------------
- */
-
-#ifndef RTX_OS_H_
-#define RTX_OS_H_
-
-#include <stdint.h>
-#include <stddef.h>
-#include "cmsis_os2.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-/// Kernel Information
-#define osRtxVersionAPI 20010003 ///< API version (2.1.3)
-#define osRtxVersionKernel 50050000 ///< Kernel version (5.5.0)
-#define osRtxKernelId "RTX V5.5.0" ///< Kernel identification string
-
-
-// ==== Common definitions ====
-
-/// Object Identifier definitions
-#define osRtxIdInvalid 0x00U
-#define osRtxIdThread 0xF1U
-#define osRtxIdTimer 0xF2U
-#define osRtxIdEventFlags 0xF3U
-#define osRtxIdMutex 0xF5U
-#define osRtxIdSemaphore 0xF6U
-#define osRtxIdMemoryPool 0xF7U
-#define osRtxIdMessage 0xF9U
-#define osRtxIdMessageQueue 0xFAU
-
-/// Object Flags definitions
-#define osRtxFlagSystemObject 0x01U
-#define osRtxFlagSystemMemory 0x02U
-
-
-// ==== Kernel definitions ====
-
-/// Kernel State definitions
-#define osRtxKernelInactive ((uint8_t)osKernelInactive)
-#define osRtxKernelReady ((uint8_t)osKernelReady)
-#define osRtxKernelRunning ((uint8_t)osKernelRunning)
-#define osRtxKernelLocked ((uint8_t)osKernelLocked)
-#define osRtxKernelSuspended ((uint8_t)osKernelSuspended)
-
-
-// ==== Thread definitions ====
-
-/// Thread State definitions (extending osThreadState)
-#define osRtxThreadStateMask 0x0FU
-
-#define osRtxThreadInactive ((uint8_t)osThreadInactive)
-#define osRtxThreadReady ((uint8_t)osThreadReady)
-#define osRtxThreadRunning ((uint8_t)osThreadRunning)
-#define osRtxThreadBlocked ((uint8_t)osThreadBlocked)
-#define osRtxThreadTerminated ((uint8_t)osThreadTerminated)
-
-#define osRtxThreadWaitingDelay ((uint8_t)(osRtxThreadBlocked | 0x10U))
-#define osRtxThreadWaitingJoin ((uint8_t)(osRtxThreadBlocked | 0x20U))
-#define osRtxThreadWaitingThreadFlags ((uint8_t)(osRtxThreadBlocked | 0x30U))
-#define osRtxThreadWaitingEventFlags ((uint8_t)(osRtxThreadBlocked | 0x40U))
-#define osRtxThreadWaitingMutex ((uint8_t)(osRtxThreadBlocked | 0x50U))
-#define osRtxThreadWaitingSemaphore ((uint8_t)(osRtxThreadBlocked | 0x60U))
-#define osRtxThreadWaitingMemoryPool ((uint8_t)(osRtxThreadBlocked | 0x70U))
-#define osRtxThreadWaitingMessageGet ((uint8_t)(osRtxThreadBlocked | 0x80U))
-#define osRtxThreadWaitingMessagePut ((uint8_t)(osRtxThreadBlocked | 0x90U))
-
-/// Thread Flags definitions
-#define osRtxThreadFlagDefStack 0x10U ///< Default Stack flag
-
-/// Stack Marker definitions
-#define osRtxStackMagicWord 0xE25A2EA5U ///< Stack Magic Word (Stack Base)
-#define osRtxStackFillPattern 0xCCCCCCCCU ///< Stack Fill Pattern
-
-/// Thread Control Block
-typedef struct osRtxThread_s {
- uint8_t id; ///< Object Identifier
- uint8_t state; ///< Object State
- uint8_t flags; ///< Object Flags
- uint8_t attr; ///< Object Attributes
- const char *name; ///< Object Name
- struct osRtxThread_s *thread_next; ///< Link pointer to next Thread in Object list
- struct osRtxThread_s *thread_prev; ///< Link pointer to previous Thread in Object list
- struct osRtxThread_s *delay_next; ///< Link pointer to next Thread in Delay list
- struct osRtxThread_s *delay_prev; ///< Link pointer to previous Thread in Delay list
- struct osRtxThread_s *thread_join; ///< Thread waiting to Join
- uint32_t delay; ///< Delay Time
- int8_t priority; ///< Thread Priority
- int8_t priority_base; ///< Base Priority
- uint8_t stack_frame; ///< Stack Frame (EXC_RETURN[7..0])
- uint8_t flags_options; ///< Thread/Event Flags Options
- uint32_t wait_flags; ///< Waiting Thread/Event Flags
- uint32_t thread_flags; ///< Thread Flags
- struct osRtxMutex_s *mutex_list; ///< Link pointer to list of owned Mutexes
- void *stack_mem; ///< Stack Memory
- uint32_t stack_size; ///< Stack Size
- uint32_t sp; ///< Current Stack Pointer
- uint32_t thread_addr; ///< Thread entry address
- uint32_t tz_memory; ///< TrustZone Memory Identifier
-#ifdef RTX_TF_M_EXTENSION
- uint32_t tz_module; ///< TrustZone Module Identifier
-#endif
-} osRtxThread_t;
-
-
-// ==== Timer definitions ====
-
-/// Timer State definitions
-#define osRtxTimerInactive 0x00U ///< Timer Inactive
-#define osRtxTimerStopped 0x01U ///< Timer Stopped
-#define osRtxTimerRunning 0x02U ///< Timer Running
-
-/// Timer Type definitions
-#define osRtxTimerPeriodic ((uint8_t)osTimerPeriodic)
-
-/// Timer Function Information
-typedef struct {
- osTimerFunc_t func; ///< Function Pointer
- void *arg; ///< Function Argument
-} osRtxTimerFinfo_t;
-
-/// Timer Control Block
-typedef struct osRtxTimer_s {
- uint8_t id; ///< Object Identifier
- uint8_t state; ///< Object State
- uint8_t flags; ///< Object Flags
- uint8_t type; ///< Timer Type (Periodic/One-shot)
- const char *name; ///< Object Name
- struct osRtxTimer_s *prev; ///< Pointer to previous active Timer
- struct osRtxTimer_s *next; ///< Pointer to next active Timer
- uint32_t tick; ///< Timer current Tick
- uint32_t load; ///< Timer Load value
- osRtxTimerFinfo_t finfo; ///< Timer Function Info
-} osRtxTimer_t;
-
-
-// ==== Event Flags definitions ====
-
-/// Event Flags Control Block
-typedef struct {
- uint8_t id; ///< Object Identifier
- uint8_t reserved_state; ///< Object State (not used)
- uint8_t flags; ///< Object Flags
- uint8_t reserved;
- const char *name; ///< Object Name
- osRtxThread_t *thread_list; ///< Waiting Threads List
- uint32_t event_flags; ///< Event Flags
-} osRtxEventFlags_t;
-
-
-// ==== Mutex definitions ====
-
-/// Mutex Control Block
-typedef struct osRtxMutex_s {
- uint8_t id; ///< Object Identifier
- uint8_t reserved_state; ///< Object State (not used)
- uint8_t flags; ///< Object Flags
- uint8_t attr; ///< Object Attributes
- const char *name; ///< Object Name
- osRtxThread_t *thread_list; ///< Waiting Threads List
- osRtxThread_t *owner_thread; ///< Owner Thread
- struct osRtxMutex_s *owner_prev; ///< Pointer to previous owned Mutex
- struct osRtxMutex_s *owner_next; ///< Pointer to next owned Mutex
- uint8_t lock; ///< Lock counter
- uint8_t padding[3];
-} osRtxMutex_t;
-
-
-// ==== Semaphore definitions ====
-
-/// Semaphore Control Block
-typedef struct {
- uint8_t id; ///< Object Identifier
- uint8_t reserved_state; ///< Object State (not used)
- uint8_t flags; ///< Object Flags
- uint8_t reserved;
- const char *name; ///< Object Name
- osRtxThread_t *thread_list; ///< Waiting Threads List
- uint16_t tokens; ///< Current number of tokens
- uint16_t max_tokens; ///< Maximum number of tokens
-} osRtxSemaphore_t;
-
-
-// ==== Memory Pool definitions ====
-
-/// Memory Pool Information
-typedef struct {
- uint32_t max_blocks; ///< Maximum number of Blocks
- uint32_t used_blocks; ///< Number of used Blocks
- uint32_t block_size; ///< Block Size
- void *block_base; ///< Block Memory Base Address
- void *block_lim; ///< Block Memory Limit Address
- void *block_free; ///< First free Block Address
-} osRtxMpInfo_t;
-
-/// Memory Pool Control Block
-typedef struct {
- uint8_t id; ///< Object Identifier
- uint8_t reserved_state; ///< Object State (not used)
- uint8_t flags; ///< Object Flags
- uint8_t reserved;
- const char *name; ///< Object Name
- osRtxThread_t *thread_list; ///< Waiting Threads List
- osRtxMpInfo_t mp_info; ///< Memory Pool Info
-} osRtxMemoryPool_t;
-
-
-// ==== Message Queue definitions ====
-
-/// Message Control Block
-typedef struct osRtxMessage_s {
- uint8_t id; ///< Object Identifier
- uint8_t reserved_state; ///< Object State (not used)
- uint8_t flags; ///< Object Flags
- uint8_t priority; ///< Message Priority
- struct osRtxMessage_s *prev; ///< Pointer to previous Message
- struct osRtxMessage_s *next; ///< Pointer to next Message
-} osRtxMessage_t;
-
-/// Message Queue Control Block
-typedef struct {
- uint8_t id; ///< Object Identifier
- uint8_t reserved_state; ///< Object State (not used)
- uint8_t flags; ///< Object Flags
- uint8_t reserved;
- const char *name; ///< Object Name
- osRtxThread_t *thread_list; ///< Waiting Threads List
- osRtxMpInfo_t mp_info; ///< Memory Pool Info
- uint32_t msg_size; ///< Message Size
- uint32_t msg_count; ///< Number of queued Messages
- osRtxMessage_t *msg_first; ///< Pointer to first Message
- osRtxMessage_t *msg_last; ///< Pointer to last Message
-} osRtxMessageQueue_t;
-
-
-// ==== Generic Object definitions ====
-
-/// Generic Object Control Block
-typedef struct {
- uint8_t id; ///< Object Identifier
- uint8_t state; ///< Object State
- uint8_t flags; ///< Object Flags
- uint8_t reserved;
- const char *name; ///< Object Name
- osRtxThread_t *thread_list; ///< Threads List
-} osRtxObject_t;
-
-
-// ==== OS Runtime Information definitions ====
-
-/// OS Runtime Information structure
-typedef struct {
- const char *os_id; ///< OS Identification
- uint32_t version; ///< OS Version
- struct { ///< Kernel Info
- uint8_t state; ///< State
- volatile uint8_t blocked; ///< Blocked
- uint8_t pendSV; ///< Pending SV
- uint8_t reserved;
- uint32_t tick; ///< Tick counter
- } kernel;
- int32_t tick_irqn; ///< Tick Timer IRQ Number
- struct { ///< Thread Info
- struct { ///< Thread Run Info
- osRtxThread_t *curr; ///< Current running Thread
- osRtxThread_t *next; ///< Next Thread to Run
- } run;
- osRtxObject_t ready; ///< Ready List Object
- osRtxThread_t *idle; ///< Idle Thread
- osRtxThread_t *delay_list; ///< Delay List
- osRtxThread_t *wait_list; ///< Wait List (no Timeout)
- osRtxThread_t *terminate_list; ///< Terminate Thread List
- struct { ///< Thread Round Robin Info
- osRtxThread_t *thread; ///< Round Robin Thread
- uint32_t tick; ///< Round Robin Time Tick
- uint32_t timeout; ///< Round Robin Timeout
- } robin;
- } thread;
- struct { ///< Timer Info
- osRtxTimer_t *list; ///< Active Timer List
- osRtxThread_t *thread; ///< Timer Thread
- osRtxMessageQueue_t *mq; ///< Timer Message Queue
- void (*tick)(void); ///< Timer Tick Function
- } timer;
- struct { ///< ISR Post Processing Queue
- uint16_t max; ///< Maximum Items
- uint16_t cnt; ///< Item Count
- uint16_t in; ///< Incoming Item Index
- uint16_t out; ///< Outgoing Item Index
- void **data; ///< Queue Data
- } isr_queue;
- struct { ///< ISR Post Processing functions
- void (*thread)(osRtxThread_t*); ///< Thread Post Processing function
- void (*event_flags)(osRtxEventFlags_t*); ///< Event Flags Post Processing function
- void (*semaphore)(osRtxSemaphore_t*); ///< Semaphore Post Processing function
- void (*memory_pool)(osRtxMemoryPool_t*); ///< Memory Pool Post Processing function
- void (*message)(osRtxMessage_t*); ///< Message Post Processing function
- } post_process;
- struct { ///< Memory Pools (Variable Block Size)
- void *stack; ///< Stack Memory
- void *mp_data; ///< Memory Pool Data Memory
- void *mq_data; ///< Message Queue Data Memory
- void *common; ///< Common Memory
- } mem;
- struct { ///< Memory Pools (Fixed Block Size)
- osRtxMpInfo_t *stack; ///< Stack for Threads
- osRtxMpInfo_t *thread; ///< Thread Control Blocks
- osRtxMpInfo_t *timer; ///< Timer Control Blocks
- osRtxMpInfo_t *event_flags; ///< Event Flags Control Blocks
- osRtxMpInfo_t *mutex; ///< Mutex Control Blocks
- osRtxMpInfo_t *semaphore; ///< Semaphore Control Blocks
- osRtxMpInfo_t *memory_pool; ///< Memory Pool Control Blocks
- osRtxMpInfo_t *message_queue; ///< Message Queue Control Blocks
- } mpi;
-} osRtxInfo_t;
-
-extern osRtxInfo_t osRtxInfo; ///< OS Runtime Information
-
-/// OS Runtime Object Memory Usage structure
-typedef struct {
- uint32_t cnt_alloc; ///< Counter for alloc
- uint32_t cnt_free; ///< Counter for free
- uint32_t max_used; ///< Maximum used
-} osRtxObjectMemUsage_t;
-
-/// OS Runtime Object Memory Usage variables
-extern osRtxObjectMemUsage_t osRtxThreadMemUsage;
-extern osRtxObjectMemUsage_t osRtxTimerMemUsage;
-extern osRtxObjectMemUsage_t osRtxEventFlagsMemUsage;
-extern osRtxObjectMemUsage_t osRtxMutexMemUsage;
-extern osRtxObjectMemUsage_t osRtxSemaphoreMemUsage;
-extern osRtxObjectMemUsage_t osRtxMemoryPoolMemUsage;
-extern osRtxObjectMemUsage_t osRtxMessageQueueMemUsage;
-
-
-// ==== OS API definitions ====
-
-// Object Limits definitions
-#define osRtxThreadFlagsLimit 31U ///< number of Thread Flags available per thread
-#define osRtxEventFlagsLimit 31U ///< number of Event Flags available per object
-#define osRtxMutexLockLimit 255U ///< maximum number of recursive mutex locks
-#define osRtxSemaphoreTokenLimit 65535U ///< maximum number of tokens per semaphore
-
-// Control Block sizes
-#define osRtxThreadCbSize sizeof(osRtxThread_t)
-#define osRtxTimerCbSize sizeof(osRtxTimer_t)
-#define osRtxEventFlagsCbSize sizeof(osRtxEventFlags_t)
-#define osRtxMutexCbSize sizeof(osRtxMutex_t)
-#define osRtxSemaphoreCbSize sizeof(osRtxSemaphore_t)
-#define osRtxMemoryPoolCbSize sizeof(osRtxMemoryPool_t)
-#define osRtxMessageQueueCbSize sizeof(osRtxMessageQueue_t)
-
-/// Memory size in bytes for Memory Pool storage.
-/// \param block_count maximum number of memory blocks in memory pool.
-/// \param block_size memory block size in bytes.
-#define osRtxMemoryPoolMemSize(block_count, block_size) \
- (4*(block_count)*(((block_size)+3)/4))
-
-/// Memory size in bytes for Message Queue storage.
-/// \param msg_count maximum number of messages in queue.
-/// \param msg_size maximum message size in bytes.
-#define osRtxMessageQueueMemSize(msg_count, msg_size) \
- (4*(msg_count)*(3+(((msg_size)+3)/4)))
-
-
-// ==== OS External Functions ====
-
-// OS Error Codes
-#define osRtxErrorStackUnderflow 1U ///< Stack overflow, i.e. stack pointer below its lower memory limit for descending stacks.
-#define osRtxErrorISRQueueOverflow 2U ///< ISR Queue overflow detected when inserting object.
-#define osRtxErrorTimerQueueOverflow 3U ///< User Timer Callback Queue overflow detected for timer.
-#define osRtxErrorClibSpace 4U ///< Standard C/C++ library libspace not available: increase \c OS_THREAD_LIBSPACE_NUM.
-#define osRtxErrorClibMutex 5U ///< Standard C/C++ library mutex initialization failed.
-
-/// OS Error Callback function
-extern uint32_t osRtxErrorNotify (uint32_t code, void *object_id);
-
-/// OS Idle Thread
-extern void osRtxIdleThread (void *argument);
-
-/// OS Exception handlers
-extern void SVC_Handler (void);
-extern void PendSV_Handler (void);
-extern void SysTick_Handler (void);
-
-/// OS Trusted Firmware M Extension
-#ifdef RTX_TF_M_EXTENSION
-extern uint32_t osRtxTzGetModuleId (void);
-#endif
-
-
-// ==== OS External Configuration ====
-
-/// OS Configuration flags
-#define osRtxConfigPrivilegedMode (1UL<<0) ///< Threads in Privileged mode
-#define osRtxConfigStackCheck (1UL<<1) ///< Stack overrun checking
-#define osRtxConfigStackWatermark (1UL<<2) ///< Stack usage Watermark
-
-/// OS Configuration structure
-typedef struct {
- uint32_t flags; ///< OS Configuration Flags
- uint32_t tick_freq; ///< Kernel Tick Frequency
- uint32_t robin_timeout; ///< Round Robin Timeout Tick
- struct { ///< ISR Post Processing Queue
- void **data; ///< Queue Data
- uint16_t max; ///< Maximum Items
- uint16_t padding;
- } isr_queue;
- struct { ///< Memory Pools (Variable Block Size)
- void *stack_addr; ///< Stack Memory Address
- uint32_t stack_size; ///< Stack Memory Size
- void *mp_data_addr; ///< Memory Pool Memory Address
- uint32_t mp_data_size; ///< Memory Pool Memory Size
- void *mq_data_addr; ///< Message Queue Data Memory Address
- uint32_t mq_data_size; ///< Message Queue Data Memory Size
- void *common_addr; ///< Common Memory Address
- uint32_t common_size; ///< Common Memory Size
- } mem;
- struct { ///< Memory Pools (Fixed Block Size)
- osRtxMpInfo_t *stack; ///< Stack for Threads
- osRtxMpInfo_t *thread; ///< Thread Control Blocks
- osRtxMpInfo_t *timer; ///< Timer Control Blocks
- osRtxMpInfo_t *event_flags; ///< Event Flags Control Blocks
- osRtxMpInfo_t *mutex; ///< Mutex Control Blocks
- osRtxMpInfo_t *semaphore; ///< Semaphore Control Blocks
- osRtxMpInfo_t *memory_pool; ///< Memory Pool Control Blocks
- osRtxMpInfo_t *message_queue; ///< Message Queue Control Blocks
- } mpi;
- uint32_t thread_stack_size; ///< Default Thread Stack Size
- const
- osThreadAttr_t *idle_thread_attr; ///< Idle Thread Attributes
- const
- osThreadAttr_t *timer_thread_attr; ///< Timer Thread Attributes
- const
- osMessageQueueAttr_t *timer_mq_attr; ///< Timer Message Queue Attributes
- uint32_t timer_mq_mcnt; ///< Timer Message Queue maximum Messages
-} osRtxConfig_t;
-
-extern const osRtxConfig_t osRtxConfig; ///< OS Configuration
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // RTX_OS_H_
diff --git a/app_broker/CMSIS/RTOS2/RTX/Include/tz_context.h b/app_broker/CMSIS/RTOS2/RTX/Include/tz_context.h
deleted file mode 100644
index cd6d8ab..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Include/tz_context.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2015-2016 ARM Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * ----------------------------------------------------------------------------
- *
- * $Date: 21. September 2016
- * $Revision: V1.0
- *
- * Project: TrustZone for ARMv8-M
- * Title: Context Management for ARMv8-M TrustZone
- *
- * Version 1.0
- * Initial Release
- *---------------------------------------------------------------------------*/
-
-#ifndef TZ_CONTEXT_H
-#define TZ_CONTEXT_H
-
-#include <stdint.h>
-
-#ifndef TZ_MODULEID_T
-#define TZ_MODULEID_T
-/// \details Data type that identifies secure software modules called by a process.
-typedef uint32_t TZ_ModuleId_t;
-#endif
-
-/// \details TZ Memory ID identifies an allocated memory slot.
-typedef uint32_t TZ_MemoryId_t;
-
-/// Initialize secure context memory system
-/// \return execution status (1: success, 0: error)
-uint32_t TZ_InitContextSystem_S (void);
-
-/// Allocate context memory for calling secure software modules in TrustZone
-/// \param[in] module identifies software modules called from non-secure mode
-/// \return value != 0 id TrustZone memory slot identifier
-/// \return value 0 no memory available or internal error
-TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module);
-
-/// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S
-/// \param[in] id TrustZone memory slot identifier
-/// \return execution status (1: success, 0: error)
-uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id);
-
-/// Load secure context (called on RTOS thread context switch)
-/// \param[in] id TrustZone memory slot identifier
-/// \return execution status (1: success, 0: error)
-uint32_t TZ_LoadContext_S (TZ_MemoryId_t id);
-
-/// Store secure context (called on RTOS thread context switch)
-/// \param[in] id TrustZone memory slot identifier
-/// \return execution status (1: success, 0: error)
-uint32_t TZ_StoreContext_S (TZ_MemoryId_t id);
-
-#endif // TZ_CONTEXT_H
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib
deleted file mode 100644
index 9ef5797..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM0.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib
deleted file mode 100644
index fc46aa4..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM3.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib
deleted file mode 100644
index 0e12dc9..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_CM4F.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MB.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MB.lib
deleted file mode 100644
index 899642c..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MB.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MBN.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MBN.lib
deleted file mode 100644
index 318dc0d..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MBN.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib
deleted file mode 100644
index ddb1042..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MM.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib
deleted file mode 100644
index 5a61f40..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMF.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib
deleted file mode 100644
index de8c6cf..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMFN.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib b/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib
deleted file mode 100644
index 9e99e4c..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/ARM/RTX_V8MMN.lib
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a
deleted file mode 100644
index ac2f09c..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM0.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a
deleted file mode 100644
index 5352de2..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM3.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a
deleted file mode 100644
index 58aa906..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_CM4F.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MB.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MB.a
deleted file mode 100644
index 087da47..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MB.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MBN.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MBN.a
deleted file mode 100644
index 8907f98..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MBN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MM.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MM.a
deleted file mode 100644
index 4281030..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MM.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMF.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMF.a
deleted file mode 100644
index ed4de5e..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMF.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMFN.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMFN.a
deleted file mode 100644
index 6f9d158..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMFN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMN.a b/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMN.a
deleted file mode 100644
index 27b1f23..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/GCC/libRTX_V8MMN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM0.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM0.a
deleted file mode 100644
index 804cc6d..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM0.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM3.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM3.a
deleted file mode 100644
index 18a826a..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM3.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM4F.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM4F.a
deleted file mode 100644
index 07c4096..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_CM4F.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V81MMN.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V81MMN.a
deleted file mode 100644
index 0496401..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V81MMN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MB.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MB.a
deleted file mode 100644
index d8b5db9..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MB.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MBN.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MBN.a
deleted file mode 100644
index f1a68db..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MBN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MM.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MM.a
deleted file mode 100644
index 7959b1d..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MM.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMF.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMF.a
deleted file mode 100644
index c9d84b1..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMF.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMFN.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMFN.a
deleted file mode 100644
index 2d8f67d..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMFN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMN.a b/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMN.a
deleted file mode 100644
index 85a9c17..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Library/IAR/RTX_V8MMN.a
+++ /dev/null
Binary files differ
diff --git a/app_broker/CMSIS/RTOS2/RTX/Source/rtx_lib.c b/app_broker/CMSIS/RTOS2/RTX/Source/rtx_lib.c
deleted file mode 100644
index 257b0c1..0000000
--- a/app_broker/CMSIS/RTOS2/RTX/Source/rtx_lib.c
+++ /dev/null
@@ -1,822 +0,0 @@
-/*
- * Copyright (c) 2013-2019 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * -----------------------------------------------------------------------------
- *
- * Project: CMSIS-RTOS RTX
- * Title: RTX Library Configuration
- *
- * -----------------------------------------------------------------------------
- */
-
-#include "cmsis_compiler.h"
-#include "RTX_Config.h"
-#include "rtx_os.h"
-
-#ifdef RTE_Compiler_EventRecorder
-#include "EventRecorder.h"
-#include "EventRecorderConf.h"
-#endif
-#include "rtx_evr.h"
-
-
-// System Configuration
-// ====================
-
-// Dynamic Memory
-#if (OS_DYNAMIC_MEM_SIZE != 0)
-#if ((OS_DYNAMIC_MEM_SIZE % 8) != 0)
-#error "Invalid Dynamic Memory size!"
-#endif
-static uint64_t os_mem[OS_DYNAMIC_MEM_SIZE/8] \
-__attribute__((section(".bss.os")));
-#endif
-
-// Kernel Tick Frequency
-#if (OS_TICK_FREQ < 1)
-#error "Invalid Kernel Tick Frequency!"
-#endif
-
-// ISR FIFO Queue
-#if (OS_ISR_FIFO_QUEUE < 4)
-#error "Invalid ISR FIFO Queue size!"
-#endif
-static void *os_isr_queue[OS_ISR_FIFO_QUEUE] \
-__attribute__((section(".bss.os")));
-
-
-// Thread Configuration
-// ====================
-
-#if (((OS_STACK_SIZE % 8) != 0) || (OS_STACK_SIZE < 72))
-#error "Invalid default Thread Stack size!"
-#endif
-
-#if (((OS_IDLE_THREAD_STACK_SIZE % 8) != 0) || (OS_IDLE_THREAD_STACK_SIZE < 72))
-#error "Invalid Idle Thread Stack size!"
-#endif
-
-
-#if (OS_THREAD_OBJ_MEM != 0)
-
-#if (OS_THREAD_NUM == 0)
-#error "Invalid number of user Threads!"
-#endif
-
-#if ((OS_THREAD_USER_STACK_SIZE != 0) && ((OS_THREAD_USER_STACK_SIZE % 8) != 0))
-#error "Invalid total Stack size!"
-#endif
-
-// Thread Control Blocks
-static osRtxThread_t os_thread_cb[OS_THREAD_NUM] \
-__attribute__((section(".bss.os.thread.cb")));
-
-// Thread Default Stack
-#if (OS_THREAD_DEF_STACK_NUM != 0)
-static uint64_t os_thread_def_stack[OS_THREAD_DEF_STACK_NUM*(OS_STACK_SIZE/8)] \
-__attribute__((section(".bss.os.thread.stack")));
-#endif
-
-// Memory Pool for Thread Control Blocks
-static osRtxMpInfo_t os_mpi_thread \
-__attribute__((section(".data.os.thread.mpi"))) =
-{ (uint32_t)OS_THREAD_NUM, 0U, (uint32_t)osRtxThreadCbSize, &os_thread_cb[0], NULL, NULL };
-
-// Memory Pool for Thread Default Stack
-#if (OS_THREAD_DEF_STACK_NUM != 0)
-static osRtxMpInfo_t os_mpi_def_stack \
-__attribute__((section(".data.os.thread.mpi"))) =
-{ (uint32_t)OS_THREAD_DEF_STACK_NUM, 0U, (uint32_t)OS_STACK_SIZE, &os_thread_def_stack[0], NULL, NULL };
-#endif
-
-// Memory Pool for Thread Stack
-#if (OS_THREAD_USER_STACK_SIZE != 0)
-static uint64_t os_thread_stack[2 + OS_THREAD_NUM + (OS_THREAD_USER_STACK_SIZE/8)] \
-__attribute__((section(".bss.os.thread.stack")));
-#endif
-
-#endif // (OS_THREAD_OBJ_MEM != 0)
-
-
-// Stack overrun checking
-#if (OS_STACK_CHECK == 0)
-// Override library function
-extern void osRtxThreadStackCheck (void);
- void osRtxThreadStackCheck (void) {}
-#endif
-
-
-// Idle Thread Control Block
-static osRtxThread_t os_idle_thread_cb \
-__attribute__((section(".bss.os.thread.cb")));
-
-// Idle Thread Stack
-static uint64_t os_idle_thread_stack[OS_IDLE_THREAD_STACK_SIZE/8] \
-__attribute__((section(".bss.os.thread.stack")));
-
-// Idle Thread Attributes
-static const osThreadAttr_t os_idle_thread_attr = {
-#if defined(OS_IDLE_THREAD_NAME)
- OS_IDLE_THREAD_NAME,
-#else
- NULL,
-#endif
- osThreadDetached,
- &os_idle_thread_cb,
- (uint32_t)sizeof(os_idle_thread_cb),
- &os_idle_thread_stack[0],
- (uint32_t)sizeof(os_idle_thread_stack),
- osPriorityIdle,
-#if defined(OS_IDLE_THREAD_TZ_MOD_ID)
- (uint32_t)OS_IDLE_THREAD_TZ_MOD_ID,
-#else
- 0U,
-#endif
- 0U
-};
-
-
-// Timer Configuration
-// ===================
-
-#if (OS_TIMER_OBJ_MEM != 0)
-
-#if (OS_TIMER_NUM == 0)
-#error "Invalid number of Timer objects!"
-#endif
-
-// Timer Control Blocks
-static osRtxTimer_t os_timer_cb[OS_TIMER_NUM] \
-__attribute__((section(".bss.os.timer.cb")));
-
-// Memory Pool for Timer Control Blocks
-static osRtxMpInfo_t os_mpi_timer \
-__attribute__((section(".data.os.timer.mpi"))) =
-{ (uint32_t)OS_TIMER_NUM, 0U, (uint32_t)osRtxTimerCbSize, &os_timer_cb[0], NULL, NULL };
-
-#endif // (OS_TIMER_OBJ_MEM != 0)
-
-
-#if ((OS_TIMER_THREAD_STACK_SIZE != 0) && (OS_TIMER_CB_QUEUE != 0))
-
-#if (((OS_TIMER_THREAD_STACK_SIZE % 8) != 0) || (OS_TIMER_THREAD_STACK_SIZE < 96))
-#error "Invalid Timer Thread Stack size!"
-#endif
-
-// Timer Thread Control Block
-static osRtxThread_t os_timer_thread_cb \
-__attribute__((section(".bss.os.thread.cb")));
-
-// Timer Thread Stack
-static uint64_t os_timer_thread_stack[OS_TIMER_THREAD_STACK_SIZE/8] \
-__attribute__((section(".bss.os.thread.stack")));
-
-// Timer Thread Attributes
-static const osThreadAttr_t os_timer_thread_attr = {
-#if defined(OS_TIMER_THREAD_NAME)
- OS_TIMER_THREAD_NAME,
-#else
- NULL,
-#endif
- osThreadDetached,
- &os_timer_thread_cb,
- (uint32_t)sizeof(os_timer_thread_cb),
- &os_timer_thread_stack[0],
- (uint32_t)sizeof(os_timer_thread_stack),
- //lint -e{9030} -e{9034} "cast from signed to enum"
- (osPriority_t)OS_TIMER_THREAD_PRIO,
-#if defined(OS_TIMER_THREAD_TZ_MOD_ID)
- (uint32_t)OS_TIMER_THREAD_TZ_MOD_ID,
-#else
- 0U,
-#endif
- 0U
-};
-
-// Timer Message Queue Control Block
-static osRtxMessageQueue_t os_timer_mq_cb \
-__attribute__((section(".bss.os.msgqueue.cb")));
-
-// Timer Message Queue Data
-static uint32_t os_timer_mq_data[osRtxMessageQueueMemSize(OS_TIMER_CB_QUEUE,8)/4] \
-__attribute__((section(".bss.os.msgqueue.mem")));
-
-// Timer Message Queue Attributes
-static const osMessageQueueAttr_t os_timer_mq_attr = {
- NULL,
- 0U,
- &os_timer_mq_cb,
- (uint32_t)sizeof(os_timer_mq_cb),
- &os_timer_mq_data[0],
- (uint32_t)sizeof(os_timer_mq_data)
-};
-
-#else
-
-extern void osRtxTimerThread (void *argument);
- void osRtxTimerThread (void *argument) { (void)argument; }
-
-#endif // ((OS_TIMER_THREAD_STACK_SIZE != 0) && (OS_TIMER_CB_QUEUE != 0))
-
-
-// Event Flags Configuration
-// =========================
-
-#if (OS_EVFLAGS_OBJ_MEM != 0)
-
-#if (OS_EVFLAGS_NUM == 0)
-#error "Invalid number of Event Flags objects!"
-#endif
-
-// Event Flags Control Blocks
-static osRtxEventFlags_t os_ef_cb[OS_EVFLAGS_NUM] \
-__attribute__((section(".bss.os.evflags.cb")));
-
-// Memory Pool for Event Flags Control Blocks
-static osRtxMpInfo_t os_mpi_ef \
-__attribute__((section(".data.os.evflags.mpi"))) =
-{ (uint32_t)OS_EVFLAGS_NUM, 0U, (uint32_t)osRtxEventFlagsCbSize, &os_ef_cb[0], NULL, NULL };
-
-#endif // (OS_EVFLAGS_OBJ_MEM != 0)
-
-
-// Mutex Configuration
-// ===================
-
-#if (OS_MUTEX_OBJ_MEM != 0)
-
-#if (OS_MUTEX_NUM == 0)
-#error "Invalid number of Mutex objects!"
-#endif
-
-// Mutex Control Blocks
-static osRtxMutex_t os_mutex_cb[OS_MUTEX_NUM] \
-__attribute__((section(".bss.os.mutex.cb")));
-
-// Memory Pool for Mutex Control Blocks
-static osRtxMpInfo_t os_mpi_mutex \
-__attribute__((section(".data.os.mutex.mpi"))) =
-{ (uint32_t)OS_MUTEX_NUM, 0U, (uint32_t)osRtxMutexCbSize, &os_mutex_cb[0], NULL, NULL };
-
-#endif // (OS_MUTEX_OBJ_MEM != 0)
-
-
-// Semaphore Configuration
-// =======================
-
-#if (OS_SEMAPHORE_OBJ_MEM != 0)
-
-#if (OS_SEMAPHORE_NUM == 0)
-#error "Invalid number of Semaphore objects!"
-#endif
-
-// Semaphore Control Blocks
-static osRtxSemaphore_t os_semaphore_cb[OS_SEMAPHORE_NUM] \
-__attribute__((section(".bss.os.semaphore.cb")));
-
-// Memory Pool for Semaphore Control Blocks
-static osRtxMpInfo_t os_mpi_semaphore \
-__attribute__((section(".data.os.semaphore.mpi"))) =
-{ (uint32_t)OS_SEMAPHORE_NUM, 0U, (uint32_t)osRtxSemaphoreCbSize, &os_semaphore_cb[0], NULL, NULL };
-
-#endif // (OS_SEMAPHORE_OBJ_MEM != 0)
-
-
-// Memory Pool Configuration
-// =========================
-
-#if (OS_MEMPOOL_OBJ_MEM != 0)
-
-#if (OS_MEMPOOL_NUM == 0)
-#error "Invalid number of Memory Pool objects!"
-#endif
-
-// Memory Pool Control Blocks
-static osRtxMemoryPool_t os_mp_cb[OS_MEMPOOL_NUM] \
-__attribute__((section(".bss.os.mempool.cb")));
-
-// Memory Pool for Memory Pool Control Blocks
-static osRtxMpInfo_t os_mpi_mp \
-__attribute__((section(".data.os.mempool.mpi"))) =
-{ (uint32_t)OS_MEMPOOL_NUM, 0U, (uint32_t)osRtxMemoryPoolCbSize, &os_mp_cb[0], NULL, NULL };
-
-// Memory Pool for Memory Pool Data Storage
-#if (OS_MEMPOOL_DATA_SIZE != 0)
-#if ((OS_MEMPOOL_DATA_SIZE % 8) != 0)
-#error "Invalid Data Memory size for Memory Pools!"
-#endif
-static uint64_t os_mp_data[2 + OS_MEMPOOL_NUM + (OS_MEMPOOL_DATA_SIZE/8)] \
-__attribute__((section(".bss.os.mempool.mem")));
-#endif
-
-#endif // (OS_MEMPOOL_OBJ_MEM != 0)
-
-
-// Message Queue Configuration
-// ===========================
-
-#if (OS_MSGQUEUE_OBJ_MEM != 0)
-
-#if (OS_MSGQUEUE_NUM == 0)
-#error "Invalid number of Message Queue objects!"
-#endif
-
-// Message Queue Control Blocks
-static osRtxMessageQueue_t os_mq_cb[OS_MSGQUEUE_NUM] \
-__attribute__((section(".bss.os.msgqueue.cb")));
-
-// Memory Pool for Message Queue Control Blocks
-static osRtxMpInfo_t os_mpi_mq \
-__attribute__((section(".data.os.msgqueue.mpi"))) =
-{ (uint32_t)OS_MSGQUEUE_NUM, 0U, (uint32_t)osRtxMessageQueueCbSize, &os_mq_cb[0], NULL, NULL };
-
-// Memory Pool for Message Queue Data Storage
-#if (OS_MSGQUEUE_DATA_SIZE != 0)
-#if ((OS_MSGQUEUE_DATA_SIZE % 8) != 0)
-#error "Invalid Data Memory size for Message Queues!"
-#endif
-static uint64_t os_mq_data[2 + OS_MSGQUEUE_NUM + (OS_MSGQUEUE_DATA_SIZE/8)] \
-__attribute__((section(".bss.os.msgqueue.mem")));
-#endif
-
-#endif // (OS_MSGQUEUE_OBJ_MEM != 0)
-
-
-// Event Recorder Configuration
-// ============================
-
-#if (defined(OS_EVR_INIT) && (OS_EVR_INIT != 0))
-
-// Initial Thread configuration covered also Thread Flags and Generic Wait
-#if defined(OS_EVR_THREAD_FILTER)
-#if !defined(OS_EVR_THFLAGS_FILTER)
-#define OS_EVR_THFLAGS_FILTER OS_EVR_THREAD_FILTER
-#endif
-#if !defined(OS_EVR_WAIT_FILTER)
-#define OS_EVR_WAIT_FILTER OS_EVR_THREAD_FILTER
-#endif
-#endif
-
-// Migrate initial filter configuration
-#if defined(OS_EVR_MEMORY_FILTER)
-#define OS_EVR_MEMORY_LEVEL (((OS_EVR_MEMORY_FILTER & 0x80U) != 0U) ? (OS_EVR_MEMORY_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_KERNEL_FILTER)
-#define OS_EVR_KERNEL_LEVEL (((OS_EVR_KERNEL_FILTER & 0x80U) != 0U) ? (OS_EVR_KERNEL_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_THREAD_FILTER)
-#define OS_EVR_THREAD_LEVEL (((OS_EVR_THREAD_FILTER & 0x80U) != 0U) ? (OS_EVR_THREAD_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_WAIT_FILTER)
-#define OS_EVR_WAIT_LEVEL (((OS_EVR_WAIT_FILTER & 0x80U) != 0U) ? (OS_EVR_WAIT_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_THFLAGS_FILTER)
-#define OS_EVR_THFLAGS_LEVEL (((OS_EVR_THFLAGS_FILTER & 0x80U) != 0U) ? (OS_EVR_THFLAGS_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_EVFLAGS_FILTER)
-#define OS_EVR_EVFLAGS_LEVEL (((OS_EVR_EVFLAGS_FILTER & 0x80U) != 0U) ? (OS_EVR_EVFLAGS_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_TIMER_FILTER)
-#define OS_EVR_TIMER_LEVEL (((OS_EVR_TIMER_FILTER & 0x80U) != 0U) ? (OS_EVR_TIMER_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_MUTEX_FILTER)
-#define OS_EVR_MUTEX_LEVEL (((OS_EVR_MUTEX_FILTER & 0x80U) != 0U) ? (OS_EVR_MUTEX_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_SEMAPHORE_FILTER)
-#define OS_EVR_SEMAPHORE_LEVEL (((OS_EVR_SEMAPHORE_FILTER & 0x80U) != 0U) ? (OS_EVR_SEMAPHORE_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_MEMPOOL_FILTER)
-#define OS_EVR_MEMPOOL_LEVEL (((OS_EVR_MEMPOOL_FILTER & 0x80U) != 0U) ? (OS_EVR_MEMPOOL_FILTER & 0x0FU) : 0U)
-#endif
-#if defined(OS_EVR_MSGQUEUE_FILTER)
-#define OS_EVR_MSGQUEUE_LEVEL (((OS_EVR_MSGQUEUE_FILTER & 0x80U) != 0U) ? (OS_EVR_MSGQUEUE_FILTER & 0x0FU) : 0U)
-#endif
-
-#if defined(RTE_Compiler_EventRecorder)
-
-// Event Recorder Initialize
-__STATIC_INLINE void evr_initialize (void) {
-
- (void)EventRecorderInitialize(OS_EVR_LEVEL, (uint32_t)OS_EVR_START);
-
- (void)EventRecorderEnable(OS_EVR_MEMORY_LEVEL, EvtRtxMemoryNo, EvtRtxMemoryNo);
- (void)EventRecorderEnable(OS_EVR_KERNEL_LEVEL, EvtRtxKernelNo, EvtRtxKernelNo);
- (void)EventRecorderEnable(OS_EVR_THREAD_LEVEL, EvtRtxThreadNo, EvtRtxThreadNo);
- (void)EventRecorderEnable(OS_EVR_WAIT_LEVEL, EvtRtxWaitNo, EvtRtxWaitNo);
- (void)EventRecorderEnable(OS_EVR_THFLAGS_LEVEL, EvtRtxThreadFlagsNo, EvtRtxThreadFlagsNo);
- (void)EventRecorderEnable(OS_EVR_EVFLAGS_LEVEL, EvtRtxEventFlagsNo, EvtRtxEventFlagsNo);
- (void)EventRecorderEnable(OS_EVR_TIMER_LEVEL, EvtRtxTimerNo, EvtRtxTimerNo);
- (void)EventRecorderEnable(OS_EVR_MUTEX_LEVEL, EvtRtxMutexNo, EvtRtxMutexNo);
- (void)EventRecorderEnable(OS_EVR_SEMAPHORE_LEVEL, EvtRtxSemaphoreNo, EvtRtxSemaphoreNo);
- (void)EventRecorderEnable(OS_EVR_MEMPOOL_LEVEL, EvtRtxMemoryPoolNo, EvtRtxMemoryPoolNo);
- (void)EventRecorderEnable(OS_EVR_MSGQUEUE_LEVEL, EvtRtxMessageQueueNo, EvtRtxMessageQueueNo);
-}
-
-#else
-#warning "Event Recorder cannot be initialized (Event Recorder component is not selected)!"
-#define evr_initialize()
-#endif
-
-#endif // (OS_EVR_INIT != 0)
-
-
-// OS Configuration
-// ================
-
-
-const osRtxConfig_t osRtxConfig \
-__USED \
-__attribute__((section(".rodata"))) =
-{
- //lint -e{835} "Zero argument to operator"
- 0U // Flags
-#if (OS_PRIVILEGE_MODE != 0)
- | osRtxConfigPrivilegedMode
-#endif
-#if (OS_STACK_CHECK != 0)
- | osRtxConfigStackCheck
-#endif
-#if (OS_STACK_WATERMARK != 0)
- | osRtxConfigStackWatermark
-#endif
- ,
- (uint32_t)OS_TICK_FREQ,
-#if (OS_ROBIN_ENABLE != 0)
- (uint32_t)OS_ROBIN_TIMEOUT,
-#else
- 0U,
-#endif
- { &os_isr_queue[0], (uint16_t)(sizeof(os_isr_queue)/sizeof(void *)), 0U },
- {
- // Memory Pools (Variable Block Size)
-#if ((OS_THREAD_OBJ_MEM != 0) && (OS_THREAD_USER_STACK_SIZE != 0))
- &os_thread_stack[0], sizeof(os_thread_stack),
-#else
- NULL, 0U,
-#endif
-#if ((OS_MEMPOOL_OBJ_MEM != 0) && (OS_MEMPOOL_DATA_SIZE != 0))
- &os_mp_data[0], sizeof(os_mp_data),
-#else
- NULL, 0U,
-#endif
-#if ((OS_MSGQUEUE_OBJ_MEM != 0) && (OS_MSGQUEUE_DATA_SIZE != 0))
- &os_mq_data[0], sizeof(os_mq_data),
-#else
- NULL, 0U,
-#endif
-#if (OS_DYNAMIC_MEM_SIZE != 0)
- &os_mem[0], (uint32_t)OS_DYNAMIC_MEM_SIZE,
-#else
- NULL, 0U
-#endif
- },
- {
- // Memory Pools (Fixed Block Size)
-#if (OS_THREAD_OBJ_MEM != 0)
-#if (OS_THREAD_DEF_STACK_NUM != 0)
- &os_mpi_def_stack,
-#else
- NULL,
-#endif
- &os_mpi_thread,
-#else
- NULL,
- NULL,
-#endif
-#if (OS_TIMER_OBJ_MEM != 0)
- &os_mpi_timer,
-#else
- NULL,
-#endif
-#if (OS_EVFLAGS_OBJ_MEM != 0)
- &os_mpi_ef,
-#else
- NULL,
-#endif
-#if (OS_MUTEX_OBJ_MEM != 0)
- &os_mpi_mutex,
-#else
- NULL,
-#endif
-#if (OS_SEMAPHORE_OBJ_MEM != 0)
- &os_mpi_semaphore,
-#else
- NULL,
-#endif
-#if (OS_MEMPOOL_OBJ_MEM != 0)
- &os_mpi_mp,
-#else
- NULL,
-#endif
-#if (OS_MSGQUEUE_OBJ_MEM != 0)
- &os_mpi_mq,
-#else
- NULL,
-#endif
- },
- (uint32_t)OS_STACK_SIZE,
- &os_idle_thread_attr,
-#if ((OS_TIMER_THREAD_STACK_SIZE != 0) && (OS_TIMER_CB_QUEUE != 0))
- &os_timer_thread_attr,
- &os_timer_mq_attr,
- (uint32_t)OS_TIMER_CB_QUEUE
-#else
- NULL,
- NULL,
- 0U
-#endif
-};
-
-
-// Non weak reference to library irq module
-//lint -esym(526,irqRtxLib) "Defined by Exception handlers"
-//lint -esym(714,irqRtxLibRef) "Non weak reference"
-//lint -esym(765,irqRtxLibRef) "Global scope"
-extern uint8_t irqRtxLib;
-extern const uint8_t *irqRtxLibRef;
- const uint8_t *irqRtxLibRef = &irqRtxLib;
-
-// Default User SVC Table
-//lint -esym(714,osRtxUserSVC) "Referenced by Exception handlers"
-//lint -esym(765,osRtxUserSVC) "Global scope"
-//lint -e{9067} "extern array declared without size"
-extern void * const osRtxUserSVC[];
-__WEAK void * const osRtxUserSVC[1] = { (void *)0 };
-
-
-// OS Sections
-// ===========
-
-#if defined(__CC_ARM)
-__asm void os_cb_sections_wrapper (void) {
- EXTERN ||.bss.os.thread.cb$$Base|| [WEAK]
- EXTERN ||.bss.os.thread.cb$$Limit|| [WEAK]
- EXTERN ||.bss.os.timer.cb$$Base|| [WEAK]
- EXTERN ||.bss.os.timer.cb$$Limit|| [WEAK]
- EXTERN ||.bss.os.evflags.cb$$Base|| [WEAK]
- EXTERN ||.bss.os.evflags.cb$$Limit|| [WEAK]
- EXTERN ||.bss.os.mutex.cb$$Base|| [WEAK]
- EXTERN ||.bss.os.mutex.cb$$Limit|| [WEAK]
- EXTERN ||.bss.os.semaphore.cb$$Base|| [WEAK]
- EXTERN ||.bss.os.semaphore.cb$$Limit|| [WEAK]
- EXTERN ||.bss.os.mempool.cb$$Base|| [WEAK]
- EXTERN ||.bss.os.mempool.cb$$Limit|| [WEAK]
- EXTERN ||.bss.os.msgqueue.cb$$Base|| [WEAK]
- EXTERN ||.bss.os.msgqueue.cb$$Limit|| [WEAK]
-
- AREA ||.rodata||, DATA, READONLY
- EXPORT os_cb_sections
-os_cb_sections
- DCD ||.bss.os.thread.cb$$Base||
- DCD ||.bss.os.thread.cb$$Limit||
- DCD ||.bss.os.timer.cb$$Base||
- DCD ||.bss.os.timer.cb$$Limit||
- DCD ||.bss.os.evflags.cb$$Base||
- DCD ||.bss.os.evflags.cb$$Limit||
- DCD ||.bss.os.mutex.cb$$Base||
- DCD ||.bss.os.mutex.cb$$Limit||
- DCD ||.bss.os.semaphore.cb$$Base||
- DCD ||.bss.os.semaphore.cb$$Limit||
- DCD ||.bss.os.mempool.cb$$Base||
- DCD ||.bss.os.mempool.cb$$Limit||
- DCD ||.bss.os.msgqueue.cb$$Base||
- DCD ||.bss.os.msgqueue.cb$$Limit||
-
- AREA ||.emb_text||, CODE
-};
-#endif
-
-#if (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
-//lint -e{19} "Linker symbols"
-__asm (
- ".weakref __os_thread_cb_start__, .bss.os.thread.cb$$Base\n\t"
- ".weakref __os_thread_cb_end__, .bss.os.thread.cb$$Limit\n\t"
- ".weakref __os_timer_cb_start__, .bss.os.timer.cb$$Base\n\t"
- ".weakref __os_timer_cb_end__, .bss.os.timer.cb$$Limit\n\t"
- ".weakref __os_evflags_cb_start__, .bss.os.evflags.cb$$Base\n\t"
- ".weakref __os_evflags_cb_end__, .bss.os.evflags.cb$$Limit\n\t"
- ".weakref __os_mutex_cb_start__, .bss.os.mutex.cb$$Base\n\t"
- ".weakref __os_mutex_cb_end__, .bss.os.mutex.cb$$Limit\n\t"
- ".weakref __os_semaphore_cb_start__, .bss.os.semaphore.cb$$Base\n\t"
- ".weakref __os_semaphore_cb_end__, .bss.os.semaphore.cb$$Limit\n\t"
- ".weakref __os_mempool_cb_start__, .bss.os.mempool.cb$$Base\n\t"
- ".weakref __os_mempool_cb_end__, .bss.os.mempool.cb$$Limit\n\t"
- ".weakref __os_msgqueue_cb_start__, .bss.os.msgqueue.cb$$Base\n\t"
- ".weakref __os_msgqueue_cb_end__, .bss.os.msgqueue.cb$$Limit\n\t"
-);
-#endif
-
-#if (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) || \
- (defined(__GNUC__) && !defined(__CC_ARM))
-
-extern __attribute__((weak)) uint32_t __os_thread_cb_start__; //lint -esym(526,__os_thread_cb_start__)
-extern __attribute__((weak)) uint32_t __os_thread_cb_end__; //lint -esym(526,__os_thread_cb_end__)
-extern __attribute__((weak)) uint32_t __os_timer_cb_start__; //lint -esym(526,__os_timer_cb_start__)
-extern __attribute__((weak)) uint32_t __os_timer_cb_end__; //lint -esym(526,__os_timer_cb_end__)
-extern __attribute__((weak)) uint32_t __os_evflags_cb_start__; //lint -esym(526,__os_evflags_cb_start__)
-extern __attribute__((weak)) uint32_t __os_evflags_cb_end__; //lint -esym(526,__os_evflags_cb_end__)
-extern __attribute__((weak)) uint32_t __os_mutex_cb_start__; //lint -esym(526,__os_mutex_cb_start__)
-extern __attribute__((weak)) uint32_t __os_mutex_cb_end__; //lint -esym(526,__os_mutex_cb_end__)
-extern __attribute__((weak)) uint32_t __os_semaphore_cb_start__; //lint -esym(526,__os_semaphore_cb_start__)
-extern __attribute__((weak)) uint32_t __os_semaphore_cb_end__; //lint -esym(526,__os_semaphore_cb_end__)
-extern __attribute__((weak)) uint32_t __os_mempool_cb_start__; //lint -esym(526,__os_mempool_cb_start__)
-extern __attribute__((weak)) uint32_t __os_mempool_cb_end__; //lint -esym(526,__os_mempool_cb_end__)
-extern __attribute__((weak)) uint32_t __os_msgqueue_cb_start__; //lint -esym(526,__os_msgqueue_cb_start__)
-extern __attribute__((weak)) uint32_t __os_msgqueue_cb_end__; //lint -esym(526,__os_msgqueue_cb_end__)
-
-//lint -e{19} "Global symbol"
-__asm (".global os_cb_sections");
-
-//lint -e{9067} "extern array declared without size"
-extern const uint32_t os_cb_sections[];
-
-//lint -esym(714,os_cb_sections) "Referenced by debugger"
-//lint -esym(765,os_cb_sections) "Global scope"
-//lint -e{923} -e{9078} "cast from pointer to unsigned int"
-const uint32_t os_cb_sections[] \
-__attribute__((section(".rodata"))) =
-{
- (uint32_t)&__os_thread_cb_start__,
- (uint32_t)&__os_thread_cb_end__,
- (uint32_t)&__os_timer_cb_start__,
- (uint32_t)&__os_timer_cb_end__,
- (uint32_t)&__os_evflags_cb_start__,
- (uint32_t)&__os_evflags_cb_end__,
- (uint32_t)&__os_mutex_cb_start__,
- (uint32_t)&__os_mutex_cb_end__,
- (uint32_t)&__os_semaphore_cb_start__,
- (uint32_t)&__os_semaphore_cb_end__,
- (uint32_t)&__os_mempool_cb_start__,
- (uint32_t)&__os_mempool_cb_end__,
- (uint32_t)&__os_msgqueue_cb_start__,
- (uint32_t)&__os_msgqueue_cb_end__
-};
-
-#endif
-
-
-// OS Initialization
-// =================
-
-#if defined(__CC_ARM) || \
- (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
-
-#ifndef __MICROLIB
-//lint -esym(714,_platform_post_stackheap_init) "Referenced by C library"
-//lint -esym(765,_platform_post_stackheap_init) "Global scope"
-extern void _platform_post_stackheap_init (void);
-__WEAK void _platform_post_stackheap_init (void) {
- (void)osKernelInitialize();
-}
-#endif
-
-#elif defined(__GNUC__)
-
-extern void software_init_hook (void);
-__WEAK void software_init_hook (void) {
- (void)osKernelInitialize();
-}
-
-#endif
-
-
-// OS Hooks
-// ========
-
-// RTOS Kernel Pre-Initialization Hook
-#if (defined(OS_EVR_INIT) && (OS_EVR_INIT != 0))
-void osRtxKernelPreInit (void);
-void osRtxKernelPreInit (void) {
- if (osKernelGetState() == osKernelInactive) {
- evr_initialize();
- }
-}
-#endif
-
-
-// C/C++ Standard Library Multithreading Interface
-// ===============================================
-
-#if ( !defined(RTX_NO_MULTITHREAD_CLIB) && \
- ( defined(__CC_ARM) || \
- (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))) && \
- !defined(__MICROLIB))
-
-#define LIBSPACE_SIZE 96
-
-//lint -esym(714,__user_perthread_libspace,_mutex_*) "Referenced by C library"
-//lint -esym(765,__user_perthread_libspace,_mutex_*) "Global scope"
-//lint -esym(9003, os_libspace*) "variables 'os_libspace*' defined at module scope"
-
-// Memory for libspace
-static uint32_t os_libspace[OS_THREAD_LIBSPACE_NUM+1][LIBSPACE_SIZE/4] \
-__attribute__((section(".bss.os.libspace")));
-
-// Thread IDs for libspace
-static osThreadId_t os_libspace_id[OS_THREAD_LIBSPACE_NUM] \
-__attribute__((section(".bss.os.libspace")));
-
-// Check if Kernel has been started
-static uint32_t os_kernel_is_active (void) {
- static uint8_t os_kernel_active = 0U;
-
- if (os_kernel_active == 0U) {
- if (osKernelGetState() > osKernelReady) {
- os_kernel_active = 1U;
- }
- }
- return (uint32_t)os_kernel_active;
-}
-
-// Provide libspace for current thread
-void *__user_perthread_libspace (void);
-void *__user_perthread_libspace (void) {
- osThreadId_t id;
- uint32_t n;
-
- if (os_kernel_is_active() != 0U) {
- id = osThreadGetId();
- for (n = 0U; n < (uint32_t)OS_THREAD_LIBSPACE_NUM; n++) {
- if (os_libspace_id[n] == NULL) {
- os_libspace_id[n] = id;
- }
- if (os_libspace_id[n] == id) {
- break;
- }
- }
- if (n == (uint32_t)OS_THREAD_LIBSPACE_NUM) {
- (void)osRtxErrorNotify(osRtxErrorClibSpace, id);
- }
- } else {
- n = OS_THREAD_LIBSPACE_NUM;
- }
-
- //lint -e{9087} "cast between pointers to different object types"
- return (void *)&os_libspace[n][0];
-}
-
-// Mutex identifier
-typedef void *mutex;
-
-//lint -save "Function prototypes defined in C library"
-//lint -e970 "Use of 'int' outside of a typedef"
-//lint -e818 "Pointer 'm' could be declared as pointing to const"
-
-// Initialize mutex
-__USED
-int _mutex_initialize(mutex *m);
-int _mutex_initialize(mutex *m) {
- int result;
-
- *m = osMutexNew(NULL);
- if (*m != NULL) {
- result = 1;
- } else {
- result = 0;
- (void)osRtxErrorNotify(osRtxErrorClibMutex, m);
- }
- return result;
-}
-
-// Acquire mutex
-__USED
-void _mutex_acquire(mutex *m);
-void _mutex_acquire(mutex *m) {
- if (os_kernel_is_active() != 0U) {
- (void)osMutexAcquire(*m, osWaitForever);
- }
-}
-
-// Release mutex
-__USED
-void _mutex_release(mutex *m);
-void _mutex_release(mutex *m) {
- if (os_kernel_is_active() != 0U) {
- (void)osMutexRelease(*m);
- }
-}
-
-// Free mutex
-__USED
-void _mutex_free(mutex *m);
-void _mutex_free(mutex *m) {
- (void)osMutexDelete(*m);
-}
-
-//lint -restore
-
-#endif
diff --git a/app_broker/CMakeLists.txt b/app_broker/CMakeLists.txt
index cc6622c..2933833 100644
--- a/app_broker/CMakeLists.txt
+++ b/app_broker/CMakeLists.txt
@@ -14,27 +14,158 @@
# brings configuration from TF-M build
add_subdirectory(${CONFIG_SPE_PATH} ${CMAKE_BINARY_DIR}/spe)
-add_subdirectory(log)
-add_subdirectory(CMSIS)
-add_subdirectory(os_wrapper)
+####################### NS application libraries #######################
-add_library(tfm_test_broker STATIC
- main_ns.c
+# Build all the NS application libraries here under app_broker
+# Those NS libraries depend on each other. It is more convenient to sort out the dependencies here.
+#
+# Those NS libraries also link to libraries exported from TF-M secure build. Specify all the
+# dependencies on TF-M exported libraries here, rather than under each NS library folder.
+# Therefore, NS library can be shared and re-used in other downstream projects, without specially
+# handling the differences of dependencies and paths in NS builds.
+
+# Interface files exported from TF-M secure build
+set(SPE_INSTALL_INTERFACE_SRC ${CONFIG_SPE_PATH}/interface/src)
+set(SPE_INSTALL_INTERFACE_INC ${CONFIG_SPE_PATH}/interface/include)
+# lib parth
+set(APP_LIB_DIR ${CMAKE_CURRENT_LIST_DIR}/../lib)
+
+# TF-M logging
+add_subdirectory(${APP_LIB_DIR}/log ${CMAKE_CURRENT_BINARY_DIR}/lib/log)
+
+# OS wrapper library consists of the wrapper layer of RTOSes, such as RTX
+add_library(os_wrapper STATIC)
+
+target_sources(os_wrapper
+ PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/os_wrapper_cmsis_rtos_v2.c
)
-target_include_directories(tfm_test_broker PUBLIC .)
+target_include_directories(os_wrapper
+ PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}/../lib/os_wrapper
+ # Some NS files include "os_wrapper/xxx.h" instead
+ ${CMAKE_CURRENT_LIST_DIR}/../lib
+ # Some OS wrapper header files are exported from TF-M secure build
+ ${SPE_INSTALL_INTERFACE_INC}
+)
+
+target_link_libraries(os_wrapper
+ PRIVATE
+ RTX_OS
+ tfm_nsid_manager
+)
+
+# NSID manager
+add_library(tfm_nsid_manager INTERFACE)
+
+target_include_directories(tfm_nsid_manager
+ INTERFACE
+ ${APP_LIB_DIR}/nsid_manager
+)
+
+target_sources(tfm_nsid_manager
+ INTERFACE
+ $<$<BOOL:${TFM_NS_MANAGE_NSID}>:${APP_LIB_DIR}/nsid_manager/tfm_nsid_manager.c>
+)
+
+target_compile_definitions(tfm_nsid_manager
+ INTERFACE
+ $<$<BOOL:${TFM_NS_MANAGE_NSID}>:TFM_NS_MANAGE_NSID>
+ $<$<BOOL:${TEST_NS_MANAGE_NSID}>:TEST_NS_MANAGE_NSID>
+)
+
+# Provide TZ context management stub to RTOS if protected by Trustzone
+target_sources(RTX_OS
+ INTERFACE
+ $<$<BOOL:${CONFIG_TFM_USE_TRUSTZONE}>:${APP_LIB_DIR}/nsid_manager/tz_shim_layer.c>
+)
+
+target_link_libraries(RTX_OS
+ INTERFACE
+ tfm_nsid_manager
+)
+
+# Multi-core library
+if(TFM_PARTITION_NS_AGENT_MAILBOX)
+ add_library(ns_multi_core STATIC)
+
+ target_sources(ns_multi_core
+ PRIVATE
+ $<$<NOT:$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>>:${SPE_INSTALL_INTERFACE_SRC}/multi_core/tfm_ns_mailbox.c>
+ $<$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>:${SPE_INSTALL_INTERFACE_SRC}/multi_core/tfm_ns_mailbox_thread.c>
+ # NS RTOS specific implementation of NS mailbox
+ ${APP_LIB_DIR}/multi_core/tfm_ns_mailbox_rtos_api.c
+ $<$<BOOL:${TEST_NS_MULTI_CORE}>:${APP_LIB_DIR}/multi_core/tfm_ns_mailbox_test.c>
+ )
+
+ target_compile_definitions(ns_multi_core
+ PUBLIC
+ $<$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>:TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD>
+ TFM_MULTI_CORE_NS_OS
+ )
+
+ target_link_libraries(ns_multi_core
+ PRIVATE
+ platform_ns
+ tfm_api_ns
+ os_wrapper
+ )
+endif()
+
+################## Update plaform_ns with NS settings #################
+
+target_include_directories(platform_ns
+ PUBLIC
+ $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:${SPE_INSTALL_INTERFACE_INC}/multi_core>
+ ${SPE_INSTALL_INTERFACE_INC}
+)
+
+target_compile_definitions(platform_ns
+ PUBLIC
+ $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:TFM_MULTI_CORE_NS_OS>
+)
+
+################# Update NS interface with NS settings ################
+
+target_sources(tfm_api_ns
+ PRIVATE
+ # NS specific implementation of NS interface dispatcher
+ $<$<BOOL:${CONFIG_TFM_USE_TRUSTZONE}>:${SPE_INSTALL_INTERFACE_SRC}/os_wrapper/tfm_ns_interface_rtos.c>
+)
+
+target_compile_definitions(tfm_api_ns
+ PUBLIC
+ $<$<BOOL:${TEST_NS_MULTI_CORE}>:TFM_MULTI_CORE_TEST>
+)
+
+target_link_libraries(tfm_api_ns
+ PRIVATE
+ $<$<BOOL:${CONFIG_TFM_USE_TRUSTZONE}>:os_wrapper>
+)
+
+######################## NS application broker ########################
+
+add_library(tfm_test_broker STATIC)
+
+target_sources(tfm_test_broker
+ PRIVATE
+ main_ns.c
+ $<$<BOOL:${TFM_NS_MANAGE_NSID}>:${CMAKE_CURRENT_LIST_DIR}/tfm_nsid_map_table.c>
+)
+
+target_include_directories(tfm_test_broker
+ PUBLIC
+ .
+)
target_link_libraries(tfm_test_broker
+ PRIVATE
+ os_wrapper
+ tfm_nsid_manager
PUBLIC
+ RTX_OS
tfm_api_ns
tfm_log
- os_wrapper
+ $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:ns_multi_core>
)
-
-add_subdirectory(nsid_manager)
-target_link_libraries(tfm_test_broker PUBLIC tfm_nsid_manager)
-
-if (TFM_PARTITION_NS_AGENT_MAILBOX)
- add_subdirectory(multi_core)
- target_link_libraries(tfm_test_broker PUBLIC ns_multi_core)
-endif()
diff --git a/app_broker/log/CMakeLists.txt b/app_broker/log/CMakeLists.txt
deleted file mode 100644
index 3612435..0000000
--- a/app_broker/log/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-############################# Ns Log ###########################################
-add_library(tfm_log STATIC)
-
-target_sources(tfm_log
- PRIVATE
- tfm_log_raw.c
-)
-
-target_include_directories(tfm_log
- PUBLIC
- ${CMAKE_CURRENT_SOURCE_DIR}
-)
-
-target_link_libraries(tfm_log
- PUBLIC
- platform_ns
-)
diff --git a/app_broker/log/tfm_log.h b/app_broker/log/tfm_log.h
deleted file mode 100644
index 5563434..0000000
--- a/app_broker/log/tfm_log.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __TFM_LOG_H__
-#define __TFM_LOG_H__
-
-#include "tfm_log_raw.h"
-
-/* Functions and macros in this file is for 'thread mode' usage. */
-
-#define LOG_MSG(...) tfm_log_printf(__VA_ARGS__)
-
-#endif /* __TFM_LOG_H__ */
diff --git a/app_broker/log/tfm_log_raw.c b/app_broker/log/tfm_log_raw.c
deleted file mode 100644
index 86cf1c3..0000000
--- a/app_broker/log/tfm_log_raw.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdint.h>
-#include "uart_stdout.h"
-
-#define PRINT_BUFF_SIZE 32
-#define NUM_BUFF_SIZE 12
-
-struct formatted_buffer_t {
- size_t pos;
- uint8_t buf[PRINT_BUFF_SIZE];
-};
-
-const char hex_digits_lo[] = {'0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
-const char hex_digits_up[] = {'0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-
-static void _tfm_flush_formatted_buffer(struct formatted_buffer_t *pb,
- uint8_t data)
-{
- pb->buf[pb->pos++] = data;
- if (pb->pos >= PRINT_BUFF_SIZE) {
- pb->pos = 0;
- /* uart flush and print here. */
- stdio_output_string(pb->buf, PRINT_BUFF_SIZE);
- }
-}
-
-static int _tfm_string_output(struct formatted_buffer_t *pb,
- const char *str)
-{
- int count = 0;
-
- while (*str) {
- _tfm_flush_formatted_buffer(pb, *str++);
- count++;
- }
-
- return count;
-}
-
-static int _tfm_dec_num_output(struct formatted_buffer_t *pb,
- int32_t num, uint8_t sign)
-{
- int count = 0;
- uint8_t num_buff[NUM_BUFF_SIZE] = {0};
- uint32_t number = (uint32_t)num;
- uint32_t k = 0;
-
- if (sign == 'd' && num < 0) {
- _tfm_flush_formatted_buffer(pb, '-');
- count++;
- number = -num;
- }
-
- do {
- num_buff[k++] = '0' + number % 10;
- number /= 10;
- } while (number);
-
- while (k) {
- _tfm_flush_formatted_buffer(pb, num_buff[--k]);
- count++;
- }
-
- return count;
-}
-
-static int _tfm_hex_num_output(struct formatted_buffer_t *pb, uint32_t num,
- const char *hex_digits)
-{
- int count = 0;
- uint8_t num_buff[NUM_BUFF_SIZE] = {0};
- uint32_t k = 0;
-
- do {
- num_buff[k++] = hex_digits[num & 0x0f];
- num >>= 4;
- } while (num);
-
- while (k) {
- _tfm_flush_formatted_buffer(pb, num_buff[--k]);
- count++;
- }
-
- return count;
-}
-
-static int _tfm_log_vprintf(const char *fmt, va_list ap)
-{
- int count = 0;
- struct formatted_buffer_t outputbuf;
-
- outputbuf.pos = 0;
-
- while (*fmt) {
- if (*fmt == '%') {
- switch (*(++fmt)) {
- case 'd':
- case 'i':
- count += _tfm_dec_num_output(&outputbuf,
- va_arg(ap, int32_t), 'd');
- break;
- case 'u':
- count += _tfm_dec_num_output(&outputbuf,
- va_arg(ap, int32_t), 'u');
- break;
- case 'x':
- count += _tfm_hex_num_output(&outputbuf, va_arg(ap, uint32_t),
- hex_digits_lo);
- break;
- case 'X':
- count += _tfm_hex_num_output(&outputbuf, va_arg(ap, uint32_t),
- hex_digits_up);
- break;
- case 'p':
- count += _tfm_string_output(&outputbuf, "0x");
- count += _tfm_hex_num_output(&outputbuf, va_arg(ap, uint32_t),
- hex_digits_lo);
- break;
- case 's':
- count += _tfm_string_output(&outputbuf, va_arg(ap, char*));
- break;
- case 'c':
- _tfm_flush_formatted_buffer(&outputbuf,
- (uint8_t)va_arg(ap, int32_t));
- count++;
- break;
- case '%':
- _tfm_flush_formatted_buffer(&outputbuf, '%');
- count++;
- break;
- default:
- count += _tfm_string_output(&outputbuf, "[Unsupported Tag]");
- continue;
- }
- fmt++;
- } else {
- _tfm_flush_formatted_buffer(&outputbuf, *fmt++);
- count++;
- }
- }
-
- /* End of printf, flush buf */
- if (outputbuf.pos) {
- count += stdio_output_string(outputbuf.buf, outputbuf.pos);
- }
-
- return count;
-}
-
-int tfm_log_printf(const char *fmt, ...)
-{
- int count = 0;
- va_list ap;
-
- va_start(ap, fmt);
- count = _tfm_log_vprintf(fmt, ap);
- va_end(ap);
-
- return count;
-}
diff --git a/app_broker/log/tfm_log_raw.h b/app_broker/log/tfm_log_raw.h
deleted file mode 100644
index 7a5a942..0000000
--- a/app_broker/log/tfm_log_raw.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2019, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __TFM_LOG_RAW_H__
-#define __TFM_LOG_RAW_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Prints log messages
- *
- * \param[in] fmt Formatted string
- * \param[in] ... Viriable length argument
- *
- * \return Number of chars printed
- *
- * \note This function has the similar input argument format as
- * the 'printf' function. But it supports only some basic
- * formats like 'sdicpuxX' and '%'. It will output
- * "[Unsupported Tag]" when none of the above formats match
- *
- * \details The following output formats are supported.
- * %s - string
- * %d - decimal signed integer (same for %i)
- * %u - decimal unsigned integer
- * %x - hex in lowercase
- * %X - hex in uppercase
- * %p - hex address of a pointer in lowercase
- * %c - character
- * %% - the '%' symbol
- */
-int tfm_log_printf(const char *fmt, ...);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TFM_LOG_RAW_H__ */
diff --git a/app_broker/multi_core/CMakeLists.txt b/app_broker/multi_core/CMakeLists.txt
deleted file mode 100644
index 5780624..0000000
--- a/app_broker/multi_core/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-#
-# This CMake script used in a split build only. In the legacy 'sinlge' build
-# this file is ignoed. Please don't be confused.
-#
-cmake_minimum_required(VERSION 3.15)
-
-add_library(ns_multi_core STATIC
- PRIVATE
- tfm_multi_core_ns_api.c
- tfm_multi_core_psa_ns_api.c
- $<$<NOT:$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>>:tfm_ns_mailbox.c>
- $<$<AND:$<BOOL:${TFM_MULTI_CORE_TOPOLOGY}>,$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>>:tfm_ns_mailbox_thread.c>
- # NS RTOS specific implementation of NS mailbox
- $<$<BOOL:${TFM_MULTI_CORE_TOPOLOGY}>:tfm_ns_mailbox_rtos_api.c>
- $<$<BOOL:${TEST_NS_MULTI_CORE}>:tfm_ns_mailbox_test.c>
-)
-
-target_compile_definitions(ns_multi_core
- PUBLIC
- $<$<BOOL:${TFM_PARTITION_NS_AGENT_MAILBOX}>:TFM_PARTITION_NS_AGENT_MAILBOX>
- $<$<AND:$<BOOL:${TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD}>,$<BOOL:${TFM_MULTI_CORE_TOPOLOGY}>>:TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD>
-)
diff --git a/app_broker/multi_core/tfm_ns_mailbox_rtos_api.c b/app_broker/multi_core/tfm_ns_mailbox_rtos_api.c
deleted file mode 100644
index 32fbedf..0000000
--- a/app_broker/multi_core/tfm_ns_mailbox_rtos_api.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-/*
- * This file is a reference implementation of Non-secure mailbox RTOS API.
- * This reference implementation is based on TF-M ROTS wrapper API.
- * It can be replaced by RTOS specific implementation.
- */
-
-#include "cmsis_compiler.h"
-
-#ifdef TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD
-#include "os_wrapper/msg_queue.h"
-#else
-#include "os_wrapper/semaphore.h"
-#endif
-#include "os_wrapper/thread.h"
-
-#include "tfm_ns_mailbox.h"
-
-/*
- * Thread flag to manage wait/wake mechanism in mailbox.、
- * Thread flag can be RTOS specific.
- * The following example definition also covers the rule of CMSIS-RTOS2, which
- * requires the MSB of thread flags must be 0b0.
- */
-#define MAILBOX_THREAD_FLAG 0x5FCA0000
-
-#ifndef TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD
-#define MAX_SEMAPHORE_COUNT NUM_MAILBOX_QUEUE_SLOT
-
-static void *ns_lock_handle = NULL;
-#endif
-
-const void *tfm_ns_mailbox_os_get_task_handle(void)
-{
- return os_wrapper_thread_get_handle();
-}
-
-void tfm_ns_mailbox_os_wait_reply(void)
-{
- os_wrapper_thread_wait_flag(MAILBOX_THREAD_FLAG, OS_WRAPPER_WAIT_FOREVER);
-}
-
-void tfm_ns_mailbox_os_wake_task_isr(const void *task_handle)
-{
- os_wrapper_thread_set_flag_isr((void *)task_handle, MAILBOX_THREAD_FLAG);
-}
-
-/*
- * When NSPE mailbox only covers a single non-secure core, spinlock only
- * requires to disable IRQ.
- */
-void tfm_ns_mailbox_os_spin_lock(void)
-{
- __disable_irq();
-}
-
-/*
- * It is assumed that IRQ is always enabled when spinlock is acquired.
- * Otherwise, the waiting thread won't be woken up.
- */
-void tfm_ns_mailbox_os_spin_unlock(void)
-{
- __enable_irq();
-}
-
-#ifdef TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD
-void *tfm_ns_mailbox_os_mq_create(size_t msg_size, uint8_t msg_count)
-{
- return os_wrapper_msg_queue_create(msg_size, msg_count);
-}
-
-int32_t tfm_ns_mailbox_os_mq_send(void *mq_handle, const void *msg_ptr)
-{
- int32_t ret;
-
- if (!mq_handle || !msg_ptr) {
- return MAILBOX_INVAL_PARAMS;
- }
-
- while (1) {
- ret = os_wrapper_msg_queue_send(mq_handle, msg_ptr);
- if (ret == OS_WRAPPER_SUCCESS) {
- return MAILBOX_SUCCESS;
- }
- }
-
- return MAILBOX_GENERIC_ERROR;
-}
-
-int32_t tfm_ns_mailbox_os_mq_receive(void *mq_handle, void *msg_ptr)
-{
- int32_t ret;
-
- if (!mq_handle || !msg_ptr) {
- return MAILBOX_INVAL_PARAMS;
- }
-
- while (1) {
- ret = os_wrapper_msg_queue_receive(mq_handle, msg_ptr);
- if (ret == OS_WRAPPER_SUCCESS) {
- return MAILBOX_SUCCESS;
- }
- }
-
- return MAILBOX_GENERIC_ERROR;
-}
-#else /* TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD */
-int32_t tfm_ns_mailbox_os_lock_init(void)
-{
- ns_lock_handle = os_wrapper_semaphore_create(MAX_SEMAPHORE_COUNT,
- MAX_SEMAPHORE_COUNT,
- NULL);
- if (!ns_lock_handle) {
- return MAILBOX_GENERIC_ERROR;
- }
-
- return MAILBOX_SUCCESS;
-}
-
-int32_t tfm_ns_mailbox_os_lock_acquire(void)
-{
- return os_wrapper_semaphore_acquire(ns_lock_handle,
- OS_WRAPPER_WAIT_FOREVER);
-}
-
-int32_t tfm_ns_mailbox_os_lock_release(void)
-{
- return os_wrapper_semaphore_release(ns_lock_handle);
-}
-#endif /* TFM_MULTI_CORE_NS_OS_MAILBOX_THREAD */
diff --git a/app_broker/multi_core/tfm_ns_mailbox_test.c b/app_broker/multi_core/tfm_ns_mailbox_test.c
deleted file mode 100644
index f3a9d50..0000000
--- a/app_broker/multi_core/tfm_ns_mailbox_test.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#include "tfm_ns_mailbox.h"
-#include "tfm_ns_mailbox_test.h"
-
-static struct ns_mailbox_queue_t *stats_queue_ptr = NULL;
-
-void tfm_ns_mailbox_tx_stats_init(struct ns_mailbox_queue_t *ns_queue)
-{
- if (!ns_queue) {
- return;
- }
-
- ns_queue->nr_tx = 0;
- ns_queue->nr_used_slots = 0;
-
- stats_queue_ptr = ns_queue;
-}
-
-int32_t tfm_ns_mailbox_tx_stats_reinit(void)
-{
- if (!stats_queue_ptr) {
- return MAILBOX_INVAL_PARAMS;
- }
-
- stats_queue_ptr->nr_tx = 0;
- stats_queue_ptr->nr_used_slots = 0;
-
- return MAILBOX_SUCCESS;
-}
-
-void tfm_ns_mailbox_tx_stats_update(void)
-{
- mailbox_queue_status_t empty_status;
- uint8_t idx, nr_empty = 0;
-
- if (!stats_queue_ptr) {
- return;
- }
-
- tfm_ns_mailbox_os_spin_lock();
- /* Count the number of used slots when this tx arrives */
- empty_status = stats_queue_ptr->empty_slots;
- tfm_ns_mailbox_os_spin_unlock();
-
- if (empty_status) {
- for (idx = 0; idx < NUM_MAILBOX_QUEUE_SLOT; idx++) {
- if (empty_status & (0x1UL << idx)) {
- nr_empty++;
- }
- }
- }
-
- tfm_ns_mailbox_os_spin_lock();
- stats_queue_ptr->nr_used_slots += (NUM_MAILBOX_QUEUE_SLOT - nr_empty);
- stats_queue_ptr->nr_tx++;
- tfm_ns_mailbox_os_spin_unlock();
-}
-
-void tfm_ns_mailbox_stats_avg_slot(struct ns_mailbox_stats_res_t *stats_res)
-{
- uint32_t nr_used_slots, nr_tx;
-
- if (!stats_queue_ptr || !stats_res) {
- return;
- }
-
- nr_used_slots = stats_queue_ptr->nr_used_slots;
- nr_tx = stats_queue_ptr->nr_tx;
-
- stats_res->avg_nr_slots = nr_used_slots / nr_tx;
- nr_used_slots %= nr_tx;
- stats_res->avg_nr_slots_tenths = nr_used_slots * 10 / nr_tx;
-}
diff --git a/app_broker/nsid_manager/CMakeLists.txt b/app_broker/nsid_manager/CMakeLists.txt
deleted file mode 100644
index 24c5d9e..0000000
--- a/app_broker/nsid_manager/CMakeLists.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-cmake_minimum_required(VERSION 3.15)
-
-add_library(tfm_nsid_manager STATIC)
-
-target_include_directories(tfm_nsid_manager PUBLIC .)
-
-target_link_libraries(tfm_nsid_manager PRIVATE RTX_OS)
-
-if(TFM_NS_MANAGE_NSID)
- target_sources(tfm_nsid_manager
- PUBLIC
- tfm_nsid_manager.c
- tfm_nsid_map_table.c
- tz_shim_layer.c
- )
-
- target_compile_definitions(tfm_nsid_manager
- PUBLIC
- TFM_NS_MANAGE_NSID
- $<$<BOOL:${TEST_NS_MANAGE_NSID}>:TEST_NS_MANAGE_NSID>
- )
-else()
- target_sources(tfm_nsid_manager
- PUBLIC
- tz_stub.c
- )
-endif()
diff --git a/app_broker/nsid_manager/tfm_nsid_manager.c b/app_broker/nsid_manager/tfm_nsid_manager.c
deleted file mode 100755
index 00b38f3..0000000
--- a/app_broker/nsid_manager/tfm_nsid_manager.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#include "tfm_ns_client_ext.h"
-#include "tfm_nsid_manager.h"
-
-/* Max number of threads could be customised by RTOS */
-#ifndef THREAD_NUM_MAX
-#define THREAD_NUM_MAX 10
-#endif
-
-/* Map table of token and NSIDs */
-struct nsid_token_pair {
- uint32_t token;
- int32_t nsid;
-};
-
-static struct nsid_token_pair test_ns_token_table[THREAD_NUM_MAX];
-
-uint8_t nsid_mgr_init(void)
-{
- uint32_t i;
-
- for (i = 0; i < THREAD_NUM_MAX; i++) {
- test_ns_token_table[i].token = TFM_NS_CLIENT_INVALID_TOKEN;
- test_ns_token_table[i].nsid = TFM_INVALID_NSID_MIN;
- }
-
- return NSID_MGR_ERR_SUCCESS;
-}
-
-uint8_t nsid_mgr_add_entry(int32_t nsid, uint32_t token)
-{
- uint32_t i;
-
- if (nsid >= TFM_INVALID_NSID_MIN) {
- return NSID_MGR_ERR_INVALID_NSID;
- }
-
- if (token == TFM_NS_CLIENT_INVALID_TOKEN) {
- return NSID_MGR_ERR_INVALID_TOKEN;
- }
-
- for (i = 0; i < THREAD_NUM_MAX; i++) {
- if (test_ns_token_table[i].token == TFM_NS_CLIENT_INVALID_TOKEN) {
- test_ns_token_table[i].token = token;
- test_ns_token_table[i].nsid = nsid;
- return NSID_MGR_ERR_SUCCESS;
- }
- }
-
- /* No free entry for new token, return error */
- return NSID_MGR_ERR_NO_FREE_ENTRY;
-}
-
-uint8_t nsid_mgr_remove_entry(uint32_t token)
-{
- uint32_t i;
-
- if (token == TFM_NS_CLIENT_INVALID_TOKEN) {
- return NSID_MGR_ERR_INVALID_TOKEN;
- }
-
- for (i = 0; i < THREAD_NUM_MAX; i++) {
- if (test_ns_token_table[i].token == token) {
- test_ns_token_table[i].token = TFM_NS_CLIENT_INVALID_TOKEN;
- test_ns_token_table[i].nsid = TFM_INVALID_NSID_MIN;
- return NSID_MGR_ERR_SUCCESS;
- }
- }
-
- /* Token not found in the table, return error */
- return NSID_MGR_ERR_INVALID_TOKEN;
-}
-
-int32_t nsid_mgr_query_nsid(uint32_t token)
-{
- uint32_t i;
-
- /* Return invalid NSID if token is invalid */
- if (token == TFM_NS_CLIENT_INVALID_TOKEN) {
- return TFM_INVALID_NSID_MIN;
- }
-
- for (i = 0; i < THREAD_NUM_MAX; i++) {
- if (test_ns_token_table[i].token == token) {
- return test_ns_token_table[i].nsid;
- }
- }
-
- /* Token not found in the table, return invalid NSID */
- return TFM_INVALID_NSID_MIN;
-}
diff --git a/app_broker/nsid_manager/tfm_nsid_manager.h b/app_broker/nsid_manager/tfm_nsid_manager.h
deleted file mode 100755
index b42311a..0000000
--- a/app_broker/nsid_manager/tfm_nsid_manager.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-/*
- * This is a simple implementaton for reference to manage NSID from NS side.
- * Developers can design the management according to RTOS and usage scenarios.
- */
-
-#ifndef __TFM_NSID_MANAGER_H__
-#define __TFM_NSID_MANAGER_H__
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
-#endif
-
-#define TFM_DEFAULT_GID 0x00
-#define TFM_DEFAULT_NSID ((int32_t)-1)
-/* Non-secure client ID needs to be negative */
-#define TFM_INVALID_NSID_MIN ((int32_t)0)
-
-/* NSID Manager Error Code */
-#define NSID_MGR_ERR_SUCCESS 0x00
-#define NSID_MGR_ERR_INVALID_NSID 0x01
-#define NSID_MGR_ERR_INVALID_TOKEN 0x02
-#define NSID_MGR_ERR_NO_FREE_ENTRY 0x03
-
-/*
- * Current active NSID token needs to be manually save and reload
- * before and after calling NS client ext directly from SVC in NSID test suite.
- */
-#ifdef TEST_NS_MANAGE_NSID
-extern uint32_t current_active_token;
-#endif
-
-/*
- * Initialize the table to map token and nsid.
- * This function should be called before any other NSID manager APIs.
- */
-uint8_t nsid_mgr_init(void);
-
-/*
- * Add a new nsid-token map entry to the table.
- * This function should be called once a new token
- * has been successfully assigned by ns_client_ext.
- */
-uint8_t nsid_mgr_add_entry(int32_t nsid, uint32_t token);
-
-/*
- * Delete a nsid-token map entry from the table.
- * This function should be called once an existing token
- * has been successfully released by ns_client_ext.
- */
-uint8_t nsid_mgr_remove_entry(uint32_t token);
-
-/*
- * Query NSID from the map table with token.
- * This function is to get NSID assigned by RTOS with token of a NS thread.
- */
-int32_t nsid_mgr_query_nsid(uint32_t token);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TFM_NSID_MANAGER_H__ */
diff --git a/app_broker/nsid_manager/tz_shim_layer.c b/app_broker/nsid_manager/tz_shim_layer.c
deleted file mode 100755
index 74a12ec..0000000
--- a/app_broker/nsid_manager/tz_shim_layer.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (c) 2021, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-/*
- * This is a simple example implementaton for reference
- * to make TZ APIs co-work with TF-M NSCE module.
- *
- * Developers can implement according to different RTOS and usage scenarios.
- */
-
-#include "tz_context.h"
-
-#include "tfm_ns_client_ext.h"
-#include "tfm_nsid_manager.h"
-
-#ifdef TFM_NS_MANAGE_NSID
-#define NSID_MGR_THREAD_ID_MAX 0xFF
-#define NSID_MGR_GROUP_ID_DEFAULT 0X00
-/*
- * 0 is reserved for thread ID in NSID manager to avoid token being set as 0.
- * TZ_MemoryID_t is used to record the token value.
- * Scheduler of the RTOS would be disabled if TZ_MemoryID_t is 0.
- */
-static uint8_t nsid_mgr_thread_id = 1;
-#endif
-
-#ifdef TEST_NS_MANAGE_NSID
-uint32_t current_active_token;
-#endif
-
-/*
- * TF-M shim layer of the CMSIS TZ RTOS thread context management API
- */
-
-/*
- * Initialize token-nsid map table in tfm nsid manager
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_InitContextSystem_S(void)
-{
-#ifdef TFM_NS_MANAGE_NSID
- /* Initialize the ns client ext */
- if (tfm_nsce_init(0) == 0) {
- return 0U; /* Error */
- }
-
- /* Initialize the nsid manager */
- if (nsid_mgr_init() == NSID_MGR_ERR_SUCCESS) {
-#ifdef TEST_NS_MANAGE_NSID
- current_active_token = TFM_NS_CLIENT_INVALID_TOKEN;
-#endif
- return 1U; /* Success */
- } else {
- return 0U; /* Error */
- }
-#else /* TFM_NS_MANAGE_NSID */
- return 1U; /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
-
-/*
- * Allocate context memory from Secure side
- * Param: TZ_ModuleId_t (NSID if TFM_NS_MANAGE_NSID is enabled)
- * Return token if TFM_NS_MANAGE_NSID is enabled
- * Return 0 if no memory available or internal error
- */
-TZ_MemoryId_t TZ_AllocModuleContext_S(TZ_ModuleId_t module)
-{
-#ifdef TFM_NS_MANAGE_NSID
- int32_t nsid;
- uint32_t token;
-
- /* TZ_ModuleID_t is used to record NSID */
- nsid = (int32_t)module;
-
- /* New thread ID not available, return error */
- if (nsid_mgr_thread_id >= NSID_MGR_THREAD_ID_MAX) {
- return 0U; /* Error */
- }
-
- token = tfm_nsce_acquire_ctx(NSID_MGR_GROUP_ID_DEFAULT, nsid_mgr_thread_id++);
-
- if (nsid_mgr_add_entry(nsid, token) == NSID_MGR_ERR_SUCCESS) {
- return token; /* Success: return token as TZ_MemoryId_t */
- } else {
- return 0U; /* Error */
- }
-#else /* TFM_NS_MANAGE_NSID */
- return 1U; /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
-
-/*
- * Free context memory that was previously allocated with TZ_AllocModuleContext_S
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_FreeModuleContext_S(TZ_MemoryId_t id)
-{
-#ifdef TFM_NS_MANAGE_NSID
- uint32_t token;
-
- /* TZ_MemoryId_t is used to record token */
- token = (uint32_t)id;
-
- if (nsid_mgr_remove_entry(token) != NSID_MGR_ERR_SUCCESS) {
- return 0U; /* Error */
- }
-
- if (tfm_nsce_release_ctx(token) == TFM_NS_CLIENT_ERR_SUCCESS) {
-#ifdef TEST_NS_MANAGE_NSID
- if (current_active_token != TFM_NS_CLIENT_INVALID_TOKEN) {
- current_active_token = TFM_NS_CLIENT_INVALID_TOKEN;
- }
-#endif
- return 1U; /* Success */
- } else {
- return 0U; /* Error */
- }
-#else /* TFM_NS_MANAGE_NSID */
- return 1U; /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
-
-/*
- * Load secure context (called on RTOS thread context switch)
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_LoadContext_S(TZ_MemoryId_t id)
-{
-#ifdef TFM_NS_MANAGE_NSID
- int32_t nsid;
- uint32_t token;
-
- /* TZ_MemoryId_t is used to record token */
- token = (uint32_t)id;
-
- nsid = nsid_mgr_query_nsid(token);
-
- if (nsid >= TFM_INVALID_NSID_MIN) {
- return 0U; /* Error */
- }
-
- if (tfm_nsce_load_ctx(token, nsid) == TFM_NS_CLIENT_ERR_SUCCESS) {
-#ifdef TEST_NS_MANAGE_NSID
- current_active_token = token;
-#endif
- return 1U; /* Success */
- } else {
- return 0U; /* Error */
- }
-#else /* TFM_NS_MANAGE_NSID */
- return 1U; /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
-
-/*
- * Store secure context (called on RTOS thread context switch)
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_StoreContext_S(TZ_MemoryId_t id)
-{
-#ifdef TFM_NS_MANAGE_NSID
- uint32_t token;
-
- /* TZ_MemoryId_t is used to record token */
- token = (uint32_t)id;
-
- if (tfm_nsce_save_ctx(token) == TFM_NS_CLIENT_ERR_SUCCESS) {
-#ifdef TEST_NS_MANAGE_NSID
- if (current_active_token != TFM_NS_CLIENT_INVALID_TOKEN) {
- current_active_token = TFM_NS_CLIENT_INVALID_TOKEN;
- }
-#endif
- return 1U; /* Success */
- } else {
- return 0U; /* Error */
- }
-#else /* TFM_NS_MANAGE_NSID */
- return 1U; /* Success */
-#endif /* TFM_NS_MANAGE_NSID */
-}
diff --git a/app_broker/nsid_manager/tz_stub.c b/app_broker/nsid_manager/tz_stub.c
deleted file mode 100644
index 306112d..0000000
--- a/app_broker/nsid_manager/tz_stub.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2023, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-/*
- * This is a stub functoins for TF-M shim layer of TZ APIs
- *
- */
-
-#include "tz_context.h"
-/*
- * TF-M shim layer of the CMSIS TZ RTOS thread context management API
- */
-
-/*
- * Initialize token-nsid map table in tfm nsid manager
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_InitContextSystem_S(void)
-{
- return 1U; /* Success */
-}
-
-/*
- * Allocate context memory from Secure side
- * Param: TZ_ModuleId_t (NSID if TFM_NS_MANAGE_NSID is enabled)
- * Return token if TFM_NS_MANAGE_NSID is enabled
- * Return 0 if no memory available or internal error
- */
-TZ_MemoryId_t TZ_AllocModuleContext_S(TZ_ModuleId_t module)
-{
- return 1U; /* Success */
-}
-
-/*
- * Free context memory that was previously allocated with TZ_AllocModuleContext_S
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_FreeModuleContext_S(TZ_MemoryId_t id)
-{
- return 1U; /* Success */
-}
-
-/*
- * Load secure context (called on RTOS thread context switch)
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_LoadContext_S(TZ_MemoryId_t id)
-{
- return 1U; /* Success */
-}
-
-/*
- * Store secure context (called on RTOS thread context switch)
- * Param: TZ_MemoryId_t (token if TFM_NS_MANAGE_NSID is enabled)
- * Return execution status (1: success, 0: error)
- */
-uint32_t TZ_StoreContext_S(TZ_MemoryId_t id)
-{
- return 1U; /* Success */
-}
diff --git a/app_broker/os_wrapper/CMakeLists.txt b/app_broker/os_wrapper/CMakeLists.txt
deleted file mode 100644
index d7f043e..0000000
--- a/app_broker/os_wrapper/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2020-2023, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-
-cmake_minimum_required(VERSION 3.13)
-
-add_library(os_wrapper STATIC)
-
-target_sources(os_wrapper
- PUBLIC
- os_wrapper_cmsis_rtos_v2.c
-)
-
-target_include_directories(os_wrapper PUBLIC .)
-
-target_link_libraries(os_wrapper
- PRIVATE
- psa_interface
- PUBLIC
- tfm_nsid_manager
- RTX_OS
-)
diff --git a/app_broker/os_wrapper/delay.h b/app_broker/os_wrapper/delay.h
deleted file mode 100644
index 7e73459..0000000
--- a/app_broker/os_wrapper/delay.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2022, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_DELAY_H__
-#define __OS_WRAPPER_DELAY_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_wrapper/common.h"
-
-/**
- * \brief Waits for a time period specified in kernel ticks.
- *
- * \return \ref OS_WRAPPER_SUCCESS if the time delay is executed, or
- * \ref OS_WRAPPER_ERROR in case of error
- */
-int32_t os_wrapper_delay(uint32_t ticks);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_DELAY_H__ */
diff --git a/app_broker/os_wrapper/msg_queue.h b/app_broker/os_wrapper/msg_queue.h
deleted file mode 100644
index 4c9e362..0000000
--- a/app_broker/os_wrapper/msg_queue.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_MSG_QUEUE_H__
-#define __OS_WRAPPER_MSG_QUEUE_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stddef.h>
-
-#include "os_wrapper/common.h"
-
-/**
- * \brief Create and initialize a message queue
- *
- * \param[in] msg_size The maximum message size in bytes
- * \param[in] msg_count The maximum number of messages in queue
- *
- * \return Returns handle of the message queue created, or NULL in case of error
- */
-void *os_wrapper_msg_queue_create(size_t msg_size, uint8_t msg_count);
-
-/**
- * \brief Send a message via message queue
- *
- * \param[in] mq_handle The handle of message queue
- * \param[in] msg_ptr The pointer to the message to be sent
- *
- * \return \ref OS_WRAPPER_SUCCESS if the message is successfully sent, or
- * \ref OS_WRAPPER_ERROR in case of error
- *
- * \note The message size must be the same as the value set in
- * \ref os_wrapper_msg_queue_create.
- *
- * \note Time out value is not specified here. Whether the function is blocked
- * or returns instantly depends on the actual implementation and usage
- * scenario.
- */
-int32_t os_wrapper_msg_queue_send(void *mq_handle,
- const void *msg_ptr);
-
-/**
- * \brief Receive a message from message queue
- *
- * \param[in] mq_handle The handle of message queue
- * \param[in] msg_ptr The pointer to buffer for message to be received
- *
- * \return \ref OS_WRAPPER_SUCCESS if the message is successfully received, or
- * \ref OS_WRAPPER_ERROR in case of error
- *
- * \note The message size is the same as the value set in
- * \ref os_wrapper_msg_queue_create.
- *
- * \note The function should be blocked until a message is received from message
- * queue, unless an error occurs.
- */
-int32_t os_wrapper_msg_queue_receive(void *mq_handle,
- void *msg_ptr);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_MSG_QUEUE_H__ */
diff --git a/app_broker/os_wrapper/semaphore.h b/app_broker/os_wrapper/semaphore.h
deleted file mode 100644
index ce5aa04..0000000
--- a/app_broker/os_wrapper/semaphore.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2017-2020, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_SEMAPHORE_H__
-#define __OS_WRAPPER_SEMAPHORE_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_wrapper/common.h"
-
-/**
- * \brief Creates a new semaphore
- *
- * \param[in] max_count Highest count of the semaphore
- * \param[in] initial_count Starting count of the available semaphore
- * \param[in] name Name of the semaphore
- *
- * \return Returns handle of the semaphore created, or NULL in case of error
- */
-void *os_wrapper_semaphore_create(uint32_t max_count, uint32_t initial_count,
- const char *name);
-
-/**
- * \brief Acquires the semaphore
- *
- * \param[in] hanlde Semaphore handle
- * \param[in] timeout Timeout value
- *
- * \return \ref OS_WRAPPER_SUCCESS in case of successful acquision, or
- * \ref OS_WRAPPER_ERROR in case of error
- */
-uint32_t os_wrapper_semaphore_acquire(void *handle, uint32_t timeout);
-
-/**
- * \brief Releases the semaphore
- *
- * \param[in] hanlde Semaphore handle
- *
- * \return \ref OS_WRAPPER_SUCCESS in case of successful release, or
- * \ref OS_WRAPPER_ERROR in case of error
- */
-uint32_t os_wrapper_semaphore_release(void *handle);
-
-/**
- * \brief Deletes the semaphore
- *
- * \param[in] handle Semaphore handle
- *
- * \return \ref OS_WRAPPER_SUCCESS in case of successful release, or
- * \ref OS_WRAPPER_ERROR in case of error
- */
-uint32_t os_wrapper_semaphore_delete(void *handle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_SEMAPHORE_H__ */
diff --git a/app_broker/os_wrapper/thread.h b/app_broker/os_wrapper/thread.h
deleted file mode 100644
index 83633a6..0000000
--- a/app_broker/os_wrapper/thread.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2017-2020, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_THREAD_H__
-#define __OS_WRAPPER_THREAD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_wrapper/common.h"
-
-/* prototype for the thread entry function */
-typedef void (*os_wrapper_thread_func) (void *argument);
-
-/**
- * \brief Creates a new thread
- *
- * \param[in] name Name of the thread
- * \param[in] stack_size Size of stack to be allocated for this thread. It can
- * be \ref OS_WRAPPER_DEFAULT_STACK_SIZE to use the
- * default value provided by the underlying RTOS
- * \param[in] func Pointer to the function invoked by thread
- * \param[in] arg Argument to pass to the function invoked by thread
- * \param[in] priority Initial thread priority
- *
- * \return Returns the thread handle created, or NULL in case of error
- */
-void *os_wrapper_thread_new(const char *name, int32_t stack_size,
- os_wrapper_thread_func func, void *arg,
- uint32_t priority);
-/**
- * \brief Gets current thread handle
- *
- * \return Returns the thread handle, or NULL in case of error
- */
-void *os_wrapper_thread_get_handle(void);
-
-/**
- * \brief Gets thread priority
- *
- * \param[in] handle Thread handle
- * \param[out] priority The priority of the thread
- *
- * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
- * in case of error
- */
-uint32_t os_wrapper_thread_get_priority(void *handle, uint32_t *priority);
-
-/**
- * \brief Exits the calling thread
- */
-void os_wrapper_thread_exit(void);
-
-/**
- * \brief Set the event flags for synchronizing a thread specified by handle.
- *
- * \note This function may not be allowed to be called from Interrupt Service
- * Routines.
- *
- * \param[in] handle Thread handle to be notified
- * \param[in] flags Event flags value
- *
- * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
- * in case of error
- */
-uint32_t os_wrapper_thread_set_flag(void *handle, uint32_t flags);
-
-/**
- * \brief Set the event flags in an interrupt handler for synchronizing a thread
- * specified by handle.
- *
- * \param[in] handle Thread handle to be notified
- * \param[in] flags Event flags value
- *
- * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
- * in case of error
- */
-uint32_t os_wrapper_thread_set_flag_isr(void *handle, uint32_t flags);
-
-/**
- * \brief Wait for the event flags for synchronizing threads.
- *
- * \note This function may not be allowed to be called from Interrupt Service
- * Routines.
- *
- * \param[in] flags Specify the flags to wait for
- * \param[in] timeout Timeout value
- *
- * \return Returns \ref OS_WRAPPER_SUCCESS on success, or \ref OS_WRAPPER_ERROR
- * in case of error
- */
-uint32_t os_wrapper_thread_wait_flag(uint32_t flags, uint32_t timeout);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_THREAD_H__ */
diff --git a/app_broker/os_wrapper/tick.h b/app_broker/os_wrapper/tick.h
deleted file mode 100644
index de7d2f5..0000000
--- a/app_broker/os_wrapper/tick.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
- * Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
- * or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- *
- */
-
-#ifndef __OS_WRAPPER_TICK_H__
-#define __OS_WRAPPER_TICK_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_wrapper/common.h"
-
-/**
- * \brief Return RTOS current tick count
- *
- * \return The current tick count
- */
-uint32_t os_wrapper_get_tick(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __OS_WRAPPER_TICK_H__ */
diff --git a/app_broker/os_wrapper/os_wrapper_cmsis_rtos_v2.c b/app_broker/os_wrapper_cmsis_rtos_v2.c
similarity index 100%
rename from app_broker/os_wrapper/os_wrapper_cmsis_rtos_v2.c
rename to app_broker/os_wrapper_cmsis_rtos_v2.c
diff --git a/app_broker/test_app.h b/app_broker/test_app.h
index d60827c..35728ba 100644
--- a/app_broker/test_app.h
+++ b/app_broker/test_app.h
@@ -8,6 +8,8 @@
#ifndef __TFM_TEST_APP_H__
#define __TFM_TEST_APP_H__
+#include <stdint.h>
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/app_broker/nsid_manager/tfm_nsid_map_table.c b/app_broker/tfm_nsid_map_table.c
similarity index 100%
rename from app_broker/nsid_manager/tfm_nsid_map_table.c
rename to app_broker/tfm_nsid_map_table.c
diff --git a/app_broker/nsid_manager/tfm_nsid_map_table.h b/app_broker/tfm_nsid_map_table.h
similarity index 100%
rename from app_broker/nsid_manager/tfm_nsid_map_table.h
rename to app_broker/tfm_nsid_map_table.h