diff options
| author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-05-25 18:20:06 +0200 | 
|---|---|---|
| committer | Harald Welte <laforge@gnumonks.org> | 2018-05-31 21:01:33 +0000 | 
| commit | 407df02e7c5c64ce7d7c2bf9756834d6727faade (patch) | |
| tree | 0500821a52296263469125bf6014374e5240d550 /include | |
| parent | 36c7b33ccc66eee29efa98120e00952532c8e122 (diff) | |
add osmo_fsm_inst_state_chg_keep_timer()
Change-Id: I3c0e53b846b2208bd201ace99777f2286ea39ae8
Diffstat (limited to 'include')
| -rw-r--r-- | include/osmocom/core/fsm.h | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index 174396a7..67e00ad7 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -182,6 +182,21 @@ int _osmo_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t new_state,  			     unsigned long timeout_secs, int T,  			     const char *file, int line); +/*! perform a state change while keeping the current timer running. + * + *  This is useful to keep a timeout across several states (without having to round the + *  remaining time to seconds). + * + *  This is a macro that calls _osmo_fsm_inst_state_chg_keep_timer() with the given + *  parameters as well as the caller's source file and line number for logging + *  purposes. See there for documentation. + */ +#define osmo_fsm_inst_state_chg_keep_timer(fi, new_state) \ +	_osmo_fsm_inst_state_chg_keep_timer(fi, new_state, \ +				 __BASE_FILE__, __LINE__) +int _osmo_fsm_inst_state_chg_keep_timer(struct osmo_fsm_inst *fi, uint32_t new_state, +					const char *file, int line); +  /*! dispatch an event to an osmocom finite state machine instance   *   *  This is a macro that calls _osmo_fsm_inst_dispatch() with the given  | 
