brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 02ae185 Raw
52 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * VMware VMCI Driver4 *5 * Copyright (C) 2012 VMware, Inc. All rights reserved.6 */7 8#ifndef _VMCI_RESOURCE_H_9#define _VMCI_RESOURCE_H_10 11#include <linux/vmw_vmci_defs.h>12#include <linux/types.h>13 14#include "vmci_context.h"15 16 17enum vmci_resource_type {18	VMCI_RESOURCE_TYPE_ANY,19	VMCI_RESOURCE_TYPE_API,20	VMCI_RESOURCE_TYPE_GROUP,21	VMCI_RESOURCE_TYPE_DATAGRAM,22	VMCI_RESOURCE_TYPE_DOORBELL,23	VMCI_RESOURCE_TYPE_QPAIR_GUEST,24	VMCI_RESOURCE_TYPE_QPAIR_HOST25};26 27struct vmci_resource {28	struct vmci_handle handle;29	enum vmci_resource_type type;30	struct hlist_node node;31	struct kref kref;32	struct completion done;33};34 35 36int vmci_resource_add(struct vmci_resource *resource,37		      enum vmci_resource_type resource_type,38		      struct vmci_handle handle);39 40void vmci_resource_remove(struct vmci_resource *resource);41 42struct vmci_resource *43vmci_resource_by_handle(struct vmci_handle resource_handle,44			enum vmci_resource_type resource_type);45 46struct vmci_resource *vmci_resource_get(struct vmci_resource *resource);47int vmci_resource_put(struct vmci_resource *resource);48 49struct vmci_handle vmci_resource_handle(struct vmci_resource *resource);50 51#endif /* _VMCI_RESOURCE_H_ */52