mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-04 07:39:07 +08:00
compiler_types.h: Attributes: Add __counted_by_ptr macro
Introduce __counted_by_ptr(), which works like __counted_by(), but for
pointer struct members.
struct foo {
int a, b, c;
char *buffer __counted_by_ptr(bytes);
short nr_bars;
struct bar *bars __counted_by_ptr(nr_bars);
size_t bytes;
};
Because "counted_by" can only be applied to pointer members in very
recent compiler versions, its application ends up needing to be distinct
from flexibe array "counted_by" annotations, hence a separate macro.
This is a reworking of Kees' previous patch [1].
Link: https://lore.kernel.org/all/20251020220118.1226740-1-kees@kernel.org/ [1]
Co-developed-by: Kees Cook <kees@kernel.org>
Signed-off-by: Bill Wendling <morbo@google.com>
Link: https://patch.msgid.link/20260116005838.2419118-1-morbo@google.com
Signed-off-by: Kees Cook <kees@kernel.org>
This commit is contained in:
committed by
Andrii Nakryiko
parent
85d9be97eb
commit
1317132162
@@ -72,6 +72,10 @@
|
|||||||
#define __counted_by_be(m)
|
#define __counted_by_be(m)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __counted_by_ptr
|
||||||
|
#define __counted_by_ptr(m)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
#define __kernel_nonstring __nonstring
|
#define __kernel_nonstring __nonstring
|
||||||
#else
|
#else
|
||||||
|
|||||||
Reference in New Issue
Block a user