#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mm.h>
#include <media/dvbdev.h>
#include <media/dvb_vb2.h>
#define DVB_V2_MAX_SIZE …
static int vb2_debug;
module_param(vb2_debug, int, 0644);
#define dprintk(level, fmt, arg...) …
static int _queue_setup(struct vb2_queue *vq,
unsigned int *nbuffers, unsigned int *nplanes,
unsigned int sizes[], struct device *alloc_devs[])
{ … }
static int _buffer_prepare(struct vb2_buffer *vb)
{ … }
static void _buffer_queue(struct vb2_buffer *vb)
{ … }
static int _start_streaming(struct vb2_queue *vq, unsigned int count)
{ … }
static void _stop_streaming(struct vb2_queue *vq)
{ … }
static void _dmxdev_lock(struct vb2_queue *vq)
{ … }
static void _dmxdev_unlock(struct vb2_queue *vq)
{ … }
static const struct vb2_ops dvb_vb2_qops = …;
static void _fill_dmx_buffer(struct vb2_buffer *vb, void *pb)
{ … }
static int _fill_vb2_buffer(struct vb2_buffer *vb, struct vb2_plane *planes)
{ … }
static const struct vb2_buf_ops dvb_vb2_buf_ops = …;
int dvb_vb2_init(struct dvb_vb2_ctx *ctx, const char *name, int nonblocking)
{ … }
int dvb_vb2_release(struct dvb_vb2_ctx *ctx)
{ … }
int dvb_vb2_stream_on(struct dvb_vb2_ctx *ctx)
{ … }
int dvb_vb2_stream_off(struct dvb_vb2_ctx *ctx)
{ … }
int dvb_vb2_is_streaming(struct dvb_vb2_ctx *ctx)
{ … }
int dvb_vb2_fill_buffer(struct dvb_vb2_ctx *ctx,
const unsigned char *src, int len,
enum dmx_buffer_flags *buffer_flags)
{ … }
int dvb_vb2_reqbufs(struct dvb_vb2_ctx *ctx, struct dmx_requestbuffers *req)
{ … }
int dvb_vb2_querybuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)
{ … }
int dvb_vb2_expbuf(struct dvb_vb2_ctx *ctx, struct dmx_exportbuffer *exp)
{ … }
int dvb_vb2_qbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)
{ … }
int dvb_vb2_dqbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)
{ … }
int dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma)
{ … }
__poll_t dvb_vb2_poll(struct dvb_vb2_ctx *ctx, struct file *file,
poll_table *wait)
{ … }