takashi kadono / Mbed OS Nucleo_446

Dependencies:   ssd1331

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 typedef struct {
00061   uint8_t                          id;  ///< Object Identifier
00062   uint8_t                       state;  ///< Object State
00063   uint8_t                       flags;  ///< Object Flags
00064   uint8_t                    reserved;
00065   const char                    *name;  ///< Object Name
00066   osRtxThread_t          *thread_list;  ///< Waiting Threads List
00067   uint32_t                event_flags;  ///< Event Flags
00068 } osRtxEventFlags_t;
00069 
00070 #endif