1685a6bf8SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 283e2ec76SGeorge Zhang /* 383e2ec76SGeorge Zhang * VMware VMCI Driver 483e2ec76SGeorge Zhang * 583e2ec76SGeorge Zhang * Copyright (C) 2012 VMware, Inc. All rights reserved. 683e2ec76SGeorge Zhang */ 783e2ec76SGeorge Zhang 883e2ec76SGeorge Zhang #ifndef VMCI_DOORBELL_H 983e2ec76SGeorge Zhang #define VMCI_DOORBELL_H 1083e2ec76SGeorge Zhang 1183e2ec76SGeorge Zhang #include <linux/vmw_vmci_defs.h> 1283e2ec76SGeorge Zhang #include <linux/types.h> 1383e2ec76SGeorge Zhang 1483e2ec76SGeorge Zhang #include "vmci_driver.h" 1583e2ec76SGeorge Zhang 1683e2ec76SGeorge Zhang /* 1783e2ec76SGeorge Zhang * VMCINotifyResourceInfo: Used to create and destroy doorbells, and 1883e2ec76SGeorge Zhang * generate a notification for a doorbell or queue pair. 1983e2ec76SGeorge Zhang */ 2083e2ec76SGeorge Zhang struct vmci_dbell_notify_resource_info { 2183e2ec76SGeorge Zhang struct vmci_handle handle; 2283e2ec76SGeorge Zhang u16 resource; 2383e2ec76SGeorge Zhang u16 action; 2483e2ec76SGeorge Zhang s32 result; 2583e2ec76SGeorge Zhang }; 2683e2ec76SGeorge Zhang 2783e2ec76SGeorge Zhang /* 2883e2ec76SGeorge Zhang * Structure used for checkpointing the doorbell mappings. It is 2983e2ec76SGeorge Zhang * written to the checkpoint as is, so changing this structure will 3083e2ec76SGeorge Zhang * break checkpoint compatibility. 3183e2ec76SGeorge Zhang */ 3283e2ec76SGeorge Zhang struct dbell_cpt_state { 3383e2ec76SGeorge Zhang struct vmci_handle handle; 3483e2ec76SGeorge Zhang u64 bitmap_idx; 3583e2ec76SGeorge Zhang }; 3683e2ec76SGeorge Zhang 3783e2ec76SGeorge Zhang int vmci_dbell_host_context_notify(u32 src_cid, struct vmci_handle handle); 3883e2ec76SGeorge Zhang int vmci_dbell_get_priv_flags(struct vmci_handle handle, u32 *priv_flags); 3983e2ec76SGeorge Zhang 40f2db7361SVishnu DASA bool vmci_dbell_register_notification_bitmap(u64 bitmap_ppn); 4183e2ec76SGeorge Zhang void vmci_dbell_scan_notification_entries(u8 *bitmap); 4283e2ec76SGeorge Zhang 4383e2ec76SGeorge Zhang #endif /* VMCI_DOORBELL_H */ 44