Compare commits
61 Commits
v6.1.9_rel
...
v6.3.0_rel
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13b700fd3e | ||
|
|
9ee2738aec | ||
|
|
bc4bd804d5 | ||
|
|
d43cba10b2 | ||
|
|
a0a0ef9385 | ||
|
|
6aeefea8e6 | ||
|
|
cd9007712b | ||
|
|
bc8bed494d | ||
|
|
7fa087d061 | ||
|
|
1ffd7c2cde | ||
|
|
fd2bf7c19a | ||
|
|
8ff9910ddc | ||
|
|
08380caa77 | ||
|
|
1b2995cea8 | ||
|
|
25a8fa2362 | ||
|
|
71cc95eaed | ||
|
|
361590dc40 | ||
|
|
d66a519685 | ||
|
|
6b8ece0ff2 | ||
|
|
6d9f25fac9 | ||
|
|
e2a8334f96 | ||
|
|
7a3bb8311b | ||
|
|
b11d1be6ac | ||
|
|
390c5ce1b7 | ||
|
|
672c5e953e | ||
|
|
23680f5e5f | ||
|
|
d64ef2ab06 | ||
|
|
4c4547d5d5 | ||
|
|
0d308c7ae6 | ||
|
|
487ca45752 | ||
|
|
5f430f22e2 | ||
|
|
ebeb02b958 | ||
|
|
ac3b6b326c | ||
|
|
dac41f6015 | ||
|
|
f4d6b638de | ||
|
|
2aa19f3de0 | ||
|
|
745395d6a2 | ||
|
|
9bf9fbd86f | ||
|
|
37f6d0b39c | ||
|
|
4e62226eea | ||
|
|
b42c5acd8b | ||
|
|
35a301ad3b | ||
|
|
e23b09fe0b | ||
|
|
aea1a3d8f9 | ||
|
|
ee892502ec | ||
|
|
3e8e85cdc1 | ||
|
|
b871c33620 | ||
|
|
b6fb0b8e09 | ||
|
|
35cfbfbd58 | ||
|
|
8c3c08f108 | ||
|
|
54cda6ee9e | ||
|
|
83b57acde9 | ||
|
|
e11c166a40 | ||
|
|
408f9fa1b7 | ||
|
|
cef9cb22a5 | ||
|
|
f851772ce0 | ||
|
|
cd4e736a44 | ||
|
|
11303a0e1b | ||
|
|
db11aba063 | ||
|
|
fd403521e9 | ||
|
|
f7f0957188 |
13
.devcontainer/devcontainer.json
Normal file
13
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"image": "ghcr.io/tiejunms/azure_rtos_docker",
|
||||||
|
|
||||||
|
// Add the IDs of extensions you want installed when the container is created.
|
||||||
|
"extensions": [
|
||||||
|
"ms-vscode.cpptools",
|
||||||
|
"ms-vscode.cmake-tools"
|
||||||
|
],
|
||||||
|
|
||||||
|
"remoteUser": "vscode",
|
||||||
|
|
||||||
|
"runArgs": [ "--cap-add=NET_ADMIN"]
|
||||||
|
}
|
||||||
1
.github/CODEOWNERS
vendored
Normal file
1
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
@azure-rtos/admins
|
||||||
35
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
35
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve Azure RTOS.
|
||||||
|
title: ''
|
||||||
|
labels: bug, hardware
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
Please also mention any information which could help others to understand
|
||||||
|
the problem you're facing:
|
||||||
|
- What target device are you using?
|
||||||
|
- Which version of Azure RTOS?
|
||||||
|
- What toolchain and environment?
|
||||||
|
- What have you tried to diagnose or workaround this issue?
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Build my project in IAR Workbench.
|
||||||
|
1. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Impact**
|
||||||
|
What impact does this issue have on your progress (e.g., annoyance, showstopper)
|
||||||
|
|
||||||
|
**Logs and console output**
|
||||||
|
If applicable, add console logs or other types of debug information like Wireshark capture as `.zip` file.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
||||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea or enhancement to existing feature for Azure RTOS.
|
||||||
|
title: ''
|
||||||
|
labels: feature
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
19
.github/ISSUE_TEMPLATE/hardware-or-architecture-support.md
vendored
Normal file
19
.github/ISSUE_TEMPLATE/hardware-or-architecture-support.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
name: Hardware or architecture support
|
||||||
|
about: Suggest adding hardware or new architecture support.
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is this request related to a particular hardware platform, SoC, board? Please describe.**
|
||||||
|
Describe in details the hardware support being requested and why this support benefits Azure RTOS.
|
||||||
|
|
||||||
|
**Describe why you are asking for this support?**
|
||||||
|
Describe why you are asking for this support.
|
||||||
|
|
||||||
|
If this is a new board or SoC, please state whether you are willing to maintain the Azure RTOS support together with you.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or graphics (drag-and-drop an image) about the hardware here.
|
||||||
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
## PR checklist
|
||||||
|
<!--- Put an `x` in all the boxes that apply. -->
|
||||||
|
- [ ] Updated function header with a short description and version number
|
||||||
|
- [ ] Added test case for bug fix or new feature
|
||||||
|
- [ ] Validated on real hardware <!-- hardware - toolchain -->
|
||||||
5
.github/workflows/ci_cortex_m0.yml
vendored
5
.github/workflows/ci_cortex_m0.yml
vendored
@@ -9,6 +9,11 @@ on:
|
|||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/ci_cortex_m0.yml"
|
||||||
|
- 'common/**'
|
||||||
|
- 'utility/**'
|
||||||
|
- 'ports/cortex_m0/gnu/**'
|
||||||
|
|
||||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
5
.github/workflows/ci_cortex_m3.yml
vendored
5
.github/workflows/ci_cortex_m3.yml
vendored
@@ -9,6 +9,11 @@ on:
|
|||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/ci_cortex_m3.yml"
|
||||||
|
- 'common/**'
|
||||||
|
- 'utility/**'
|
||||||
|
- 'ports/cortex_m3/gnu/**'
|
||||||
|
|
||||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
5
.github/workflows/ci_cortex_m4.yml
vendored
5
.github/workflows/ci_cortex_m4.yml
vendored
@@ -9,6 +9,11 @@ on:
|
|||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/ci_cortex_m4.yml"
|
||||||
|
- 'common/**'
|
||||||
|
- 'utility/**'
|
||||||
|
- 'ports/cortex_m4/gnu/**'
|
||||||
|
|
||||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
5
.github/workflows/ci_cortex_m7.yml
vendored
5
.github/workflows/ci_cortex_m7.yml
vendored
@@ -9,6 +9,11 @@ on:
|
|||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/ci_cortex_m7.yml"
|
||||||
|
- 'common/**'
|
||||||
|
- 'utility/**'
|
||||||
|
- 'ports/cortex_m7/gnu/**'
|
||||||
|
|
||||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
110
.github/workflows/codeql.yml
vendored
Normal file
110
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
# For most projects, this workflow file will not need changing; you simply need
|
||||||
|
# to commit it to your repository.
|
||||||
|
#
|
||||||
|
# You may wish to alter this file to override the set of languages analyzed,
|
||||||
|
# or to provide custom queries or build logic.
|
||||||
|
#
|
||||||
|
# ******** NOTE ********
|
||||||
|
# We have attempted to detect the languages in your repository. Please check
|
||||||
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
|
# supported CodeQL languages.
|
||||||
|
#
|
||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: '33 1 * * 6'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
|
||||||
|
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ 'cpp' ]
|
||||||
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
|
||||||
|
# Use only 'java' to analyze code written in Java, Kotlin or both
|
||||||
|
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
||||||
|
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v2
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
|
# By default, queries listed here will override any specified in a config file.
|
||||||
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
|
||||||
|
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||||
|
# queries: security-extended,security-and-quality
|
||||||
|
|
||||||
|
|
||||||
|
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
|
||||||
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
#- name: Autobuild
|
||||||
|
# uses: github/codeql-action/autobuild@v2
|
||||||
|
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||||
|
|
||||||
|
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||||
|
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||||
|
|
||||||
|
#- run: |
|
||||||
|
# echo "Run, Build Application using script"
|
||||||
|
# ./scripts/install.sh
|
||||||
|
# ./test/tx/cmake/run.sh build
|
||||||
|
|
||||||
|
# Store the arm compilers in the cache to speed up builds
|
||||||
|
- name: Cache arm-none-eabi-gcc tools
|
||||||
|
id: cache-arm-gcc
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: $HOME/arm-none-eabi-gcc-9-2019-q4
|
||||||
|
key: ${{ runner.os }}-arm-gcc-9-2019-q4
|
||||||
|
|
||||||
|
# Get the arm-non-eabi-gcc toolchain
|
||||||
|
- name: Install arm-none-eabi-gcc
|
||||||
|
uses: fiam/arm-none-eabi-gcc@v1
|
||||||
|
if: steps.cache-arm-gcc.outputs.cache-hit != 'true'
|
||||||
|
with:
|
||||||
|
release: '9-2019-q4' # The arm-none-eabi-gcc release to use.
|
||||||
|
directory: $HOME/arm-none-eabi-gcc-9-2019-q4
|
||||||
|
|
||||||
|
# Get CMake into the environment
|
||||||
|
- name: Install cmake 3.19.1
|
||||||
|
uses: lukka/get-cmake@v3.19.1
|
||||||
|
|
||||||
|
# Get Ninja into the environment
|
||||||
|
- name: Install ninja-build
|
||||||
|
uses: seanmiddleditch/gha-setup-ninja@v3
|
||||||
|
|
||||||
|
# Prepare the build system
|
||||||
|
- name: Prepare build system
|
||||||
|
run: cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=./cmake/cortex_m0.cmake -GNinja .
|
||||||
|
env:
|
||||||
|
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"
|
||||||
|
|
||||||
|
- name: Compile and link
|
||||||
|
run: cmake --build ./build
|
||||||
|
env:
|
||||||
|
PATH: "$HOME/arm-none-eabi-gcc-9-2019-q4/bin:$PATH"
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v2
|
||||||
|
with:
|
||||||
|
category: "/language:${{matrix.language}}"
|
||||||
73
.github/workflows/ports_arch_check.yml
vendored
Normal file
73
.github/workflows/ports_arch_check.yml
vendored
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# This is a basic workflow to help you get started with Actions
|
||||||
|
|
||||||
|
name: ports_arch_check
|
||||||
|
|
||||||
|
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||||
|
# events but only for the master branch
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/ports_arch_check.yml"
|
||||||
|
- 'common/**'
|
||||||
|
- 'common_modules/**'
|
||||||
|
- 'common_smp/**'
|
||||||
|
- 'ports/**'
|
||||||
|
- 'ports_modules/**'
|
||||||
|
- 'ports_smp/**'
|
||||||
|
- 'ports_arch/**'
|
||||||
|
|
||||||
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
|
jobs:
|
||||||
|
# Check ports for cortex-m
|
||||||
|
cortex-m:
|
||||||
|
# The type of runner that the job will run on
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||||
|
steps:
|
||||||
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
|
- name: Checkout sources recursively
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.REPO_SCOPED_TOKEN }}
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
# Copy ports arch
|
||||||
|
- name: Copy ports arch
|
||||||
|
run: |
|
||||||
|
scripts/copy_armv7_m.sh && scripts/copy_armv8_m.sh && scripts/copy_module_armv7_m.sh
|
||||||
|
if [[ -n $(git status --porcelain -uno) ]]; then
|
||||||
|
echo "Ports for ARM architecture is not updated"
|
||||||
|
git status
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cortex-a:
|
||||||
|
# Check ports for cortex-a
|
||||||
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||||
|
steps:
|
||||||
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
|
- name: Checkout sources recursively
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.REPO_SCOPED_TOKEN }}
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
# Copy ports arch
|
||||||
|
- name: Copy ports arch
|
||||||
|
run: |
|
||||||
|
cd ports_arch/ARMv7-A
|
||||||
|
pwsh -Command ./update.ps1 -PortSets tx -CopyCommonFiles -CopyPortFiles -CopyExample -PatchFiles
|
||||||
|
cd ../../ports_arch/ARMv8-A
|
||||||
|
pwsh -Command ./update.ps1 -PortSets tx,tx_smp -CopyCommonFiles -CopyPortFiles -CopyExample -PatchFiles
|
||||||
|
if ((git status --porcelain -uno) -ne $null) {
|
||||||
|
Write-Host "Ports for ARM architecture is not updated"
|
||||||
|
git status
|
||||||
|
Exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -1,6 +1,9 @@
|
|||||||
.vscode/
|
.vscode/
|
||||||
|
.settings/
|
||||||
|
.metadata/
|
||||||
_deps/
|
_deps/
|
||||||
build/
|
build/
|
||||||
|
Debug/
|
||||||
CMakeFiles/
|
CMakeFiles/
|
||||||
CMakeScripts/
|
CMakeScripts/
|
||||||
CMakeLists.txt.user
|
CMakeLists.txt.user
|
||||||
@@ -11,4 +14,10 @@ cmake_install.cmake
|
|||||||
install_manifest.txt
|
install_manifest.txt
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
CTestTestfile.cmake
|
CTestTestfile.cmake
|
||||||
|
*.dep
|
||||||
|
*.o
|
||||||
|
*.axf
|
||||||
|
*.map
|
||||||
|
*.a
|
||||||
|
*.htm
|
||||||
|
|
||||||
|
|||||||
80
.pipelines/smp.yml
Normal file
80
.pipelines/smp.yml
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
trigger:
|
||||||
|
- master
|
||||||
|
|
||||||
|
pr:
|
||||||
|
branches:
|
||||||
|
include:
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
include:
|
||||||
|
- ".pipelines/tx.yml"
|
||||||
|
- "common_smp/**"
|
||||||
|
- "samples/**"
|
||||||
|
- "test/tx/**"
|
||||||
|
- "utility/**"
|
||||||
|
- "ports_smp/linux/gnu/**"
|
||||||
|
|
||||||
|
|
||||||
|
pool:
|
||||||
|
vmImage: "ubuntu-22.04"
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- task: PipAuthenticate@1
|
||||||
|
displayName: 'Pip Authenticate'
|
||||||
|
inputs:
|
||||||
|
# Provide list of feed names which you want to authenticate.
|
||||||
|
# Project scoped feeds must include the project name in addition to the feed name.
|
||||||
|
artifactFeeds: 'X-Ware/X-Ware_PublicPackages'
|
||||||
|
|
||||||
|
- bash: sudo $(Build.SourcesDirectory)/scripts/install.sh
|
||||||
|
displayName: 'Install softwares'
|
||||||
|
|
||||||
|
- task: Bash@3
|
||||||
|
displayName: 'SDL check'
|
||||||
|
inputs:
|
||||||
|
filePath: '$(Build.SourcesDirectory)/scripts/sdl_check.sh'
|
||||||
|
|
||||||
|
- task: Bash@3
|
||||||
|
displayName: 'Build'
|
||||||
|
inputs:
|
||||||
|
filePath: '$(Build.SourcesDirectory)/scripts/build_smp.sh'
|
||||||
|
|
||||||
|
- task: Bash@3
|
||||||
|
displayName: 'Test'
|
||||||
|
inputs:
|
||||||
|
filePath: '$(Build.SourcesDirectory)/scripts/test_smp.sh'
|
||||||
|
|
||||||
|
- task: PublishTestResults@2
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: 'PublishTestResults'
|
||||||
|
inputs:
|
||||||
|
testResultsFormat: 'cTest'
|
||||||
|
testResultsFiles: '*/Testing/**/*.xml'
|
||||||
|
searchFolder: '$(Build.SourcesDirectory)/test/smp/cmake/build'
|
||||||
|
testRunTitle: 'SMP-Tests'
|
||||||
|
buildConfiguration: 'Release'
|
||||||
|
|
||||||
|
- task: CopyFiles@2
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: 'CopyTestReports'
|
||||||
|
inputs:
|
||||||
|
SourceFolder: '$(Build.SourcesDirectory)/test/smp/cmake'
|
||||||
|
Contents: |
|
||||||
|
build/*.txt
|
||||||
|
build/*/Testing/**/*.xml
|
||||||
|
coverage_report/**/*
|
||||||
|
TargetFolder: '$(build.artifactstagingdirectory)/test_reports_SMP'
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: 'PublishBuildArtifacts'
|
||||||
|
inputs:
|
||||||
|
pathToPublish: $(build.artifactstagingdirectory)
|
||||||
|
|
||||||
|
- task: PublishCodeCoverageResults@1
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: 'Test SMP (PublishCodeCoverageResults)'
|
||||||
|
inputs:
|
||||||
|
codeCoverageTool: 'Cobertura'
|
||||||
|
summaryFileLocation: '$(Build.SourcesDirectory)/test/smp/cmake/coverage_report/default_build_coverage.xml'
|
||||||
|
pathToSources: '$(Build.SourcesDirectory)/test/smp/cmake'
|
||||||
79
.pipelines/tx.yml
Normal file
79
.pipelines/tx.yml
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
trigger:
|
||||||
|
- master
|
||||||
|
|
||||||
|
pr:
|
||||||
|
branches:
|
||||||
|
include:
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
include:
|
||||||
|
- ".pipelines/tx.yml"
|
||||||
|
- "common/**"
|
||||||
|
- "samples/**"
|
||||||
|
- "test/tx/**"
|
||||||
|
- "utility/**"
|
||||||
|
- "ports/linux/gnu/**"
|
||||||
|
|
||||||
|
pool:
|
||||||
|
vmImage: "ubuntu-22.04"
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- task: PipAuthenticate@1
|
||||||
|
displayName: 'Pip Authenticate'
|
||||||
|
inputs:
|
||||||
|
# Provide list of feed names which you want to authenticate.
|
||||||
|
# Project scoped feeds must include the project name in addition to the feed name.
|
||||||
|
artifactFeeds: 'X-Ware/X-Ware_PublicPackages'
|
||||||
|
|
||||||
|
- bash: sudo $(Build.SourcesDirectory)/scripts/install.sh
|
||||||
|
displayName: 'Install softwares'
|
||||||
|
|
||||||
|
- task: Bash@3
|
||||||
|
displayName: 'SDL check'
|
||||||
|
inputs:
|
||||||
|
filePath: '$(Build.SourcesDirectory)/scripts/sdl_check.sh'
|
||||||
|
|
||||||
|
- task: Bash@3
|
||||||
|
displayName: 'Build'
|
||||||
|
inputs:
|
||||||
|
filePath: '$(Build.SourcesDirectory)/scripts/build_tx.sh'
|
||||||
|
|
||||||
|
- task: Bash@3
|
||||||
|
displayName: 'Test'
|
||||||
|
inputs:
|
||||||
|
filePath: '$(Build.SourcesDirectory)/scripts/test_tx.sh'
|
||||||
|
|
||||||
|
- task: PublishTestResults@2
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: 'PublishTestResults'
|
||||||
|
inputs:
|
||||||
|
testResultsFormat: 'cTest'
|
||||||
|
testResultsFiles: '*/Testing/**/*.xml'
|
||||||
|
searchFolder: '$(Build.SourcesDirectory)/test/tx/cmake/build'
|
||||||
|
testRunTitle: 'TX-Tests'
|
||||||
|
buildConfiguration: 'Release'
|
||||||
|
|
||||||
|
- task: CopyFiles@2
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: 'CopyTestReports'
|
||||||
|
inputs:
|
||||||
|
SourceFolder: '$(Build.SourcesDirectory)/test/tx/cmake'
|
||||||
|
Contents: |
|
||||||
|
build/*.txt
|
||||||
|
build/*/Testing/**/*.xml
|
||||||
|
coverage_report/**/*
|
||||||
|
TargetFolder: '$(build.artifactstagingdirectory)/test_reports_TX'
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: 'PublishBuildArtifacts'
|
||||||
|
inputs:
|
||||||
|
pathToPublish: $(build.artifactstagingdirectory)
|
||||||
|
|
||||||
|
- task: PublishCodeCoverageResults@1
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: 'Test TX (PublishCodeCoverageResults)'
|
||||||
|
inputs:
|
||||||
|
codeCoverageTool: 'Cobertura'
|
||||||
|
summaryFileLocation: '$(Build.SourcesDirectory)/test/tx/cmake/coverage_report/default_build_coverage.xml'
|
||||||
|
pathToSources: '$(Build.SourcesDirectory)/test/tx/cmake'
|
||||||
@@ -31,8 +31,17 @@ 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)
|
||||||
|
|||||||
45
LICENSE.txt
45
LICENSE.txt
@@ -2,7 +2,6 @@ MICROSOFT SOFTWARE LICENSE TERMS
|
|||||||
|
|
||||||
MICROSOFT AZURE RTOS
|
MICROSOFT AZURE RTOS
|
||||||
|
|
||||||
Shape
|
|
||||||
|
|
||||||
These license terms are an agreement between you and Microsoft Corporation (or
|
These license terms are an agreement between you and Microsoft Corporation (or
|
||||||
one of its affiliates). They apply to the software named above and any Microsoft
|
one of its affiliates). They apply to the software named above and any Microsoft
|
||||||
@@ -14,10 +13,11 @@ HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.
|
|||||||
|
|
||||||
1. INSTALLATION AND USE RIGHTS.
|
1. INSTALLATION AND USE RIGHTS.
|
||||||
|
|
||||||
a) General. You may install and use the software and the included Microsoft
|
a) General. You may (I) install, use and modify the software and (ii) install and use the included Microsoft
|
||||||
applications solely for internal development, testing and evaluation purposes.
|
Applications (if any), each solely for internal development, testing and evaluation purposes.
|
||||||
Any distribution or production use requires a separate license as set forth in
|
Distribution or production use is governed by the license terms set forth in
|
||||||
Section 2.
|
Section 2. You may also obtain distribution or production use rights through a separate agreement with
|
||||||
|
Microsoft.
|
||||||
|
|
||||||
b) Contributions. Microsoft welcomes contributions to this software. In the event
|
b) Contributions. Microsoft welcomes contributions to this software. In the event
|
||||||
that you make a contribution to this software you will be required to agree to a
|
that you make a contribution to this software you will be required to agree to a
|
||||||
@@ -25,7 +25,7 @@ Contributor License Agreement (CLA) declaring that you have the right to, and
|
|||||||
actually do, grant Microsoft the rights to use your contribution. For details,
|
actually do, grant Microsoft the rights to use your contribution. For details,
|
||||||
visit https://cla.microsoft.com.
|
visit https://cla.microsoft.com.
|
||||||
|
|
||||||
c) Included Microsoft Applications. The software includes other Microsoft
|
c) Included Microsoft Applications. The software may include other Microsoft
|
||||||
applications which are governed by the licenses embedded in or made available
|
applications which are governed by the licenses embedded in or made available
|
||||||
with those applications.
|
with those applications.
|
||||||
|
|
||||||
@@ -57,7 +57,6 @@ i. You may use the software in production (e.g. program the modified or unmodifi
|
|||||||
software to devices you own or control) and distribute (i.e. make available to
|
software to devices you own or control) and distribute (i.e. make available to
|
||||||
third parties) the modified or unmodified binary image produced from this code.
|
third parties) the modified or unmodified binary image produced from this code.
|
||||||
|
|
||||||
|
|
||||||
ii. You may permit your device distributors or developers to copy and distribute the
|
ii. You may permit your device distributors or developers to copy and distribute the
|
||||||
binary image as programmed or to be programmed to your devices.
|
binary image as programmed or to be programmed to your devices.
|
||||||
|
|
||||||
@@ -70,17 +69,12 @@ b) Requirements. For any code you distribute, you must:
|
|||||||
|
|
||||||
i. when distributed in binary form, except as embedded in a device, include with
|
i. when distributed in binary form, except as embedded in a device, include with
|
||||||
such distribution the terms of this agreement;
|
such distribution the terms of this agreement;
|
||||||
|
|
||||||
ii. when distributed in source code form to distributors or developers of your
|
ii. when distributed in source code form to distributors or developers of your
|
||||||
devices, include with such distribution the terms of this agreement; and
|
devices, include with such distribution the terms of this agreement; and
|
||||||
|
iii. indemnify, defend and hold harmless Microsoft from any claims, including claims arising from any High Risk Uses, and inclusive of attorneys’ fees, related to the distribution or use of your devices that include the software, except to the extent that any intellectual property claim is based solely on the unmodified software.
|
||||||
iii. indemnify, defend and hold harmless Microsoft from any claims, including
|
|
||||||
attorneys’ fees, related to the distribution or use of your devices, except to
|
|
||||||
the extent that any claim is based solely on the unmodified software.
|
|
||||||
|
|
||||||
c) Restrictions. You may not:
|
c) Restrictions. You may not:
|
||||||
|
i. use or modify the software to create competing real time operating system
|
||||||
i. use or modify the software to create a competing real time operating system
|
|
||||||
software;
|
software;
|
||||||
|
|
||||||
ii. remove any copyright notices or licenses contained in the software;
|
ii. remove any copyright notices or licenses contained in the software;
|
||||||
@@ -179,12 +173,13 @@ breach of which would endanger the purpose of this agreement and the compliance
|
|||||||
with which a party may constantly trust in (so-called "cardinal obligations").
|
with which a party may constantly trust in (so-called "cardinal obligations").
|
||||||
In other cases of slight negligence, Microsoft will not be liable for slight
|
In other cases of slight negligence, Microsoft will not be liable for slight
|
||||||
negligence.
|
negligence.
|
||||||
|
12. DISCLAIMER OF WARRANTY.
|
||||||
12. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF
|
a) THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF
|
||||||
USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO
|
USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO
|
||||||
THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED
|
THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED
|
||||||
WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
|
WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
|
||||||
NON-INFRINGEMENT.
|
NON-INFRINGEMENT.
|
||||||
|
b) HIGH RISK USE DISCLAIMER. WARNING: THE SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE WHERE FAILURE OR FAULT OF ANY KIND OF THE SOFTWARE COULD RESULT IN DEATH OR SERIOUS BODILY INJURY, OR IN PHYSICAL OR ENVIRONMENTAL DAMAGE (“collectively High Risk Use”). Accordingly, You must design and implement your hardware and software such that, in the event of any interruption, defect, error, or other failure of the software, the safety of people, property, and the environment are not reduced below a level that is reasonable, appropriate, and legal, whether in general or for a specific industry. Your High Risk Use of the software is at Your own risk.
|
||||||
|
|
||||||
13. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING
|
13. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING
|
||||||
DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM
|
DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM
|
||||||
@@ -203,21 +198,29 @@ possibility of the damages. The above limitation or exclusion may not apply to
|
|||||||
you because your state, province, or country may not allow the exclusion or
|
you because your state, province, or country may not allow the exclusion or
|
||||||
limitation of incidental, consequential, or other damages.
|
limitation of incidental, consequential, or other damages.
|
||||||
|
|
||||||
|
Please note: As this software is distributed in Canada, some of the clauses in
|
||||||
|
|
||||||
Please note: As this software is distributed in Canada, some of the clauses in
|
|
||||||
this agreement are provided below in French.
|
this agreement are provided below in French.
|
||||||
|
|
||||||
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans ce
|
Remarque: Ce logiciel étant distribué au Canada, certaines des clauses dans ce
|
||||||
contrat sont fournies ci-dessous en français.
|
contrat sont fournies ci-dessous en français.
|
||||||
|
|
||||||
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel
|
EXONÉRATION DE GARANTIE.
|
||||||
|
a) Le logiciel visé par une licence est offert « tel quel
|
||||||
». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft
|
». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft
|
||||||
n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits
|
n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits
|
||||||
additionnels en vertu du droit local sur la protection des consommateurs, que ce
|
additionnels en vertu du droit local sur la protection des consommateurs, que ce
|
||||||
contrat ne peut modifier. La ou elles sont permises par le droit locale, les
|
contrat ne peut modifier. La ou elles sont permises par le droit locale, les
|
||||||
garanties implicites de qualité marchande, d’adéquation à un usage particulier
|
garanties implicites de qualité marchande, d’adéquation à un usage particulier
|
||||||
et d’absence de contrefaçon sont exclues.
|
et d’absence de contrefaçon sont exclues.
|
||||||
|
b) CLAUSE D’EXCLUSION DE RESPONSABILITÉ RELATIVE À L’UTILISATION À HAUT RISQUE.
|
||||||
|
AVERTISSEMENT: LE LOGICIEL N’EST PAS CONÇU OU DESTINÉ À ÊTRE UTILISÉ LORSQU’UNE
|
||||||
|
DÉFAILLANCE OU UN DÉFAUT DE QUELQUE NATURE QUE CE SOIT POURRAIT ENTRAÎNER LA
|
||||||
|
MORT OU DES BLESSURES CORPORELLES GRAVES, OU DES DOMMAGES PHYSIQUES OU
|
||||||
|
ENVIRONNEMENTAUX (« Utilisation à haut risque »). Par conséquent, vous devez concevoir et mettre en
|
||||||
|
œuvre votre équipement et votre logiciel de manière à ce que, en cas d’interruption, de défaut, d’erreur
|
||||||
|
ou de toute autre défaillance du logiciel, la sécurité des personnes, des biens et de l’environnement ne
|
||||||
|
soit pas réduite en dessous d’un niveau raisonnable, approprié et légal, que ce soit en général ou pour
|
||||||
|
un secteur spécifique. Votre utilisation à haut risque du logiciel est à vos propres risques.
|
||||||
|
|
||||||
LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES
|
LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES
|
||||||
DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une
|
DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une
|
||||||
@@ -243,4 +246,4 @@ ci-dessus ne s’appliquera pas à votre égard.
|
|||||||
EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous
|
EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous
|
||||||
pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent
|
pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent
|
||||||
contrat ne modifie pas les droits que vous confèrent les lois de votre pays si
|
contrat ne modifie pas les droits que vous confèrent les lois de votre pays si
|
||||||
celles-ci ne le permettent pas.
|
celles-ci ne le permettent pas.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
LICENSED HARDWARE LIST
|
LICENSED HARDWARE LIST
|
||||||
|
|
||||||
Last Updated: 2021-04-01
|
Last Updated: 2023-02-10
|
||||||
|
|
||||||
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
|
||||||
@@ -31,7 +31,7 @@ NXP:
|
|||||||
|
|
||||||
i.MX RT10xx and RT116x/7x series crossover MCUs
|
i.MX RT10xx and RT116x/7x series crossover MCUs
|
||||||
LPC5500 series
|
LPC5500 series
|
||||||
|
MCX N series
|
||||||
|
|
||||||
Renesas:
|
Renesas:
|
||||||
|
|
||||||
|
|||||||
311
README.md
311
README.md
@@ -1,115 +1,236 @@
|
|||||||

