xref: /freebsd-src/sys/dev/vmware/vmci/vmci_kernel_api_2.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 /* Kernel API (v2) exported from the VMCI guest driver. */
863a93856SMark Peek 
963a93856SMark Peek #ifndef _VMCI_KERNEL_API_2_H_
1063a93856SMark Peek #define _VMCI_KERNEL_API_2_H_
1163a93856SMark Peek 
1263a93856SMark Peek #include "vmci_kernel_api_1.h"
1363a93856SMark Peek 
1463a93856SMark Peek /* Define version 2. */
1563a93856SMark Peek 
1663a93856SMark Peek #undef  VMCI_KERNEL_API_VERSION
1763a93856SMark Peek #define VMCI_KERNEL_API_VERSION_2	2
1863a93856SMark Peek #define VMCI_KERNEL_API_VERSION		VMCI_KERNEL_API_VERSION_2
1963a93856SMark Peek 
2063a93856SMark Peek /* VMCI Doorbell API. */
2163a93856SMark Peek #define VMCI_FLAG_DELAYED_CB		0x01
2263a93856SMark Peek 
2363a93856SMark Peek typedef void (*vmci_callback)(void *client_data);
2463a93856SMark Peek 
2563a93856SMark Peek int	vmci_doorbell_create(struct vmci_handle *handle, uint32_t flags,
2663a93856SMark Peek 	    vmci_privilege_flags priv_flags, vmci_callback notify_cb,
2763a93856SMark Peek 	    void *client_data);
2863a93856SMark Peek int	vmci_doorbell_destroy(struct vmci_handle handle);
2963a93856SMark Peek int	vmci_doorbell_notify(struct vmci_handle handle,
3063a93856SMark Peek 	    vmci_privilege_flags priv_flags);
3163a93856SMark Peek 
3263a93856SMark Peek #endif /* !_VMCI_KERNEL_API_2_H_ */
33