QP/C++  7.3.3
Real-Time Embedded Framework
Loading...
Searching...
No Matches
qpcpp.lnt
Go to the documentation of this file.
1//============================================================================
2// QP/C++ Real-Time Embedded Framework (RTEF)
3// Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved.
4//
5// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial
6//
7// This software is dual-licensed under the terms of the open source GNU
8// General Public License version 3 (or any later version), or alternatively,
9// under the terms of one of the closed source Quantum Leaps commercial
10// licenses.
11//
12// The terms of the open source GNU General Public License version 3
13// can be found at: <www.gnu.org/licenses/gpl-3.0>
14//
15// The terms of the closed source Quantum Leaps commercial licenses
16// can be found at: <www.state-machine.com/licensing>
17//
18// Redistributions in source code must retain this top-level comment block.
19// Plagiarizing this software to sidestep the license obligations is illegal.
20//
21// Contact information:
22// <www.state-machine.com>
23// <info@state-machine.com>
24//============================================================================
25//! @date Last updated on: 2024-02-18
26//! @version Last updated for version: 7.3.3
27//!
28//! @file
29//! @brief PC-Lint-Plus option file for linting QP/C++ __Applications__
30
31//----------------------------------------------------------------------------
32// globally suppress the following warnings:
33-e546 // explicitly taking address of function
34-e717 // monocarpic do-while used to group statements
35-e1756 // variable has 'static' storage duration and non-POD type
36-e3412 // class has virtual functions but non-virtual destructor
37
38// Assertions ----------------------------------------------------------------
39
40// give Q_onError() the semantics of "exit"
41-function(exit,
43
44// C-style array type [AUTOSAR Rule A18-1-1]
45-esym(9436,
46 QP::versionStr)
47
48// AC++M16-3-2 function-like macro
49-esym(9026,
50 Q_DEFINE_THIS_MODULE,
54 Q_ERROR,
62 Q_DIM)
63
64// use of c-style cast to void [AS-A5-2-2]
65-emacro(1954,
68 Q_ERROR,
77
78// MC++R10-0-6 unparenthesized macro parameter in definition of macro
79-esym(9022,
80 Q_DEFINE_THIS_FILE,
81 Q_DEFINE_THIS_MODULE)
82
83// definition of macro ends in semi-colon
84-esym(823,
85 Q_DEFINE_THIS_FILE,
86 Q_DEFINE_THIS_MODULE)
87
88// AC++M16-3-2 function-like macro
89-esym(9026,
91 Q_DIM,
94
95// MC++R5-2-4 use of c-style cast
96-emacro(1924,
99 Q_ERROR,
101
102
103// QEP -----------------------------------------------------------------------
104
105// MC++R7-3-1 global declaration of symbol
106-esym(9141,
107 char_t,
108 int_t,
109 enum_t,
110 float32_t,
111 float64_t)
112
113// AUTOSAR Rule A3-3-2 non-private data member within a non-POD structure
114// NOTE: public access needed for extern "C" functions
115-esym(9150,
116 QP::QAsmAttr::*,
117 QP::QAsm::*)
118
119// AC++M16-3-2 function-like macro
120-esym(9026,
121 INIT,
122 DISPATCH,
130 QHSM_INIT,
131 QHSM_DISPATCH,
132 Q_TRAN,
134 Q_SUPER,
135 Q_HANDLED,
137 QM_ENTRY,
138 QM_EXIT,
140 QM_TRAN,
145 QM_SUPER,
149 Q_HSM_UPCAST,
153
154// MC++R5-2-8 conversion from pointer to other pointer type
155-emacro(9079,
157
158// MC++R5-2-2 casting from base class 'QP::QEvt' to derived class
159-emacro(1939,
161
162// MC++R10-0-6 unparenthesized macro parameter 'class_' in definition of macro
163-esym(9022,
173 QEP_TRIG_,
174 QEP_ENTER_,
175 QEP_EXIT_)
176
177// MC++16-3-1 multiple use of stringize/pasting operators in definition of macro
178-esym(9023,
185
186// AC++M16-3-2 stringize operator used in definition of function-like macro
187-esym(9024,
195
196// MC++R5-2-8 conversion from pointer to void to other pointer type
197-emacro(9079,
201
202 // MC++R9-3-3 member function could be made const
203-emacro(1762,
206
207// MC++9-5-1 union declared
208-esym(9018,
209 QP::QAsmAttr)
210
211// MC++5-2-8 conversion from integer type (0) to pointer type
212-emacro(9010,
214
215// public virtual function 'QP::QHsm::...'
216-esym(1731,
217 QP::QHsm::*,
218 QP::QMsm::*)
219
220
221// QF ------------------------------------------------------------------------
222
223// AUTOSAR Rule A3-3-2 non-private data member within a non-POD structure
224// NOTE: public access needed for extern "C" functions
225-esym(9150,
226 QP::QF::QF_Attr::*)
227
228// AC++M16-3-2 function-like macro
229-esym(9026,
230 POST,
231 POST_X,
232 PUBLISH,
233 TICK_X,
234 TICK,
235 TRIG,
239 QF_LOG2,
240 Q_PRIO,
241 Q_NEW,
242 Q_NEW_X,
243 Q_NEW_REF,
248
249// MC++R0-3-2 ignoring return value of function
250-emacro(534,
251 POST)
252
253// [AUTOSAR Rule M17-0-2] the name xxx is reserved to the compiler
254-esym(9093,
255 remove) // QPrioSet::remove()
256
257// MC++R5-2-7 pointer type converted to unrelated pointer type
258-emacro(9176,
259 QF_QMACTIVE_TO_QMSM_CAST_,
260 QF_QMACTIVE_TO_QMSM_CONST_CAST_)
261
262// MC++R5-2-2 casting from base class 'QP::QEvt' to derived class
263-emacro(1939,
264 Q_NEW,
265 Q_NEW_X)
266
267// MC++R10-0-6 unparenthesized macro parameter in definition of macro
268-esym(9022,
269 Q_NEW,
270 Q_NEW_X,
271 Q_NEW_REF)
272
273
274// QK ------------------------------------------------------------------------
275
276// AC++M16-3-2 function-like macro
277-esym(9026,
280
281// AC++M7-3-1 global declaration of symbol
282-esym(9141,
283 QK_Attr)
284
285// MC++R11-0-1 non-private data member within a non-POD structure
286// NOTE: public access needed for extern "C" functions
287-esym(9150,
288 QK_Attr::*)
289
290
291// QXK -----------------------------------------------------------------------
292// MC++R16-0-4 function-like macro
293-esym(9026,
296 QXK_TLS)
297
298// MC++R7-3-1 global declaration of symbol
299-esym(9141,
300 QXK_Attr)
301
302// MC++R10-0-6 unparenthesized macro parameter in definition of macro
303-esym(9022,
304 QXK_TLS)
305
306// MC++R5-2-8 conversion from pointer to void to other pointer type
307-emacro(9079,
309
310// MC++R5-2-2 casting from base class to derived class
311-emacro(1939,
313
314// MC++R5-2-3 downcast of polymorphic type
315-emacro(9171,
317
318// [AUTOSAR Rule M17-0-2] the name 'signal' is reserved to the compiler
319-esym(9093,
320 signal)
321
322// public virtual function 'QP::QXThread::...'
323-esym(1731,
324 QP::QXThread::*)
325
326// [AUTOSAR Rule M8-4-2] parameter of function has different name than
327// overridden function
328-esym(9272,
329 QP::QXMutex::init*)
330
331// function xxx matches the name of a standard library function
332-esym(8502,
333 signal) // QXSemaphore::signal()
334
335
336// QS ------------------------------------------------------------------------
337
338// AC++M16-3-2 function-like macro
339-esym(9026,
340 QS_INIT,
341 QS_EXIT,
342 QS_DUMP,
343 QS_RESET,
347 QS_GET_BYTE,
348 QS_GET_BLOCK,
350 QS_END,
357 QS_ONLY,
358 QS_I8,
359 QS_U8,
360 QS_I16,
361 QS_U16,
362 QS_I32,
363 QS_I64,
364 QS_U32,
365 QS_F32,
366 QS_F64,
367 QS_U64,
369 QS_STR,
370 QS_OBJ,
371 QS_FUN,
379 QS_FLUSH,
380 QS_MEM,
381 QS_ENUM,
382 QS_SIG,
383 QS_PTR_AT_,
384 QS_RX_PUT,
385 QS_OUTPUT,
391
392// AC++M16-3-2 function-like macro
393-esym(9026,
396 QS_BEGIN_PRE_,
397 QS_END_PRE_,
398 QS_BEGIN_PRE_,
399 QS_END_PRE_,
400 QS_U8_PRE_,
401 QS_2U8_PRE_,
402 QS_U16_PRE_,
403 QS_U32_PRE_,
404 QS_STR_PRE_,
406 QS_SIG_PRE_,
407 QS_EVS_PRE_,
408 QS_OBJ_PRE_,
409 QS_FUN_PRE_,
410 QS_EQC_PRE_,
411 QS_MPC_PRE_,
412 QS_MPS_PRE_,
413 QS_TEC_PRE_)
414
415// AC++M16-3-2 function-like macro
416-esym(9026,
418
419// definition of macro ends in semi-colon
420-esym(823,
422
423// M3-R11.1(r) conversion between pointer to function type
424-emacro(9074,
427
428// AC++M16-3-2 stringize operator used in definition of function-like macro
429-esym(9024,
436
437// M3-R10.3(r) cannot assign enum to different essential type
438-emacro(9034,
440
441// implicit conversion of enum to integral type 'int'
442-emacro(641,
444
445// MC++R11-0-1 non-private data member within a non-POD structure
446-esym(9150,
447 QP::QEvt::*,
448 QP::QActive::*,
449 QP::QF::Attr::*,
450 QP::QS::QSrxPriv::*)
451
452// MC++9-5-1 union declared
453-esym(9018,
454 F32Rep,
455 F64Rep,
456 U32Rep,
457 TCast,
458 QP::QS::RxAttr::Variant)
459
Private attributes of the QK kernel.
Definition qk.hpp:76
Private attributes of the QXK kernel.
Definition qxk.hpp:184
void init()
Definition qk.cpp:368
QP/C++ framework.
Definition qequeue.hpp:50
std::uint_fast8_t QF_LOG2(QP::QPSetBits x) noexcept
Definition qf_act.cpp:101
#define QF_MPOOL_EL(evType_)
Definition qmpool.hpp:77
#define Q_NEW_REF(evtRef_, evtT_)
Definition qp.hpp:1200
#define QM_ACTION_DEF(subclass_, action_)
Definition qp.hpp:520
int int_t
Definition qp.hpp:105
int enum_t
Definition qp.hpp:108
#define Q_EVT_CAST(subclass_)
Definition qp.hpp:490
#define Q_UNUSED_PAR(par_)
Definition qp.hpp:541
#define Q_STATE_DEF(subclass_, state_)
Definition qp.hpp:478
#define Q_UNHANDLED()
Definition qp.hpp:487
#define QM_SM_STATE_DECL(subm_, state_)
Definition qp.hpp:503
#define POST(e_, sender_)
Definition qp.hpp:1222
#define Q_HANDLED()
Definition qp.hpp:484
#define Q_STATE_CAST(handler_)
Definition qp.hpp:493
#define QM_HANDLED()
Definition qp.hpp:526
float float32_t
Definition qp.hpp:111
#define Q_NEW(evtT_, sig_,...)
Definition qp.hpp:1183
#define QM_UNHANDLED()
Definition qp.hpp:529
#define QM_SUPER()
Definition qp.hpp:532
#define Q_STATE_DECL(state_)
Definition qp.hpp:473
#define TICK_X(tickRate_, sender_)
Definition qp.hpp:1243
#define Q_NEW_X(evtT_, margin_, sig_,...)
Definition qp.hpp:1195
#define Q_DELETE_REF(evtRef_)
Definition qp.hpp:1204
#define QM_STATE_DECL(state_)
Definition qp.hpp:497
#define DISPATCH(e_, qsId_)
Definition qp.hpp:561
#define QM_STATE_DEF(subclass_, state_)
Definition qp.hpp:514
#define Q_PRIO(prio_, pthre_)
Definition qp.hpp:1172
#define PUBLISH(e_, sender_)
Definition qp.hpp:1211
#define TICK(sender_)
Definition qp.hpp:1252
#define TRIG(sender_)
Definition qp.hpp:1256
#define QM_ACTION_DECL(action_)
Definition qp.hpp:509
#define Q_UINT2PTR_CAST(type_, uint_)
Definition qp.hpp:547
#define Q_DIM(array_)
Definition qp.hpp:544
double float64_t
Definition qp.hpp:114
#define QF_CRIT_EXIT_NOP()
Definition qp.hpp:1266
#define INIT(qsId_)
Definition qp.hpp:551
#define POST_X(e_, margin_, sender_)
Definition qp.hpp:1232
#define Q_UINTPTR_CAST_(ptr_)
Internal helper macro to cast pointers to integers.
Definition qp_pkg.hpp:81
#define QK_ISR_EXIT()
Definition qp_port.hpp:123
#define QF_INT_DISABLE()
Disable interrupts.
Definition qp_port.hpp:36
#define QXK_ISR_EXIT()
Define the ISR exit sequence.
Definition qp_port.hpp:146
#define QXK_ISR_ENTRY()
Define the ISR entry sequence.
Definition qp_port.hpp:143
#define QF_INT_ENABLE()
Enable interrupts.
Definition qp_port.hpp:39
#define QK_ISR_ENTRY()
Define the ISR entry sequence.
Definition qp_port.hpp:114
#define QM_TRAN_HIST(history_, tatbl_)
Definition qpcpp.hpp:226
#define QM_ENTRY(state_)
Definition qpcpp.hpp:196
char char_t
Definition qpcpp.hpp:68
#define QM_SM_EXIT(state_)
Definition qpcpp.hpp:208
#define QM_TRAN_INIT(tatbl_)
Definition qpcpp.hpp:220
#define QS_U32_HEX(width_, data_)
Definition qpcpp.hpp:159
#define QM_TRAN_EP(tatbl_)
Definition qpcpp.hpp:233
#define QM_SUPER_SUB(state_)
Definition qpcpp.hpp:245
#define Q_SUPER(state_)
Definition qpcpp.hpp:190
#define Q_TRAN(target_)
Definition qpcpp.hpp:178
#define QS_FILTER_AP_OBJ(obj_)
Definition qpcpp.hpp:144
#define Q_TRAN_HIST(hist_)
Definition qpcpp.hpp:184
#define QM_TRAN_XP(xp_, tatbl_)
Definition qpcpp.hpp:239
#define QM_EXIT(state_)
Definition qpcpp.hpp:202
#define QM_TRAN(tatbl_)
Definition qpcpp.hpp:214
#define QS_OBJ_DICTIONARY(obj_)
Definition qs.hpp:538
#define QS_I8(width_, data_)
Definition qs.hpp:396
#define QS_U8(width_, data_)
Definition qs.hpp:402
#define QS_U32(width_, data_)
Definition qs.hpp:425
#define QS_LOC_FILTER(qsId_)
Definition qs.hpp:343
#define QS_QF_CRIT_EXIT()
Definition qs.hpp:562
#define QS_ONLY(code_)
Definition qs.hpp:573
#define QS_OUTPUT()
Definition qs.hpp:333
#define QS_TIME_PRE_()
Definition qs.hpp:473
#define QS_REC_DONE()
Definition qs.hpp:392
#define QS_END()
Definition qs.hpp:356
#define QS_U16(width_, data_)
Definition qs.hpp:414
#define QS_FUN_DICTIONARY(fun_)
Definition qs.hpp:546
#define QS_F64(width_, data_)
Definition qs.hpp:449
#define QS_I64(width_, data_)
Definition qs.hpp:431
#define QS_MEM(mem_, size_)
Definition qs.hpp:458
#define QS_RX_INPUT()
Definition qs.hpp:336
#define QS_END_INCRIT()
Definition qs.hpp:372
#define QS_F32(width_, data_)
Definition qs.hpp:443
#define QS_STR(str_)
Definition qs.hpp:455
#define QS_BEGIN_ID(rec_, qsId_)
Definition qs.hpp:347
#define QS_QF_CRIT_ENTRY()
Definition qs.hpp:559
#define QS_ENUM(group_, value_)
Definition qs.hpp:461
#define QS_QF_ISR_EXIT(isrnest_, prio_)
Definition qs.hpp:569
#define QS_SIG_DICTIONARY(sig_, obj_)
Definition qs.hpp:534
#define QS_TEST_PROBE_DEF(fun_)
Definition qs.hpp:870
#define QS_U64(width_, data_)
Definition qs.hpp:437
#define QS_I32(width_, data_)
Definition qs.hpp:419
#define QS_GLB_FILTER(rec_)
Definition qs.hpp:339
#define QS_SIG(sig_, obj_)
Definition qs.hpp:521
#define QS_ASSERTION(module_, id_, delay_)
Definition qs.hpp:576
#define QS_I16(width_, data_)
Definition qs.hpp:408
#define QS_QF_ISR_ENTRY(isrnest_, prio_)
Definition qs.hpp:565
#define QS_OBJ_ARR_DICTIONARY(obj_, idx_)
Definition qs.hpp:542
#define QS_GLB_CHECK_(rec_)
Definition qs.hpp:377
#define QS_BEGIN_INCRIT(rec_, qsId_)
Definition qs.hpp:366
#define QS_TEST_PROBE(code_)
Definition qs.hpp:874
#define QS_TEST_PROBE_ID(id_, code_)
Definition qs.hpp:877
#define QS_ENUM_DICTIONARY(value_, group_)
Definition qs.hpp:555
#define QS_FLUSH()
Definition qs.hpp:363
#define QS_TEST_PAUSE()
Definition qs.hpp:880
#define QS_USR_DICTIONARY(rec_)
Definition qs.hpp:551
#define QS_LOC_CHECK_(qsId_)
Definition qs.hpp:384
#define QS_INIT(arg_)
Definition qs.hpp:327
#define QS_EXIT()
Definition qs.hpp:330
#define Q_INVARIANT(expr_)
Definition qsafe.h:151
#define Q_ASSERT(expr_)
Definition qsafe.h:124
#define Q_ASSERT_STATIC(expr_)
Definition qsafe.h:154
#define Q_ENSURE_ID(id_, expr_)
Definition qsafe.h:139
#define Q_INVARIANT_ID(id_, expr_)
Definition qsafe.h:148
#define Q_REQUIRE_ID(id_, expr_)
Definition qsafe.h:130
#define Q_ERROR()
Definition qsafe.h:127
Q_NORETURN Q_onError(char const *const module, int_t const id)
#define Q_ENSURE(expr_)
Definition qsafe.h:142
#define Q_REQUIRE(expr_)
Definition qsafe.h:133
#define Q_ASSERT_ID(id_, expr_)
Definition qsafe.h:80
#define Q_ASSERT_INCRIT(id_, expr_)
Definition qsafe.h:72
#define Q_ERROR_ID(id_)
Definition qsafe.h:88
#define QXTHREAD_CAST_(ptr_)
Definition qxk.hpp:305
#define QXK_PTR_CAST_(type_, ptr_)
Definition qxk.hpp:308