Merge tag 'trace-v5.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[linux-2.6-microblaze.git] / drivers / misc / vmw_vmci / vmci_doorbell.h
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 */