cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vmci_resource.h (1219B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * VMware VMCI Driver
      4 *
      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_HOST
     25};
     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_ */