mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Fix MISRA_C_2012 rule 8.4 violation (#844)
Fix MISRA_C_2012 rule 8.4 violation
This commit is contained in:
parent
22eb827b3d
commit
d1a0202125
15
MISRA.md
15
MISRA.md
|
@ -24,14 +24,15 @@ MISRA C:2012 Rule 8.4: A compatible declaration shall be visible when an
|
||||||
object or function with external linkage is defined.
|
object or function with external linkage is defined.
|
||||||
|
|
||||||
_Ref 8.4.1_
|
_Ref 8.4.1_
|
||||||
|
- pxCurrentTCB(s) is defined with external linkage but it is only referenced
|
||||||
|
from the assembly code in the port files. Therefore, adding a declaration in
|
||||||
|
header file is not useful as the assembly code will still need to declare it
|
||||||
|
separately.
|
||||||
|
|
||||||
- This rule requires that a compatible declaration is made available
|
_Ref 8.4.2_
|
||||||
in a header file when an object with external linkage is defined.
|
- xQueueRegistry is defined with external linkage because it is accessed by the
|
||||||
pxCurrentTCB(s) is defined with external linkage but it is only
|
kernel unit tests. It is not meant to be directly accessed by the application
|
||||||
referenced from the assembly code in the port files. Therefore, adding
|
and therefore, not declared in a header file.
|
||||||
a declaration in header file is not useful as the assembly code will
|
|
||||||
still need to declare it separately.
|
|
||||||
|
|
||||||
|
|
||||||
#### Rule 11.3
|
#### Rule 11.3
|
||||||
|
|
||||||
|
|
4
queue.c
4
queue.c
|
@ -165,6 +165,10 @@ typedef xQUEUE Queue_t;
|
||||||
/* The queue registry is simply an array of QueueRegistryItem_t structures.
|
/* The queue registry is simply an array of QueueRegistryItem_t structures.
|
||||||
* The pcQueueName member of a structure being NULL is indicative of the
|
* The pcQueueName member of a structure being NULL is indicative of the
|
||||||
* array position being vacant. */
|
* array position being vacant. */
|
||||||
|
|
||||||
|
/* MISRA Ref 8.4.2 [Declaration shall be visible] */
|
||||||
|
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-84 */
|
||||||
|
/* coverity[misra_c_2012_rule_8_4_violation] */
|
||||||
PRIVILEGED_DATA QueueRegistryItem_t xQueueRegistry[ configQUEUE_REGISTRY_SIZE ];
|
PRIVILEGED_DATA QueueRegistryItem_t xQueueRegistry[ configQUEUE_REGISTRY_SIZE ];
|
||||||
|
|
||||||
#endif /* configQUEUE_REGISTRY_SIZE */
|
#endif /* configQUEUE_REGISTRY_SIZE */
|
||||||
|
|
5
tasks.c
5
tasks.c
|
@ -436,6 +436,9 @@ typedef tskTCB TCB_t;
|
||||||
/*lint -save -e956 A manual analysis and inspection has been used to determine
|
/*lint -save -e956 A manual analysis and inspection has been used to determine
|
||||||
* which static variables must be declared volatile. */
|
* which static variables must be declared volatile. */
|
||||||
#if ( configNUMBER_OF_CORES == 1 )
|
#if ( configNUMBER_OF_CORES == 1 )
|
||||||
|
/* MISRA Ref 8.4.1 [Declaration shall be visible] */
|
||||||
|
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-84 */
|
||||||
|
/* coverity[misra_c_2012_rule_8_4_violation] */
|
||||||
portDONT_DISCARD PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL;
|
portDONT_DISCARD PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL;
|
||||||
#else
|
#else
|
||||||
/* MISRA Ref 8.4.1 [Declaration shall be visible] */
|
/* MISRA Ref 8.4.1 [Declaration shall be visible] */
|
||||||
|
@ -490,7 +493,7 @@ PRIVILEGED_DATA static TaskHandle_t xIdleTaskHandles[ configNUMBER_OF_CORES ];
|
||||||
/* Improve support for OpenOCD. The kernel tracks Ready tasks via priority lists.
|
/* Improve support for OpenOCD. The kernel tracks Ready tasks via priority lists.
|
||||||
* For tracking the state of remote threads, OpenOCD uses uxTopUsedPriority
|
* For tracking the state of remote threads, OpenOCD uses uxTopUsedPriority
|
||||||
* to determine the number of priority lists to read back from the remote target. */
|
* to determine the number of priority lists to read back from the remote target. */
|
||||||
const volatile UBaseType_t uxTopUsedPriority = configMAX_PRIORITIES - 1U;
|
static const volatile UBaseType_t uxTopUsedPriority = configMAX_PRIORITIES - 1U;
|
||||||
|
|
||||||
/* Context switches are held pending while the scheduler is suspended. Also,
|
/* Context switches are held pending while the scheduler is suspended. Also,
|
||||||
* interrupts must not manipulate the xStateListItem of a TCB, or any of the
|
* interrupts must not manipulate the xStateListItem of a TCB, or any of the
|
||||||
|
|
Loading…
Reference in a new issue