This commit is contained in:
Quantum Leaps 2017-09-01 16:29:03 -04:00
parent 56ef8c82d8
commit 1b62f8fc7e
13 changed files with 131 additions and 150 deletions

View File

@ -168,7 +168,7 @@ Given the simplicity, portability, and low-resource consumption, the QV schedule
------------------------------------------------------------------------------
@section api_qk Preemptive Run-to-Completion Kernel (QK)
@section api_qk QK (Preemptive Run-to-Completion Kernel)
QK is a tiny **preemptive**, priority-based, non-blocking kernel designed specifically for executing active objects. QK runs active objects in the same way as prioritized interrupt controller (such as NVIC in ARM Cortex-M) runs interrupts using the single stack. Active objects process their events in run-to-completion (RTC) fashion and remove themselves from the call stack, the same way as nested interrupts remove themselves from the stack upon completion. At the same time high-priority active objects can preempt lower-priority active objects, just like interrupts can preempt each other under a prioritized interrupt controller. QK meets all the requirement of the Rate Monotonic Scheduling (a.k.a. Rate Monotonic Analysis RMA) and can be used in hard real-time systems.
@ -177,8 +177,8 @@ QK is a tiny **preemptive**, priority-based, non-blocking kernel designed specif
- QK_INIT()
- <a href="qk_8c.html#a779a1bc9482e2d489dc87751cd100fdb"><b>QF_run()</b></a>
- QK::onIdle()
- QK_schedLock()
- QK_schedUnlock()
- QK::schedLock()
- QK::schedUnlock()
- QK::getVersion()
@ -189,7 +189,7 @@ QK is a tiny **preemptive**, priority-based, non-blocking kernel designed specif
------------------------------------------------------------------------------
@section api_qxk Preemptive Dual-Mode (Run-to-Completion/Blocking) RTOS Kernel
@section api_qxk QXK (Preemptive Dual-Mode Run-to-Completion/Blocking RTOS Kernel)
QXK is a small, preemptive, priority-based, dual-mode **blocking** kernel that executes active objects like the @ref qk "QK kernel", but can also execute traditional __blocking__ threads (extended threads). In this respect, QXK behaves exactly as a conventional __RTOS__ (Real-Time Operating System). QXK has been designed specifically for mixing event-driven active objects with traditional blocking code, such as commercial middleware (TCP/IP stacks, UDP stacks, embedded file systems, etc.) or legacy software.
@ -198,8 +198,8 @@ QXK is a small, preemptive, priority-based, dual-mode **blocking** kernel that e
- QXK_INIT()
- <a href="qxk_8c.html#a779a1bc9482e2d489dc87751cd100fdb"><b>QF_run()</b></a>
- QXK::onIdle()
- QXK_schedLock()
- QXK_schedUnlock()
- QXK::schedLock()
- QXK::schedUnlock()
- QXK::getVersion()
@ -214,7 +214,8 @@ QXK is a small, preemptive, priority-based, dual-mode **blocking** kernel that e
- QXThread class
- QXThread::QXThread()
- QXThread::start()
- QXThread::postX()
- %QXThread:: POST()
- %QXThread:: POST_X()
- QXThread::delay()
- QXThread::delayCancel()
- QXThread::queueGet()

View File

