0001
0002
0003
0004
0005
0006 #ifndef _CGROUP_RDMA_H
0007 #define _CGROUP_RDMA_H
0008
0009 #include <linux/cgroup.h>
0010
0011 enum rdmacg_resource_type {
0012 RDMACG_RESOURCE_HCA_HANDLE,
0013 RDMACG_RESOURCE_HCA_OBJECT,
0014 RDMACG_RESOURCE_MAX,
0015 };
0016
0017 #ifdef CONFIG_CGROUP_RDMA
0018
0019 struct rdma_cgroup {
0020 struct cgroup_subsys_state css;
0021
0022
0023
0024
0025
0026 struct list_head rpools;
0027 };
0028
0029 struct rdmacg_device {
0030 struct list_head dev_node;
0031 struct list_head rpools;
0032 char *name;
0033 };
0034
0035
0036
0037
0038
0039 void rdmacg_register_device(struct rdmacg_device *device);
0040 void rdmacg_unregister_device(struct rdmacg_device *device);
0041
0042
0043 int rdmacg_try_charge(struct rdma_cgroup **rdmacg,
0044 struct rdmacg_device *device,
0045 enum rdmacg_resource_type index);
0046 void rdmacg_uncharge(struct rdma_cgroup *cg,
0047 struct rdmacg_device *device,
0048 enum rdmacg_resource_type index);
0049 #endif
0050 #endif