diff options
| author | Frédéric Desbiens <[email protected]> | 2026-04-15 11:36:53 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-15 11:36:53 -0400 |
| commit | f81d1c9eb5a0bc16ba26426e5274f7248a7c8646 (patch) | |
| tree | a036816ab14c9e6d97e44486ecbd571d7f925d32 /common_modules/module_manager/inc | |
| parent | e755542cb3be2cb9510630748712bb5cb6e58ffb (diff) | |
| parent | 454ab56fcecb35c0b24dc2f0bed6b8551a797fac (diff) | |
Merge branch 'dev' into typo
Diffstat (limited to 'common_modules/module_manager/inc')
| -rw-r--r-- | common_modules/module_manager/inc/txm_module_manager_dispatch.h | 17 | ||||
| -rw-r--r-- | common_modules/module_manager/inc/txm_module_manager_util.h | 32 |
2 files changed, 23 insertions, 26 deletions
diff --git a/common_modules/module_manager/inc/txm_module_manager_dispatch.h b/common_modules/module_manager/inc/txm_module_manager_dispatch.h index 4f30ad26..03bd86eb 100644 --- a/common_modules/module_manager/inc/txm_module_manager_dispatch.h +++ b/common_modules/module_manager/inc/txm_module_manager_dispatch.h @@ -1,10 +1,11 @@ /*************************************************************************** - * Copyright (c) 2024 Microsoft Corporation - * + * Copyright (c) 2024 Microsoft Corporation + * Copyright (c) 2025 Eclipse ThreadX Contributors + * * This program and the accompanying materials are made available under the * terms of the MIT License which is available at * https://opensource.org/licenses/MIT. - * + * * SPDX-License-Identifier: MIT **************************************************************************/ @@ -2389,6 +2390,11 @@ static ALIGN_TYPE _txm_module_manager_tx_thread_preemption_change_dispatch(TXM_M ALIGN_TYPE return_value; + if (param_1 < module_instance -> txm_module_instance_maximum_priority) + { + return(TX_THRESH_ERROR); + } + if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION) { if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD))) @@ -2418,6 +2424,11 @@ static ALIGN_TYPE _txm_module_manager_tx_thread_priority_change_dispatch(TXM_MOD ALIGN_TYPE return_value; + if (param_1 < module_instance -> txm_module_instance_maximum_priority) + { + return(TX_PRIORITY_ERROR); + } + if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION) { if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD))) diff --git a/common_modules/module_manager/inc/txm_module_manager_util.h b/common_modules/module_manager/inc/txm_module_manager_util.h index bf971049..45c7f409 100644 --- a/common_modules/module_manager/inc/txm_module_manager_util.h +++ b/common_modules/module_manager/inc/txm_module_manager_util.h @@ -1,10 +1,11 @@ /*************************************************************************** - * Copyright (c) 2024 Microsoft Corporation - * + * Copyright (c) 2024 Microsoft Corporation + * Copyright (c) 2026-present Eclipse ThreadX contributors + * * This program and the accompanying materials are made available under the * terms of the MIT License which is available at * https://opensource.org/licenses/MIT. - * + * * SPDX-License-Identifier: MIT **************************************************************************/ @@ -25,7 +26,7 @@ /* COMPONENT DEFINITION RELEASE */ /* */ /* txm_module_manager_util.h PORTABLE C */ -/* 6.3.0 */ +/* 6.4.3 */ /* AUTHOR */ /* */ /* Scott Larson, Microsoft Corporation */ @@ -35,18 +36,6 @@ /* This file declares prototypes of utility functions used by the */ /* module manager. */ /* */ -/* RELEASE HISTORY */ -/* */ -/* DATE NAME DESCRIPTION */ -/* */ -/* 09-30-2020 Scott Larson Initial Version 6.1 */ -/* 04-02-2021 Scott Larson Modified comment(s) and */ -/* optimized object checks, */ -/* resulting in version 6.1.6 */ -/* 10-31-2023 Tiejun Zhou Modified comment(s) and */ -/* improved object check, */ -/* resulting in version 6.3.0 */ -/* */ /**************************************************************************/ #ifndef TXM_MODULE_MANAGER_UTIL_H @@ -102,16 +91,11 @@ /* Kernel objects should be outside the module at the very least. */ #define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, obj_ptr, obj_size) \ - (TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size) || \ - (_txm_module_manager_created_object_check(module_instance, (void *)obj_ptr) == TX_FALSE) || \ - ((void *) (obj_ptr) == TX_NULL)) + (_txm_module_manager_param_check_object_for_use(module_instance, obj_ptr, obj_size)) /* When creating an object, the object must be inside the object pool. */ #define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, obj_ptr, obj_size) \ - ((TXM_MODULE_MANAGER_ENSURE_INSIDE_OBJ_POOL(module_instance, obj_ptr, obj_size) && \ - (_txm_module_manager_object_size_check(obj_ptr, obj_size) == TX_SUCCESS)) || \ - (_txm_module_manager_created_object_check(module_instance, (void *)obj_ptr) == TX_FALSE) || \ - ((void *) (obj_ptr) == TX_NULL)) + (_txm_module_manager_param_check_object_for_creation(module_instance, obj_ptr, obj_size)) /* Strings we dereference can be in RW/RO/Shared areas. */ #define TXM_MODULE_MANAGER_PARAM_CHECK_DEREFERENCE_STRING(module_instance, string_ptr) \ @@ -136,6 +120,8 @@ UINT _txm_module_manager_object_memory_check(TXM_MODULE_INSTANCE *module_inst UINT _txm_module_manager_object_size_check(ALIGN_TYPE object_ptr, ULONG object_size); UINT _txm_module_manager_object_name_compare(CHAR *object_name1, UINT object_name1_length, CHAR *object_name2); UCHAR _txm_module_manager_created_object_check(TXM_MODULE_INSTANCE *module_instance, void *object_ptr); +UINT _txm_module_manager_param_check_object_for_creation(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE object_ptr, ULONG object_size); +UINT _txm_module_manager_param_check_object_for_use(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE object_ptr, ULONG object_size); UINT _txm_module_manager_util_code_allocation_size_and_alignment_get(TXM_MODULE_PREAMBLE *module_preamble, ULONG *code_alignment_dest, ULONG *code_allocation_size_dest); #endif |
