while (tmp_dev != __stop__v3_devices) {
- PrintDebug("Device: %s\n", tmp_dev->name);
+ V3_Print("Registering Device: %s\n", tmp_dev->name);
if (v3_htable_search(master_dev_table, (addr_t)(tmp_dev->name))) {
PrintError("Multiple instance of device (%s)\n", tmp_dev->name);
if (dev->ops->save) {
struct v3_chkpt_ctx * dev_ctx = NULL;
-
+
+ V3_Print("Saving state for device (%s)\n", dev->name);
dev_ctx = v3_chkpt_open_ctx(chkpt, dev_mgr_ctx, dev->name);
struct vmm_dev_mgr * mgr = &(vm->dev_mgr);
struct vm_device * dev = NULL;
+
+ // Check if we already registered a device of the same name
+ if (v3_htable_search(mgr->dev_table, (addr_t)name) != (addr_t)NULL) {
+ PrintError("Device with name (%s) already registered with VM\n", name);
+ return NULL;
+ }
+
dev = (struct vm_device *)V3_Malloc(sizeof(struct vm_device));
if (dev == NULL) {