4 #include <palacios/vmm_types.h>
5 #include <palacios/vmm_list.h>
6 #include <palacios/vmm_string.h>
14 struct list_head dev_list;
17 struct list_head io_hooks;
20 struct list_head mem_hooks;
29 int (*read)(ushort_t port, void * dst, uint_t length, struct vm_device * dev);
30 int (*write)(ushort_t port, void * src, uint_t length, struct vm_device * dev);
32 struct vm_device * dev;
34 // Do not touch anything below this
36 struct list_head dev_list;
37 struct list_head mgr_list;
44 struct vm_device * dev;
46 // Do not touch anything below this
47 struct list_head dev_list;
48 struct list_head mgr_list;
52 // Registration of devices
55 // The following device manager functions should only be called
56 // when the guest is stopped
59 int dev_mgr_init(struct vmm_dev_mgr *mgr);
60 int dev_mgr_deinit(struct vmm_dev_mgr * mgr);
64 int attach_device(struct guest_info *vm, struct vm_device * dev);
65 int unattach_device(struct vm_device *dev);
68 int dev_mgr_add_device(struct vmm_dev_mgr * mgr, struct vm_device * dev);
69 int dev_mgr_remove_device(struct vmm_dev_mgr * mgr, struct vm_device * dev);
74 void PrintDebugDevMgr(struct vmm_dev_mgr * mgr);
75 void PrintDebugDev(struct vm_device * dev);
76 void PrintDebugDevIO(struct vm_device * dev);
77 void PrintDebugDevMgrIO(struct vmm_dev_mgr * mgr);