C_IPC_MESSAGE, I_ERROR, NULL); 
C_FSA_INTERNAL, I_ERROR, NULL); 
do_te_invoke(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 ret = I_NULL;	HA_Message *cmd = NULL;		if(is_set(fsa_input_register, R_TE_CONNECTED) == FALSE){		if(te_subsystem->pid > 0) {			int pid_status = -1;			waitpid(te_subsystem->pid, &pid_status, WNOHANG);			if(WIFSIGNALED(pid_status) || WIFEXITED(pid_status)) {				te_subsystem->pid = -1;				clear_bit_inplace(fsa_input_register,						  te_subsystem->flag_connected);					if(is_set(fsa_input_register,					  te_subsystem->flag_required)) {					/* this wasnt supposed to happen */					crm_err("The %s subsystem terminated"						" during start",						te_subsystem->name);					register_fsa_error(						C_IPC_MESSAGE, I_ERROR, NULL);				}				return I_NULL;			}		} 		crm_info("Waiting for the TE to connect");		crmd_fsa_stall();		return I_NULL;	}	if(action & A_TE_INVOKE) {		ha_msg_input_t *input = fsa_typed_data(fsa_dt_ha_msg);		if(input->xml != NULL) {			cmd = create_request(				CRM_OP_TRANSITION, input->xml, NULL,				CRM_SYSTEM_TENGINE, CRM_SYSTEM_DC, NULL);						send_request(cmd, NULL);		} else {			register_fsa_error(C_FSA_INTERNAL, I_FAIL, NULL);		}		} else if(action & A_TE_CANCEL) {		cmd = create_request(			CRM_OP_TEABORT, NULL, NULL,			CRM_SYSTEM_TENGINE, CRM_SYSTEM_DC, NULL);				send_request(cmd, NULL);	}	return ret;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/c1ce5949ecb7e7a78490fcabaed6f928f7dce9f8/tengine.c/clean/crm/crmd/tengine.c