Lines Matching +full:event +full:- +full:name
1 /* SPDX-License-Identifier: GPL-2.0 */
53 * Element of State/Event history used for debugging.
57 int event; member
67 char name[16]; member
79 * Description of a state-event combination
100 * @param name Name of this instance for logging purposes.
110 init_fsm(char *name, const char **state_names,
127 fsm_record_history(fsm_instance *fi, int state, int event);
131 * Emits an event to a FSM.
132 * If an action function is defined for the current state/event combination,
135 * @param fi Pointer to FSM which should receive the event.
136 * @param event The event do be delivered.
140 * 1 if current state or event is out of range
141 * !0 if state and event in range, but no action defined.
144 fsm_event(fsm_instance *fi, int event, void *arg) in fsm_event() argument
147 int state = atomic_read(&fi->state); in fsm_event()
149 if ((state >= fi->f->nr_states) || in fsm_event()
150 (event >= fi->f->nr_events) ) { in fsm_event()
152 fi->name, (long)state,(long)fi->f->nr_states, event, in fsm_event()
153 (long)fi->f->nr_events); in fsm_event()
159 r = fi->f->jumpmatrix[fi->f->nr_states * event + state]; in fsm_event()
162 printk(KERN_DEBUG "fsm(%s): state %s event %s\n", in fsm_event()
163 fi->name, fi->f->state_names[state], in fsm_event()
164 fi->f->event_names[event]); in fsm_event()
167 fsm_record_history(fi, state, event); in fsm_event()
169 r(fi, event, arg); in fsm_event()
173 printk(KERN_DEBUG "fsm(%s): no function for event %s in state %s\n", in fsm_event()
174 fi->name, fi->f->event_names[event], in fsm_event()
175 fi->f->state_names[state]); in fsm_event()
186 * This does <em>not</em> trigger an event or calls an action function.
194 atomic_set(&fi->state,newstate); in fsm_newstate()
196 fsm_record_history(fi, newstate, -1); in fsm_newstate()
199 printk(KERN_DEBUG "fsm(%s): New state %s\n", fi->name, in fsm_newstate()
200 fi->f->state_names[newstate]); in fsm_newstate()
202 wake_up(&fi->wait_q); in fsm_newstate()
215 return atomic_read(&fi->state); in fsm_getstate()
219 * Retrieves the name of the state of an FSM
249 * @param event Event, to trigger if timer expires.
252 * @return 0 on success, -1 if timer is already active.
254 extern int fsm_addtimer(fsm_timer *timer, int millisec, int event, void *arg);
261 * @param event Event, to trigger if timer expires.
264 extern void fsm_modtimer(fsm_timer *timer, int millisec, int event, void *arg);