mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-04 11:09:01 +01:00 
			
		
		
		
	Suppress MISRA C:2012 rule 21.6 for snprintf (#877)
Suppress MISRA C:2012 rule 21.6 for snprintf
This commit is contained in:
		
							parent
							
								
									877484cd7e
								
							
						
					
					
						commit
						d95b05ea5f
					
				
							
								
								
									
										9
									
								
								MISRA.md
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								MISRA.md
									
									
									
									
									
								
							@ -107,6 +107,15 @@ _Ref 11.5.5_
 | 
			
		||||
   because data storage buffers are implemented as uint8_t arrays for the
 | 
			
		||||
   ease of sizing, alignment and access.
 | 
			
		||||
 | 
			
		||||
#### Rule 21.6
 | 
			
		||||
 | 
			
		||||
MISRA C-2012 Rule 21.6: The Standard Library input/output functions shall not
 | 
			
		||||
be used.
 | 
			
		||||
 | 
			
		||||
_Ref 21.6.1_
 | 
			
		||||
 - The Standard Library function snprintf is used in vTaskListTasks and
 | 
			
		||||
   vTaskGetRunTimeStatistics APIs, both of which are utility functions only and
 | 
			
		||||
   are not considered part of core kernel implementation.
 | 
			
		||||
 | 
			
		||||
### MISRA configuration
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								tasks.c
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								tasks.c
									
									
									
									
									
								
							@ -7348,6 +7348,9 @@ static void prvResetNextTaskUnblockTime( void )
 | 
			
		||||
                    {
 | 
			
		||||
                        /* Write the rest of the string. */
 | 
			
		||||
                        #if ( ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 ) )
 | 
			
		||||
                            /* MISRA Ref 21.6.1 [snprintf for utility] */
 | 
			
		||||
                            /* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
 | 
			
		||||
                            /* coverity[misra_c_2012_rule_21_6_violation] */
 | 
			
		||||
                            iSnprintfReturnValue = snprintf( pcWriteBuffer,
 | 
			
		||||
                                                             uxBufferLength - uxConsumedBufferLength,
 | 
			
		||||
                                                             "\t%c\t%u\t%u\t%u\t0x%x\r\n",
 | 
			
		||||
@ -7355,15 +7358,18 @@ static void prvResetNextTaskUnblockTime( void )
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority,
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark,
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber,
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].uxCoreAffinityMask ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].uxCoreAffinityMask );
 | 
			
		||||
                        #else /* ( ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 ) ) */
 | 
			
		||||
                            /* MISRA Ref 21.6.1 [snprintf for utility] */
 | 
			
		||||
                            /* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
 | 
			
		||||
                            /* coverity[misra_c_2012_rule_21_6_violation] */
 | 
			
		||||
                            iSnprintfReturnValue = snprintf( pcWriteBuffer,
 | 
			
		||||
                                                             uxBufferLength - uxConsumedBufferLength,
 | 
			
		||||
                                                             "\t%c\t%u\t%u\t%u\r\n",
 | 
			
		||||
                                                             cStatus,
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority,
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark,
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
 | 
			
		||||
                                                             ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber );
 | 
			
		||||
                        #endif /* ( ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 ) ) */
 | 
			
		||||
                        uxCharsWrittenBySnprintf = prvSnprintfReturnValueToCharsWritten( iSnprintfReturnValue, uxBufferLength - uxConsumedBufferLength );
 | 
			
		||||
 | 
			
		||||
@ -7496,21 +7502,27 @@ static void prvResetNextTaskUnblockTime( void )
 | 
			
		||||
                            {
 | 
			
		||||
                                #ifdef portLU_PRINTF_SPECIFIER_REQUIRED
 | 
			
		||||
                                {
 | 
			
		||||
                                    /* MISRA Ref 21.6.1 [snprintf for utility] */
 | 
			
		||||
                                    /* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
 | 
			
		||||
                                    /* coverity[misra_c_2012_rule_21_6_violation] */
 | 
			
		||||
                                    iSnprintfReturnValue = snprintf( pcWriteBuffer,
 | 
			
		||||
                                                                     uxBufferLength - uxConsumedBufferLength,
 | 
			
		||||
                                                                     "\t%lu\t\t%lu%%\r\n",
 | 
			
		||||
                                                                     pxTaskStatusArray[ x ].ulRunTimeCounter,
 | 
			
		||||
                                                                     ulStatsAsPercentage );
 | 
			
		||||
                                }
 | 
			
		||||
                                #else
 | 
			
		||||
                                #else /* ifdef portLU_PRINTF_SPECIFIER_REQUIRED */
 | 
			
		||||
                                {
 | 
			
		||||
                                    /* sizeof( int ) == sizeof( long ) so a smaller
 | 
			
		||||
                                     * printf() library can be used. */
 | 
			
		||||
                                    /* MISRA Ref 21.6.1 [snprintf for utility] */
 | 
			
		||||
                                    /* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
 | 
			
		||||
                                    /* coverity[misra_c_2012_rule_21_6_violation] */
 | 
			
		||||
                                    iSnprintfReturnValue = snprintf( pcWriteBuffer,
 | 
			
		||||
                                                                     uxBufferLength - uxConsumedBufferLength,
 | 
			
		||||
                                                                     "\t%u\t\t%u%%\r\n",
 | 
			
		||||
                                                                     ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter,
 | 
			
		||||
                                                                     ( unsigned int ) ulStatsAsPercentage ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
 | 
			
		||||
                                                                     ( unsigned int ) ulStatsAsPercentage );
 | 
			
		||||
                                }
 | 
			
		||||
                                #endif /* ifdef portLU_PRINTF_SPECIFIER_REQUIRED */
 | 
			
		||||
                            }
 | 
			
		||||
@ -7520,6 +7532,9 @@ static void prvResetNextTaskUnblockTime( void )
 | 
			
		||||
                                 * consumed less than 1% of the total run time. */
 | 
			
		||||
                                #ifdef portLU_PRINTF_SPECIFIER_REQUIRED
 | 
			
		||||
                                {
 | 
			
		||||
                                    /* MISRA Ref 21.6.1 [snprintf for utility] */
 | 
			
		||||
                                    /* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
 | 
			
		||||
                                    /* coverity[misra_c_2012_rule_21_6_violation] */
 | 
			
		||||
                                    iSnprintfReturnValue = snprintf( pcWriteBuffer,
 | 
			
		||||
                                                                     uxBufferLength - uxConsumedBufferLength,
 | 
			
		||||
                                                                     "\t%lu\t\t<1%%\r\n",
 | 
			
		||||
@ -7529,10 +7544,13 @@ static void prvResetNextTaskUnblockTime( void )
 | 
			
		||||
                                {
 | 
			
		||||
                                    /* sizeof( int ) == sizeof( long ) so a smaller
 | 
			
		||||
                                     * printf() library can be used. */
 | 
			
		||||
                                    /* MISRA Ref 21.6.1 [snprintf for utility] */
 | 
			
		||||
                                    /* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
 | 
			
		||||
                                    /* coverity[misra_c_2012_rule_21_6_violation] */
 | 
			
		||||
                                    iSnprintfReturnValue = snprintf( pcWriteBuffer,
 | 
			
		||||
                                                                     uxBufferLength - uxConsumedBufferLength,
 | 
			
		||||
                                                                     "\t%u\t\t<1%%\r\n",
 | 
			
		||||
                                                                     ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
 | 
			
		||||
                                                                     ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter );
 | 
			
		||||
                                }
 | 
			
		||||
                                #endif /* ifdef portLU_PRINTF_SPECIFIER_REQUIRED */
 | 
			
		||||
                            }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user