void ioport__setup_arch(void) { /* Legacy ioport setup */ /* 0x0020 - 0x003F - 8259A PIC 1 */ ioport__register(0x0020, &dummy_read_write_ioport_ops, 2, NULL); /* PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254) */ ioport__register(0x0040, &dummy_read_write_ioport_ops, 4, NULL); /* 0x00A0 - 0x00AF - 8259A PIC 2 */ ioport__register(0x00A0, &dummy_read_write_ioport_ops, 2, NULL); /* PORT 00E0-00EF are 'motherboard specific' so we use them for our internal debugging purposes. */ ioport__register(IOPORT_DBG, &debug_ops, 1, NULL); /* PORT 00ED - DUMMY PORT FOR DELAY??? */ ioport__register(0x00ED, &dummy_write_only_ioport_ops, 1, NULL); /* 0x00F0 - 0x00FF - Math co-processor */ ioport__register(0x00F0, &dummy_write_only_ioport_ops, 2, NULL); /* PORT 03D4-03D5 - COLOR VIDEO - CRT CONTROL REGISTERS */ ioport__register(0x03D4, &dummy_read_write_ioport_ops, 1, NULL); ioport__register(0x03D5, &dummy_write_only_ioport_ops, 1, NULL); }
int pci__init(struct kvm *kvm) { int r; r = ioport__register(kvm, PCI_CONFIG_DATA + 0, &pci_config_data_ops, 4, NULL); if (r < 0) return r; r = ioport__register(kvm, PCI_CONFIG_ADDRESS + 0, &pci_config_address_ops, 4, NULL); if (r < 0) { ioport__unregister(kvm, PCI_CONFIG_DATA); return r; } return 0; }
int rtc__init(struct kvm *kvm) { int r = 0; /* PORT 0070-007F - CMOS RAM/RTC (REAL TIME CLOCK) */ r = ioport__register(kvm, 0x0070, &cmos_ram_index_ioport_ops, 1, NULL); if (r < 0) return r; r = ioport__register(kvm, 0x0071, &cmos_ram_data_ioport_ops, 1, NULL); if (r < 0) { ioport__unregister(kvm, 0x0071); return r; } return r; }
void pci__init(void) { ioport__register(PCI_CONFIG_DATA + 0, &pci_config_data_ops, 4, NULL); ioport__register(PCI_CONFIG_ADDRESS + 0, &pci_config_address_ops, 4, NULL); }
void ioport__setup_arch(struct kvm *kvm) { /* Legacy ioport setup */ /* 0000 - 001F - DMA1 controller */ ioport__register(kvm, 0x0000, &dummy_read_write_ioport_ops, 32, NULL); /* 0x0020 - 0x003F - 8259A PIC 1 */ ioport__register(kvm, 0x0020, &dummy_read_write_ioport_ops, 2, NULL); /* PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254) */ ioport__register(kvm, 0x0040, &dummy_read_write_ioport_ops, 4, NULL); /* 0092 - PS/2 system control port A */ ioport__register(kvm, 0x0092, &ps2_control_a_ops, 1, NULL); /* 0x00A0 - 0x00AF - 8259A PIC 2 */ ioport__register(kvm, 0x00A0, &dummy_read_write_ioport_ops, 2, NULL); /* 00C0 - 001F - DMA2 controller */ ioport__register(kvm, 0x00C0, &dummy_read_write_ioport_ops, 32, NULL); /* PORT 00E0-00EF are 'motherboard specific' so we use them for our internal debugging purposes. */ ioport__register(kvm, IOPORT_DBG, &debug_ops, 1, NULL); /* PORT 00ED - DUMMY PORT FOR DELAY??? */ ioport__register(kvm, 0x00ED, &dummy_write_only_ioport_ops, 1, NULL); /* 0x00F0 - 0x00FF - Math co-processor */ ioport__register(kvm, 0x00F0, &dummy_write_only_ioport_ops, 2, NULL); /* PORT 0278-027A - PARALLEL PRINTER PORT (usually LPT1, sometimes LPT2) */ ioport__register(kvm, 0x0278, &dummy_read_write_ioport_ops, 3, NULL); /* PORT 0378-037A - PARALLEL PRINTER PORT (usually LPT2, sometimes LPT3) */ ioport__register(kvm, 0x0378, &dummy_read_write_ioport_ops, 3, NULL); /* PORT 03D4-03D5 - COLOR VIDEO - CRT CONTROL REGISTERS */ ioport__register(kvm, 0x03D4, &dummy_read_write_ioport_ops, 1, NULL); ioport__register(kvm, 0x03D5, &dummy_write_only_ioport_ops, 1, NULL); ioport__register(kvm, 0x402, &seabios_debug_ops, 1, NULL); /* 0510 - QEMU BIOS configuration register */ ioport__register(kvm, 0x510, &dummy_read_write_ioport_ops, 2, NULL); }