1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * VMware VMCI Driver |
4 | * |
5 | * Copyright (C) 2012 VMware, Inc. All rights reserved. |
6 | */ |
7 | |
8 | #ifndef VMCI_DOORBELL_H |
9 | #define VMCI_DOORBELL_H |
10 | |
11 | #include <linux/vmw_vmci_defs.h> |
12 | #include <linux/types.h> |
13 | |
14 | #include "vmci_driver.h" |
15 | |
16 | /* |
17 | * VMCINotifyResourceInfo: Used to create and destroy doorbells, and |
18 | * generate a notification for a doorbell or queue pair. |
19 | */ |
20 | struct vmci_dbell_notify_resource_info { |
21 | struct vmci_handle handle; |
22 | u16 resource; |
23 | u16 action; |
24 | s32 result; |
25 | }; |
26 | |
27 | /* |
28 | * Structure used for checkpointing the doorbell mappings. It is |
29 | * written to the checkpoint as is, so changing this structure will |
30 | * break checkpoint compatibility. |
31 | */ |
32 | struct dbell_cpt_state { |
33 | struct vmci_handle handle; |
34 | u64 bitmap_idx; |
35 | }; |
36 | |
37 | int vmci_dbell_host_context_notify(u32 src_cid, struct vmci_handle handle); |
38 | int vmci_dbell_get_priv_flags(struct vmci_handle handle, u32 *priv_flags); |
39 | |
40 | bool vmci_dbell_register_notification_bitmap(u64 bitmap_ppn); |
41 | void vmci_dbell_scan_notification_entries(u8 *bitmap); |
42 | |
43 | #endif /* VMCI_DOORBELL_H */ |
44 | |