QP/C
qte_ctor.c
Go to the documentation of this file.
00001 /*****************************************************************************
00002 * Product: QF/C
00003 * Last Updated for Version: 4.4.00
00004 * Date of the Last Update:  Jan 15, 2012
00005 *
00006 *                    Q u a n t u m     L e a P s
00007 *                    ---------------------------
00008 *                    innovating embedded systems
00009 *
00010 * Copyright (C) 2002-2012 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
00027 *****************************************************************************/
00028 #include "qf_pkg.h"
00029 #include "qassert.h"
00030 
00031 Q_DEFINE_THIS_MODULE("qte_ctor")
00032 
00033 
00039 /*..........................................................................*/
00040 void QTimeEvt_ctor(QTimeEvt *me, QSignal sig) {
00041     Q_REQUIRE(sig >= (QSignal)Q_USER_SIG);                  /* valid signal */
00042     me->prev = (QTimeEvt *)0;
00043     me->next = (QTimeEvt *)0;
00044     me->act  = (QActive *)0;
00045     me->ctr  = (QTimeEvtCtr)0;
00046     me->interval = (QTimeEvtCtr)0;
00047     me->super.sig = sig;
00048 
00049                                    /* time event must be static, see NOTE01 */
00050     QF_EVT_POOL_ID_(&me->super) = (uint8_t)0;
00051 }
00052 
00053 /*****************************************************************************
00054 * NOTE01:
00055 * Setting the POOL_ID event attribute to zero is correct only for events not
00056 * allocated from event pools. In the future releases of QF, time events
00057 * actually could be allocated dynamically. However, for simplicity in this
00058 * release of QF, time events are limited to be statically allocated.
00059 */