@ -9,7 +9,7 @@
License Type: Windows Single User License
Licensed To : Quantum Leaps, LLC
License No. : WS2975 License Date: Dec 15, 2013
Build Date : Sep 2 2009 Run Date: Aug 23, 2017
Build Date : Sep 2 2009 Run Date: Sep 01, 2017
(C)1996-2009 M Squared Technologies LLC
________________________________________________________________________
@ -747,16 +747,6 @@
File: ..\src\qf_pkg.h
________________________________________________________________________
Inline Function: QP::QF_EVT_POOL_ID_
Parameters: (QEvt const * const e)
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
LOC 1 eLOC 1 lLOC 1 Comment 1 Lines 1
Inline Function: QP::QF_EVT_REF_CTR_
Parameters: (QEvt const * const e)
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
LOC 1 eLOC 1 lLOC 1 Comment 1 Lines 1
Inline Function: QP::QF_EVT_REF_CTR_INC_
Parameters: (QEvt const * const e)
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
@ -771,20 +761,20 @@
~~ Total File Summary ~~
LOC 71 eLOC 67 lLOC 11 Comment 109 Lines 205
LOC 69 eLOC 65 lLOC 9 Comment 107 Lines 199
------------------------------------------------------------------------
~~ File Functional Summary ~~
File Function Count....: 4
Total Function LOC.....: 8 Total Function Pts LOC : 0.0
Total Function eLOC....: 6 Total Function Pts eLOC: 0.0
Total Function lLOC....: 4 Total Function Pts lLOC: 0.0
Total Function Params .: 4 Total Function Return .: 4
Total Cyclo Complexity : 4 Total Function Complex.: 12
File Function Count....: 2
Total Function LOC.....: 6 Total Function Pts LOC : 0.0
Total Function eLOC....: 4 Total Function Pts eLOC: 0.0
Total Function lLOC....: 2 Total Function Pts lLOC: 0.0
Total Function Params .: 2 Total Function Return .: 2
Total Cyclo Complexity : 2 Total Function Complex.: 6
------ ----- ----- ------ ------ -----
Max Function LOC ......: 3 Average Function LOC ..: 2.00
Max Function eLOC .....: 2 Average Function eLOC .: 1.50
Max Function LOC ......: 3 Average Function LOC ..: 3.00
Max Function eLOC .....: 2 Average Function eLOC .: 2.00
Max Function lLOC .....: 1 Average Function lLOC .: 1.00
------ ----- ----- ------ ------ -----
Max Function Parameters: 1 Avg Function Parameters: 1.00
@ -1252,9 +1242,9 @@
Parameters: (QEvt const * const e, QEvt const * const evtRef)
Cyclomatic Complexity Vg Detail
Function Base : 1
Conditional if / else if: 1
Logical and ( && ) : 1
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
LOC 10 eLOC 8 lLOC 5 Comment 15 Lines 14
LOC 10 eLOC 9 lLOC 5 Comment 15 Lines 14
Function: QP::QF::poolGetMaxBlockSize
Parameters: (void)
@ -1265,20 +1255,20 @@
~~ Total File Summary ~~
LOC 104 eLOC 88 lLOC 40 Comment 177 Lines 281
LOC 104 eLOC 89 lLOC 40 Comment 177 Lines 281
------------------------------------------------------------------------
~~ File Functional Summary ~~
File Function Count....: 5
Total Function LOC.....: 86 Total Function Pts LOC : 2.0
Total Function eLOC....: 71 Total Function Pts eLOC: 1.7
Total Function eLOC....: 72 Total Function Pts eLOC: 1.7
Total Function lLOC....: 38 Total Function Pts lLOC: 0.8
Total Function Params .: 9 Total Function Return .: 5
Total Cyclo Complexity : 13 Total Function Complex.: 27
------ ----- ----- ------ ------ -----
Max Function LOC ......: 32 Average Function LOC ..: 17.20
Max Function eLOC .....: 28 Average Function eLOC .: 14.20
Max Function eLOC .....: 28 Average Function eLOC .: 14.40
Max Function lLOC .....: 14 Average Function lLOC .: 7.60
------ ----- ----- ------ ------ -----
Max Function Parameters: 3 Avg Function Parameters: 1.80
@ -2243,9 +2233,9 @@
~~ Total Project Summary ~~
LOC 4869 eLOC 4314 lLOC 1884 Comment 6428 Lines 11582
LOC 4867 eLOC 4313 lLOC 1882 Comment 6426 Lines 11576
Average per File, metric/37 files
LOC 131 eLOC 116 lLOC 50 Comment 173 Lines 313
LOC 131 eLOC 116 lLOC 50 Comment 173 Lines 312
------------------------------------------------------------------------
@ -2578,16 +2568,6 @@
Complexity Param 5 Return 1 Cyclo Vg 1 Total 7
LOC 4 eLOC 2 lLOC 1 Comment 1 Lines 4
Function: QP::QF_EVT_POOL_ID_
Parameters: (QEvt const * const e)
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
LOC 1 eLOC 1 lLOC 1 Comment 1 Lines 1
Function: QP::QF_EVT_REF_CTR_
Parameters: (QEvt const * const e)
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
LOC 1 eLOC 1 lLOC 1 Comment 1 Lines 1
Function: QP::QF_EVT_REF_CTR_INC_
Parameters: (QEvt const * const e)
Complexity Param 1 Return 1 Cyclo Vg 1 Total 3
@ -2773,7 +2753,7 @@
Function: QP::QF::newRef_
Parameters: (QEvt const * const e, QEvt const * const evtRef)
Complexity Param 2 Return 1 Cyclo Vg 2 Total 5
LOC 10 eLOC 8 lLOC 5 Comment 15 Lines 14
LOC 10 eLOC 9 lLOC 5 Comment 15 Lines 14
Function: QP::QF::poolGetMaxBlockSize
Parameters: (void)
@ -3156,26 +3136,26 @@
LOC 14 eLOC 11 lLOC 7 Comment 2 Lines 16
Total: Functions
LOC 2741 eLOC 2285 lLOC 1364 InCmp 344 CycloCmp 466
LOC 2739 eLOC 2284 lLOC 1362 InCmp 340 CycloCmp 464
Function Points FP(LOC) 46.7 FP(eLOC) 39.5 FP(lLOC) 23.8
------------------------------------------------------------------------
~~ Project Functional Analysis ~~
Total Functions .......: 177 Total Physical Lines ..: 3793
Total LOC .............: 2741 Total Function Pts LOC : 46.7
Total eLOC ............: 2285 Total Function Pts eLOC: 39.5
Total lLOC.............: 1364 Total Function Pts lLOC: 23.8
Total Cyclomatic Comp. : 466 Total Interface Comp. .: 344
Total Parameters ......: 167 Total Return Points ...: 177
Total Comment Lines ...: 2682 Total Blank Lines .....: 513
Total Functions .......: 175 Total Physical Lines ..: 3791
Total LOC .............: 2739 Total Function Pts LOC : 46.7
Total eLOC ............: 2284 Total Function Pts eLOC: 39.5
Total lLOC.............: 1362 Total Function Pts lLOC: 23.8
Total Cyclomatic Comp. : 464 Total Interface Comp. .: 340
Total Parameters ......: 165 Total Return Points ...: 175
Total Comment Lines ...: 2680 Total Blank Lines .....: 513
------ ----- ----- ------ ------ -----
Avg Physical Lines ....: 21.43
Avg LOC ...............: 15.49 Avg eLOC ..............: 12.91
Avg lLOC ..............: 7.71 Avg Cyclomatic Comp. ..: 2.63
Avg Physical Lines ....: 21.66
Avg LOC ...............: 15.65 Avg eLOC ..............: 13.05
Avg lLOC ..............: 7.78 Avg Cyclomatic Comp. ..: 2.65
Avg Interface Comp. ...: 1.94 Avg Parameters ........: 0.94
Avg Return Points .....: 1.00 Avg Comment Lines .....: 15.15
Avg Return Points .....: 1.00 Avg Comment Lines .....: 15.31
------ ----- ----- ------ ------ -----
Max LOC ...............: 117
Max eLOC ..............: 100 Max lLOC ..............: 61

