From 8442c948c19383f374aba54c0843855ef78d0ea2 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 23 Jul 2025 10:45:02 +0200 Subject: [PATCH] ucode: add function for getting ring information Signed-off-by: Felix Fietkau --- lib-ucode.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib-ucode.c b/lib-ucode.c index b696401..b6e258d 100644 --- a/lib-ucode.c +++ b/lib-ucode.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include "udebug-pcap.h" @@ -253,6 +254,24 @@ uc_udebug_rbuf_get_flags(uc_vm_t *vm, size_t nargs) return ucv_int64_new(udebug_buf_flags(&rb->buf)); } +static uc_value_t * +uc_udebug_rbuf_get_info(uc_vm_t *vm, size_t nargs) +{ + struct udebug_remote_buf *rb = uc_fn_rbuf(vm); + uc_value_t *val; + + if (!rb) + return NULL; + + val = ucv_object_new(vm); + ucv_object_add(val, "ring_size", ucv_int64_new(rb->buf.hdr->ring_size)); + ucv_object_add(val, "data_size", ucv_int64_new(rb->buf.hdr->data_size)); + ucv_object_add(val, "format", ucv_int64_new(rb->buf.hdr->format)); + ucv_object_add(val, "sub_format", ucv_int64_new(rb->buf.hdr->sub_format)); + + return val; +} + static uc_value_t * uc_udebug_rbuf_close(uc_vm_t *vm, size_t nargs) { @@ -661,6 +680,7 @@ static const uc_function_list_t rbuf_fns[] = { { "get_flags", uc_udebug_rbuf_get_flags }, { "set_fetch_duration", uc_udebug_rbuf_set_fetch_duration }, { "set_fetch_count", uc_udebug_rbuf_set_fetch_count }, + { "get_info", uc_udebug_rbuf_get_info }, { "close", uc_udebug_rbuf_close }, }; -- 2.30.2