diff --git a/.gitignore b/.gitignore index b8462550..ff4f5621 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ version-* JLink*.* +cert/ html/ latex/ doxygen/gen/ diff --git a/examples b/examples index 5e7c7e64..b11c80ef 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit 5e7c7e64d3a6b1c3fde11cb03252bfb37bbf1149 +Subproject commit b11c80ef242ca83d3f988b846ea28aedaa0ad2ce diff --git a/include/qp.h b/include/qp.h index 1540502b..3678b035 100644 --- a/include/qp.h +++ b/include/qp.h @@ -44,9 +44,9 @@ #define QP_H_ //============================================================================ -#define QP_VERSION_STR "7.3.5-rc.1" -#define QP_VERSION 735U -#define QP_RELEASE 0x70A1DEF0U +#define QP_VERSION_STR "7.4.0-rc.1" +#define QP_VERSION 740U +#define QP_RELEASE 0x7092C3BBU //============================================================================ //! @cond INTERNAL @@ -162,14 +162,19 @@ extern QEvt const QEvt_reserved_[4]; // public: //! @public @memberof QEvt -static inline QEvt * QEvt_ctor(QEvt * const me, +static inline void QEvt_ctor(QEvt * const me, enum_t const sig) { - if (sig != QEVT_DYNAMIC) { - me->sig = (QSignal)sig; - me->refCtr_ = 0U; - me->evtTag_ = QEVT_MARKER; - } + me->sig = (QSignal)sig; + me->refCtr_ = 0U; + me->evtTag_ = QEVT_MARKER; +} + +//! @public @memberof QEvt +static inline QEvt * QEvt_init(QEvt * const me, + uint8_t dummy) +{ + (void)dummy; return me; } @@ -1155,31 +1160,31 @@ void QF_gcFromISR(QEvt const * const e); #define Q_PRIO(prio_, pthre_) ((QPrioSpec)((prio_) | ((pthre_) << 8U))) //${QF-macros::Q_NEW} ........................................................ -#ifndef QEVT_DYN_CTOR +#ifndef QEVT_PAR_INIT #define Q_NEW(evtT_, sig_) ((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ QF_NO_MARGIN, (enum_t)(sig_))) -#endif // ndef QEVT_DYN_CTOR +#endif // ndef QEVT_PAR_INIT //${QF-macros::Q_NEW} ........................................................ -#ifdef QEVT_DYN_CTOR +#ifdef QEVT_PAR_INIT #define Q_NEW(evtT_, sig_, ...) \ - (evtT_##_ctor((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ + (evtT_##_init((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ QF_NO_MARGIN, (sig_)), __VA_ARGS__)) -#endif // def QEVT_DYN_CTOR +#endif // def QEVT_PAR_INIT //${QF-macros::Q_NEW_X} ...................................................... -#ifndef QEVT_DYN_CTOR +#ifndef QEVT_PAR_INIT #define Q_NEW_X(evtT_, margin_, sig_) \ ((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ (margin_), (enum_t)(sig_))) -#endif // ndef QEVT_DYN_CTOR +#endif // ndef QEVT_PAR_INIT //${QF-macros::Q_NEW_X} ...................................................... -#ifdef QEVT_DYN_CTOR +#ifdef QEVT_PAR_INIT #define Q_NEW_X(evtT_, margin_, sig_, ...) \ - (evtT_##_ctor((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ + (evtT_##_init((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ (margin_), (sig_)), __VA_ARGS__)) -#endif // def QEVT_DYN_CTOR +#endif // def QEVT_PAR_INIT //${QF-macros::Q_NEW_REF} .................................................... #define Q_NEW_REF(evtRef_, evtT_) \ diff --git a/include/qpc.h b/include/qpc.h index f9d7c1b5..a4f31c2e 100644 --- a/include/qpc.h +++ b/include/qpc.h @@ -62,7 +62,12 @@ //============================================================================ // QP API compatibility layer... -#if (QP_API_VERSION < 730) +#if (QP_API_VERSION < 740) + +#ifdef QEVT_DYN_CTOR +//! @deprecated #QEVT_DYN_CTOR, please use #QEVT_PAR_INIT +#define QEVT_PAR_INIT +#endif //! @deprecated plain 'char' is no longer forbidden in MISRA-C:2023 typedef char char_t; diff --git a/ports/arm-cm/qk/armclang/qs_port.h b/ports/arm-cm/qk/armclang/qs_port.h index 92ec4663..7895e109 100644 --- a/ports/arm-cm/qk/armclang/qs_port.h +++ b/ports/arm-cm/qk/armclang/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qk/config/qp_config.h b/ports/arm-cm/qk/config/qp_config.h index afba2176..17334c77 100644 --- a/ports/arm-cm/qk/config/qp_config.h +++ b/ports/arm-cm/qk/config/qp_config.h @@ -1,7 +1,7 @@ //============================================================================ // QP configuration file (QK on ARM Cortex-M) -// Last updated for version: 7.3.0 -// Last updated on: 2023-10-30 +// Last updated for version: 7.4.0 +// Last updated on: 2024-06-06 // // Q u a n t u m L e a P s // ------------------------ @@ -129,9 +129,9 @@ // Default: 1 #define QF_MAX_TICK_RATE 1U -// Dynamic Event Constructor (QEVT_DYN_CTOR) -// Dynamic Event Constructor (RAII) -//#define QEVT_DYN_CTOR +// Event parameter initialization (QEVT_PAR_INIT) +// Resource Acquisition Is Initialization (RAII) for dynamic events +//#define QEVT_PAR_INIT // // Active Object stop API (QACTIVE_CAN_STOP) @@ -184,10 +184,10 @@ //.......................................................................... // QS Software Tracing // Target-resident component of QP/Spy software tracing system -// (tracing instrumenation and command-input). +// (tracing instrumentation and command-input). // NOTE: Requires command-line macro: Q_SPY -// The QS software tracing instrumenation is activated only when +// The QS software tracing instrumentation is activated only when // the macro Q_SPY is defined on the command-line to the compiler. // Typically, Q_SPY is defined only in the "spy" build configuration. @@ -199,22 +199,6 @@ // Default: 4 (2^32 dynamic range) #define QS_TIME_SIZE 4U -// Object pointer size (QS_OBJ_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of object pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_OBJ_PTR_SIZE 4U - -// Function pointer size (QS_FUN_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of function pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_FUN_PTR_SIZE 4U - // QS buffer counter size (QS_CTR_SIZE) // <1U=>1 // <2U=>2 (default) diff --git a/ports/arm-cm/qk/gnu/qs_port.h b/ports/arm-cm/qk/gnu/qs_port.h index 92ec4663..7895e109 100644 --- a/ports/arm-cm/qk/gnu/qs_port.h +++ b/ports/arm-cm/qk/gnu/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qk/iar/qs_port.h b/ports/arm-cm/qk/iar/qs_port.h index 92ec4663..7895e109 100644 --- a/ports/arm-cm/qk/iar/qs_port.h +++ b/ports/arm-cm/qk/iar/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qutest/qs_port.h b/ports/arm-cm/qutest/qs_port.h index 78a4666a..7895e109 100644 --- a/ports/arm-cm/qutest/qs_port.h +++ b/ports/arm-cm/qutest/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,7 +47,7 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -53,4 +55,3 @@ #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qv/armclang/qs_port.h b/ports/arm-cm/qv/armclang/qs_port.h index 92ec4663..7895e109 100644 --- a/ports/arm-cm/qv/armclang/qs_port.h +++ b/ports/arm-cm/qv/armclang/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qv/config/qp_config.h b/ports/arm-cm/qv/config/qp_config.h index bb382fbb..0e9ffda3 100644 --- a/ports/arm-cm/qv/config/qp_config.h +++ b/ports/arm-cm/qv/config/qp_config.h @@ -1,7 +1,7 @@ //============================================================================ // QP configuration file (QV on ARM Cortex-M) -// Last updated for version: 7.3.0 -// Last updated on: 2023-10-30 +// Last updated for version: 7.4.0 +// Last updated on: 2024-06-06 // // Q u a n t u m L e a P s // ------------------------ @@ -129,9 +129,9 @@ // Default: 1 #define QF_MAX_TICK_RATE 1U -// Dynamic Event Constructor (QEVT_DYN_CTOR) -// Dynamic Event Constructor (RAII) -//#define QEVT_DYN_CTOR +// Event parameter initialization (QEVT_PAR_INIT) +// Resource Acquisition Is Initialization (RAII) for dynamic events +//#define QEVT_PAR_INIT // // Active Object stop API (QACTIVE_CAN_STOP) @@ -184,10 +184,10 @@ //.......................................................................... // QS Software Tracing // Target-resident component of QP/Spy software tracing system -// (tracing instrumenation and command-input). +// (tracing instrumentation and command-input). // NOTE: Requires command-line macro: Q_SPY -// The QS software tracing instrumenation is activated only when +// The QS software tracing instrumentation is activated only when // the macro Q_SPY is defined on the command-line to the compiler. // Typically, Q_SPY is defined only in the "spy" build configuration. @@ -199,22 +199,6 @@ // Default: 4 (2^32 dynamic range) #define QS_TIME_SIZE 4U -// Object pointer size (QS_OBJ_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of object pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_OBJ_PTR_SIZE 4U - -// Function pointer size (QS_FUN_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of function pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_FUN_PTR_SIZE 4U - // QS buffer counter size (QS_CTR_SIZE) // <1U=>1 // <2U=>2 (default) diff --git a/ports/arm-cm/qv/gnu/qs_port.h b/ports/arm-cm/qv/gnu/qs_port.h index 92ec4663..7895e109 100644 --- a/ports/arm-cm/qv/gnu/qs_port.h +++ b/ports/arm-cm/qv/gnu/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qv/iar/qs_port.h b/ports/arm-cm/qv/iar/qs_port.h index 92ec4663..7895e109 100644 --- a/ports/arm-cm/qv/iar/qs_port.h +++ b/ports/arm-cm/qv/iar/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qxk/armclang/qs_port.h b/ports/arm-cm/qxk/armclang/qs_port.h index 92ec4663..7895e109 100644 --- a/ports/arm-cm/qxk/armclang/qs_port.h +++ b/ports/arm-cm/qxk/armclang/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qxk/armclang/qxk_port.c b/ports/arm-cm/qxk/armclang/qxk_port.c index f602b0fd..4c605235 100644 --- a/ports/arm-cm/qxk/armclang/qxk_port.c +++ b/ports/arm-cm/qxk/armclang/qxk_port.c @@ -28,7 +28,7 @@ // //============================================================================ //! @date Last updated on: 2024-05-28 -//! @version Last updated for: @ref qpc_7_3_5 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QXK/C port to ARM Cortex-M, ARM-CLANG diff --git a/ports/arm-cm/qxk/config/qp_config.h b/ports/arm-cm/qxk/config/qp_config.h index ac7dfd1e..191770f4 100644 --- a/ports/arm-cm/qxk/config/qp_config.h +++ b/ports/arm-cm/qxk/config/qp_config.h @@ -1,7 +1,7 @@ //============================================================================ // QP configuration file (QXK on ARM Cortex-M) -// Last updated for version: 7.3.0 -// Last updated on: 2023-10-30 +// Last updated for version: 7.4.0 +// Last updated on: 2024-06-06 // // Q u a n t u m L e a P s // ------------------------ @@ -129,9 +129,9 @@ // Default: 1 #define QF_MAX_TICK_RATE 1U -// Dynamic Event Constructor (QEVT_DYN_CTOR) -// Dynamic Event Constructor (RAII) -//#define QEVT_DYN_CTOR +// Event parameter initialization (QEVT_PAR_INIT) +// Resource Acquisition Is Initialization (RAII) for dynamic events +//#define QEVT_PAR_INIT // // Active Object stop API (QACTIVE_CAN_STOP) @@ -184,10 +184,10 @@ //.......................................................................... // QS Software Tracing // Target-resident component of QP/Spy software tracing system -// (tracing instrumenation and command-input). +// (tracing instrumentation and command-input). // NOTE: Requires command-line macro: Q_SPY -// The QS software tracing instrumenation is activated only when +// The QS software tracing instrumentation is activated only when // the macro Q_SPY is defined on the command-line to the compiler. // Typically, Q_SPY is defined only in the "spy" build configuration. @@ -199,22 +199,6 @@ // Default: 4 (2^32 dynamic range) #define QS_TIME_SIZE 4U -// Object pointer size (QS_OBJ_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of object pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_OBJ_PTR_SIZE 4U - -// Function pointer size (QS_FUN_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of function pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_FUN_PTR_SIZE 4U - // QS buffer counter size (QS_CTR_SIZE) // <1U=>1 // <2U=>2 (default) diff --git a/ports/arm-cm/qxk/gnu/qs_port.h b/ports/arm-cm/qxk/gnu/qs_port.h index 016fa909..7895e109 100644 --- a/ports/arm-cm/qxk/gnu/qs_port.h +++ b/ports/arm-cm/qxk/gnu/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,7 +47,7 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -58,4 +55,3 @@ #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qxk/gnu/qxk_port.c b/ports/arm-cm/qxk/gnu/qxk_port.c index 9152d9ff..4eb91756 100644 --- a/ports/arm-cm/qxk/gnu/qxk_port.c +++ b/ports/arm-cm/qxk/gnu/qxk_port.c @@ -28,7 +28,7 @@ // //============================================================================ //! @date Last updated on: 2024-05-28 -//! @version Last updated for: @ref qpc_7_3_5 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QXK/C port to ARM Cortex-M, GNU-ARM diff --git a/ports/arm-cm/qxk/iar/qs_port.h b/ports/arm-cm/qxk/iar/qs_port.h index 92ec4663..7895e109 100644 --- a/ports/arm-cm/qxk/iar/qs_port.h +++ b/ports/arm-cm/qxk/iar/qs_port.h @@ -27,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -50,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cm/qxk/iar/qxk_port.c b/ports/arm-cm/qxk/iar/qxk_port.c index 71473d98..32041d61 100644 --- a/ports/arm-cm/qxk/iar/qxk_port.c +++ b/ports/arm-cm/qxk/iar/qxk_port.c @@ -28,7 +28,7 @@ // //============================================================================ //! @date Last updated on: 2024-05-28 -//! @version Last updated for: @ref qpc_7_3_5 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QXK/C port to ARM Cortex-M, IAR-ARM diff --git a/ports/arm-cr/qk/config/qp_config.h b/ports/arm-cr/qk/config/qp_config.h index edb231a8..9f1f3034 100644 --- a/ports/arm-cr/qk/config/qp_config.h +++ b/ports/arm-cr/qk/config/qp_config.h @@ -1,7 +1,7 @@ //============================================================================ // QP configuration file (QK on ARM Cortex-R) -// Last updated for version: 7.3.0 -// Last updated on: 2023-10-30 +// Last updated for version: 7.4.0 +// Last updated on: 2024-06-06 // // Q u a n t u m L e a P s // ------------------------ @@ -129,9 +129,9 @@ // Default: 1 #define QF_MAX_TICK_RATE 1U -// Dynamic Event Constructor (QEVT_DYN_CTOR) -// Dynamic Event Constructor (RAII) -//#define QEVT_DYN_CTOR +// Event parameter initialization (QEVT_PAR_INIT) +// Resource Acquisition Is Initialization (RAII) for dynamic events +//#define QEVT_PAR_INIT // // Active Object stop API (QACTIVE_CAN_STOP) @@ -184,10 +184,10 @@ //.......................................................................... // QS Software Tracing // Target-resident component of QP/Spy software tracing system -// (tracing instrumenation and command-input). +// (tracing instrumentation and command-input). // NOTE: Requires command-line macro: Q_SPY -// The QS software tracing instrumenation is activated only when +// The QS software tracing instrumentation is activated only when // the macro Q_SPY is defined on the command-line to the compiler. // Typically, Q_SPY is defined only in the "spy" build configuration. @@ -199,22 +199,6 @@ // Default: 4 (2^32 dynamic range) #define QS_TIME_SIZE 4U -// Object pointer size (QS_OBJ_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of object pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_OBJ_PTR_SIZE 4U - -// Function pointer size (QS_FUN_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of function pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_FUN_PTR_SIZE 4U - // QS buffer counter size (QS_CTR_SIZE) // <1U=>1 // <2U=>2 (default) @@ -226,8 +210,8 @@ // //.......................................................................... -// QK Preemptive Non-Blocking Kernel -// Preemptive non-blocking RTOS kernel. +// QK Preemptive Kernel +// Cooperative Run-to-Completion RTOS kernel. // Context switch callback (QF_ON_CONTEXT_SW) @@ -249,7 +233,6 @@ // -// //------------- <<< end of configuration section >>> ----------------------- diff --git a/ports/arm-cr/qk/gnu/qs_port.h b/ports/arm-cr/qk/gnu/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/arm-cr/qk/gnu/qs_port.h +++ b/ports/arm-cr/qk/gnu/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cr/qk/iar/qs_port.h b/ports/arm-cr/qk/iar/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/arm-cr/qk/iar/qs_port.h +++ b/ports/arm-cr/qk/iar/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cr/qk/ti/qs_port.h b/ports/arm-cr/qk/ti/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/arm-cr/qk/ti/qs_port.h +++ b/ports/arm-cr/qk/ti/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cr/qv/config/qp_config.h b/ports/arm-cr/qv/config/qp_config.h index 5fe3ec55..3ae8c32c 100644 --- a/ports/arm-cr/qv/config/qp_config.h +++ b/ports/arm-cr/qv/config/qp_config.h @@ -1,7 +1,7 @@ //============================================================================ // QP configuration file (QV on ARM Cortex-R) -// Last updated for version: 7.3.0 -// Last updated on: 2023-10-30 +// Last updated for version: 7.4.0 +// Last updated on: 2024-06-06 // // Q u a n t u m L e a P s // ------------------------ @@ -129,9 +129,9 @@ // Default: 1 #define QF_MAX_TICK_RATE 1U -// Dynamic Event Constructor (QEVT_DYN_CTOR) -// Dynamic Event Constructor (RAII) -//#define QEVT_DYN_CTOR +// Event parameter initialization (QEVT_PAR_INIT) +// Resource Acquisition Is Initialization (RAII) for dynamic events +//#define QEVT_PAR_INIT // // Active Object stop API (QACTIVE_CAN_STOP) @@ -184,10 +184,10 @@ //.......................................................................... // QS Software Tracing // Target-resident component of QP/Spy software tracing system -// (tracing instrumenation and command-input). +// (tracing instrumentation and command-input). // NOTE: Requires command-line macro: Q_SPY -// The QS software tracing instrumenation is activated only when +// The QS software tracing instrumentation is activated only when // the macro Q_SPY is defined on the command-line to the compiler. // Typically, Q_SPY is defined only in the "spy" build configuration. @@ -199,22 +199,6 @@ // Default: 4 (2^32 dynamic range) #define QS_TIME_SIZE 4U -// Object pointer size (QS_OBJ_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of object pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_OBJ_PTR_SIZE 4U - -// Function pointer size (QS_FUN_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of function pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_FUN_PTR_SIZE 4U - // QS buffer counter size (QS_CTR_SIZE) // <1U=>1 // <2U=>2 (default) @@ -249,8 +233,6 @@ // -// - //------------- <<< end of configuration section >>> ----------------------- #endif // QP_CONFIG_H_ diff --git a/ports/arm-cr/qv/gnu/qs_port.h b/ports/arm-cr/qv/gnu/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/arm-cr/qv/gnu/qs_port.h +++ b/ports/arm-cr/qv/gnu/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cr/qv/iar/qs_port.h b/ports/arm-cr/qv/iar/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/arm-cr/qv/iar/qs_port.h +++ b/ports/arm-cr/qv/iar/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/arm-cr/qv/ti/qs_port.h b/ports/arm-cr/qv/ti/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/arm-cr/qv/ti/qs_port.h +++ b/ports/arm-cr/qv/ti/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/config/qp_config.h b/ports/config/qp_config.h index f902a015..953c58cc 100644 --- a/ports/config/qp_config.h +++ b/ports/config/qp_config.h @@ -1,7 +1,7 @@ //============================================================================ // QP configuration file (generic) -// Last updated for version: 7.3.0 -// Last updated on: 2023-10-30 +// Last updated for version: 7.4.0 +// Last updated on: 2024-06-06 // // Q u a n t u m L e a P s // ------------------------ @@ -129,9 +129,9 @@ // Default: 1 #define QF_MAX_TICK_RATE 1U -// Dynamic Event Constructor (QEVT_DYN_CTOR) -// Dynamic Event Constructor (RAII) -//#define QEVT_DYN_CTOR +// Event parameter initialization (QEVT_PAR_INIT) +// Resource Acquisition Is Initialization (RAII) for dynamic events +//#define QEVT_PAR_INIT // // Active Object stop API (QACTIVE_CAN_STOP) @@ -184,10 +184,10 @@ //.......................................................................... // QS Software Tracing // Target-resident component of QP/Spy software tracing system -// (tracing instrumenation and command-input). +// (tracing instrumentation and command-input). // NOTE: Requires command-line macro: Q_SPY -// The QS software tracing instrumenation is activated only when +// The QS software tracing instrumentation is activated only when // the macro Q_SPY is defined on the command-line to the compiler. // Typically, Q_SPY is defined only in the "spy" build configuration. @@ -199,22 +199,6 @@ // Default: 4 (2^32 dynamic range) #define QS_TIME_SIZE 4U -// Object pointer size (QS_OBJ_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of object pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_OBJ_PTR_SIZE 4U - -// Function pointer size (QS_FUN_PTR_SIZE) -// <2U=>2 -// <4U=>4 (default) -// <8U=>8 -// Size of function pointer for QS [bytes] -// Default: 4 (4G address space) -#define QS_FUN_PTR_SIZE 4U - // QS buffer counter size (QS_CTR_SIZE) // <1U=>1 // <2U=>2 (default) diff --git a/ports/embos/qs_port.h b/ports/embos/qs_port.h index f01b9af5..7895e109 100644 --- a/ports/embos/qs_port.h +++ b/ports/embos/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU, generic C11 compiler +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,7 +47,7 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -53,4 +55,3 @@ #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/freertos/qs_port.h b/ports/freertos/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/freertos/qs_port.h +++ b/ports/freertos/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/lint-plus/16bit/qs_port.h b/ports/lint-plus/16bit/qs_port.h index e2dc3231..65f5a327 100644 --- a/ports/lint-plus/16bit/qs_port.h +++ b/ports/lint-plus/16bit/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,21 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 16-bit CPU and a generic C11 compiler. -//! @description -//! This is an example of a QP/C port with the documentation for the -//! configuration macros and includes. -//! +//! @brief QS/C port to a 16-bit CPU and a generic C99 compiler. + #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 2U diff --git a/ports/lint-plus/32bit/qs_port.h b/ports/lint-plus/32bit/qs_port.h index dc2d7fbd..7895e109 100644 --- a/ports/lint-plus/32bit/qs_port.h +++ b/ports/lint-plus/32bit/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,21 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. -//! @description -//! This is an example of a QP/C port with the documentation for the -//! configuration macros and includes. -//! +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. + #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U diff --git a/ports/lint-plus2/16bit/qs_port.h b/ports/lint-plus2/16bit/qs_port.h index e2dc3231..65f5a327 100644 --- a/ports/lint-plus2/16bit/qs_port.h +++ b/ports/lint-plus2/16bit/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,21 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 16-bit CPU and a generic C11 compiler. -//! @description -//! This is an example of a QP/C port with the documentation for the -//! configuration macros and includes. -//! +//! @brief QS/C port to a 16-bit CPU and a generic C99 compiler. + #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 2U diff --git a/ports/lint-plus2/32bit/qs_port.h b/ports/lint-plus2/32bit/qs_port.h index dc2d7fbd..7895e109 100644 --- a/ports/lint-plus2/32bit/qs_port.h +++ b/ports/lint-plus2/32bit/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,21 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. -//! @description -//! This is an example of a QP/C port with the documentation for the -//! configuration macros and includes. -//! +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. + #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U diff --git a/ports/msp430/qk/qs_port.h b/ports/msp430/qk/qs_port.h index 5330e720..65f5a327 100644 --- a/ports/msp430/qk/qs_port.h +++ b/ports/msp430/qk/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 16-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 16-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 2U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/msp430/qutest/qs_port.h b/ports/msp430/qutest/qs_port.h index 5330e720..65f5a327 100644 --- a/ports/msp430/qutest/qs_port.h +++ b/ports/msp430/qutest/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 16-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 16-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 2U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/msp430/qv/qs_port.h b/ports/msp430/qv/qs_port.h index 5330e720..65f5a327 100644 --- a/ports/msp430/qv/qs_port.h +++ b/ports/msp430/qv/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 16-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 16-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 2U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/pic32/qk/xc32/qs_port.h b/ports/pic32/qk/xc32/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/pic32/qk/xc32/qs_port.h +++ b/ports/pic32/qk/xc32/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/pic32/qutest/xc32/qs_port.h b/ports/pic32/qutest/xc32/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/pic32/qutest/xc32/qs_port.h +++ b/ports/pic32/qutest/xc32/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/pic32/qv/xc32/qs_port.h b/ports/pic32/qv/xc32/qs_port.h index 206b7e4c..7895e109 100644 --- a/ports/pic32/qv/xc32/qs_port.h +++ b/ports/pic32/qv/xc32/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,18 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/posix-qutest/qs_port.h b/ports/posix-qutest/qs_port.h index 79c8e010..4cc04e7d 100644 --- a/ports/posix-qutest/qs_port.h +++ b/ports/posix-qutest/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,8 +27,8 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-19 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QS/C port to POSIX with GNU @@ -31,9 +36,6 @@ #ifndef QS_PORT_H_ #define QS_PORT_H_ -#define QS_CTR_SIZE 4U -#define QS_TIME_SIZE 4U - #if defined(__LP64__) || defined(_LP64) // 64-bit architecture? #define QS_OBJ_PTR_SIZE 8U #define QS_FUN_PTR_SIZE 8U @@ -50,7 +52,7 @@ void QS_rx_input(void); // handle the QS-RX input // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -58,4 +60,3 @@ void QS_rx_input(void); // handle the QS-RX input #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/posix-qv/qs_port.h b/ports/posix-qv/qs_port.h index 79c8e010..4cc04e7d 100644 --- a/ports/posix-qv/qs_port.h +++ b/ports/posix-qv/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,8 +27,8 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-19 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QS/C port to POSIX with GNU @@ -31,9 +36,6 @@ #ifndef QS_PORT_H_ #define QS_PORT_H_ -#define QS_CTR_SIZE 4U -#define QS_TIME_SIZE 4U - #if defined(__LP64__) || defined(_LP64) // 64-bit architecture? #define QS_OBJ_PTR_SIZE 8U #define QS_FUN_PTR_SIZE 8U @@ -50,7 +52,7 @@ void QS_rx_input(void); // handle the QS-RX input // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -58,4 +60,3 @@ void QS_rx_input(void); // handle the QS-RX input #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/posix/qs_port.h b/ports/posix/qs_port.h index 79c8e010..4cc04e7d 100644 --- a/ports/posix/qs_port.h +++ b/ports/posix/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,8 +27,8 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-19 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QS/C port to POSIX with GNU @@ -31,9 +36,6 @@ #ifndef QS_PORT_H_ #define QS_PORT_H_ -#define QS_CTR_SIZE 4U -#define QS_TIME_SIZE 4U - #if defined(__LP64__) || defined(_LP64) // 64-bit architecture? #define QS_OBJ_PTR_SIZE 8U #define QS_FUN_PTR_SIZE 8U @@ -50,7 +52,7 @@ void QS_rx_input(void); // handle the QS-RX input // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -58,4 +60,3 @@ void QS_rx_input(void); // handle the QS-RX input #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/qube/qs_port.h b/ports/qube/qs_port.h index 1f081fef..6339a5a2 100644 --- a/ports/qube/qs_port.h +++ b/ports/qube/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,8 +27,8 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QS/C port for the "Qube" execution harness (Windows, Linux, macOS) @@ -31,14 +36,10 @@ #ifndef QS_PORT_H_ #define QS_PORT_H_ -#define QS_CTR_SIZE 4U -#define QS_TIME_SIZE 4U - -// 64-bit architecture? -#if defined(__LP64__) || defined(_LP64) || defined(_WIN64) +#if defined(__LP64__) || defined(_LP64) || defined(_WIN64) // 64-bit? #define QS_OBJ_PTR_SIZE 8U #define QS_FUN_PTR_SIZE 8U -#else // 32-bit architecture +#else // 32-bit architecture #define QS_OBJ_PTR_SIZE 4U #define QS_FUN_PTR_SIZE 4U #endif @@ -51,8 +52,7 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". -// +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif diff --git a/ports/risc-v/qv/gnu/qs_port.h b/ports/risc-v/qv/gnu/qs_port.h index e2eb1a77..7895e109 100644 --- a/ports/risc-v/qv/gnu/qs_port.h +++ b/ports/risc-v/qv/gnu/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,21 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-05-23 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. -//! @description -//! This is an example of a QP/C port with the documentation for the -//! configuration macros and includes. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -48,8 +47,7 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". -// +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -57,4 +55,3 @@ #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/threadx/qs_port.h b/ports/threadx/qs_port.h index 2350d92f..7895e109 100644 --- a/ports/threadx/qs_port.h +++ b/ports/threadx/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,21 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. -//! @description -//! This is an example of a QP/C port with the documentation for the -//! configuration macros and includes. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -48,8 +47,7 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". -// +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -57,4 +55,3 @@ #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/uc-os2/qs_port.h b/ports/uc-os2/qs_port.h index 2350d92f..7895e109 100644 --- a/ports/uc-os2/qs_port.h +++ b/ports/uc-os2/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,21 +27,15 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file -//! @brief QS/C port to a 32-bit CPU and a generic C11 compiler. -//! @description -//! This is an example of a QP/C port with the documentation for the -//! configuration macros and includes. +//! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -48,8 +47,7 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". -// +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -57,4 +55,3 @@ #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/win32-qutest/qs_port.h b/ports/win32-qutest/qs_port.h index fed3284f..abe0298b 100644 --- a/ports/win32-qutest/qs_port.h +++ b/ports/win32-qutest/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,8 +27,8 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QS/C port to Win32 with GNU or Visual C++ compilers @@ -31,9 +36,6 @@ #ifndef QS_PORT_H_ #define QS_PORT_H_ -#define QS_CTR_SIZE 4U -#define QS_TIME_SIZE 4U - #ifdef _WIN64 // 64-bit architecture? #define QS_OBJ_PTR_SIZE 8U #define QS_FUN_PTR_SIZE 8U @@ -50,7 +52,7 @@ void QS_rx_input(void); // handle the QS-RX input // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -58,4 +60,3 @@ void QS_rx_input(void); // handle the QS-RX input #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/win32-qv/qs_port.h b/ports/win32-qv/qs_port.h index fed3284f..abe0298b 100644 --- a/ports/win32-qv/qs_port.h +++ b/ports/win32-qv/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,8 +27,8 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QS/C port to Win32 with GNU or Visual C++ compilers @@ -31,9 +36,6 @@ #ifndef QS_PORT_H_ #define QS_PORT_H_ -#define QS_CTR_SIZE 4U -#define QS_TIME_SIZE 4U - #ifdef _WIN64 // 64-bit architecture? #define QS_OBJ_PTR_SIZE 8U #define QS_FUN_PTR_SIZE 8U @@ -50,7 +52,7 @@ void QS_rx_input(void); // handle the QS-RX input // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -58,4 +60,3 @@ void QS_rx_input(void); // handle the QS-RX input #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/ports/win32/qs_port.h b/ports/win32/qs_port.h index fed3284f..abe0298b 100644 --- a/ports/win32/qs_port.h +++ b/ports/win32/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,8 +27,8 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QS/C port to Win32 with GNU or Visual C++ compilers @@ -31,9 +36,6 @@ #ifndef QS_PORT_H_ #define QS_PORT_H_ -#define QS_CTR_SIZE 4U -#define QS_TIME_SIZE 4U - #ifdef _WIN64 // 64-bit architecture? #define QS_OBJ_PTR_SIZE 8U #define QS_FUN_PTR_SIZE 8U @@ -50,7 +52,7 @@ void QS_rx_input(void); // handle the QS-RX input // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ #include "qp_port.h" // use QS with QP #endif @@ -58,4 +60,3 @@ void QS_rx_input(void); // handle the QS-RX input #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ - diff --git a/qpc.md5 b/qpc.md5 index 07b8cb5b..00a8e5c0 100644 --- a/qpc.md5 +++ b/qpc.md5 @@ -1,10 +1,10 @@ -4d275cf16910927c20f700d54e13435e *qpc.qm +ce2c6802e00361bbddbdf95a19746c97 *qpc.qm f71fdc0261b7d7e1693f7cf92b269fc0 *include/qequeue.h 57b1efebccde23a26f9d11e822ec379f *include/qk.h 807f80a7a39be52083010803f76b4f05 *include/qmpool.h -e8f2c2b5f22fedb0e344ea8aa3f71055 *include/qp.h +452994196124e44d9db81c366f5c9057 *include/qp.h e7b6c999b10d91f5c1adf1fde500e452 *include/qp_pkg.h -2ae619716b9a6c948ba2b3431d00c03b *include/qpc.h +01e5748669bf110cd91d0bbe8eb5b206 *include/qpc.h 2f2ed281e63d5803738ab0c92a77171f *include/qs.h 66f8bd1303a72346f52fbcccfd363586 *include/qs_dummy.h fad2d5ccd173e6374f4bce243709eef7 *include/qs_pkg.h @@ -19,10 +19,10 @@ b4ade402584ddb981fe5967e1a4418c7 *src/qf/qep_hsm.c 091c7f1f25217df387119df63ee51dd1 *src/qf/qf_actq.c 858f4abf264ab69734b4df56b0bfa739 *src/qf/qf_defer.c 29309e868460c232ef237a666b6d02b4 *src/qf/qf_dyn.c -83aff99fd71e3383f700d3dd5b712c4e *src/qf/qf_mem.c +276a142fc226625a51fe678ded9ca642 *src/qf/qf_mem.c e090893c0f33678c6bf267c637c6cb48 *src/qf/qf_ps.c 5a1d0999864f48a688d34e9273868e8b *src/qf/qf_qact.c -a34020507dc261f49eaaaf2062dcb81d *src/qf/qf_qeq.c +0ce5878f6b86d0542503c63049083320 *src/qf/qf_qeq.c f9867335faa23f0b57c921c8882e7a52 *src/qf/qf_qmact.c d457172637ab14cf42f99071bc7b8e7a *src/qf/qf_time.c ccd28413fc3a093ca99b03854cf7439b *src/qk/CMakeLists.txt @@ -51,80 +51,80 @@ be52f283a42b5b277097b5984181f204 *ports/lint-plus/options.lnt ecca2c20a6e0dc29a1f62aeb500ed165 *ports/lint-plus/std.lnt 8f1b876266fb274386670d94d0ba0fa2 *ports/arm-cm/qk/armclang/qk_port.c 5fcbb1d62dcc33ad8e0f38dfcf6f88a3 *ports/arm-cm/qk/armclang/qp_port.h -f6c251ec335af215b842ff2ef686e93f *ports/arm-cm/qk/armclang/qs_port.h -5112a0c22478899fe2f06136257b4f14 *ports/arm-cm/qk/config/qp_config.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qk/armclang/qs_port.h +ff973dd6492f060525805ba13d6ca02a *ports/arm-cm/qk/config/qp_config.h 116b6f9ac224fe5d60f0bfe0f8a4f9f0 *ports/arm-cm/qk/gnu/qk_port.c 12847297533c3226ccf66f189df8b4ca *ports/arm-cm/qk/gnu/qp_port.h -f6c251ec335af215b842ff2ef686e93f *ports/arm-cm/qk/gnu/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qk/gnu/qs_port.h ca7328d9e59618ce34a118d936e1b269 *ports/arm-cm/qk/iar/qk_port.c a5152099566e2b5f43787d67d5d86aef *ports/arm-cm/qk/iar/qp_port.h -f6c251ec335af215b842ff2ef686e93f *ports/arm-cm/qk/iar/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qk/iar/qs_port.h a13c0887eb882d089ec5cb57c8f755ac *ports/arm-cm/qv/armclang/qp_port.h -f6c251ec335af215b842ff2ef686e93f *ports/arm-cm/qv/armclang/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qv/armclang/qs_port.h 277f97c6a850930b54c02e83a99e9663 *ports/arm-cm/qv/armclang/qv_port.c -b69e5ac1cde60ce0eda00d853048270e *ports/arm-cm/qv/config/qp_config.h +247a4d37cdedb45f4819bf628d0d83cf *ports/arm-cm/qv/config/qp_config.h 6213045e2390e7a59644f40e1aaa189c *ports/arm-cm/qv/gnu/qp_port.h -f6c251ec335af215b842ff2ef686e93f *ports/arm-cm/qv/gnu/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qv/gnu/qs_port.h 1c87a822c4d802784342b58803261cdc *ports/arm-cm/qv/gnu/qv_port.c 517ee111b0df9926e6ba3d30be5210ea *ports/arm-cm/qv/iar/qp_port.h -f6c251ec335af215b842ff2ef686e93f *ports/arm-cm/qv/iar/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qv/iar/qs_port.h 867217f77f0c6cdb0a82a964a7027510 *ports/arm-cm/qv/iar/qv_port.c 40058ac0609321670e6e7816670e97af *ports/arm-cm/qxk/armclang/qp_port.h -f6c251ec335af215b842ff2ef686e93f *ports/arm-cm/qxk/armclang/qs_port.h -157999f7597ee32773fcfc13e7ef61fd *ports/arm-cm/qxk/armclang/qxk_port.c -31c4cd8ad90ea6517df1d4054033fe03 *ports/arm-cm/qxk/config/qp_config.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qxk/armclang/qs_port.h +bb7067859e7fec9e77684879a1cfae34 *ports/arm-cm/qxk/armclang/qxk_port.c +16ef2e0af8dd350486f709b548d87c75 *ports/arm-cm/qxk/config/qp_config.h 35ec850c15f42e2eab924d06bf2d4165 *ports/arm-cm/qxk/gnu/qp_port.h -a0699895649b5d644e4068794b0e94dc *ports/arm-cm/qxk/gnu/qs_port.h -9bc69ca01a321ce71216552af9493b60 *ports/arm-cm/qxk/gnu/qxk_port.c +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qxk/gnu/qs_port.h +068945110c5583a8b149930d9a446cc3 *ports/arm-cm/qxk/gnu/qxk_port.c 9145c3ae665b20e224bd91406668754c *ports/arm-cm/qxk/iar/qp_port.h -f6c251ec335af215b842ff2ef686e93f *ports/arm-cm/qxk/iar/qs_port.h -6a047634910a10c3c2bc82f28551b5aa *ports/arm-cm/qxk/iar/qxk_port.c +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qxk/iar/qs_port.h +7745f5f6adfdd3813bc3d6a24e87aada *ports/arm-cm/qxk/iar/qxk_port.c b08b183d0275dbf6b55c46b94523a1a2 *ports/arm-cm/qutest/qp_port.h -c755db99d10db142bcb98018f55e2b7a *ports/arm-cm/qutest/qs_port.h -829261756c701d26e742005c59cd25f7 *ports/arm-cr/qk/config/qp_config.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cm/qutest/qs_port.h +1cc03f9c79b011da50d753018054dac1 *ports/arm-cr/qk/config/qp_config.h 957f53c5d716ee9f88d4d8b7418f8757 *ports/arm-cr/qk/gnu/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/arm-cr/qk/gnu/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qk/gnu/qs_port.h 6a6a54ca44b045c2977cfaf621d32836 *ports/arm-cr/qk/iar/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/arm-cr/qk/iar/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qk/iar/qs_port.h 7aab625aad16d5b55ab530a7f468e70b *ports/arm-cr/qk/ti/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/arm-cr/qk/ti/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qk/ti/qs_port.h b91fd7d938880060e3914db32a1a7885 *ports/arm-cr/qv/gnu/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/arm-cr/qv/gnu/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qv/gnu/qs_port.h e7b34d68bbf61b9e5c1706c8c2e2b4d3 *ports/arm-cr/qv/iar/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/arm-cr/qv/iar/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qv/iar/qs_port.h 734d65377844b288a3e5dcc5200302b6 *ports/arm-cr/qv/ti/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/arm-cr/qv/ti/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/arm-cr/qv/ti/qs_port.h 975c3375c8ca11093bc92dbfb7000eaa *ports/msp430/qk/qp_port.h -dd181f9664fbe39a2900b99493a06191 *ports/msp430/qk/qs_port.h +abcdbdcac677ff605ee003ef1e08fb80 *ports/msp430/qk/qs_port.h 3c7664e8ee8739bdd42bda3020ce5364 *ports/msp430/qv/qp_port.h -dd181f9664fbe39a2900b99493a06191 *ports/msp430/qv/qs_port.h +abcdbdcac677ff605ee003ef1e08fb80 *ports/msp430/qv/qs_port.h 07306e4b15b72b175365e26568ea6e3d *ports/msp430/qutest/qp_port.h -dd181f9664fbe39a2900b99493a06191 *ports/msp430/qutest/qs_port.h +abcdbdcac677ff605ee003ef1e08fb80 *ports/msp430/qutest/qs_port.h c2ed34e686a5ac9afe06026731247bf4 *ports/pic32/qk/xc32/qk_port.c e9dbc68a7233a4303a068b562be12049 *ports/pic32/qk/xc32/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/pic32/qk/xc32/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/pic32/qk/xc32/qs_port.h ab9eacbab706ff105144eddecde681e0 *ports/pic32/qv/xc32/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/pic32/qv/xc32/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/pic32/qv/xc32/qs_port.h 33c16b6ecad7187219fc6195fbd566da *ports/pic32/qutest/xc32/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/pic32/qutest/xc32/qs_port.h -3d35c4a4377708ef2493dfd4e63e074a *ports/config/qp_config.h +d69a97a65c94b684ef56cef35faf73f0 *ports/pic32/qutest/xc32/qs_port.h +7bd98101a1922e7dcf39107f2c07a7a4 *ports/config/qp_config.h d9a8f8c2b8ebdae309622841af4f80e7 *ports/embos/CMakeLists.txt acf19d8d939b7e12fca90be762e7c377 *ports/embos/qf_port.c d5f7e75934bd283d4fa239afee096e78 *ports/embos/qp_port.h -75df7abe15807abb5e7bf5ec08116aff *ports/embos/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/embos/qs_port.h 9d19cdfdd9eb682d6de7847bd0900f5a *ports/freertos/CMakeLists.txt 21610b5e0eaccb85d82c7edb74fc32dc *ports/freertos/qf_port.c 672615c0e1e9daab9aec12c300682f58 *ports/freertos/qp_port.h -2d756fbf15d4c00837320a329eddf065 *ports/freertos/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/freertos/qs_port.h 04694f7224092a477cd4580aee7022fd *ports/threadx/CMakeLists.txt b80df6c2ee6fc3ec6d7a4bf08963ec01 *ports/threadx/qf_port.c 74570b4afbf0281af9638778781bda0b *ports/threadx/qp_port.h -96a132818a53ac1c6e46ace36dc75663 *ports/threadx/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/threadx/qs_port.h 97dbc9c6b8b0c2b46499b9070688dd3c *ports/threadx/README.md eec27f333c2787b6f3fdca5dbdd573b2 *ports/uc-os2/CMakeLists.txt cc34f3f5ffa004831362473563cd345a *ports/uc-os2/qf_port.c b9be2bca2c48d39a43e4b3d059376b6a *ports/uc-os2/qp_port.h -96a132818a53ac1c6e46ace36dc75663 *ports/uc-os2/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *ports/uc-os2/qs_port.h 281f9d70e7fb90b4457bee33b544c460 *ports/qep-only/CMakeLists.txt 6ce09e456ded120d13d73a92e022fa3d *ports/qep-only/qp_port.h f26311a1912e214477781255c7c71834 *ports/qep-only/safe_std.h @@ -132,26 +132,26 @@ f26311a1912e214477781255c7c71834 *ports/qep-only/safe_std.h 0a9db5ee3129a97bd19c433e12f0442e *ports/posix/qf_port.c c1764d38614122b0a02a0172a21906d9 *ports/posix/qp_port.h 5902d6c50e3d3e87c4cbeb66485c01c9 *ports/posix/qs_port.c -306c23ae37e9b02f2f37f2d21331f28d *ports/posix/qs_port.h +a6c1ccba363f62079a579cd71ceccfe8 *ports/posix/qs_port.h 6690cf3899e6461ed7604dba13cf7520 *ports/posix/README.md f26311a1912e214477781255c7c71834 *ports/posix/safe_std.h c36532b0e4b1956d9113f6ced25fb47b *ports/posix-qv/CMakeLists.txt 044efad276cba04709c027cc66b7d356 *ports/posix-qv/qf_port.c 46cd7f9bce31d6d519886f31f824fae0 *ports/posix-qv/qp_port.h 94d91c859c62fd464f6ce61c9d4e82b1 *ports/posix-qv/qs_port.c -306c23ae37e9b02f2f37f2d21331f28d *ports/posix-qv/qs_port.h +a6c1ccba363f62079a579cd71ceccfe8 *ports/posix-qv/qs_port.h a39965a1d1c41b224c8f328c9e28999b *ports/posix-qv/README.md f26311a1912e214477781255c7c71834 *ports/posix-qv/safe_std.h 51ca57651ed492278fd728d3b94aba4d *ports/posix-qutest/CMakeLists.txt 2ec8125e0cbaf03c06c679d698ec6a32 *ports/posix-qutest/qp_port.h -306c23ae37e9b02f2f37f2d21331f28d *ports/posix-qutest/qs_port.h +a6c1ccba363f62079a579cd71ceccfe8 *ports/posix-qutest/qs_port.h a7e763528627d662501e8a28ca6321c1 *ports/posix-qutest/qutest_port.c f26311a1912e214477781255c7c71834 *ports/posix-qutest/safe_std.h 5fa44dffb653cecb1d9ea41d154ce852 *ports/win32/CMakeLists.txt 20fc7e8b39e32f53aca8e3f08e372957 *ports/win32/qf_port.c dddd41fe592d8832b95179820de552d2 *ports/win32/qp_port.h a46c047f83877a192b2de24f27238770 *ports/win32/qs_port.c -018ec5ae698a31c6fb0f2c002194c5bd *ports/win32/qs_port.h +68809b0a38489524f2ed461e970a136c *ports/win32/qs_port.h 635a4a93c62e4b3501c5e3371a08cd65 *ports/win32/qwin_gui.c a8f227294c6673a22b050e1165a911e3 *ports/win32/qwin_gui.h 9af4450a3685e578e1774e5b707f6692 *ports/win32/README.md @@ -160,14 +160,14 @@ c28c6dd7ad5899389e556c8cc61692ce *ports/win32-qv/CMakeLists.txt 7d3aaf7289eb37ac9ef638d092f1d28f *ports/win32-qv/qf_port.c 6e8a4ca279ced37f24ac45e4ff6d4157 *ports/win32-qv/qp_port.h a46c047f83877a192b2de24f27238770 *ports/win32-qv/qs_port.c -018ec5ae698a31c6fb0f2c002194c5bd *ports/win32-qv/qs_port.h +68809b0a38489524f2ed461e970a136c *ports/win32-qv/qs_port.h c935dbe9f32dd4d0584d4b47bc734d19 *ports/win32-qv/qwin_gui.c 37499e3a99c8c38d52d9b61be19319b7 *ports/win32-qv/qwin_gui.h 4cb22092a4b28d1c1b2efc1e58900b99 *ports/win32-qv/README.md f26311a1912e214477781255c7c71834 *ports/win32-qv/safe_std.h f62276b6a322c8fffce657cdb4998ed7 *ports/win32-qutest/CMakeLists.txt f9f1dfd9b7c2f0ce7b2c5928da09b123 *ports/win32-qutest/qp_port.h -018ec5ae698a31c6fb0f2c002194c5bd *ports/win32-qutest/qs_port.h +68809b0a38489524f2ed461e970a136c *ports/win32-qutest/qs_port.h d8259b2bb16d1826806a636c6a3293f8 *ports/win32-qutest/qutest_port.c faed3388f63c9ec3dca2a5c6cf808a95 *ports/win32-qutest/README.md f26311a1912e214477781255c7c71834 *ports/win32-qutest/safe_std.h @@ -177,5 +177,5 @@ f26311a1912e214477781255c7c71834 *ports/win32-qutest/safe_std.h f167809c37f879a55cbc113e0e4d6ef6 *zephyr/qf_port.c 0076e0da63938ff838dd5736b6a309da *zephyr/qp-zephyr.jpg 4332e3b86722b1ccfed1dd134889fcac *zephyr/qp_port.h -64b537ae433a0d0c0949c4bca7b45603 *zephyr/qs_port.h +d69a97a65c94b684ef56cef35faf73f0 *zephyr/qs_port.h ba08c605b0c369326884f9006464666f *zephyr/README.md diff --git a/qpc.qm b/qpc.qm index 2a49b1b0..ec55e767 100644 --- a/qpc.qm +++ b/qpc.qm @@ -277,17 +277,24 @@ Contact information: }; - + //! @public @memberof QEvt //! @public @memberof QEvt - if (sig != QEVT_DYNAMIC) { - me->sig = (QSignal)sig; - me->refCtr_ = 0U; - me->evtTag_ = QEVT_MARKER; -} + me->sig = (QSignal)sig; +me->refCtr_ = 0U; +me->evtTag_ = QEVT_MARKER; + + + + //! @public @memberof QEvt + +//! @public @memberof QEvt + + + (void)dummy; return me; @@ -3654,7 +3661,15 @@ QF_CRIT_EXIT(); - me->frontEvt = (QEvt *)0; // no events in the queue + QF_CRIT_STAT +QF_CRIT_ENTRY(); +QF_MEM_SYS(); + +#if (QF_EQUEUE_CTR_SIZE == 1U) +Q_REQUIRE_INCRIT(100, qLen < 0xFFU); +#endif + +me->frontEvt = (QEvt *)0; // no events in the queue me->ring = qSto; // the beginning of the ring buffer me->end = (QEQueueCtr)qLen; if (qLen != 0U) { @@ -3662,7 +3677,10 @@ if (qLen != 0U) { me->tail = 0U; } me->nFree = (QEQueueCtr)(qLen + 1U); // +1 for frontEvt -me->nMin = me->nFree; +me->nMin = me->nFree; + +QF_MEM_APP(); +QF_CRIT_EXIT(); @@ -3961,7 +3979,7 @@ Q_ASSERT_INCRIT(110, poolSize >= me->blockSize); // start at the head of the free list QFreeBlock *fb = me->free_head; -me->nTot = 1U; // the last block already in the list +uint32_t nTot = 1U; // the last block already in the list // chain all blocks together in a free-list... for (uint_fast32_t size = poolSize - me->blockSize; @@ -3973,14 +3991,22 @@ for (uint_fast32_t size = poolSize - me->blockSize; fb->next_dis = (uintptr_t)(~Q_UINTPTR_CAST_(fb->next)); #endif fb = fb->next; // advance to the next block - ++me->nTot; // one more free block in the pool + ++nTot; // one more free block in the pool } +// dynamic range check +#if (QF_MPOOL_CTR_SIZE == 1U) +Q_ENSURE_INCRIT(190, nTot < 0xFFU); +#elif (QF_MPOOL_CTR_SIZE == 2U) +Q_ENSURE_INCRIT(190, nTot < 0xFFFFU); +#endif + fb->next = (QFreeBlock *)0; // the last link points to NULL #ifndef Q_UNSAFE fb->next_dis = (uintptr_t)(~Q_UINTPTR_CAST_(fb->next)); #endif +me->nTot = (QMPoolCtr)nTot; me->nFree = me->nTot; // all blocks are free me->nMin = me->nTot; // the minimum # free blocks me->start = (QFreeBlock *)poolSto; // the original start this pool buffer @@ -4525,7 +4551,7 @@ QF_gc(e); // recycle the referenced event ((QPrioSpec)((prio_) | ((pthre_) << 8U))) - + @@ -4534,7 +4560,7 @@ QF_gc(e); // recycle the referenced event QF_NO_MARGIN, (enum_t)(sig_))) - + @@ -4542,11 +4568,11 @@ QF_gc(e); // recycle the referenced event \ - (evtT_##_ctor((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ + (evtT_##_init((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ QF_NO_MARGIN, (sig_)), __VA_ARGS__)) - + @@ -4558,7 +4584,7 @@ QF_gc(e); // recycle the referenced event (margin_), (enum_t)(sig_))) - + @@ -4568,7 +4594,7 @@ QF_gc(e); // recycle the referenced event \ - (evtT_##_ctor((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ + (evtT_##_init((evtT_ *)QF_newX_((uint_fast16_t)sizeof(evtT_), \ (margin_), (sig_)), __VA_ARGS__)) @@ -8956,9 +8982,9 @@ $declare1 ${QP-FuSa} #define QP_H_ //============================================================================ -#define QP_VERSION_STR "7.3.5-rc.1" -#define QP_VERSION 735U -#define QP_RELEASE 0x70A1DEF0U +#define QP_VERSION_STR "7.4.0-rc.1" +#define QP_VERSION 740U +#define QP_RELEASE 0x7092C3BBU //============================================================================ //! @cond INTERNAL @@ -9716,7 +9742,12 @@ extern char const Q_BUILD_TIME[9]; //============================================================================ // QP API compatibility layer... -#if (QP_API_VERSION < 730) +#if (QP_API_VERSION < 740) + +#ifdef QEVT_DYN_CTOR +//! @deprecated #QEVT_DYN_CTOR, please use #QEVT_PAR_INIT +#define QEVT_PAR_INIT +#endif //! @deprecated plain 'char' is no longer forbidden in MISRA-C:2023 typedef char char_t; diff --git a/src/qf/qf_mem.c b/src/qf/qf_mem.c index e0384858..33abdb31 100644 --- a/src/qf/qf_mem.c +++ b/src/qf/qf_mem.c @@ -94,7 +94,7 @@ void QMPool_init(QMPool * const me, // start at the head of the free list QFreeBlock *fb = me->free_head; - me->nTot = 1U; // the last block already in the list + uint32_t nTot = 1U; // the last block already in the list // chain all blocks together in a free-list... for (uint_fast32_t size = poolSize - me->blockSize; @@ -106,14 +106,22 @@ void QMPool_init(QMPool * const me, fb->next_dis = (uintptr_t)(~Q_UINTPTR_CAST_(fb->next)); #endif fb = fb->next; // advance to the next block - ++me->nTot; // one more free block in the pool + ++nTot; // one more free block in the pool } + // dynamic range check + #if (QF_MPOOL_CTR_SIZE == 1U) + Q_ENSURE_INCRIT(190, nTot < 0xFFU); + #elif (QF_MPOOL_CTR_SIZE == 2U) + Q_ENSURE_INCRIT(190, nTot < 0xFFFFU); + #endif + fb->next = (QFreeBlock *)0; // the last link points to NULL #ifndef Q_UNSAFE fb->next_dis = (uintptr_t)(~Q_UINTPTR_CAST_(fb->next)); #endif + me->nTot = (QMPoolCtr)nTot; me->nFree = me->nTot; // all blocks are free me->nMin = me->nTot; // the minimum # free blocks me->start = (QFreeBlock *)poolSto; // the original start this pool buffer diff --git a/src/qf/qf_qeq.c b/src/qf/qf_qeq.c index 0697e7ce..ff13f1e6 100644 --- a/src/qf/qf_qeq.c +++ b/src/qf/qf_qeq.c @@ -71,6 +71,14 @@ void QEQueue_init(QEQueue * const me, struct QEvt const ** const qSto, uint_fast16_t const qLen) { + QF_CRIT_STAT + QF_CRIT_ENTRY(); + QF_MEM_SYS(); + + #if (QF_EQUEUE_CTR_SIZE == 1U) + Q_REQUIRE_INCRIT(100, qLen < 0xFFU); + #endif + me->frontEvt = (QEvt *)0; // no events in the queue me->ring = qSto; // the beginning of the ring buffer me->end = (QEQueueCtr)qLen; @@ -80,6 +88,9 @@ void QEQueue_init(QEQueue * const me, } me->nFree = (QEQueueCtr)(qLen + 1U); // +1 for frontEvt me->nMin = me->nFree; + + QF_MEM_APP(); + QF_CRIT_EXIT(); } //${QF::QEQueue::post} ....................................................... diff --git a/zephyr/qs_port.h b/zephyr/qs_port.h index 31354233..7895e109 100644 --- a/zephyr/qs_port.h +++ b/zephyr/qs_port.h @@ -1,5 +1,10 @@ //============================================================================ // QP/C Real-Time Embedded Framework (RTEF) +// +// Q u a n t u m L e a P s +// ------------------------ +// Modern Embedded Software +// // Copyright (C) 2005 Quantum Leaps, LLC. All rights reserved. // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial @@ -22,8 +27,8 @@ // // //============================================================================ -//! @date Last updated on: 2023-08-16 -//! @version Last updated for: @ref qpc_7_3_0 +//! @date Last updated on: 2024-06-06 +//! @version Last updated for: @ref qpc_7_4_0 //! //! @file //! @brief QS/C port to a 32-bit CPU and a generic C99 compiler. @@ -31,9 +36,6 @@ #ifndef QS_PORT_H_ #define QS_PORT_H_ -// QS time-stamp size in bytes -#define QS_TIME_SIZE 4U - // object pointer size in bytes #define QS_OBJ_PTR_SIZE 4U @@ -45,12 +47,11 @@ // case the separate definitions of the macros QF_CRIT_STAT, QF_CRIT_ENTRY(), // and QF_CRIT_EXIT() are needed. In this port QS is configured to be used // with the other QP component, by simply including "qp_port.h" -//*before* "qs.h". +// *before* "qs.h". #ifndef QP_PORT_H_ -#include "qp_port.h" // use QS with QF +#include "qp_port.h" // use QS with QP #endif #include "qs.h" // QS platform-independent public interface #endif // QS_PORT_H_ -