mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-01 18:01:06 +02:00
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@27 e54a6e83-5905-42d5-8d5c-058d10e6a962
Origin commit data
------------------
Branch: ni/coolstream
Commit: bc5bd4154e
Author: mrcolor <mrcolor@e54a6e83-5905-42d5-8d5c-058d10e6a962>
Date: 2009-12-08 (Tue, 08 Dec 2009)
------------------
This commit was generated by Migit
41 lines
959 B
C
Executable File
41 lines
959 B
C
Executable File
#ifndef _RINGBUFFER_H
|
|
#define _RINGBUFFER_H
|
|
|
|
#include <sys/types.h>
|
|
|
|
typedef struct
|
|
{
|
|
char *buf;
|
|
size_t len;
|
|
} ringbuffer_data_t;
|
|
|
|
typedef struct
|
|
{
|
|
char *buf;
|
|
volatile size_t write_ptr;
|
|
volatile size_t read_ptr;
|
|
size_t size;
|
|
size_t size_mask;
|
|
int mlocked;
|
|
} ringbuffer_t;
|
|
|
|
ringbuffer_t *ringbuffer_create(int sz);
|
|
void ringbuffer_free(ringbuffer_t *rb);
|
|
|
|
int ringbuffer_mlock(ringbuffer_t *rb);
|
|
void ringbuffer_reset(ringbuffer_t *rb);
|
|
|
|
void ringbuffer_write_advance(ringbuffer_t *rb, size_t cnt);
|
|
void ringbuffer_read_advance(ringbuffer_t *rb, size_t cnt);
|
|
|
|
size_t ringbuffer_write_space(ringbuffer_t *rb);
|
|
size_t ringbuffer_read_space(ringbuffer_t *rb);
|
|
|
|
size_t ringbuffer_read(ringbuffer_t *rb, char *dest, size_t cnt);
|
|
size_t ringbuffer_write(ringbuffer_t *rb, char *src, size_t cnt);
|
|
|
|
void ringbuffer_get_read_vector(ringbuffer_t *rb, ringbuffer_data_t *vec);
|
|
void ringbuffer_get_write_vector(ringbuffer_t *rb, ringbuffer_data_t *vec);
|
|
|
|
#endif
|