Add a small and generic LIBBPF_OPTS_CLEAR() helper macros which clears an opts structure and reinitializes its .sz member to place the structure size. I found this very useful when developing selftests, but it is also generic enough as a macro next to the existing LIBBPF_OPTS() which hides the .sz initialization, too. Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx> --- tools/lib/bpf/libbpf_common.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/lib/bpf/libbpf_common.h b/tools/lib/bpf/libbpf_common.h index 9a7937f339df..eb180023aa97 100644 --- a/tools/lib/bpf/libbpf_common.h +++ b/tools/lib/bpf/libbpf_common.h @@ -70,4 +70,15 @@ }; \ }) +/* Helper macro to clear a libbpf options struct + * + * Small helper macro to reset all fields and to reinitialize the common + * structure size member. + */ +#define LIBBPF_OPTS_CLEAR(NAME) \ + do { \ + memset(&NAME, 0, sizeof(NAME)); \ + NAME.sz = sizeof(NAME); \ + } while (0) + #endif /* __LIBBPF_LIBBPF_COMMON_H */ -- 2.34.1