Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667/* SPDX-License-Identifier: MIT *//* * Copyright © 2023-2024 Intel Corporation */
#ifndef _CGROUP_DMEM_H#define _CGROUP_DMEM_H
#include <linux/types.h>#include <linux/llist.h>
struct dmem_cgroup_pool_state;
/* Opaque definition of a cgroup region, used internally */struct dmem_cgroup_region;
#if IS_ENABLED(CONFIG_CGROUP_DMEM)struct dmem_cgroup_region *dmem_cgroup_register_region(u64 size, const char *name_fmt, ...) __printf(2,3);void dmem_cgroup_unregister_region(struct dmem_cgroup_region *region);int dmem_cgroup_try_charge(struct dmem_cgroup_region *region, u64 size, struct dmem_cgroup_pool_state **ret_pool, struct dmem_cgroup_pool_state **ret_limit_pool);void dmem_cgroup_uncharge(struct dmem_cgroup_pool_state *pool, u64 size);bool dmem_cgroup_state_evict_valuable(struct dmem_cgroup_pool_state *limit_pool, struct dmem_cgroup_pool_state *test_pool, bool ignore_low, bool *ret_hit_low);
void dmem_cgroup_pool_state_put(struct dmem_cgroup_pool_state *pool);#elsestatic inline __printf(2,3) struct dmem_cgroup_region *dmem_cgroup_register_region(u64 size, const char *name_fmt, ...){ return NULL;}
static inline void dmem_cgroup_unregister_region(struct dmem_cgroup_region *region){ }
static inline int dmem_cgroup_try_charge(struct dmem_cgroup_region *region, u64 size, struct dmem_cgroup_pool_state **ret_pool, struct dmem_cgroup_pool_state **ret_limit_pool){ *ret_pool = NULL;
if (ret_limit_pool) *ret_limit_pool = NULL;
return 0;}
static inline void dmem_cgroup_uncharge(struct dmem_cgroup_pool_state *pool, u64 size){ }
static inlinebool dmem_cgroup_state_evict_valuable(struct dmem_cgroup_pool_state *limit_pool, struct dmem_cgroup_pool_state *test_pool, bool ignore_low, bool *ret_hit_low){ return true;}
static inline void dmem_cgroup_pool_state_put(struct dmem_cgroup_pool_state *pool){ }
#endif#endif /* _CGROUP_DMEM_H */