mirror of
https://github.com/opnsense/src.git
synced 2026-03-01 21:01:24 -05:00
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
28 lines
813 B
C
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_ */
|