Lines Matching refs:dvbnet

1217 static int get_if(struct dvb_net *dvbnet)  argument
1222 if (!dvbnet->state[i])
1228 dvbnet->state[i]=1;
1232 static int dvb_net_add_if(struct dvb_net *dvbnet, u16 pid, u8 feedtype) argument
1241 if ((if_num = get_if(dvbnet)) < 0)
1249 if (dvbnet->dvbdev->id)
1251 dvbnet->dvbdev->adapter->num, dvbnet->dvbdev->id, if_num);
1255 dvbnet->dvbdev->adapter->num, if_num);
1258 memcpy(net->dev_addr, dvbnet->dvbdev->adapter->proposed_mac, 6);
1260 dvbnet->device[if_num] = net;
1264 priv->demux = dvbnet->demux;
1279 dvbnet->device[if_num] = NULL;
1288 static int dvb_net_remove_if(struct dvb_net *dvbnet, unsigned long num) argument
1290 struct net_device *net = dvbnet->device[num];
1293 if (!dvbnet->state[num])
1304 dvbnet->state[num]=0;
1305 dvbnet->device[num] = NULL;
1315 struct dvb_net *dvbnet = dvbdev->priv; local
1321 if (mutex_lock_interruptible(&dvbnet->ioctl_mutex))
1340 result=dvb_net_add_if(dvbnet, dvbnetif->pid, dvbnetif->feedtype);
1356 !dvbnet->state[dvbnetif->if_num]) {
1361 netdev = dvbnet->device[dvbnetif->if_num];
1378 ret = dvb_net_remove_if(dvbnet, (unsigned long) parg);
1400 result=dvb_net_add_if(dvbnet, dvbnetif->pid, DVB_NET_FEEDTYPE_MPE);
1416 !dvbnet->state[dvbnetif->if_num]) {
1421 netdev = dvbnet->device[dvbnetif->if_num];
1433 mutex_unlock(&dvbnet->ioctl_mutex);
1446 struct dvb_net *dvbnet = dvbdev->priv; local
1450 if(dvbdev->users == 1 && dvbnet->exit == 1)
1474 void dvb_net_release (struct dvb_net *dvbnet) argument
1478 dvbnet->exit = 1;
1479 if (dvbnet->dvbdev->users < 1)
1480 wait_event(dvbnet->dvbdev->wait_queue,
1481 dvbnet->dvbdev->users==1);
1483 dvb_unregister_device(dvbnet->dvbdev);
1486 if (!dvbnet->state[i])
1488 dvb_net_remove_if(dvbnet, i);
1494 int dvb_net_init (struct dvb_adapter *adap, struct dvb_net *dvbnet, argument
1499 mutex_init(&dvbnet->ioctl_mutex);
1500 dvbnet->demux = dmx;
1503 dvbnet->state[i] = 0;
1505 return dvb_register_device(adap, &dvbnet->dvbdev, &dvbdev_net,
1506 dvbnet, DVB_DEVICE_NET);