Knight KE / Mbed OS Game_Master
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers rtx_os.h Source File

rtx_os.h

00001 /*
00002  * Copyright (c) , Arm Limited and affiliates.
00003  * SPDX-License-Identifier: Apache-2.0
00004  *
00005  * Licensed under the Apache License, Version 2.0 (the "License");
00006  * you may not use this file except in compliance with the License.
00007  * You may obtain a copy of the License at
00008  *
00009  *     http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef __RTX_OS__
00019 #define __RTX_OS__
00020 
00021 #include "inttypes.h"
00022 
00023 typedef struct osRtxSemaphore_s {
00024   uint8_t                          id;  ///< Object Identifier
00025   uint8_t                       state;  ///< Object State
00026   uint8_t                       flags;  ///< Object Flags
00027   uint8_t                    reserved;
00028   const char                    *name;  ///< Object Name
00029   uint16_t                     tokens;  ///< Current number of tokens
00030   uint16_t                 max_tokens;  ///< Maximum number of tokens
00031 } osRtxSemaphore_t;
00032 
00033 typedef struct osRtxThread_s {
00034   uint8_t                          id;  ///< Object Identifier
00035   uint8_t                       state;  ///< Object State
00036   uint8_t                       flags;  ///< Object Flags
00037   uint8_t                        attr;  ///< Object Attributes
00038   const char                    *name;  ///< Object Name
00039   struct osRtxThread_s   *thread_next;  ///< Link pointer to next Thread in Object list
00040   struct osRtxThread_s   *thread_prev;  ///< Link pointer to previous Thread in Object list
00041   struct osRtxThread_s    *delay_next;  ///< Link pointer to next Thread in Delay list
00042   struct osRtxThread_s    *delay_prev;  ///< Link pointer to previous Thread in Delay list
00043   struct osRtxThread_s   *thread_join;  ///< Thread waiting to Join
00044   uint32_t                      delay;  ///< Delay Time
00045   int8_t                     priority;  ///< Thread Priority
00046   int8_t                priority_base;  ///< Base Priority
00047   uint8_t                 stack_frame;  ///< Stack Frame (EXC_RETURN[7..0])
00048   uint8_t               flags_options;  ///< Thread/Event Flags Options
00049   uint32_t                 wait_flags;  ///< Waiting Thread/Event Flags
00050   uint32_t               thread_flags;  ///< Thread Flags
00051   struct osRtxMutex_s     *mutex_list;  ///< Link pointer to list of owned Mutexes
00052   void                     *stack_mem;  ///< Stack Memory
00053   uint32_t                 stack_size;  ///< Stack Size
00054   uint32_t                         sp;  ///< Current Stack Pointer
00055   uint32_t                thread_addr;  ///< Thread entry address
00056   uint32_t                  tz_memory;  ///< TrustZone Memory Identifier
00057   void                       *context;  ///< Context for OsEventObserver objects
00058 } osRtxThread_t;
00059 
00060 #endif