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