Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix MISRA issues for ThreadX SMP #263

Merged
merged 3 commits into from
May 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions common_smp/inc/tx_thread.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */
/* */
/* tx_thread.h PORTABLE SMP */
/* 6.1 */
/* 6.x */
/* AUTHOR */
/* */
/* William E. Lamie, Microsoft Corporation */
Expand All @@ -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 */
/* */
/**************************************************************************/

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
6 changes: 4 additions & 2 deletions common_smp/src/tx_byte_pool_search.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _tx_byte_pool_search PORTABLE SMP */
/* 6.1.7 */
/* 6.x */
/* AUTHOR */
/* */
/* William E. Lamie, Microsoft Corporation */
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
{

Expand Down
2 changes: 1 addition & 1 deletion common_smp/src/tx_thread_smp_utilities.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 4 additions & 2 deletions common_smp/src/tx_thread_system_suspend.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
/* FUNCTION RELEASE */
/* */
/* _tx_thread_system_suspend PORTABLE SMP */
/* 6.1.11 */
/* 6.x */
/* AUTHOR */
/* */
/* William E. Lamie, Microsoft Corporation */
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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;
}
Expand Down