#include <linux/module.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/poll.h>
#include <linux/io.h>
#include <asm/div64.h>
#include <linux/pci.h>
#include <linux/timer.h>
#include <linux/byteorder/generic.h>
#include <linux/firmware.h>
#include <linux/vmalloc.h>
#include "ngene.h"
static int ci_tsfix = …;
module_param(ci_tsfix, int, 0444);
MODULE_PARM_DESC(…) …;
static ssize_t ts_write(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{ … }
static ssize_t ts_read(struct file *file, char __user *buf,
size_t count, loff_t *ppos)
{ … }
static __poll_t ts_poll(struct file *file, poll_table *wait)
{ … }
static const struct file_operations ci_fops = …;
struct dvb_device ngene_dvbdev_ci = …;
static void swap_buffer(u32 *p, u32 len)
{ … }
static u8 fill_ts[] = …;
static int tsin_find_offset(void *buf, u32 len)
{ … }
static inline void tsin_copy_stripped(struct ngene *dev, void *buf)
{ … }
void *tsin_exchange(void *priv, void *buf, u32 len, u32 clock, u32 flags)
{ … }
void *tsout_exchange(void *priv, void *buf, u32 len, u32 clock, u32 flags)
{ … }
int ngene_start_feed(struct dvb_demux_feed *dvbdmxfeed)
{ … }
int ngene_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
{ … }
int my_dvb_dmx_ts_card_init(struct dvb_demux *dvbdemux, char *id,
int (*start_feed)(struct dvb_demux_feed *),
int (*stop_feed)(struct dvb_demux_feed *),
void *priv)
{ … }
int my_dvb_dmxdev_ts_card_init(struct dmxdev *dmxdev,
struct dvb_demux *dvbdemux,
struct dmx_frontend *hw_frontend,
struct dmx_frontend *mem_frontend,
struct dvb_adapter *dvb_adapter)
{ … }