struct vm_device * allocate_device() {
struct vm_device * dev = NULL;
- VMMMalloc(struct vm_device *, dev, sizeof(struct vm_device));
+ dev = (struct vm_device*)V3_Malloc(sizeof(struct vm_device));
+
+ V3_ASSERT(dev != NULL);
dev->ops = NULL;
memset(dev->name, 0, 32);
dev->vm = NULL;
dev->private_data = NULL;
- dev->next = NULL;
- dev->prev = NULL;
- dev->io_hooks.head = NULL;
- dev->mem_hooks.head = NULL;
- dev->io_hooks.num_hooks = 0;
- dev->mem_hooks.num_hooks = 0;
+
+ INIT_LIST_HEAD(&(dev->io_hooks));
+ dev->num_io_hooks = 0;
+
+ INIT_LIST_HEAD(&(dev->mem_hooks));
+ dev->num_mem_hooks = 0;
+
+ INIT_LIST_HEAD(&(dev->irq_hooks));
+ dev->num_irq_hooks = 0;
+
return dev;
}
}
void free_device(struct vm_device * dev) {
- VMMFree(dev);
+ V3_Free(dev);
}
+