1197dbaaaSGeorge Zhang /* 2197dbaaaSGeorge Zhang * VMware VMCI Driver 3197dbaaaSGeorge Zhang * 4197dbaaaSGeorge Zhang * Copyright (C) 2012 VMware, Inc. All rights reserved. 5197dbaaaSGeorge Zhang * 6197dbaaaSGeorge Zhang * This program is free software; you can redistribute it and/or modify it 7197dbaaaSGeorge Zhang * under the terms of the GNU General Public License as published by the 8197dbaaaSGeorge Zhang * Free Software Foundation version 2 and no later version. 9197dbaaaSGeorge Zhang * 10197dbaaaSGeorge Zhang * This program is distributed in the hope that it will be useful, but 11197dbaaaSGeorge Zhang * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12197dbaaaSGeorge Zhang * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13197dbaaaSGeorge Zhang * for more details. 14197dbaaaSGeorge Zhang */ 15197dbaaaSGeorge Zhang 16197dbaaaSGeorge Zhang #ifndef _VMCI_DRIVER_H_ 17197dbaaaSGeorge Zhang #define _VMCI_DRIVER_H_ 18197dbaaaSGeorge Zhang 19197dbaaaSGeorge Zhang #include <linux/vmw_vmci_defs.h> 20197dbaaaSGeorge Zhang #include <linux/wait.h> 21197dbaaaSGeorge Zhang 22197dbaaaSGeorge Zhang #include "vmci_queue_pair.h" 23197dbaaaSGeorge Zhang #include "vmci_context.h" 24197dbaaaSGeorge Zhang 25197dbaaaSGeorge Zhang enum vmci_obj_type { 26197dbaaaSGeorge Zhang VMCIOBJ_VMX_VM = 10, 27197dbaaaSGeorge Zhang VMCIOBJ_CONTEXT, 28197dbaaaSGeorge Zhang VMCIOBJ_SOCKET, 29197dbaaaSGeorge Zhang VMCIOBJ_NOT_SET, 30197dbaaaSGeorge Zhang }; 31197dbaaaSGeorge Zhang 32197dbaaaSGeorge Zhang /* For storing VMCI structures in file handles. */ 33197dbaaaSGeorge Zhang struct vmci_obj { 34197dbaaaSGeorge Zhang void *ptr; 35197dbaaaSGeorge Zhang enum vmci_obj_type type; 36197dbaaaSGeorge Zhang }; 37197dbaaaSGeorge Zhang 38197dbaaaSGeorge Zhang u32 vmci_get_context_id(void); 39197dbaaaSGeorge Zhang int vmci_send_datagram(struct vmci_datagram *dg); 40197dbaaaSGeorge Zhang 41197dbaaaSGeorge Zhang int vmci_host_init(void); 42197dbaaaSGeorge Zhang void vmci_host_exit(void); 43197dbaaaSGeorge Zhang bool vmci_host_code_active(void); 44197dbaaaSGeorge Zhang 45197dbaaaSGeorge Zhang int vmci_guest_init(void); 46197dbaaaSGeorge Zhang void vmci_guest_exit(void); 47197dbaaaSGeorge Zhang bool vmci_guest_code_active(void); 48197dbaaaSGeorge Zhang u32 vmci_get_vm_context_id(void); 49197dbaaaSGeorge Zhang 50197dbaaaSGeorge Zhang #endif /* _VMCI_DRIVER_H_ */ 51