enums.h 571 B

12345678910111213141516171819202122232425262728
  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. #ifndef __SCX_ENUMS_H
  9. #define __SCX_ENUMS_H
  10. static inline void __ENUM_set(u64 *val, char *type, char *name)
  11. {
  12. bool res;
  13. res = __COMPAT_read_enum(type, name, val);
  14. if (!res)
  15. *val = 0;
  16. }
  17. #define SCX_ENUM_SET(skel, type, name) do { \
  18. __ENUM_set(&skel->rodata->__##name, #type, #name); \
  19. } while (0)
  20. #include "enums.autogen.h"
  21. #endif /* __SCX_ENUMS_H */