register_fsa_input(C_FSA_INTERNAL, I_EXIT, NULL);
register_fsa_input(C_FSA_INTERNAL, I_TERMINATE, NULL);
do_shutdown(long long action,	    enum crmd_fsa_cause cause,	    enum crmd_fsa_state cur_state,	    enum crmd_fsa_input current_input,	    fsa_data_t *msg_data){	enum crmd_fsa_input next_input = I_NULL;	enum crmd_fsa_input tmp = I_NULL;	/* just in case */	set_bit_inplace(fsa_input_register, R_SHUTDOWN);		/* last attempt to shut these down */	if(is_set(fsa_input_register, R_PE_CONNECTED)) {		crm_warn("Last attempt to shutdown the PolicyEngine");		tmp = do_pe_control(A_PE_STOP, cause, cur_state,				    current_input, msg_data);		if(tmp != I_NULL) {			next_input = I_ERROR;			crm_err("Failed to shutdown the PolicyEngine");		}	}	if(is_set(fsa_input_register, R_TE_CONNECTED)) {		crm_warn("Last attempt to shutdown the Transitioner");		tmp = do_pe_control(A_TE_STOP, cause, cur_state,				    current_input, msg_data);		if(tmp != I_NULL) {			next_input = I_ERROR;			crm_err("Failed to shutdown the Transitioner");		}	}	crm_info("Stopping all remaining local resources");	if(is_set(fsa_input_register, R_LRM_CONNECTED)) {		stop_all_resources();	} else {		crm_err("Exiting with no LRM connection..."			" resources may be active!");		register_fsa_input(C_FSA_INTERNAL, I_EXIT, NULL);	}		return next_input;}