Files

54 lines
1.2 KiB
C
Raw Permalink Normal View History

#ifndef _LIBC_IO_RINGBUF_H_
#define _LIBC_IO_RINGBUF_H_
#include <stddef.h>
enum ringbuf_flags {
RINGBUF_NONE = 0,
RINGBUF_STATIC,
};
struct ringbuf {
enum ringbuf_flags buf_flags;
char *buf_ptr;
size_t buf_max;
size_t buf_readp, buf_writep;
};
extern int __libc_ringbuf_get_read_buffer(
struct ringbuf *buf,
const char **out_bufp,
size_t *out_len);
extern void __libc_ringbuf_put_read_buffer(
struct ringbuf *buf,
const char **bufp,
size_t *len);
extern int __libc_ringbuf_get_write_buffer(
struct ringbuf *buf,
char **out_bufp,
size_t *out_len);
extern void __libc_ringbuf_put_write_buffer(
struct ringbuf *buf,
char **bufp,
size_t *len);
extern long __libc_ringbuf_read(struct ringbuf *buf, void *p, size_t count);
extern long __libc_ringbuf_write(
struct ringbuf *buf,
const void *p,
size_t count);
extern int __libc_ringbuf_clear(struct ringbuf *buf);
extern int __libc_ringbuf_resize(struct ringbuf *buf, size_t max);
extern int __libc_ringbuf_resize_static(
struct ringbuf *buf,
void *p,
size_t max);
extern size_t __libc_ringbuf_available(const struct ringbuf *buf);
extern size_t __libc_ringbuf_capacity(const struct ringbuf *buf);
#endif