|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
# 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
|

|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
# 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 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 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
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
|
> When you see xx-xx-xxxx, 6.x or x.x in function header, this means the file is not officially released yet. They will be updated in the next release. See example below.
|
||||||
```
|
```
|
||||||
- cmake
|
/**************************************************************************/
|
||||||
- common
|
/* */
|
||||||
- inc
|
/* FUNCTION RELEASE */
|
||||||
- src
|
/* */
|
||||||
- ports
|
/* _tx_initialize_low_level Cortex-M23/GNU */
|
||||||
- cortex_m0/gnu
|
/* 6.x */
|
||||||
- inc
|
/* AUTHOR */
|
||||||
- src
|
/* */
|
||||||
- cortex_m3/gnu
|
/* Scott Larson, Microsoft Corporation */
|
||||||
- inc
|
/* */
|
||||||
- src
|
/* DESCRIPTION */
|
||||||
- cortex_m4/gnu
|
/* */
|
||||||
- inc
|
/* This function is responsible for any low-level processor */
|
||||||
- src
|
/* initialization, including setting up interrupt vectors, setting */
|
||||||
- cortex_m7/gnu
|
/* up a periodic timer interrupt source, saving the system stack */
|
||||||
- inc
|
/* pointer for use in ISR processing later, and finding the first */
|
||||||
- src
|
/* available RAM memory address for tx_application_define. */
|
||||||
- samples
|
/* */
|
||||||
|
/* INPUT */
|
||||||
|
/* */
|
||||||
|
/* None */
|
||||||
|
/* */
|
||||||
|
/* OUTPUT */
|
||||||
|
/* */
|
||||||
|
/* None */
|
||||||
|
/* */
|
||||||
|
/* CALLS */
|
||||||
|
/* */
|
||||||
|
/* None */
|
||||||
|
/* */
|
||||||
|
/* CALLED BY */
|
||||||
|
/* */
|
||||||
|
/* _tx_initialize_kernel_enter ThreadX entry function */
|
||||||
|
/* */
|
||||||
|
/* RELEASE HISTORY */
|
||||||
|
/* */
|
||||||
|
/* DATE NAME DESCRIPTION */
|
||||||
|
/* */
|
||||||
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* xx-xx-xxxx Scott Larson Include tx_user.h, */
|
||||||
|
/* resulting in version 6.x */
|
||||||
|
/* */
|
||||||
|
/**************************************************************************/
|
||||||
```
|
```
|
||||||
|
|
||||||
# Security
|
## Supported Architecture Ports
|
||||||
|
|
||||||
|
### ThreadX
|
||||||
|
```
|
||||||
|
arc_em cortex_a12 cortex_m0 cortex_r4
|
||||||
|
arc_hs cortex_a15 cortex_m23 cortex_r5
|
||||||
|
arm11 cortex_a17 cortex_m3 cortex_r7
|
||||||
|
arm9 cortex_a34 cortex_m33
|
||||||
|
c667x cortex_a35 cortex_m4
|
||||||
|
linux cortex_a5 cortex_m55
|
||||||
|
risc-v32 cortex_a53 cortex_m7
|
||||||
|
rxv1 cortex_a55 cortex_m85
|
||||||
|
rxv2 cortex_a57
|
||||||
|
rxv3 cortex_a5x
|
||||||
|
win32 cortex_a65
|
||||||
|
xtensa cortex_a65ae
|
||||||
|
cortex_a7
|
||||||
|
cortex_a72
|
||||||
|
cortex_a73
|
||||||
|
cortex_a75
|
||||||
|
cortex_a76
|
||||||
|
cortex_a76ae
|
||||||
|
cortex_a77
|
||||||
|
cortex_a8
|
||||||
|
cortex_a9
|
||||||
|
```
|
||||||
|
|
||||||
|
### 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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> 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.
|
||||||
|
|
||||||
# Adaptation layer for ThreadX
|
## Contribution
|
||||||
|
|
||||||
Azure RTOS ThreadX is an advanced real-time operating system (RTOS) designed specifically for deeply embedded applications. To help ease application migration to Auzre 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.).
|
Please follow the instructions provided in the [CONTRIBUTING.md](./CONTRIBUTING.md) for the corresponding repository.
|
||||||
|
|
||||||
# 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://azure-rtos.ms-iot-contact.com/
|
|
||||||
|
|
||||||
# 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:
|
|
||||||
| | |
|
|
||||||
|---|---|
|
|
||||||
| TraceX Installer | https://aka.ms/azrtos-tracex-installer |
|
|
||||||
| Azure RTOS Documentation 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 |
|
|
||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* tx_api.h PORTABLE C */
|
/* tx_api.h PORTABLE C */
|
||||||
/* 6.1.9 */
|
/* 6.3.0 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -78,6 +78,29 @@
|
|||||||
/* 10-15-2021 Yuxin Zhou Modified comment(s), */
|
/* 10-15-2021 Yuxin Zhou Modified comment(s), */
|
||||||
/* update patch number, */
|
/* update patch number, */
|
||||||
/* resulting in version 6.1.9 */
|
/* 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 */
|
||||||
|
/* 03-08-2023 Tiejun Zhou Modified comment(s), */
|
||||||
|
/* update patch number, */
|
||||||
|
/* resulting in version 6.2.1 */
|
||||||
|
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
|
||||||
|
/* added option for random */
|
||||||
|
/* number stack filling, */
|
||||||
|
/* resulting in version 6.3.0 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -95,11 +118,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. */
|
||||||
|
|
||||||
@@ -109,8 +139,8 @@ extern "C" {
|
|||||||
|
|
||||||
#define AZURE_RTOS_THREADX
|
#define AZURE_RTOS_THREADX
|
||||||
#define THREADX_MAJOR_VERSION 6
|
#define THREADX_MAJOR_VERSION 6
|
||||||
#define THREADX_MINOR_VERSION 1
|
#define THREADX_MINOR_VERSION 3
|
||||||
#define THREADX_PATCH_VERSION 9
|
#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
|
||||||
@@ -145,7 +175,11 @@ extern "C" {
|
|||||||
#define TX_NO_MESSAGES ((UINT) 0)
|
#define TX_NO_MESSAGES ((UINT) 0)
|
||||||
#define TX_EMPTY ((ULONG) 0)
|
#define TX_EMPTY ((ULONG) 0)
|
||||||
#define TX_CLEAR_ID ((ULONG) 0)
|
#define TX_CLEAR_ID ((ULONG) 0)
|
||||||
|
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
|
||||||
|
#define TX_STACK_FILL (thread_ptr -> tx_thread_stack_fill_value)
|
||||||
|
#else
|
||||||
#define TX_STACK_FILL ((ULONG) 0xEFEFEFEFUL)
|
#define TX_STACK_FILL ((ULONG) 0xEFEFEFEFUL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Thread execution state values. */
|
/* Thread execution state values. */
|
||||||
@@ -208,12 +242,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
|
||||||
|
|
||||||
|
|
||||||
@@ -514,14 +618,20 @@ typedef struct TX_THREAD_STRUCT
|
|||||||
For Azure RTOS 6, user shall use TX_EXECUTION_PROFILE_ENABLE instead of TX_ENABLE_EXECUTION_CHANGE_NOTIFY,
|
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. */
|
and SHALL NOT add variables to TX_THREAD_EXTENSION_3. */
|
||||||
#if (defined(TX_EXECUTION_PROFILE_ENABLE) && !defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY))
|
#if (defined(TX_EXECUTION_PROFILE_ENABLE) && !defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY))
|
||||||
unsigned long long tx_thread_execution_time_total;
|
EXECUTION_TIME tx_thread_execution_time_total;
|
||||||
unsigned long long tx_thread_execution_time_last_start;
|
EXECUTION_TIME_SOURCE_TYPE tx_thread_execution_time_last_start;
|
||||||
#endif
|
#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;
|
||||||
|
|
||||||
|
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
|
||||||
|
|
||||||
|
/* Define the random stack fill number. This can be used to detect stack overflow. */
|
||||||
|
ULONG tx_thread_stack_fill_value;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Define the user extension field. This typically is defined
|
/* Define the user extension field. This typically is defined
|
||||||
to white space, but some ports of ThreadX may need to have
|
to white space, but some ports of ThreadX may need to have
|
||||||
additional fields in the thread control block. This is
|
additional fields in the thread control block. This is
|
||||||
@@ -1796,6 +1906,21 @@ UINT _tx_trace_interrupt_control(UINT new_posture);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Add a default macro that can be re-defined in tx_port.h to add processing to the initialize random number generator.
|
||||||
|
By default, this is simply defined as whitespace. */
|
||||||
|
|
||||||
|
#ifndef TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
|
||||||
|
#define TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Define the TX_RAND macro to the standard library function, if not already defined. */
|
||||||
|
|
||||||
|
#ifndef TX_RAND
|
||||||
|
#define TX_RAND() rand()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Check for MISRA compliance requirements. */
|
/* Check for MISRA compliance requirements. */
|
||||||
|
|
||||||
#ifdef TX_MISRA_ENABLE
|
#ifdef TX_MISRA_ENABLE
|
||||||
|
|||||||
@@ -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.1.9 */
|
/* 6.3.0 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
@@ -58,6 +58,14 @@
|
|||||||
/* user-configurable symbol */
|
/* user-configurable symbol */
|
||||||
/* TX_TIMER_TICKS_PER_SECOND */
|
/* TX_TIMER_TICKS_PER_SECOND */
|
||||||
/* resulting in version 6.1.9 */
|
/* 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 */
|
||||||
|
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
|
||||||
|
/* added option for random */
|
||||||
|
/* number stack filling, */
|
||||||
|
/* resulting in version 6.3.0 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -116,7 +124,7 @@
|
|||||||
Note: the actual hardware timer value may need to be changed (usually in tx_initialize_low_level). */
|
Note: the actual hardware timer value may need to be changed (usually in tx_initialize_low_level). */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#define TX_TIMER_TICKS_PER_SECOND ((ULONG) 100)
|
#define TX_TIMER_TICKS_PER_SECOND (100UL)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Determine if there is a FileX pointer in the thread control block.
|
/* Determine if there is a FileX pointer in the thread control block.
|
||||||
@@ -166,6 +174,14 @@
|
|||||||
#define TX_ENABLE_STACK_CHECKING
|
#define TX_ENABLE_STACK_CHECKING
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Determine if random number is used for stack filling. By default, ThreadX uses a fixed
|
||||||
|
pattern for stack filling. When the following is defined, ThreadX uses a random number
|
||||||
|
for stack filling. This is effective only when TX_ENABLE_STACK_CHECKING is defined. */
|
||||||
|
|
||||||
|
/*
|
||||||
|
#define TX_ENABLE_RANDOM_NUMBER_STACK_FILLING
|
||||||
|
*/
|
||||||
|
|
||||||
/* Determine if preemption-threshold should be disabled. By default, preemption-threshold is
|
/* Determine if preemption-threshold should be disabled. By default, preemption-threshold is
|
||||||
enabled. If the application does not use preemption-threshold, it may be disabled to reduce
|
enabled. If the application does not use preemption-threshold, it may be disabled to reduce
|
||||||
code size and improve performance. */
|
code size and improve performance. */
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_event_flags_get PORTABLE C */
|
/* _tx_event_flags_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.2.0 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -73,9 +73,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), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* resulting in version 6.1 */
|
/* 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,
|
||||||
@@ -122,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);
|
||||||
|
|
||||||
@@ -155,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);
|
||||||
|
|
||||||
@@ -218,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);
|
||||||
|
|
||||||
@@ -271,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
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_event_flags_set PORTABLE C */
|
/* _tx_event_flags_set PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.11 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -72,9 +72,13 @@
|
|||||||
/* */
|
/* */
|
||||||
/* 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), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* resulting in version 6.1 */
|
/* 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)
|
||||||
@@ -264,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;
|
||||||
@@ -336,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
|
||||||
{
|
{
|
||||||
@@ -419,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)
|
||||||
|
|||||||
@@ -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.1 */
|
/* 6.3.0 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -84,9 +87,16 @@ 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), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 04-25-2022 Scott Larson Modified comment(s), */
|
||||||
|
/* added EPK initialization, */
|
||||||
|
/* resulting in version 6.1.11 */
|
||||||
|
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
|
||||||
|
/* added random generator */
|
||||||
|
/* initialization, */
|
||||||
|
/* resulting in version 6.3.0 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
VOID _tx_initialize_kernel_enter(VOID)
|
VOID _tx_initialize_kernel_enter(VOID)
|
||||||
@@ -127,6 +137,9 @@ VOID _tx_initialize_kernel_enter(VOID)
|
|||||||
later used to represent interrupt nesting. */
|
later used to represent interrupt nesting. */
|
||||||
_tx_thread_system_state = TX_INITIALIZE_IN_PROGRESS;
|
_tx_thread_system_state = TX_INITIALIZE_IN_PROGRESS;
|
||||||
|
|
||||||
|
/* Optional random number generator initialization. */
|
||||||
|
TX_INITIALIZE_RANDOM_GENERATOR_INITIALIZATION
|
||||||
|
|
||||||
/* Call the application provided initialization function. Pass the
|
/* Call the application provided initialization function. Pass the
|
||||||
first available memory address to it. */
|
first available memory address to it. */
|
||||||
tx_application_define(_tx_initialize_unused_memory);
|
tx_application_define(_tx_initialize_unused_memory);
|
||||||
@@ -138,6 +151,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();
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_create PORTABLE C */
|
/* _tx_thread_create PORTABLE C */
|
||||||
/* 6.1.8 */
|
/* 6.3.0 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -88,6 +88,10 @@
|
|||||||
/* supported TX_MISRA_ENABLE, */
|
/* supported TX_MISRA_ENABLE, */
|
||||||
/* 08-02-2021 Scott Larson Removed unneeded cast, */
|
/* 08-02-2021 Scott Larson Removed unneeded cast, */
|
||||||
/* resulting in version 6.1.8 */
|
/* resulting in version 6.1.8 */
|
||||||
|
/* 10-31-2023 Xiuwen Cai Modified comment(s), */
|
||||||
|
/* added option for random */
|
||||||
|
/* number stack filling, */
|
||||||
|
/* resulting in version 6.3.0 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
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,
|
||||||
@@ -109,6 +113,17 @@ ALIGN_TYPE updated_stack_start;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef TX_DISABLE_STACK_FILLING
|
#ifndef TX_DISABLE_STACK_FILLING
|
||||||
|
#if defined(TX_ENABLE_RANDOM_NUMBER_STACK_FILLING) && defined(TX_ENABLE_STACK_CHECKING)
|
||||||
|
|
||||||
|
/* Initialize the stack fill value to a 8-bit random value. */
|
||||||
|
thread_ptr -> tx_thread_stack_fill_value = ((ULONG) TX_RAND()) & 0xFFUL;
|
||||||
|
|
||||||
|
/* Duplicate the random value in each of the 4 bytes of the stack fill value. */
|
||||||
|
thread_ptr -> tx_thread_stack_fill_value = thread_ptr -> tx_thread_stack_fill_value |
|
||||||
|
(thread_ptr -> tx_thread_stack_fill_value << 8) |
|
||||||
|
(thread_ptr -> tx_thread_stack_fill_value << 16) |
|
||||||
|
(thread_ptr -> tx_thread_stack_fill_value << 24);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set the thread stack to a pattern prior to creating the initial
|
/* Set the thread stack to a pattern prior to creating the initial
|
||||||
stack frame. This pattern is used by the stack checking routines
|
stack frame. This pattern is used by the stack checking routines
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_wait_abort PORTABLE C */
|
/* _tx_thread_wait_abort PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.2.1 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -68,9 +68,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), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 03-08-2023 Scott Larson Check if thread is coming out */
|
||||||
|
/* of suspension elsewhere, */
|
||||||
|
/* resulting in version 6.2.1 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_thread_wait_abort(TX_THREAD *thread_ptr)
|
UINT _tx_thread_wait_abort(TX_THREAD *thread_ptr)
|
||||||
@@ -131,6 +134,18 @@ ULONG suspension_sequence;
|
|||||||
/* Restore interrupts. */
|
/* Restore interrupts. */
|
||||||
TX_RESTORE
|
TX_RESTORE
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
else if(thread_ptr -> tx_thread_suspend_cleanup == TX_NULL)
|
||||||
|
{
|
||||||
|
/* Thread is coming out of suspension elsewhere. */
|
||||||
|
|
||||||
|
#ifndef TX_NOT_INTERRUPTABLE
|
||||||
|
/* Increment the disable preemption flag. */
|
||||||
|
_tx_thread_preempt_disable++;
|
||||||
|
|
||||||
|
/* Restore interrupts. */
|
||||||
|
TX_RESTORE
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -167,13 +182,8 @@ ULONG suspension_sequence;
|
|||||||
TX_RESTORE
|
TX_RESTORE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Call any cleanup routines. */
|
/* Call cleanup routine. */
|
||||||
if (suspend_cleanup != TX_NULL)
|
(suspend_cleanup)(thread_ptr, suspension_sequence);
|
||||||
{
|
|
||||||
|
|
||||||
/* Yes, there is a function to call. */
|
|
||||||
(suspend_cleanup)(thread_ptr, suspension_sequence);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the abort of the thread wait was successful, if so resume the thread. */
|
/* If the abort of the thread wait was successful, if so resume the thread. */
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_trace_object_register PORTABLE C */
|
/* _tx_trace_object_register PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.12 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* William E. Lamie, Microsoft Corporation */
|
/* William E. Lamie, Microsoft Corporation */
|
||||||
@@ -69,9 +69,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), */
|
/* 09-30-2020 Yuxin Zhou Modified comment(s), */
|
||||||
/* resulting in version 6.1 */
|
/* resulting in version 6.1 */
|
||||||
|
/* 07-29-2022 Scott Larson Modified comment(s), */
|
||||||
|
/* check for null name, */
|
||||||
|
/* resulting in version 6.1.12 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
VOID _tx_trace_object_register(UCHAR object_type, VOID *object_ptr, CHAR *object_name, ULONG parameter_1, ULONG parameter_2)
|
VOID _tx_trace_object_register(UCHAR object_type, VOID *object_ptr, CHAR *object_name, ULONG parameter_1, ULONG parameter_2)
|
||||||
@@ -223,6 +226,12 @@ TX_TRACE_OBJECT_ENTRY *entry_ptr;
|
|||||||
work_ptr = TX_CHAR_TO_UCHAR_POINTER_CONVERT(object_name);
|
work_ptr = TX_CHAR_TO_UCHAR_POINTER_CONVERT(object_name);
|
||||||
work_ptr = TX_UCHAR_POINTER_ADD(work_ptr, i);
|
work_ptr = TX_UCHAR_POINTER_ADD(work_ptr, i);
|
||||||
|
|
||||||
|
/* Determine if object_name (work_ptr) is null. */
|
||||||
|
if (work_ptr == TX_NULL)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Copy a character of the name. */
|
/* Copy a character of the name. */
|
||||||
entry_ptr -> tx_trace_object_entry_name[i] = (UCHAR) *work_ptr;
|
entry_ptr -> tx_trace_object_entry_name[i] = (UCHAR) *work_ptr;
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* txm_module.h PORTABLE C */
|
/* txm_module.h PORTABLE C */
|
||||||
/* 6.1.3 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -44,6 +44,9 @@
|
|||||||
/* 12-31-2020 Scott Larson Modified comment(s), added */
|
/* 12-31-2020 Scott Larson Modified comment(s), added */
|
||||||
/* port-specific extension, */
|
/* port-specific extension, */
|
||||||
/* resulting in version 6.1.3 */
|
/* resulting in version 6.1.3 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comment(s), added */
|
||||||
|
/* callback thread prototype, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -64,23 +67,23 @@
|
|||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_FILEX
|
#ifdef TXM_MODULE_ENABLE_FILEX
|
||||||
#include "txm_module_filex.h"
|
#include "txm_module_filex.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_GUIX
|
#ifdef TXM_MODULE_ENABLE_GUIX
|
||||||
#include "txm_module_guix.h"
|
#include "txm_module_guix.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_NETX
|
#ifdef TXM_MODULE_ENABLE_NETX
|
||||||
#include "txm_module_netx.h"
|
#include "txm_module_netx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_NETXDUO
|
#ifdef TXM_MODULE_ENABLE_NETXDUO
|
||||||
#include "txm_module_netxduo.h"
|
#include "txm_module_netxduo.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_USBX
|
#ifdef TXM_MODULE_ENABLE_USBX
|
||||||
#include "txm_module_usbx.h"
|
#include "txm_module_usbx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef FX_FILEX_PRESENT
|
#ifdef FX_FILEX_PRESENT
|
||||||
@@ -157,7 +160,7 @@ extern "C" {
|
|||||||
/* Define each module's callback queue depth. This is used to queue up incoming call back requests. */
|
/* Define each module's callback queue depth. This is used to queue up incoming call back requests. */
|
||||||
|
|
||||||
#ifndef TXM_MODULE_CALLBACKS_QUEUE_DEPTH
|
#ifndef TXM_MODULE_CALLBACKS_QUEUE_DEPTH
|
||||||
#define TXM_MODULE_CALLBACKS_QUEUE_DEPTH 8 /* Number queued callback requests. */
|
#define TXM_MODULE_CALLBACKS_QUEUE_DEPTH 8 /* Number queued callback requests. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -367,7 +370,7 @@ typedef struct TXM_MODULE_PREAMBLE_STRUCT
|
|||||||
ULONG txm_module_preamble_property_flags; /* Properties Bit Map */
|
ULONG txm_module_preamble_property_flags; /* Properties Bit Map */
|
||||||
ULONG txm_module_preamble_shell_entry_function; /* Module shell Entry Function */
|
ULONG txm_module_preamble_shell_entry_function; /* Module shell Entry Function */
|
||||||
ULONG txm_module_preamble_start_function; /* Module Thread Start Function */
|
ULONG txm_module_preamble_start_function; /* Module Thread Start Function */
|
||||||
ULONG txm_module_preamble_stop_function; /* Module Thread Stop Function */
|
ULONG txm_module_preamble_stop_function; /* Module Thread Stop Function */
|
||||||
ULONG txm_module_preamble_start_stop_priority; /* Module Start/Stop Thread Priority */
|
ULONG txm_module_preamble_start_stop_priority; /* Module Start/Stop Thread Priority */
|
||||||
ULONG txm_module_preamble_start_stop_stack_size; /* Module Start/Stop Thread Priority */
|
ULONG txm_module_preamble_start_stop_stack_size; /* Module Start/Stop Thread Priority */
|
||||||
ULONG txm_module_preamble_callback_function; /* Module Callback Thread Function */
|
ULONG txm_module_preamble_callback_function; /* Module Callback Thread Function */
|
||||||
@@ -448,10 +451,10 @@ typedef struct TXM_MODULE_INSTANCE_STRUCT
|
|||||||
VOID (*txm_module_instance_start_thread_entry)(ULONG);
|
VOID (*txm_module_instance_start_thread_entry)(ULONG);
|
||||||
VOID (*txm_module_instance_stop_thread_entry)(ULONG);
|
VOID (*txm_module_instance_stop_thread_entry)(ULONG);
|
||||||
VOID (*txm_module_instance_callback_request_thread_entry)(ULONG);
|
VOID (*txm_module_instance_callback_request_thread_entry)(ULONG);
|
||||||
|
|
||||||
/* Define the port extention to the module manager structure. */
|
/* Define the port extention to the module manager structure. */
|
||||||
TXM_MODULE_MANAGER_PORT_EXTENSION
|
TXM_MODULE_MANAGER_PORT_EXTENSION
|
||||||
|
|
||||||
TX_THREAD txm_module_instance_start_stop_thread;
|
TX_THREAD txm_module_instance_start_stop_thread;
|
||||||
TX_THREAD txm_module_instance_callback_request_thread;
|
TX_THREAD txm_module_instance_callback_request_thread;
|
||||||
TX_QUEUE txm_module_instance_callback_request_queue;
|
TX_QUEUE txm_module_instance_callback_request_queue;
|
||||||
@@ -462,7 +465,7 @@ typedef struct TXM_MODULE_INSTANCE_STRUCT
|
|||||||
ULONG txm_module_instance_callback_priority;
|
ULONG txm_module_instance_callback_priority;
|
||||||
ULONG txm_module_instance_application_module_id;
|
ULONG txm_module_instance_application_module_id;
|
||||||
UINT txm_module_instance_maximum_priority;
|
UINT txm_module_instance_maximum_priority;
|
||||||
|
|
||||||
/* Define the head pointer of the list of objects allocated by the module. */
|
/* Define the head pointer of the list of objects allocated by the module. */
|
||||||
struct TXM_MODULE_ALLOCATED_OBJECT_STRUCT
|
struct TXM_MODULE_ALLOCATED_OBJECT_STRUCT
|
||||||
*txm_module_instance_object_list_head;
|
*txm_module_instance_object_list_head;
|
||||||
@@ -470,11 +473,11 @@ typedef struct TXM_MODULE_INSTANCE_STRUCT
|
|||||||
|
|
||||||
struct TXM_MODULE_INSTANCE_STRUCT
|
struct TXM_MODULE_INSTANCE_STRUCT
|
||||||
*txm_module_instance_loaded_next,
|
*txm_module_instance_loaded_next,
|
||||||
*txm_module_instance_loaded_previous;
|
*txm_module_instance_loaded_previous;
|
||||||
} TXM_MODULE_INSTANCE;
|
} TXM_MODULE_INSTANCE;
|
||||||
|
|
||||||
|
|
||||||
/* Determine if the thread entry info control block has an extension defined. If not, define the extension to
|
/* Determine if the thread entry info control block has an extension defined. If not, define the extension to
|
||||||
whitespace. */
|
whitespace. */
|
||||||
|
|
||||||
#ifndef TXM_MODULE_THREAD_ENTRY_INFO_USER_EXTENSION
|
#ifndef TXM_MODULE_THREAD_ENTRY_INFO_USER_EXTENSION
|
||||||
@@ -482,9 +485,9 @@ typedef struct TXM_MODULE_INSTANCE_STRUCT
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Define the thread entry information structure. This structure is placed on the thread's stack such that the
|
/* Define the thread entry information structure. This structure is placed on the thread's stack such that the
|
||||||
module's _txm_thread_shell_entry function does not need to access anything in the thread control block. */
|
module's _txm_thread_shell_entry function does not need to access anything in the thread control block. */
|
||||||
|
|
||||||
typedef struct TXM_MODULE_THREAD_ENTRY_INFO_STRUCT
|
typedef struct TXM_MODULE_THREAD_ENTRY_INFO_STRUCT
|
||||||
{
|
{
|
||||||
TX_THREAD *txm_module_thread_entry_info_thread;
|
TX_THREAD *txm_module_thread_entry_info_thread;
|
||||||
@@ -516,7 +519,7 @@ typedef struct TXM_MODULE_ALLOCATED_OBJECT_STRUCT
|
|||||||
} TXM_MODULE_ALLOCATED_OBJECT;
|
} TXM_MODULE_ALLOCATED_OBJECT;
|
||||||
|
|
||||||
|
|
||||||
/* Determine if module code is being compiled. If so, remap the ThreadX API to
|
/* Determine if module code is being compiled. If so, remap the ThreadX API to
|
||||||
the module shell functions that will go through the module <-> module manager
|
the module shell functions that will go through the module <-> module manager
|
||||||
interface. */
|
interface. */
|
||||||
|
|
||||||
@@ -541,6 +544,7 @@ VOID _txm_module_thread_shell_entry(TX_THREAD *thread_ptr, TXM_MODULE_THREAD_EN
|
|||||||
UINT _txm_module_thread_system_suspend(TX_THREAD *thread_ptr);
|
UINT _txm_module_thread_system_suspend(TX_THREAD *thread_ptr);
|
||||||
|
|
||||||
UINT _txm_module_application_request(ULONG request, ALIGN_TYPE param_1, ALIGN_TYPE param_2, ALIGN_TYPE param_3);
|
UINT _txm_module_application_request(ULONG request, ALIGN_TYPE param_1, ALIGN_TYPE param_2, ALIGN_TYPE param_3);
|
||||||
|
VOID _txm_module_callback_request_thread_entry(ULONG id);
|
||||||
UINT _txm_module_object_allocate(VOID **object_ptr, ULONG object_size);
|
UINT _txm_module_object_allocate(VOID **object_ptr, ULONG object_size);
|
||||||
UINT _txm_module_object_deallocate(VOID *object_ptr);
|
UINT _txm_module_object_deallocate(VOID *object_ptr);
|
||||||
UINT _txm_module_object_pointer_get(UINT object_type, CHAR *name, VOID **object_ptr);
|
UINT _txm_module_object_pointer_get(UINT object_type, CHAR *name, VOID **object_ptr);
|
||||||
@@ -574,7 +578,7 @@ VOID _txm_module_usbx_duo_callback_request(TXM_MODULE_CALLBACK_MESSAGE *callbac
|
|||||||
|
|
||||||
/* Map the module manager APIs just in case this is being included from the module manager in the
|
/* Map the module manager APIs just in case this is being included from the module manager in the
|
||||||
resident portion of the application. */
|
resident portion of the application. */
|
||||||
|
|
||||||
#define txm_module_manager_initialize _txm_module_manager_initialize
|
#define txm_module_manager_initialize _txm_module_manager_initialize
|
||||||
#define txm_module_manager_absolute_load _txm_module_manager_absolute_load
|
#define txm_module_manager_absolute_load _txm_module_manager_absolute_load
|
||||||
#define txm_module_manager_in_place_load _txm_module_manager_in_place_load
|
#define txm_module_manager_in_place_load _txm_module_manager_in_place_load
|
||||||
@@ -615,7 +619,7 @@ UINT _txm_module_manager_file_load(TXM_MODULE_INSTANCE *module_instance, CHAR *
|
|||||||
UINT _txm_module_manager_initialize(VOID *module_memory_start, ULONG module_memory_size);
|
UINT _txm_module_manager_initialize(VOID *module_memory_start, ULONG module_memory_size);
|
||||||
UINT _txm_module_manager_absolute_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location);
|
UINT _txm_module_manager_absolute_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location);
|
||||||
UINT _txm_module_manager_in_place_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location);
|
UINT _txm_module_manager_in_place_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location);
|
||||||
UINT _txm_module_manager_internal_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location,
|
UINT _txm_module_manager_internal_load(TXM_MODULE_INSTANCE *module_instance, CHAR *name, VOID *module_location,
|
||||||
ULONG code_size, VOID *code_allocation_ptr, ULONG code_allocation_size);
|
ULONG code_size, VOID *code_allocation_ptr, ULONG code_allocation_size);
|
||||||
ALIGN_TYPE _txm_module_manager_kernel_dispatch(ULONG kernel_request, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2);
|
ALIGN_TYPE _txm_module_manager_kernel_dispatch(ULONG kernel_request, ALIGN_TYPE param_0, ALIGN_TYPE param_1, ALIGN_TYPE param_2);
|
||||||
UINT _txm_module_manager_object_allocate(VOID **object_ptr_ptr, ULONG object_size, TXM_MODULE_INSTANCE *module_instance);
|
UINT _txm_module_manager_object_allocate(VOID **object_ptr_ptr, ULONG object_size, TXM_MODULE_INSTANCE *module_instance);
|
||||||
@@ -628,7 +632,7 @@ UINT _txm_module_manager_memory_load(TXM_MODULE_INSTANCE *module_instance, CHAR
|
|||||||
UINT _txm_module_manager_properties_get(TXM_MODULE_INSTANCE *module_instance, ULONG *module_properties_ptr);
|
UINT _txm_module_manager_properties_get(TXM_MODULE_INSTANCE *module_instance, ULONG *module_properties_ptr);
|
||||||
UINT _txm_module_manager_start(TXM_MODULE_INSTANCE *module_instance);
|
UINT _txm_module_manager_start(TXM_MODULE_INSTANCE *module_instance);
|
||||||
UINT _txm_module_manager_stop(TXM_MODULE_INSTANCE *module_instance);
|
UINT _txm_module_manager_stop(TXM_MODULE_INSTANCE *module_instance);
|
||||||
UINT _txm_module_manager_thread_create(TX_THREAD *thread_ptr, CHAR *name, VOID (*shell_function)(TX_THREAD *, TXM_MODULE_INSTANCE *),
|
UINT _txm_module_manager_thread_create(TX_THREAD *thread_ptr, CHAR *name, VOID (*shell_function)(TX_THREAD *, TXM_MODULE_INSTANCE *),
|
||||||
VOID (*entry_function)(ULONG), ULONG entry_input,
|
VOID (*entry_function)(ULONG), ULONG entry_input,
|
||||||
VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold,
|
VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold,
|
||||||
ULONG time_slice, UINT auto_start, UINT thread_control_block_size, TXM_MODULE_INSTANCE *module_instance);
|
ULONG time_slice, UINT auto_start, UINT thread_control_block_size, TXM_MODULE_INSTANCE *module_instance);
|
||||||
|
|||||||
@@ -10,41 +10,44 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/** */
|
/** */
|
||||||
/** ThreadX Component */
|
/** ThreadX Component */
|
||||||
/** */
|
/** */
|
||||||
/** User Specific */
|
/** User Specific */
|
||||||
/** */
|
/** */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* txm_module_user.h PORTABLE C */
|
/* txm_module_user.h PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This file contains user defines for configuring the Module Manager */
|
/* This file contains user defines for configuring the Module Manager */
|
||||||
/* in specific ways. This file will have an effect only if the Module */
|
/* in specific ways. This file will have an effect only if the Module */
|
||||||
/* Manager library is built with TXM_MODULE_INCLUDE_USER_DEFINE_FILE */
|
/* Manager library is built with TXM_MODULE_INCLUDE_USER_DEFINE_FILE */
|
||||||
/* defined. Note that all the defines in this file may also be made on */
|
/* defined. Note that all the defines in this file may also be made on */
|
||||||
/* the command line when building Modules library and application */
|
/* the command line when building Modules library and application */
|
||||||
/* objects. */
|
/* objects. */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED defines, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
@@ -57,4 +60,106 @@
|
|||||||
|
|
||||||
/* #define TXM_MODULE_KERNEL_STACK_SIZE 2048 */
|
/* #define TXM_MODULE_KERNEL_STACK_SIZE 2048 */
|
||||||
|
|
||||||
|
|
||||||
|
/* Uncomment any of these defines to prevent modules from being able to make that system call. */
|
||||||
|
|
||||||
|
/* #define TXM_BLOCK_ALLOCATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BLOCK_POOL_CREATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BLOCK_POOL_DELETE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BLOCK_POOL_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BLOCK_POOL_PERFORMANCE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BLOCK_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BLOCK_POOL_PRIORITIZE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BLOCK_RELEASE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BYTE_ALLOCATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BYTE_POOL_CREATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BYTE_POOL_DELETE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BYTE_POOL_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BYTE_POOL_PERFORMANCE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BYTE_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BYTE_POOL_PRIORITIZE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_BYTE_RELEASE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_EVENT_FLAGS_CREATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_EVENT_FLAGS_DELETE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_EVENT_FLAGS_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_EVENT_FLAGS_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_EVENT_FLAGS_PERFORMANCE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_EVENT_FLAGS_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_EVENT_FLAGS_SET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_EVENT_FLAGS_SET_NOTIFY_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MUTEX_CREATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MUTEX_DELETE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MUTEX_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MUTEX_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MUTEX_PERFORMANCE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MUTEX_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MUTEX_PRIORITIZE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MUTEX_PUT_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_CREATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_DELETE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_FLUSH_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_FRONT_SEND_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_PERFORMANCE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_PRIORITIZE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_RECEIVE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_SEND_CALL_NOT_USED */
|
||||||
|
/* #define TXM_QUEUE_SEND_NOTIFY_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_CEILING_PUT_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_CREATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_DELETE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_PERFORMANCE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_PRIORITIZE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_PUT_CALL_NOT_USED */
|
||||||
|
/* #define TXM_SEMAPHORE_PUT_NOTIFY_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_CREATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_DELETE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_ENTRY_EXIT_NOTIFY_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_IDENTIFY_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_INTERRUPT_CONTROL_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_PERFORMANCE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_PREEMPTION_CHANGE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_PRIORITY_CHANGE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_RELINQUISH_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_RESET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_RESUME_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_SLEEP_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_STACK_ERROR_NOTIFY_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_SUSPEND_CALL_NOT_USED */
|
||||||
|
/* thread system suspend is needed in _txm_module_thread_shell_entry */
|
||||||
|
/* #define TXM_THREAD_TERMINATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_TIME_SLICE_CHANGE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_THREAD_WAIT_ABORT_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIME_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIME_SET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIMER_ACTIVATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIMER_CHANGE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIMER_CREATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIMER_DEACTIVATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIMER_DELETE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIMER_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIMER_PERFORMANCE_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TIMER_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_BUFFER_FULL_NOTIFY_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_DISABLE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_ENABLE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_EVENT_FILTER_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_EVENT_UNFILTER_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_INTERRUPT_CONTROL_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_ISR_ENTER_INSERT_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_ISR_EXIT_INSERT_CALL_NOT_USED */
|
||||||
|
/* #define TXM_TRACE_USER_EVENT_INSERT_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MODULE_APPLICATION_REQUEST_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MODULE_OBJECT_ALLOCATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MODULE_OBJECT_DEALLOCATE_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MODULE_OBJECT_POINTER_GET_CALL_NOT_USED */
|
||||||
|
/* #define TXM_MODULE_OBJECT_POINTER_GET_EXTENDED_CALL_NOT_USED */
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -22,49 +22,52 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BLOCK_ALLOCATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_block_allocate PORTABLE C */
|
/* _txe_block_allocate PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the allocate block memory */
|
/* This function checks for errors in the allocate block memory */
|
||||||
/* function call. */
|
/* function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to pool control block */
|
/* pool_ptr Pointer to pool control block */
|
||||||
/* block_ptr Pointer to place allocated block */
|
/* block_ptr Pointer to place allocated block */
|
||||||
/* pointer */
|
/* pointer */
|
||||||
/* wait_option Suspension option */
|
/* wait_option Suspension option */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_POOL_ERROR Invalid pool pointer */
|
/* TX_POOL_ERROR Invalid pool pointer */
|
||||||
/* TX_PTR_ERROR Invalid destination pointer */
|
/* TX_PTR_ERROR Invalid destination pointer */
|
||||||
/* TX_WAIT_ERROR Invalid wait option */
|
/* TX_WAIT_ERROR Invalid wait option */
|
||||||
/* status Actual Completion status */
|
/* status Actual Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_block_allocate(TX_BLOCK_POOL *pool_ptr, VOID **block_ptr, ULONG wait_option)
|
UINT _txe_block_allocate(TX_BLOCK_POOL *pool_ptr, VOID **block_ptr, ULONG wait_option)
|
||||||
@@ -78,3 +81,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,52 +22,55 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BLOCK_POOL_CREATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_block_pool_create PORTABLE C */
|
/* _txe_block_pool_create PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the create block memory pool */
|
/* This function checks for errors in the create block memory pool */
|
||||||
/* function call. */
|
/* function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to pool control block */
|
/* pool_ptr Pointer to pool control block */
|
||||||
/* name_ptr Pointer to block pool name */
|
/* name_ptr Pointer to block pool name */
|
||||||
/* block_size Number of bytes in each block */
|
/* block_size Number of bytes in each block */
|
||||||
/* pool_start Address of beginning of pool area */
|
/* pool_start Address of beginning of pool area */
|
||||||
/* pool_size Number of bytes in the block pool */
|
/* pool_size Number of bytes in the block pool */
|
||||||
/* pool_control_block_size Size of block pool control block */
|
/* pool_control_block_size Size of block pool control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_POOL_ERROR Invalid pool pointer */
|
/* TX_POOL_ERROR Invalid pool pointer */
|
||||||
/* TX_PTR_ERROR Invalid starting address */
|
/* TX_PTR_ERROR Invalid starting address */
|
||||||
/* TX_SIZE_ERROR Invalid pool size */
|
/* TX_SIZE_ERROR Invalid pool size */
|
||||||
/* TX_CALLER_ERROR Invalid caller of pool */
|
/* TX_CALLER_ERROR Invalid caller of pool */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_block_pool_create(TX_BLOCK_POOL *pool_ptr, CHAR *name_ptr, ULONG block_size, VOID *pool_start, ULONG pool_size, UINT pool_control_block_size)
|
UINT _txe_block_pool_create(TX_BLOCK_POOL *pool_ptr, CHAR *name_ptr, ULONG block_size, VOID *pool_start, ULONG pool_size, UINT pool_control_block_size)
|
||||||
@@ -87,3 +90,4 @@ ALIGN_TYPE extra_parameters[4];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BLOCK_POOL_DELETE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_block_pool_delete PORTABLE C */
|
/* _txe_block_pool_delete PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the delete block pool memory */
|
/* This function checks for errors in the delete block pool memory */
|
||||||
/* function call. */
|
/* function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to pool control block */
|
/* pool_ptr Pointer to pool control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_POOL_ERROR Invalid memory block pool pointer */
|
/* TX_POOL_ERROR Invalid memory block pool pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual delete function status */
|
/* status Actual delete function status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_block_pool_delete(TX_BLOCK_POOL *pool_ptr)
|
UINT _txe_block_pool_delete(TX_BLOCK_POOL *pool_ptr)
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,52 +22,55 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BLOCK_POOL_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_block_pool_info_get PORTABLE C */
|
/* _txe_block_pool_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the block pool information get */
|
/* This function checks for errors in the block pool information get */
|
||||||
/* service. */
|
/* service. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to block pool control blk */
|
/* pool_ptr Pointer to block pool control blk */
|
||||||
/* name Destination for the pool name */
|
/* name Destination for the pool name */
|
||||||
/* available_blocks Number of free blocks in pool */
|
/* available_blocks Number of free blocks in pool */
|
||||||
/* total_blocks Total number of blocks in pool */
|
/* total_blocks Total number of blocks in pool */
|
||||||
/* first_suspended Destination for pointer of first */
|
/* first_suspended Destination for pointer of first */
|
||||||
/* thread suspended on block pool */
|
/* thread suspended on block pool */
|
||||||
/* suspended_count Destination for suspended count */
|
/* suspended_count Destination for suspended count */
|
||||||
/* next_pool Destination for pointer to next */
|
/* next_pool Destination for pointer to next */
|
||||||
/* block pool on the created list */
|
/* block pool on the created list */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_POOL_ERROR Invalid block pool pointer */
|
/* TX_POOL_ERROR Invalid block pool pointer */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_block_pool_info_get(TX_BLOCK_POOL *pool_ptr, CHAR **name, ULONG *available_blocks, ULONG *total_blocks, TX_THREAD **first_suspended, ULONG *suspended_count, TX_BLOCK_POOL **next_pool)
|
UINT _txe_block_pool_info_get(TX_BLOCK_POOL *pool_ptr, CHAR **name, ULONG *available_blocks, ULONG *total_blocks, TX_THREAD **first_suspended, ULONG *suspended_count, TX_BLOCK_POOL **next_pool)
|
||||||
@@ -88,3 +91,4 @@ ALIGN_TYPE extra_parameters[5];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,51 +22,54 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BLOCK_POOL_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_block_pool_performance_info_get PORTABLE C */
|
/* _tx_block_pool_performance_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves performance information from the specified */
|
/* This function retrieves performance information from the specified */
|
||||||
/* block pool. */
|
/* block pool. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to block pool control blk */
|
/* pool_ptr Pointer to block pool control blk */
|
||||||
/* allocates Destination for the number of */
|
/* allocates Destination for the number of */
|
||||||
/* allocations from this pool */
|
/* allocations from this pool */
|
||||||
/* releases Destination for the number of */
|
/* releases Destination for the number of */
|
||||||
/* blocks released back to pool */
|
/* blocks released back to pool */
|
||||||
/* suspensions Destination for number of */
|
/* suspensions Destination for number of */
|
||||||
/* suspensions on this pool */
|
/* suspensions on this pool */
|
||||||
/* timeouts Destination for number of timeouts*/
|
/* timeouts Destination for number of timeouts*/
|
||||||
/* on this pool */
|
/* on this pool */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_block_pool_performance_info_get(TX_BLOCK_POOL *pool_ptr, ULONG *allocates, ULONG *releases, ULONG *suspensions, ULONG *timeouts)
|
UINT _tx_block_pool_performance_info_get(TX_BLOCK_POOL *pool_ptr, ULONG *allocates, ULONG *releases, ULONG *suspensions, ULONG *timeouts)
|
||||||
@@ -85,3 +88,4 @@ ALIGN_TYPE extra_parameters[3];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,49 +22,52 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BLOCK_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_block_pool_performance_system_info_get PORTABLE C */
|
/* _tx_block_pool_performance_system_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves block pool performance information. */
|
/* This function retrieves block pool performance information. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* allocates Destination for the total number */
|
/* allocates Destination for the total number */
|
||||||
/* of block allocations */
|
/* of block allocations */
|
||||||
/* releases Destination for the total number */
|
/* releases Destination for the total number */
|
||||||
/* of blocks released */
|
/* of blocks released */
|
||||||
/* suspensions Destination for the total number */
|
/* suspensions Destination for the total number */
|
||||||
/* of suspensions */
|
/* of suspensions */
|
||||||
/* timeouts Destination for total number of */
|
/* timeouts Destination for total number of */
|
||||||
/* timeouts */
|
/* timeouts */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
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)
|
||||||
@@ -82,3 +85,4 @@ ALIGN_TYPE extra_parameters[2];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,42 +22,45 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BLOCK_POOL_PRIORITIZE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_block_pool_prioritize PORTABLE C */
|
/* _tx_block_pool_prioritize PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the block pool prioritize call. */
|
/* This function checks for errors in the block pool prioritize call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to pool control block */
|
/* pool_ptr Pointer to pool control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_block_pool_prioritize(TX_BLOCK_POOL *pool_ptr)
|
UINT _txe_block_pool_prioritize(TX_BLOCK_POOL *pool_ptr)
|
||||||
@@ -71,3 +74,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,43 +22,46 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BLOCK_RELEASE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_block_release PORTABLE C */
|
/* _txe_block_release PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the block release function call. */
|
/* This function checks for errors in the block release function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* block_ptr Pointer to memory block */
|
/* block_ptr Pointer to memory block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_PTR_ERROR Invalid memory block pointer */
|
/* TX_PTR_ERROR Invalid memory block pointer */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_block_release(VOID *block_ptr)
|
UINT _txe_block_release(VOID *block_ptr)
|
||||||
@@ -72,3 +75,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,51 +22,54 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BYTE_ALLOCATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_byte_allocate PORTABLE C */
|
/* _txe_byte_allocate PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in allocate bytes function call. */
|
/* This function checks for errors in allocate bytes function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to pool control block */
|
/* pool_ptr Pointer to pool control block */
|
||||||
/* memory_ptr Pointer to place allocated bytes */
|
/* memory_ptr Pointer to place allocated bytes */
|
||||||
/* pointer */
|
/* pointer */
|
||||||
/* memory_size Number of bytes to allocate */
|
/* memory_size Number of bytes to allocate */
|
||||||
/* wait_option Suspension option */
|
/* wait_option Suspension option */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_POOL_ERROR Invalid memory pool pointer */
|
/* TX_POOL_ERROR Invalid memory pool pointer */
|
||||||
/* TX_PTR_ERROR Invalid destination pointer */
|
/* TX_PTR_ERROR Invalid destination pointer */
|
||||||
/* TX_WAIT_ERROR Invalid wait option */
|
/* TX_WAIT_ERROR Invalid wait option */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* TX_SIZE_ERROR Invalid size of memory request */
|
/* TX_SIZE_ERROR Invalid size of memory request */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_byte_allocate(TX_BYTE_POOL *pool_ptr, VOID **memory_ptr, ULONG memory_size, ULONG wait_option)
|
UINT _txe_byte_allocate(TX_BYTE_POOL *pool_ptr, VOID **memory_ptr, ULONG memory_size, ULONG wait_option)
|
||||||
@@ -84,3 +87,4 @@ ALIGN_TYPE extra_parameters[2];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,51 +22,54 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BYTE_POOL_CREATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_byte_pool_create PORTABLE C */
|
/* _txe_byte_pool_create PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the create byte pool memory */
|
/* This function checks for errors in the create byte pool memory */
|
||||||
/* function. */
|
/* function. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to pool control block */
|
/* pool_ptr Pointer to pool control block */
|
||||||
/* name_ptr Pointer to byte pool name */
|
/* name_ptr Pointer to byte pool name */
|
||||||
/* pool_start Address of beginning of pool area */
|
/* pool_start Address of beginning of pool area */
|
||||||
/* pool_size Number of bytes in the byte pool */
|
/* pool_size Number of bytes in the byte pool */
|
||||||
/* pool_control_block_size Size of byte pool control block */
|
/* pool_control_block_size Size of byte pool control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_POOL_ERROR Invalid byte pool pointer */
|
/* TX_POOL_ERROR Invalid byte pool pointer */
|
||||||
/* TX_PTR_ERROR Invalid pool starting address */
|
/* TX_PTR_ERROR Invalid pool starting address */
|
||||||
/* TX_SIZE_ERROR Invalid pool size */
|
/* TX_SIZE_ERROR Invalid pool size */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_byte_pool_create(TX_BYTE_POOL *pool_ptr, CHAR *name_ptr, VOID *pool_start, ULONG pool_size, UINT pool_control_block_size)
|
UINT _txe_byte_pool_create(TX_BYTE_POOL *pool_ptr, CHAR *name_ptr, VOID *pool_start, ULONG pool_size, UINT pool_control_block_size)
|
||||||
@@ -85,3 +88,4 @@ ALIGN_TYPE extra_parameters[3];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BYTE_POOL_DELETE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_byte_pool_delete PORTABLE C */
|
/* _txe_byte_pool_delete PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the delete byte pool function */
|
/* This function checks for errors in the delete byte pool function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to pool control block */
|
/* pool_ptr Pointer to pool control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_POOL_ERROR Invalid pool pointer */
|
/* TX_POOL_ERROR Invalid pool pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_byte_pool_delete(TX_BYTE_POOL *pool_ptr)
|
UINT _txe_byte_pool_delete(TX_BYTE_POOL *pool_ptr)
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,52 +22,55 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BYTE_POOL_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_byte_pool_info_get PORTABLE C */
|
/* _txe_byte_pool_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the byte pool information get */
|
/* This function checks for errors in the byte pool information get */
|
||||||
/* service. */
|
/* service. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to byte pool control block*/
|
/* pool_ptr Pointer to byte pool control block*/
|
||||||
/* name Destination for the pool name */
|
/* name Destination for the pool name */
|
||||||
/* available_bytes Number of free bytes in byte pool */
|
/* available_bytes Number of free bytes in byte pool */
|
||||||
/* fragments Number of fragments in byte pool */
|
/* fragments Number of fragments in byte pool */
|
||||||
/* first_suspended Destination for pointer of first */
|
/* first_suspended Destination for pointer of first */
|
||||||
/* thread suspended on byte pool */
|
/* thread suspended on byte pool */
|
||||||
/* suspended_count Destination for suspended count */
|
/* suspended_count Destination for suspended count */
|
||||||
/* next_pool Destination for pointer to next */
|
/* next_pool Destination for pointer to next */
|
||||||
/* byte pool on the created list */
|
/* byte pool on the created list */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_POOL_ERROR Invalid byte pool pointer */
|
/* TX_POOL_ERROR Invalid byte pool pointer */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_byte_pool_info_get(TX_BYTE_POOL *pool_ptr, CHAR **name, ULONG *available_bytes, ULONG *fragments, TX_THREAD **first_suspended, ULONG *suspended_count, TX_BYTE_POOL **next_pool)
|
UINT _txe_byte_pool_info_get(TX_BYTE_POOL *pool_ptr, CHAR **name, ULONG *available_bytes, ULONG *fragments, TX_THREAD **first_suspended, ULONG *suspended_count, TX_BYTE_POOL **next_pool)
|
||||||
@@ -88,3 +91,4 @@ ALIGN_TYPE extra_parameters[5];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,59 +22,62 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BYTE_POOL_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_byte_pool_performance_info_get PORTABLE C */
|
/* _tx_byte_pool_performance_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves performance information from the specified */
|
/* This function retrieves performance information from the specified */
|
||||||
/* byte pool. */
|
/* byte pool. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to byte pool control block*/
|
/* pool_ptr Pointer to byte pool control block*/
|
||||||
/* allocates Destination for number of */
|
/* allocates Destination for number of */
|
||||||
/* allocates on this pool */
|
/* allocates on this pool */
|
||||||
/* releases Destination for number of */
|
/* releases Destination for number of */
|
||||||
/* releases on this pool */
|
/* releases on this pool */
|
||||||
/* fragments_searched Destination for number of */
|
/* fragments_searched Destination for number of */
|
||||||
/* fragments searched during */
|
/* fragments searched during */
|
||||||
/* allocation */
|
/* allocation */
|
||||||
/* merges Destination for number of adjacent*/
|
/* merges Destination for number of adjacent*/
|
||||||
/* free fragments merged */
|
/* free fragments merged */
|
||||||
/* splits Destination for number of */
|
/* splits Destination for number of */
|
||||||
/* fragments split during */
|
/* fragments split during */
|
||||||
/* allocation */
|
/* allocation */
|
||||||
/* suspensions Destination for number of */
|
/* suspensions Destination for number of */
|
||||||
/* suspensions on this pool */
|
/* suspensions on this pool */
|
||||||
/* timeouts Destination for number of timeouts*/
|
/* timeouts Destination for number of timeouts*/
|
||||||
/* on this byte pool */
|
/* on this byte pool */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_byte_pool_performance_info_get(TX_BYTE_POOL *pool_ptr, ULONG *allocates, ULONG *releases, ULONG *fragments_searched, ULONG *merges, ULONG *splits, ULONG *suspensions, ULONG *timeouts)
|
UINT _tx_byte_pool_performance_info_get(TX_BYTE_POOL *pool_ptr, ULONG *allocates, ULONG *releases, ULONG *fragments_searched, ULONG *merges, ULONG *splits, ULONG *suspensions, ULONG *timeouts)
|
||||||
@@ -96,3 +99,4 @@ ALIGN_TYPE extra_parameters[6];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,57 +22,60 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BYTE_POOL_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_byte_pool_performance_system_info_get PORTABLE C */
|
/* _tx_byte_pool_performance_system_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves byte pool performance information. */
|
/* This function retrieves byte pool performance information. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* allocates Destination for total number of */
|
/* allocates Destination for total number of */
|
||||||
/* allocates */
|
/* allocates */
|
||||||
/* releases Destination for total number of */
|
/* releases Destination for total number of */
|
||||||
/* releases */
|
/* releases */
|
||||||
/* fragments_searched Destination for total number of */
|
/* fragments_searched Destination for total number of */
|
||||||
/* fragments searched during */
|
/* fragments searched during */
|
||||||
/* allocation */
|
/* allocation */
|
||||||
/* merges Destination for total number of */
|
/* merges Destination for total number of */
|
||||||
/* adjacent free fragments merged */
|
/* adjacent free fragments merged */
|
||||||
/* splits Destination for total number of */
|
/* splits Destination for total number of */
|
||||||
/* fragments split during */
|
/* fragments split during */
|
||||||
/* allocation */
|
/* allocation */
|
||||||
/* suspensions Destination for total number of */
|
/* suspensions Destination for total number of */
|
||||||
/* suspensions */
|
/* suspensions */
|
||||||
/* timeouts Destination for total number of */
|
/* timeouts Destination for total number of */
|
||||||
/* timeouts */
|
/* timeouts */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_byte_pool_performance_system_info_get(ULONG *allocates, ULONG *releases, ULONG *fragments_searched, ULONG *merges, ULONG *splits, ULONG *suspensions, ULONG *timeouts)
|
UINT _tx_byte_pool_performance_system_info_get(ULONG *allocates, ULONG *releases, ULONG *fragments_searched, ULONG *merges, ULONG *splits, ULONG *suspensions, ULONG *timeouts)
|
||||||
@@ -93,3 +96,4 @@ ALIGN_TYPE extra_parameters[5];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,42 +22,45 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BYTE_POOL_PRIORITIZE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_byte_pool_prioritize PORTABLE C */
|
/* _tx_byte_pool_prioritize PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the byte pool prioritize call. */
|
/* This function checks for errors in the byte pool prioritize call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* pool_ptr Pointer to pool control block */
|
/* pool_ptr Pointer to pool control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_byte_pool_prioritize(TX_BYTE_POOL *pool_ptr)
|
UINT _txe_byte_pool_prioritize(TX_BYTE_POOL *pool_ptr)
|
||||||
@@ -71,3 +74,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,44 +22,47 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_BYTE_RELEASE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_byte_release PORTABLE C */
|
/* _txe_byte_release PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the release byte function call. */
|
/* This function checks for errors in the release byte function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* memory_ptr Pointer to allocated memory */
|
/* memory_ptr Pointer to allocated memory */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_PTR_ERROR Invalid memory pointer */
|
/* TX_PTR_ERROR Invalid memory pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_byte_release(VOID *memory_ptr)
|
UINT _txe_byte_release(VOID *memory_ptr)
|
||||||
@@ -73,3 +76,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,48 +22,51 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_EVENT_FLAGS_CREATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_event_flags_create PORTABLE C */
|
/* _txe_event_flags_create PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the event flag creation function */
|
/* This function checks for errors in the event flag creation function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* group_ptr Pointer to event flags group */
|
/* group_ptr Pointer to event flags group */
|
||||||
/* control block */
|
/* control block */
|
||||||
/* name_ptr Pointer to event flags name */
|
/* name_ptr Pointer to event flags name */
|
||||||
/* event_control_block_size Size of event flags control block */
|
/* event_control_block_size Size of event flags control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_GROUP_ERROR Invalid event flag group pointer */
|
/* TX_GROUP_ERROR Invalid event flag group pointer */
|
||||||
/* TX_CALLER_ERROR Invalid calling function */
|
/* TX_CALLER_ERROR Invalid calling function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_event_flags_create(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR *name_ptr, UINT event_control_block_size)
|
UINT _txe_event_flags_create(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR *name_ptr, UINT event_control_block_size)
|
||||||
@@ -77,3 +80,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_EVENT_FLAGS_DELETE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_event_flags_delete PORTABLE C */
|
/* _txe_event_flags_delete PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the delete event flags group */
|
/* This function checks for errors in the delete event flags group */
|
||||||
/* function call. */
|
/* function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* group_ptr Pointer to group control block */
|
/* group_ptr Pointer to group control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_GROUP_ERROR Invalid event flag group pointer */
|
/* TX_GROUP_ERROR Invalid event flag group pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_event_flags_delete(TX_EVENT_FLAGS_GROUP *group_ptr)
|
UINT _txe_event_flags_delete(TX_EVENT_FLAGS_GROUP *group_ptr)
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,53 +22,56 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_EVENT_FLAGS_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_event_flags_get PORTABLE C */
|
/* _txe_event_flags_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the event flags get function */
|
/* This function checks for errors in the event flags get function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* group_ptr Pointer to group control block */
|
/* group_ptr Pointer to group control block */
|
||||||
/* requested_event_flags Event flags requested */
|
/* requested_event_flags Event flags requested */
|
||||||
/* get_option Specifies and/or and clear options*/
|
/* get_option Specifies and/or and clear options*/
|
||||||
/* actual_flags_ptr Pointer to place the actual flags */
|
/* actual_flags_ptr Pointer to place the actual flags */
|
||||||
/* the service retrieved */
|
/* the service retrieved */
|
||||||
/* wait_option Suspension option */
|
/* wait_option Suspension option */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_GROUP_ERROR Invalid event flags group pointer */
|
/* TX_GROUP_ERROR Invalid event flags group pointer */
|
||||||
/* TX_PTR_ERROR Invalid actual flags pointer */
|
/* TX_PTR_ERROR Invalid actual flags pointer */
|
||||||
/* TX_WAIT_ERROR Invalid wait option */
|
/* TX_WAIT_ERROR Invalid wait option */
|
||||||
/* TX_OPTION_ERROR Invalid get option */
|
/* TX_OPTION_ERROR Invalid get option */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags, UINT get_option, ULONG *actual_flags_ptr, ULONG wait_option)
|
UINT _txe_event_flags_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG requested_flags, UINT get_option, ULONG *actual_flags_ptr, ULONG wait_option)
|
||||||
@@ -87,3 +90,4 @@ ALIGN_TYPE extra_parameters[3];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,53 +22,56 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_EVENT_FLAGS_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_event_flags_info_get PORTABLE C */
|
/* _txe_event_flags_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the event flag information get */
|
/* This function checks for errors in the event flag information get */
|
||||||
/* service. */
|
/* service. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* group_ptr Pointer to event flag group */
|
/* group_ptr Pointer to event flag group */
|
||||||
/* name Destination for the event flags */
|
/* name Destination for the event flags */
|
||||||
/* group name */
|
/* group name */
|
||||||
/* current_flags Current event flags */
|
/* current_flags Current event flags */
|
||||||
/* first_suspended Destination for pointer of first */
|
/* first_suspended Destination for pointer of first */
|
||||||
/* thread suspended on event flags */
|
/* thread suspended on event flags */
|
||||||
/* suspended_count Destination for suspended count */
|
/* suspended_count Destination for suspended count */
|
||||||
/* next_group Destination for pointer to next */
|
/* next_group Destination for pointer to next */
|
||||||
/* event flag group on the created */
|
/* event flag group on the created */
|
||||||
/* list */
|
/* list */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_GROUP_ERROR Invalid event flag group pointer */
|
/* TX_GROUP_ERROR Invalid event flag group pointer */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_event_flags_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR **name, ULONG *current_flags, TX_THREAD **first_suspended, ULONG *suspended_count, TX_EVENT_FLAGS_GROUP **next_group)
|
UINT _txe_event_flags_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, CHAR **name, ULONG *current_flags, TX_THREAD **first_suspended, ULONG *suspended_count, TX_EVENT_FLAGS_GROUP **next_group)
|
||||||
@@ -88,3 +91,4 @@ ALIGN_TYPE extra_parameters[4];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,52 +22,55 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_EVENT_FLAGS_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_event_flags_performance_info_get PORTABLE C */
|
/* _tx_event_flags_performance_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves performance information from the specified */
|
/* This function retrieves performance information from the specified */
|
||||||
/* event flag group. */
|
/* event flag group. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* group_ptr Pointer to event flag group */
|
/* group_ptr Pointer to event flag group */
|
||||||
/* sets Destination for the number of */
|
/* sets Destination for the number of */
|
||||||
/* event flag sets on this group */
|
/* event flag sets on this group */
|
||||||
/* gets Destination for the number of */
|
/* gets Destination for the number of */
|
||||||
/* event flag gets on this group */
|
/* event flag gets on this group */
|
||||||
/* suspensions Destination for the number of */
|
/* suspensions Destination for the number of */
|
||||||
/* event flag suspensions on this */
|
/* event flag suspensions on this */
|
||||||
/* group */
|
/* group */
|
||||||
/* timeouts Destination for number of timeouts*/
|
/* timeouts Destination for number of timeouts*/
|
||||||
/* on this event flag group */
|
/* on this event flag group */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_event_flags_performance_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG *sets, ULONG *gets, ULONG *suspensions, ULONG *timeouts)
|
UINT _tx_event_flags_performance_info_get(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG *sets, ULONG *gets, ULONG *suspensions, ULONG *timeouts)
|
||||||
@@ -86,3 +89,4 @@ ALIGN_TYPE extra_parameters[3];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,49 +22,52 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_EVENT_FLAGS_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_event_flags_performance_system_info_get PORTABLE C */
|
/* _tx_event_flags_performance_system_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves system event flag performance information. */
|
/* This function retrieves system event flag performance information. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* sets Destination for total number of */
|
/* sets Destination for total number of */
|
||||||
/* event flag sets */
|
/* event flag sets */
|
||||||
/* gets Destination for total number of */
|
/* gets Destination for total number of */
|
||||||
/* event flag gets */
|
/* event flag gets */
|
||||||
/* suspensions Destination for total number of */
|
/* suspensions Destination for total number of */
|
||||||
/* event flag suspensions */
|
/* event flag suspensions */
|
||||||
/* timeouts Destination for total number of */
|
/* timeouts Destination for total number of */
|
||||||
/* timeouts */
|
/* timeouts */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
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)
|
||||||
@@ -82,3 +85,4 @@ ALIGN_TYPE extra_parameters[2];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,48 +22,51 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_EVENT_FLAGS_SET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_event_flags_set PORTABLE C */
|
/* _txe_event_flags_set PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the set event flags function */
|
/* This function checks for errors in the set event flags function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* group_ptr Pointer to group control block */
|
/* group_ptr Pointer to group control block */
|
||||||
/* flags_to_set Event flags to set */
|
/* flags_to_set Event flags to set */
|
||||||
/* set_option Specified either AND or OR */
|
/* set_option Specified either AND or OR */
|
||||||
/* operation on the event flags */
|
/* operation on the event flags */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_GROUP_ERROR Invalid event flags group pointer */
|
/* TX_GROUP_ERROR Invalid event flags group pointer */
|
||||||
/* TX_OPTION_ERROR Invalid set option */
|
/* TX_OPTION_ERROR Invalid set option */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_event_flags_set(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG flags_to_set, UINT set_option)
|
UINT _txe_event_flags_set(TX_EVENT_FLAGS_GROUP *group_ptr, ULONG flags_to_set, UINT set_option)
|
||||||
@@ -77,3 +80,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_EVENT_FLAGS_SET_NOTIFY_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_event_flags_set_notify PORTABLE C */
|
/* _txe_event_flags_set_notify PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the event flags set notify */
|
/* This function checks for errors in the event flags set notify */
|
||||||
/* callback function call. */
|
/* callback function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* group_ptr Pointer to group control block*/
|
/* group_ptr Pointer to group control block*/
|
||||||
/* group_put_notify Application callback function */
|
/* group_put_notify Application callback function */
|
||||||
/* (TX_NULL disables notify) */
|
/* (TX_NULL disables notify) */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Service return status */
|
/* status Service return status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_event_flags_set_notify(TX_EVENT_FLAGS_GROUP *group_ptr, VOID (*events_set_notify)(TX_EVENT_FLAGS_GROUP *))
|
UINT _txe_event_flags_set_notify(TX_EVENT_FLAGS_GROUP *group_ptr, VOID (*events_set_notify)(TX_EVENT_FLAGS_GROUP *))
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -10,69 +10,72 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/** */
|
/** */
|
||||||
/** ThreadX Component */
|
/** ThreadX Component */
|
||||||
/** */
|
/** */
|
||||||
/** Module */
|
/** Module */
|
||||||
/** */
|
/** */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MODULE_APPLICATION_REQUEST_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* txm_module_application_request PORTABLE C */
|
/* txm_module_application_request PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function sends an application-specific request to the resident */
|
/* This function sends an application-specific request to the resident */
|
||||||
/* code. */
|
/* code. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* request Request ID (application defined) */
|
/* request Request ID (application defined) */
|
||||||
/* param_1 First parameter */
|
/* param_1 First parameter */
|
||||||
/* param_2 Second parameter */
|
/* param_2 Second parameter */
|
||||||
/* param_3 Third parameter */
|
/* param_3 Third parameter */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT txm_module_application_request(ULONG request, ALIGN_TYPE param_1, ALIGN_TYPE param_2, ALIGN_TYPE param_3)
|
UINT txm_module_application_request(ULONG request, ALIGN_TYPE param_1, ALIGN_TYPE param_2, ALIGN_TYPE param_3)
|
||||||
{
|
{
|
||||||
|
|
||||||
UINT return_value;
|
UINT return_value;
|
||||||
|
|
||||||
/* Call module manager dispatcher. */
|
/* Call module manager dispatcher. */
|
||||||
return_value = (UINT)(_txm_module_kernel_call_dispatcher)(TXM_APPLICATION_REQUEST_ID_BASE+request, param_1, param_2, param_3);
|
return_value = (UINT)(_txm_module_kernel_call_dispatcher)(TXM_APPLICATION_REQUEST_ID_BASE+request, param_1, param_2, param_3);
|
||||||
|
|
||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -10,15 +10,15 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/** */
|
/** */
|
||||||
/** ThreadX Component */
|
/** ThreadX Component */
|
||||||
/** */
|
/** */
|
||||||
/** Module */
|
/** Module */
|
||||||
/** */
|
/** */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#ifndef TXM_MODULE
|
#ifndef TXM_MODULE
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
@@ -35,54 +35,56 @@
|
|||||||
#include "tx_queue.h"
|
#include "tx_queue.h"
|
||||||
|
|
||||||
|
|
||||||
/* Define the global module entry pointer from the start thread of the module.
|
/* Define the global module entry pointer from the start thread of the module.
|
||||||
This structure contains the pointer to the request queue as well as the
|
This structure contains the pointer to the request queue as well as the
|
||||||
pointer to the callback response queue. */
|
pointer to the callback response queue. */
|
||||||
|
|
||||||
extern TXM_MODULE_THREAD_ENTRY_INFO *_txm_module_entry_info;
|
extern TXM_MODULE_THREAD_ENTRY_INFO *_txm_module_entry_info;
|
||||||
|
|
||||||
|
/**************************************************************************/
|
||||||
/**************************************************************************/
|
/* */
|
||||||
/* */
|
/* FUNCTION RELEASE */
|
||||||
/* FUNCTION RELEASE */
|
/* */
|
||||||
/* */
|
/* _txm_module_callback_request_thread_entry PORTABLE C */
|
||||||
/* _txm_module_callback_request_thread_entry PORTABLE C */
|
/* 6.1.10 */
|
||||||
/* 6.1 */
|
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function processes all module callback requests, transferred */
|
/* This function processes all module callback requests, transferred */
|
||||||
/* by the resident code via the callback queue. When the callback is */
|
/* by the resident code via the callback queue. When the callback is */
|
||||||
/* complete, the response is sent back to the resident code to */
|
/* complete, the response is sent back to the resident code to */
|
||||||
/* acknowledge it. */
|
/* acknowledge it. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* id Module thread ID */
|
/* id Module thread ID */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* None */
|
/* None */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* tx_queue_receive Receive callback request */
|
/* tx_queue_receive Receive callback request */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Initial thread stack frame */
|
/* Initial thread stack frame */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
VOID _txm_module_callback_request_thread_entry(ULONG id)
|
VOID _txm_module_callback_request_thread_entry(ULONG id)
|
||||||
{
|
{
|
||||||
|
|
||||||
TX_QUEUE *request_queue;
|
TX_QUEUE *request_queue;
|
||||||
@@ -95,6 +97,8 @@ VOID (*queue_send_notify)(TX_QUEUE *);
|
|||||||
VOID (*thread_entry_exit_notify)(TX_THREAD *, UINT);
|
VOID (*thread_entry_exit_notify)(TX_THREAD *, UINT);
|
||||||
UINT status;
|
UINT status;
|
||||||
|
|
||||||
|
/* Disable warning of parameter not used. */
|
||||||
|
TX_PARAMETER_NOT_USED(id);
|
||||||
|
|
||||||
/* Pickup pointer to the request queue. */
|
/* Pickup pointer to the request queue. */
|
||||||
request_queue = _txm_module_entry_info -> txm_module_thread_entry_info_callback_request_queue;
|
request_queue = _txm_module_entry_info -> txm_module_thread_entry_info_callback_request_queue;
|
||||||
@@ -102,7 +106,7 @@ UINT status;
|
|||||||
/* Loop to process callback messages from the module manager. */
|
/* Loop to process callback messages from the module manager. */
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Wait for the callback request for the module. */
|
/* Wait for the callback request for the module. */
|
||||||
status = _txe_queue_receive(request_queue, (VOID *) &callback_message, TX_WAIT_FOREVER);
|
status = _txe_queue_receive(request_queue, (VOID *) &callback_message, TX_WAIT_FOREVER);
|
||||||
|
|
||||||
@@ -113,21 +117,21 @@ UINT status;
|
|||||||
/* This should not happen - get out of the loop. */
|
/* This should not happen - get out of the loop. */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pickup the activation count in the message. */
|
/* Pickup the activation count in the message. */
|
||||||
activation_count = callback_message.txm_module_callback_message_activation_count;
|
activation_count = callback_message.txm_module_callback_message_activation_count;
|
||||||
|
|
||||||
/* Loop to call the callback function the correct number of times. */
|
/* Loop to call the callback function the correct number of times. */
|
||||||
while (activation_count)
|
while (activation_count)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Decrement the activation count. */
|
/* Decrement the activation count. */
|
||||||
activation_count--;
|
activation_count--;
|
||||||
|
|
||||||
/* Now dispatch the callback function. */
|
/* Now dispatch the callback function. */
|
||||||
switch (callback_message.txm_module_callback_message_type)
|
switch (callback_message.txm_module_callback_message_type)
|
||||||
{
|
{
|
||||||
|
|
||||||
case TXM_TIMER_CALLBACK:
|
case TXM_TIMER_CALLBACK:
|
||||||
|
|
||||||
/* Setup timer callback pointer. */
|
/* Setup timer callback pointer. */
|
||||||
@@ -147,7 +151,7 @@ UINT status;
|
|||||||
(events_set_notify)((TX_EVENT_FLAGS_GROUP *) callback_message.txm_module_callback_message_param_1);
|
(events_set_notify)((TX_EVENT_FLAGS_GROUP *) callback_message.txm_module_callback_message_param_1);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TXM_QUEUE_SEND_CALLBACK:
|
case TXM_QUEUE_SEND_CALLBACK:
|
||||||
|
|
||||||
/* Setup queue send callback pointer. */
|
/* Setup queue send callback pointer. */
|
||||||
@@ -175,70 +179,68 @@ UINT status;
|
|||||||
|
|
||||||
/* Call thread entry/exit notify callback. */
|
/* Call thread entry/exit notify callback. */
|
||||||
(thread_entry_exit_notify)((TX_THREAD *) callback_message.txm_module_callback_message_param_1, (UINT) callback_message.txm_module_callback_message_param_2);
|
(thread_entry_exit_notify)((TX_THREAD *) callback_message.txm_module_callback_message_param_1, (UINT) callback_message.txm_module_callback_message_param_2);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_NETX
|
#ifdef TXM_MODULE_ENABLE_NETX
|
||||||
|
|
||||||
/* Determine if there is a NetX callback. */
|
/* Determine if there is a NetX callback. */
|
||||||
if ((callback_message.txm_module_callback_message_type >= TXM_NETX_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_NETX_CALLBACKS_END))
|
if ((callback_message.txm_module_callback_message_type >= TXM_NETX_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_NETX_CALLBACKS_END))
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Call the NetX module callback function. */
|
/* Call the NetX module callback function. */
|
||||||
_txm_module_netx_callback_request(&callback_message);
|
_txm_module_netx_callback_request(&callback_message);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_NETXDUO
|
#ifdef TXM_MODULE_ENABLE_NETXDUO
|
||||||
|
|
||||||
/* Determine if there is a NetX Duo callback. */
|
/* Determine if there is a NetX Duo callback. */
|
||||||
if ((callback_message.txm_module_callback_message_type >= TXM_NETXDUO_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_NETXDUO_CALLBACKS_END))
|
if ((callback_message.txm_module_callback_message_type >= TXM_NETXDUO_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_NETXDUO_CALLBACKS_END))
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Call the NetX Duo module callback function. */
|
/* Call the NetX Duo module callback function. */
|
||||||
_txm_module_netxduo_callback_request(&callback_message);
|
_txm_module_netxduo_callback_request(&callback_message);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_FILEX
|
#ifdef TXM_MODULE_ENABLE_FILEX
|
||||||
|
|
||||||
/* Determine if there is a FileX callback. */
|
/* Determine if there is a FileX callback. */
|
||||||
if ((callback_message.txm_module_callback_message_type >= TXM_FILEX_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_FILEX_CALLBACKS_END))
|
if ((callback_message.txm_module_callback_message_type >= TXM_FILEX_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_FILEX_CALLBACKS_END))
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Call the FileX module callback function. */
|
/* Call the FileX module callback function. */
|
||||||
_txm_module_filex_callback_request(&callback_message);
|
_txm_module_filex_callback_request(&callback_message);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_GUIX
|
#ifdef TXM_MODULE_ENABLE_GUIX
|
||||||
|
|
||||||
/* Determine if there is a GUIX callback. */
|
/* Determine if there is a GUIX callback. */
|
||||||
if ((callback_message.txm_module_callback_message_type >= TXM_GUIX_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_GUIX_CALLBACKS_END))
|
if ((callback_message.txm_module_callback_message_type >= TXM_GUIX_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_GUIX_CALLBACKS_END))
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Call the GUIX module callback function. */
|
/* Call the GUIX module callback function. */
|
||||||
_txm_module_guix_callback_request(&callback_message);
|
_txm_module_guix_callback_request(&callback_message);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TXM_MODULE_ENABLE_USBX
|
#ifdef TXM_MODULE_ENABLE_USBX
|
||||||
|
|
||||||
/* Determine if there is a USBX callback. */
|
/* Determine if there is a USBX callback. */
|
||||||
if ((callback_message.txm_module_callback_message_type >= TXM_USBX_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_USBX_CALLBACKS_END))
|
if ((callback_message.txm_module_callback_message_type >= TXM_USBX_CALLBACKS_START) && (callback_message.txm_module_callback_message_type < TXM_USBX_CALLBACKS_END))
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Call the USBX callback function. */
|
/* Call the USBX callback function. */
|
||||||
_txm_module_usbx_callback_request(&callback_message);
|
_txm_module_usbx_callback_request(&callback_message);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,29 +22,29 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MODULE_OBJECT_ALLOCATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_manager_object_allocate PORTABLE C */
|
/* _txm_module_manager_object_allocate PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function allocates memory for an object from the memory pool */
|
/* This function allocates memory for an object from the memory pool */
|
||||||
/* supplied to txm_module_manager_initialize. */
|
/* supplied to txm_module_manager_initialize. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* object_ptr Destination of object pointer on */
|
/* object_ptr Destination of object pointer on */
|
||||||
/* successful allocation */
|
/* successful allocation */
|
||||||
/* object_size Size in bytes of the object to be */
|
/* object_size Size in bytes of the object to be */
|
||||||
/* allocated */
|
/* allocated */
|
||||||
/* module_instance The module instance that the */
|
/* module_instance The module instance that the */
|
||||||
/* object belongs to */
|
/* object belongs to */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
@@ -63,7 +63,10 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txm_module_object_allocate(VOID **object_ptr, ULONG object_size)
|
UINT _txm_module_object_allocate(VOID **object_ptr, ULONG object_size)
|
||||||
@@ -77,3 +80,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,24 +22,24 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MODULE_OBJECT_DEALLOCATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_manager_object_deallocate PORTABLE C */
|
/* _txm_module_manager_object_deallocate PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function deallocates a previously allocated object. */
|
/* This function deallocates a previously allocated object. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* object_ptr Object pointer to deallocate */
|
/* object_ptr Object pointer to deallocate */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
@@ -57,7 +57,10 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txm_module_object_deallocate(VOID *object_ptr)
|
UINT _txm_module_object_deallocate(VOID *object_ptr)
|
||||||
@@ -71,3 +74,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,13 +22,13 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MODULE_OBJECT_POINTER_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_manager_object_pointer_get PORTABLE C */
|
/* _txm_module_manager_object_pointer_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -73,7 +73,10 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txm_module_object_pointer_get(UINT object_type, CHAR *name, VOID **object_ptr)
|
UINT _txm_module_object_pointer_get(UINT object_type, CHAR *name, VOID **object_ptr)
|
||||||
@@ -87,3 +90,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,13 +22,13 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MODULE_OBJECT_POINTER_GET_EXTENDED_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_manager_object_pointer_get_extended PORTABLE C */
|
/* _txm_module_manager_object_pointer_get_extended PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
@@ -76,7 +76,10 @@
|
|||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txm_module_object_pointer_get_extended(UINT object_type, CHAR *name, UINT name_length, VOID **object_ptr)
|
UINT _txm_module_object_pointer_get_extended(UINT object_type, CHAR *name, UINT name_length, VOID **object_ptr)
|
||||||
@@ -94,3 +97,4 @@ ALIGN_TYPE extra_parameters[2];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,50 +22,53 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_SYSTEM_SUSPEND_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_system_suspend PORTABLE C */
|
/* _tx_thread_system_suspend PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function suspends the specified thread and changes the thread */
|
/* This function suspends the specified thread and changes the thread */
|
||||||
/* state to the value specified. Note: delayed suspension processing */
|
/* state to the value specified. Note: delayed suspension processing */
|
||||||
/* is handled outside of this routine. */
|
/* is handled outside of this routine. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Pointer to thread to suspend */
|
/* thread_ptr Pointer to thread to suspend */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* None */
|
/* None */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_priority_change Thread priority change */
|
/* _tx_thread_priority_change Thread priority change */
|
||||||
/* _tx_thread_shell_entry Thread shell function */
|
/* _tx_thread_shell_entry Thread shell function */
|
||||||
/* _tx_thread_sleep Thread sleep */
|
/* _tx_thread_sleep Thread sleep */
|
||||||
/* _tx_thread_suspend Application thread suspend */
|
/* _tx_thread_suspend Application thread suspend */
|
||||||
/* _tx_thread_terminate Thread terminate */
|
/* _tx_thread_terminate Thread terminate */
|
||||||
/* Other ThreadX Components */
|
/* Other ThreadX Components */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txm_module_thread_system_suspend(TX_THREAD *thread_ptr)
|
UINT _txm_module_thread_system_suspend(TX_THREAD *thread_ptr)
|
||||||
@@ -79,3 +82,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,49 +22,52 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MUTEX_CREATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_mutex_create PORTABLE C */
|
/* _txe_mutex_create PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the create mutex function */
|
/* This function checks for errors in the create mutex function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* mutex_ptr Pointer to mutex control block */
|
/* mutex_ptr Pointer to mutex control block */
|
||||||
/* name_ptr Pointer to mutex name */
|
/* name_ptr Pointer to mutex name */
|
||||||
/* inherit Initial mutex count */
|
/* inherit Initial mutex count */
|
||||||
/* mutex_control_block_size Size of mutex control block */
|
/* mutex_control_block_size Size of mutex control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* TX_INHERIT_ERROR Invalid inherit option */
|
/* TX_INHERIT_ERROR Invalid inherit option */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_mutex_create(TX_MUTEX *mutex_ptr, CHAR *name_ptr, UINT inherit, UINT mutex_control_block_size)
|
UINT _txe_mutex_create(TX_MUTEX *mutex_ptr, CHAR *name_ptr, UINT inherit, UINT mutex_control_block_size)
|
||||||
@@ -82,3 +85,4 @@ ALIGN_TYPE extra_parameters[2];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MUTEX_DELETE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_mutex_delete PORTABLE C */
|
/* _txe_mutex_delete PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the mutex delete function */
|
/* This function checks for errors in the mutex delete function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* mutex_ptr Pointer to mutex control block */
|
/* mutex_ptr Pointer to mutex control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_mutex_delete(TX_MUTEX *mutex_ptr)
|
UINT _txe_mutex_delete(TX_MUTEX *mutex_ptr)
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MUTEX_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_mutex_get PORTABLE C */
|
/* _txe_mutex_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the mutex get function call. */
|
/* This function checks for errors in the mutex get function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* mutex_ptr Pointer to mutex control block */
|
/* mutex_ptr Pointer to mutex control block */
|
||||||
/* wait_option Suspension option */
|
/* wait_option Suspension option */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
||||||
/* TX_WAIT_ERROR Invalid wait option */
|
/* TX_WAIT_ERROR Invalid wait option */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_mutex_get(TX_MUTEX *mutex_ptr, ULONG wait_option)
|
UINT _txe_mutex_get(TX_MUTEX *mutex_ptr, ULONG wait_option)
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,53 +22,56 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MUTEX_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_mutex_info_get PORTABLE C */
|
/* _txe_mutex_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the mutex information get */
|
/* This function checks for errors in the mutex information get */
|
||||||
/* service. */
|
/* service. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* mutex_ptr Pointer to mutex control block */
|
/* mutex_ptr Pointer to mutex control block */
|
||||||
/* name Destination for the mutex name */
|
/* name Destination for the mutex name */
|
||||||
/* count Destination for the owner count */
|
/* count Destination for the owner count */
|
||||||
/* owner Destination for the owner's */
|
/* owner Destination for the owner's */
|
||||||
/* thread control block pointer */
|
/* thread control block pointer */
|
||||||
/* first_suspended Destination for pointer of first */
|
/* first_suspended Destination for pointer of first */
|
||||||
/* thread suspended on the mutex */
|
/* thread suspended on the mutex */
|
||||||
/* suspended_count Destination for suspended count */
|
/* suspended_count Destination for suspended count */
|
||||||
/* next_mutex Destination for pointer to next */
|
/* next_mutex Destination for pointer to next */
|
||||||
/* mutex on the created list */
|
/* mutex on the created list */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_mutex_info_get(TX_MUTEX *mutex_ptr, CHAR **name, ULONG *count, TX_THREAD **owner, TX_THREAD **first_suspended, ULONG *suspended_count, TX_MUTEX **next_mutex)
|
UINT _txe_mutex_info_get(TX_MUTEX *mutex_ptr, CHAR **name, ULONG *count, TX_THREAD **owner, TX_THREAD **first_suspended, ULONG *suspended_count, TX_MUTEX **next_mutex)
|
||||||
@@ -89,3 +92,4 @@ ALIGN_TYPE extra_parameters[5];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,55 +22,58 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MUTEX_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_mutex_performance_info_get PORTABLE C */
|
/* _tx_mutex_performance_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves performance information from the specified */
|
/* This function retrieves performance information from the specified */
|
||||||
/* mutex. */
|
/* mutex. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* mutex_ptr Pointer to mutex control block */
|
/* mutex_ptr Pointer to mutex control block */
|
||||||
/* puts Destination for the number of */
|
/* puts Destination for the number of */
|
||||||
/* puts on to this mutex */
|
/* puts on to this mutex */
|
||||||
/* gets Destination for the number of */
|
/* gets Destination for the number of */
|
||||||
/* gets on this mutex */
|
/* gets on this mutex */
|
||||||
/* suspensions Destination for the number of */
|
/* suspensions Destination for the number of */
|
||||||
/* suspensions on this mutex */
|
/* suspensions on this mutex */
|
||||||
/* timeouts Destination for number of timeouts*/
|
/* timeouts Destination for number of timeouts*/
|
||||||
/* on this mutex */
|
/* on this mutex */
|
||||||
/* inversions Destination for number of priority*/
|
/* inversions Destination for number of priority*/
|
||||||
/* inversions on this mutex */
|
/* inversions on this mutex */
|
||||||
/* inheritances Destination for number of priority*/
|
/* inheritances Destination for number of priority*/
|
||||||
/* inheritances on this mutex */
|
/* inheritances on this mutex */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_mutex_performance_info_get(TX_MUTEX *mutex_ptr, ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts, ULONG *inversions, ULONG *inheritances)
|
UINT _tx_mutex_performance_info_get(TX_MUTEX *mutex_ptr, ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts, ULONG *inversions, ULONG *inheritances)
|
||||||
@@ -91,3 +94,4 @@ ALIGN_TYPE extra_parameters[5];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,53 +22,56 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MUTEX_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_mutex_performance_system_info_get PORTABLE C */
|
/* _tx_mutex_performance_system_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves system mutex performance information. */
|
/* This function retrieves system mutex performance information. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* puts Destination for total number of */
|
/* puts Destination for total number of */
|
||||||
/* mutex puts */
|
/* mutex puts */
|
||||||
/* gets Destination for total number of */
|
/* gets Destination for total number of */
|
||||||
/* mutex gets */
|
/* mutex gets */
|
||||||
/* suspensions Destination for total number of */
|
/* suspensions Destination for total number of */
|
||||||
/* mutex suspensions */
|
/* mutex suspensions */
|
||||||
/* timeouts Destination for total number of */
|
/* timeouts Destination for total number of */
|
||||||
/* mutex timeouts */
|
/* mutex timeouts */
|
||||||
/* inversions Destination for total number of */
|
/* inversions Destination for total number of */
|
||||||
/* mutex priority inversions */
|
/* mutex priority inversions */
|
||||||
/* inheritances Destination for total number of */
|
/* inheritances Destination for total number of */
|
||||||
/* mutex priority inheritances */
|
/* mutex priority inheritances */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_mutex_performance_system_info_get(ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts, ULONG *inversions, ULONG *inheritances)
|
UINT _tx_mutex_performance_system_info_get(ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts, ULONG *inversions, ULONG *inheritances)
|
||||||
@@ -88,3 +91,4 @@ ALIGN_TYPE extra_parameters[4];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,42 +22,45 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MUTEX_PRIORITIZE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_mutex_prioritize PORTABLE C */
|
/* _tx_mutex_prioritize PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the mutex prioritize call. */
|
/* This function checks for errors in the mutex prioritize call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* mutex_ptr Pointer to mutex control block */
|
/* mutex_ptr Pointer to mutex control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_mutex_prioritize(TX_MUTEX *mutex_ptr)
|
UINT _txe_mutex_prioritize(TX_MUTEX *mutex_ptr)
|
||||||
@@ -71,3 +74,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,43 +22,46 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_MUTEX_PUT_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_mutex_put PORTABLE C */
|
/* _txe_mutex_put PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the mutex put function call. */
|
/* This function checks for errors in the mutex put function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* mutex_ptr Pointer to mutex control block */
|
/* mutex_ptr Pointer to mutex control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
/* TX_MUTEX_ERROR Invalid mutex pointer */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_mutex_put(TX_MUTEX *mutex_ptr)
|
UINT _txe_mutex_put(TX_MUTEX *mutex_ptr)
|
||||||
@@ -72,3 +75,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,50 +22,53 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_CREATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_create PORTABLE C */
|
/* _txe_queue_create PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue create function call. */
|
/* This function checks for errors in the queue create function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* name_ptr Pointer to queue name */
|
/* name_ptr Pointer to queue name */
|
||||||
/* message_size Size of each queue message */
|
/* message_size Size of each queue message */
|
||||||
/* queue_start Starting address of the queue area*/
|
/* queue_start Starting address of the queue area*/
|
||||||
/* queue_size Number of bytes in the queue */
|
/* queue_size Number of bytes in the queue */
|
||||||
/* queue_control_block_size Size of queue control block */
|
/* queue_control_block_size Size of queue control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_QUEUE_ERROR Invalid queue pointer */
|
/* TX_QUEUE_ERROR Invalid queue pointer */
|
||||||
/* TX_PTR_ERROR Invalid starting address of queue */
|
/* TX_PTR_ERROR Invalid starting address of queue */
|
||||||
/* TX_SIZE_ERROR Invalid message queue size */
|
/* TX_SIZE_ERROR Invalid message queue size */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_create(TX_QUEUE *queue_ptr, CHAR *name_ptr, UINT message_size, VOID *queue_start, ULONG queue_size, UINT queue_control_block_size)
|
UINT _txe_queue_create(TX_QUEUE *queue_ptr, CHAR *name_ptr, UINT message_size, VOID *queue_start, ULONG queue_size, UINT queue_control_block_size)
|
||||||
@@ -85,3 +88,4 @@ ALIGN_TYPE extra_parameters[4];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,44 +22,47 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_DELETE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_delete PORTABLE C */
|
/* _txe_queue_delete PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue delete function call. */
|
/* This function checks for errors in the queue delete function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_QUEUE_ERROR Invalid queue pointer */
|
/* TX_QUEUE_ERROR Invalid queue pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_delete(TX_QUEUE *queue_ptr)
|
UINT _txe_queue_delete(TX_QUEUE *queue_ptr)
|
||||||
@@ -73,3 +76,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,44 +22,47 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_FLUSH_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_flush PORTABLE C */
|
/* _txe_queue_flush PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue flush function call. */
|
/* This function checks for errors in the queue flush function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_QUEUE_ERROR Invalid queue pointer */
|
/* TX_QUEUE_ERROR Invalid queue pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_flush(TX_QUEUE *queue_ptr)
|
UINT _txe_queue_flush(TX_QUEUE *queue_ptr)
|
||||||
@@ -73,3 +76,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,47 +22,50 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_FRONT_SEND_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_front_send PORTABLE C */
|
/* _txe_queue_front_send PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue send function call. */
|
/* This function checks for errors in the queue send function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* source_ptr Pointer to message source */
|
/* source_ptr Pointer to message source */
|
||||||
/* wait_option Suspension option */
|
/* wait_option Suspension option */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_QUEUE_ERROR Invalid queue pointer */
|
/* TX_QUEUE_ERROR Invalid queue pointer */
|
||||||
/* TX_PTR_ERROR Invalid source pointer - NULL */
|
/* TX_PTR_ERROR Invalid source pointer - NULL */
|
||||||
/* TX_WAIT_ERROR Invalid wait option - non thread */
|
/* TX_WAIT_ERROR Invalid wait option - non thread */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_front_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option)
|
UINT _txe_queue_front_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option)
|
||||||
@@ -76,3 +79,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,52 +22,55 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_info_get PORTABLE C */
|
/* _txe_queue_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue information get */
|
/* This function checks for errors in the queue information get */
|
||||||
/* service. */
|
/* service. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* name Destination for the queue name */
|
/* name Destination for the queue name */
|
||||||
/* enqueued Destination for enqueued count */
|
/* enqueued Destination for enqueued count */
|
||||||
/* available_storage Destination for available storage */
|
/* available_storage Destination for available storage */
|
||||||
/* first_suspended Destination for pointer of first */
|
/* first_suspended Destination for pointer of first */
|
||||||
/* thread suspended on this queue */
|
/* thread suspended on this queue */
|
||||||
/* suspended_count Destination for suspended count */
|
/* suspended_count Destination for suspended count */
|
||||||
/* next_queue Destination for pointer to next */
|
/* next_queue Destination for pointer to next */
|
||||||
/* queue on the created list */
|
/* queue on the created list */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_QUEUE_ERROR Invalid queue pointer */
|
/* TX_QUEUE_ERROR Invalid queue pointer */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_info_get(TX_QUEUE *queue_ptr, CHAR **name, ULONG *enqueued, ULONG *available_storage, TX_THREAD **first_suspended, ULONG *suspended_count, TX_QUEUE **next_queue)
|
UINT _txe_queue_info_get(TX_QUEUE *queue_ptr, CHAR **name, ULONG *enqueued, ULONG *available_storage, TX_THREAD **first_suspended, ULONG *suspended_count, TX_QUEUE **next_queue)
|
||||||
@@ -88,3 +91,4 @@ ALIGN_TYPE extra_parameters[5];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,53 +22,56 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_queue_performance_info_get PORTABLE C */
|
/* _tx_queue_performance_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves performance information from the specified */
|
/* This function retrieves performance information from the specified */
|
||||||
/* queue. */
|
/* queue. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* messages_sent Destination for messages sent */
|
/* messages_sent Destination for messages sent */
|
||||||
/* messages_received Destination for messages received */
|
/* messages_received Destination for messages received */
|
||||||
/* empty_suspensions Destination for number of empty */
|
/* empty_suspensions Destination for number of empty */
|
||||||
/* queue suspensions */
|
/* queue suspensions */
|
||||||
/* full_suspensions Destination for number of full */
|
/* full_suspensions Destination for number of full */
|
||||||
/* queue suspensions */
|
/* queue suspensions */
|
||||||
/* full_errors Destination for queue full errors */
|
/* full_errors Destination for queue full errors */
|
||||||
/* returned - no suspension */
|
/* returned - no suspension */
|
||||||
/* timeouts Destination for number of timeouts*/
|
/* timeouts Destination for number of timeouts*/
|
||||||
/* on this queue */
|
/* on this queue */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_queue_performance_info_get(TX_QUEUE *queue_ptr, ULONG *messages_sent, ULONG *messages_received, ULONG *empty_suspensions, ULONG *full_suspensions, ULONG *full_errors, ULONG *timeouts)
|
UINT _tx_queue_performance_info_get(TX_QUEUE *queue_ptr, ULONG *messages_sent, ULONG *messages_received, ULONG *empty_suspensions, ULONG *full_suspensions, ULONG *full_errors, ULONG *timeouts)
|
||||||
@@ -89,3 +92,4 @@ ALIGN_TYPE extra_parameters[5];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,53 +22,56 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_queue_performance_system_info_get PORTABLE C */
|
/* _tx_queue_performance_system_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves queue system performance information. */
|
/* This function retrieves queue system performance information. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* messages_sent Destination for total messages */
|
/* messages_sent Destination for total messages */
|
||||||
/* sent */
|
/* sent */
|
||||||
/* messages_received Destination for total messages */
|
/* messages_received Destination for total messages */
|
||||||
/* received */
|
/* received */
|
||||||
/* empty_suspensions Destination for total empty */
|
/* empty_suspensions Destination for total empty */
|
||||||
/* queue suspensions */
|
/* queue suspensions */
|
||||||
/* full_suspensions Destination for total full */
|
/* full_suspensions Destination for total full */
|
||||||
/* queue suspensions */
|
/* queue suspensions */
|
||||||
/* full_errors Destination for total queue full */
|
/* full_errors Destination for total queue full */
|
||||||
/* errors returned - no suspension */
|
/* errors returned - no suspension */
|
||||||
/* timeouts Destination for total number of */
|
/* timeouts Destination for total number of */
|
||||||
/* timeouts */
|
/* timeouts */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_queue_performance_system_info_get(ULONG *messages_sent, ULONG *messages_received, ULONG *empty_suspensions, ULONG *full_suspensions, ULONG *full_errors, ULONG *timeouts)
|
UINT _tx_queue_performance_system_info_get(ULONG *messages_sent, ULONG *messages_received, ULONG *empty_suspensions, ULONG *full_suspensions, ULONG *full_errors, ULONG *timeouts)
|
||||||
@@ -88,3 +91,4 @@ ALIGN_TYPE extra_parameters[4];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,42 +22,45 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_PRIORITIZE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_prioritize PORTABLE C */
|
/* _txe_queue_prioritize PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue prioritize call. */
|
/* This function checks for errors in the queue prioritize call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_prioritize(TX_QUEUE *queue_ptr)
|
UINT _txe_queue_prioritize(TX_QUEUE *queue_ptr)
|
||||||
@@ -71,3 +74,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,49 +22,52 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_RECEIVE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_receive PORTABLE C */
|
/* _txe_queue_receive PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue receive function call. */
|
/* This function checks for errors in the queue receive function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* destination_ptr Pointer to message destination */
|
/* destination_ptr Pointer to message destination */
|
||||||
/* **** MUST BE LARGE ENOUGH TO */
|
/* **** MUST BE LARGE ENOUGH TO */
|
||||||
/* HOLD MESSAGE **** */
|
/* HOLD MESSAGE **** */
|
||||||
/* wait_option Suspension option */
|
/* wait_option Suspension option */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_QUEUE_ERROR Invalid queue pointer */
|
/* TX_QUEUE_ERROR Invalid queue pointer */
|
||||||
/* TX_PTR_ERROR Invalid destination pointer (NULL)*/
|
/* TX_PTR_ERROR Invalid destination pointer (NULL)*/
|
||||||
/* TX_WAIT_ERROR Invalid wait option */
|
/* TX_WAIT_ERROR Invalid wait option */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_receive(TX_QUEUE *queue_ptr, VOID *destination_ptr, ULONG wait_option)
|
UINT _txe_queue_receive(TX_QUEUE *queue_ptr, VOID *destination_ptr, ULONG wait_option)
|
||||||
@@ -78,3 +81,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,47 +22,50 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_SEND_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_send PORTABLE C */
|
/* _txe_queue_send PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue send function call. */
|
/* This function checks for errors in the queue send function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block */
|
/* queue_ptr Pointer to queue control block */
|
||||||
/* source_ptr Pointer to message source */
|
/* source_ptr Pointer to message source */
|
||||||
/* wait_option Suspension option */
|
/* wait_option Suspension option */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_QUEUE_ERROR Invalid queue pointer */
|
/* TX_QUEUE_ERROR Invalid queue pointer */
|
||||||
/* TX_PTR_ERROR Invalid source pointer - NULL */
|
/* TX_PTR_ERROR Invalid source pointer - NULL */
|
||||||
/* TX_WAIT_ERROR Invalid wait option */
|
/* TX_WAIT_ERROR Invalid wait option */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option)
|
UINT _txe_queue_send(TX_QUEUE *queue_ptr, VOID *source_ptr, ULONG wait_option)
|
||||||
@@ -76,3 +79,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_QUEUE_SEND_NOTIFY_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_queue_send_notify PORTABLE C */
|
/* _txe_queue_send_notify PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the queue send notify */
|
/* This function checks for errors in the queue send notify */
|
||||||
/* callback function call. */
|
/* callback function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* queue_ptr Pointer to queue control block*/
|
/* queue_ptr Pointer to queue control block*/
|
||||||
/* queue_send_notify Application callback function */
|
/* queue_send_notify Application callback function */
|
||||||
/* (TX_NULL disables notify) */
|
/* (TX_NULL disables notify) */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_queue_send_notify(TX_QUEUE *queue_ptr, VOID (*queue_send_notify)(TX_QUEUE *notify_queue_ptr))
|
UINT _txe_queue_send_notify(TX_QUEUE *queue_ptr, VOID (*queue_send_notify)(TX_QUEUE *notify_queue_ptr))
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,46 +22,49 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_CEILING_PUT_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_semaphore_ceiling_put PORTABLE C */
|
/* _txe_semaphore_ceiling_put PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the semaphore ceiling put */
|
/* This function checks for errors in the semaphore ceiling put */
|
||||||
/* function call. */
|
/* function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore */
|
/* semaphore_ptr Pointer to semaphore */
|
||||||
/* ceiling Maximum value of semaphore */
|
/* ceiling Maximum value of semaphore */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
||||||
/* TX_INVALID_CEILING Invalid semaphore ceiling */
|
/* TX_INVALID_CEILING Invalid semaphore ceiling */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_semaphore_ceiling_put(TX_SEMAPHORE *semaphore_ptr, ULONG ceiling)
|
UINT _txe_semaphore_ceiling_put(TX_SEMAPHORE *semaphore_ptr, ULONG ceiling)
|
||||||
@@ -75,3 +78,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,48 +22,51 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_CREATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_semaphore_create PORTABLE C */
|
/* _txe_semaphore_create PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the create semaphore function */
|
/* This function checks for errors in the create semaphore function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore control block*/
|
/* semaphore_ptr Pointer to semaphore control block*/
|
||||||
/* name_ptr Pointer to semaphore name */
|
/* name_ptr Pointer to semaphore name */
|
||||||
/* initial_count Initial semaphore count */
|
/* initial_count Initial semaphore count */
|
||||||
/* semaphore_control_block_size Size of semaphore control block */
|
/* semaphore_control_block_size Size of semaphore control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_semaphore_create(TX_SEMAPHORE *semaphore_ptr, CHAR *name_ptr, ULONG initial_count, UINT semaphore_control_block_size)
|
UINT _txe_semaphore_create(TX_SEMAPHORE *semaphore_ptr, CHAR *name_ptr, ULONG initial_count, UINT semaphore_control_block_size)
|
||||||
@@ -81,3 +84,4 @@ ALIGN_TYPE extra_parameters[2];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_DELETE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_semaphore_delete PORTABLE C */
|
/* _txe_semaphore_delete PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the semaphore delete function */
|
/* This function checks for errors in the semaphore delete function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore control block*/
|
/* semaphore_ptr Pointer to semaphore control block*/
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of this function */
|
/* TX_CALLER_ERROR Invalid caller of this function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_semaphore_delete(TX_SEMAPHORE *semaphore_ptr)
|
UINT _txe_semaphore_delete(TX_SEMAPHORE *semaphore_ptr)
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_semaphore_get PORTABLE C */
|
/* _txe_semaphore_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the semaphore get function call. */
|
/* This function checks for errors in the semaphore get function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore control block*/
|
/* semaphore_ptr Pointer to semaphore control block*/
|
||||||
/* wait_option Suspension option */
|
/* wait_option Suspension option */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
||||||
/* TX_WAIT_ERROR Invalid wait option */
|
/* TX_WAIT_ERROR Invalid wait option */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_semaphore_get(TX_SEMAPHORE *semaphore_ptr, ULONG wait_option)
|
UINT _txe_semaphore_get(TX_SEMAPHORE *semaphore_ptr, ULONG wait_option)
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,52 +22,55 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_semaphore_info_get PORTABLE C */
|
/* _txe_semaphore_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the semaphore information get */
|
/* This function checks for errors in the semaphore information get */
|
||||||
/* service. */
|
/* service. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore control block*/
|
/* semaphore_ptr Pointer to semaphore control block*/
|
||||||
/* name Destination for the semaphore name*/
|
/* name Destination for the semaphore name*/
|
||||||
/* current_value Destination for current value of */
|
/* current_value Destination for current value of */
|
||||||
/* the semaphore */
|
/* the semaphore */
|
||||||
/* first_suspended Destination for pointer of first */
|
/* first_suspended Destination for pointer of first */
|
||||||
/* thread suspended on semaphore */
|
/* thread suspended on semaphore */
|
||||||
/* suspended_count Destination for suspended count */
|
/* suspended_count Destination for suspended count */
|
||||||
/* next_semaphore Destination for pointer to next */
|
/* next_semaphore Destination for pointer to next */
|
||||||
/* semaphore on the created list */
|
/* semaphore on the created list */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_semaphore_info_get(TX_SEMAPHORE *semaphore_ptr, CHAR **name, ULONG *current_value, TX_THREAD **first_suspended, ULONG *suspended_count, TX_SEMAPHORE **next_semaphore)
|
UINT _txe_semaphore_info_get(TX_SEMAPHORE *semaphore_ptr, CHAR **name, ULONG *current_value, TX_THREAD **first_suspended, ULONG *suspended_count, TX_SEMAPHORE **next_semaphore)
|
||||||
@@ -87,3 +90,4 @@ ALIGN_TYPE extra_parameters[4];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,51 +22,54 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_semaphore_performance_info_get PORTABLE C */
|
/* _tx_semaphore_performance_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves performance information from the specified */
|
/* This function retrieves performance information from the specified */
|
||||||
/* semaphore. */
|
/* semaphore. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore control block*/
|
/* semaphore_ptr Pointer to semaphore control block*/
|
||||||
/* puts Destination for the number of */
|
/* puts Destination for the number of */
|
||||||
/* puts on to this semaphore */
|
/* puts on to this semaphore */
|
||||||
/* gets Destination for the number of */
|
/* gets Destination for the number of */
|
||||||
/* gets on this semaphore */
|
/* gets on this semaphore */
|
||||||
/* suspensions Destination for the number of */
|
/* suspensions Destination for the number of */
|
||||||
/* suspensions on this semaphore */
|
/* suspensions on this semaphore */
|
||||||
/* timeouts Destination for number of timeouts*/
|
/* timeouts Destination for number of timeouts*/
|
||||||
/* on this semaphore */
|
/* on this semaphore */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_semaphore_performance_info_get(TX_SEMAPHORE *semaphore_ptr, ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts)
|
UINT _tx_semaphore_performance_info_get(TX_SEMAPHORE *semaphore_ptr, ULONG *puts, ULONG *gets, ULONG *suspensions, ULONG *timeouts)
|
||||||
@@ -85,3 +88,4 @@ ALIGN_TYPE extra_parameters[3];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,49 +22,52 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_semaphore_performance_system_info_get PORTABLE C */
|
/* _tx_semaphore_performance_system_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves system semaphore performance information. */
|
/* This function retrieves system semaphore performance information. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* puts Destination for total number of */
|
/* puts Destination for total number of */
|
||||||
/* semaphore puts */
|
/* semaphore puts */
|
||||||
/* gets Destination for total number of */
|
/* gets Destination for total number of */
|
||||||
/* semaphore gets */
|
/* semaphore gets */
|
||||||
/* suspensions Destination for total number of */
|
/* suspensions Destination for total number of */
|
||||||
/* semaphore suspensions */
|
/* semaphore suspensions */
|
||||||
/* timeouts Destination for total number of */
|
/* timeouts Destination for total number of */
|
||||||
/* timeouts */
|
/* timeouts */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
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)
|
||||||
@@ -82,3 +85,4 @@ ALIGN_TYPE extra_parameters[2];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,42 +22,45 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_PRIORITIZE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_semaphore_prioritize PORTABLE C */
|
/* _tx_semaphore_prioritize PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the semaphore prioritize call. */
|
/* This function checks for errors in the semaphore prioritize call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore control block*/
|
/* semaphore_ptr Pointer to semaphore control block*/
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_semaphore_prioritize(TX_SEMAPHORE *semaphore_ptr)
|
UINT _txe_semaphore_prioritize(TX_SEMAPHORE *semaphore_ptr)
|
||||||
@@ -71,3 +74,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,43 +22,46 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_PUT_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_semaphore_put PORTABLE C */
|
/* _txe_semaphore_put PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the semaphore put function call. */
|
/* This function checks for errors in the semaphore put function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore control block*/
|
/* semaphore_ptr Pointer to semaphore control block*/
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
/* TX_SEMAPHORE_ERROR Invalid semaphore pointer */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_semaphore_put(TX_SEMAPHORE *semaphore_ptr)
|
UINT _txe_semaphore_put(TX_SEMAPHORE *semaphore_ptr)
|
||||||
@@ -72,3 +75,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_SEMAPHORE_PUT_NOTIFY_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_semaphore_put_notify PORTABLE C */
|
/* _txe_semaphore_put_notify PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the semaphore put notify */
|
/* This function checks for errors in the semaphore put notify */
|
||||||
/* callback function call. */
|
/* callback function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* semaphore_ptr Pointer to semaphore */
|
/* semaphore_ptr Pointer to semaphore */
|
||||||
/* semaphore_put_notify Application callback function */
|
/* semaphore_put_notify Application callback function */
|
||||||
/* (TX_NULL disables notify) */
|
/* (TX_NULL disables notify) */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Service return status */
|
/* status Service return status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_semaphore_put_notify(TX_SEMAPHORE *semaphore_ptr, VOID (*semaphore_put_notify)(TX_SEMAPHORE *notify_semaphore_ptr))
|
UINT _txe_semaphore_put_notify(TX_SEMAPHORE *semaphore_ptr, VOID (*semaphore_put_notify)(TX_SEMAPHORE *notify_semaphore_ptr))
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,58 +22,61 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_CREATE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_thread_create PORTABLE C */
|
/* _txe_thread_create PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the thread create function call. */
|
/* This function checks for errors in the thread create function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Thread control block pointer */
|
/* thread_ptr Thread control block pointer */
|
||||||
/* name Pointer to thread name string */
|
/* name Pointer to thread name string */
|
||||||
/* entry_function Entry function of the thread */
|
/* entry_function Entry function of the thread */
|
||||||
/* entry_input 32-bit input value to thread */
|
/* entry_input 32-bit input value to thread */
|
||||||
/* stack_start Pointer to start of stack */
|
/* stack_start Pointer to start of stack */
|
||||||
/* stack_size Stack size in bytes */
|
/* stack_size Stack size in bytes */
|
||||||
/* priority Priority of thread (0-31) */
|
/* priority Priority of thread (0-31) */
|
||||||
/* preempt_threshold Preemption threshold */
|
/* preempt_threshold Preemption threshold */
|
||||||
/* time_slice Thread time-slice value */
|
/* time_slice Thread time-slice value */
|
||||||
/* auto_start Automatic start selection */
|
/* auto_start Automatic start selection */
|
||||||
/* thread_control_block_size Size of thread control block */
|
/* thread_control_block_size Size of thread control block */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_THREAD_ERROR Invalid thread pointer */
|
/* TX_THREAD_ERROR Invalid thread pointer */
|
||||||
/* TX_PTR_ERROR Invalid entry point or stack */
|
/* TX_PTR_ERROR Invalid entry point or stack */
|
||||||
/* address */
|
/* address */
|
||||||
/* TX_SIZE_ERROR Invalid stack size -too small */
|
/* TX_SIZE_ERROR Invalid stack size -too small */
|
||||||
/* TX_PRIORITY_ERROR Invalid thread priority */
|
/* TX_PRIORITY_ERROR Invalid thread priority */
|
||||||
/* TX_THRESH_ERROR Invalid preemption threshold */
|
/* TX_THRESH_ERROR Invalid preemption threshold */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr, VOID (*entry_function)(ULONG entry_input), ULONG entry_input, VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold, ULONG time_slice, UINT auto_start, UINT thread_control_block_size)
|
UINT _txe_thread_create(TX_THREAD *thread_ptr, CHAR *name_ptr, VOID (*entry_function)(ULONG entry_input), ULONG entry_input, VOID *stack_start, ULONG stack_size, UINT priority, UINT preempt_threshold, ULONG time_slice, UINT auto_start, UINT thread_control_block_size)
|
||||||
@@ -98,3 +101,4 @@ ALIGN_TYPE extra_parameters[9];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,44 +22,47 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_DELETE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_thread_delete PORTABLE C */
|
/* _txe_thread_delete PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the thread delete function call. */
|
/* This function checks for errors in the thread delete function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Pointer to thread to suspend */
|
/* thread_ptr Pointer to thread to suspend */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_THREAD_ERROR Invalid thread pointer */
|
/* TX_THREAD_ERROR Invalid thread pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of function */
|
/* TX_CALLER_ERROR Invalid caller of function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_thread_delete(TX_THREAD *thread_ptr)
|
UINT _txe_thread_delete(TX_THREAD *thread_ptr)
|
||||||
@@ -73,3 +76,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_ENTRY_EXIT_NOTIFY_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_thread_entry_exit_notify PORTABLE C */
|
/* _txe_thread_entry_exit_notify PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the thread entry/exit notify */
|
/* This function checks for errors in the thread entry/exit notify */
|
||||||
/* callback function call. */
|
/* callback function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Pointer to thread */
|
/* thread_ptr Pointer to thread */
|
||||||
/* thread_entry_exit_notify Pointer to notify callback */
|
/* thread_entry_exit_notify Pointer to notify callback */
|
||||||
/* function, TX_NULL to disable*/
|
/* function, TX_NULL to disable*/
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Service return status */
|
/* status Service return status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_thread_entry_exit_notify(TX_THREAD *thread_ptr, VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT type))
|
UINT _txe_thread_entry_exit_notify(TX_THREAD *thread_ptr, VOID (*thread_entry_exit_notify)(TX_THREAD *notify_thread_ptr, UINT type))
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_IDENTIFY_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_identify PORTABLE C */
|
/* _tx_thread_identify PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function returns the control block pointer of the currently */
|
/* This function returns the control block pointer of the currently */
|
||||||
/* executing thread. If the return value is NULL, no thread is */
|
/* executing thread. If the return value is NULL, no thread is */
|
||||||
/* executing. */
|
/* executing. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* None */
|
/* None */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_THREAD * Pointer to control block of */
|
/* TX_THREAD * Pointer to control block of */
|
||||||
/* currently executing thread */
|
/* currently executing thread */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
TX_THREAD *_tx_thread_identify(VOID)
|
TX_THREAD *_tx_thread_identify(VOID)
|
||||||
@@ -74,3 +77,4 @@ TX_THREAD *return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,55 +22,58 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_thread_info_get PORTABLE C */
|
/* _txe_thread_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the thread information get */
|
/* This function checks for errors in the thread information get */
|
||||||
/* service. */
|
/* service. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Pointer to thread control block */
|
/* thread_ptr Pointer to thread control block */
|
||||||
/* name Destination for the thread name */
|
/* name Destination for the thread name */
|
||||||
/* state Destination for thread state */
|
/* state Destination for thread state */
|
||||||
/* run_count Destination for thread run count */
|
/* run_count Destination for thread run count */
|
||||||
/* priority Destination for thread priority */
|
/* priority Destination for thread priority */
|
||||||
/* preemption_threshold Destination for thread preemption-*/
|
/* preemption_threshold Destination for thread preemption-*/
|
||||||
/* threshold */
|
/* threshold */
|
||||||
/* time_slice Destination for thread time-slice */
|
/* time_slice Destination for thread time-slice */
|
||||||
/* next_thread Destination for next created */
|
/* next_thread Destination for next created */
|
||||||
/* thread */
|
/* thread */
|
||||||
/* next_suspended_thread Destination for next suspended */
|
/* next_suspended_thread Destination for next suspended */
|
||||||
/* thread */
|
/* thread */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_THREAD_ERROR Invalid thread pointer */
|
/* TX_THREAD_ERROR Invalid thread pointer */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_thread_info_get(TX_THREAD *thread_ptr, CHAR **name, UINT *state, ULONG *run_count, UINT *priority, UINT *preemption_threshold, ULONG *time_slice, TX_THREAD **next_thread, TX_THREAD **next_suspended_thread)
|
UINT _txe_thread_info_get(TX_THREAD *thread_ptr, CHAR **name, UINT *state, ULONG *run_count, UINT *priority, UINT *preemption_threshold, ULONG *time_slice, TX_THREAD **next_thread, TX_THREAD **next_suspended_thread)
|
||||||
@@ -93,3 +96,4 @@ ALIGN_TYPE extra_parameters[7];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,45 +22,48 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_INTERRUPT_CONTROL_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_interrupt_control PORTABLE C */
|
/* _tx_thread_interrupt_control PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function is responsible for changing the interrupt lockout */
|
/* This function is responsible for changing the interrupt lockout */
|
||||||
/* posture of the system. */
|
/* posture of the system. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* new_posture New interrupt lockout posture */
|
/* new_posture New interrupt lockout posture */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status | old_posture Return status if feature not */
|
/* status | old_posture Return status if feature not */
|
||||||
/* enabled, old interrupt lockout */
|
/* enabled, old interrupt lockout */
|
||||||
/* posture if feature enabled. */
|
/* posture if feature enabled. */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_thread_interrupt_control(UINT new_posture)
|
UINT _tx_thread_interrupt_control(UINT new_posture)
|
||||||
@@ -74,3 +77,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,68 +22,71 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_PERFORMANCE_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_performance_info_get PORTABLE C */
|
/* _tx_thread_performance_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves performance information from the specified */
|
/* This function retrieves performance information from the specified */
|
||||||
/* thread. */
|
/* thread. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Pointer to thread control block */
|
/* thread_ptr Pointer to thread control block */
|
||||||
/* resumptions Destination for number of times */
|
/* resumptions Destination for number of times */
|
||||||
/* thread was resumed */
|
/* thread was resumed */
|
||||||
/* suspensions Destination for number of times */
|
/* suspensions Destination for number of times */
|
||||||
/* thread was suspended */
|
/* thread was suspended */
|
||||||
/* solicited_preemptions Destination for number of times */
|
/* solicited_preemptions Destination for number of times */
|
||||||
/* thread called another service */
|
/* thread called another service */
|
||||||
/* that resulted in preemption */
|
/* that resulted in preemption */
|
||||||
/* interrupt_preemptions Destination for number of times */
|
/* interrupt_preemptions Destination for number of times */
|
||||||
/* thread was preempted by another */
|
/* thread was preempted by another */
|
||||||
/* thread made ready in Interrupt */
|
/* thread made ready in Interrupt */
|
||||||
/* Service Routine (ISR) */
|
/* Service Routine (ISR) */
|
||||||
/* priority_inversions Destination for number of times */
|
/* priority_inversions Destination for number of times */
|
||||||
/* a priority inversion was */
|
/* a priority inversion was */
|
||||||
/* detected for this thread */
|
/* detected for this thread */
|
||||||
/* time_slices Destination for number of times */
|
/* time_slices Destination for number of times */
|
||||||
/* thread was time-sliced */
|
/* thread was time-sliced */
|
||||||
/* relinquishes Destination for number of thread */
|
/* relinquishes Destination for number of thread */
|
||||||
/* relinquishes */
|
/* relinquishes */
|
||||||
/* timeouts Destination for number of timeouts*/
|
/* timeouts Destination for number of timeouts*/
|
||||||
/* for thread */
|
/* for thread */
|
||||||
/* wait_aborts Destination for number of wait */
|
/* wait_aborts Destination for number of wait */
|
||||||
/* aborts for thread */
|
/* aborts for thread */
|
||||||
/* last_preempted_by Destination for pointer of the */
|
/* last_preempted_by Destination for pointer of the */
|
||||||
/* thread that last preempted this */
|
/* thread that last preempted this */
|
||||||
/* thread */
|
/* thread */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_thread_performance_info_get(TX_THREAD *thread_ptr, ULONG *resumptions, ULONG *suspensions, ULONG *solicited_preemptions, ULONG *interrupt_preemptions, ULONG *priority_inversions, ULONG *time_slices, ULONG *relinquishes, ULONG *timeouts, ULONG *wait_aborts, TX_THREAD **last_preempted_by)
|
UINT _tx_thread_performance_info_get(TX_THREAD *thread_ptr, ULONG *resumptions, ULONG *suspensions, ULONG *solicited_preemptions, ULONG *interrupt_preemptions, ULONG *priority_inversions, ULONG *time_slices, ULONG *relinquishes, ULONG *timeouts, ULONG *wait_aborts, TX_THREAD **last_preempted_by)
|
||||||
@@ -108,3 +111,4 @@ ALIGN_TYPE extra_parameters[9];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,68 +22,71 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_PERFORMANCE_SYSTEM_INFO_GET_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _tx_thread_performance_system_info_get PORTABLE C */
|
/* _tx_thread_performance_system_info_get PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function retrieves thread system performance information. */
|
/* This function retrieves thread system performance information. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* resumptions Destination for total number of */
|
/* resumptions Destination for total number of */
|
||||||
/* thread resumptions */
|
/* thread resumptions */
|
||||||
/* suspensions Destination for total number of */
|
/* suspensions Destination for total number of */
|
||||||
/* thread suspensions */
|
/* thread suspensions */
|
||||||
/* solicited_preemptions Destination for total number of */
|
/* solicited_preemptions Destination for total number of */
|
||||||
/* thread preemption from thread */
|
/* thread preemption from thread */
|
||||||
/* API calls */
|
/* API calls */
|
||||||
/* interrupt_preemptions Destination for total number of */
|
/* interrupt_preemptions Destination for total number of */
|
||||||
/* thread preemptions as a result */
|
/* thread preemptions as a result */
|
||||||
/* of threads made ready inside of */
|
/* of threads made ready inside of */
|
||||||
/* Interrupt Service Routines */
|
/* Interrupt Service Routines */
|
||||||
/* priority_inversions Destination for total number of */
|
/* priority_inversions Destination for total number of */
|
||||||
/* priority inversions */
|
/* priority inversions */
|
||||||
/* time_slices Destination for total number of */
|
/* time_slices Destination for total number of */
|
||||||
/* time-slices */
|
/* time-slices */
|
||||||
/* relinquishes Destination for total number of */
|
/* relinquishes Destination for total number of */
|
||||||
/* relinquishes */
|
/* relinquishes */
|
||||||
/* timeouts Destination for total number of */
|
/* timeouts Destination for total number of */
|
||||||
/* timeouts */
|
/* timeouts */
|
||||||
/* wait_aborts Destination for total number of */
|
/* wait_aborts Destination for total number of */
|
||||||
/* wait aborts */
|
/* wait aborts */
|
||||||
/* non_idle_returns Destination for total number of */
|
/* non_idle_returns Destination for total number of */
|
||||||
/* times threads return when */
|
/* times threads return when */
|
||||||
/* another thread is ready */
|
/* another thread is ready */
|
||||||
/* idle_returns Destination for total number of */
|
/* idle_returns Destination for total number of */
|
||||||
/* times threads return when no */
|
/* times threads return when no */
|
||||||
/* other thread is ready */
|
/* other thread is ready */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* status Completion status */
|
/* status Completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _tx_thread_performance_system_info_get(ULONG *resumptions, ULONG *suspensions, ULONG *solicited_preemptions, ULONG *interrupt_preemptions, ULONG *priority_inversions, ULONG *time_slices, ULONG *relinquishes, ULONG *timeouts, ULONG *wait_aborts, ULONG *non_idle_returns, ULONG *idle_returns)
|
UINT _tx_thread_performance_system_info_get(ULONG *resumptions, ULONG *suspensions, ULONG *solicited_preemptions, ULONG *interrupt_preemptions, ULONG *priority_inversions, ULONG *time_slices, ULONG *relinquishes, ULONG *timeouts, ULONG *wait_aborts, ULONG *non_idle_returns, ULONG *idle_returns)
|
||||||
@@ -108,3 +111,4 @@ ALIGN_TYPE extra_parameters[9];
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,48 +22,51 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_PREEMPTION_CHANGE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_thread_preemption_change PORTABLE C */
|
/* _txe_thread_preemption_change PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the preemption threshold change */
|
/* This function checks for errors in the preemption threshold change */
|
||||||
/* function call. */
|
/* function call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Pointer to thread */
|
/* thread_ptr Pointer to thread */
|
||||||
/* new_threshold New preemption threshold */
|
/* new_threshold New preemption threshold */
|
||||||
/* old_threshold Old preemption threshold */
|
/* old_threshold Old preemption threshold */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_THREAD_ERROR Invalid thread pointer */
|
/* TX_THREAD_ERROR Invalid thread pointer */
|
||||||
/* TX_PTR_ERROR Invalid old threshold pointer */
|
/* TX_PTR_ERROR Invalid old threshold pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of function */
|
/* TX_CALLER_ERROR Invalid caller of function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_thread_preemption_change(TX_THREAD *thread_ptr, UINT new_threshold, UINT *old_threshold)
|
UINT _txe_thread_preemption_change(TX_THREAD *thread_ptr, UINT new_threshold, UINT *old_threshold)
|
||||||
@@ -77,3 +80,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -22,48 +22,51 @@
|
|||||||
|
|
||||||
#define TXM_MODULE
|
#define TXM_MODULE
|
||||||
#include "txm_module.h"
|
#include "txm_module.h"
|
||||||
|
#ifndef TXM_THREAD_PRIORITY_CHANGE_CALL_NOT_USED
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* FUNCTION RELEASE */
|
/* FUNCTION RELEASE */
|
||||||
/* */
|
/* */
|
||||||
/* _txe_thread_priority_change PORTABLE C */
|
/* _txe_thread_priority_change PORTABLE C */
|
||||||
/* 6.1 */
|
/* 6.1.10 */
|
||||||
/* AUTHOR */
|
/* AUTHOR */
|
||||||
/* */
|
/* */
|
||||||
/* Scott Larson, Microsoft Corporation */
|
/* Scott Larson, Microsoft Corporation */
|
||||||
/* */
|
/* */
|
||||||
/* DESCRIPTION */
|
/* DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* This function checks for errors in the change priority function */
|
/* This function checks for errors in the change priority function */
|
||||||
/* call. */
|
/* call. */
|
||||||
/* */
|
/* */
|
||||||
/* INPUT */
|
/* INPUT */
|
||||||
/* */
|
/* */
|
||||||
/* thread_ptr Pointer to thread to suspend */
|
/* thread_ptr Pointer to thread to suspend */
|
||||||
/* new_priority New thread priority */
|
/* new_priority New thread priority */
|
||||||
/* old_priority Old thread priority */
|
/* old_priority Old thread priority */
|
||||||
/* */
|
/* */
|
||||||
/* OUTPUT */
|
/* OUTPUT */
|
||||||
/* */
|
/* */
|
||||||
/* TX_THREAD_ERROR Invalid thread pointer */
|
/* TX_THREAD_ERROR Invalid thread pointer */
|
||||||
/* TX_PTR_ERROR Invalid old priority pointer */
|
/* TX_PTR_ERROR Invalid old priority pointer */
|
||||||
/* TX_CALLER_ERROR Invalid caller of function */
|
/* TX_CALLER_ERROR Invalid caller of function */
|
||||||
/* status Actual completion status */
|
/* status Actual completion status */
|
||||||
/* */
|
/* */
|
||||||
/* CALLS */
|
/* CALLS */
|
||||||
/* */
|
/* */
|
||||||
/* _txm_module_kernel_call_dispatcher */
|
/* _txm_module_kernel_call_dispatcher */
|
||||||
/* */
|
/* */
|
||||||
/* CALLED BY */
|
/* CALLED BY */
|
||||||
/* */
|
/* */
|
||||||
/* Module application code */
|
/* Module application code */
|
||||||
/* */
|
/* */
|
||||||
/* RELEASE HISTORY */
|
/* RELEASE HISTORY */
|
||||||
/* */
|
/* */
|
||||||
/* DATE NAME DESCRIPTION */
|
/* DATE NAME DESCRIPTION */
|
||||||
/* */
|
/* */
|
||||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||||
|
/* 01-31-2022 Scott Larson Modified comments and added */
|
||||||
|
/* CALL_NOT_USED option, */
|
||||||
|
/* resulting in version 6.1.10 */
|
||||||
/* */
|
/* */
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
UINT _txe_thread_priority_change(TX_THREAD *thread_ptr, UINT new_priority, UINT *old_priority)
|
UINT _txe_thread_priority_change(TX_THREAD *thread_ptr, UINT new_priority, UINT *old_priority)
|
||||||
@@ -77,3 +80,4 @@ UINT return_value;
|
|||||||
/* Return value to the caller. */
|
/* Return value to the caller. */
|
||||||
return(return_value);
|
return(return_value);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user