1#include <dvbdev.h> 2#include <dmxdev.h> 3#include <dvb_demux.h> 4#include <dvb_net.h> 5#include <dvb_frontend.h> 6 7struct videobuf_dvb { 8 /* filling that the job of the driver */ 9 char *name; 10 struct dvb_frontend *frontend; 11 struct videobuf_queue dvbq; 12 13 /* video-buf-dvb state info */ 14 struct mutex lock; 15 struct task_struct *thread; 16 int nfeeds; 17 18 /* videobuf_dvb_(un)register manges this */ 19 struct dvb_demux demux; 20 struct dmxdev dmxdev; 21 struct dmx_frontend fe_hw; 22 struct dmx_frontend fe_mem; 23 struct dvb_net net; 24}; 25 26struct videobuf_dvb_frontend { 27 struct list_head felist; 28 int id; 29 struct videobuf_dvb dvb; 30}; 31 32struct videobuf_dvb_frontends { 33 struct list_head felist; 34 struct mutex lock; 35 struct dvb_adapter adapter; 36 int active_fe_id; /* Indicates which frontend in the felist is in use */ 37 int gate; /* Frontend with gate control 0=!MFE,1=fe0,2=fe1 etc */ 38}; 39 40int videobuf_dvb_register_bus(struct videobuf_dvb_frontends *f, 41 struct module *module, 42 void *adapter_priv, 43 struct device *device, 44 short *adapter_nr, 45 int mfe_shared, 46 int (*fe_ioctl_override)(struct dvb_frontend *, 47 unsigned int, void *, unsigned int)); 48 49void videobuf_dvb_unregister_bus(struct videobuf_dvb_frontends *f); 50 51struct videobuf_dvb_frontend * videobuf_dvb_alloc_frontend(struct videobuf_dvb_frontends *f, int id); 52void videobuf_dvb_dealloc_frontends(struct videobuf_dvb_frontends *f); 53 54struct videobuf_dvb_frontend * videobuf_dvb_get_frontend(struct videobuf_dvb_frontends *f, int id); 55int videobuf_dvb_find_frontend(struct videobuf_dvb_frontends *f, struct dvb_frontend *p); 56 57 58/* 59 * Local variables: 60 * c-basic-offset: 8 61 * End: 62 */ 63