View File

@ -28,13 +28,34 @@ Starting from version 5.6.0, QP/C++ includes the conventional, preemptive @ref q
/*##########################################################################*/
/*! @page embos embOS
@image html under_construction.jpg
<p>The QP/C/C++ ports and examples for embOS are described in the Quantum Leaps Application Note <a class="extern" target="_blank" href="https://state-machine.com/doc/AN_RTOS-embOS.pdf"><strong>QP and embOS</strong></a>.
</p>
@htmlonly
<div class="image">
<a target="_blank" href="https://state-machine.com/doc/AN_RTOS-embOS.pdf"><img border="0" src="img/AN.jpg" title="Download PDF"></a>
<div class="caption">
Application Note: QP and embOS
</div>
</div>
@endhtmlonly
*/
/*##########################################################################*/
/*! @page threadx ThreadX
@image html under_construction.jpg
<p>The QP/C/C++ ports and examples for ThreadX are described in the Quantum Leaps Application Note <a class="extern" target="_blank" href="https://state-machine.com/doc/AN_RTOS-ThreadX.pdf"><strong>QP and ThreadX</strong></a>.
</p>
@htmlonly
<div class="image">
<a target="_blank" href="https://state-machine.com/doc/AN_RTOS-ThreadX.pdf"><img border="0" src="img/AN.jpg" title="Download PDF"></a>
<div class="caption">
Application Note: QP and ThreadX
</div>
</div>
@endhtmlonly
*/
@ -344,7 +365,17 @@ qpc
@note
Specifically, the QP source files qf_actq.c and qf_mem.c must **NOT** be included in the build, because this functionality is taken from uC/OS-II.
@image html under_construction.jpg
<p>The QP/C/C++ ports and examples for uC/OS-II are described in the Quantum Leaps Application Note <a class="extern" target="_blank" href="https://state-machine.com/doc/AN_RTOS-uCOS2.pdf"><strong>QP and uC/OS-II</strong></a>.
</p>
@htmlonly
<div class="image">
<a target="_blank" href="https://state-machine.com/doc/AN_RTOS-uCOS2.pdf"><img border="0" src="img/AN.jpg" title="Download PDF"></a>
<div class="caption">
Application Note: QP and uC/OS-II
</div>
</div>
@endhtmlonly
*/

