From 1e02d09cb1b00df198bde2ce2a5518120fa63943 Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Tue, 14 Oct 2025 11:29:40 +0200 Subject: [PATCH] MINOR: ncbuf2: define new ncbuf2 type --- Makefile | 2 +- include/haproxy/ncbuf2-t.h | 17 ++++++++++ include/haproxy/ncbuf2.h | 9 ++++++ src/ncbuf2.c | 63 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 include/haproxy/ncbuf2-t.h create mode 100644 include/haproxy/ncbuf2.h create mode 100644 src/ncbuf2.c diff --git a/Makefile b/Makefile index 88c7548e8..9255eea53 100644 --- a/Makefile +++ b/Makefile @@ -999,7 +999,7 @@ OBJS += src/mux_h2.o src/mux_h1.o src/mux_fcgi.o src/log.o \ src/ebsttree.o src/freq_ctr.o src/systemd.o src/init.o \ src/http_acl.o src/dict.o src/dgram.o src/pipe.o \ src/hpack-huff.o src/hpack-enc.o src/ebtree.o src/hash.o \ - src/httpclient_cli.o src/version.o + src/httpclient_cli.o src/version.o src/ncbuf2.o ifneq ($(TRACE),) OBJS += src/calltrace.o diff --git a/include/haproxy/ncbuf2-t.h b/include/haproxy/ncbuf2-t.h new file mode 100644 index 000000000..31411dd9b --- /dev/null +++ b/include/haproxy/ncbuf2-t.h @@ -0,0 +1,17 @@ +#ifndef _HAPROXY_NCBUF2_T_H +#define _HAPROXY_NCBUF2_T_H + +#include + +typedef uint32_t ncb2_sz_t; + +#define NCBUF2_NULL ((struct ncbuf2){ }) + +struct ncbuf2 { + char *area; + char *bitmap; + ncb2_sz_t size; + ncb2_sz_t head; +}; + +#endif /* _HAPROXY_NCBUF2_T_H */ diff --git a/include/haproxy/ncbuf2.h b/include/haproxy/ncbuf2.h new file mode 100644 index 000000000..e837187e8 --- /dev/null +++ b/include/haproxy/ncbuf2.h @@ -0,0 +1,9 @@ +#ifndef _HAPROXY_NCBUF2_H +#define _HAPROXY_NCBUF2_H + +#include +#include + +struct ncbuf2 ncb2_make(char *area, ncb2_sz_t size, ncb2_sz_t head); + +#endif /* _HAPROXY_NCBUF2_H */ diff --git a/src/ncbuf2.c b/src/ncbuf2.c new file mode 100644 index 000000000..ba83ce8b2 --- /dev/null +++ b/src/ncbuf2.c @@ -0,0 +1,63 @@ +#include + +#include + +struct ncbuf2 ncb2_make(char *area, ncb2_sz_t size, ncb2_sz_t head) +{ + struct ncbuf2 buf; + ncb2_sz_t bitmap_sz; + + bitmap_sz = (size + 8) / 9; + + buf.area = area; + buf.bitmap = area + size - bitmap_sz; + buf.size = size - bitmap_sz; + buf.head = head; + + memset(area, 0, size); + + return buf; +} + +ncb2_sz_t ncb2_total_data(const struct ncbuf2 *buf) +{ + /* TODO */ + return 0; +} + +int ncb2_is_empty(const struct ncbuf2 *buf) +{ + /* TODO */ + return 0; +} + +int ncb2_is_full(const struct ncbuf2 *buf) +{ + /* TODO */ + return 0; +} + +int ncb2_is_fragmented(const struct ncbuf2 *buf) +{ + /* TODO */ + return 0; +} + +ncb2_sz_t ncb2_data(const struct ncbuf2 *buf, ncb2_sz_t off) +{ + /* TODO */ + return 0; +} + +enum ncb_ret ncb2_add(struct ncbuf2 *buf, ncb2_sz_t off, + const char *data, ncb2_sz_t len, enum ncb_add_mode mode) +{ + /* TODO */ + return NCB_RET_OK; +} + +enum ncb_ret ncb2_advance(struct ncbuf2 *buf, ncb2_sz_t adv) +{ + /* TODO */ + return NCB_RET_OK; +} -- 2.47.3