xref: /linux/drivers/media/usb/pvrusb2/pvrusb2-dvb.h (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1 #ifndef __PVRUSB2_DVB_H__
2 #define __PVRUSB2_DVB_H__
3 
4 #include "dvb_frontend.h"
5 #include "dvb_demux.h"
6 #include "dvb_net.h"
7 #include "dmxdev.h"
8 #include "pvrusb2-context.h"
9 
10 #define PVR2_DVB_BUFFER_COUNT 32
11 #define PVR2_DVB_BUFFER_SIZE PAGE_ALIGN(0x4000)
12 
13 struct pvr2_dvb_adapter {
14 	struct pvr2_channel	channel;
15 
16 	struct dvb_adapter	dvb_adap;
17 	struct dmxdev		dmxdev;
18 	struct dvb_demux	demux;
19 	struct dvb_net		dvb_net;
20 	struct dvb_frontend	*fe;
21 
22 	int			feedcount;
23 	int			max_feed_count;
24 
25 	struct task_struct	*thread;
26 	struct mutex		lock;
27 
28 	unsigned int		stream_run:1;
29 
30 	wait_queue_head_t	buffer_wait_data;
31 	char			*buffer_storage[PVR2_DVB_BUFFER_COUNT];
32 };
33 
34 struct pvr2_dvb_props {
35 	int (*frontend_attach) (struct pvr2_dvb_adapter *);
36 	int (*tuner_attach) (struct pvr2_dvb_adapter *);
37 };
38 
39 struct pvr2_dvb_adapter *pvr2_dvb_create(struct pvr2_context *pvr);
40 
41 #endif /* __PVRUSB2_DVB_H__ */
42