View File

@ -7,7 +7,7 @@ To "lint" the application, invoke the batch "lin.bat" without parameters.
Optionally, you can supply the parameter -DQ_SPY to include the QS
instrumentation in the "linting" process.
The output from the "linting" is saved in the fle "lin_out.txt".
The output from the "linting" is saved in the fle "lin_out.log".
***
NOTE: You need to adjust the symbol PC_LINT_DIR at the top of the

View File

@ -1,8 +1,8 @@
@echo off
:: ===========================================================================
:: Product: QP/C++ build script for PC-Lint(TM)
:: Last Updated for Version: 5.4.0
:: Date of the Last Update: 2015-04-15
:: Last Updated for Version: 5.9.7
:: Date of the Last Update: 2017-08-31
::
:: Q u a n t u m L e a P s
:: ---------------------------
@ -50,6 +50,6 @@ set LINTFLAGS=-i%PC_LINT_DIR%\lnt %QPCPP%\include\std.lnt options.lnt %1 %2 %3 %
set PROJ_DIR=..
:: linting -------------------------------------------------------------------
%PC_LINT_DIR%\lint-nt -os(lint_out.txt) %LINTFLAGS% %PROJ_DIR%\philo.cpp %PROJ_DIR%\table.cpp
%PC_LINT_DIR%\lint-nt -os(lint_out.log) %LINTFLAGS% %PROJ_DIR%\philo.cpp %PROJ_DIR%\table.cpp
endlocal

View File

@ -1,13 +1,13 @@
//////////////////////////////////////////////////////////////////////////////
// Product: PC-Lint 9.x options for linting QP/C++ applications, GNU-ARM
// Last Updated for Version: 5.4.0
// Date of the Last Update: 2015-03-19
// Last Updated for Version: 5.9.7
// Date of the Last Update: 2017-08-31
//
// Q u a n t u m L e a P s
// ---------------------------
// innovating embedded systems
//
// Copyright (C) Quantum Leaps, www.state-machine.com.
// Copyright (C) Quantum Leaps, LLC. All rights reserved.
//
// This program is open source software: you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
@ -28,20 +28,28 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// Contact information:
// Web: www.state-machine.com
// Email: info@state-machine.com
// http://www.state-machine.com
// mailto:info@state-machine.com
//////////////////////////////////////////////////////////////////////////////
// NOTE:
// The following code requires the definition of the QTOOLS environment
// variable, which must point to the installation directory of QTools on
// your machine (e.g. C:\qp\qtools )
// the location of the GNU-ARM includes (need to adjust!!!)
-iC:\tools\gnu_arm-eabi\arm-eabi\include
-i%QTOOLS%\gnu_arm-eabi\arm-eabi\include
// define ARM Architecture
-D__ARM_ARCH=7
// the location of the QTools lint directory (need to adjust!!!)
-iC:\tools\qtools\lint
-i%QTOOLS%\lint
// the location of the QPC framework (need to adjust!!!)
-i..\..\..\..\include // QP/C++ includes
-i..\..\..\..\ports\arm-cm\qk\gnu // QP/C++ port includes
-i..\..\..\..\3rd_partyCMSIS\Include // CMSIS directory
-i..\..\..\..\include // QP/C++ includes
-i..\..\..\..\ports\arm-cm\qk\gnu // QP/C++ port includes
-i..\..\..\..\3rd_party\CMSIS\Include // CMSIS directory
-D__ARM7M__=1 // define for Cortex-M3/M4
-D__ARM6M__=0 // define for Cortex-M0/M0+
@ -87,4 +95,3 @@ qpcpp.lnt // QP/C++ options
-e756 // global typedef '...' not referenced
-e757 // global declarator '...' not referenced
-e768 // struct member '...' not referenced

