From: ksg Date: Thu, 30 Jun 2016 17:06:22 +0000 (-0700) Subject: trigger update X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fwebcc.git;a=commitdiff_plain;h=ec1f96a64113718cb72364ee1df3522a1623e69e trigger update --- diff --git a/src/core/trigger.h b/src/core/trigger.h index b1a8b71..1f1878d 100644 --- a/src/core/trigger.h +++ b/src/core/trigger.h @@ -50,30 +50,32 @@ \author K \date 2016 - ------------------------------------------------------------------------------*/ + -----------------------------------------------------------------------------*/ #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 */ -#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(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 - functions for easy use. -*******************************************************************************/ + functions for easy use. */ #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_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)