#include <linux/vmw_vmci_defs.h>
#include <linux/hash.h>
#include <linux/types.h>
#include <linux/rculist.h>
#include <linux/completion.h>
#include "vmci_resource.h"
#include "vmci_driver.h"
#define VMCI_RESOURCE_HASH_BITS …
#define VMCI_RESOURCE_HASH_BUCKETS …
struct vmci_hash_table { … };
static struct vmci_hash_table vmci_resource_table = …;
static unsigned int vmci_resource_hash(struct vmci_handle handle)
{ … }
static struct vmci_resource *vmci_resource_lookup(struct vmci_handle handle,
enum vmci_resource_type type)
{ … }
static u32 vmci_resource_find_id(u32 context_id,
enum vmci_resource_type resource_type)
{ … }
int vmci_resource_add(struct vmci_resource *resource,
enum vmci_resource_type resource_type,
struct vmci_handle handle)
{ … }
void vmci_resource_remove(struct vmci_resource *resource)
{ … }
struct vmci_resource *
vmci_resource_by_handle(struct vmci_handle resource_handle,
enum vmci_resource_type resource_type)
{ … }
struct vmci_resource *vmci_resource_get(struct vmci_resource *resource)
{ … }
static void vmci_release_resource(struct kref *kref)
{ … }
int vmci_resource_put(struct vmci_resource *resource)
{ … }
struct vmci_handle vmci_resource_handle(struct vmci_resource *resource)
{ … }