mirror of
https://github.com/eclipse-threadx/threadx.git
synced 2025-11-16 04:24:48 +00:00
Release 6.1.10
This commit is contained in:
@@ -10,15 +10,15 @@
|
||||
/**************************************************************************/
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/**************************************************************************/
|
||||
/** */
|
||||
/** ThreadX Component */
|
||||
/** */
|
||||
/** Module Manager */
|
||||
/** */
|
||||
/**************************************************************************/
|
||||
/**************************************************************************/
|
||||
/**************************************************************************/
|
||||
/**************************************************************************/
|
||||
/** */
|
||||
/** ThreadX Component */
|
||||
/** */
|
||||
/** Module Manager */
|
||||
/** */
|
||||
/**************************************************************************/
|
||||
/**************************************************************************/
|
||||
|
||||
|
||||
/* Include necessary system files. */
|
||||
@@ -29,115 +29,115 @@
|
||||
#include "txm_module_manager_util.h"
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_object_memory_check PORTABLE C */
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_object_memory_check PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Scott Larson, Microsoft Corporation */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This function checks if the object is inside a module's object pool */
|
||||
/* or, if it's a privileged module, inside the module's data area. */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* module_instance Module instance that the object */
|
||||
/* belongs to */
|
||||
/* object_ptr Pointer to object to check */
|
||||
/* object_size Size of the object to check */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Whether the object resides in a */
|
||||
/* valid location */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* _txm_module_manager_kernel_dispatch Kernel dispatch function */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This function checks if the object is inside a module's object pool */
|
||||
/* or, if it's a privileged module, inside the module's data area. */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* module_instance Module instance that the object */
|
||||
/* belongs to */
|
||||
/* object_ptr Pointer to object to check */
|
||||
/* object_size Size of the object to check */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Whether the object resides in a */
|
||||
/* valid location */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* _txm_module_manager_kernel_dispatch Kernel dispatch function */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _txm_module_manager_object_memory_check(TXM_MODULE_INSTANCE *module_instance, ALIGN_TYPE object_ptr, ULONG object_size)
|
||||
{
|
||||
|
||||
|
||||
/* Is the object pointer from the module manager's object pool? */
|
||||
if ((_txm_module_manager_object_pool_created == TX_TRUE) &&
|
||||
(object_ptr >= (ALIGN_TYPE) _txm_module_manager_object_pool.tx_byte_pool_start) &&
|
||||
if ((_txm_module_manager_object_pool_created == TX_TRUE) &&
|
||||
(object_ptr >= (ALIGN_TYPE) _txm_module_manager_object_pool.tx_byte_pool_start) &&
|
||||
((object_ptr+object_size) <= (ALIGN_TYPE) (_txm_module_manager_object_pool.tx_byte_pool_start + _txm_module_manager_object_pool.tx_byte_pool_size)))
|
||||
{
|
||||
/* Object is from manager object pool. */
|
||||
return(TX_SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
/* If memory protection is not required, check if object is in module data. */
|
||||
else if (!(module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION))
|
||||
{
|
||||
if ((object_ptr >= (ALIGN_TYPE) module_instance -> txm_module_instance_data_start) &&
|
||||
if ((object_ptr >= (ALIGN_TYPE) module_instance -> txm_module_instance_data_start) &&
|
||||
((object_ptr+object_size) <= (ALIGN_TYPE) module_instance -> txm_module_instance_data_end))
|
||||
{
|
||||
/* Object is from the local module memory. */
|
||||
return(TX_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Object is from invalid memory. */
|
||||
return(TXM_MODULE_INVALID_MEMORY);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_created_object_check PORTABLE C */
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_created_object_check PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Scott Larson, Microsoft Corporation */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This functions checks if the specified object was created by the */
|
||||
/* specified module */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* module_instance The module instance to check */
|
||||
/* object_ptr The object to check */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Whether the module created the */
|
||||
/* object */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* txm_module_manager*_stop Module manager stop functions */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* specified module */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* module_instance The module instance to check */
|
||||
/* object_ptr The object to check */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Whether the module created the */
|
||||
/* object */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* txm_module_manager*_stop Module manager stop functions */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UCHAR _txm_module_manager_created_object_check(TXM_MODULE_INSTANCE *module_instance, VOID *object_ptr)
|
||||
@@ -179,51 +179,51 @@ TXM_MODULE_ALLOCATED_OBJECT *allocated_object_ptr;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_object_size_check PORTABLE C */
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_object_size_check PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Scott Larson, Microsoft Corporation */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This function checks if the specified object's size matches what is */
|
||||
/* inside the object pool. */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* object_ptr Pointer to object to check */
|
||||
/* object_size Size of the object to check */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Whether the object's size matches */
|
||||
/* what's inside the object pool */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* _txm_module_manager_kernel_dispatch Kernel dispatch function */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This function checks if the specified object's size matches what is */
|
||||
/* inside the object pool. */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* object_ptr Pointer to object to check */
|
||||
/* object_size Size of the object to check */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Whether the object's size matches */
|
||||
/* what's inside the object pool */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* _txm_module_manager_kernel_dispatch Kernel dispatch function */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _txm_module_manager_object_size_check(ALIGN_TYPE object_ptr, ULONG object_size)
|
||||
{
|
||||
TXM_MODULE_ALLOCATED_OBJECT *module_allocated_object_ptr;
|
||||
UINT return_value;
|
||||
|
||||
|
||||
/* Pickup the allocated object pointer. */
|
||||
module_allocated_object_ptr = ((TXM_MODULE_ALLOCATED_OBJECT *) object_ptr) - 1;
|
||||
|
||||
@@ -232,50 +232,50 @@ UINT return_value;
|
||||
return_value = TX_SUCCESS;
|
||||
else
|
||||
return_value = TXM_MODULE_INVALID_MEMORY;
|
||||
|
||||
|
||||
return(return_value);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_name_compare PORTABLE C */
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_name_compare PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Scott Larson, Microsoft Corporation */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This function compares the specified object names. */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* search_name String pointer to the object's */
|
||||
/* name being searched for */
|
||||
/* search_name_length Length of search_name */
|
||||
/* object_name String pointer to an object's name*/
|
||||
/* to compare the search name to */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Whether the names are equal */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* *_object_pointer_get Kernel dispatch function */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This function compares the specified object names. */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* search_name String pointer to the object's */
|
||||
/* name being searched for */
|
||||
/* search_name_length Length of search_name */
|
||||
/* object_name String pointer to an object's name*/
|
||||
/* to compare the search name to */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Whether the names are equal */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* *_object_pointer_get Kernel dispatch function */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _txm_module_manager_object_name_compare(CHAR *search_name, UINT search_name_length, CHAR *object_name)
|
||||
@@ -337,48 +337,48 @@ CHAR object_name_char;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_util_code_allocation_size_and_alignment_get */
|
||||
/* PORTABLE C */
|
||||
/**************************************************************************/
|
||||
/* */
|
||||
/* FUNCTION RELEASE */
|
||||
/* */
|
||||
/* _txm_module_manager_util_code_allocation_size_and_alignment_get */
|
||||
/* PORTABLE C */
|
||||
/* 6.1 */
|
||||
/* AUTHOR */
|
||||
/* */
|
||||
/* Scott Larson, Microsoft Corporation */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This function returns the required alignment and allocation size */
|
||||
/* for a module's code area. */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* module_preamble Preamble of module to return code */
|
||||
/* values for */
|
||||
/* code_alignment_dest Address to return code alignment */
|
||||
/* code_allocation_size_desk Address to return code allocation */
|
||||
/* size */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Success if no math overflow */
|
||||
/* occurred during calculation */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* txm_module_manager_*_load Module load functions */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DESCRIPTION */
|
||||
/* */
|
||||
/* This function returns the required alignment and allocation size */
|
||||
/* for a module's code area. */
|
||||
/* */
|
||||
/* INPUT */
|
||||
/* */
|
||||
/* module_preamble Preamble of module to return code */
|
||||
/* values for */
|
||||
/* code_alignment_dest Address to return code alignment */
|
||||
/* code_allocation_size_desk Address to return code allocation */
|
||||
/* size */
|
||||
/* */
|
||||
/* OUTPUT */
|
||||
/* */
|
||||
/* status Success if no math overflow */
|
||||
/* occurred during calculation */
|
||||
/* */
|
||||
/* CALLS */
|
||||
/* */
|
||||
/* None */
|
||||
/* */
|
||||
/* CALLED BY */
|
||||
/* */
|
||||
/* txm_module_manager_*_load Module load functions */
|
||||
/* */
|
||||
/* RELEASE HISTORY */
|
||||
/* */
|
||||
/* DATE NAME DESCRIPTION */
|
||||
/* */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* 09-30-2020 Scott Larson Initial Version 6.1 */
|
||||
/* */
|
||||
/**************************************************************************/
|
||||
UINT _txm_module_manager_util_code_allocation_size_and_alignment_get(TXM_MODULE_PREAMBLE *module_preamble,
|
||||
|
||||
Reference in New Issue
Block a user