View File

@ -7,7 +7,7 @@ To "lint" the application, invoke the batch "lin.bat" without parameters.
Optionally, you can supply the parameter -DQ_SPY to include the QS
instrumentation in the "linting" process.
The output from the "linting" is saved in the fle "lin_out.txt".
The output from the "linting" is saved in the fle "lin_out.log".
***
NOTE: You need to adjust the symbol PC_LINT_DIR at the top of the

View File

@ -1,8 +1,8 @@
@echo off
:: ===========================================================================
:: Product: QP/C++ build script for PC-Lint(TM)
:: Last Updated for Version: 5.4.0
:: Date of the Last Update: 2015-04-15
:: Last Updated for Version: 5.9.7
:: Date of the Last Update: 2017-08-31
::
:: Q u a n t u m L e a P s
:: ---------------------------
@ -50,6 +50,6 @@ set LINTFLAGS=-i%PC_LINT_DIR%\lnt %QPCPP%\include\std.lnt options.lnt %1 %2 %3 %
set PROJ_DIR=..
:: linting -------------------------------------------------------------------
%PC_LINT_DIR%\lint-nt -os(lint_out.txt) %LINTFLAGS% %PROJ_DIR%\philo.cpp %PROJ_DIR%\table.cpp
%PC_LINT_DIR%\lint-nt -os(lint_out.log) %LINTFLAGS% %PROJ_DIR%\philo.cpp %PROJ_DIR%\table.cpp
endlocal

View File

@ -1,3 +0,0 @@
"C:\qp_lab\qpcpp\examples\arm-cm\dpp_ek-tm4c123gxl\lint\options.lnt" 49 1 Error 307: Can't open indirect file 'co-gnu-arm.lnt'

View File

@ -1,13 +1,13 @@
//////////////////////////////////////////////////////////////////////////////
// Product: PC-Lint 9.x options for linting QP/C++ applications, GNU-ARM
// Last Updated for Version: 5.4.0
// Date of the Last Update: 2015-03-19
// Last Updated for Version: 5.9.7
// Date of the Last Update: 2017-08-31
//
// Q u a n t u m L e a P s
// ---------------------------
// innovating embedded systems
//
// Copyright (C) Quantum Leaps, www.state-machine.com.
// Copyright (C) Quantum Leaps, LLC. All rights reserved.
//
// This program is open source software: you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published
@ -28,20 +28,28 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// Contact information:
// Web: www.state-machine.com
// Email: info@state-machine.com
// http://www.state-machine.com
// mailto:info@state-machine.com
//////////////////////////////////////////////////////////////////////////////
// NOTE:
// The following code requires the definition of the QTOOLS environment
// variable, which must point to the installation directory of QTools on
// your machine (e.g. C:\qp\qtools )
// the location of the GNU-ARM includes (need to adjust!!!)
-iC:\tools\gnu_arm-eabi\arm-eabi\include
-i%QTOOLS%\gnu_arm-eabi\arm-eabi\include
// define ARM Architecture
-D__ARM_ARCH=7
// the location of the QTools lint directory (need to adjust!!!)
-iC:\tools\qtools\lint
-i%QTOOLS%\lint
// the location of the QPC framework (need to adjust!!!)
-i..\..\..\..\include // QP/C++ includes
-i..\..\..\..\ports\arm-cm\qk\gnu // QP/C++ port includes
-i..\..\..\..\3rd_partyCMSIS\Include // CMSIS directory
-i..\..\..\..\include // QP/C++ includes
-i..\..\..\..\ports\arm-cm\qk\gnu // QP/C++ port includes
-i..\..\..\..\3rd_party\CMSIS\Include // CMSIS directory
-D__ARM7M__=1 // define for Cortex-M3/M4
-D__ARM6M__=0 // define for Cortex-M0/M0+
@ -87,4 +95,3 @@ qpcpp.lnt // QP/C++ options
-e756 // global typedef '...' not referenced
-e757 // global declarator '...' not referenced
-e768 // struct member '...' not referenced

View File

