diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-12-14 17:37:34 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-12-14 17:56:48 +0100 |
commit | 6a13e7f563e3983c51363704bd2a65e691bafc3e (patch) | |
tree | affabf708ebd69f96c92265778c75adf11df3281 | |
parent | 886d6fdec605e47ec19a3e37dd9596c525178a54 (diff) |
fsm: add LOGPFSML to pass explicit logging level
Provide one central LOGPFSML to print FSM information, take the FSM logging
subsystem from the FSM instance but use an explicitly provided log level
instead of the FSM's default level.
Use to replace some, essentially, duplications of the LOGPFSM macro.
In effect, the fsm_test's expected error changes, since the previous code dup
for logging events used round braces to indicate the fi's state, while the
central macro uses curly braces.
Change-Id: If295fdabb3f31a0fd9490d1e0df57794c75ae547
-rw-r--r-- | include/osmocom/core/fsm.h | 7 | ||||
-rw-r--r-- | src/fsm.c | 15 | ||||
-rw-r--r-- | tests/fsm/fsm_test.err | 2 |
3 files changed, 12 insertions, 12 deletions
diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index fba5497b..026ed01a 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -110,11 +110,14 @@ struct osmo_fsm_inst { void osmo_fsm_log_addr(bool log_addr); -#define LOGPFSM(fi, fmt, args...) \ - LOGP((fi)->fsm->log_subsys, (fi)->log_level, "%s{%s}: " fmt, \ +#define LOGPFSML(fi, level, fmt, args...) \ + LOGP((fi)->fsm->log_subsys, level, "%s{%s}: " fmt, \ osmo_fsm_inst_name(fi), \ osmo_fsm_state_name((fi)->fsm, (fi)->state), ## args) +#define LOGPFSM(fi, fmt, args...) \ + LOGPFSML(fi, (fi)->log_level, fmt, ## args) + int osmo_fsm_register(struct osmo_fsm *fsm); void osmo_fsm_unregister(struct osmo_fsm *fsm); struct osmo_fsm_inst *osmo_fsm_inst_alloc(struct osmo_fsm *fsm, void *ctx, void *priv, @@ -311,11 +311,9 @@ int osmo_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t new_state, /* validate if new_state is a valid state */ if (!(st->out_state_mask & (1 << new_state))) { - LOGP(fsm->log_subsys, LOGL_ERROR, "%s(%s): transition to " - "state %s not permitted!\n", - osmo_fsm_inst_name(fi), - osmo_fsm_state_name(fsm, fi->state), - osmo_fsm_state_name(fsm, new_state)); + LOGPFSML(fi, LOGL_ERROR, + "transition to state %s not permitted!\n", + osmo_fsm_state_name(fsm, new_state)); return -EPERM; } @@ -376,10 +374,9 @@ int osmo_fsm_inst_dispatch(struct osmo_fsm_inst *fi, uint32_t event, void *data) } if (!((1 << event) & fs->in_event_mask)) { - LOGP(fsm->log_subsys, LOGL_ERROR, "%s(%s): Event %s not " - "permitted\n", osmo_fsm_inst_name(fi), - osmo_fsm_state_name(fsm, fi->state), - osmo_fsm_event_name(fsm, event)); + LOGPFSML(fi, LOGL_ERROR, + "Event %s not permitted\n", + osmo_fsm_event_name(fsm, event)); return -1; } fs->action(fi, event, data); diff --git a/tests/fsm/fsm_test.err b/tests/fsm/fsm_test.err index b9c738c6..c9021bbd 100644 --- a/tests/fsm/fsm_test.err +++ b/tests/fsm/fsm_test.err @@ -1,7 +1,7 @@ Checking FSM allocation [0;mTest FSM{NULL}: Allocated [0;mTest FSM{NULL}: Received Event 1 -[0;mTest FSM(NULL): Event 1 not permitted +[0;mTest FSM{NULL}: Event 1 not permitted [0;mTest FSM{NULL}: Received Event 0 [0;mTest FSM{NULL}: state_chg to ONE [0;mTest FSM{ONE}: Received Event 1 |