opnsense-src/sys/dev/vmware/vmci/vmci_queue_pair.h
Mark Peek 63a938566d Add VMCI (Virtual Machine Communication Interface) driver
In a virtual machine, VMCI is exposed as a regular PCI device. The primary
communication mechanisms supported are a point-to-point bidirectional
transport based on a pair of memory-mapped queues, and asynchronous
notifications in the form of datagrams and doorbells. These features are
available to kernel level components such as vSockets through the VMCI
kernel API. In addition to this, the VMCI kernel API provides support for
receiving events related to the state of the VMCI communication channels,
and the virtual machine itself.

Submitted by: Vishnu Dasa <vdasa@vmware.com>
Reviewed by: bcr, imp
Obtained from: VMware
Differential Revision: https://reviews.freebsd.org/D14289
2018-03-25 00:57:00 +00:00

28 lines
813 B
C

/*-
* Copyright (c) 2018 VMware, Inc. All Rights Reserved.
*
* SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
*
* $FreeBSD$
*/
/* VMCI QueuePair API definition. */
#ifndef _VMCI_QUEUE_PAIR_H_
#define _VMCI_QUEUE_PAIR_H_
#include "vmci_kernel_if.h"
#include "vmci_queue.h"
int vmci_qp_guest_endpoints_init(void);
void vmci_qp_guest_endpoints_exit(void);
void vmci_qp_guest_endpoints_sync(void);
void vmci_qp_guest_endpoints_convert(bool to_local, bool device_reset);
int vmci_queue_pair_alloc(struct vmci_handle *handle,
struct vmci_queue **produce_q, uint64_t produce_size,
struct vmci_queue **consume_q, uint64_t consume_size,
vmci_id peer, uint32_t flags, vmci_privilege_flags priv_flags);
int vmci_queue_pair_detach(struct vmci_handle handle);
#endif /* !_VMCI_QUEUE_PAIR_H_ */