//$file${include::qv.hpp} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv // // Model: qpcpp.qm // File: ${include::qv.hpp} // // This code has been generated by QM 6.1.1 . // DO NOT EDIT THIS FILE MANUALLY. All your changes will be lost. // // This code is covered by the following QP license: // License # : LicenseRef-QL-dual // Issued to : Any user of the QP/C++ real-time embedded framework // Framework(s) : qpcpp // Support ends : 2024-12-31 // License scope: // // Copyright (C) 2005 Quantum Leaps, LLC . // // Q u a n t u m L e a P s // ------------------------ // Modern Embedded Software // // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-QL-commercial // // This software is dual-licensed under the terms of the open source GNU // General Public License version 3 (or any later version), or alternatively, // under the terms of one of the closed source Quantum Leaps commercial // licenses. // // The terms of the open source GNU General Public License version 3 // can be found at: // // The terms of the closed source Quantum Leaps commercial licenses // can be found at: // // Redistributions in source code must retain this top-level comment block. // Plagiarizing this software to sidestep the license obligations is illegal. // // Contact information: // // // //$endhead${include::qv.hpp} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #ifndef QV_HPP_ #define QV_HPP_ //$declare${QV::QV-base} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv namespace QP { namespace QV { //${QV::QV-base::Attr} ....................................................... class Attr { public: QPSet readySet; std::uint_fast8_t schedCeil; #ifndef Q_UNSAFE QPSet readySet_dis; #endif // ndef Q_UNSAFE #ifndef Q_UNSAFE std::uint_fast8_t schedCeil_dis; #endif // ndef Q_UNSAFE }; // class Attr //${QV::QV-base::priv_} ...................................................... extern QV::Attr priv_; //${QV::QV-base::schedDisable} ............................................... void schedDisable(std::uint_fast8_t const ceiling); //${QV::QV-base::schedEnable} ................................................ void schedEnable(); //${QV::QV-base::onIdle} ..................................................... void onIdle(); } // namespace QV } // namespace QP //$enddecl${QV::QV-base} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //============================================================================ // interface used only for internal implementation, but not in applications #ifdef QP_IMPL //$declare${QV-impl} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv //${QV-impl::QF_SCHED_STAT_} ................................................. #define QF_SCHED_STAT_ //${QV-impl::QF_SCHED_LOCK_} ................................................. #define QF_SCHED_LOCK_(dummy) (static_cast(0)) //${QV-impl::QF_SCHED_UNLOCK_} ............................................... #define QF_SCHED_UNLOCK_() (static_cast(0)) //${QV-impl::QACTIVE_EQUEUE_WAIT_} ........................................... #define QACTIVE_EQUEUE_WAIT_(me_) \ Q_ASSERT_INCRIT(310, (me_)->m_eQueue.m_frontEvt != nullptr) //${QV-impl::QACTIVE_EQUEUE_SIGNAL_} ......................................... #ifndef Q_UNSAFE #define QACTIVE_EQUEUE_SIGNAL_(me_) \ QV::priv_.readySet.insert((me_)->m_prio); \ QV::priv_.readySet.update_(&QV::priv_.readySet_dis) #endif // ndef Q_UNSAFE //${QV-impl::QACTIVE_EQUEUE_SIGNAL_} ......................................... #ifdef Q_UNSAFE #define QACTIVE_EQUEUE_SIGNAL_(me_) \ (QV::priv_.readySet.insert((me_)->m_prio)) #endif // def Q_UNSAFE //$enddecl${QV-impl} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //$declare${QF_EPOOL-impl} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv //${QF_EPOOL-impl::QF_EPOOL_TYPE_} ........................................... #define QF_EPOOL_TYPE_ QMPool //${QF_EPOOL-impl::QF_EPOOL_INIT_} ........................................... #define QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_) \ (p_).init((poolSto_), (poolSize_), (evtSize_)) //${QF_EPOOL-impl::QF_EPOOL_EVENT_SIZE_} ..................................... #define QF_EPOOL_EVENT_SIZE_(p_) ((p_).getBlockSize()) //${QF_EPOOL-impl::QF_EPOOL_GET_} ............................................ #define QF_EPOOL_GET_(p_, e_, m_, qsId_) \ ((e_) = static_cast((p_).get((m_), (qsId_)))) //${QF_EPOOL-impl::QF_EPOOL_PUT_} ............................................ #define QF_EPOOL_PUT_(p_, e_, qsId_) ((p_).put((e_), (qsId_))) //$enddecl${QF_EPOOL-impl} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #endif // QP_IMPL #endif // QV_HPP_