}
break;
+
+ case 0x4a: // Get Status/event
case 0x51: // read disk info
// no-op to keep the Linux CD-ROM driver happy
PrintDebug("Error: Read disk info no-op to keep the Linux CD-ROM driver happy\n");
case 0xba: // scan
case 0xbb: // set cd speed
case 0x4e: // stop play/scan
-
- case 0x4a: // ???
+
default:
PrintError("Unhandled ATAPI command %x\n", cmd);
atapi_cmd_error(dev, channel, ATAPI_SEN_ILL_REQ, ASC_INV_CMD_FIELD);
//v3_irq_restore(irq_state);
- pbar->size = ~PCI_IO_BASE(max_val) + 1;
+ V3_Print("max_val = %x\n", max_val);
+
+ pbar->size = (uint16_t)~PCI_IO_BASE(max_val) + 1;
+
+ V3_Print("IO Bar with %d (%x) ports %x->%x\n", pbar->size, pbar->size, pbar->addr, pbar->addr + pbar->size);
// setup a set of null io hooks
// This allows the guest to do passthrough IO to these ports
// While still reserving them in the IO map
void Init_V3(struct v3_os_hooks * hooks, int num_cpus) {
int i;
+ V3_Print("V3 Print statement to fix a Kitten page fault bug\n");
+
// Set global variables.
os_hooks = hooks;
struct v3_dev_net_ops * ops,
v3_cfg_tree_t * cfg,
void * priv_data);
-
+
struct list_head net_node;
v3_htable_iter_advance(ht_iter);
}
+ V3_Free(ht_iter);
+
return 0;
}