xref: /freebsd/sys/dev/vmware/vmci/vmci_queue_pair.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
163a93856SMark Peek /*-
2*3eeb7511SMark Peek  * Copyright (c) 2018 VMware, Inc.
363a93856SMark Peek  *
48c302b2eSMark Peek  * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
563a93856SMark Peek  */
663a93856SMark Peek 
763a93856SMark Peek /* VMCI QueuePair API definition. */
863a93856SMark Peek 
963a93856SMark Peek #ifndef _VMCI_QUEUE_PAIR_H_
1063a93856SMark Peek #define _VMCI_QUEUE_PAIR_H_
1163a93856SMark Peek 
1263a93856SMark Peek #include "vmci_kernel_if.h"
1363a93856SMark Peek #include "vmci_queue.h"
1463a93856SMark Peek 
1563a93856SMark Peek int	vmci_qp_guest_endpoints_init(void);
1663a93856SMark Peek void	vmci_qp_guest_endpoints_exit(void);
1763a93856SMark Peek void	vmci_qp_guest_endpoints_sync(void);
1863a93856SMark Peek void	vmci_qp_guest_endpoints_convert(bool to_local, bool device_reset);
1963a93856SMark Peek 
2063a93856SMark Peek int	vmci_queue_pair_alloc(struct vmci_handle *handle,
2163a93856SMark Peek 	    struct vmci_queue **produce_q, uint64_t produce_size,
2263a93856SMark Peek 	    struct vmci_queue **consume_q, uint64_t consume_size,
2363a93856SMark Peek 	    vmci_id peer, uint32_t flags, vmci_privilege_flags priv_flags);
2463a93856SMark Peek int	vmci_queue_pair_detach(struct vmci_handle handle);
2563a93856SMark Peek 
2663a93856SMark Peek #endif /* !_VMCI_QUEUE_PAIR_H_ */
27