cgroup_util.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #include <stdlib.h>
  3. #define PAGE_SIZE 4096
  4. #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
  5. #define MB(x) (x << 20)
  6. /*
  7. * Checks if two given values differ by less than err% of their sum.
  8. */
  9. static inline int values_close(long a, long b, int err)
  10. {
  11. return abs(a - b) <= (a + b) / 100 * err;
  12. }
  13. extern int cg_find_unified_root(char *root, size_t len);
  14. extern char *cg_name(const char *root, const char *name);
  15. extern char *cg_name_indexed(const char *root, const char *name, int index);
  16. extern int cg_create(const char *cgroup);
  17. extern int cg_destroy(const char *cgroup);
  18. extern int cg_read(const char *cgroup, const char *control,
  19. char *buf, size_t len);
  20. extern int cg_read_strcmp(const char *cgroup, const char *control,
  21. const char *expected);
  22. extern int cg_read_strstr(const char *cgroup, const char *control,
  23. const char *needle);
  24. extern long cg_read_long(const char *cgroup, const char *control);
  25. long cg_read_key_long(const char *cgroup, const char *control, const char *key);
  26. extern int cg_write(const char *cgroup, const char *control, char *buf);
  27. extern int cg_run(const char *cgroup,
  28. int (*fn)(const char *cgroup, void *arg),
  29. void *arg);
  30. extern int cg_enter_current(const char *cgroup);
  31. extern int cg_run_nowait(const char *cgroup,
  32. int (*fn)(const char *cgroup, void *arg),
  33. void *arg);
  34. extern int get_temp_fd(void);
  35. extern int alloc_pagecache(int fd, size_t size);
  36. extern int alloc_anon(const char *cgroup, void *arg);
  37. extern int is_swap_enabled(void);
  38. extern int set_oom_adj_score(int pid, int score);