dvbdemux->frontend_list.next= dvbdemux->frontend_list.prev= &dvbdemux->frontend_list; 
 INIT_LIST_HEAD(&dvbdemux->frontend_list);  
int dvb_dmx_init(struct dvb_demux *dvbdemux){	int i;	struct dmx_demux *dmx = &dvbdemux->dmx;	dvbdemux->users = 0;	dvbdemux->filter = vmalloc(dvbdemux->filternum*sizeof(struct dvb_demux_filter));	if (!dvbdemux->filter)		return -ENOMEM;	dvbdemux->feed = vmalloc(dvbdemux->feednum*sizeof(struct dvb_demux_feed));	if (!dvbdemux->feed) {		vfree(dvbdemux->filter);		return -ENOMEM;	}	for (i=0; i<dvbdemux->filternum; i++) {		dvbdemux->filter[i].state = DMX_STATE_FREE;		dvbdemux->filter[i].index = i;	}	for (i=0; i<dvbdemux->feednum; i++) {		dvbdemux->feed[i].state = DMX_STATE_FREE;		dvbdemux->feed[i].index = i;	}	dvbdemux->frontend_list.next=	  dvbdemux->frontend_list.prev=	    &dvbdemux->frontend_list;	for (i=0; i<DMX_TS_PES_OTHER; i++) {		dvbdemux->pesfilter[i] = NULL;		dvbdemux->pids[i] = 0xffff;	}	INIT_LIST_HEAD(&dvbdemux->feed_list);	dvbdemux->playing = 0;	dvbdemux->recording = 0;	dvbdemux->tsbufp = 0;	if (!dvbdemux->check_crc32)		dvbdemux->check_crc32 = dvb_dmx_crc32;	 if (!dvbdemux->memcopy)		 dvbdemux->memcopy = dvb_dmx_memcopy;	dmx->frontend = NULL;	dmx->priv = (void *) dvbdemux;	dmx->open = dvbdmx_open;	dmx->close = dvbdmx_close;	dmx->write = dvbdmx_write;	dmx->allocate_ts_feed = dvbdmx_allocate_ts_feed;	dmx->release_ts_feed = dvbdmx_release_ts_feed;	dmx->allocate_section_feed = dvbdmx_allocate_section_feed;	dmx->release_section_feed = dvbdmx_release_section_feed;	dmx->add_frontend = dvbdmx_add_frontend;	dmx->remove_frontend = dvbdmx_remove_frontend;	dmx->get_frontends = dvbdmx_get_frontends;	dmx->connect_frontend = dvbdmx_connect_frontend;	dmx->disconnect_frontend = dvbdmx_disconnect_frontend;	dmx->get_pes_pids = dvbdmx_get_pes_pids;	sema_init(&dvbdemux->mutex, 1);	spin_lock_init(&dvbdemux->lock);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/db574d7d6e38fe37bbb97e2b0a0363b5d2ffa203/dvb_demux.c/clean/drivers/media/dvb/dvb-core/dvb_demux.c