enum crmd_fsa_input next_input = I_NULL;
s_crmd_fsa_actions(fsa_data_t *fsa_data){	enum crmd_fsa_input next_input = I_NULL;	long long last_action = A_NOTHING;		/*	 * Process actions in order of priority but do only one	 * action at a time to avoid complicating the ordering.	 */	while(fsa_actions != A_NOTHING  && do_fsa_stall == FALSE) {		msg_queue_helper();		if(fsa_data == NULL) {			crm_err("No input for FSA.... terminating");			exit(1);		}		/* regular action processing in order of action priority		 *		 * Make sure all actions that connect to required systems		 * are performed first		 */		/* get out of here NOW! before anything worse happens */		IF_FSA_ACTION(A_EXIT_1,		do_exit)		else IF_FSA_ACTION(A_ERROR, do_log)		else IF_FSA_ACTION(A_WARN,  do_log)		else IF_FSA_ACTION(A_LOG,   do_log)		/* essential start tasks */		else IF_FSA_ACTION(A_HA_CONNECT,  do_ha_control)		else IF_FSA_ACTION(A_STARTUP,	  do_startup)		else IF_FSA_ACTION(A_CIB_START,	  do_cib_control)		else IF_FSA_ACTION(A_READCONFIG,  do_read_config)		/* sub-system start/connect */		else IF_FSA_ACTION(A_LRM_CONNECT, do_lrm_control)		else IF_FSA_ACTION(A_CCM_CONNECT, do_ccm_control)		else IF_FSA_ACTION(A_TE_START,	  do_te_control)		else IF_FSA_ACTION(A_PE_START,	  do_pe_control)				/* sub-system restart		 */		else IF_FSA_ACTION(O_CIB_RESTART,	do_cib_control)		else IF_FSA_ACTION(O_PE_RESTART,	do_pe_control)		else IF_FSA_ACTION(O_TE_RESTART,	do_te_control)				/* Timers *//* 		else IF_FSA_ACTION(O_DC_TIMER_RESTART,      do_timer_control) */		else IF_FSA_ACTION(A_DC_TIMER_STOP,         do_timer_control)		else IF_FSA_ACTION(A_INTEGRATE_TIMER_STOP,  do_timer_control)		else IF_FSA_ACTION(A_INTEGRATE_TIMER_START, do_timer_control)		else IF_FSA_ACTION(A_FINALIZE_TIMER_STOP,   do_timer_control)		else IF_FSA_ACTION(A_FINALIZE_TIMER_START,  do_timer_control)				/*		 * Highest priority actions		 */		else IF_FSA_ACTION(A_CIB_BUMPGEN,	do_cib_invoke)		else IF_FSA_ACTION(A_MSG_ROUTE,		do_msg_route)		else IF_FSA_ACTION(A_RECOVER,		do_recover)		else IF_FSA_ACTION(A_CL_JOIN_REQUEST,	do_cl_join_request)		else IF_FSA_ACTION(A_CL_JOIN_RESULT,	do_cl_join_result)		else IF_FSA_ACTION(A_SHUTDOWN_REQ,	do_shutdown_req)		else IF_FSA_ACTION(A_ELECTION_VOTE,	do_election_vote)		else IF_FSA_ACTION(A_ELECTION_COUNT,	do_election_count_vote)				/*		 * High priority actions		 * Update the cache first		 */		else IF_FSA_ACTION(A_CCM_UPDATE_CACHE,	do_ccm_update_cache)		else IF_FSA_ACTION(A_CCM_EVENT,		do_ccm_event)		else IF_FSA_ACTION(A_STARTED,		do_started)		else IF_FSA_ACTION(A_CL_JOIN_QUERY,     do_cl_join_query)		else IF_FSA_ACTION(A_DC_TIMER_START,    do_timer_control)				/*		 * Medium priority actions		 */		else IF_FSA_ACTION(A_DC_TAKEOVER,	 do_dc_takeover)		else IF_FSA_ACTION(A_DC_RELEASE,	 do_dc_release)		else IF_FSA_ACTION(A_ELECTION_START,	 do_election_vote)		else IF_FSA_ACTION(A_DC_JOIN_OFFER_ALL,	 do_dc_join_offer_all)		else IF_FSA_ACTION(A_DC_JOIN_OFFER_ONE,	 do_dc_join_offer_all)		else IF_FSA_ACTION(A_DC_JOIN_PROCESS_REQ,do_dc_join_req)		else IF_FSA_ACTION(A_DC_JOIN_PROCESS_ACK,do_dc_join_ack)				/*		 * Low(er) priority actions		 * Make sure the CIB is always updated before invoking the		 * PE, and the PE before the TE		 */		else IF_FSA_ACTION(A_CIB_INVOKE_LOCAL,	do_cib_invoke)		else IF_FSA_ACTION(A_CIB_INVOKE,	do_cib_invoke)		else IF_FSA_ACTION(A_DC_JOIN_FINALIZE,	do_dc_join_finalize)		else IF_FSA_ACTION(A_LRM_INVOKE,	do_lrm_invoke)		else IF_FSA_ACTION(A_LRM_EVENT,		do_lrm_event)		else IF_FSA_ACTION(A_TE_HALT,		do_te_invoke)		else IF_FSA_ACTION(A_TE_CANCEL,		do_te_invoke)		else IF_FSA_ACTION(A_PE_INVOKE,		do_pe_invoke)		else IF_FSA_ACTION(A_TE_INVOKE,		do_te_invoke)		else IF_FSA_ACTION(A_CL_JOIN_ANNOUNCE,	do_cl_join_announce)				/* sub-system stop */		else IF_FSA_ACTION(A_DC_RELEASED,	do_dc_release)		else IF_FSA_ACTION(A_PE_STOP,		do_pe_control)		else IF_FSA_ACTION(A_TE_STOP,		do_te_control)		else IF_FSA_ACTION(A_SHUTDOWN,		do_shutdown)		else IF_FSA_ACTION(A_STOP,		do_stop)		else IF_FSA_ACTION(A_CCM_DISCONNECT,	do_ccm_control)		else IF_FSA_ACTION(A_LRM_DISCONNECT,	do_lrm_control)		else IF_FSA_ACTION(A_HA_DISCONNECT,	do_ha_control)		else IF_FSA_ACTION(A_CIB_STOP,		do_cib_control)				/* exit gracefully */		else IF_FSA_ACTION(A_EXIT_0,	do_exit)/*		else IF_FSA_ACTION(A_, do_) */					/* Error checking and reporting */		else {			crm_err("Action %s (0x%llx) not supported ",			       fsa_action2string(fsa_actions), fsa_actions);			register_fsa_error_adv(C_FSA_INTERNAL, I_ERROR,					   fsa_data, NULL, __FUNCTION__);		}	}}