RKH
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
rkhs.h
Go to the documentation of this file.
1 /*
2  * --------------------------------------------------------------------------
3  *
4  * Framework RKH
5  * -------------
6  *
7  * State-machine framework for reactive embedded systems
8  *
9  * Copyright (C) 2010 Leandro Francucci.
10  * All rights reserved. Protected by international copyright laws.
11  *
12  *
13  * RKH is free software: you can redistribute it and/or modify it under the
14  * terms of the GNU General Public License as published by the Free Software
15  * Foundation, either version 3 of the License, or (at your option) any
16  * later version.
17  *
18  * RKH is distributed in the hope that it will be useful, but WITHOUT ANY
19  * WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
21  * more details.
22  *
23  * You should have received a copy of the GNU General Public License along
24  * with RKH, see copying.txt file.
25  *
26  * Contact information:
27  * RKH web site: http://sourceforge.net/projects/rkh-reactivesys/
28  * e-mail: francuccilea@gmail.com
29  * ---------------------------------------------------------------------------
30  */
31 
39 /* -------------------------- Development history -------------------------- */
40 /*
41  * 2015.10.24 LeFr v2.4.05 Initial version
42  */
43 
44 /* -------------------------------- Authors -------------------------------- */
45 /*
46  * LeFr Leandro Francucci francuccilea@gmail.com
47  */
48 
49 /* --------------------------------- Notes --------------------------------- */
50 /* --------------------------------- Module -------------------------------- */
51 #ifndef __RKHS_H__
52 #define __RKHS_H__
53 
54 /* ----------------------------- Include files ----------------------------- */
55 #include "rkhcfg.h"
56 #include "rkhrdy.h"
57 #include "rkhevt.h"
58 
59 /* ---------------------- External C language linkage ---------------------- */
60 #ifdef __cplusplus
61 extern "C" {
62 #endif
63 
64 /* --------------------------------- Macros -------------------------------- */
65 #if RKH_CFGPORT_NATIVE_SCHEDULER_EN == 1 && \
66  RKH_EN_DOXYGEN == 0
67  #define RKH_EQ_TYPE RKH_RQ_T
68  #define RKH_SMA_BLOCK(sma) \
69  RKH_ASSERT(((RKH_SMA_T*)(sma))->equeue.qty != 0)
70  #define RKH_SMA_READY(rg, sma) \
71  RKH_RDY_INSERT((rg), RKH_SMA_ACCESS_CONST(sma, prio))
72  #define RKH_SMA_UNREADY(rg, sma) \
73  RKH_RDY_REM((rg), RKH_SMA_ACCESS_CONST(sma, prio))
74 #endif
75 
76 /* -------------------------------- Constants ------------------------------ */
77 /* ------------------------------- Data types ------------------------------ */
78 /* -------------------------- External variables --------------------------- */
79 #if RKH_CFGPORT_NATIVE_SCHEDULER_EN == 1 && \
80  RKH_EN_DOXYGEN == 0
81 extern RKH_RG_T rkhrg;
82 #endif
83 
84 /* -------------------------- Function prototypes -------------------------- */
85 /* -------------------- External C language linkage end -------------------- */
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 /* ------------------------------ Module end ------------------------------- */
91 #endif
92 
93 /* ------------------------------ End of file ------------------------------ */
Event data type and other related macros.This header file must be included in all modules(*...
RKH user configurations.
Native priority management.
SMA ready table.
Definition: rkhrdy.h:193