projects
/
henge
/
webcc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3eb2d34
)
trigger update
author
ksg
<ken@mihrtec.com>
Thu, 30 Jun 2016 17:06:22 +0000
(10:06 -0700)
committer
ksg
<ken@mihrtec.com>
Thu, 30 Jun 2016 17:06:22 +0000
(10:06 -0700)
src/core/trigger.h
patch
|
blob
|
history
diff --git
a/src/core/trigger.h
b/src/core/trigger.h
index
b1a8b71
..
1f1878d
100644
(file)
--- a/
src/core/trigger.h
+++ b/
src/core/trigger.h
@@
-50,30
+50,32
@@
\author K
\date 2016
\author K
\date 2016
- -----------------------------------------------------------------------------
-
*/
+ -----------------------------------------------------------------------------*/
#ifndef _TRIGGER_H_
#define _TRIGGER_H_
#ifndef _TRIGGER_H_
#define _TRIGGER_H_
-/*
Function trigger stack for "unwinding" initialization of modules
*/
+/*
* The number of trigger functions per trigger
*/
#ifndef MAX_TRIGGER_FUNCS
#define MAX_TRIGGER_FUNCS 15
#endif
/* Internal macro prototypes */
#ifndef MAX_TRIGGER_FUNCS
#define MAX_TRIGGER_FUNCS 15
#endif
/* Internal macro prototypes */
-#define _TRIGGER_POP(TARG) --TARG.num_funcs
+#define _TRIGGER_DEL(TARG) --TARG.num_funcs
+#define _TRIGGER_POP(TARG) (TARG.func[_TRIGGER_DEL(TARG)])()
#define _TRIGGER_SET(TARG, FUNC) TARG.func[TARG.num_funcs++] = FUNC
#define _TRIGGER_SET(TARG, FUNC) TARG.func[TARG.num_funcs++] = FUNC
-#define _TRIGGER(TARG) while(TARG.num_funcs)
(TARG.func[TRIGGER_POP(TARG)])(
)
+#define _TRIGGER(TARG) while(TARG.num_funcs)
TRIGGER_POP(TARG
)
/* If TRIGGERS is not defined, use only a default trigger and define shorthand
/* If TRIGGERS is not defined, use only a default trigger and define shorthand
- functions for easy use.
-*******************************************************************************/
+ functions for easy use. */
#ifndef TRIGGERS
#define TRIGGERS default_trigger
#ifndef TRIGGERS
#define TRIGGERS default_trigger
+#define TRIGGER_DEL() _TRIGGER_DEL(default_trigger)
#define TRIGGER_POP() _TRIGGER_POP(default_trigger)
#define TRIGGER_SET(FUNC) _TRIGGER_SET(default_trigger, FUNC)
#define TRIGGER() _TRIGGER(default_trigger)
#else
#define TRIGGER_POP() _TRIGGER_POP(default_trigger)
#define TRIGGER_SET(FUNC) _TRIGGER_SET(default_trigger, FUNC)
#define TRIGGER() _TRIGGER(default_trigger)
#else
+#define TRIGGER_DEL(TARG) _TRIGGER_DEL(TARG)
#define TRIGGER_POP(TARG) _TRIGGER_POP(TARG)
#define TRIGGER_SET(TARG,FUNC) _TRIGGER_SET(TARG,FUNC)
#define TRIGGER(TARG) _TRIGGER(TARG)
#define TRIGGER_POP(TARG) _TRIGGER_POP(TARG)
#define TRIGGER_SET(TARG,FUNC) _TRIGGER_SET(TARG,FUNC)
#define TRIGGER(TARG) _TRIGGER(TARG)