mirror of
https://github.com/open5gs/open5gs.git
synced 2025-11-19 22:19:51 +00:00
add build system using Core Library
This commit is contained in:
57
lib/core/include/core_ringbuf.h
Normal file
57
lib/core/include/core_ringbuf.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#ifndef __CORE_RINGBUF_H__
|
||||
#define __CORE_RINGBUF_H__
|
||||
|
||||
#include "core.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
struct _rbuf_header_t {
|
||||
int head, tail, size;
|
||||
char *pool;
|
||||
};
|
||||
|
||||
#define rbuf_declare(__name, __size) \
|
||||
struct { \
|
||||
struct _rbuf_header_t h; \
|
||||
char int_pool[(__size) + 1]; \
|
||||
} __name
|
||||
|
||||
#define rbuf_declare_ext(__name) \
|
||||
struct { \
|
||||
struct _rbuf_header_t h; \
|
||||
} __name
|
||||
|
||||
#define rbuf_init(__pname, __size) \
|
||||
((__pname)->h.head = (__pname)->h.tail = 0, \
|
||||
(__pname)->h.size = __size, \
|
||||
(__pname)->h.pool = (__pname)->int_pool)
|
||||
|
||||
#define rbuf_init_ext(__pname, __size, __ext_pool) \
|
||||
((__pname)->h.head = (__pname)->h.tail = 0, \
|
||||
(__pname)->h.size = __size, \
|
||||
(__pname)->h.pool = (char *)(__ext_pool))
|
||||
|
||||
#define rbuf_size(__pname) ((__pname)->h.size)
|
||||
|
||||
#define rbuf_is_empty(__pname) ((__pname)->h.head == (__pname)->h.tail)
|
||||
#define rbuf_is_full(__pname) (rbuf_free_bytes(__pname) == 0)
|
||||
|
||||
CORE_DECLARE(int) rbuf_bytes(void *__pname);
|
||||
|
||||
CORE_DECLARE(int) rbuf_free_bytes(void *__pname);
|
||||
|
||||
CORE_DECLARE(int) rbuf_skip_write_pos(void *__pname, int __len);
|
||||
|
||||
CORE_DECLARE(int) rbuf_write(void *__pname, const char *__buf, int __buf_len);
|
||||
|
||||
CORE_DECLARE(int) rbuf_skip_read_pos(void *__pname, int __len);
|
||||
|
||||
CORE_DECLARE(int) rbuf_read(void *__pname, char *__buf, int __buf_len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* ! __CORE_RINGBUF_H__ */
|
||||
Reference in New Issue
Block a user