summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiejunZhou <[email protected]>2023-05-18 15:57:53 +0800
committerGitHub <[email protected]>2023-05-18 15:57:53 +0800
commitd66a519685d1842391b65e237b94a678cd6f65c3 (patch)
tree5bac992cf9b610df1807863a3aa055d6b6240428
parent6b8ece0ff28fb0160a2fdf51c09df09d587f4575 (diff)
Fix MISRA issues for ThreadX SMP (#263)
* Fixed MISRA2012 rule 10.4_a The operands `pool_ptr->tx_byte_pool_fragments' and `2' have essential type categories unsigned 32-bit int and signed 8-bit int, which do not match. * Fixed MISRA2012 rule 10.4_a The operands `next_priority' and `TX_MAX_PRIORITIES' have essential type categories unsigned 32-bit int and signed 8-bit int, which do not match. * Fixed MISRA2012 rule 8.3 Declaration/definition of `_tx_thread_smp_preemptable_threads_get' is inconsistent with previous declaration/definition in types and/or type qualifiers
-rw-r--r--common_smp/inc/tx_thread.h8
-rw-r--r--common_smp/src/tx_byte_pool_search.c6
-rw-r--r--common_smp/src/tx_thread_smp_utilities.c2
-rw-r--r--common_smp/src/tx_thread_system_suspend.c6
4 files changed, 14 insertions, 8 deletions
diff --git a/common_smp/inc/tx_thread.h b/common_smp/inc/tx_thread.h
index 207c36e7..358ad166 100644
--- a/common_smp/inc/tx_thread.h
+++ b/common_smp/inc/tx_thread.h
@@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */
/* */
/* tx_thread.h PORTABLE SMP */
-/* 6.1 */
+/* 6.x */
/* AUTHOR */
/* */
/* William E. Lamie, Microsoft Corporation */
@@ -42,6 +42,8 @@
/* DATE NAME DESCRIPTION */
/* */
/* 09-30-2020 William E. Lamie Initial Version 6.1 */
+/* xx-xx-xxxx Tiejun Zhou Fixed MISRA2012 rule 8.3, */
+/* resulting in version 6.x */
/* */
/**************************************************************************/
@@ -1349,7 +1351,7 @@ TX_THREAD *thread_remap_list[TX_THREAD_SMP_MAX_CORES];
}
-static INLINE_DECLARE ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[])
+static INLINE_DECLARE ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[TX_THREAD_SMP_MAX_CORES])
{
UINT i, j, k;
@@ -1668,7 +1670,7 @@ ULONG _tx_thread_smp_available_cores_get(void);
ULONG _tx_thread_smp_possible_cores_get(void);
UINT _tx_thread_smp_lowest_priority_get(void);
UINT _tx_thread_smp_remap_solution_find(TX_THREAD *schedule_thread, ULONG available_cores, ULONG thread_possible_cores, ULONG test_possible_cores);
-ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[]);
+ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[TX_THREAD_SMP_MAX_CORES]);
VOID _tx_thread_smp_simple_priority_change(TX_THREAD *thread_ptr, UINT new_priority);
#endif
diff --git a/common_smp/src/tx_byte_pool_search.c b/common_smp/src/tx_byte_pool_search.c
index c40247f3..2bce4fc1 100644
--- a/common_smp/src/tx_byte_pool_search.c
+++ b/common_smp/src/tx_byte_pool_search.c
@@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _tx_byte_pool_search PORTABLE SMP */
-/* 6.1.7 */
+/* 6.x */
/* AUTHOR */
/* */
/* William E. Lamie, Microsoft Corporation */
@@ -81,6 +81,8 @@
/* calculation, and reduced */
/* number of search resets, */
/* resulting in version 6.1.7 */
+/* xx-xx-xxxx Tiejun Zhou Fixed MISRA2012 rule 10.4_a, */
+/* resulting in version 6.x */
/* */
/**************************************************************************/
UCHAR *_tx_byte_pool_search(TX_BYTE_POOL *pool_ptr, ULONG memory_size)
@@ -110,7 +112,7 @@ UINT blocks_searched = ((UINT) 0);
/* First, determine if there are enough bytes in the pool. */
/* Theoretical bytes available = free bytes + ((fragments-2) * overhead of each block) */
- total_theoretical_available = pool_ptr -> tx_byte_pool_available + ((pool_ptr -> tx_byte_pool_fragments - 2) * ((sizeof(UCHAR *)) + (sizeof(ALIGN_TYPE))));
+ total_theoretical_available = pool_ptr -> tx_byte_pool_available + ((pool_ptr -> tx_byte_pool_fragments - 2U) * ((sizeof(UCHAR *)) + (sizeof(ALIGN_TYPE))));
if (memory_size >= total_theoretical_available)
{
diff --git a/common_smp/src/tx_thread_smp_utilities.c b/common_smp/src/tx_thread_smp_utilities.c
index 8543e7be..b31914e6 100644
--- a/common_smp/src/tx_thread_smp_utilities.c
+++ b/common_smp/src/tx_thread_smp_utilities.c
@@ -826,7 +826,7 @@ TX_THREAD *thread_remap_list[TX_THREAD_SMP_MAX_CORES];
}
-ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[])
+ULONG _tx_thread_smp_preemptable_threads_get(UINT priority, TX_THREAD *possible_preemption_list[TX_THREAD_SMP_MAX_CORES])
{
UINT i, j, k;
diff --git a/common_smp/src/tx_thread_system_suspend.c b/common_smp/src/tx_thread_system_suspend.c
index a76a00d4..7de113c7 100644
--- a/common_smp/src/tx_thread_system_suspend.c
+++ b/common_smp/src/tx_thread_system_suspend.c
@@ -38,7 +38,7 @@
/* FUNCTION RELEASE */
/* */
/* _tx_thread_system_suspend PORTABLE SMP */
-/* 6.1.11 */
+/* 6.x */
/* AUTHOR */
/* */
/* William E. Lamie, Microsoft Corporation */
@@ -91,6 +91,8 @@
/* 04-25-2022 Scott Larson Modified comments and fixed */
/* loop to find next thread, */
/* resulting in version 6.1.11 */
+/* xx-xx-xxxx Tiejun Zhou Fixed MISRA2012 rule 10.4_a, */
+/* resulting in version 6.x */
/* */
/**************************************************************************/
VOID _tx_thread_system_suspend(TX_THREAD *thread_ptr)
@@ -671,7 +673,7 @@ UINT processing_complete;
complex_path_possible = possible_cores & available_cores;
/* Check if we need to loop to find the next highest priority thread. */
- if (next_priority == TX_MAX_PRIORITIES)
+ if (next_priority == (ULONG)TX_MAX_PRIORITIES)
{
loop_finished = TX_TRUE;
}