1 /* 2 * VMware VMCI Driver 3 * 4 * Copyright (C) 2012 VMware, Inc. All rights reserved. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the 8 * Free Software Foundation version 2 and no later version. 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13 * for more details. 14 */ 15 16 #ifndef _VMCI_DRIVER_H_ 17 #define _VMCI_DRIVER_H_ 18 19 #include <linux/vmw_vmci_defs.h> 20 #include <linux/wait.h> 21 22 #include "vmci_queue_pair.h" 23 #include "vmci_context.h" 24 25 enum vmci_obj_type { 26 VMCIOBJ_VMX_VM = 10, 27 VMCIOBJ_CONTEXT, 28 VMCIOBJ_SOCKET, 29 VMCIOBJ_NOT_SET, 30 }; 31 32 /* For storing VMCI structures in file handles. */ 33 struct vmci_obj { 34 void *ptr; 35 enum vmci_obj_type type; 36 }; 37 38 u32 vmci_get_context_id(void); 39 int vmci_send_datagram(struct vmci_datagram *dg); 40 41 int vmci_host_init(void); 42 void vmci_host_exit(void); 43 bool vmci_host_code_active(void); 44 45 int vmci_guest_init(void); 46 void vmci_guest_exit(void); 47 bool vmci_guest_code_active(void); 48 u32 vmci_get_vm_context_id(void); 49 50 #endif /* _VMCI_DRIVER_H_ */ 51