52 Commits

Author SHA1 Message Date
Tiejun Zhou
3e8e85cdc1 Release 6.2.0 2022-10-26 23:41:13 +00:00
Scott Larson
b871c33620 Merge pull request #206 from azure-rtos/JideshMSFT-fix-cortex_m4-example_build
Delete cortexm_crt0.s and tx_simulator_startup.s which were removed from the latest release
2022-07-29 13:00:47 -07:00
JideshMSFT
b6fb0b8e09 Delete tx_simulator_startup.s 2022-07-29 12:51:43 -07:00
JideshMSFT
35cfbfbd58 Delete cortexm_crt0.s 2022-07-29 12:48:58 -07:00
Yuxin Zhou
8c3c08f108 Release 6.1.12 2022-07-26 02:04:40 +00:00
Scott Larson
54cda6ee9e Add Cortex M55 and M85 to ports 2022-07-07 11:42:14 -07:00
Liya Du
83b57acde9 Fix broken link for licensing 2022-06-13 12:26:11 -07:00
TiejunZhou
e11c166a40 Merge pull request #187 from azure-rtos/tizho/rx_update
Import RX port update for 6.1.11 release.
2022-04-26 14:21:38 +08:00
Tiejun Zhou
408f9fa1b7 Import RX port update for 6.1.11 release. 2022-04-26 14:19:28 +08:00
Yuxin Zhou
cef9cb22a5 Release 6.1.11 2022-04-20 05:07:02 +00:00
Liya Du
f851772ce0 Update aka link for the licensing ask page 2022-03-29 13:50:57 -07:00
Liya Du
cd4e736a44 Add links to LTS and TUV information
In readme
2022-03-16 16:11:19 -07:00
Scott Larson
11303a0e1b Merge pull request #159 from azure-rtos/sclarson/update_rx_modules
update RX modules
2022-02-02 11:45:51 -08:00
Scott Larson
db11aba063 update RX modules 2022-02-02 11:45:04 -08:00
Yuxin Zhou
fd403521e9 Add rxv1, v2, v3 port: removed system state macro, added missing interrupt control defines, and added missing thread preemption logic. 2022-02-01 23:21:49 -08:00
Yuxin Zhou
f7f0957188 Release 6.1.10 2022-01-29 00:24:03 +00:00
Tiejun Zhou
b216ceb25e Removed unused code. 2021-10-17 10:00:34 +08:00
Yuxin Zhou
1af8404c54 Release 6.1.9 2021-10-14 00:51:26 +00:00
yuxin-azrtos
215df45d4b Merge pull request #139 from azure-rtos/tizho/release_rxv1
Add RXv1 port.
2021-09-23 19:57:35 -07:00
Tiejun Zhou
06064828ef Add RXv1 port. 2021-09-24 10:52:11 +08:00
Yuxin Zhou
d0dab58250 Release 6.1.8 2021-07-28 07:24:02 +00:00
Liya Du
244365fc6a Add files via upload 2021-06-14 21:48:25 +08:00
TiejunZhou
a891c3f903 Merge pull request #112 from azure-rtos/freertos-readme
FreeRTOS readme
2021-06-07 11:45:38 +08:00
Liya Du
db7a3972a8 FreeRTOS readme 2021-06-07 11:38:19 +08:00
Bo Chen
f5056f4923 Release 6.1.7 2021-06-02 06:45:05 +00:00
Scott Larson
d759e6bb9e Add Renesas RA family 2021-04-05 16:01:25 -07:00
Yuxin Zhou
b12bd44faa Release 6.1.6 2021-04-03 01:03:21 +00:00
Scott Larson
6ffaf848a0 Update LICENSED-HARDWARE.txt 2021-04-01 14:34:50 -07:00
Scott Larson
c8ed70019e update readmes and fix compilation for Keil/AC5 2021-03-05 14:52:53 -08:00
Yuxin Zhou
10a7932b9d Release 6.1.5 2021-03-05 05:38:33 +00:00
Scott Larson
32e3b3b25f add cmake for rx 2021-01-08 15:50:14 -08:00
Scott Larson
f108ebdbaf update to v6.1.3 2021-01-08 13:31:36 -08:00
Scott Larson
b0e9b132b5 update nxp 2020-12-15 10:11:38 -08:00
Scott Larson
848e7d8169 add mediatek 2020-12-11 14:51:05 -08:00
Scott Larson
69287b8bb4 update workflows 2020-12-09 10:57:26 -08:00
Scott Larson
1777796996 Update ci_cortex_m0.yml 2020-12-07 14:56:14 -08:00
Scott Larson
64b4d510ba Update ci_cortex_m0.yml 2020-12-07 14:38:48 -08:00
Scott Larson
609c75a2e5 add ST to hw list 2020-11-17 09:32:36 -08:00
Scott Larson
9b050d00ed patch release 6.1.2 2020-11-10 13:25:20 -08:00
Scott Larson
6773d468ae 6.1.1 patch: add stack sealing to armv8-m, fix misra warning, fix stack check link error 2020-10-16 11:57:42 -07:00
Scott Larson
c2df92c885 add NXP to hardware list 2020-10-14 20:21:01 -07:00
Scott Larson
e397fa003a add NXP to hardware list 2020-10-14 20:17:45 -07:00
Scott Larson
236374f704 add utilities and update TraceX install link 2020-10-01 13:46:52 -07:00
Scott Larson
1b5816a206 6.1 minor release 2020-09-30 15:42:41 -07:00
Scott Larson
7287542cc8 add Microchip to licensed hardware 2020-09-22 22:06:27 -07:00
Scott Larson
3297586b94 Add Renesas to hardware list 2020-09-15 10:39:26 -07:00
Scott Larson
a70179bd35 fix fix fix link to tracex installer. 2020-08-21 15:50:40 -07:00
Scott Larson
121116e005 fix link to tracex installer 2020-08-21 15:47:56 -07:00
Scott Larson
ae4e20a2c3 update link to TraceX installer 2020-08-21 15:46:38 -07:00
Scott Larson
496a508419 add link in readme to tracex installer 2020-08-21 15:00:12 -07:00
Scott Larson
ed64123951 fix win32 release config 2020-08-14 16:11:56 -07:00
Scott Larson
40a402b827 apply 6.0.2 patch 2020-08-14 09:10:48 -07:00
8067 changed files with 1232593 additions and 770253 deletions

View File

@@ -43,12 +43,12 @@ jobs:
directory: $HOME/arm-none-eabi-gcc-9-2019-q4 directory: $HOME/arm-none-eabi-gcc-9-2019-q4
# Get CMake into the environment # Get CMake into the environment
- name: Install cmake 3.17.1 - name: Install cmake 3.19.1
uses: lukka/get-cmake@v3.17.1 uses: lukka/get-cmake@v3.19.1
# Get Ninja into the environment # Get Ninja into the environment
- name: Install ninja-build - name: Install ninja-build
uses: seanmiddleditch/gha-setup-ninja@v1 uses: seanmiddleditch/gha-setup-ninja@v3
# Prepare the build system # Prepare the build system
- name: Prepare build system - name: Prepare build system

View File

@@ -43,12 +43,12 @@ jobs:
directory: $HOME/arm-none-eabi-gcc-9-2019-q4 directory: $HOME/arm-none-eabi-gcc-9-2019-q4
# Get CMake into the environment # Get CMake into the environment
- name: Install cmake 3.17.1 - name: Install cmake 3.19.1
uses: lukka/get-cmake@v3.17.1 uses: lukka/get-cmake@v3.19.1
# Get Ninja into the environment # Get Ninja into the environment
- name: Install ninja-build - name: Install ninja-build
uses: seanmiddleditch/gha-setup-ninja@v1 uses: seanmiddleditch/gha-setup-ninja@v3
# Prepare the build system # Prepare the build system
- name: Prepare build system - name: Prepare build system

View File

@@ -43,12 +43,12 @@ jobs:
directory: $HOME/arm-none-eabi-gcc-9-2019-q4 directory: $HOME/arm-none-eabi-gcc-9-2019-q4
# Get CMake into the environment # Get CMake into the environment
- name: Install cmake 3.17.1 - name: Install cmake 3.19.1
uses: lukka/get-cmake@v3.17.1 uses: lukka/get-cmake@v3.19.1
# Get Ninja into the environment # Get Ninja into the environment
- name: Install ninja-build - name: Install ninja-build
uses: seanmiddleditch/gha-setup-ninja@v1 uses: seanmiddleditch/gha-setup-ninja@v3
# Prepare the build system # Prepare the build system
- name: Prepare build system - name: Prepare build system

View File

@@ -43,12 +43,12 @@ jobs:
directory: $HOME/arm-none-eabi-gcc-9-2019-q4 directory: $HOME/arm-none-eabi-gcc-9-2019-q4
# Get CMake into the environment # Get CMake into the environment
- name: Install cmake 3.17.1 - name: Install cmake 3.19.1
uses: lukka/get-cmake@v3.17.1 uses: lukka/get-cmake@v3.19.1
# Get Ninja into the environment # Get Ninja into the environment
- name: Install ninja-build - name: Install ninja-build
uses: seanmiddleditch/gha-setup-ninja@v1 uses: seanmiddleditch/gha-setup-ninja@v3
# Prepare the build system # Prepare the build system
- name: Prepare build system - name: Prepare build system

View File

@@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
# Set up the project # Set up the project
project(threadx project(threadx
VERSION 6.0.0
LANGUAGES C ASM LANGUAGES C ASM
) )
@@ -12,6 +11,8 @@ endif()
if(NOT DEFINED THREADX_TOOLCHAIN) if(NOT DEFINED THREADX_TOOLCHAIN)
message(FATAL_ERROR "Error: THREADX_TOOLCHAIN not defined") message(FATAL_ERROR "Error: THREADX_TOOLCHAIN not defined")
endif() endif()
message(STATUS "THREADX_ARCH: ${THREADX_ARCH}")
message(STATUS "THREADX_TOOLCHAIN: ${THREADX_TOOLCHAIN}")
# Define our target library and an alias for consumers # Define our target library and an alias for consumers
add_library(${PROJECT_NAME}) add_library(${PROJECT_NAME})
@@ -21,13 +22,26 @@ add_library("azrtos::${PROJECT_NAME}" ALIAS ${PROJECT_NAME})
set(CUSTOM_INC_DIR ${CMAKE_CURRENT_BINARY_DIR}/custom_inc) set(CUSTOM_INC_DIR ${CMAKE_CURRENT_BINARY_DIR}/custom_inc)
# Pick up the port specific variables and apply them # Pick up the port specific variables and apply them
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/ports/${THREADX_ARCH}/${THREADX_TOOLCHAIN}) if(DEFINED THREADX_CUSTOM_PORT)
add_subdirectory(${THREADX_CUSTOM_PORT} threadx_port)
else()
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/ports/${THREADX_ARCH}/${THREADX_TOOLCHAIN})
endif()
# Pick up the common stuff # Pick up the common stuff
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/common) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/common)
# Define the FreeRTOS adaptation layer
add_library(freertos-threadx EXCLUDE_FROM_ALL)
target_include_directories(freertos-threadx
PUBLIC
${CMAKE_CURRENT_LIST_DIR}/utility/rtos_compatibility_layers/FreeRTOS
)
target_sources(freertos-threadx
PRIVATE
${CMAKE_CURRENT_LIST_DIR}/utility/rtos_compatibility_layers/FreeRTOS/tx_freertos.c
)
target_link_libraries(freertos-threadx PUBLIC threadx)
# If the user provided an override, copy it to the custom directory # If the user provided an override, copy it to the custom directory
if (NOT TX_USER_FILE) if (NOT TX_USER_FILE)

View File

@@ -1,6 +1,6 @@
LICENSED HARDWARE LIST LICENSED HARDWARE LIST
Last Updated: 2020-05-08 Last Updated: 2021-04-01
Microsoft has entered into OEM Agreements with manufacturers of the following Microsoft has entered into OEM Agreements with manufacturers of the following
microprocessors and microcontrollers (the “hardware”) to enable those microprocessors and microcontrollers (the “hardware”) to enable those
@@ -11,6 +11,35 @@ Production Use” rights in Section 2 of the Microsoft Software License Terms fo
Microsoft Azure RTOS. If hardware is not listed below, you do not have those Microsoft Azure RTOS. If hardware is not listed below, you do not have those
rights. rights.
STMicroelectronics:
STM32 MCUs
STM32 MPUs
MediaTek:
MT3620 MCU (Azure Sphere)
Microchip:
PIC 32-bit MCUs
SAM 32-bit MCUs
SAM 32-bit MPUs
NXP:
i.MX RT10xx and RT116x/7x series crossover MCUs
LPC5500 series
Renesas:
Synergy Platform
RX Family of MCUs
RA Family of MCUs
RZ Family of MPUs
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
More coming soon. Please check back frequently for updates. More coming soon. Please check back frequently for updates.

