si_sm_result
static enum si_sm_result error_recovery(struct si_sm_data *bt,
static enum si_sm_result bt_event(struct si_sm_data *bt, long time)
enum si_sm_result smi_result;
static enum si_sm_result kcs_event(struct si_sm_data *kcs, long time)
enum si_sm_result smi_result;
enum si_sm_result smi_result;
enum si_sm_result smi_result;
static enum si_sm_result start_next_msg(struct smi_info *smi_info)
static enum si_sm_result smi_event_handler(struct smi_info *smi_info,
enum si_sm_result si_sm_result;
si_sm_result = smi_info->handlers->event(smi_info->si_sm, time);
while (si_sm_result == SI_SM_CALL_WITHOUT_DELAY)
si_sm_result = smi_info->handlers->event(smi_info->si_sm, 0);
if (si_sm_result == SI_SM_TRANSACTION_COMPLETE) {
} else if (si_sm_result == SI_SM_HOSED) {
if (si_sm_result == SI_SM_ATTN || smi_info->got_attn) {
if (si_sm_result == SI_SM_IDLE) {
si_sm_result = start_next_msg(smi_info);
if (si_sm_result != SI_SM_IDLE)
if ((si_sm_result == SI_SM_IDLE)
if (si_sm_result == SI_SM_IDLE && smi_info->timer_running) {
return si_sm_result;
enum si_sm_result result;
static inline bool ipmi_thread_busy_wait(enum si_sm_result smi_result,
enum si_sm_result (*event)(struct si_sm_data *smi, long time);
static enum si_sm_result smic_event(struct si_sm_data *smic, long time)