From 97b36289a987eb7c409ed2b6a85dea2b7386d6d5 Mon Sep 17 00:00:00 2001 From: "Ching-Hsin,Lee" Date: Thu, 9 May 2024 10:26:12 +0800 Subject: [PATCH 1/7] Update platform header --- source/cellular_pkthandler.c | 18 +-- source/cellular_pktio.c | 58 ++++----- source/include/cellular_config_defaults.h | 29 +++++ .../private/cellular_common_internal.h | 4 +- test/CMakeLists.txt | 5 +- test/coverity/cellular_platform.h | 123 ++++++++++++++++++ 6 files changed, 196 insertions(+), 41 deletions(-) create mode 100644 test/coverity/cellular_platform.h diff --git a/source/cellular_pkthandler.c b/source/cellular_pkthandler.c index 86c1356b..e42fbb39 100644 --- a/source/cellular_pkthandler.c +++ b/source/cellular_pkthandler.c @@ -107,7 +107,7 @@ static CellularPktStatus_t _convertAndQueueRespPacket( CellularContext_t * pCont } /* Notify calling thread, Not blocking immediately comes back if the queue is full. */ - if( xQueueSend( pContext->pktRespQueue, ( void * ) &pktStatus, ( TickType_t ) 0 ) != pdPASS ) + if( PlatformQueue_Send( pContext->pktRespQueue, ( void * ) &pktStatus, ( PlatformTickType_t ) 0 ) != platformPASS ) { pktStatus = CELLULAR_PKT_STATUS_FAILURE; LogError( ( "_convertAndQueueRespPacket: Got a response when the Resp Q is full!!" ) ); @@ -203,7 +203,7 @@ static CellularPktStatus_t _Cellular_AtcmdRequestTimeoutWithCallbackRaw( Cellula { CellularPktStatus_t respCode = CELLULAR_PKT_STATUS_OK; CellularPktStatus_t pktStatus = CELLULAR_PKT_STATUS_OK; - BaseType_t qRet = pdFALSE; + PlatformBaseType_t qRet = platformFALSE; if( atReq.pAtCmd == NULL ) { @@ -231,9 +231,9 @@ static CellularPktStatus_t _Cellular_AtcmdRequestTimeoutWithCallbackRaw( Cellula else { /* Wait for a response. */ - qRet = xQueueReceive( pContext->pktRespQueue, &respCode, pdMS_TO_TICKS( timeoutMS ) ); + qRet = PlatformQueue_Receive( pContext->pktRespQueue, &respCode, pdMS_TO_TICKS( timeoutMS ) ); - if( qRet == pdTRUE ) + if( qRet == platformTRUE ) { pktStatus = ( CellularPktStatus_t ) respCode; @@ -270,7 +270,7 @@ static CellularPktStatus_t _Cellular_DataSendWithTimeoutDelayRaw( CellularContex { CellularPktStatus_t respCode = CELLULAR_PKT_STATUS_OK; CellularPktStatus_t pktStatus = CELLULAR_PKT_STATUS_OK; - BaseType_t qStatus = pdFALSE; + PlatformBaseType_t qStatus = platformFALSE; uint32_t sendEndPatternLen = 0U; if( ( dataReq.pData == NULL ) || ( dataReq.pSentDataLength == NULL ) ) @@ -312,9 +312,9 @@ static CellularPktStatus_t _Cellular_DataSendWithTimeoutDelayRaw( CellularContex /* Wait for a response. */ if( pktStatus == CELLULAR_PKT_STATUS_OK ) { - qStatus = xQueueReceive( pContext->pktRespQueue, &respCode, pdMS_TO_TICKS( timeoutMs ) ); + qStatus = PlatformQueue_Receive( pContext->pktRespQueue, &respCode, pdMS_TO_TICKS( timeoutMs ) ); - if( qStatus == pdTRUE ) + if( qStatus == platformTRUE ) { pktStatus = ( CellularPktStatus_t ) respCode; @@ -509,7 +509,7 @@ void _Cellular_PktHandlerCleanup( CellularContext_t * pContext ) _Cellular_PktHandlerAcquirePktRequestMutex( pContext ); /* This is platform dependent api. */ - ( void ) vQueueDelete( pContext->pktRespQueue ); + ( void ) PlatformQueue_Delete( pContext->pktRespQueue ); pContext->pktRespQueue = NULL; _Cellular_PktHandlerReleasePktRequestMutex( pContext ); } @@ -782,7 +782,7 @@ CellularPktStatus_t _Cellular_PktHandlerInit( CellularContext_t * pContext ) if( pContext != NULL ) { /* Create the response queue which is used to post responses to the sender. */ - pContext->pktRespQueue = xQueueCreate( 1, ( uint32_t ) sizeof( CellularPktStatus_t ) ); + pContext->pktRespQueue = PlatformQueue_Create( 1, ( uint32_t ) sizeof( CellularPktStatus_t ) ); if( pContext->pktRespQueue == NULL ) { diff --git a/source/cellular_pktio.c b/source/cellular_pktio.c index 4137b6bb..57037818 100644 --- a/source/cellular_pktio.c +++ b/source/cellular_pktio.c @@ -520,7 +520,7 @@ static CellularCommInterfaceError_t _Cellular_PktRxCallBack( void * pUserData, CellularCommInterfaceHandle_t commInterfaceHandle ) { const CellularContext_t * pContext = ( CellularContext_t * ) pUserData; - BaseType_t xHigherPriorityTaskWoken = pdFALSE, xResult = pdFALSE; + PlatformBaseType_t xHigherPriorityTaskWoken = platformFALSE, xResult = platformFALSE; CellularCommInterfaceError_t retComm = IOT_COMM_INTERFACE_SUCCESS; ( void ) commInterfaceHandle; /* Comm if is not used in this function. */ @@ -532,13 +532,13 @@ static CellularCommInterfaceError_t _Cellular_PktRxCallBack( void * pUserData, } else { - xResult = ( BaseType_t ) PlatformEventGroup_SetBitsFromISR( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, - ( EventBits_t ) PKTIO_EVT_MASK_RX_DATA, - &xHigherPriorityTaskWoken ); + xResult = PlatformEventGroup_SetBitsFromISR( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, + ( PlatformEventBits_t ) PKTIO_EVT_MASK_RX_DATA, + &xHigherPriorityTaskWoken ); - if( xResult == pdPASS ) + if( xResult == platformPASS ) { - if( xHigherPriorityTaskWoken == pdTRUE ) + if( xHigherPriorityTaskWoken == platformTRUE ) { retComm = IOT_COMM_INTERFACE_SUCCESS; } @@ -1201,7 +1201,7 @@ static uint32_t _handleRxDataEvent( CellularContext_t * pContext ) static void _pktioReadThread( void * pUserData ) { CellularContext_t * pContext = ( CellularContext_t * ) pUserData; - PlatformEventGroup_EventBits uxBits = 0; + PlatformEventBits_t uxBits = 0; uint32_t bytesRead = 0U; /* Open main communication port. */ @@ -1210,24 +1210,24 @@ static void _pktioReadThread( void * pUserData ) &( pContext->hPktioCommIntf ) ) == IOT_COMM_INTERFACE_SUCCESS ) ) { /* Send thread started event. */ - ( void ) PlatformEventGroup_SetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, ( EventBits_t ) PKTIO_EVT_MASK_STARTED ); + ( void ) PlatformEventGroup_SetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, ( PlatformEventBits_t ) PKTIO_EVT_MASK_STARTED ); do { /* Wait events for abort thread or rx data available. */ - uxBits = ( PlatformEventGroup_EventBits ) PlatformEventGroup_WaitBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, - ( ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_ABORT | ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_RX_DATA ), - pdTRUE, - pdFALSE, - portMAX_DELAY ); + uxBits = PlatformEventGroup_WaitBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, + ( ( PlatformEventBits_t ) PKTIO_EVT_MASK_ABORT | ( PlatformEventBits_t ) PKTIO_EVT_MASK_RX_DATA ), + platformTRUE, + platformFALSE, + platformMAX_DELAY ); - if( ( uxBits & ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_ABORT ) != 0U ) + if( ( uxBits & ( PlatformEventBits_t ) PKTIO_EVT_MASK_ABORT ) != 0U ) { LogDebug( ( "Abort received, cleaning up!" ) ); FREE_AT_RESPONSE_AND_SET_NULL( pContext->pAtCmdResp ); break; } - else if( ( uxBits & ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_RX_DATA ) != 0U ) + else if( ( uxBits & ( PlatformEventBits_t ) PKTIO_EVT_MASK_RX_DATA ) != 0U ) { /* Keep Reading until there is no more bytes in comm interface. */ do @@ -1250,7 +1250,7 @@ static void _pktioReadThread( void * pUserData ) LogError( ( "Comm port open failed" ) ); } - ( void ) PlatformEventGroup_SetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, ( EventBits_t ) PKTIO_EVT_MASK_ABORTED ); + ( void ) PlatformEventGroup_SetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, ( PlatformEventBits_t ) PKTIO_EVT_MASK_ABORTED ); /* Call the shutdown callback if it is defined. */ if( pContext->pPktioShutdownCB != NULL ) @@ -1263,15 +1263,15 @@ static void _pktioReadThread( void * pUserData ) static void _PktioInitProcessReadThreadStatus( CellularContext_t * pContext ) { - PlatformEventGroup_EventBits uxBits = 0; + PlatformEventBits_t uxBits = 0; - uxBits = ( PlatformEventGroup_EventBits ) PlatformEventGroup_WaitBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, - ( ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_STARTED | ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_ABORTED ), - pdTRUE, - pdFALSE, - ( ( PlatformTickType ) ~( 0UL ) ) ); + uxBits = ( PlatformEventBits_t ) PlatformEventGroup_WaitBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, + ( ( PlatformEventBits_t ) PKTIO_EVT_MASK_STARTED | ( PlatformEventBits_t ) PKTIO_EVT_MASK_ABORTED ), + platformTRUE, + platformFALSE, + ( ( PlatformTickType_t ) ~( 0UL ) ) ); - if( ( uxBits & ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_ABORTED ) != ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_ABORTED ) + if( ( uxBits & ( PlatformEventBits_t ) PKTIO_EVT_MASK_ABORTED ) != ( PlatformEventBits_t ) PKTIO_EVT_MASK_ABORTED ) { pContext->bPktioUp = true; } @@ -1367,7 +1367,7 @@ CellularPktStatus_t _Cellular_PktioInit( CellularContext_t * pContext, { pContext->pPktioHandlepktCB = handlePacketCb; ( void ) PlatformEventGroup_ClearBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, - ( ( PlatformEventGroup_EventBits ) PKTIO_EVT_MASK_ALL_EVENTS ) ); + ( ( PlatformEventBits_t ) PKTIO_EVT_MASK_ALL_EVENTS ) ); /* Create the Read thread. */ status = Platform_CreateDetachedThread( _pktioReadThread, @@ -1516,19 +1516,19 @@ uint32_t _Cellular_PktioSendData( CellularContext_t * pContext, void _Cellular_PktioShutdown( CellularContext_t * pContext ) { - PlatformEventGroup_EventBits uxBits = 0; + PlatformEventBits_t uxBits = 0; if( ( pContext != NULL ) && ( pContext->bPktioUp ) ) { if( pContext->pPktioCommEvent != NULL ) { - ( void ) PlatformEventGroup_SetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, ( EventBits_t ) PKTIO_EVT_MASK_ABORT ); - uxBits = ( PlatformEventGroup_EventBits ) PlatformEventGroup_GetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent ); + ( void ) PlatformEventGroup_SetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent, ( PlatformEventBits_t ) PKTIO_EVT_MASK_ABORT ); + uxBits = ( PlatformEventBits_t ) PlatformEventGroup_GetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent ); - while( ( PlatformEventGroup_EventBits ) ( uxBits & PKTIO_EVT_MASK_ABORTED ) != ( PlatformEventGroup_EventBits ) ( PKTIO_EVT_MASK_ABORTED ) ) + while( ( PlatformEventBits_t ) ( uxBits & PKTIO_EVT_MASK_ABORTED ) != ( PlatformEventBits_t ) ( PKTIO_EVT_MASK_ABORTED ) ) { Platform_Delay( PKTIO_SHUTDOWN_WAIT_INTERVAL_MS ); - uxBits = ( PlatformEventGroup_EventBits ) PlatformEventGroup_GetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent ); + uxBits = ( PlatformEventBits_t ) PlatformEventGroup_GetBits( ( PlatformEventGroupHandle_t ) pContext->pPktioCommEvent ); } ( void ) PlatformEventGroup_Delete( pContext->pPktioCommEvent ); diff --git a/source/include/cellular_config_defaults.h b/source/include/cellular_config_defaults.h index 77b2c774..bc6c666c 100644 --- a/source/include/cellular_config_defaults.h +++ b/source/include/cellular_config_defaults.h @@ -464,6 +464,35 @@ #define CELLULAR_CONFIG_USE_CCID_COMMAND 1 #endif +/** + * @brief Use FreeRTOS platform function for backward compatibility.
+ * + * Define FreeRTOS platform function for cellular interface backward compatibility with versoin eariler + * than v1.4.0. + * + * Possible values:`0 or 1`
+ * Default value (if undefined): 1 + */ +#ifndef CELLULAR_CONFIG_PLATFORM_FREERTOS + #define CELLULAR_CONFIG_PLATFORM_FREERTOS 1 +#endif + +#if CELLULAR_CONFIG_PLATFORM_FREERTOS + #define PlatformQueueHandle_t QueueHandle_t + #define PlatformEventBits_t EventBits_t + #define PlatformBaseType_t BaseType_t + #define PlatformTickType_t TickType_t + #define platformTRUE pdTRUE + #define platformFALSE pdFALSE + #define platformPASS pdPASS + #define platformFAIL pdFAIL + #define platformMAX_DELAY portMAX_DELAY + #define PlatformQueue_Create xQueueCreate + #define PlatformQueue_Send xQueueSend + #define PlatformQueue_Receive xQueueReceive + #define PlatformQueue_Delete vQueueDelete +#endif /* if CELLULAR_CONFIG_PLATFORM_FREERTOS */ + /** * @brief Macro that is called in the cellular library for logging "Error" level * messages. diff --git a/source/include/private/cellular_common_internal.h b/source/include/private/cellular_common_internal.h index ecc5c3a3..a535584b 100644 --- a/source/include/private/cellular_common_internal.h +++ b/source/include/private/cellular_common_internal.h @@ -35,7 +35,9 @@ /* *INDENT-ON* */ /* Cellular includes. */ +#include "cellular_config_defaults.h" #include "cellular_platform.h" + #include "cellular_pkthandler_internal.h" #include "cellular_at_core.h" #include "cellular_pktio_internal.h" @@ -119,7 +121,7 @@ struct CellularContext /* Packet handler. */ PlatformMutex_t pktRequestMutex; /**< The mutex for sending request. */ PlatformMutex_t PktRespMutex; /**< The mutex for parsing the response from modem. */ - QueueHandle_t pktRespQueue; /**< Message queue to send/receive response. */ + PlatformQueueHandle_t pktRespQueue; /**< Message queue to send/receive response. */ CellularATCommandResponseReceivedCallback_t pktRespCB; /**< Callback used to inform about the response of an AT command sent using Cellular_ATCommandRaw API. */ CellularATCommandDataPrefixCallback_t pktDataPrefixCB; /**< Data prefix callback function for socket receive function. */ void * pDataPrefixCBContext; /**< The pCallbackContext passed to CellularATCommandDataPrefixCallback_t. */ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 88df9ea1..fe683a81 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -44,6 +44,7 @@ set( CELLULAR_COMMON_INCLUDE_DIRS ${CELLULAR_INCLUDE_DIRS}/common ) set( CELLULAR_COMMON_INCLUDE_PRIVATE_DIRS ${CELLULAR_INCLUDE_DIRS}/private ) set( CELLULAR_INTERFACE_INCLUDE_DIRS ${CELLULAR_COMMON_SOURCE_DIRS}/interface ) set( CELLULAR_TEST_DIRS ${MODULE_ROOT_DIR}/test/unit-test ) +set( CELLULAR_COVERITY_DIRS ${MODULE_ROOT_DIR}/test/coverity ) if( COV_ANALYSIS ) # Target for Coverity analysis that builds the library. @@ -60,7 +61,7 @@ if( COV_ANALYSIS ) target_compile_definitions( coverity_analysis PUBLIC CELLULAR_DO_NOT_USE_CUSTOM_CONFIG=1 ) # Cellular include path. - target_include_directories( coverity_analysis PUBLIC ${CELLULAR_COMMON_INCLUDE_DIRS} ${CELLULAR_INCLUDE_DIRS} ${CELLULAR_INTERFACE_INCLUDE_DIRS} ${CELLULAR_TEST_DIRS} ) + target_include_directories( coverity_analysis PUBLIC ${CELLULAR_COMMON_INCLUDE_DIRS} ${CELLULAR_INCLUDE_DIRS} ${CELLULAR_INTERFACE_INCLUDE_DIRS} ${CELLULAR_COVERITY_DIRS} ) # Cellular private include path. target_include_directories( coverity_analysis PRIVATE ${CELLULAR_COMMON_INCLUDE_PRIVATE_DIRS} ) @@ -73,7 +74,7 @@ if( COV_ANALYSIS ) add_custom_target( fix_source ALL COMMAND sed -i -b -e 's/pdFALSE/pdFAIL/g' -e 's/pdTRUE/pdPASS/g' ${CELLULAR_COMMON_SOURCE}) - add_dependencies( coverity_analysis fix_source ) + # add_dependencies( coverity_analysis fix_source ) endif() # ==================================== Test Configuration ======================================== diff --git a/test/coverity/cellular_platform.h b/test/coverity/cellular_platform.h new file mode 100644 index 00000000..38109736 --- /dev/null +++ b/test/coverity/cellular_platform.h @@ -0,0 +1,123 @@ +/* + * FreeRTOS-Cellular-Interface v1.3.0 + * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * https://www.FreeRTOS.org + * https://github.com/FreeRTOS + */ + +/** + * The purpose of this file is to compile cellular interface source file without + * platform dependency. + */ + +#ifndef __CELLULAR_PLATFORM_H__ +#define __CELLULAR_PLATFORM_H__ + +#include +#include + +#ifndef CELLULAR_DO_NOT_USE_CUSTOM_CONFIG + /* Include custom config file before other headers. */ + #include "cellular_config.h" +#endif +#include "cellular_config_defaults.h" + +/*-----------------------------------------------------------*/ + +#define platformTRUE 1 +#define platformFALSE 0 +#define platformPASS 1 +#define platformFAIL 0 + +#define platformMS_TO_TICKS( x ) ( x ) + +#define platformMAX_DELAY ( 0xFFFFFFFF ) + +#define PLATFORM_THREAD_DEFAULT_STACK_SIZE ( 2048U ) +#define PLATFORM_THREAD_DEFAULT_PRIORITY ( 5U ) + +/*-----------------------------------------------------------*/ + +struct PlatformEventGroupDefinition; +typedef struct PlatformEventGroupDefinition * PlatformEventGroupHandle_t; + +typedef int32_t PlatformBaseType_t; +typedef uint32_t PlatformUBaseType_t; + +typedef uint16_t PlatformEventBits_t; + +typedef uint32_t PlatformTickType_t; + +struct PlatformQueueDefinition; +typedef struct PlatformQueueDefinition * PlatformQueueHandle_t; + +typedef struct PlatformMutex +{ +} PlatformMutex_t; + +/*-----------------------------------------------------------*/ + +/* Delay functions. */ +void Platform_Delay( const PlatformTickType_t xTicksToDelay ); + +/* Event group functions. */ +void PlatformEventGroup_Delete( PlatformEventGroupHandle_t xEventGroup ); +PlatformEventBits_t PlatformEventGroup_ClearBits( PlatformEventGroupHandle_t xEventGroup, + const PlatformEventBits_t uxBitsToClear ); +PlatformEventGroupHandle_t PlatformEventGroup_Create( void ); +PlatformEventBits_t PlatformEventGroup_GetBits( PlatformEventGroupHandle_t xEventGroup ); +PlatformEventBits_t PlatformEventGroup_SetBits( PlatformEventGroupHandle_t xEventGroup, + const PlatformEventBits_t uxBitsToSet ); +PlatformBaseType_t PlatformEventGroup_SetBitsFromISR( PlatformEventGroupHandle_t xEventGroup, + const PlatformEventBits_t uxBitsToSet, + PlatformBaseType_t * pxHigherPriorityTaskWoken ); +PlatformBaseType_t PlatformEventGroup_WaitBits( const PlatformEventGroupHandle_t xEventGroup, + const PlatformEventBits_t uxBitsToWaitFor, + const PlatformBaseType_t xClearOnExit, + const PlatformBaseType_t xWaitForAllBits, + PlatformTickType_t xTicksToWait ); + +/* Queue functions. */ +void PlatformQueue_Delete( PlatformQueueHandle_t xQueue ); +PlatformBaseType_t PlatformQueue_Send( PlatformQueueHandle_t xQueue, + const void * pvItemToQueue, + PlatformTickType_t xTicksToWait ); +PlatformBaseType_t PlatformQueue_Receive( PlatformQueueHandle_t xQueue, + void * pvBuffer, + PlatformTickType_t xTicksToWait ); +PlatformQueueHandle_t PlatformQueue_Create( PlatformUBaseType_t uxQueueLength, + PlatformUBaseType_t uxItemSize ); + +/* Mutex functions. */ +bool PlatformMutex_Create( PlatformMutex_t * pNewMutex, + bool recursive ); +void PlatformMutex_Destroy( PlatformMutex_t * pMutex ); +void PlatformMutex_Lock( PlatformMutex_t * pMutex ); +bool PlatformMutex_TryLock( PlatformMutex_t * pMutex ); +void PlatformMutex_Unlock( PlatformMutex_t * pMutex ); + +/* Memory allocate functions. */ +void * Platform_Malloc( size_t xMallocSize ); +void Platform_Free( void * vPointer ); + +#endif /* __CELLULAR_PLATFORM_H__ */ From 8817501bc1ac289291ab1f0207d007a14111b441 Mon Sep 17 00:00:00 2001 From: "Ching-Hsin,Lee" Date: Thu, 9 May 2024 11:12:12 +0800 Subject: [PATCH 2/7] Remove critical section dependency --- source/cellular_common.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/source/cellular_common.c b/source/cellular_common.c index d9b358cb..f1cfe9fe 100644 --- a/source/cellular_common.c +++ b/source/cellular_common.c @@ -118,8 +118,6 @@ static CellularContext_t * _Cellular_AllocContext( void ) CellularContext_t * pContext = NULL; uint8_t i = 0; - taskENTER_CRITICAL(); - for( i = 0; i < CELLULAR_CONTEXT_MAX; i++ ) { if( cellularContextTable[ i ] == NULL ) @@ -144,8 +142,6 @@ static CellularContext_t * _Cellular_AllocContext( void ) } } - taskEXIT_CRITICAL(); - return pContext; } @@ -155,8 +151,6 @@ static void _Cellular_FreeContext( CellularContext_t * pContext ) { uint8_t i = 0; - taskENTER_CRITICAL(); - for( i = 0; i < CELLULAR_CONTEXT_MAX; i++ ) { if( cellularContextTable[ i ] == pContext ) @@ -170,8 +164,6 @@ static void _Cellular_FreeContext( CellularContext_t * pContext ) break; } } - - taskEXIT_CRITICAL(); } /*-----------------------------------------------------------*/ @@ -538,8 +530,6 @@ CellularError_t _Cellular_CreateSocketData( CellularContext_t * pContext, CellularSocketContext_t * pSocketData = NULL; uint8_t socketId = 0; - taskENTER_CRITICAL(); - for( socketId = 0; socketId < CELLULAR_NUM_SOCKET_MAX; socketId++ ) { if( pContext->pSocketData[ socketId ] == NULL ) @@ -570,8 +560,6 @@ CellularError_t _Cellular_CreateSocketData( CellularContext_t * pContext, } } - taskEXIT_CRITICAL(); - if( cellularStatus == CELLULAR_NO_MEMORY ) { LogError( ( "_Cellular_CreateSocket, Out of memory" ) ); From e2e72c5d0aa0409f08a6b46ffbcb322b0a4c3bf9 Mon Sep 17 00:00:00 2001 From: "Ching-Hsin,Lee" Date: Thu, 9 May 2024 11:34:24 +0800 Subject: [PATCH 3/7] Add CELLULAR_CONFIG_ASSERT config --- source/cellular_3gpp_api.c | 14 +++++++------- source/cellular_common.c | 4 ++-- source/cellular_pktio.c | 4 ++-- source/include/cellular_config_defaults.h | 10 ++++++++++ 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/source/cellular_3gpp_api.c b/source/cellular_3gpp_api.c index 542a1d42..80e9e251 100644 --- a/source/cellular_3gpp_api.c +++ b/source/cellular_3gpp_api.c @@ -863,7 +863,7 @@ static CellularError_t queryNetworkStatus( CellularContext_t * pContext, CellularNetworkRegType_t recvRegType = regType; CellularAtReq_t atReqGetResult = { 0 }; - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); atReqGetResult.pAtCmd = pCommand; atReqGetResult.atCmdType = CELLULAR_AT_MULTI_WITH_PREFIX; atReqGetResult.pAtRspPrefix = pPrefix; @@ -1449,7 +1449,7 @@ static CellularError_t atcmdQueryRegStatus( CellularContext_t * pContext, const cellularAtData_t * pLibAtData = NULL; CellularNetworkRegistrationStatus_t psRegStatus = REGISTRATION_STATUS_UNKNOWN; - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); cellularStatus = queryNetworkStatus( pContext, "AT+CREG?", "+CREG", CELLULAR_REG_TYPE_CREG ); @@ -2078,7 +2078,7 @@ CellularError_t Cellular_CommonGetIPAddress( CellularHandle_t cellularHandle, void _Cellular_DestroyAtDataMutex( CellularContext_t * pContext ) { - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); PlatformMutex_Destroy( &( pContext->libAtDataMutex ) ); } @@ -2089,7 +2089,7 @@ bool _Cellular_CreateAtDataMutex( CellularContext_t * pContext ) { bool status = false; - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); status = PlatformMutex_Create( &( pContext->libAtDataMutex ), false ); @@ -2100,7 +2100,7 @@ bool _Cellular_CreateAtDataMutex( CellularContext_t * pContext ) void _Cellular_LockAtDataMutex( CellularContext_t * pContext ) { - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); PlatformMutex_Lock( &( pContext->libAtDataMutex ) ); } @@ -2109,7 +2109,7 @@ void _Cellular_LockAtDataMutex( CellularContext_t * pContext ) void _Cellular_UnlockAtDataMutex( CellularContext_t * pContext ) { - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); PlatformMutex_Unlock( &( pContext->libAtDataMutex ) ); } @@ -2123,7 +2123,7 @@ void _Cellular_InitAtData( CellularContext_t * pContext, { cellularAtData_t * pLibAtData = NULL; - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); pLibAtData = &( pContext->libAtData ); diff --git a/source/cellular_common.c b/source/cellular_common.c index f1cfe9fe..97c5a035 100644 --- a/source/cellular_common.c +++ b/source/cellular_common.c @@ -180,7 +180,7 @@ static CellularError_t libOpen( CellularContext_t * pContext ) CellularError_t cellularStatus = CELLULAR_SUCCESS; CellularPktStatus_t pktStatus = CELLULAR_PKT_STATUS_OK; - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); PlatformMutex_Lock( &( pContext->libStatusMutex ) ); @@ -227,7 +227,7 @@ static void libClose( CellularContext_t * pContext ) bool bOpened = false; uint8_t i = 0; - configASSERT( pContext != NULL ); + CELLULAR_CONFIG_ASSERT( pContext != NULL ); PlatformMutex_Lock( &( pContext->libStatusMutex ) ); bOpened = pContext->bLibOpened; diff --git a/source/cellular_pktio.c b/source/cellular_pktio.c index 57037818..5cacadaa 100644 --- a/source/cellular_pktio.c +++ b/source/cellular_pktio.c @@ -151,7 +151,7 @@ static void _saveData( char * pLine, LogDebug( ( "_saveData : Save data %p with length %u", pLine, ( unsigned int ) dataLen ) ); pNew = ( CellularATCommandLine_t * ) Platform_Malloc( sizeof( CellularATCommandLine_t ) ); - configASSERT( ( pNew != NULL ) ); + CELLULAR_CONFIG_ASSERT( ( pNew != NULL ) ); /* Reuse the pktio buffer instead of allocate. */ pNew->pLine = pLine; @@ -287,7 +287,7 @@ static CellularATCommandResponse_t * _Cellular_AtResponseNew( void ) CellularATCommandResponse_t * pNew = NULL; pNew = ( CellularATCommandResponse_t * ) Platform_Malloc( sizeof( CellularATCommandResponse_t ) ); - configASSERT( ( pNew != NULL ) ); + CELLULAR_CONFIG_ASSERT( ( pNew != NULL ) ); ( void ) memset( ( void * ) pNew, 0, sizeof( CellularATCommandResponse_t ) ); diff --git a/source/include/cellular_config_defaults.h b/source/include/cellular_config_defaults.h index bc6c666c..04d4b9a8 100644 --- a/source/include/cellular_config_defaults.h +++ b/source/include/cellular_config_defaults.h @@ -464,6 +464,16 @@ #define CELLULAR_CONFIG_USE_CCID_COMMAND 1 #endif +/** + * @brief Assert function for cellular interface. + * + * Possible values:`any assert function`
+ * Default value (if undefined): configASSERT + */ +#ifndef CELLULAR_CONFIG_ASSERT + #define CELLULAR_CONFIG_ASSERT( X ) configASSERT( X ) +#endif + /** * @brief Use FreeRTOS platform function for backward compatibility.
* From 08deaf4b86769b29d0baed74994ad3bf0178b6c5 Mon Sep 17 00:00:00 2001 From: "Ching-Hsin,Lee" Date: Thu, 9 May 2024 11:50:23 +0800 Subject: [PATCH 4/7] Use unit test folder --- test/CMakeLists.txt | 3 +- test/coverity/cellular_platform.h | 123 ------------------------------ 2 files changed, 1 insertion(+), 125 deletions(-) delete mode 100644 test/coverity/cellular_platform.h diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index fe683a81..5ed27b71 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -44,7 +44,6 @@ set( CELLULAR_COMMON_INCLUDE_DIRS ${CELLULAR_INCLUDE_DIRS}/common ) set( CELLULAR_COMMON_INCLUDE_PRIVATE_DIRS ${CELLULAR_INCLUDE_DIRS}/private ) set( CELLULAR_INTERFACE_INCLUDE_DIRS ${CELLULAR_COMMON_SOURCE_DIRS}/interface ) set( CELLULAR_TEST_DIRS ${MODULE_ROOT_DIR}/test/unit-test ) -set( CELLULAR_COVERITY_DIRS ${MODULE_ROOT_DIR}/test/coverity ) if( COV_ANALYSIS ) # Target for Coverity analysis that builds the library. @@ -61,7 +60,7 @@ if( COV_ANALYSIS ) target_compile_definitions( coverity_analysis PUBLIC CELLULAR_DO_NOT_USE_CUSTOM_CONFIG=1 ) # Cellular include path. - target_include_directories( coverity_analysis PUBLIC ${CELLULAR_COMMON_INCLUDE_DIRS} ${CELLULAR_INCLUDE_DIRS} ${CELLULAR_INTERFACE_INCLUDE_DIRS} ${CELLULAR_COVERITY_DIRS} ) + target_include_directories( coverity_analysis PUBLIC ${CELLULAR_COMMON_INCLUDE_DIRS} ${CELLULAR_INCLUDE_DIRS} ${CELLULAR_INTERFACE_INCLUDE_DIRS} ${CELLULAR_TEST_DIRS} ) # Cellular private include path. target_include_directories( coverity_analysis PRIVATE ${CELLULAR_COMMON_INCLUDE_PRIVATE_DIRS} ) diff --git a/test/coverity/cellular_platform.h b/test/coverity/cellular_platform.h deleted file mode 100644 index 38109736..00000000 --- a/test/coverity/cellular_platform.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * FreeRTOS-Cellular-Interface v1.3.0 - * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * https://www.FreeRTOS.org - * https://github.com/FreeRTOS - */ - -/** - * The purpose of this file is to compile cellular interface source file without - * platform dependency. - */ - -#ifndef __CELLULAR_PLATFORM_H__ -#define __CELLULAR_PLATFORM_H__ - -#include -#include - -#ifndef CELLULAR_DO_NOT_USE_CUSTOM_CONFIG - /* Include custom config file before other headers. */ - #include "cellular_config.h" -#endif -#include "cellular_config_defaults.h" - -/*-----------------------------------------------------------*/ - -#define platformTRUE 1 -#define platformFALSE 0 -#define platformPASS 1 -#define platformFAIL 0 - -#define platformMS_TO_TICKS( x ) ( x ) - -#define platformMAX_DELAY ( 0xFFFFFFFF ) - -#define PLATFORM_THREAD_DEFAULT_STACK_SIZE ( 2048U ) -#define PLATFORM_THREAD_DEFAULT_PRIORITY ( 5U ) - -/*-----------------------------------------------------------*/ - -struct PlatformEventGroupDefinition; -typedef struct PlatformEventGroupDefinition * PlatformEventGroupHandle_t; - -typedef int32_t PlatformBaseType_t; -typedef uint32_t PlatformUBaseType_t; - -typedef uint16_t PlatformEventBits_t; - -typedef uint32_t PlatformTickType_t; - -struct PlatformQueueDefinition; -typedef struct PlatformQueueDefinition * PlatformQueueHandle_t; - -typedef struct PlatformMutex -{ -} PlatformMutex_t; - -/*-----------------------------------------------------------*/ - -/* Delay functions. */ -void Platform_Delay( const PlatformTickType_t xTicksToDelay ); - -/* Event group functions. */ -void PlatformEventGroup_Delete( PlatformEventGroupHandle_t xEventGroup ); -PlatformEventBits_t PlatformEventGroup_ClearBits( PlatformEventGroupHandle_t xEventGroup, - const PlatformEventBits_t uxBitsToClear ); -PlatformEventGroupHandle_t PlatformEventGroup_Create( void ); -PlatformEventBits_t PlatformEventGroup_GetBits( PlatformEventGroupHandle_t xEventGroup ); -PlatformEventBits_t PlatformEventGroup_SetBits( PlatformEventGroupHandle_t xEventGroup, - const PlatformEventBits_t uxBitsToSet ); -PlatformBaseType_t PlatformEventGroup_SetBitsFromISR( PlatformEventGroupHandle_t xEventGroup, - const PlatformEventBits_t uxBitsToSet, - PlatformBaseType_t * pxHigherPriorityTaskWoken ); -PlatformBaseType_t PlatformEventGroup_WaitBits( const PlatformEventGroupHandle_t xEventGroup, - const PlatformEventBits_t uxBitsToWaitFor, - const PlatformBaseType_t xClearOnExit, - const PlatformBaseType_t xWaitForAllBits, - PlatformTickType_t xTicksToWait ); - -/* Queue functions. */ -void PlatformQueue_Delete( PlatformQueueHandle_t xQueue ); -PlatformBaseType_t PlatformQueue_Send( PlatformQueueHandle_t xQueue, - const void * pvItemToQueue, - PlatformTickType_t xTicksToWait ); -PlatformBaseType_t PlatformQueue_Receive( PlatformQueueHandle_t xQueue, - void * pvBuffer, - PlatformTickType_t xTicksToWait ); -PlatformQueueHandle_t PlatformQueue_Create( PlatformUBaseType_t uxQueueLength, - PlatformUBaseType_t uxItemSize ); - -/* Mutex functions. */ -bool PlatformMutex_Create( PlatformMutex_t * pNewMutex, - bool recursive ); -void PlatformMutex_Destroy( PlatformMutex_t * pMutex ); -void PlatformMutex_Lock( PlatformMutex_t * pMutex ); -bool PlatformMutex_TryLock( PlatformMutex_t * pMutex ); -void PlatformMutex_Unlock( PlatformMutex_t * pMutex ); - -/* Memory allocate functions. */ -void * Platform_Malloc( size_t xMallocSize ); -void Platform_Free( void * vPointer ); - -#endif /* __CELLULAR_PLATFORM_H__ */ From d3e0a3b550a728a73db8675d44f4f12b11e44541 Mon Sep 17 00:00:00 2001 From: "Ching-Hsin,Lee" Date: Thu, 9 May 2024 11:53:47 +0800 Subject: [PATCH 5/7] Update cellular_common_internal.h header --- source/include/private/cellular_common_internal.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/include/private/cellular_common_internal.h b/source/include/private/cellular_common_internal.h index a535584b..5b6e073d 100644 --- a/source/include/private/cellular_common_internal.h +++ b/source/include/private/cellular_common_internal.h @@ -35,9 +35,13 @@ /* *INDENT-ON* */ /* Cellular includes. */ -#include "cellular_config_defaults.h" -#include "cellular_platform.h" +#include "cellular_platform.h" +#ifndef CELLULAR_DO_NOT_USE_CUSTOM_CONFIG + /* Include custom config file before other headers. */ + #include "cellular_config.h" +#endif +#include "cellular_config_defaults.h" #include "cellular_pkthandler_internal.h" #include "cellular_at_core.h" #include "cellular_pktio_internal.h" From fb4bffffc061b5044e3677e4a4dca5204a51d97c Mon Sep 17 00:00:00 2001 From: "Ching-Hsin,Lee" Date: Thu, 9 May 2024 12:04:13 +0800 Subject: [PATCH 6/7] Remove fix_source --- test/CMakeLists.txt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5ed27b71..78d2693b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -67,13 +67,6 @@ if( COV_ANALYSIS ) # Build without debug enabled when performing static analysis target_compile_options( coverity_analysis PUBLIC -DNDEBUG ) - - file( GLOB CELLULAR_COMMON_SOURCE ${CELLULAR_COMMON_SOURCE_DIRS}/*.c ) - - add_custom_target( fix_source ALL - COMMAND sed -i -b -e 's/pdFALSE/pdFAIL/g' -e 's/pdTRUE/pdPASS/g' ${CELLULAR_COMMON_SOURCE}) - - # add_dependencies( coverity_analysis fix_source ) endif() # ==================================== Test Configuration ======================================== From ea145b62ba2dadf850a8f044ef4443f2c7c6bc8f Mon Sep 17 00:00:00 2001 From: "Ching-Hsin,Lee" Date: Thu, 9 May 2024 12:08:22 +0800 Subject: [PATCH 7/7] Fix spelling formating and size table --- docs/doxygen/include/size_table.md | 4 +- source/include/cellular_config_defaults.h | 4 +- tools/uncrustify.cfg | 577 ++++++++++++++++++++-- 3 files changed, 549 insertions(+), 36 deletions(-) diff --git a/docs/doxygen/include/size_table.md b/docs/doxygen/include/size_table.md index cf892033..bbe2276b 100644 --- a/docs/doxygen/include/size_table.md +++ b/docs/doxygen/include/size_table.md @@ -30,7 +30,7 @@ cellular_common.c
1.7K
-
1.6K
+
1.5K
cellular_pkthandler.c @@ -45,6 +45,6 @@ Total estimates
15.1K
-
13.8K
+
13.7K
diff --git a/source/include/cellular_config_defaults.h b/source/include/cellular_config_defaults.h index 04d4b9a8..618da42b 100644 --- a/source/include/cellular_config_defaults.h +++ b/source/include/cellular_config_defaults.h @@ -471,13 +471,13 @@ * Default value (if undefined): configASSERT */ #ifndef CELLULAR_CONFIG_ASSERT - #define CELLULAR_CONFIG_ASSERT( X ) configASSERT( X ) + #define CELLULAR_CONFIG_ASSERT( X ) configASSERT( X ) #endif /** * @brief Use FreeRTOS platform function for backward compatibility.
* - * Define FreeRTOS platform function for cellular interface backward compatibility with versoin eariler + * Define FreeRTOS platform function for cellular interface backward compatibility with version earlier * than v1.4.0. * * Possible values:`0 or 1`
diff --git a/tools/uncrustify.cfg b/tools/uncrustify.cfg index 0cb7d3fb..3f4c40ca 100644 --- a/tools/uncrustify.cfg +++ b/tools/uncrustify.cfg @@ -1,115 +1,446 @@ -# Uncrustify-0.67 +# Uncrustify-0.69.0 + +newlines = auto # lf/crlf/cr/auto input_tab_size = 4 # unsigned number output_tab_size = 4 # unsigned number +string_escape_char = 92 # unsigned number +string_escape_char2 = 0 # unsigned number +string_replace_tab_chars = false # true/false +tok_split_gte = false # true/false +disable_processing_cmt = " *INDENT-OFF*" # string +enable_processing_cmt = " *INDENT-ON*" # string +enable_digraphs = false # true/false +utf8_bom = ignore # ignore/add/remove/force +utf8_byte = false # true/false +utf8_force = false # true/false sp_arith = force # ignore/add/remove/force +sp_arith_additive = ignore # ignore/add/remove/force sp_assign = force # ignore/add/remove/force +sp_cpp_lambda_assign = ignore # ignore/add/remove/force +sp_cpp_lambda_paren = ignore # ignore/add/remove/force sp_assign_default = force # ignore/add/remove/force sp_before_assign = force # ignore/add/remove/force sp_after_assign = force # ignore/add/remove/force +sp_enum_paren = ignore # ignore/add/remove/force sp_enum_assign = force # ignore/add/remove/force sp_enum_before_assign = force # ignore/add/remove/force sp_enum_after_assign = force # ignore/add/remove/force +sp_enum_colon = ignore # ignore/add/remove/force +sp_pp_concat = add # ignore/add/remove/force sp_pp_stringify = add # ignore/add/remove/force +sp_before_pp_stringify = ignore # ignore/add/remove/force sp_bool = force # ignore/add/remove/force sp_compare = force # ignore/add/remove/force sp_inside_paren = force # ignore/add/remove/force sp_paren_paren = force # ignore/add/remove/force +sp_cparen_oparen = ignore # ignore/add/remove/force +sp_balance_nested_parens = false # true/false sp_paren_brace = force # ignore/add/remove/force +sp_brace_brace = ignore # ignore/add/remove/force sp_before_ptr_star = force # ignore/add/remove/force sp_before_unnamed_ptr_star = force # ignore/add/remove/force sp_between_ptr_star = remove # ignore/add/remove/force sp_after_ptr_star = force # ignore/add/remove/force +sp_after_ptr_block_caret = ignore # ignore/add/remove/force +sp_after_ptr_star_qualifier = ignore # ignore/add/remove/force +sp_after_ptr_star_func = ignore # ignore/add/remove/force +sp_ptr_star_paren = ignore # ignore/add/remove/force +sp_before_ptr_star_func = ignore # ignore/add/remove/force sp_before_byref = force # ignore/add/remove/force +sp_before_unnamed_byref = ignore # ignore/add/remove/force sp_after_byref = remove # ignore/add/remove/force sp_after_byref_func = remove # ignore/add/remove/force +sp_before_byref_func = ignore # ignore/add/remove/force +sp_after_type = force # ignore/add/remove/force +sp_after_decltype = ignore # ignore/add/remove/force +sp_before_template_paren = ignore # ignore/add/remove/force +sp_template_angle = ignore # ignore/add/remove/force sp_before_angle = remove # ignore/add/remove/force sp_inside_angle = remove # ignore/add/remove/force +sp_inside_angle_empty = ignore # ignore/add/remove/force +sp_angle_colon = ignore # ignore/add/remove/force sp_after_angle = force # ignore/add/remove/force +sp_angle_paren = ignore # ignore/add/remove/force +sp_angle_paren_empty = ignore # ignore/add/remove/force +sp_angle_word = ignore # ignore/add/remove/force +sp_angle_shift = add # ignore/add/remove/force +sp_permit_cpp11_shift = false # true/false sp_before_sparen = remove # ignore/add/remove/force sp_inside_sparen = force # ignore/add/remove/force +sp_inside_sparen_open = ignore # ignore/add/remove/force +sp_inside_sparen_close = ignore # ignore/add/remove/force sp_after_sparen = force # ignore/add/remove/force sp_sparen_brace = force # ignore/add/remove/force +sp_invariant_paren = ignore # ignore/add/remove/force +sp_after_invariant_paren = ignore # ignore/add/remove/force +sp_special_semi = ignore # ignore/add/remove/force +sp_before_semi = remove # ignore/add/remove/force sp_before_semi_for = remove # ignore/add/remove/force sp_before_semi_for_empty = add # ignore/add/remove/force +sp_after_semi = add # ignore/add/remove/force +sp_after_semi_for = force # ignore/add/remove/force sp_after_semi_for_empty = force # ignore/add/remove/force sp_before_square = remove # ignore/add/remove/force sp_before_squares = remove # ignore/add/remove/force +sp_cpp_before_struct_binding = ignore # ignore/add/remove/force sp_inside_square = force # ignore/add/remove/force +sp_inside_square_oc_array = ignore # ignore/add/remove/force sp_after_comma = force # ignore/add/remove/force +sp_before_comma = remove # ignore/add/remove/force +sp_after_mdatype_commas = ignore # ignore/add/remove/force +sp_before_mdatype_commas = ignore # ignore/add/remove/force +sp_between_mdatype_commas = ignore # ignore/add/remove/force +sp_paren_comma = force # ignore/add/remove/force +sp_before_ellipsis = ignore # ignore/add/remove/force +sp_type_ellipsis = ignore # ignore/add/remove/force +sp_type_question = ignore # ignore/add/remove/force +sp_paren_ellipsis = ignore # ignore/add/remove/force +sp_paren_qualifier = ignore # ignore/add/remove/force +sp_paren_noexcept = ignore # ignore/add/remove/force +sp_after_class_colon = ignore # ignore/add/remove/force +sp_before_class_colon = ignore # ignore/add/remove/force +sp_after_constr_colon = ignore # ignore/add/remove/force +sp_before_constr_colon = ignore # ignore/add/remove/force +sp_before_case_colon = remove # ignore/add/remove/force +sp_after_operator = ignore # ignore/add/remove/force +sp_after_operator_sym = ignore # ignore/add/remove/force +sp_after_operator_sym_empty = ignore # ignore/add/remove/force sp_after_cast = force # ignore/add/remove/force sp_inside_paren_cast = force # ignore/add/remove/force +sp_cpp_cast_paren = ignore # ignore/add/remove/force sp_sizeof_paren = remove # ignore/add/remove/force +sp_sizeof_ellipsis = ignore # ignore/add/remove/force +sp_sizeof_ellipsis_paren = ignore # ignore/add/remove/force +sp_decltype_paren = ignore # ignore/add/remove/force +sp_after_tag = ignore # ignore/add/remove/force sp_inside_braces_enum = force # ignore/add/remove/force sp_inside_braces_struct = force # ignore/add/remove/force +sp_inside_braces_oc_dict = ignore # ignore/add/remove/force +sp_after_type_brace_init_lst_open = ignore # ignore/add/remove/force +sp_before_type_brace_init_lst_close = ignore # ignore/add/remove/force +sp_inside_type_brace_init_lst = ignore # ignore/add/remove/force sp_inside_braces = force # ignore/add/remove/force sp_inside_braces_empty = remove # ignore/add/remove/force sp_type_func = force # ignore/add/remove/force +sp_type_brace_init_lst = ignore # ignore/add/remove/force sp_func_proto_paren = remove # ignore/add/remove/force +sp_func_proto_paren_empty = ignore # ignore/add/remove/force sp_func_def_paren = remove # ignore/add/remove/force +sp_func_def_paren_empty = ignore # ignore/add/remove/force sp_inside_fparens = remove # ignore/add/remove/force sp_inside_fparen = force # ignore/add/remove/force +sp_inside_tparen = ignore # ignore/add/remove/force +sp_after_tparen_close = ignore # ignore/add/remove/force +sp_square_fparen = ignore # ignore/add/remove/force sp_fparen_brace = add # ignore/add/remove/force +sp_fparen_brace_initializer = ignore # ignore/add/remove/force +sp_fparen_dbrace = ignore # ignore/add/remove/force sp_func_call_paren = remove # ignore/add/remove/force +sp_func_call_paren_empty = ignore # ignore/add/remove/force +sp_func_call_user_paren = ignore # ignore/add/remove/force +sp_func_call_user_inside_fparen = ignore # ignore/add/remove/force +sp_func_call_user_paren_paren = ignore # ignore/add/remove/force sp_func_class_paren = remove # ignore/add/remove/force +sp_func_class_paren_empty = ignore # ignore/add/remove/force sp_return_paren = remove # ignore/add/remove/force +sp_return_brace = ignore # ignore/add/remove/force sp_attribute_paren = remove # ignore/add/remove/force sp_defined_paren = remove # ignore/add/remove/force +sp_throw_paren = ignore # ignore/add/remove/force +sp_after_throw = ignore # ignore/add/remove/force +sp_catch_paren = ignore # ignore/add/remove/force +sp_oc_catch_paren = ignore # ignore/add/remove/force +sp_oc_classname_paren = ignore # ignore/add/remove/force +sp_version_paren = ignore # ignore/add/remove/force +sp_scope_paren = ignore # ignore/add/remove/force +sp_super_paren = remove # ignore/add/remove/force +sp_this_paren = remove # ignore/add/remove/force sp_macro = force # ignore/add/remove/force sp_macro_func = force # ignore/add/remove/force +sp_else_brace = ignore # ignore/add/remove/force +sp_brace_else = ignore # ignore/add/remove/force sp_brace_typedef = force # ignore/add/remove/force +sp_catch_brace = ignore # ignore/add/remove/force +sp_oc_catch_brace = ignore # ignore/add/remove/force +sp_brace_catch = ignore # ignore/add/remove/force +sp_oc_brace_catch = ignore # ignore/add/remove/force +sp_finally_brace = ignore # ignore/add/remove/force +sp_brace_finally = ignore # ignore/add/remove/force +sp_try_brace = ignore # ignore/add/remove/force +sp_getset_brace = ignore # ignore/add/remove/force +sp_word_brace = add # ignore/add/remove/force +sp_word_brace_ns = add # ignore/add/remove/force sp_before_dc = remove # ignore/add/remove/force sp_after_dc = remove # ignore/add/remove/force +sp_d_array_colon = ignore # ignore/add/remove/force +sp_not = remove # ignore/add/remove/force +sp_inv = remove # ignore/add/remove/force +sp_addr = remove # ignore/add/remove/force +sp_member = remove # ignore/add/remove/force +sp_deref = remove # ignore/add/remove/force +sp_sign = remove # ignore/add/remove/force +sp_incdec = remove # ignore/add/remove/force +sp_before_nl_cont = add # ignore/add/remove/force +sp_after_oc_scope = ignore # ignore/add/remove/force +sp_after_oc_colon = ignore # ignore/add/remove/force +sp_before_oc_colon = ignore # ignore/add/remove/force +sp_after_oc_dict_colon = ignore # ignore/add/remove/force +sp_before_oc_dict_colon = ignore # ignore/add/remove/force +sp_after_send_oc_colon = ignore # ignore/add/remove/force +sp_before_send_oc_colon = ignore # ignore/add/remove/force +sp_after_oc_type = ignore # ignore/add/remove/force +sp_after_oc_return_type = ignore # ignore/add/remove/force +sp_after_oc_at_sel = ignore # ignore/add/remove/force +sp_after_oc_at_sel_parens = ignore # ignore/add/remove/force +sp_inside_oc_at_sel_parens = ignore # ignore/add/remove/force +sp_before_oc_block_caret = ignore # ignore/add/remove/force +sp_after_oc_block_caret = ignore # ignore/add/remove/force +sp_after_oc_msg_receiver = ignore # ignore/add/remove/force +sp_after_oc_property = ignore # ignore/add/remove/force +sp_after_oc_synchronized = ignore # ignore/add/remove/force sp_cond_colon = force # ignore/add/remove/force +sp_cond_colon_before = ignore # ignore/add/remove/force +sp_cond_colon_after = ignore # ignore/add/remove/force sp_cond_question = force # ignore/add/remove/force +sp_cond_question_before = ignore # ignore/add/remove/force +sp_cond_question_after = ignore # ignore/add/remove/force +sp_cond_ternary_short = ignore # ignore/add/remove/force sp_case_label = force # ignore/add/remove/force +sp_range = ignore # ignore/add/remove/force +sp_after_for_colon = ignore # ignore/add/remove/force +sp_before_for_colon = ignore # ignore/add/remove/force +sp_extern_paren = ignore # ignore/add/remove/force +sp_cmt_cpp_start = ignore # ignore/add/remove/force +sp_cmt_cpp_doxygen = false # true/false +sp_cmt_cpp_qttr = false # true/false sp_endif_cmt = force # ignore/add/remove/force +sp_after_new = ignore # ignore/add/remove/force +sp_between_new_paren = ignore # ignore/add/remove/force +sp_after_newop_paren = ignore # ignore/add/remove/force +sp_inside_newop_paren = ignore # ignore/add/remove/force +sp_inside_newop_paren_open = ignore # ignore/add/remove/force +sp_inside_newop_paren_close = ignore # ignore/add/remove/force sp_before_tr_emb_cmt = force # ignore/add/remove/force sp_num_before_tr_emb_cmt = 1 # unsigned number +sp_annotation_paren = ignore # ignore/add/remove/force +sp_skip_vbrace_tokens = false # true/false +sp_after_noexcept = ignore # ignore/add/remove/force +sp_vala_after_translation = ignore # ignore/add/remove/force +force_tab_after_define = false # true/false indent_columns = 4 # unsigned number +indent_continue = 0 # number +indent_continue_class_head = 0 # unsigned number +indent_single_newlines = false # true/false +indent_param = 0 # unsigned number indent_with_tabs = 0 # unsigned number -indent_align_string = true # false/true -indent_class = true # false/true -indent_class_colon = true # false/true +indent_cmt_with_tabs = false # true/false +indent_align_string = true # true/false +indent_xml_string = 0 # unsigned number +indent_brace = 0 # unsigned number +indent_braces = false # true/false +indent_braces_no_func = false # true/false +indent_braces_no_class = false # true/false +indent_braces_no_struct = false # true/false +indent_brace_parent = false # true/false +indent_paren_open_brace = false # true/false +indent_cs_delegate_brace = false # true/false +indent_cs_delegate_body = false # true/false +indent_namespace = false # true/false +indent_namespace_single_indent = false # true/false +indent_namespace_level = 0 # unsigned number +indent_namespace_limit = 0 # unsigned number +indent_extern = false # true/false +indent_class = true # true/false +indent_class_colon = true # true/false +indent_class_on_colon = false # true/false +indent_constr_colon = false # true/false +indent_ctor_init_leading = 2 # unsigned number +indent_ctor_init = 0 # number +indent_else_if = false # true/false +indent_var_def_blk = 0 # number +indent_var_def_cont = false # true/false +indent_shift = false # true/false +indent_func_def_force_col1 = false # true/false +indent_func_call_param = false # true/false +indent_func_def_param = false # true/false +indent_func_proto_param = false # true/false +indent_func_class_param = false # true/false +indent_func_ctor_var_param = false # true/false +indent_template_param = false # true/false +indent_func_param_double = false # true/false +indent_func_const = 0 # unsigned number +indent_func_throw = 0 # unsigned number indent_member = 3 # unsigned number +indent_member_single = false # true/false +indent_sing_line_comments = 0 # unsigned number +indent_relative_single_line_comments = false # true/false indent_switch_case = 4 # unsigned number +indent_switch_pp = true # true/false +indent_case_shift = 0 # unsigned number indent_case_brace = 3 # number -nl_assign_leave_one_liners = true # false/true -nl_class_leave_one_liners = true # false/true +indent_col1_comment = false # true/false +indent_col1_multi_string_literal = false # true/false +indent_label = 1 # number +indent_access_spec = 1 # number +indent_access_spec_body = false # true/false +indent_paren_nl = false # true/false +indent_paren_close = 0 # unsigned number +indent_paren_after_func_def = false # true/false +indent_paren_after_func_decl = false # true/false +indent_paren_after_func_call = false # true/false +indent_comma_paren = false # true/false +indent_bool_paren = false # true/false +indent_semicolon_for_paren = false # true/false +indent_first_bool_expr = false # true/false +indent_first_for_expr = false # true/false +indent_square_nl = false # true/false +indent_preserve_sql = false # true/false +indent_align_assign = true # true/false +indent_align_paren = true # true/false +indent_oc_block = false # true/false +indent_oc_block_msg = 0 # unsigned number +indent_oc_msg_colon = 0 # unsigned number +indent_oc_msg_prioritize_first_colon = true # true/false +indent_oc_block_msg_xcode_style = false # true/false +indent_oc_block_msg_from_keyword = false # true/false +indent_oc_block_msg_from_colon = false # true/false +indent_oc_block_msg_from_caret = false # true/false +indent_oc_block_msg_from_brace = false # true/false +indent_min_vbrace_open = 0 # unsigned number +indent_vbrace_open_on_tabstop = false # true/false +indent_token_after_brace = true # true/false +indent_cpp_lambda_body = false # true/false +indent_using_block = true # true/false +indent_ternary_operator = 0 # unsigned number +indent_off_after_return_new = false # true/false +indent_single_after_return = false # true/false +indent_ignore_asm_block = false # true/false +nl_collapse_empty_body = false # true/false +nl_assign_leave_one_liners = true # true/false +nl_class_leave_one_liners = true # true/false +nl_enum_leave_one_liners = false # true/false +nl_getset_leave_one_liners = false # true/false +nl_cs_property_leave_one_liners = false # true/false +nl_func_leave_one_liners = false # true/false +nl_cpp_lambda_leave_one_liners = false # true/false +nl_if_leave_one_liners = false # true/false +nl_while_leave_one_liners = false # true/false +nl_for_leave_one_liners = false # true/false +nl_oc_msg_leave_one_liner = false # true/false +nl_oc_mdef_brace = ignore # ignore/add/remove/force +nl_oc_block_brace = ignore # ignore/add/remove/force +nl_oc_interface_brace = ignore # ignore/add/remove/force +nl_oc_implementation_brace = ignore # ignore/add/remove/force nl_start_of_file = remove # ignore/add/remove/force +nl_start_of_file_min = 0 # unsigned number nl_end_of_file = force # ignore/add/remove/force nl_end_of_file_min = 1 # unsigned number nl_assign_brace = add # ignore/add/remove/force -nl_func_var_def_blk = 1 # unsigned number +nl_assign_square = ignore # ignore/add/remove/force +nl_tsquare_brace = ignore # ignore/add/remove/force +nl_after_square_assign = ignore # ignore/add/remove/force nl_fcall_brace = add # ignore/add/remove/force nl_enum_brace = force # ignore/add/remove/force +nl_enum_class = ignore # ignore/add/remove/force +nl_enum_class_identifier = ignore # ignore/add/remove/force +nl_enum_identifier_colon = ignore # ignore/add/remove/force +nl_enum_colon_type = ignore # ignore/add/remove/force nl_struct_brace = force # ignore/add/remove/force nl_union_brace = force # ignore/add/remove/force nl_if_brace = add # ignore/add/remove/force nl_brace_else = add # ignore/add/remove/force +nl_elseif_brace = ignore # ignore/add/remove/force nl_else_brace = add # ignore/add/remove/force +nl_else_if = ignore # ignore/add/remove/force +nl_before_if_closing_paren = ignore # ignore/add/remove/force +nl_brace_finally = ignore # ignore/add/remove/force +nl_finally_brace = ignore # ignore/add/remove/force +nl_try_brace = ignore # ignore/add/remove/force nl_getset_brace = force # ignore/add/remove/force nl_for_brace = add # ignore/add/remove/force +nl_catch_brace = ignore # ignore/add/remove/force +nl_oc_catch_brace = ignore # ignore/add/remove/force +nl_brace_catch = ignore # ignore/add/remove/force +nl_oc_brace_catch = ignore # ignore/add/remove/force +nl_brace_square = ignore # ignore/add/remove/force +nl_brace_fparen = ignore # ignore/add/remove/force nl_while_brace = add # ignore/add/remove/force +nl_scope_brace = ignore # ignore/add/remove/force +nl_unittest_brace = ignore # ignore/add/remove/force +nl_version_brace = ignore # ignore/add/remove/force +nl_using_brace = ignore # ignore/add/remove/force +nl_brace_brace = ignore # ignore/add/remove/force nl_do_brace = add # ignore/add/remove/force +nl_brace_while = ignore # ignore/add/remove/force nl_switch_brace = add # ignore/add/remove/force -nl_multi_line_define = true # false/true -nl_before_case = true # false/true -nl_after_case = true # false/true +nl_synchronized_brace = ignore # ignore/add/remove/force +nl_multi_line_cond = false # true/false +nl_multi_line_define = true # true/false +nl_before_case = true # true/false +nl_after_case = true # true/false +nl_case_colon_brace = ignore # ignore/add/remove/force +nl_before_throw = ignore # ignore/add/remove/force +nl_namespace_brace = ignore # ignore/add/remove/force +nl_template_class = ignore # ignore/add/remove/force +nl_class_brace = ignore # ignore/add/remove/force +nl_class_init_args = ignore # ignore/add/remove/force +nl_constr_init_args = ignore # ignore/add/remove/force +nl_enum_own_lines = ignore # ignore/add/remove/force nl_func_type_name = remove # ignore/add/remove/force +nl_func_type_name_class = ignore # ignore/add/remove/force +nl_func_class_scope = ignore # ignore/add/remove/force +nl_func_scope_name = ignore # ignore/add/remove/force nl_func_proto_type_name = remove # ignore/add/remove/force nl_func_paren = remove # ignore/add/remove/force +nl_func_paren_empty = ignore # ignore/add/remove/force nl_func_def_paren = remove # ignore/add/remove/force +nl_func_def_paren_empty = ignore # ignore/add/remove/force +nl_func_call_paren = ignore # ignore/add/remove/force +nl_func_call_paren_empty = ignore # ignore/add/remove/force nl_func_decl_start = remove # ignore/add/remove/force nl_func_def_start = remove # ignore/add/remove/force +nl_func_decl_start_single = ignore # ignore/add/remove/force +nl_func_def_start_single = ignore # ignore/add/remove/force +nl_func_decl_start_multi_line = false # true/false +nl_func_def_start_multi_line = false # true/false nl_func_decl_args = add # ignore/add/remove/force nl_func_def_args = add # ignore/add/remove/force +nl_func_decl_args_multi_line = false # true/false +nl_func_def_args_multi_line = false # true/false nl_func_decl_end = remove # ignore/add/remove/force nl_func_def_end = remove # ignore/add/remove/force +nl_func_decl_end_single = ignore # ignore/add/remove/force +nl_func_def_end_single = ignore # ignore/add/remove/force +nl_func_decl_end_multi_line = false # true/false +nl_func_def_end_multi_line = false # true/false +nl_func_decl_empty = ignore # ignore/add/remove/force +nl_func_def_empty = ignore # ignore/add/remove/force +nl_func_call_empty = ignore # ignore/add/remove/force +nl_func_call_start = ignore # ignore/add/remove/force +nl_func_call_start_multi_line = false # true/false +nl_func_call_args_multi_line = false # true/false +nl_func_call_end_multi_line = false # true/false +nl_oc_msg_args = false # true/false nl_fdef_brace = add # ignore/add/remove/force -nl_after_semicolon = true # false/true -nl_after_brace_open = true # false/true -nl_after_brace_close = true # false/true -nl_squeeze_ifdef = true # false/true +nl_fdef_brace_cond = ignore # ignore/add/remove/force +nl_cpp_ldef_brace = ignore # ignore/add/remove/force +nl_return_expr = ignore # ignore/add/remove/force +nl_after_semicolon = true # true/false +nl_paren_dbrace_open = ignore # ignore/add/remove/force +nl_type_brace_init_lst = ignore # ignore/add/remove/force +nl_type_brace_init_lst_open = ignore # ignore/add/remove/force +nl_type_brace_init_lst_close = ignore # ignore/add/remove/force +nl_after_brace_open = true # true/false +nl_after_brace_open_cmt = false # true/false +nl_after_vbrace_open = false # true/false +nl_after_vbrace_open_empty = false # true/false +nl_after_brace_close = true # true/false +nl_after_vbrace_close = false # true/false +nl_brace_struct_var = ignore # ignore/add/remove/force +nl_define_macro = false # true/false +nl_squeeze_paren_close = false # true/false +nl_squeeze_ifdef = true # true/false +nl_squeeze_ifdef_top_level = false # true/false nl_before_if = force # ignore/add/remove/force nl_after_if = force # ignore/add/remove/force nl_before_for = force # ignore/add/remove/force @@ -118,43 +449,225 @@ nl_before_while = force # ignore/add/remove/force nl_after_while = force # ignore/add/remove/force nl_before_switch = force # ignore/add/remove/force nl_after_switch = force # ignore/add/remove/force +nl_before_synchronized = ignore # ignore/add/remove/force +nl_after_synchronized = ignore # ignore/add/remove/force nl_before_do = force # ignore/add/remove/force nl_after_do = force # ignore/add/remove/force +nl_before_return = false # true/false +nl_after_return = true # true/false +nl_ds_struct_enum_cmt = false # true/false +nl_ds_struct_enum_close_brace = false # true/false +nl_class_colon = ignore # ignore/add/remove/force +nl_constr_colon = ignore # ignore/add/remove/force +nl_namespace_two_to_one_liner = false # true/false +nl_create_if_one_liner = false # true/false +nl_create_for_one_liner = false # true/false +nl_create_while_one_liner = false # true/false +nl_create_func_def_one_liner = false # true/false +nl_split_if_one_liner = false # true/false +nl_split_for_one_liner = false # true/false +nl_split_while_one_liner = false # true/false nl_max = 4 # unsigned number +nl_max_blank_in_func = 0 # unsigned number +nl_before_func_body_proto = 0 # unsigned number +nl_before_func_body_def = 0 # unsigned number +nl_before_func_class_proto = 0 # unsigned number +nl_before_func_class_def = 0 # unsigned number +nl_after_func_proto = 0 # unsigned number nl_after_func_proto_group = 1 # unsigned number +nl_after_func_class_proto = 0 # unsigned number +nl_after_func_class_proto_group = 0 # unsigned number +nl_class_leave_one_liner_groups = false # true/false +nl_after_func_body = 0 # unsigned number nl_after_func_body_class = 2 # unsigned number +nl_after_func_body_one_liner = 0 # unsigned number +nl_func_var_def_blk = 1 # unsigned number +nl_typedef_blk_start = 0 # unsigned number +nl_typedef_blk_end = 0 # unsigned number +nl_typedef_blk_in = 0 # unsigned number +nl_var_def_blk_start = 0 # unsigned number +nl_var_def_blk_end = 0 # unsigned number +nl_var_def_blk_in = 0 # unsigned number nl_before_block_comment = 2 # unsigned number -eat_blanks_after_open_brace = true # false/true -eat_blanks_before_close_brace = true # false/true -nl_after_return = true # false/true -pos_bool = trail # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force +nl_before_c_comment = 0 # unsigned number +nl_before_cpp_comment = 0 # unsigned number +nl_after_multiline_comment = false # true/false +nl_after_label_colon = false # true/false +nl_after_struct = 0 # unsigned number +nl_before_class = 0 # unsigned number +nl_after_class = 0 # unsigned number +nl_before_access_spec = 0 # unsigned number +nl_after_access_spec = 0 # unsigned number +nl_comment_func_def = 0 # unsigned number +nl_after_try_catch_finally = 0 # unsigned number +nl_around_cs_property = 0 # unsigned number +nl_between_get_set = 0 # unsigned number +nl_property_brace = ignore # ignore/add/remove/force +nl_inside_namespace = 0 # unsigned number +eat_blanks_after_open_brace = true # true/false +eat_blanks_before_close_brace = true # true/false +nl_remove_extra_newlines = 0 # unsigned number +nl_after_annotation = ignore # ignore/add/remove/force +nl_between_annotation = ignore # ignore/add/remove/force +pos_arith = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_assign = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_bool = trail # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_compare = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_conditional = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_enum_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_class_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_constr_comma = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_class_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +pos_constr_colon = ignore # ignore/break/force/lead/trail/join/lead_break/lead_force/trail_break/trail_force +code_width = 0 # unsigned number +ls_for_split_full = false # true/false +ls_func_split_full = false # true/false +ls_code_width = false # true/false +align_keep_tabs = false # true/false +align_with_tabs = false # true/false +align_on_tabstop = false # true/false +align_number_right = false # true/false +align_keep_extra_space = false # true/false +align_func_params = false # true/false +align_func_params_span = 0 # unsigned number +align_func_params_thresh = 0 # number +align_func_params_gap = 0 # unsigned number +align_constr_value_span = 0 # unsigned number +align_constr_value_thresh = 0 # number +align_constr_value_gap = 0 # unsigned number +align_same_func_call_params = false # true/false +align_same_func_call_params_span = 0 # unsigned number +align_same_func_call_params_thresh = 0 # number +align_var_def_span = 0 # unsigned number +align_var_def_star_style = 0 # unsigned number align_var_def_amp_style = 1 # unsigned number -align_var_def_thresh = 16 # unsigned number -align_assign_thresh = 12 # unsigned number +align_var_def_thresh = 16 # number +align_var_def_gap = 0 # unsigned number +align_var_def_colon = false # true/false +align_var_def_colon_gap = 0 # unsigned number +align_var_def_attribute = false # true/false +align_var_def_inline = false # true/false +align_assign_span = 0 # unsigned number +align_assign_func_proto_span = 0 # unsigned number +align_assign_thresh = 12 # number +align_assign_decl_func = 0 # unsigned number +align_enum_equ_span = 0 # unsigned number +align_enum_equ_thresh = 0 # number +align_var_class_span = 0 # unsigned number +align_var_class_thresh = 0 # number +align_var_class_gap = 0 # unsigned number +align_var_struct_span = 0 # unsigned number +align_var_struct_thresh = 0 # number +align_var_struct_gap = 0 # unsigned number align_struct_init_span = 3 # unsigned number -align_typedef_gap = 3 # unsigned number align_typedef_span = 5 # unsigned number +align_typedef_gap = 3 # unsigned number +align_typedef_func = 0 # unsigned number align_typedef_star_style = 1 # unsigned number align_typedef_amp_style = 1 # unsigned number align_right_cmt_span = 3 # unsigned number -align_nl_cont = true # false/true -align_pp_define_gap = 4 # unsigned number +align_right_cmt_gap = 0 # unsigned number +align_right_cmt_mix = false # true/false +align_right_cmt_same_level = false # true/false +align_right_cmt_at_col = 0 # unsigned number +align_func_proto_span = 0 # unsigned number +align_func_proto_thresh = 0 # number +align_func_proto_gap = 0 # unsigned number +align_on_operator = false # true/false +align_mix_var_proto = false # true/false +align_single_line_func = false # true/false +align_single_line_brace = false # true/false +align_single_line_brace_gap = 0 # unsigned number +align_oc_msg_spec_span = 0 # unsigned number +align_nl_cont = true # true/false +align_pp_define_together = false # true/false align_pp_define_span = 3 # unsigned number -cmt_cpp_to_c = true # false/true -cmt_star_cont = true # false/true +align_pp_define_gap = 4 # unsigned number +align_left_shift = true # true/false +align_asm_colon = false # true/false +align_oc_msg_colon_span = 0 # unsigned number +align_oc_msg_colon_first = false # true/false +align_oc_decl_colon = false # true/false +cmt_width = 0 # unsigned number +cmt_reflow_mode = 0 # unsigned number +cmt_convert_tab_to_spaces = false # true/false +cmt_indent_multi = true # true/false +cmt_c_group = false # true/false +cmt_c_nl_start = false # true/false +cmt_c_nl_end = false # true/false +cmt_cpp_to_c = true # true/false +cmt_cpp_group = false # true/false +cmt_cpp_nl_start = false # true/false +cmt_cpp_nl_end = false # true/false +cmt_star_cont = true # true/false +cmt_sp_before_star_cont = 0 # unsigned number +cmt_sp_after_star_cont = 0 # unsigned number +cmt_multi_check_last = true # true/false +cmt_multi_first_len_minimum = 4 # unsigned number +cmt_insert_file_header = "" # string +cmt_insert_file_footer = "" # string +cmt_insert_func_header = "" # string +cmt_insert_class_header = "" # string +cmt_insert_oc_msg_header = "" # string +cmt_insert_before_preproc = false # true/false +cmt_insert_before_inlines = true # true/false +cmt_insert_before_ctor_dtor = false # true/false mod_full_brace_do = add # ignore/add/remove/force mod_full_brace_for = add # ignore/add/remove/force +mod_full_brace_function = ignore # ignore/add/remove/force mod_full_brace_if = add # ignore/add/remove/force +mod_full_brace_if_chain = false # true/false +mod_full_brace_if_chain_only = false # true/false mod_full_brace_while = add # ignore/add/remove/force -mod_full_paren_if_bool = true # false/true -mod_remove_extra_semicolon = true # false/true -mod_add_long_ifdef_endif_comment = 10 # unsigned number +mod_full_brace_using = ignore # ignore/add/remove/force +mod_full_brace_nl = 0 # unsigned number +mod_full_brace_nl_block_rem_mlcond = false # true/false +mod_paren_on_return = ignore # ignore/add/remove/force +mod_pawn_semicolon = false # true/false +mod_full_paren_if_bool = true # true/false +mod_remove_extra_semicolon = true # true/false +mod_add_long_function_closebrace_comment = 0 # unsigned number +mod_add_long_namespace_closebrace_comment = 0 # unsigned number +mod_add_long_class_closebrace_comment = 0 # unsigned number +mod_add_long_switch_closebrace_comment = 0 # unsigned number +mod_add_long_ifdef_endif_comment = 10 # unsigned number mod_add_long_ifdef_else_comment = 10 # unsigned number +mod_sort_import = false # true/false +mod_sort_using = false # true/false +mod_sort_include = false # true/false +mod_move_case_break = false # true/false mod_case_brace = remove # ignore/add/remove/force -mod_remove_empty_return = true # false/true +mod_remove_empty_return = true # true/false +mod_enum_last_comma = ignore # ignore/add/remove/force +mod_sort_oc_properties = false # true/false +mod_sort_oc_property_class_weight = 0 # number +mod_sort_oc_property_thread_safe_weight = 0 # number +mod_sort_oc_property_readwrite_weight = 0 # number +mod_sort_oc_property_reference_weight = 0 # number +mod_sort_oc_property_getter_weight = 0 # number +mod_sort_oc_property_setter_weight = 0 # number +mod_sort_oc_property_nullability_weight = 0 # number pp_indent = force # ignore/add/remove/force -pp_indent_at_level = true # false/true +pp_indent_at_level = true # true/false pp_indent_count = 4 # unsigned number pp_space = remove # ignore/add/remove/force -pp_if_indent_code = true # false/true -# option(s) with 'not default' value: 158 +pp_space_count = 0 # unsigned number +pp_indent_region = 0 # number +pp_region_indent_code = false # true/false +pp_indent_if = 0 # number +pp_if_indent_code = true # true/false +pp_define_at_level = false # true/false +pp_ignore_define_body = false # true/false +pp_indent_case = true # true/false +pp_indent_func_def = true # true/false +pp_indent_extern = true # true/false +pp_indent_brace = false # true/false +include_category_0 = "" # string +include_category_1 = "" # string +include_category_2 = "" # string +use_indent_func_call_param = true # true/false +use_indent_continue_only_once = false # true/false +indent_cpp_lambda_only_once = false # true/false +use_options_overriding_for_qt_macros = true # true/false +warn_level_tabs_found_in_verbatim_string_literals = 2 # unsigned number