struct dst_state* dst_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter) 
struct dst_state *dst_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter) 
struct dst_state* dst_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter){	/* check if the ASIC is there */	if (dst_probe(state) < 0) {		if (state)			kfree(state);		return NULL;	}	/* determine settings based on type */	switch (state->dst_type) {	case DST_TYPE_IS_TERR:		memcpy(&state->ops, &dst_dvbt_ops, sizeof(struct dvb_frontend_ops));		break;	case DST_TYPE_IS_CABLE:		memcpy(&state->ops, &dst_dvbc_ops, sizeof(struct dvb_frontend_ops));		break;	case DST_TYPE_IS_SAT:		memcpy(&state->ops, &dst_dvbs_ops, sizeof(struct dvb_frontend_ops));		break;	default:		printk("%s: unknown DST type. please report to the LinuxTV.org DVB mailinglist.\n", __FUNCTION__);		if (state)			kfree(state);		return NULL;	}	/* create dvb_frontend */	state->frontend.ops = &state->ops;	state->frontend.demodulator_priv = state;	return state;				/*	Manu (DST is a card not a frontend)	*/}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a427de6f72bc0d83ebb1d87f9003c5e1009f21cd/dst.c/buggy/drivers/media/dvb/bt8xx/dst.c