Ejemplo n.º 1
0
ssize_t 
dvb_demux_read(struct file *file, char *buf, size_t count, loff_t *ppos)
{
	struct dmxdev_filter *dmxdevfilter=dvb_dmxdev_file_to_filter(file);
	int ret=0;

	if (down_interruptible(&dmxdevfilter->mutex))
		return -ERESTARTSYS;

	if (dmxdevfilter->type==DMXDEV_TYPE_SEC)
		ret=dvb_dmxdev_read_sec(dmxdevfilter, file, buf, count, ppos);
	else
		ret=dvb_dmxdev_buffer_read(&dmxdevfilter->buffer, 
				     file->f_flags&O_NONBLOCK, 
				     buf, count, ppos);

	up(&dmxdevfilter->mutex);
	return ret;
}
Ejemplo n.º 2
0
Archivo: dmxdev.c Proyecto: 274914765/C
static ssize_t
dvb_demux_read(struct file *file, char __user *buf, size_t count,
           loff_t *ppos)
{
    struct dmxdev_filter *dmxdevfilter = file->private_data;
    int ret;

    if (mutex_lock_interruptible(&dmxdevfilter->mutex))
        return -ERESTARTSYS;

    if (dmxdevfilter->type == DMXDEV_TYPE_SEC)
        ret = dvb_dmxdev_read_sec(dmxdevfilter, file, buf, count, ppos);
    else
        ret = dvb_dmxdev_buffer_read(&dmxdevfilter->buffer,
                         file->f_flags & O_NONBLOCK,
                         buf, count, ppos);

    mutex_unlock(&dmxdevfilter->mutex);
    return ret;
}