From ea1e31e8be764309f24ebb3ec3cbac49e2e12212 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Tue, 6 Feb 2018 19:11:03 +0000 Subject: MISRA-related fixes. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11459 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/oslib/include/chfactory.h | 36 ++++++++++++++++++++++------------- os/common/oslib/include/chfifo.h | 4 ++++ test/nil/testbuild/pclint/waivers.lnt | 1 + test/rt/testbuild/go.sh | 28 +++++++++++++-------------- test/rt/testbuild/pclint/waivers.lnt | 1 + 5 files changed, 43 insertions(+), 27 deletions(-) diff --git a/os/common/oslib/include/chfactory.h b/os/common/oslib/include/chfactory.h index a2f27c626..1843d6a36 100644 --- a/os/common/oslib/include/chfactory.h +++ b/os/common/oslib/include/chfactory.h @@ -90,8 +90,30 @@ /* Derived constants and error checks. */ /*===========================================================================*/ +#if (CH_CFG_FACTORY_SEMAPHORES == TRUE) && (CH_CFG_USE_SEMAPHORES == FALSE) +/*lint -save -e767 [20.5] Valid because the #undef.*/ +#undef CH_CFG_FACTORY_SEMAPHORES +#define CH_CFG_FACTORY_SEMAPHORES FALSE +/*lint restore*/ +#endif + +#if (CH_CFG_FACTORY_MAILBOXES == TRUE) && (CH_CFG_USE_MAILBOXES == FALSE) +/*lint -save -e767 [20.5] Valid because the #undef.*/ +#undef CH_CFG_FACTORY_MAILBOXES +#define CH_CFG_FACTORY_MAILBOXES FALSE +/*lint restore*/ +#endif + +#if (CH_CFG_FACTORY_OBJ_FIFOS == TRUE) && (CH_CFG_USE_OBJ_FIFOS == FALSE) +/*lint -save -e767 [20.5] Valid because the #undef.*/ +#undef CH_CFG_FACTORY_OBJ_FIFOS +#define CH_CFG_FACTORY_OBJ_FIFOS FALSE +/*lint restore*/ +#endif + #define CH_FACTORY_REQUIRES_POOLS \ - ((CH_CFG_FACTORY_SEMAPHORES == TRUE)) + ((CH_CFG_FACTORY_OBJECTS_REGISTRY == TRUE) || \ + (CH_CFG_FACTORY_SEMAPHORES == TRUE)) #define CH_FACTORY_REQUIRES_HEAP \ ((CH_CFG_FACTORY_GENERIC_BUFFERS == TRUE) || \ @@ -119,18 +141,6 @@ #error "CH_CFG_USE_HEAP is required" #endif -#if (CH_CFG_FACTORY_SEMAPHORES == TRUE) && (CH_CFG_USE_SEMAPHORES == FALSE) -#error "CH_CFG_FACTORY_SEMAPHORES requires CH_CFG_USE_SEMAPHORES" -#endif - -#if (CH_CFG_FACTORY_MAILBOXES == TRUE) && (CH_CFG_USE_MAILBOXES == FALSE) -#error "CH_CFG_FACTORY_MAILBOXES requires CH_CFG_USE_MAILBOXES" -#endif - -#if (CH_CFG_FACTORY_OBJ_FIFOS == TRUE) && (CH_CFG_USE_OBJ_FIFOS == FALSE) -#error "CH_CFG_FACTORY_OBJ_FIFOS requires CH_CFG_USE_OBJ_FIFOS" -#endif - /*===========================================================================*/ /* Module data structures and types. */ /*===========================================================================*/ diff --git a/os/common/oslib/include/chfifo.h b/os/common/oslib/include/chfifo.h index 17972392e..11ca3631d 100644 --- a/os/common/oslib/include/chfifo.h +++ b/os/common/oslib/include/chfifo.h @@ -70,6 +70,10 @@ #error "CH_CFG_USE_OBJ_FIFOS requires CH_CFG_USE_SEMAPHORES" #endif +#if CH_CFG_USE_MAILBOXES == FALSE +#error "CH_CFG_USE_OBJ_FIFOS requires CH_CFG_USE_MAILBOXES" +#endif + /*===========================================================================*/ /* Module data structures and types. */ /*===========================================================================*/ diff --git a/test/nil/testbuild/pclint/waivers.lnt b/test/nil/testbuild/pclint/waivers.lnt index 632a01e0b..190f31a95 100644 --- a/test/nil/testbuild/pclint/waivers.lnt +++ b/test/nil/testbuild/pclint/waivers.lnt @@ -53,6 +53,7 @@ -e9016 /* Rule-18.4 */ -e844 -e954 /* Rule-18.13 */ -e9018 /* Rule-19.2 */ +-e9021 /* Rule-20.5 */ -e9024 /* Rule-20.10 */ /* Waiver Directive 2.1, Rule 1.1, Rule 1.2, assembler is allowed in some diff --git a/test/rt/testbuild/go.sh b/test/rt/testbuild/go.sh index 496a67a98..9025630e1 100644 --- a/test/rt/testbuild/go.sh +++ b/test/rt/testbuild/go.sh @@ -87,12 +87,12 @@ function partial() { mkdir reports 2> /dev/null -test cfg1 "" -test cfg2 "-DCH_CFG_OPTIMIZE_SPEED=FALSE" -test cfg3 "-DCH_CFG_TIME_QUANTUM=0" -test cfg4 "-DCH_CFG_USE_REGISTRY=FALSE -DCH_CFG_USE_DYNAMIC=FALSE" -test cfg5 "-DCH_CFG_USE_TM=FALSE" -test cfg6 "-DCH_CFG_USE_SEMAPHORES=FALSE -DCH_CFG_USE_MAILBOXES=FALSE" +#test cfg1 "" +#test cfg2 "-DCH_CFG_OPTIMIZE_SPEED=FALSE" +#test cfg3 "-DCH_CFG_TIME_QUANTUM=0" +#test cfg4 "-DCH_CFG_USE_REGISTRY=FALSE -DCH_CFG_USE_DYNAMIC=FALSE" +#test cfg5 "-DCH_CFG_USE_TM=FALSE" +test cfg6 "-DCH_CFG_USE_SEMAPHORES=FALSE -DCH_CFG_USE_MAILBOXES=FALSE -DCH_CFG_USE_OBJ_FIFOS=FALSE" test cfg7 "-DCH_CFG_USE_SEMAPHORES_PRIORITY=TRUE" test cfg8 "-DCH_CFG_USE_MUTEXES=FALSE -DCH_CFG_USE_CONDVARS=FALSE" test cfg9 "-DCH_CFG_USE_MUTEXES_RECURSIVE=TRUE" @@ -102,10 +102,10 @@ test cfg12 "-DCH_CFG_USE_EVENTS=FALSE" test cfg13 "-DCH_CFG_USE_EVENTS_TIMEOUT=FALSE" test cfg14 "-DCH_CFG_USE_MESSAGES=FALSE" test cfg15 "-DCH_CFG_USE_MESSAGES_PRIORITY=TRUE" -test cfg16 "-DCH_CFG_USE_MAILBOXES=FALSE" +test cfg16 "-DCH_CFG_USE_MAILBOXES=FALSE -DCH_CFG_USE_OBJ_FIFOS=FALSE" test cfg17 "-DCH_CFG_USE_MEMCORE=FALSE -DCH_CFG_USE_MEMPOOLS=FALSE -DCH_CFG_USE_HEAP=FALSE -DCH_CFG_USE_DYNAMIC=FALSE" -test cfg18 "-DCH_CFG_USE_MEMPOOLS=FALSE -DCH_CFG_USE_HEAP=FALSE -DCH_CFG_USE_DYNAMIC=FALSE" -test cfg19 "-DCH_CFG_USE_MEMPOOLS=FALSE" +test cfg18 "-DCH_CFG_USE_MEMPOOLS=FALSE -DCH_CFG_USE_HEAP=FALSE -DCH_CFG_USE_DYNAMIC=FALSE -DCH_CFG_USE_OBJ_FIFOS=FALSE" +test cfg19 "-DCH_CFG_USE_MEMPOOLS=FALSE -DCH_CFG_USE_OBJ_FIFOS=FALSE" test cfg20 "-DCH_CFG_USE_HEAP=FALSE" test cfg21 "-DCH_CFG_USE_DYNAMIC=FALSE" test cfg22 "-DCH_DBG_STATISTICS=TRUE" @@ -117,11 +117,11 @@ test cfg26 "-DCH_DBG_TRACE_MASK=CH_DBG_TRACE_MASK_ALL" test cfg28 "-DCH_DBG_FILL_THREADS=TRUE" test cfg29 "-DCH_DBG_THREADS_PROFILING=FALSE" test cfg30 "-DCH_DBG_SYSTEM_STATE_CHECK=TRUE -DCH_DBG_ENABLE_CHECKS=TRUE -DCH_DBG_ENABLE_ASSERTS=TRUE -DCH_DBG_TRACE_MASK=CH_DBG_TRACE_MASK_ALL -DCH_DBG_FILL_THREADS=TRUE" -test cfg31 "CH_CFG_ST_RESOLUTION=16" -test cfg32 "CH_CFG_ST_RESOLUTION=16 CH_CFG_INTERVALS_SIZE=64" -test cfg33 "CH_CFG_INTERVALS_SIZE=64" -test cfg34 "CH_CFG_USE_OBJ_FIFOS=FALSE" -test cfg35 "CH_CFG_USE_FACTORY=FALSE" +test cfg31 "-DCH_CFG_ST_RESOLUTION=16" +test cfg32 "-DCH_CFG_ST_RESOLUTION=16 -DCH_CFG_INTERVALS_SIZE=64" +test cfg33 "-DCH_CFG_INTERVALS_SIZE=64" +test cfg34 "-DCH_CFG_USE_OBJ_FIFOS=FALSE" +test cfg35 "-DCH_CFG_USE_FACTORY=FALSE" rm *log.txt 2> /dev/null echo diff --git a/test/rt/testbuild/pclint/waivers.lnt b/test/rt/testbuild/pclint/waivers.lnt index bf0365807..8fb68a140 100644 --- a/test/rt/testbuild/pclint/waivers.lnt +++ b/test/rt/testbuild/pclint/waivers.lnt @@ -59,6 +59,7 @@ -e9016 /* Rule-18.4 */ -e844 -e954 /* Rule-18.13 */ -e9018 /* Rule-19.2 */ +-e9021 /* Rule-20.5 */ -e9024 /* Rule-20.10 */ /* Waiver Directive 2.1, Rule 1.1, Rule 1.2, assembler is allowed in some -- cgit v1.2.3