xref: /freebsd/sys/dev/vmware/vmci/vmci_queue_pair.h (revision 63a938566d524836885917d95bd491aa4400b181)
1*63a93856SMark Peek /*-
2*63a93856SMark Peek  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
3*63a93856SMark Peek  *
4*63a93856SMark Peek  * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
5*63a93856SMark Peek  *
6*63a93856SMark Peek  * $FreeBSD$
7*63a93856SMark Peek  */
8*63a93856SMark Peek 
9*63a93856SMark Peek /* VMCI QueuePair API definition. */
10*63a93856SMark Peek 
11*63a93856SMark Peek #ifndef _VMCI_QUEUE_PAIR_H_
12*63a93856SMark Peek #define _VMCI_QUEUE_PAIR_H_
13*63a93856SMark Peek 
14*63a93856SMark Peek #include "vmci_kernel_if.h"
15*63a93856SMark Peek #include "vmci_queue.h"
16*63a93856SMark Peek 
17*63a93856SMark Peek int	vmci_qp_guest_endpoints_init(void);
18*63a93856SMark Peek void	vmci_qp_guest_endpoints_exit(void);
19*63a93856SMark Peek void	vmci_qp_guest_endpoints_sync(void);
20*63a93856SMark Peek void	vmci_qp_guest_endpoints_convert(bool to_local, bool device_reset);
21*63a93856SMark Peek 
22*63a93856SMark Peek int	vmci_queue_pair_alloc(struct vmci_handle *handle,
23*63a93856SMark Peek 	    struct vmci_queue **produce_q, uint64_t produce_size,
24*63a93856SMark Peek 	    struct vmci_queue **consume_q, uint64_t consume_size,
25*63a93856SMark Peek 	    vmci_id peer, uint32_t flags, vmci_privilege_flags priv_flags);
26*63a93856SMark Peek int	vmci_queue_pair_detach(struct vmci_handle handle);
27*63a93856SMark Peek 
28*63a93856SMark Peek #endif /* !_VMCI_QUEUE_PAIR_H_ */
29