257
README.md
View File

@@ -1,110 +1,189 @@
![cortex_m0](https://github.com/azure-rtos/threadx/workflows/cortex_m0/badge.svg)
![cortex_m3](https://github.com/azure-rtos/threadx/workflows/cortex_m3/badge.svg)
![cortex_m4](https://github.com/azure-rtos/threadx/workflows/cortex_m4/badge.svg)
![cortex_m7](https://github.com/azure-rtos/threadx/workflows/cortex_m7/badge.svg)
# Azure RTOS ThreadX # Azure RTOS ThreadX
This advanced real-time operating system (RTOS) is designed specifically for deeply embedded applications. Among the multiple benefits it provides are advanced scheduling facilities, message passing, interrupt management, and messaging services. Azure RTOS ThreadX has many advanced features, including picokernel architecture, preemption threshold, event chaining, and a rich set of system services. This advanced real-time operating system (RTOS) is designed specifically for deeply embedded applications. Among the multiple benefits it provides are advanced scheduling facilities, message passing, interrupt management, and messaging services. Azure RTOS ThreadX has many advanced features, including picokernel architecture, preemption threshold, event chaining, and a rich set of system services.
## Documentation Here are the key features and modules of ThreadX:
Documentation for this library can be found here: http://docs.microsoft.com/azure/rtos/threadx ![ThreadX Key Features](./docs/threadx-features.png)
## Getting Started
Azure RTOS has been integrated to the semiconductor's SDKs and development environment. You can develop using the tools of choice from [STMicroelectronics](https://www.st.com/content/st_com/en/campaigns/x-cube-azrtos-azure-rtos-stm32.html), [NXP](https://www.nxp.com/design/software/embedded-software/azure-rtos-for-nxp-microcontrollers:AZURE-RTOS), [Renesas](https://github.com/renesas/azure-rtos) and [Microchip](https://mu.microchip.com/get-started-simplifying-your-iot-design-with-azure-rtos).
We also provide [getting started guide](https://github.com/azure-rtos/getting-started) and [samples](https://github.com/azure-rtos/samples) using hero development boards from semiconductors you can build and test with.
See [Overview of Azure RTOS ThreadX](https://learn.microsoft.com/en-us/azure/rtos/threadx/overview-threadx) for the high-level overview, and all documentation and APIs can be found in: [Azure RTOS ThreadX documentation](https://learn.microsoft.com/en-us/azure/rtos/threadx/).
Also there is dedicated [learning path of Azure RTOS ThreadX](https://learn.microsoft.com/training/paths/azure-rtos-threadx/) for learning systematically.
# Understanding inter-component dependencies ## Repository Structure and Usage
### Directory layout
The main components of Azure RTOS are each provided in their own repository, but there are dependencies between them--shown in the following graph--that are important to understand when setting up your builds. .
├── cmake # CMakelist files for building the project
├── common # Core ThreadX files
├── common_modules # Core ThreadX module files
├── common_smp # Core ThreadX SMP files
├── docs # Documentation supplements
├── ports # Architecture and compiler specific files. See below for directory breakdown
│ ├── cortex_m7
│ │ ├── iar # Example IAR compiler sample project
│ │ │ ├── example build # IAR workspace and sample project files
│ │ │ ├── inc # tx_port.h for this architecture
│ │ │ └── src # Source files for this architecture
│ │ ├── ac6 # Example ac6/Keil sample project
│ │ ├── gnu # Example gnu sample project
│ │ └── ...
│ └── ...
├── ports_modules # Architecture and compiler specific files for threadX modules
├── ports_smp # Architecture and compiler specific files for threadX SMP
├── samples # demo_threadx.c
└── utility # Test cases and utilities
![dependency graph](docs/deps.png)
# Building and using the library
## Prerequisites
Install the following tools:
* [CMake](https://cmake.org/download/) version 3.0 or later
* [GCC compilers for arm-none-eabi](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)
* [Ninja](https://ninja-build.org/)
## Cloning the repo
```bash
$ git clone https://github.com/azure-rtos/threadx.git
```
## Building as a static library
Each component of Azure RTOS comes with a composible CMake-based build system that supports many different MCUs and host systems. Integrating any of these components into your device app code is as simple as adding a git submodule and then including it in your build using the CMake command `add_subdirectory()`.
While the typical usage pattern is to include threadx into your device code source tree to be built & linked with your code, you can compile this project as a standalone static library to confirm your build is set up correctly.
```bash
$ cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake -GNinja .
$ cmake --build ./build
```
NOTE: You will have to take the dependency graph above into account when building anything other than threadx itself.
# Repository Structure and Usage
## Branches & Releases ## Branches & Releases
The master branch has the most recent code with all new features and bug fixes. It does not represent the latest General Availability (GA) release of the library. The master branch has the most recent code with all new features and bug fixes. It does not represent the latest General Availability (GA) release of the library. Each official release (preview or GA) will be tagged to mark the commit and push it into the Github releases tab, e.g. `v6.2-rel`.
## Releases ## Supported Architecture Ports
Each official release (preview or GA) will be tagged to mark the commit and push it into the Github releases tab, e.g. `v6.0-rel`.
## Directory layout
### ThreadX
``` ```
- cmake arc_em cortex_a12 cortex_m0 cortex_r4
- common arc_hs cortex_a15 cortex_m23 cortex_r5
- inc arm11 cortex_a17 cortex_m3 cortex_r7
- src arm9 cortex_a34 cortex_m33
- ports c667x cortex_a35 cortex_m4
- cortex_m0/gnu linux cortex_a5 cortex_m55
- inc risc-v32 cortex_a53 cortex_m7
- src rxv1 cortex_a55 cortex_m85
- cortex_m3/gnu rxv2 cortex_a57
- inc rxv3 cortex_a5x
- src win32 cortex_a65
- cortex_m4/gnu xtensa cortex_a65ae
- inc cortex_a7
- src cortex_a72
- cortex_m7/gnu cortex_a73
- inc cortex_a75
- src cortex_a76
- samples cortex_a76ae
cortex_a77
cortex_a8
cortex_a9
``` ```
# Security ### ThreadX Modules
[Azure RTOS ThreadX Modules](https://learn.microsoft.com/azure/rtos/threadx-modules/chapter1) component provides an infrastructure for applications to dynamically load modules that are built separately from the resident portion of the application.
```
cortex_a35
cortex_a35_smp
cortex_a7
cortex_m0+
cortex_m23
cortex_m3
cortex_m33
cortex_m4
cortex_m7
cortex_r4
rxv2
```
### ThreadX SMP
[Azure RTOS ThreadX SMP](https://learn.microsoft.com/azure/rtos/threadx/threadx-smp/chapter1) is a high-performance real-time SMP kernel designed specifically for embedded applications.
```
arc_hs_smp
cortex_a34_smp
cortex_a35_smp
cortex_a53_smp
cortex_a55_smp
cortex_a57_smp
cortex_a5x_smp
cortex_a5_smp
cortex_a65ae_smp
cortex_a65_smp
cortex_a72_smp
cortex_a73_smp
cortex_a75_smp
cortex_a76ae_smp
cortex_a76_smp
cortex_a77_smp
cortex_a78_smp
cortex_a7_smp
cortex_a9_smp
linux
```
## Adaptation layer for ThreadX
Azure RTOS ThreadX is an advanced real-time operating system (RTOS) designed specifically for deeply embedded applications. To help ease application migration to Azure RTOS, ThreadX provides [adaption layers](https://github.com/azure-rtos/threadx/tree/master/utility/rtos_compatibility_layers) for various legacy RTOS APIs (FreeRTOS, POSIX, OSEK, etc.).
## Component dependencies
The main components of Azure RTOS are each provided in their own repository, but there are dependencies between them, as shown in the following graph. This is important to understand when setting up your builds.
![dependency graph](docs/deps.png)
> You will have to take the dependency graph above into account when building anything other than ThreadX itself.
### Building and using the library
Instruction for building the ThreadX as static library using Arm GNU Toolchain and CMake. If you are using toolchain and IDE from semiconductor, you might follow its own instructions to use Azure RTOS components as explained in the [Getting Started](#getting-started) section.
1. Install the following tools:
* [CMake](https://cmake.org/download/) version 3.0 or later
* [Arm GNU Toolchain for arm-none-eabi](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads)
* [Ninja](https://ninja-build.org/)
1. Cloning the repo
```bash
$ git clone https://github.com/azure-rtos/threadx.git
```
1. Define the features and addons you need in `tx_user.h` and build together with the component source code. You can refer to [`tx_user_sample.h`](https://github.com/azure-rtos/threadx/blob/master/common/inc/tx_user_sample.h) as an example.
1. Building as a static library
Each component of Azure RTOS comes with a composable CMake-based build system that supports many different MCUs and host systems. Integrating any of these components into your device app code is as simple as adding a git submodule and then including it in your build using the CMake `add_subdirectory()`.
While the typical usage pattern is to include ThreadX into your device code source tree to be built & linked with your code, you can compile this project as a standalone static library to confirm your build is set up correctly.
An example of building the library for Cortex-M4:
```bash
$ cmake -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=cmake/cortex_m4.cmake .
$ cmake --build ./build
```
## Professional support
[Professional support plans](https://azure.microsoft.com/support/options/) are available from Microsoft. For community support and others, see the [Resources](#resources) section below.
## Licensing
License terms for using Azure RTOS are defined in the LICENSE.txt file of this repo. Please refer to this file for all definitive licensing information. No additional license fees are required for deploying Azure RTOS on hardware defined in the LICENSED-HARDWARE.txt file. If you are using hardware not defined in the LICENSED-HARDWARE.txt file or have licensing questions in general, please contact Microsoft directly at https://aka.ms/azrtos-license.
## Resources
The following are references to additional Azure RTOS resources:
- **Product introduction and white papers**: https://azure.com/rtos
- **General technical questions**: https://aka.ms/QnA/azure-rtos
- **Product issues and bugs, or feature requests**: https://github.com/azure-rtos/threadx/issues
- **Licensing and sales questions**: https://aka.ms/azrtos-license
- **Product roadmap and support policy**: https://aka.ms/azrtos/lts
- **Blogs and videos**: http://msiotblog.com and https://aka.ms/iotshow
- **Azure RTOS TraceX Installer**: https://aka.ms/azrtos-tracex-installer
You can also check [previous questions](https://stackoverflow.com/questions/tagged/azure-rtos+threadx) or ask new ones on StackOverflow using the `azure-rtos` and `threadx` tags.
## Security
Azure RTOS provides OEMs with components to secure communication and to create code and data isolation using underlying MCU/MPU hardware protection mechanisms. It is ultimately the responsibility of the device builder to ensure the device fully meets the evolving security requirements associated with its specific use case. Azure RTOS provides OEMs with components to secure communication and to create code and data isolation using underlying MCU/MPU hardware protection mechanisms. It is ultimately the responsibility of the device builder to ensure the device fully meets the evolving security requirements associated with its specific use case.
# Licensing ## Contribution
License terms for using Azure RTOS are defined in the LICENSE.txt file of this repo. Please refer to this file for all definitive licensing information. No additional license fees are required for deploying Azure RTOS on hardware defined in the LICENSED-HARDWARE.txt file. If you are using hardware not defined in the LICENSED-HARDWARE.txt file or have licensing questions in general, please contact Microsoft directly at https://azure-rtos.ms-iot-contact.com/ Please follow the instructions provided in the [CONTRIBUTING.md](./CONTRIBUTING.md) for the corresponding repository.
# Contribution, feedback, issues, and professional support
If you encounter any bugs, have suggestions for new features, or if you would like to become an active contributor to this project, please follow the instructions provided in the contribution guideline for the corresponding repo.
For basic support, click Issues in the command bar or post a question to [Stack Overflow](http://stackoverflow.com/questions/tagged/azure-rtos+threadx) using the `threadx` and `azure-rtos` tags.
Professional support plans (https://azure.microsoft.com/en-us/support/options/) are available from Microsoft.
# Additional Resources
The following are references to additional Azure RTOS and Azure IoT in general:
| | |
|---|---|
| Azure RTOS Documenation and Guides: | https://docs.microsoft.com/azure/rtos |
| Azure RTOS Website: | https://azure.microsoft.com/services/rtos/ |
| Azure RTOS Sales Questions: | https://azure-rtos.ms-iot-contact.com/ |
| For technical questions check out Microsoft Q/A for Azure IoT: | https://aka.ms/QnA/azure-rtos |
| Internet of Things Show for latest announcements and online training: | https://aka.ms/iotshow |
| IoT Tech Community: | https://aka.ms/community/azure-rtos |

View File

@@ -17,7 +17,7 @@ set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
set(CMAKE_C_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} ${SPEC_FLAGS} -fdata-sections -ffunction-sections -mlong-calls" CACHE INTERNAL "c compiler flags") set(CMAKE_C_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} ${SPEC_FLAGS} -fdata-sections -ffunction-sections -mlong-calls" CACHE INTERNAL "c compiler flags")
set(CMAKE_CXX_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -mlong-calls" CACHE INTERNAL "cxx compiler flags") set(CMAKE_CXX_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -mlong-calls" CACHE INTERNAL "cxx compiler flags")
set(CMAKE_ASM_FLAGS "${MCPU_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags") set(CMAKE_ASM_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
set(CMAKE_EXE_LINKER_FLAGS "${MCPU_FLAGS} ${LD_FLAGS} -Wl,--gc-sections" CACHE INTERNAL "exe link flags") set(CMAKE_EXE_LINKER_FLAGS "${MCPU_FLAGS} ${LD_FLAGS} -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
SET(CMAKE_C_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "c debug compiler flags") SET(CMAKE_C_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "c debug compiler flags")

31
cmake/linux.cmake Normal file
View File

@@ -0,0 +1,31 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
set(AS as)
set(AR ar)
set(OBJCOPY objcopy)
set(OBJDUMP objdump)
set(SIZE size)
set(THREADX_ARCH "linux")
set(THREADX_TOOLCHAIN "gnu")
set(LINUX_FLAGS "-g -pthread")
set(CMAKE_C_FLAGS "${LINUX_FLAGS} " CACHE INTERNAL "c compiler flags")
set(CMAKE_CXX_FLAGS "${LINUX_FLAGS} -fno-rtti -fno-exceptions" CACHE INTERNAL "cxx compiler flags")
set(CMAKE_ASM_FLAGS "${LINUX_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
set(CMAKE_EXE_LINKER_FLAGS "${LINUX_FLAGS} ${LD_FLAGS} -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
SET(CMAKE_C_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
SET(CMAKE_CXX_FLAGS_DEBUG "-Og -g -ggdb3" CACHE INTERNAL "cxx debug compiler flags")
SET(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug compiler flags")
SET(CMAKE_C_FLAGS_RELEASE "-O3" CACHE INTERNAL "c release compiler flags")
SET(CMAKE_CXX_FLAGS_RELEASE "-O3" CACHE INTERNAL "cxx release compiler flags")
SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release compiler flags")
# this makes the test compiles use static library option so that we don't need to pre-set linker flags and scripts
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

15
cmake/win32.cmake Normal file
View File

@@ -0,0 +1,15 @@
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(THREADX_ARCH "win32")
set(THREADX_TOOLCHAIN "vs_2019")
set(WIN32_FLAGS "")
set(CMAKE_C_FLAGS "${WIN32_FLAGS} " CACHE INTERNAL "c compiler flags")
set(CMAKE_CXX_FLAGS "${WIN32_FLAGS} -fno-rtti -fno-exceptions" CACHE INTERNAL "cxx compiler flags")
set(CMAKE_ASM_FLAGS "${WIN32_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
set(CMAKE_EXE_LINKER_FLAGS "${WIN32_FLAGS} ${LD_FLAGS}" CACHE INTERNAL "exe link flags")
# this makes the test compiles use static library option so that we don't need to pre-set linker flags and scripts
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

View File

@@ -202,6 +202,7 @@ target_sources(${PROJECT_NAME}
# Add the Common/inc directory to the project include list # Add the Common/inc directory to the project include list
target_include_directories(${PROJECT_NAME} target_include_directories(${PROJECT_NAME}
SYSTEM
PUBLIC PUBLIC
${CMAKE_CURRENT_LIST_DIR}/inc ${CMAKE_CURRENT_LIST_DIR}/inc
) )

View File

@@ -26,7 +26,7 @@
/* APPLICATION INTERFACE DEFINITION RELEASE */ /* APPLICATION INTERFACE DEFINITION RELEASE */
/* */ /* */
/* tx_api.h PORTABLE C */ /* tx_api.h PORTABLE C */
/* 6.0.1 */ /* 6.2.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -44,9 +44,56 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 06-30-2020 William E. Lamie Modified comment(s), and */ /* 09-30-2020 William E. Lamie Modified comment(s), and */
/* updated product constants, */ /* updated product constants, */
/* resulting in version 6.0.1 */ /* added new thread execution */
/* state TX_PRIORITY_CHANGE, */
/* added macros for casting */
/* pointers to ALIGN_TYPE, */
/* resulting in version 6.1 */
/* 10-16-2020 William E. Lamie Modified comment(s), and */
/* increased patch version, */
/* resulting in version 6.1.1 */
/* 11-09-2020 Yuxin Zhou Modified comment(s), and */
/* moved TX_THREAD_GET_SYSTEM_ */
/* STATE to tx_api.h, */
/* resulting in version 6.1.2 */
/* 12-31-2020 William E. Lamie Modified comment(s), and */
/* increased patch version, */
/* resulting in version 6.1.3 */
/* 03-02-2021 Scott Larson Modified comment(s), and */
/* order defines numerically, */
/* add option to remove FileX */
/* pointer, */
/* resulting in version 6.1.5 */
/* 04-02-2021 Scott Larson Modified comment(s), and */
/* update patch number, */
/* resulting in version 6.1.6 */
/* 06-02-2021 Yuxin Zhou Modified comment(s), added */
/* Execution Profile support, */
/* resulting in version 6.1.7 */
/* 08-02-2021 Scott Larson Modified comment(s), and */
/* update patch number, */
/* resulting in version 6.1.8 */
/* 10-15-2021 Yuxin Zhou Modified comment(s), */
/* update patch number, */
/* resulting in version 6.1.9 */
/* 01-31-2022 Scott Larson Modified comment(s), */
/* add unused parameter macro, */
/* update patch number, */
/* resulting in version 6.1.10 */
/* 04-25-2022 Wenhui Xie Modified comment(s), */
/* optimized the definition of */
/* TX_TIMER_TICKS_PER_SECOND, */
/* resulting in version 6.1.11 */
/* 07-29-2022 Scott Larson Modified comment(s), */
/* update patch number, */
/* resulting in version 6.1.12 */
/* 10-31-2022 Scott Larson Modified comment(s), */
/* add extension macros, */
/* update EPK typedef, */
/* update version numbers, */
/* resulting in version 6.2.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -64,11 +111,18 @@ extern "C" {
#endif #endif
/* Disable warning of parameter not used. */
#ifndef TX_PARAMETER_NOT_USED
#define TX_PARAMETER_NOT_USED(p) ((void)(p))
#endif /* TX_PARAMETER_NOT_USED */
/* Include the port-specific data type file. */ /* Include the port-specific data type file. */
#include "tx_port.h" #include "tx_port.h"
#if (defined(TX_EXECUTION_PROFILE_ENABLE) && !defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY))
#include "tx_execution_profile.h"
#endif
/* Define basic constants for the ThreadX kernel. */ /* Define basic constants for the ThreadX kernel. */
@@ -78,12 +132,13 @@ extern "C" {
#define AZURE_RTOS_THREADX #define AZURE_RTOS_THREADX
#define THREADX_MAJOR_VERSION 6 #define THREADX_MAJOR_VERSION 6
#define THREADX_MINOR_VERSION 0 #define THREADX_MINOR_VERSION 2
#define THREADX_PATCH_VERSION 1 #define THREADX_PATCH_VERSION 0
/* Define the following symbol for backward compatibility */ /* Define the following symbol for backward compatibility */
#define EL_PRODUCT_THREADX #define EL_PRODUCT_THREADX
/* API input parameters and general constants. */ /* API input parameters and general constants. */
#define TX_NO_WAIT ((ULONG) 0) #define TX_NO_WAIT ((ULONG) 0)
@@ -132,13 +187,13 @@ extern "C" {
#define TX_FILE ((UINT) 11) #define TX_FILE ((UINT) 11)
#define TX_TCP_IP ((UINT) 12) #define TX_TCP_IP ((UINT) 12)
#define TX_MUTEX_SUSP ((UINT) 13) #define TX_MUTEX_SUSP ((UINT) 13)
#define TX_PRIORITY_CHANGE ((UINT) 14)
/* API return values. */ /* API return values. */
#define TX_SUCCESS ((UINT) 0x00) #define TX_SUCCESS ((UINT) 0x00)
#define TX_DELETED ((UINT) 0x01) #define TX_DELETED ((UINT) 0x01)
#define TX_NO_MEMORY ((UINT) 0x10)
#define TX_POOL_ERROR ((UINT) 0x02) #define TX_POOL_ERROR ((UINT) 0x02)
#define TX_PTR_ERROR ((UINT) 0x03) #define TX_PTR_ERROR ((UINT) 0x03)
#define TX_WAIT_ERROR ((UINT) 0x04) #define TX_WAIT_ERROR ((UINT) 0x04)
@@ -153,6 +208,7 @@ extern "C" {
#define TX_NO_INSTANCE ((UINT) 0x0D) #define TX_NO_INSTANCE ((UINT) 0x0D)
#define TX_THREAD_ERROR ((UINT) 0x0E) #define TX_THREAD_ERROR ((UINT) 0x0E)
#define TX_PRIORITY_ERROR ((UINT) 0x0F) #define TX_PRIORITY_ERROR ((UINT) 0x0F)
#define TX_NO_MEMORY ((UINT) 0x10)
#define TX_START_ERROR ((UINT) 0x10) #define TX_START_ERROR ((UINT) 0x10)
#define TX_DELETE_ERROR ((UINT) 0x11) #define TX_DELETE_ERROR ((UINT) 0x11)
#define TX_RESUME_ERROR ((UINT) 0x12) #define TX_RESUME_ERROR ((UINT) 0x12)
@@ -175,12 +231,82 @@ extern "C" {
#define TX_FEATURE_NOT_ENABLED ((UINT) 0xFF) #define TX_FEATURE_NOT_ENABLED ((UINT) 0xFF)
#ifdef TX_64_BIT
#ifndef TX_THREAD_EXTENSION_PTR_SET
#define TX_THREAD_EXTENSION_PTR_SET(a, b) { \
TX_THREAD *thread_ptr; \
thread_ptr = (TX_THREAD *) (a); \
(thread_ptr -> tx_thread_extension_ptr) = (VOID *)(b); \
}
#endif /* TX_THREAD_EXTENSION_PTR_SET */
#ifndef TX_THREAD_EXTENSION_PTR_GET
#define TX_THREAD_EXTENSION_PTR_GET(a, b, c) { \
TX_PARAMETER_NOT_USED(c); \
TX_THREAD *thread_ptr; \
thread_ptr = tx_thread_identify(); \
while(1)\
{ \
if (thread_ptr -> tx_thread_extension_ptr) \
{ \
(a) = (b *)(thread_ptr -> tx_thread_extension_ptr); \
break; \
} \
tx_thread_sleep(1); \
} \
}
#endif /* TX_THREAD_EXTENSION_PTR_GET */
#ifndef TX_TIMER_EXTENSION_PTR_SET
#define TX_TIMER_EXTENSION_PTR_SET(a, b) { \
TX_TIMER *timer_ptr; \
timer_ptr = (TX_TIMER *) (a); \
(timer_ptr -> tx_timer_internal.tx_timer_internal_extension_ptr) = (VOID *)(b); \
}
#endif /* TX_TIMER_EXTENSION_PTR_SET */
#ifndef TX_TIMER_EXTENSION_PTR_GET
#define TX_TIMER_EXTENSION_PTR_GET(a, b, c) { \
TX_PARAMETER_NOT_USED(c); \
if (!_tx_timer_expired_timer_ptr -> tx_timer_internal_extension_ptr) \
return; \
(a) = (b *)(_tx_timer_expired_timer_ptr -> tx_timer_internal_extension_ptr); \
}
#endif /* TX_TIMER_EXTENSION_PTR_GET */
#else /* not 64 bit */
#ifndef TX_THREAD_EXTENSION_PTR_SET
#define TX_THREAD_EXTENSION_PTR_SET(a, b)
#endif /* TX_THREAD_EXTENSION_PTR_SET */
#ifndef TX_THREAD_EXTENSION_PTR_GET
#define TX_THREAD_EXTENSION_PTR_GET(a, b, c) { \
(a) = (b *)(c); \
}
#endif /* TX_THREAD_EXTENSION_PTR_GET */
#ifndef TX_TIMER_EXTENSION_PTR_SET
#define TX_TIMER_EXTENSION_PTR_SET(a, b)
#endif /* TX_TIMER_EXTENSION_PTR_SET */
#ifndef TX_TIMER_EXTENSION_PTR_GET
#define TX_TIMER_EXTENSION_PTR_GET(a, b, c) { \
(a) = (b *)(c); \
}
#endif /* TX_TIMER_EXTENSION_PTR_GET */
#endif /* TX_64_BIT */
/* Define the common timer tick reference for use by other middleware components. The default /* Define the common timer tick reference for use by other middleware components. The default
value is 10ms, but may be replaced by a port specific version in tx_port.h or by the user value is 10ms, but may be replaced by a port specific version in tx_port.h or by the user
as a compilation option. */ as a compilation option. */
#ifndef TX_TIMER_TICKS_PER_SECOND #ifndef TX_TIMER_TICKS_PER_SECOND
#define TX_TIMER_TICKS_PER_SECOND ((ULONG) 100) #define TX_TIMER_TICKS_PER_SECOND (100UL)
#endif #endif
@@ -406,7 +532,9 @@ typedef struct TX_THREAD_STRUCT
TX_THREAD_EXTENSION_2 TX_THREAD_EXTENSION_2
/* Define a pointer type for FileX extensions. */ /* Define a pointer type for FileX extensions. */
#ifndef TX_NO_FILEX_POINTER
VOID *tx_thread_filex_ptr; VOID *tx_thread_filex_ptr;
#endif
/* Define the priority inheritance variables. These will be used /* Define the priority inheritance variables. These will be used
to manage priority inheritance changes applied to this thread to manage priority inheritance changes applied to this thread
@@ -472,6 +600,17 @@ typedef struct TX_THREAD_STRUCT
is typically defined to whitespace in tx_port.h. */ is typically defined to whitespace in tx_port.h. */
TX_THREAD_EXTENSION_3 TX_THREAD_EXTENSION_3
/* Define variables for supporting execution profile. */
/* Note that in ThreadX 5.x, user would define TX_ENABLE_EXECUTION_CHANGE_NOTIFY and use TX_THREAD_EXTENSION_3
to define the following two variables.
For Azure RTOS 6, user shall use TX_EXECUTION_PROFILE_ENABLE instead of TX_ENABLE_EXECUTION_CHANGE_NOTIFY,
and SHALL NOT add variables to TX_THREAD_EXTENSION_3. */
#if (defined(TX_EXECUTION_PROFILE_ENABLE) && !defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY))
EXECUTION_TIME tx_thread_execution_time_total;
EXECUTION_TIME_SOURCE_TYPE tx_thread_execution_time_last_start;
#endif
/* Define suspension sequence number. This is used to ensure suspension is still valid when /* Define suspension sequence number. This is used to ensure suspension is still valid when
cleanup routine executes. */ cleanup routine executes. */
ULONG tx_thread_suspension_sequence; ULONG tx_thread_suspension_sequence;
@@ -1076,7 +1215,6 @@ UINT _tx_trace_interrupt_control(UINT new_posture);
#ifdef TX_ENABLE_MULTI_ERROR_CHECKING #ifdef TX_ENABLE_MULTI_ERROR_CHECKING
/* Services with MULTI runtime error checking ThreadX. */ /* Services with MULTI runtime error checking ThreadX. */
#define tx_block_allocate _txr_block_allocate #define tx_block_allocate _txr_block_allocate
@@ -1774,7 +1912,6 @@ VOID _tx_misra_user_timer_pointer_get(TX_TIMER_INTERNAL *inte
VOID _tx_misra_thread_stack_check(TX_THREAD *thread_ptr, VOID **highest_stack); VOID _tx_misra_thread_stack_check(TX_THREAD *thread_ptr, VOID **highest_stack);
VOID _tx_misra_trace_event_insert(ULONG event_id, VOID *info_field_1, ULONG info_field_2, ULONG info_field_3, ULONG info_field_4, ULONG filter, ULONG time_stamp); VOID _tx_misra_trace_event_insert(ULONG event_id, VOID *info_field_1, ULONG info_field_2, ULONG info_field_3, ULONG info_field_4, ULONG filter, ULONG time_stamp);
UINT _tx_misra_always_true(void); UINT _tx_misra_always_true(void);
UCHAR **_tx_misra_indirect_void_to_uchar_pointer_convert(VOID **pointer); UCHAR **_tx_misra_indirect_void_to_uchar_pointer_convert(VOID **pointer);
UCHAR **_tx_misra_uchar_to_indirect_uchar_pointer_convert(UCHAR *pointer); UCHAR **_tx_misra_uchar_to_indirect_uchar_pointer_convert(UCHAR *pointer);
UCHAR *_tx_misra_block_pool_to_uchar_pointer_convert(TX_BLOCK_POOL *pool); UCHAR *_tx_misra_block_pool_to_uchar_pointer_convert(TX_BLOCK_POOL *pool);
@@ -1807,7 +1944,6 @@ VOID _tx_misra_semaphore_put_notify_not_used(VOID (*semaphore
VOID _tx_misra_thread_not_used(TX_THREAD *thread_ptr); VOID _tx_misra_thread_not_used(TX_THREAD *thread_ptr);
VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT id)); VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT id));
#define TX_MEMSET(a,b,c) _tx_misra_memset((a), (UINT) (b), (UINT) (c)) #define TX_MEMSET(a,b,c) _tx_misra_memset((a), (UINT) (b), (UINT) (c))
#define TX_UCHAR_POINTER_ADD(a,b) _tx_misra_uchar_pointer_add((UCHAR *) (a), (ULONG) (b)) #define TX_UCHAR_POINTER_ADD(a,b) _tx_misra_uchar_pointer_add((UCHAR *) (a), (ULONG) (b))
#define TX_UCHAR_POINTER_SUB(a,b) _tx_misra_uchar_pointer_sub((UCHAR *) (a), (ULONG) (b)) #define TX_UCHAR_POINTER_SUB(a,b) _tx_misra_uchar_pointer_sub((UCHAR *) (a), (ULONG) (b))
@@ -1826,8 +1962,6 @@ VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*threa
#define TX_TRACE_IN_LINE_INSERT(i,a,b,c,d,e) _tx_misra_trace_event_insert((ULONG) (i), (VOID *) (a), (ULONG) (b), (ULONG) (c), (ULONG) (d), (ULONG) (e), ((ULONG) TX_TRACE_TIME_SOURCE)); #define TX_TRACE_IN_LINE_INSERT(i,a,b,c,d,e) _tx_misra_trace_event_insert((ULONG) (i), (VOID *) (a), (ULONG) (b), (ULONG) (c), (ULONG) (d), (ULONG) (e), ((ULONG) TX_TRACE_TIME_SOURCE));
#endif #endif
#define TX_LOOP_FOREVER (_tx_misra_always_true() == TX_TRUE) #define TX_LOOP_FOREVER (_tx_misra_always_true() == TX_TRUE)
#define TX_INDIRECT_VOID_TO_UCHAR_POINTER_CONVERT(a) _tx_misra_indirect_void_to_uchar_pointer_convert((a)) #define TX_INDIRECT_VOID_TO_UCHAR_POINTER_CONVERT(a) _tx_misra_indirect_void_to_uchar_pointer_convert((a))
#define TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(a) _tx_misra_uchar_to_indirect_uchar_pointer_convert((a)) #define TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(a) _tx_misra_uchar_to_indirect_uchar_pointer_convert((a))
#define TX_BLOCK_POOL_TO_UCHAR_POINTER_CONVERT(a) _tx_misra_block_pool_to_uchar_pointer_convert((a)) #define TX_BLOCK_POOL_TO_UCHAR_POINTER_CONVERT(a) _tx_misra_block_pool_to_uchar_pointer_convert((a))
@@ -1863,7 +1997,6 @@ VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*threa
#define TX_THREAD_NOT_USED(a) _tx_misra_thread_not_used((a)) #define TX_THREAD_NOT_USED(a) _tx_misra_thread_not_used((a))
#define TX_THREAD_ENTRY_EXIT_NOTIFY_NOT_USED(a) _tx_misra_thread_entry_exit_notify_not_used((a)) #define TX_THREAD_ENTRY_EXIT_NOTIFY_NOT_USED(a) _tx_misra_thread_entry_exit_notify_not_used((a))
#else #else
/* Define the TX_MEMSET macro to the standard library function, if not already defined. */ /* Define the TX_MEMSET macro to the standard library function, if not already defined. */
@@ -1880,6 +2013,8 @@ VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*threa
#define TX_ULONG_POINTER_DIF(a,b) ((ULONG)(((ULONG *) (a)) - ((ULONG *) (b)))) #define TX_ULONG_POINTER_DIF(a,b) ((ULONG)(((ULONG *) (a)) - ((ULONG *) (b))))
#define TX_POINTER_TO_ULONG_CONVERT(a) ((ULONG) ((VOID *) (a))) #define TX_POINTER_TO_ULONG_CONVERT(a) ((ULONG) ((VOID *) (a)))
#define TX_ULONG_TO_POINTER_CONVERT(a) ((VOID *) ((ULONG) (a))) #define TX_ULONG_TO_POINTER_CONVERT(a) ((VOID *) ((ULONG) (a)))
#define TX_POINTER_TO_ALIGN_TYPE_CONVERT(a) ((ALIGN_TYPE) ((VOID *) (a)))
#define TX_ALIGN_TYPE_TO_POINTER_CONVERT(a) ((VOID *) ((ALIGN_TYPE) (a)))
#define TX_TIMER_POINTER_DIF(a,b) ((ULONG)(((TX_TIMER_INTERNAL **) (a)) - ((TX_TIMER_INTERNAL **) (b)))) #define TX_TIMER_POINTER_DIF(a,b) ((ULONG)(((TX_TIMER_INTERNAL **) (a)) - ((TX_TIMER_INTERNAL **) (b))))
#define TX_TIMER_POINTER_ADD(a,b) (((TX_TIMER_INTERNAL **) (a)) + ((ULONG) (b))) #define TX_TIMER_POINTER_ADD(a,b) (((TX_TIMER_INTERNAL **) (a)) + ((ULONG) (b)))
#define TX_USER_TIMER_POINTER_GET(a,b) { \ #define TX_USER_TIMER_POINTER_GET(a,b) { \
@@ -1890,8 +2025,6 @@ VOID _tx_misra_thread_entry_exit_notify_not_used(VOID (*threa
(b) = (TX_TIMER *) working_ptr; \ (b) = (TX_TIMER *) working_ptr; \
} }
#define TX_LOOP_FOREVER ((UINT) 1) #define TX_LOOP_FOREVER ((UINT) 1)
#define TX_INDIRECT_VOID_TO_UCHAR_POINTER_CONVERT(a) ((UCHAR **) ((VOID *) (a))) #define TX_INDIRECT_VOID_TO_UCHAR_POINTER_CONVERT(a) ((UCHAR **) ((VOID *) (a)))
#define TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(a) ((UCHAR **) ((VOID *) (a))) #define TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(a) ((UCHAR **) ((VOID *) (a)))
#define TX_BLOCK_POOL_TO_UCHAR_POINTER_CONVERT(a) ((UCHAR *) ((VOID *) (a))) #define TX_BLOCK_POOL_TO_UCHAR_POINTER_CONVERT(a) ((UCHAR *) ((VOID *) (a)))
@@ -2202,6 +2335,13 @@ void __ghs_rnerr(char *errMsg, int stackLevels, int stackTraceDisplay, void *hex
#endif #endif
/* Define the get system state macro. By default, it simply maps to the variable _tx_thread_system_state. */
/* Note that prior to Azure RTOS 6.1, this symbol was defined in tx_thread.h. */
#ifndef TX_THREAD_GET_SYSTEM_STATE
#define TX_THREAD_GET_SYSTEM_STATE() _tx_thread_system_state
#endif
/* Determine if a C++ compiler is being used. If so, complete the standard /* Determine if a C++ compiler is being used. If so, complete the standard

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_block_pool.h PORTABLE C */ /* tx_block_pool.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_byte_pool.h PORTABLE C */ /* tx_byte_pool.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_event_flags.h PORTABLE C */ /* tx_event_flags.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_initialize.h PORTABLE C */ /* tx_initialize.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_mutex.h PORTABLE C */ /* tx_mutex.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_queue.h PORTABLE C */ /* tx_queue.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_semaphore.h PORTABLE C */ /* tx_semaphore.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_thread.h PORTABLE C */ /* tx_thread.h PORTABLE C */
/* 6.0 */ /* 6.1.9 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,15 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* 11-09-2020 Yuxin Zhou Modified comment(s), and */
/* moved TX_THREAD_GET_SYSTEM_ */
/* STATE to tx_api.h, */
/* resulting in version 6.1.2 */
/* 10-15-2021 Scott Larson Modified comment(s), improved */
/* stack check error handling, */
/* resulting in version 6.1.9 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -108,12 +117,13 @@
#endif #endif
/* Define the get system state macro. By default, it simply maps to the variable _tx_thread_system_state. */
/* Define the get system state macro. By default, it simply maps to the variable _tx_thread_system_state. */
/* This symbol is moved to tx_api.h. Therefore removed from this file.
#ifndef TX_THREAD_GET_SYSTEM_STATE #ifndef TX_THREAD_GET_SYSTEM_STATE
#define TX_THREAD_GET_SYSTEM_STATE() _tx_thread_system_state #define TX_THREAD_GET_SYSTEM_STATE() _tx_thread_system_state
#endif #endif
*/
/* Define the check for whether or not to call the _tx_thread_system_return function. A non-zero value /* Define the check for whether or not to call the _tx_thread_system_return function. A non-zero value
indicates that _tx_thread_system_return should not be called. */ indicates that _tx_thread_system_return should not be called. */
@@ -431,7 +441,7 @@ THREAD_DECLARE VOID (*_tx_thread_mutex_release)(TX_THREAD *thread_pt
THREAD_DECLARE ULONG _tx_build_options; THREAD_DECLARE ULONG _tx_build_options;
#ifdef TX_ENABLE_STACK_CHECKING #if defined(TX_ENABLE_STACK_CHECKING) || defined(TX_PORT_THREAD_STACK_ERROR_HANDLING)
/* Define the global function pointer for stack error handling. If a stack error is /* Define the global function pointer for stack error handling. If a stack error is
detected and the application has registered a stack error handler, it will be detected and the application has registered a stack error handler, it will be

View File

@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_timer.h PORTABLE C */ /* tx_timer.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -25,7 +25,7 @@
/* COMPONENT DEFINITION RELEASE */ /* COMPONENT DEFINITION RELEASE */
/* */ /* */
/* tx_trace.h PORTABLE C */ /* tx_trace.h PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -41,6 +41,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/

View File

@@ -26,7 +26,7 @@
/* PORT SPECIFIC C INFORMATION RELEASE */ /* PORT SPECIFIC C INFORMATION RELEASE */
/* */ /* */
/* tx_user.h PORTABLE C */ /* tx_user.h PORTABLE C */
/* 6.0 */ /* 6.1.11 */
/* */ /* */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
@@ -45,6 +45,23 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* 03-02-2021 Scott Larson Modified comment(s), */
/* added option to remove */
/* FileX pointer, */
/* resulting in version 6.1.5 */
/* 06-02-2021 Scott Larson Added options for multiple */
/* block pool search & delay, */
/* resulting in version 6.1.7 */
/* 10-15-2021 Yuxin Zhou Modified comment(s), added */
/* user-configurable symbol */
/* TX_TIMER_TICKS_PER_SECOND */
/* resulting in version 6.1.9 */
/* 04-25-2022 Wenhui Xie Modified comment(s), */
/* optimized the definition of */
/* TX_TIMER_TICKS_PER_SECOND, */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
@@ -74,6 +91,7 @@
TX_DISABLE_PREEMPTION_THRESHOLD TX_DISABLE_PREEMPTION_THRESHOLD
TX_DISABLE_REDUNDANT_CLEARING TX_DISABLE_REDUNDANT_CLEARING
TX_DISABLE_NOTIFY_CALLBACKS TX_DISABLE_NOTIFY_CALLBACKS
TX_NO_FILEX_POINTER
TX_NOT_INTERRUPTABLE TX_NOT_INTERRUPTABLE
TX_TIMER_PROCESS_IN_ISR TX_TIMER_PROCESS_IN_ISR
@@ -96,6 +114,25 @@
#define TX_TIMER_THREAD_PRIORITY ???? #define TX_TIMER_THREAD_PRIORITY ????
*/ */
/* Define the common timer tick reference for use by other middleware components. The default
value is 10ms (i.e. 100 ticks, defined in tx_api.h), but may be replaced by a port-specific
version in tx_port.h or here.
Note: the actual hardware timer value may need to be changed (usually in tx_initialize_low_level). */
/*
#define TX_TIMER_TICKS_PER_SECOND (100UL)
*/
/* Determine if there is a FileX pointer in the thread control block.
By default, the pointer is there for legacy/backwards compatibility.
The pointer must also be there for applications using FileX.
Define this to save space in the thread control block.
*/
/*
#define TX_NO_FILEX_POINTER
*/
/* Determine if timer expirations (application timers, timeouts, and tx_thread_sleep calls /* Determine if timer expirations (application timers, timeouts, and tx_thread_sleep calls
should be processed within the a system timer thread or directly in the timer ISR. should be processed within the a system timer thread or directly in the timer ISR.
By default, the timer thread is used. When the following is defined, the timer expiration By default, the timer thread is used. When the following is defined, the timer expiration
@@ -153,7 +190,7 @@
processing when not needed. The user will also have to comment out the call to processing when not needed. The user will also have to comment out the call to
tx_timer_interrupt, which is typically made from assembly language in tx_timer_interrupt, which is typically made from assembly language in
tx_initialize_low_level. Note: if TX_NO_TIMER is used, the define TX_TIMER_PROCESS_IN_ISR tx_initialize_low_level. Note: if TX_NO_TIMER is used, the define TX_TIMER_PROCESS_IN_ISR
must also be used. */ must also be used and tx_timer_initialize must be removed from ThreadX library. */
/* /*
#define TX_NO_TIMER #define TX_NO_TIMER
@@ -253,5 +290,17 @@
#define TX_TIMER_ENABLE_PERFORMANCE_INFO #define TX_TIMER_ENABLE_PERFORMANCE_INFO
*/ */
/* Override options for byte pool searches of multiple blocks. */
/*
#define TX_BYTE_POOL_MULTIPLE_BLOCK_SEARCH 20
*/
/* Override options for byte pool search delay to avoid thrashing. */
/*
#define TX_BYTE_POOL_DELAY_VALUE 3
*/
#endif #endif

View File

@@ -38,7 +38,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_allocate PORTABLE C */ /* _tx_block_allocate PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_block_allocate(TX_BLOCK_POOL *pool_ptr, VOID **block_ptr, ULONG wait_option) UINT _tx_block_allocate(TX_BLOCK_POOL *pool_ptr, VOID **block_ptr, ULONG wait_option)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_pool_cleanup PORTABLE C */ /* _tx_block_pool_cleanup PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_block_pool_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence) VOID _tx_block_pool_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_pool_create PORTABLE C */ /* _tx_block_pool_create PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_block_pool_create(TX_BLOCK_POOL *pool_ptr, CHAR *name_ptr, ULONG block_size, UINT _tx_block_pool_create(TX_BLOCK_POOL *pool_ptr, CHAR *name_ptr, ULONG block_size,

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_pool_delete PORTABLE C */ /* _tx_block_pool_delete PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_block_pool_delete(TX_BLOCK_POOL *pool_ptr) UINT _tx_block_pool_delete(TX_BLOCK_POOL *pool_ptr)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_pool_info_get PORTABLE C */ /* _tx_block_pool_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_block_pool_info_get(TX_BLOCK_POOL *pool_ptr, CHAR **name, ULONG *available_blocks, UINT _tx_block_pool_info_get(TX_BLOCK_POOL *pool_ptr, CHAR **name, ULONG *available_blocks,

View File

@@ -65,7 +65,6 @@ ULONG _tx_block_pool_performance_suspension_count;
ULONG _tx_block_pool_performance_timeout_count; ULONG _tx_block_pool_performance_timeout_count;
#endif #endif
#endif
/**************************************************************************/ /**************************************************************************/
@@ -73,7 +72,7 @@ ULONG _tx_block_pool_performance_timeout_count;
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block pool_initialize PORTABLE C */ /* _tx_block pool_initialize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -104,6 +103,11 @@ ULONG _tx_block_pool_performance_timeout_count;
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* opt out of function when */
/* TX_INLINE_INITIALIZATION is */
/* defined, */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_block_pool_initialize(VOID) VOID _tx_block_pool_initialize(VOID)
@@ -126,4 +130,4 @@ VOID _tx_block_pool_initialize(VOID)
#endif #endif
#endif #endif
} }
#endif

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_pool_performance_info_get PORTABLE C */ /* _tx_block_pool_performance_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_block_pool_performance_info_get(TX_BLOCK_POOL *pool_ptr, ULONG *allocates, ULONG *releases, UINT _tx_block_pool_performance_info_get(TX_BLOCK_POOL *pool_ptr, ULONG *allocates, ULONG *releases,

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_pool_performance_system_info_get PORTABLE C */ /* _tx_block_pool_performance_system_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_block_pool_performance_system_info_get(ULONG *allocates, ULONG *releases, ULONG *suspensions, ULONG *timeouts) UINT _tx_block_pool_performance_system_info_get(ULONG *allocates, ULONG *releases, ULONG *suspensions, ULONG *timeouts)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_pool_prioritize PORTABLE C */ /* _tx_block_pool_prioritize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_block_pool_prioritize(TX_BLOCK_POOL *pool_ptr) UINT _tx_block_pool_prioritize(TX_BLOCK_POOL *pool_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_block_release PORTABLE C */ /* _tx_block_release PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_block_release(VOID *block_ptr) UINT _tx_block_release(VOID *block_ptr)

View File

@@ -38,7 +38,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_allocate PORTABLE C */ /* _tx_byte_allocate PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -75,6 +75,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_byte_allocate(TX_BYTE_POOL *pool_ptr, VOID **memory_ptr, ULONG memory_size, ULONG wait_option) UINT _tx_byte_allocate(TX_BYTE_POOL *pool_ptr, VOID **memory_ptr, ULONG memory_size, ULONG wait_option)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_cleanup PORTABLE C */ /* _tx_byte_pool_cleanup PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_byte_pool_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence) VOID _tx_byte_pool_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_create PORTABLE C */ /* _tx_byte_pool_create PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_byte_pool_create(TX_BYTE_POOL *pool_ptr, CHAR *name_ptr, VOID *pool_start, ULONG pool_size) UINT _tx_byte_pool_create(TX_BYTE_POOL *pool_ptr, CHAR *name_ptr, VOID *pool_start, ULONG pool_size)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_delete PORTABLE C */ /* _tx_byte_pool_delete PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_byte_pool_delete(TX_BYTE_POOL *pool_ptr) UINT _tx_byte_pool_delete(TX_BYTE_POOL *pool_ptr)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_info_get PORTABLE C */ /* _tx_byte_pool_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_byte_pool_info_get(TX_BYTE_POOL *pool_ptr, CHAR **name, ULONG *available_bytes, UINT _tx_byte_pool_info_get(TX_BYTE_POOL *pool_ptr, CHAR **name, ULONG *available_bytes,

View File

@@ -80,7 +80,6 @@ ULONG _tx_byte_pool_performance_suspension_count;
ULONG _tx_byte_pool_performance_timeout_count; ULONG _tx_byte_pool_performance_timeout_count;
#endif #endif
#endif
/**************************************************************************/ /**************************************************************************/
@@ -88,7 +87,7 @@ ULONG _tx_byte_pool_performance_timeout_count;
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_initialize PORTABLE C */ /* _tx_byte_pool_initialize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -119,6 +118,11 @@ ULONG _tx_byte_pool_performance_timeout_count;
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* opt out of function when */
/* TX_INLINE_INITIALIZATION is */
/* defined, */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_byte_pool_initialize(VOID) VOID _tx_byte_pool_initialize(VOID)
@@ -144,4 +148,4 @@ VOID _tx_byte_pool_initialize(VOID)
#endif #endif
#endif #endif
} }
#endif

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_performance_info_get PORTABLE C */ /* _tx_byte_pool_performance_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -84,6 +84,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_byte_pool_performance_info_get(TX_BYTE_POOL *pool_ptr, ULONG *allocates, ULONG *releases, UINT _tx_byte_pool_performance_info_get(TX_BYTE_POOL *pool_ptr, ULONG *allocates, ULONG *releases,

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_performance_system_info_get PORTABLE C */ /* _tx_byte_pool_performance_system_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -81,6 +81,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_byte_pool_performance_system_info_get(ULONG *allocates, ULONG *releases, UINT _tx_byte_pool_performance_system_info_get(ULONG *allocates, ULONG *releases,

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_prioritize PORTABLE C */ /* _tx_byte_pool_prioritize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_byte_pool_prioritize(TX_BYTE_POOL *pool_ptr) UINT _tx_byte_pool_prioritize(TX_BYTE_POOL *pool_ptr)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_pool_search PORTABLE C */ /* _tx_byte_pool_search PORTABLE C */
/* 6.0 */ /* 6.1.7 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -77,6 +77,11 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* 06-02-2021 Scott Larson Improve possible free bytes */
/* calculation, */
/* resulting in version 6.1.7 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UCHAR *_tx_byte_pool_search(TX_BYTE_POOL *pool_ptr, ULONG memory_size) UCHAR *_tx_byte_pool_search(TX_BYTE_POOL *pool_ptr, ULONG memory_size)
@@ -94,13 +99,16 @@ UINT first_free_block_found = TX_FALSE;
TX_THREAD *thread_ptr; TX_THREAD *thread_ptr;
ALIGN_TYPE *free_ptr; ALIGN_TYPE *free_ptr;
UCHAR *work_ptr; UCHAR *work_ptr;
ULONG total_theoretical_available;
/* Disable interrupts. */ /* Disable interrupts. */
TX_DISABLE TX_DISABLE
/* First, determine if there are enough bytes in the pool. */ /* First, determine if there are enough bytes in the pool. */
if (memory_size >= pool_ptr -> tx_byte_pool_available) /* Theoretical bytes available = free bytes + ((fragments-2) * overhead of each block) */
total_theoretical_available = pool_ptr -> tx_byte_pool_available + ((pool_ptr -> tx_byte_pool_fragments - 2) * ((sizeof(UCHAR *)) + (sizeof(ALIGN_TYPE))));
if (memory_size >= total_theoretical_available)
{ {
/* Restore interrupts. */ /* Restore interrupts. */
@@ -144,7 +152,6 @@ UCHAR *work_ptr;
/* Determine if this is the first free block. */ /* Determine if this is the first free block. */
if (first_free_block_found == TX_FALSE) if (first_free_block_found == TX_FALSE)
{ {
/* This is the first free block. */ /* This is the first free block. */
pool_ptr->tx_byte_pool_search = current_ptr; pool_ptr->tx_byte_pool_search = current_ptr;
@@ -205,14 +212,12 @@ UCHAR *work_ptr;
/* See if the search pointer is affected. */ /* See if the search pointer is affected. */
if (pool_ptr -> tx_byte_pool_search == next_ptr) if (pool_ptr -> tx_byte_pool_search == next_ptr)
{ {
/* Yes, update the search pointer. */ /* Yes, update the search pointer. */
pool_ptr -> tx_byte_pool_search = current_ptr; pool_ptr -> tx_byte_pool_search = current_ptr;
} }
} }
else else
{ {
/* Neighbor is not free so we can skip over it! */ /* Neighbor is not free so we can skip over it! */
next_block_link_ptr = TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(next_ptr); next_block_link_ptr = TX_UCHAR_TO_INDIRECT_UCHAR_POINTER_CONVERT(next_ptr);
current_ptr = *next_block_link_ptr; current_ptr = *next_block_link_ptr;
@@ -220,7 +225,6 @@ UCHAR *work_ptr;
/* Decrement the examined block count to account for this one. */ /* Decrement the examined block count to account for this one. */
if (examine_blocks != ((UINT) 0)) if (examine_blocks != ((UINT) 0))
{ {
examine_blocks--; examine_blocks--;
#ifdef TX_BYTE_POOL_ENABLE_PERFORMANCE_INFO #ifdef TX_BYTE_POOL_ENABLE_PERFORMANCE_INFO

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_byte_release PORTABLE C */ /* _tx_byte_release PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_byte_release(VOID *memory_ptr) UINT _tx_byte_release(VOID *memory_ptr)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_cleanup PORTABLE C */ /* _tx_event_flags_cleanup PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_event_flags_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence) VOID _tx_event_flags_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_create PORTABLE C */ /* _tx_event_flags_create PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_create(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR *name_ptr) UINT _tx_event_flags_create(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR *name_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_delete PORTABLE C */ /* _tx_event_flags_delete PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_delete(TX_EVENT_FLAGS_GROUP *group_ptr) UINT _tx_event_flags_delete(TX_EVENT_FLAGS_GROUP *group_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_get PORTABLE C */ /* _tx_event_flags_get PORTABLE C */
/* 6.0 */ /* 6.2.0 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,14 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* 04-25-2022 Scott Larson Modified comment(s), */
/* handle 0 flags case, */
/* resulting in version 6.1.11 */
/* 10-31-2022 Scott Larson Modified comment(s), always */
/* return actual flags, */
/* resulting in version 6.2.0 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags, UINT _tx_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags,
@@ -120,6 +128,9 @@ UINT interrupted_set_request;
/* Pickup current flags. */ /* Pickup current flags. */
current_flags = group_ptr -> tx_event_flags_group_current; current_flags = group_ptr -> tx_event_flags_group_current;
/* Return the actual event flags and apply delayed clearing. */
*actual_flags_ptr = current_flags & ~group_ptr -> tx_event_flags_group_delayed_clear;
/* Apply the event flag option mask. */ /* Apply the event flag option mask. */
and_request = (get_option & TX_AND); and_request = (get_option & TX_AND);
@@ -153,9 +164,6 @@ UINT interrupted_set_request;
if (flags_satisfied != ((ULONG) 0)) if (flags_satisfied != ((ULONG) 0))
{ {
/* Return the actual event flags that satisfied the request. */
*actual_flags_ptr = current_flags;
/* Pickup the clear bit. */ /* Pickup the clear bit. */
clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK); clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK);
@@ -216,9 +224,6 @@ UINT interrupted_set_request;
/* Yes, this request can be handled immediately. */ /* Yes, this request can be handled immediately. */
/* Return the actual event flags that satisfied the request. */
*actual_flags_ptr = current_flags;
/* Pickup the clear bit. */ /* Pickup the clear bit. */
clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK); clear_request = (get_option & TX_EVENT_FLAGS_CLEAR_MASK);
@@ -269,16 +274,17 @@ UINT interrupted_set_request;
#endif #endif
else else
{ {
/* flags_satisfied is 0. */
/* Determine if the request specifies suspension. */ /* Determine if the request specifies suspension. */
if (wait_option != TX_NO_WAIT) if (wait_option != TX_NO_WAIT)
{ {
/* Determine if the preempt disable flag is non-zero. */ /* Determine if the preempt disable flag is non-zero OR the requested events is 0. */
if (_tx_thread_preempt_disable != ((UINT) 0)) if ((_tx_thread_preempt_disable != ((UINT) 0)) || (requested_flags == (UINT) 0))
{ {
/* Suspension is not allowed if the preempt disable flag is non-zero at this point, return error completion. */ /* Suspension is not allowed if the preempt disable flag is non-zero at this point,
or if requested_flags is 0, return error completion. */
status = TX_NO_EVENTS; status = TX_NO_EVENTS;
} }
else else

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_info_get PORTABLE C */ /* _tx_event_flags_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -75,6 +75,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR **name, ULONG *current_flags, UINT _tx_event_flags_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR **name, ULONG *current_flags,

View File

@@ -65,7 +65,6 @@ ULONG _tx_event_flags_performance_timeout_count;
#endif #endif
#endif
@@ -74,7 +73,7 @@ ULONG _tx_event_flags_performance_timeout_count;
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_initialize PORTABLE C */ /* _tx_event_flags_initialize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -105,6 +104,11 @@ ULONG _tx_event_flags_performance_timeout_count;
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* opt out of function when */
/* TX_INLINE_INITIALIZATION is */
/* defined, */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_event_flags_initialize(VOID) VOID _tx_event_flags_initialize(VOID)
@@ -127,4 +131,4 @@ VOID _tx_event_flags_initialize(VOID)
#endif #endif
#endif #endif
} }
#endif

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_performance_info_get PORTABLE C */ /* _tx_event_flags_performance_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -77,6 +77,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_performance_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG *sets, ULONG *gets, UINT _tx_event_flags_performance_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG *sets, ULONG *gets,

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_performance_system_info_get PORTABLE C */ /* _tx_event_flags_performance_system_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_performance_system_info_get(ULONG *sets, ULONG *gets, ULONG *suspensions, ULONG *timeouts) UINT _tx_event_flags_performance_system_info_get(ULONG *sets, ULONG *gets, ULONG *suspensions, ULONG *timeouts)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_set PORTABLE C */ /* _tx_event_flags_set PORTABLE C */
/* 6.0 */ /* 6.1.11 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,12 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* 04-25-2022 William E. Lamie Modified comment(s), and */
/* added corrected preemption */
/* check logic, resulting in */
/* version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_set(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG flags_to_set, UINT set_option) UINT _tx_event_flags_set(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG flags_to_set, UINT set_option)
@@ -262,9 +268,6 @@ VOID (*events_set_notify)(struct TX_EVENT_FLAGS_GROUP_STRUCT *notify_
/* Yes, resume the thread and apply any event flag /* Yes, resume the thread and apply any event flag
clearing. */ clearing. */
/* Set the preempt check flag. */
preempt_check = TX_TRUE;
/* Return the actual event flags that satisfied the request. */ /* Return the actual event flags that satisfied the request. */
suspend_info_ptr = TX_VOID_TO_ULONG_POINTER_CONVERT(thread_ptr -> tx_thread_additional_suspend_info); suspend_info_ptr = TX_VOID_TO_ULONG_POINTER_CONVERT(thread_ptr -> tx_thread_additional_suspend_info);
*suspend_info_ptr = current_event_flags; *suspend_info_ptr = current_event_flags;
@@ -334,6 +337,11 @@ VOID (*events_set_notify)(struct TX_EVENT_FLAGS_GROUP_STRUCT *notify_
/* Disable preemption while we process the suspended list. */ /* Disable preemption while we process the suspended list. */
_tx_thread_preempt_disable++; _tx_thread_preempt_disable++;
/* Since we have temporarily disabled preemption globally, set the preempt
check flag to check for any preemption condition - including from
unrelated ISR processing. */
preempt_check = TX_TRUE;
/* Loop to examine all of the suspended threads. */ /* Loop to examine all of the suspended threads. */
do do
{ {
@@ -417,9 +425,6 @@ VOID (*events_set_notify)(struct TX_EVENT_FLAGS_GROUP_STRUCT *notify_
/* Yes, this request can be handled now. */ /* Yes, this request can be handled now. */
/* Set the preempt check flag. */
preempt_check = TX_TRUE;
/* Determine if the thread is still suspended on the event flag group. If not, a wait /* Determine if the thread is still suspended on the event flag group. If not, a wait
abort must have been done from an ISR. */ abort must have been done from an ISR. */
if (thread_ptr -> tx_thread_state == TX_EVENT_FLAG) if (thread_ptr -> tx_thread_state == TX_EVENT_FLAG)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_event_flags_set_notify PORTABLE C */ /* _tx_event_flags_set_notify PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_event_flags_set_notify(TX_EVENT_FLAGS_GROUP *group_ptr, VOID (*events_set_notify)(TX_EVENT_FLAGS_GROUP *notify_group_ptr)) UINT _tx_event_flags_set_notify(TX_EVENT_FLAGS_GROUP *group_ptr, VOID (*events_set_notify)(TX_EVENT_FLAGS_GROUP *notify_group_ptr))

View File

@@ -57,7 +57,7 @@ VOID *_tx_initialize_unused_memory;
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_initialize_high_level PORTABLE C */ /* _tx_initialize_high_level PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -106,6 +106,8 @@ VOID *_tx_initialize_unused_memory;
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_initialize_high_level(VOID) VOID _tx_initialize_high_level(VOID)

View File

@@ -30,6 +30,9 @@
#include "tx_thread.h" #include "tx_thread.h"
#include "tx_timer.h" #include "tx_timer.h"
#if defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY) || defined(TX_EXECUTION_PROFILE_ENABLE)
extern VOID _tx_execution_initialize(VOID);
#endif
/* Define any port-specific scheduling data structures. */ /* Define any port-specific scheduling data structures. */
@@ -46,7 +49,7 @@ TX_SAFETY_CRITICAL_EXCEPTION_HANDLER
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_initialize_kernel_enter PORTABLE C */ /* _tx_initialize_kernel_enter PORTABLE C */
/* 6.0 */ /* 6.1.11 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -85,6 +88,11 @@ TX_SAFETY_CRITICAL_EXCEPTION_HANDLER
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* 04-25-2022 Scott Larson Modified comment(s), */
/* added EPK initialization, */
/* resulting in version 6.1.11 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_initialize_kernel_enter(VOID) VOID _tx_initialize_kernel_enter(VOID)
@@ -136,6 +144,11 @@ VOID _tx_initialize_kernel_enter(VOID)
/* Call any port specific pre-scheduler processing. */ /* Call any port specific pre-scheduler processing. */
TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION TX_PORT_SPECIFIC_PRE_SCHEDULER_INITIALIZATION
#if defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY) || defined(TX_EXECUTION_PROFILE_ENABLE)
/* Initialize Execution Profile Kit. */
_tx_execution_initialize();
#endif
/* Enter the scheduling loop to start executing threads! */ /* Enter the scheduling loop to start executing threads! */
_tx_thread_schedule(); _tx_thread_schedule();

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_initialize_kernel_setup PORTABLE C */ /* _tx_initialize_kernel_setup PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_initialize_kernel_setup(VOID) VOID _tx_initialize_kernel_setup(VOID)

View File

@@ -29,10 +29,11 @@
/**************************************************************************/ /**************************************************************************/
/**************************************************************************/ /**************************************************************************/
#ifdef TX_MISRA_ENABLE #ifndef TX_MISRA_ENABLE
#include "tx_api.h"
#else
#define TX_THREAD_INIT #define TX_THREAD_INIT
//CHAR _tx_version_id[100] = "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX 6.0 MISRA C Compliant *"; //CHAR _tx_version_id[100] = "Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX 6.1 MISRA C Compliant *";
#endif
#include "tx_api.h" #include "tx_api.h"
#include "tx_thread.h" #include "tx_thread.h"
@@ -48,7 +49,7 @@
/**************************************************************************/ /**************************************************************************/
VOID _tx_misra_memset(VOID *ptr, UINT value, UINT size) VOID _tx_misra_memset(VOID *ptr, UINT value, UINT size)
{ {
memset(ptr, value, size); memset(ptr, (INT)value, size);
} }
@@ -92,7 +93,7 @@ ULONG _tx_misra_uchar_pointer_dif(UCHAR *ptr1, UCHAR *ptr2)
ULONG value; ULONG value;
value = ptr1 - ptr2; value = (ULONG)(ptr1 - ptr2);
return(value); return(value);
} }
@@ -150,7 +151,7 @@ ULONG _tx_misra_ulong_pointer_dif(ULONG *ptr1, ULONG *ptr2)
{ {
ULONG value; ULONG value;
value = ptr1 - ptr2; value = (ULONG)(ptr1 - ptr2);
return(value); return(value);
} }
@@ -220,7 +221,7 @@ ULONG _tx_misra_timer_pointer_dif(TX_TIMER_INTERNAL **ptr1, TX_TIMER_INTERNAL *
ULONG value; ULONG value;
value = ptr1 - ptr2; value = (ULONG)(ptr1 - ptr2);
return(value); return(value);
} }
@@ -625,6 +626,7 @@ TX_MUTEX *_tx_misra_void_to_mutex_pointer_convert(VOID *pointer)
/**************************************************************************/ /**************************************************************************/
UINT _tx_misra_status_get(UINT status) UINT _tx_misra_status_get(UINT status)
{ {
(VOID)status;
/* Return a successful status. */ /* Return a successful status. */
return(TX_SUCCESS); return(TX_SUCCESS);
@@ -830,4 +832,5 @@ UCHAR *_tx_misra_char_to_uchar_pointer_convert(CHAR *pointer)
} }
#endif

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_cleanup PORTABLE C */ /* _tx_mutex_cleanup PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_mutex_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence) VOID _tx_mutex_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence)
@@ -218,7 +220,7 @@ TX_THREAD *previous_thread;
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_thread_release PORTABLE C */ /* _tx_mutex_thread_release PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -250,6 +252,8 @@ TX_THREAD *previous_thread;
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_mutex_thread_release(TX_THREAD *thread_ptr) VOID _tx_mutex_thread_release(TX_THREAD *thread_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_create PORTABLE C */ /* _tx_mutex_create PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_mutex_create(TX_MUTEX *mutex_ptr, CHAR *name_ptr, UINT inherit) UINT _tx_mutex_create(TX_MUTEX *mutex_ptr, CHAR *name_ptr, UINT inherit)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_delete PORTABLE C */ /* _tx_mutex_delete PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_mutex_delete(TX_MUTEX *mutex_ptr) UINT _tx_mutex_delete(TX_MUTEX *mutex_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_get PORTABLE C */ /* _tx_mutex_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_mutex_get(TX_MUTEX *mutex_ptr, ULONG wait_option) UINT _tx_mutex_get(TX_MUTEX *mutex_ptr, ULONG wait_option)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_info_get PORTABLE C */ /* _tx_mutex_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_mutex_info_get(TX_MUTEX *mutex_ptr, CHAR **name, ULONG *count, TX_THREAD **owner, UINT _tx_mutex_info_get(TX_MUTEX *mutex_ptr, CHAR **name, ULONG *count, TX_THREAD **owner,

View File

@@ -75,7 +75,6 @@ ULONG _tx_mutex_performance_priority_inversion_count;
ULONG _tx_mutex_performance__priority_inheritance_count; ULONG _tx_mutex_performance__priority_inheritance_count;
#endif #endif
#endif
/**************************************************************************/ /**************************************************************************/
@@ -83,7 +82,7 @@ ULONG _tx_mutex_performance__priority_inheritance_count;
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_initialize PORTABLE C */ /* _tx_mutex_initialize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -114,6 +113,11 @@ ULONG _tx_mutex_performance__priority_inheritance_count;
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* opt out of function when */
/* TX_INLINE_INITIALIZATION is */
/* defined, */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_mutex_initialize(VOID) VOID _tx_mutex_initialize(VOID)
@@ -138,4 +142,4 @@ VOID _tx_mutex_initialize(VOID)
#endif #endif
#endif #endif
} }
#endif

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_performance_info_get PORTABLE C */ /* _tx_mutex_performance_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -79,6 +79,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_mutex_performance_info_get(TX_MUTEX *mutex_ptr, ULONG *puts, ULONG *gets, UINT _tx_mutex_performance_info_get(TX_MUTEX *mutex_ptr, ULONG *puts, ULONG *gets,

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_performance_system_info_get PORTABLE C */ /* _tx_mutex_performance_system_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -78,6 +78,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_mutex_performance_system_info_get(ULONG *puts, ULONG *gets, ULONG *suspensions, UINT _tx_mutex_performance_system_info_get(ULONG *puts, ULONG *gets, ULONG *suspensions,

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_prioritize PORTABLE C */ /* _tx_mutex_prioritize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_mutex_prioritize(TX_MUTEX *mutex_ptr) UINT _tx_mutex_prioritize(TX_MUTEX *mutex_ptr)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_priority_change PORTABLE C */ /* _tx_mutex_priority_change PORTABLE C */
/* 6.0 */ /* 6.1.6 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,17 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 William E. Lamie Modified comment(s), and */
/* change thread state from */
/* TX_SUSPENDED to */
/* TX_PRIORITY_CHANGE before */
/* calling */
/* _tx_thread_system_suspend, */
/* resulting in version 6.1 */
/* 04-02-2021 Scott Larson Modified comments, fixed */
/* mapping current thread's */
/* priority rather than next, */
/* resulting in version 6.1.6 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_mutex_priority_change(TX_THREAD *thread_ptr, UINT new_priority) VOID _tx_mutex_priority_change(TX_THREAD *thread_ptr, UINT new_priority)
@@ -139,8 +150,8 @@ UINT map_index;
/* Increment the preempt disable flag. */ /* Increment the preempt disable flag. */
_tx_thread_preempt_disable++; _tx_thread_preempt_disable++;
/* Set the state to suspended. */ /* Set the state to priority change. */
thread_ptr -> tx_thread_state = TX_SUSPENDED; thread_ptr -> tx_thread_state = TX_PRIORITY_CHANGE;
/* Call actual non-interruptable thread suspension routine. */ /* Call actual non-interruptable thread suspension routine. */
_tx_thread_system_ni_suspend(thread_ptr, ((ULONG) 0)); _tx_thread_system_ni_suspend(thread_ptr, ((ULONG) 0));
@@ -175,8 +186,8 @@ UINT map_index;
/* Increment the preempt disable flag. */ /* Increment the preempt disable flag. */
_tx_thread_preempt_disable = _tx_thread_preempt_disable + ((UINT) 2); _tx_thread_preempt_disable = _tx_thread_preempt_disable + ((UINT) 2);
/* Set the state to suspended. */ /* Set the state to priority change. */
thread_ptr -> tx_thread_state = TX_SUSPENDED; thread_ptr -> tx_thread_state = TX_PRIORITY_CHANGE;
/* Set the suspending flag. */ /* Set the suspending flag. */
thread_ptr -> tx_thread_suspending = TX_TRUE; thread_ptr -> tx_thread_suspending = TX_TRUE;
@@ -301,15 +312,15 @@ UINT map_index;
#if TX_MAX_PRIORITIES > 32 #if TX_MAX_PRIORITIES > 32
/* Calculate the index into the bit map array. */ /* Calculate the index into the bit map array. */
map_index = (next_execute_ptr -> tx_thread_priority)/ ((UINT) 32); map_index = (thread_ptr -> tx_thread_priority)/ ((UINT) 32);
/* Set the active bit to remember that the preempt map has something set. */ /* Set the active bit to remember that the preempt map has something set. */
TX_DIV32_BIT_SET(next_execute_ptr -> tx_thread_priority, priority_bit) TX_DIV32_BIT_SET(thread_ptr -> tx_thread_priority, priority_bit)
_tx_thread_preempted_map_active = _tx_thread_preempted_map_active | priority_bit; _tx_thread_preempted_map_active = _tx_thread_preempted_map_active | priority_bit;
#endif #endif
/* Remember that this thread was preempted by a thread above the thread's threshold. */ /* Remember that this thread was preempted by a thread above the thread's threshold. */
TX_MOD32_BIT_SET(next_execute_ptr -> tx_thread_priority, priority_bit) TX_MOD32_BIT_SET(thread_ptr -> tx_thread_priority, priority_bit)
_tx_thread_preempted_maps[MAP_INDEX] = _tx_thread_preempted_maps[MAP_INDEX] | priority_bit; _tx_thread_preempted_maps[MAP_INDEX] = _tx_thread_preempted_maps[MAP_INDEX] | priority_bit;
} }
#endif #endif

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_mutex_put PORTABLE C */ /* _tx_mutex_put PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_mutex_put(TX_MUTEX *mutex_ptr) UINT _tx_mutex_put(TX_MUTEX *mutex_ptr)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_cleanup PORTABLE C */ /* _tx_queue_cleanup PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_queue_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence) VOID _tx_queue_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_create PORTABLE C */ /* _tx_queue_create PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_create(TX_QUEUE *queue_ptr, CHAR *name_ptr, UINT message_size, UINT _tx_queue_create(TX_QUEUE *queue_ptr, CHAR *name_ptr, UINT message_size,

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_delete PORTABLE C */ /* _tx_queue_delete PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_delete(TX_QUEUE *queue_ptr) UINT _tx_queue_delete(TX_QUEUE *queue_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_flush PORTABLE C */ /* _tx_queue_flush PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_flush(TX_QUEUE *queue_ptr) UINT _tx_queue_flush(TX_QUEUE *queue_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_front_send PORTABLE C */ /* _tx_queue_front_send PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_front_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option) UINT _tx_queue_front_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_info_get PORTABLE C */ /* _tx_queue_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_info_get(TX_QUEUE *queue_ptr, CHAR **name, ULONG *enqueued, ULONG *available_storage, UINT _tx_queue_info_get(TX_QUEUE *queue_ptr, CHAR **name, ULONG *enqueued, ULONG *available_storage,

View File

@@ -73,7 +73,6 @@ ULONG _tx_queue_performance_full_error_count;
ULONG _tx_queue_performance_timeout_count; ULONG _tx_queue_performance_timeout_count;
#endif #endif
#endif
/**************************************************************************/ /**************************************************************************/
@@ -81,7 +80,7 @@ ULONG _tx_queue_performance_timeout_count;
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_initialize PORTABLE C */ /* _tx_queue_initialize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -112,6 +111,11 @@ ULONG _tx_queue_performance_timeout_count;
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* opt out of function when */
/* TX_INLINE_INITIALIZATION is */
/* defined, */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_queue_initialize(VOID) VOID _tx_queue_initialize(VOID)
@@ -135,4 +139,4 @@ VOID _tx_queue_initialize(VOID)
#endif #endif
#endif #endif
} }
#endif

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_performance_info_get PORTABLE C */ /* _tx_queue_performance_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -78,6 +78,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_performance_info_get(TX_QUEUE *queue_ptr, ULONG *messages_sent, ULONG *messages_received, UINT _tx_queue_performance_info_get(TX_QUEUE *queue_ptr, ULONG *messages_sent, ULONG *messages_received,

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_performance_system_info_get PORTABLE C */ /* _tx_queue_performance_system_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -78,6 +78,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_performance_system_info_get(ULONG *messages_sent, ULONG *messages_received, UINT _tx_queue_performance_system_info_get(ULONG *messages_sent, ULONG *messages_received,

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_prioritize PORTABLE C */ /* _tx_queue_prioritize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_prioritize(TX_QUEUE *queue_ptr) UINT _tx_queue_prioritize(TX_QUEUE *queue_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_receive PORTABLE C */ /* _tx_queue_receive PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -75,6 +75,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_receive(TX_QUEUE *queue_ptr, VOID *destination_ptr, ULONG wait_option) UINT _tx_queue_receive(TX_QUEUE *queue_ptr, VOID *destination_ptr, ULONG wait_option)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_send PORTABLE C */ /* _tx_queue_send PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option) UINT _tx_queue_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_queue_send_notify PORTABLE C */ /* _tx_queue_send_notify PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_queue_send_notify(TX_QUEUE *queue_ptr, VOID (*queue_send_notify)(TX_QUEUE *notify_queue_ptr)) UINT _tx_queue_send_notify(TX_QUEUE *queue_ptr, VOID (*queue_send_notify)(TX_QUEUE *notify_queue_ptr))

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_ceiling_put PORTABLE C */ /* _tx_semaphore_ceiling_put PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_ceiling_put(TX_SEMAPHORE *semaphore_ptr, ULONG ceiling) UINT _tx_semaphore_ceiling_put(TX_SEMAPHORE *semaphore_ptr, ULONG ceiling)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_cleanup PORTABLE C */ /* _tx_semaphore_cleanup PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -71,6 +71,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_semaphore_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence) VOID _tx_semaphore_cleanup(TX_THREAD *thread_ptr, ULONG suspension_sequence)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_create PORTABLE C */ /* _tx_semaphore_create PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_create(TX_SEMAPHORE *semaphore_ptr, CHAR *name_ptr, ULONG initial_count) UINT _tx_semaphore_create(TX_SEMAPHORE *semaphore_ptr, CHAR *name_ptr, ULONG initial_count)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_delete PORTABLE C */ /* _tx_semaphore_delete PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_delete(TX_SEMAPHORE *semaphore_ptr) UINT _tx_semaphore_delete(TX_SEMAPHORE *semaphore_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_get PORTABLE C */ /* _tx_semaphore_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_get(TX_SEMAPHORE *semaphore_ptr, ULONG wait_option) UINT _tx_semaphore_get(TX_SEMAPHORE *semaphore_ptr, ULONG wait_option)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_info_get PORTABLE C */ /* _tx_semaphore_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -73,6 +73,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_info_get(TX_SEMAPHORE *semaphore_ptr, CHAR **name, ULONG *current_value, UINT _tx_semaphore_info_get(TX_SEMAPHORE *semaphore_ptr, CHAR **name, ULONG *current_value,

View File

@@ -65,7 +65,6 @@ ULONG _tx_semaphore_performance_suspension_count;
ULONG _tx_semaphore_performance_timeout_count; ULONG _tx_semaphore_performance_timeout_count;
#endif #endif
#endif
/**************************************************************************/ /**************************************************************************/
@@ -73,7 +72,7 @@ ULONG _tx_semaphore_performance_timeout_count;
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_initialize PORTABLE C */ /* _tx_semaphore_initialize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -104,6 +103,11 @@ ULONG _tx_semaphore_performance_timeout_count;
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* opt out of function when */
/* TX_INLINE_INITIALIZATION is */
/* defined, */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_semaphore_initialize(VOID) VOID _tx_semaphore_initialize(VOID)
@@ -126,4 +130,4 @@ VOID _tx_semaphore_initialize(VOID)
#endif #endif
#endif #endif
} }
#endif

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_performance_info_get PORTABLE C */ /* _tx_semaphore_performance_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_performance_info_get(TX_SEMAPHORE *semaphore_ptr, ULONG *puts, ULONG *gets, UINT _tx_semaphore_performance_info_get(TX_SEMAPHORE *semaphore_ptr, ULONG *puts, ULONG *gets,

View File

@@ -37,7 +37,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_performance_system_info_get PORTABLE C */ /* _tx_semaphore_performance_system_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -74,6 +74,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_performance_system_info_get(ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts) UINT _tx_semaphore_performance_system_info_get(ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_prioritize PORTABLE C */ /* _tx_semaphore_prioritize PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_prioritize(TX_SEMAPHORE *semaphore_ptr) UINT _tx_semaphore_prioritize(TX_SEMAPHORE *semaphore_ptr)

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_put PORTABLE C */ /* _tx_semaphore_put PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_put(TX_SEMAPHORE *semaphore_ptr) UINT _tx_semaphore_put(TX_SEMAPHORE *semaphore_ptr)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_semaphore_put_notify PORTABLE C */ /* _tx_semaphore_put_notify PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -68,6 +68,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_semaphore_put_notify(TX_SEMAPHORE *semaphore_ptr, VOID (*semaphore_put_notify)(TX_SEMAPHORE *notify_semaphore_ptr)) UINT _tx_semaphore_put_notify(TX_SEMAPHORE *semaphore_ptr, VOID (*semaphore_put_notify)(TX_SEMAPHORE *notify_semaphore_ptr))

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_create PORTABLE C */ /* _tx_thread_create PORTABLE C */
/* 6.0 */ /* 6.1.8 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -80,6 +80,14 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 William E. Lamie Modified comment(s), and */
/* changed stack calculations */
/* to use ALIGN_TYPE integers, */
/* resulting in version 6.1 */
/* 06-02-2021 William E. Lamie Modified comment(s), and */
/* supported TX_MISRA_ENABLE, */
/* 08-02-2021 Scott Larson Removed unneeded cast, */
/* resulting in version 6.1.8 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr, VOID (*entry_function)(ULONG id), ULONG entry_input, UINT _tx_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr, VOID (*entry_function)(ULONG id), ULONG entry_input,
@@ -96,8 +104,8 @@ UINT saved_threshold = ((UINT) 0);
UCHAR *temp_ptr; UCHAR *temp_ptr;
#ifdef TX_ENABLE_STACK_CHECKING #ifdef TX_ENABLE_STACK_CHECKING
ULONG new_stack_start; ALIGN_TYPE new_stack_start;
ULONG updated_stack_start; ALIGN_TYPE updated_stack_start;
#endif #endif
#ifndef TX_DISABLE_STACK_FILLING #ifndef TX_DISABLE_STACK_FILLING
@@ -116,8 +124,12 @@ ULONG updated_stack_start;
stack_size = ((stack_size/(sizeof(ULONG))) * (sizeof(ULONG))) - (sizeof(ULONG)); stack_size = ((stack_size/(sizeof(ULONG))) * (sizeof(ULONG))) - (sizeof(ULONG));
/* Ensure the starting stack address is evenly aligned. */ /* Ensure the starting stack address is evenly aligned. */
#ifdef TX_MISRA_ENABLE
new_stack_start = TX_POINTER_TO_ULONG_CONVERT(stack_start); new_stack_start = TX_POINTER_TO_ULONG_CONVERT(stack_start);
updated_stack_start = ((((ULONG) new_stack_start) + ((sizeof(ULONG)) - ((ULONG) 1)) ) & (~((sizeof(ULONG)) - ((ULONG) 1)))); #else
new_stack_start = TX_POINTER_TO_ALIGN_TYPE_CONVERT(stack_start);
#endif /* TX_MISRA_ENABLE */
updated_stack_start = (((new_stack_start) + ((sizeof(ULONG)) - ((ULONG) 1)) ) & (~((sizeof(ULONG)) - ((ULONG) 1))));
/* Determine if the starting stack address is different. */ /* Determine if the starting stack address is different. */
if (new_stack_start != updated_stack_start) if (new_stack_start != updated_stack_start)
@@ -128,7 +140,11 @@ ULONG updated_stack_start;
} }
/* Update the starting stack pointer. */ /* Update the starting stack pointer. */
#ifdef TX_MISRA_ENABLE
stack_start = TX_ULONG_TO_POINTER_CONVERT(updated_stack_start); stack_start = TX_ULONG_TO_POINTER_CONVERT(updated_stack_start);
#else
stack_start = TX_ALIGN_TYPE_TO_POINTER_CONVERT(updated_stack_start);
#endif /* TX_MISRA_ENABLE */
#endif #endif
/* Prepare the thread control block prior to placing it on the created /* Prepare the thread control block prior to placing it on the created

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_delete PORTABLE C */ /* _tx_thread_delete PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -67,6 +67,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_thread_delete(TX_THREAD *thread_ptr) UINT _tx_thread_delete(TX_THREAD *thread_ptr)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_entry_exit_notify PORTABLE C */ /* _tx_thread_entry_exit_notify PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -70,6 +70,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_thread_entry_exit_notify(TX_THREAD *thread_ptr, VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT id)) UINT _tx_thread_entry_exit_notify(TX_THREAD *thread_ptr, VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT id))

View File

@@ -36,7 +36,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_identify PORTABLE C */ /* _tx_thread_identify PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -69,6 +69,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
TX_THREAD *_tx_thread_identify(VOID) TX_THREAD *_tx_thread_identify(VOID)

View File

@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_info_get PORTABLE C */ /* _tx_thread_info_get PORTABLE C */
/* 6.0 */ /* 6.1 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -76,6 +76,8 @@
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
UINT _tx_thread_info_get(TX_THREAD *thread_ptr, CHAR **name, UINT *state, ULONG *run_count, UINT _tx_thread_info_get(TX_THREAD *thread_ptr, CHAR **name, UINT *state, ULONG *run_count,

View File

@@ -175,7 +175,7 @@ VOID (*_tx_thread_mutex_release)(TX_THREAD *thread_ptr);
ULONG _tx_build_options; ULONG _tx_build_options;
#ifdef TX_ENABLE_STACK_CHECKING #if defined(TX_ENABLE_STACK_CHECKING) || defined(TX_PORT_THREAD_STACK_ERROR_HANDLING)
/* Define the global function pointer for stack error handling. If a stack error is /* Define the global function pointer for stack error handling. If a stack error is
detected and the application has registered a stack error handler, it will be detected and the application has registered a stack error handler, it will be
@@ -277,7 +277,7 @@ const CHAR _tx_thread_special_string[] =
/* FUNCTION RELEASE */ /* FUNCTION RELEASE */
/* */ /* */
/* _tx_thread_initialize PORTABLE C */ /* _tx_thread_initialize PORTABLE C */
/* 6.0 */ /* 6.1.9 */
/* AUTHOR */ /* AUTHOR */
/* */ /* */
/* William E. Lamie, Microsoft Corporation */ /* William E. Lamie, Microsoft Corporation */
@@ -308,6 +308,14 @@ const CHAR _tx_thread_special_string[] =
/* DATE NAME DESCRIPTION */ /* DATE NAME DESCRIPTION */
/* */ /* */
/* 05-19-2020 William E. Lamie Initial Version 6.0 */ /* 05-19-2020 William E. Lamie Initial Version 6.0 */
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
/* resulting in version 6.1 */
/* 06-02-2021 Yuxin Zhou Modified comment(s), added */
/* Execution Profile support, */
/* resulting in version 6.1.7 */
/* 10-15-2021 Yuxin Zhou Modified comment(s), improved */
/* stack check error handling, */
/* resulting in version 6.1.9 */
/* */ /* */
/**************************************************************************/ /**************************************************************************/
VOID _tx_thread_initialize(VOID) VOID _tx_thread_initialize(VOID)
@@ -437,7 +445,7 @@ VOID _tx_thread_initialize(VOID)
#ifdef TX_ENABLE_EVENT_TRACE #ifdef TX_ENABLE_EVENT_TRACE
| (((ULONG) 1) << 8) | (((ULONG) 1) << 8)
#endif #endif
#ifdef TX_ENABLE_EXECUTION_CHANGE_NOTIFY #if defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY) || defined(TX_EXECUTION_PROFILE_ENABLE)
| (((ULONG) 1) << 7) | (((ULONG) 1) << 7)
#endif #endif
#if TX_PORT_SPECIFIC_BUILD_OPTIONS != 0 #if TX_PORT_SPECIFIC_BUILD_OPTIONS != 0

Some files were not shown because too many files have changed in this diff Show More