| /* |
| * VMware VMCI Driver |
| * |
| * Copyright (C) 2012 VMware, Inc. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License as published by the |
| * Free Software Foundation version 2 and no later version. |
| * |
| * This program is distributed in the hope that it will be useful, but |
| * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * for more details. |
| */ |
| |
| #ifndef VMCI_DOORBELL_H |
| #define VMCI_DOORBELL_H |
| |
| #include <linux/vmw_vmci_defs.h> |
| #include <linux/types.h> |
| |
| #include "vmci_driver.h" |
| |
| /* |
| * VMCINotifyResourceInfo: Used to create and destroy doorbells, and |
| * generate a notification for a doorbell or queue pair. |
| */ |
| struct vmci_dbell_notify_resource_info { |
| struct vmci_handle handle; |
| u16 resource; |
| u16 action; |
| s32 result; |
| }; |
| |
| /* |
| * Structure used for checkpointing the doorbell mappings. It is |
| * written to the checkpoint as is, so changing this structure will |
| * break checkpoint compatibility. |
| */ |
| struct dbell_cpt_state { |
| struct vmci_handle handle; |
| u64 bitmap_idx; |
| }; |
| |
| int vmci_dbell_host_context_notify(u32 src_cid, struct vmci_handle handle); |
| int vmci_dbell_get_priv_flags(struct vmci_handle handle, u32 *priv_flags); |
| |
| bool vmci_dbell_register_notification_bitmap(u64 bitmap_ppn); |
| void vmci_dbell_scan_notification_entries(u8 *bitmap); |
| |
| #endif /* VMCI_DOORBELL_H */ |