Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
dvb_ringbuffer.c File Reference
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/string.h>
#include <asm/uaccess.h>
#include "dvb_ringbuffer.h"

Go to the source code of this file.

Macros

#define PKT_READY   0
 
#define PKT_DISPOSED   1
 

Functions

void dvb_ringbuffer_init (struct dvb_ringbuffer *rbuf, void *data, size_t len)
 
int dvb_ringbuffer_empty (struct dvb_ringbuffer *rbuf)
 
ssize_t dvb_ringbuffer_free (struct dvb_ringbuffer *rbuf)
 
ssize_t dvb_ringbuffer_avail (struct dvb_ringbuffer *rbuf)
 
void dvb_ringbuffer_flush (struct dvb_ringbuffer *rbuf)
 
 EXPORT_SYMBOL (dvb_ringbuffer_flush)
 
void dvb_ringbuffer_reset (struct dvb_ringbuffer *rbuf)
 
void dvb_ringbuffer_flush_spinlock_wakeup (struct dvb_ringbuffer *rbuf)
 
ssize_t dvb_ringbuffer_read_user (struct dvb_ringbuffer *rbuf, u8 __user *buf, size_t len)
 
void dvb_ringbuffer_read (struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)
 
ssize_t dvb_ringbuffer_write (struct dvb_ringbuffer *rbuf, const u8 *buf, size_t len)
 
ssize_t dvb_ringbuffer_pkt_write (struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)
 
ssize_t dvb_ringbuffer_pkt_read_user (struct dvb_ringbuffer *rbuf, size_t idx, int offset, u8 __user *buf, size_t len)
 
ssize_t dvb_ringbuffer_pkt_read (struct dvb_ringbuffer *rbuf, size_t idx, int offset, u8 *buf, size_t len)
 
void dvb_ringbuffer_pkt_dispose (struct dvb_ringbuffer *rbuf, size_t idx)
 
ssize_t dvb_ringbuffer_pkt_next (struct dvb_ringbuffer *rbuf, size_t idx, size_t *pktlen)
 
 EXPORT_SYMBOL (dvb_ringbuffer_init)
 
 EXPORT_SYMBOL (dvb_ringbuffer_empty)
 
 EXPORT_SYMBOL (dvb_ringbuffer_free)
 
 EXPORT_SYMBOL (dvb_ringbuffer_avail)
 
 EXPORT_SYMBOL (dvb_ringbuffer_flush_spinlock_wakeup)
 
 EXPORT_SYMBOL (dvb_ringbuffer_read_user)
 
 EXPORT_SYMBOL (dvb_ringbuffer_read)
 
 EXPORT_SYMBOL (dvb_ringbuffer_write)
 

Macro Definition Documentation

#define PKT_DISPOSED   1

Definition at line 39 of file dvb_ringbuffer.c.

#define PKT_READY   0

Definition at line 38 of file dvb_ringbuffer.c.

Function Documentation

ssize_t dvb_ringbuffer_avail ( struct dvb_ringbuffer rbuf)

Definition at line 75 of file dvb_ringbuffer.c.

int dvb_ringbuffer_empty ( struct dvb_ringbuffer rbuf)

Definition at line 56 of file dvb_ringbuffer.c.

void dvb_ringbuffer_flush ( struct dvb_ringbuffer rbuf)

Definition at line 87 of file dvb_ringbuffer.c.

void dvb_ringbuffer_flush_spinlock_wakeup ( struct dvb_ringbuffer rbuf)

Definition at line 100 of file dvb_ringbuffer.c.

ssize_t dvb_ringbuffer_free ( struct dvb_ringbuffer rbuf)

Definition at line 63 of file dvb_ringbuffer.c.

void dvb_ringbuffer_init ( struct dvb_ringbuffer rbuf,
void data,
size_t  len 
)

Definition at line 42 of file dvb_ringbuffer.c.

void dvb_ringbuffer_pkt_dispose ( struct dvb_ringbuffer rbuf,
size_t  idx 
)

Dispose of a packet in the ring buffer.

<rbuf> Ring buffer concerned. <idx> Packet index as returned by dvb_ringbuffer_pkt_next().

Definition at line 236 of file dvb_ringbuffer.c.

ssize_t dvb_ringbuffer_pkt_next ( struct dvb_ringbuffer rbuf,
size_t  idx,
size_t pktlen 
)

Get the index of the next packet in a ringbuffer.

<rbuf> Ringbuffer concerned. <idx> Previous packet index, or -1 to return the first packet index. <pktlen> On success, will be updated to contain the length of the packet in bytes. returns Packet index (if >=0), or -1 if no packets available.

Definition at line 255 of file dvb_ringbuffer.c.

ssize_t dvb_ringbuffer_pkt_read ( struct dvb_ringbuffer rbuf,
size_t  idx,
int  offset,
u8 buf,
size_t  len 
)

Definition at line 211 of file dvb_ringbuffer.c.

ssize_t dvb_ringbuffer_pkt_read_user ( struct dvb_ringbuffer rbuf,
size_t  idx,
int  offset,
u8 __user buf,
size_t  len 
)

Read from a packet in the ringbuffer. Note: unlike dvb_ringbuffer_read(), this does NOT update the read pointer in the ringbuffer. You must use dvb_ringbuffer_pkt_dispose() to mark a packet as no longer required.

<rbuf> Ringbuffer concerned. <idx> Packet index as returned by dvb_ringbuffer_pkt_next(). <offset> Offset into packet to read from. <buf> Destination buffer for data. <len> Size of destination buffer. <usermem> Set to 1 if <buf> is in userspace. returns Number of bytes read, or -EFAULT.

Definition at line 183 of file dvb_ringbuffer.c.

ssize_t dvb_ringbuffer_pkt_write ( struct dvb_ringbuffer rbuf,
u8 buf,
size_t  len 
)

Write a packet into the ringbuffer.

<rbuf> Ringbuffer to write to. <buf> Buffer to write. <len> Length of buffer (currently limited to 65535 bytes max). returns Number of bytes written, or -EFAULT, -ENOMEM, -EVINAL.

Definition at line 169 of file dvb_ringbuffer.c.

void dvb_ringbuffer_read ( struct dvb_ringbuffer rbuf,
u8 buf,
size_t  len 
)

Definition at line 132 of file dvb_ringbuffer.c.

ssize_t dvb_ringbuffer_read_user ( struct dvb_ringbuffer rbuf,
u8 __user buf,
size_t  len 
)

Definition at line 111 of file dvb_ringbuffer.c.

void dvb_ringbuffer_reset ( struct dvb_ringbuffer rbuf)

Definition at line 94 of file dvb_ringbuffer.c.

ssize_t dvb_ringbuffer_write ( struct dvb_ringbuffer rbuf,
const u8 buf,
size_t  len 
)

Definition at line 150 of file dvb_ringbuffer.c.

EXPORT_SYMBOL ( dvb_ringbuffer_flush  )
EXPORT_SYMBOL ( dvb_ringbuffer_init  )
EXPORT_SYMBOL ( dvb_ringbuffer_empty  )
EXPORT_SYMBOL ( dvb_ringbuffer_free  )
EXPORT_SYMBOL ( dvb_ringbuffer_avail  )
EXPORT_SYMBOL ( dvb_ringbuffer_read_user  )
EXPORT_SYMBOL ( dvb_ringbuffer_read  )
EXPORT_SYMBOL ( dvb_ringbuffer_write  )