@ -6,52 +6,16 @@
/// in the build directory before each build. (Most development tools allow
/// you to specify a pre-build action, which is the ideal place to delete
/// the qstamp object file.)
/// @cond
///***************************************************************************
/// Last updated for version 5.6.0
/// Last updated on 2015-12-26
///
/// Q u a n t u m L e a P s
/// ---------------------------
/// innovating embedded systems
///
/// Copyright (C) Quantum Leaps. All rights reserved.
///
/// This program is open source software: you can redistribute it and/or
/// modify it under the terms of the GNU General Public License as published
/// by the Free Software Foundation, either version 3 of the License, or
/// (at your option) any later version.
///
/// Alternatively, this program may be distributed and modified under the
/// terms of Quantum Leaps commercial licenses, which expressly supersede
/// the GNU General Public License and are specifically designed for
/// licensees interested in retaining the proprietary status of their code.
///
/// This program is distributed in the hope that it will be useful,
/// but WITHOUT ANY WARRANTY; without even the implied warranty of
/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
/// GNU General Public License for more details.
///
/// You should have received a copy of the GNU General Public License
/// along with this program. If not, see <http://www.gnu.org/licenses/>.
///
/// Contact information:
/// https://state-machine.com
/// mailto:info@state-machine.com
///***************************************************************************
/// @endcond
#include "qpcpp.h"
namespace QP {
extern char_t const BUILD_DATE[12];
extern char_t const BUILD_TIME[9];
extern char const BUILD_DATE[12];
extern char const BUILD_TIME[9];
//! the calendar date of the last translation of the form: "Mmm dd yyyy"
char_t const BUILD_DATE[12] = __DATE__;
char const BUILD_DATE[12] = __DATE__;
//! the time of the last translation of the form: "hh:mm:ss"
char_t const BUILD_TIME[9] = __TIME__;
char const BUILD_TIME[9] = __TIME__;
} // namespace QP

View File

@ -2,8 +2,8 @@
/// @brief QF/C++ dynamic event management
/// @cond
///***************************************************************************
/// Last updated for version 5.9.3
/// Last updated on 2017-06-19
/// Last updated for version 5.9.7
/// Last updated on 2017-08-25
///
/// Q u a n t u m L e a P s
/// ---------------------------
@ -196,7 +196,7 @@ QEvt *QF::newX_(uint_fast16_t const evtSize,
///
void QF::gc(QEvt const * const e) {
// is it a dynamic event?
if (QF_EVT_POOL_ID_(e) != static_cast<uint8_t>(0)) {
if (e->poolId_ != static_cast<uint8_t>(0)) {
QF_CRIT_STAT_
QF_CRIT_ENTRY_();
@ -255,15 +255,15 @@ void QF::gc(QEvt const * const e) {
/// The only allowed use is thorough the macro Q_NEW_REF().
///
QEvt const *QF::newRef_(QEvt const * const e, QEvt const * const evtRef) {
// the provided event reference must not be in use
Q_REQUIRE_ID(500, evtRef == static_cast<QEvt const *>(0));
//! @pre the event must be dynamic and the provided event reference
//! must not be already in use
Q_REQUIRE_ID(500,
(e->poolId_ != static_cast<uint8_t>(0))
&& (evtRef == static_cast<QEvt const *>(0)));
QF_CRIT_STAT_
QF_CRIT_ENTRY_();
// is the current event dynamic?
if (e->poolId_ != static_cast<uint8_t>(0)) {
QF_EVT_REF_CTR_INC_(e); // increments the ref counter
}
QF_EVT_REF_CTR_INC_(e); // increments the ref counter
QF_CRIT_EXIT_();
return e;

View File

@ -3,8 +3,8 @@
/// @brief Internal (package scope) QF/C++ interface.
/// @cond
///***************************************************************************
/// Last updated for version 5.8.0
/// Last updated on 2016-11-29
/// Last updated for version 5.9.7
/// Last updated on 2017-08-25
///
/// Q u a n t u m L e a P s
/// ---------------------------
@ -101,12 +101,6 @@ struct QFreeBlock {
//****************************************************************************
// internal helper inline functions
//! access to the poolId_ of an event @p e
inline uint8_t QF_EVT_POOL_ID_(QEvt const * const e) { return e->poolId_; }
//! access to the refCtr_ of an event @p e
inline uint8_t QF_EVT_REF_CTR_(QEvt const * const e) { return e->refCtr_; }
//! increment the refCtr_ of an event @p e
inline void QF_EVT_REF_CTR_INC_(QEvt const * const e) {
++(QF_EVT_CONST_CAST_(e))->refCtr_;