QP/C++
qk_pkg.h
Go to the documentation of this file.
00001 
00002 // Product: QK/C++
00003 // Last Updated for Version: 4.3.00
00004 // Date of the Last Update:  Nov 02, 2011
00005 //
00006 //                    Q u a n t u m     L e a P s
00007 //                    ---------------------------
00008 //                    innovating embedded systems
00009 //
00010 // Copyright (C) 2002-2011 Quantum Leaps, LLC. All rights reserved.
00011 //
00012 // This software may be distributed and modified under the terms of the GNU
00013 // General Public License version 2 (GPL) as published by the Free Software
00014 // Foundation and appearing in the file GPL.TXT included in the packaging of
00015 // this file. Please note that GPL Section 2[b] requires that all works based
00016 // on this software must also be made publicly available under the terms of
00017 // the GPL ("Copyleft").
00018 //
00019 // Alternatively, this software may be distributed and modified under the
00020 // terms of Quantum Leaps commercial licenses, which expressly supersede
00021 // the GPL and are specifically designed for licensees interested in
00022 // retaining the proprietary status of their code.
00023 //
00024 // Contact information:
00025 // Quantum Leaps Web site:  http://www.quantum-leaps.com
00026 // e-mail:                  info@quantum-leaps.com
00028 #ifndef qk_pkg_h
00029 #define qk_pkg_h
00030 
00034 
00035 #include "qf_port.h"                    // QF port include; includes qk_port.h
00036 
00037 #ifdef Q_USE_NAMESPACE
00038 namespace QP {
00039 #endif
00040                                     // QK internal interrupt locking/unlocking
00041 #ifndef QF_CRIT_STAT_TYPE
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049 
00050 
00051     #define QF_CRIT_STAT_
00052 
00061     #define QF_CRIT_ENTRY_()    QF_CRIT_ENTRY(dummy)
00062 
00071     #define QF_CRIT_EXIT_()     QF_CRIT_EXIT(dummy)
00072 
00073 #else
00074     #define QF_CRIT_STAT_       QF_CRIT_STAT_TYPE critStat_;
00075     #define QF_CRIT_ENTRY_()    QF_CRIT_ENTRY(critStat_)
00076     #define QF_CRIT_EXIT_()     QF_CRIT_EXIT(critStat_)
00077 #endif
00078                              // define for backwards compatibility, see NOTE01
00079 #ifndef QF_CRIT_STAT_TYPE
00080 #if !defined(QF_INT_DISABLE) && defined(QF_CRIT_ENTRY)
00081     #define QF_INT_DISABLE()    QF_CRIT_ENTRY(dummy)
00082 #endif
00083 #if !defined(QF_INT_ENABLE) && defined(QF_CRIT_EXIT)
00084     #define QF_INT_ENABLE()     QF_CRIT_EXIT(dummy)
00085 #endif
00086 #endif                                                    // QF_CRIT_STAT_TYPE
00087 
00088                                                    // package-scope objects...
00089 #ifndef QK_NO_MUTEX
00090     extern uint8_t volatile QK_ceilingPrio_;    
00091 #endif
00092 
00093 #ifdef Q_USE_NAMESPACE
00094 }                                                              // namespace QP
00095 #endif
00096 
00098 // NOTE01: For older QK ports that used the simple "unconditional interrupt
00099 // locking and unlocking" policy, the interrupt disabling and enabling can be
00100 // derived from the critical section definition.
00101 //
00102 
00103 #endif                                                             // qk_pkg_h
00104