mbed-os5 only for TYBLE16
Dependents: TYBLE16_simple_data_logger TYBLE16_MP3_Air
rtos/mbed_rtos_types.h@1:9db0e321a9f4, 2019-12-31 (annotated)
- Committer:
- kenjiArai
- Date:
- Tue Dec 31 06:02:27 2019 +0000
- Revision:
- 1:9db0e321a9f4
updated based on mbed-os5.15.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kenjiArai | 1:9db0e321a9f4 | 1 | /* mbed Microcontroller Library |
kenjiArai | 1:9db0e321a9f4 | 2 | * Copyright (c) 2006-2019, ARM Limited, All Rights Reserved |
kenjiArai | 1:9db0e321a9f4 | 3 | * SPDX-License-Identifier: Apache-2.0 |
kenjiArai | 1:9db0e321a9f4 | 4 | * |
kenjiArai | 1:9db0e321a9f4 | 5 | * Licensed under the Apache License, Version 2.0 (the "License"); |
kenjiArai | 1:9db0e321a9f4 | 6 | * you may not use this file except in compliance with the License. |
kenjiArai | 1:9db0e321a9f4 | 7 | * You may obtain a copy of the License at |
kenjiArai | 1:9db0e321a9f4 | 8 | * |
kenjiArai | 1:9db0e321a9f4 | 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
kenjiArai | 1:9db0e321a9f4 | 10 | * |
kenjiArai | 1:9db0e321a9f4 | 11 | * Unless required by applicable law or agreed to in writing, software |
kenjiArai | 1:9db0e321a9f4 | 12 | * distributed under the License is distributed on an "AS IS" BASIS, |
kenjiArai | 1:9db0e321a9f4 | 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
kenjiArai | 1:9db0e321a9f4 | 14 | * See the License for the specific language governing permissions and |
kenjiArai | 1:9db0e321a9f4 | 15 | * limitations under the License. |
kenjiArai | 1:9db0e321a9f4 | 16 | */ |
kenjiArai | 1:9db0e321a9f4 | 17 | #ifndef RTOS_TYPES_H_ |
kenjiArai | 1:9db0e321a9f4 | 18 | #define RTOS_TYPES_H_ |
kenjiArai | 1:9db0e321a9f4 | 19 | |
kenjiArai | 1:9db0e321a9f4 | 20 | #if MBED_CONF_RTOS_PRESENT || defined(DOXYGEN_ONLY) || defined(UNITTEST) |
kenjiArai | 1:9db0e321a9f4 | 21 | #include "cmsis_os2.h" |
kenjiArai | 1:9db0e321a9f4 | 22 | #else |
kenjiArai | 1:9db0e321a9f4 | 23 | |
kenjiArai | 1:9db0e321a9f4 | 24 | #ifdef __cplusplus |
kenjiArai | 1:9db0e321a9f4 | 25 | extern "C" { |
kenjiArai | 1:9db0e321a9f4 | 26 | #endif |
kenjiArai | 1:9db0e321a9f4 | 27 | |
kenjiArai | 1:9db0e321a9f4 | 28 | /** \addtogroup rtos-public-api */ |
kenjiArai | 1:9db0e321a9f4 | 29 | /** @{*/ |
kenjiArai | 1:9db0e321a9f4 | 30 | |
kenjiArai | 1:9db0e321a9f4 | 31 | /* Minimal definitions for bare metal form of RTOS */ |
kenjiArai | 1:9db0e321a9f4 | 32 | |
kenjiArai | 1:9db0e321a9f4 | 33 | // Timeout value. |
kenjiArai | 1:9db0e321a9f4 | 34 | #define osWaitForever 0xFFFFFFFFU ///< Wait forever timeout value. |
kenjiArai | 1:9db0e321a9f4 | 35 | |
kenjiArai | 1:9db0e321a9f4 | 36 | // Flags options (\ref osThreadFlagsWait and \ref osEventFlagsWait). |
kenjiArai | 1:9db0e321a9f4 | 37 | #define osFlagsWaitAny 0x00000000U ///< Wait for any flag (default). |
kenjiArai | 1:9db0e321a9f4 | 38 | #define osFlagsWaitAll 0x00000001U ///< Wait for all flags. |
kenjiArai | 1:9db0e321a9f4 | 39 | #define osFlagsNoClear 0x00000002U ///< Do not clear flags which have been specified to wait for. |
kenjiArai | 1:9db0e321a9f4 | 40 | |
kenjiArai | 1:9db0e321a9f4 | 41 | // Flags errors (returned by osThreadFlagsXxxx and osEventFlagsXxxx). |
kenjiArai | 1:9db0e321a9f4 | 42 | #define osFlagsError 0x80000000U ///< Error indicator. |
kenjiArai | 1:9db0e321a9f4 | 43 | #define osFlagsErrorUnknown 0xFFFFFFFFU ///< osError (-1). |
kenjiArai | 1:9db0e321a9f4 | 44 | #define osFlagsErrorTimeout 0xFFFFFFFEU ///< osErrorTimeout (-2). |
kenjiArai | 1:9db0e321a9f4 | 45 | #define osFlagsErrorResource 0xFFFFFFFDU ///< osErrorResource (-3). |
kenjiArai | 1:9db0e321a9f4 | 46 | #define osFlagsErrorParameter 0xFFFFFFFCU ///< osErrorParameter (-4). |
kenjiArai | 1:9db0e321a9f4 | 47 | #define osFlagsErrorISR 0xFFFFFFFAU ///< osErrorISR (-6). |
kenjiArai | 1:9db0e321a9f4 | 48 | |
kenjiArai | 1:9db0e321a9f4 | 49 | // Status code values returned by CMSIS-RTOS functions. |
kenjiArai | 1:9db0e321a9f4 | 50 | typedef enum { |
kenjiArai | 1:9db0e321a9f4 | 51 | osOK = 0, ///< Operation completed successfully. |
kenjiArai | 1:9db0e321a9f4 | 52 | osError = -1, ///< Unspecified RTOS error: run-time error but no other error message fits. |
kenjiArai | 1:9db0e321a9f4 | 53 | osErrorTimeout = -2, ///< Operation not completed within the timeout period. |
kenjiArai | 1:9db0e321a9f4 | 54 | osErrorResource = -3, ///< Resource not available. |
kenjiArai | 1:9db0e321a9f4 | 55 | osErrorParameter = -4, ///< Parameter error. |
kenjiArai | 1:9db0e321a9f4 | 56 | osErrorNoMemory = -5, ///< System is out of memory: it was impossible to allocate or reserve memory for the operation. |
kenjiArai | 1:9db0e321a9f4 | 57 | osErrorISR = -6, ///< Not allowed in ISR context: the function cannot be called from interrupt service routines. |
kenjiArai | 1:9db0e321a9f4 | 58 | osStatusReserved = 0x7FFFFFFF ///< Prevents enum down-size compiler optimization. |
kenjiArai | 1:9db0e321a9f4 | 59 | } osStatus_t; |
kenjiArai | 1:9db0e321a9f4 | 60 | |
kenjiArai | 1:9db0e321a9f4 | 61 | |
kenjiArai | 1:9db0e321a9f4 | 62 | // \details Thread ID identifies the thread. |
kenjiArai | 1:9db0e321a9f4 | 63 | typedef void *osThreadId_t; |
kenjiArai | 1:9db0e321a9f4 | 64 | |
kenjiArai | 1:9db0e321a9f4 | 65 | // Set the specified Thread Flags of a thread. |
kenjiArai | 1:9db0e321a9f4 | 66 | // \param[in] thread_id thread ID obtained by \ref osThreadNew or \ref osThreadGetId. |
kenjiArai | 1:9db0e321a9f4 | 67 | // \param[in] flags specifies the flags of the thread that shall be set. |
kenjiArai | 1:9db0e321a9f4 | 68 | // \return thread flags after setting or error code if highest bit set. |
kenjiArai | 1:9db0e321a9f4 | 69 | uint32_t osThreadFlagsSet(osThreadId_t thread_id, uint32_t flags); |
kenjiArai | 1:9db0e321a9f4 | 70 | |
kenjiArai | 1:9db0e321a9f4 | 71 | /** @}*/ |
kenjiArai | 1:9db0e321a9f4 | 72 | |
kenjiArai | 1:9db0e321a9f4 | 73 | #ifdef __cplusplus |
kenjiArai | 1:9db0e321a9f4 | 74 | } |
kenjiArai | 1:9db0e321a9f4 | 75 | #endif |
kenjiArai | 1:9db0e321a9f4 | 76 | |
kenjiArai | 1:9db0e321a9f4 | 77 | #endif |
kenjiArai | 1:9db0e321a9f4 | 78 | |
kenjiArai | 1:9db0e321a9f4 | 79 | |
kenjiArai | 1:9db0e321a9f4 | 80 | #endif /* RTOS_TYPES_H_ */ |