brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 80edae0 Raw
51 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (C) 2016 Parav Pandit <pandit.parav@gmail.com>4 */5 6#ifndef _CGROUP_RDMA_H7#define _CGROUP_RDMA_H8 9#include <linux/cgroup.h>10 11enum rdmacg_resource_type {12	RDMACG_RESOURCE_HCA_HANDLE,13	RDMACG_RESOURCE_HCA_OBJECT,14	RDMACG_RESOURCE_MAX,15};16 17#ifdef CONFIG_CGROUP_RDMA18 19struct rdma_cgroup {20	struct cgroup_subsys_state	css;21 22	/*23	 * head to keep track of all resource pools24	 * that belongs to this cgroup.25	 */26	struct list_head		rpools;27};28 29struct rdmacg_device {30	struct list_head	dev_node;31	struct list_head	rpools;32	char			*name;33};34 35/*36 * APIs for RDMA/IB stack to publish when a device wants to37 * participate in resource accounting38 */39void rdmacg_register_device(struct rdmacg_device *device);40void rdmacg_unregister_device(struct rdmacg_device *device);41 42/* APIs for RDMA/IB stack to charge/uncharge pool specific resources */43int rdmacg_try_charge(struct rdma_cgroup **rdmacg,44		      struct rdmacg_device *device,45		      enum rdmacg_resource_type index);46void rdmacg_uncharge(struct rdma_cgroup *cg,47		     struct rdmacg_device *device,48		     enum rdmacg_resource_type index);49#endif	/* CONFIG_CGROUP_RDMA */50#endif	/* _CGROUP_RDMA_H */51