24 RCSIDH(machine_h,
"$Id: 2aebc0e75c54b66970a6dba6d0d557057a829b86 $")
26 #include <freeradius-devel/util/dcursor.h>
50 #define ALLOW(_x) .allowed[_x] = true
91 #define MACHINE radius
93 #define ENTER(_x) static int MACHINE ## _enter ## _x(fr_machine_t *m, void *uctx)
94 #define EXIT(_x) static int MACHINE ## _exit ## _x(fr_machine_t *m, void *uctx)
95 #define PROCESS(_x) static int MACHINE ## _process ## _x(fr_machine_t *m, void *uctx)
fr_dcursor_eval_t void const * uctx
int max_signal
1..max signals are permitted
int fr_machine_signal(fr_machine_t *m, int signal)
Send an async signal to the state machine.
int(* fr_machine_signal_t)(fr_machine_t *m, int sig, void *uctx)
int free
state to run on free
int fr_machine_process(fr_machine_t *m)
Process the state machine.
fr_machine_process_t process
run this to process the current state
fr_machine_func_t exit
run this when exiting the state
int(* fr_machine_process_t)(fr_machine_t *m, void *uctx)
int number
enum for this state machine
char const * fr_machine_state_name(fr_machine_t *m, int state)
Get the name of a particular state.
char const * name
state name
void(* fr_machine_func_t)(fr_machine_t *m, void *uctx)
void fr_machine_resume(fr_machine_t *m)
Resume transitions.
int fr_machine_transition(fr_machine_t *m, int state)
Transition to a new state.
void(* fr_machine_hook_func_t)(fr_machine_t *m, int, int, void *uctx)
void * fr_machine_hook(fr_machine_t *m, TALLOC_CTX *ctx, int state, fr_machine_hook_type_t type, fr_machine_hook_sense_t sense, bool oneshot, fr_machine_hook_func_t func, void *uctx)
Add a hook to a state, with an optional talloc_ctx.
void fr_machine_pause(fr_machine_t *m)
Pause any transitions.
int init
state to run on init
int max_state
1..max states are permitted
fr_machine_signal_t signal
to send async signals to the state machine
int fr_machine_current(fr_machine_t *m)
Get the current state.
fr_machine_t * fr_machine_alloc(TALLOC_CTX *ctx, fr_machine_def_t const *def, void *uctx)
Instantiate a state machine.
fr_machine_func_t enter
run this when entering the state
bool * allowed
allow outbound transitions
fr_aka_sim_id_type_t type