1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3 * Define struct scx_enums that stores the load-time values of enums
4 * used by the BPF program.
5 *
6 * Copyright (c) 2024 Meta Platforms, Inc. and affiliates.
7 */
8
9 #ifndef __SCX_ENUMS_H
10 #define __SCX_ENUMS_H
11
__ENUM_set(u64 * val,char * type,char * name)12 static inline void __ENUM_set(u64 *val, char *type, char *name)
13 {
14 bool res;
15
16 res = __COMPAT_read_enum(type, name, val);
17 SCX_BUG_ON(!res, "enum not found(%s)", name);
18 }
19
20 #define SCX_ENUM_SET(skel, type, name) do { \
21 __ENUM_set(&skel->rodata->__##name, #type, #name); \
22 } while (0)
23
24
25 #include "enums.autogen.h"
26
27 #endif /* __SCX_ENUMS_H */
28