1*b55cc81fSJean-Sébastien Pédron /*
2*b55cc81fSJean-Sébastien Pédron * SPDX-License-Identifier: BSD-2-Clause
3*b55cc81fSJean-Sébastien Pédron *
4*b55cc81fSJean-Sébastien Pédron * Copyright (c) 2026 The FreeBSD Foundation
5*b55cc81fSJean-Sébastien Pédron */
6*b55cc81fSJean-Sébastien Pédron
7*b55cc81fSJean-Sébastien Pédron #ifndef _LINUXKPI_LINUX_CGROUP_DMEM_H_
8*b55cc81fSJean-Sébastien Pédron #define _LINUXKPI_LINUX_CGROUP_DMEM_H_
9*b55cc81fSJean-Sébastien Pédron
10*b55cc81fSJean-Sébastien Pédron #include <linux/types.h>
11*b55cc81fSJean-Sébastien Pédron #include <linux/llist.h>
12*b55cc81fSJean-Sébastien Pédron
13*b55cc81fSJean-Sébastien Pédron struct dmem_cgroup_pool_state;
14*b55cc81fSJean-Sébastien Pédron struct dmem_cgroup_region;
15*b55cc81fSJean-Sébastien Pédron
16*b55cc81fSJean-Sébastien Pédron static inline __printf(2,3) struct dmem_cgroup_region *
dmem_cgroup_register_region(uint64_t size,const char * name_fmt,...)17*b55cc81fSJean-Sébastien Pédron dmem_cgroup_register_region(uint64_t size, const char *name_fmt, ...)
18*b55cc81fSJean-Sébastien Pédron {
19*b55cc81fSJean-Sébastien Pédron return (NULL);
20*b55cc81fSJean-Sébastien Pédron }
21*b55cc81fSJean-Sébastien Pédron
22*b55cc81fSJean-Sébastien Pédron static inline void
dmem_cgroup_unregister_region(struct dmem_cgroup_region * region)23*b55cc81fSJean-Sébastien Pédron dmem_cgroup_unregister_region(struct dmem_cgroup_region *region)
24*b55cc81fSJean-Sébastien Pédron {
25*b55cc81fSJean-Sébastien Pédron }
26*b55cc81fSJean-Sébastien Pédron
27*b55cc81fSJean-Sébastien Pédron 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)28*b55cc81fSJean-Sébastien Pédron dmem_cgroup_try_charge(struct dmem_cgroup_region *region, u64 size,
29*b55cc81fSJean-Sébastien Pédron struct dmem_cgroup_pool_state **ret_pool,
30*b55cc81fSJean-Sébastien Pédron struct dmem_cgroup_pool_state **ret_limit_pool)
31*b55cc81fSJean-Sébastien Pédron {
32*b55cc81fSJean-Sébastien Pédron *ret_pool = NULL;
33*b55cc81fSJean-Sébastien Pédron
34*b55cc81fSJean-Sébastien Pédron if (ret_limit_pool)
35*b55cc81fSJean-Sébastien Pédron *ret_limit_pool = NULL;
36*b55cc81fSJean-Sébastien Pédron
37*b55cc81fSJean-Sébastien Pédron return (0);
38*b55cc81fSJean-Sébastien Pédron }
39*b55cc81fSJean-Sébastien Pédron
40*b55cc81fSJean-Sébastien Pédron static inline void
dmem_cgroup_uncharge(struct dmem_cgroup_pool_state * pool,uint64_t size)41*b55cc81fSJean-Sébastien Pédron dmem_cgroup_uncharge(struct dmem_cgroup_pool_state *pool, uint64_t size)
42*b55cc81fSJean-Sébastien Pédron {
43*b55cc81fSJean-Sébastien Pédron }
44*b55cc81fSJean-Sébastien Pédron
45*b55cc81fSJean-Sébastien Pédron static inline
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)46*b55cc81fSJean-Sébastien Pédron bool dmem_cgroup_state_evict_valuable(struct dmem_cgroup_pool_state *limit_pool,
47*b55cc81fSJean-Sébastien Pédron struct dmem_cgroup_pool_state *test_pool,
48*b55cc81fSJean-Sébastien Pédron bool ignore_low, bool *ret_hit_low)
49*b55cc81fSJean-Sébastien Pédron {
50*b55cc81fSJean-Sébastien Pédron return (true);
51*b55cc81fSJean-Sébastien Pédron }
52*b55cc81fSJean-Sébastien Pédron
53*b55cc81fSJean-Sébastien Pédron static inline void
dmem_cgroup_pool_state_put(struct dmem_cgroup_pool_state * pool)54*b55cc81fSJean-Sébastien Pédron dmem_cgroup_pool_state_put(struct dmem_cgroup_pool_state *pool)
55*b55cc81fSJean-Sébastien Pédron {
56*b55cc81fSJean-Sébastien Pédron }
57*b55cc81fSJean-Sébastien Pédron
58*b55cc81fSJean-Sébastien Pédron #endif /* _LINUXKPI_LINUX_CGROUP_DMEM_H_ */
59