videobuf-dvb.h 1.7 KB

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