Applied all relevant PCem commits;
Extensively cleaned up and changed the CD-ROM code; Removed CD-ROM IOCTTL (it was causing performance and stability issues); Turned a lot of things into device_t's; Added the PS/1 Model 2011 XTA and standalone XTA hard disk controllers, ported from Varcem; Numerous FDC fixes for the PS/1 Model 2121; NVR changes ported from Varcem; The PCap code no longer requires libpcap to be compiled; Numerous fixes to various SCSI controllers; Updated NukedOPL to 1.8; Fixes to OpenAL initialization and closing, should give less Audio issues now; Revorked parts of the common (S)VGA code (also based on code from QEMU); Removed the Removable SCSI hard disks (they were a never finished experiment so there was no need to keep them there); Cleaned up the SCSI hard disk and Iomega ZIP code (but more cleanups of that are coming in the future); In some occasions (IDE hard disks in multiple sector mode and SCSI hard disks) the status bar icon is no longer updated, should improve performance a bit; Redid the way the tertiary and quaternary IDE controllers are configured (and they are now device_t's); Extensively reworked the IDE code and fixed quite a few bugs; Fixes to XT MFM, AT MFM, and AT ESDI code; Some changes to XTIDE and MCA ESDI code; Some fixes to the CD-ROM image handler.
This commit is contained in:
45
src/pci.c
45
src/pci.c
@@ -12,11 +12,15 @@
|
||||
#include "mem.h"
|
||||
#include "device.h"
|
||||
#include "pci.h"
|
||||
#include "piix.h"
|
||||
#include "keyboard.h"
|
||||
#if 0
|
||||
#include "scsi/scsi.h"
|
||||
#include "cdrom/cdrom.h"
|
||||
#include "disk/hdc.h"
|
||||
#include "disk/hdc_ide.h"
|
||||
#include "disk/zip.h"
|
||||
#endif
|
||||
|
||||
|
||||
static uint64_t pci_irq_hold[16];
|
||||
@@ -52,8 +56,6 @@ int pci_burst_time, pci_nonburst_time;
|
||||
|
||||
static int trc_reg = 0;
|
||||
|
||||
PCI_RESET pci_reset_handler;
|
||||
|
||||
#ifdef ENABLE_PCI_LOG
|
||||
int pci_do_log = ENABLE_PCI_LOG;
|
||||
#endif
|
||||
@@ -636,44 +638,11 @@ static uint8_t trc_read(uint16_t port, void *priv)
|
||||
|
||||
static void trc_reset(uint8_t val)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
if (val & 2)
|
||||
{
|
||||
if (pci_reset_handler.pci_master_reset)
|
||||
{
|
||||
pci_reset_handler.pci_master_reset();
|
||||
}
|
||||
|
||||
if (pci_reset_handler.pci_set_reset)
|
||||
{
|
||||
pci_reset_handler.pci_set_reset();
|
||||
}
|
||||
|
||||
if (pci_reset_handler.super_io_reset)
|
||||
{
|
||||
pci_reset_handler.super_io_reset();
|
||||
}
|
||||
|
||||
/* ide_reset(); */
|
||||
ide_set_all_signatures();
|
||||
for (i = 0; i < CDROM_NUM; i++)
|
||||
{
|
||||
if ((cdrom_drives[i].bus_type == CDROM_BUS_ATAPI_PIO_ONLY) || (cdrom_drives[i].bus_type == CDROM_BUS_ATAPI_PIO_AND_DMA))
|
||||
{
|
||||
cdrom_reset(i);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < ZIP_NUM; i++)
|
||||
{
|
||||
if ((zip_drives[i].bus_type == ZIP_BUS_ATAPI_PIO_ONLY) || (zip_drives[i].bus_type == ZIP_BUS_ATAPI_PIO_AND_DMA))
|
||||
{
|
||||
zip_reset(i);
|
||||
}
|
||||
}
|
||||
device_reset_all_pci();
|
||||
|
||||
port_92_reset();
|
||||
keyboard_at_reset();
|
||||
|
||||
pci_reset();
|
||||
}
|
||||
@@ -732,10 +701,6 @@ void pci_init(int type)
|
||||
pci_mirqs[c].enabled = 0;
|
||||
pci_mirqs[c].irq_line = PCI_IRQ_DISABLED;
|
||||
}
|
||||
|
||||
pci_reset_handler.pci_master_reset = NULL;
|
||||
pci_reset_handler.pci_set_reset = NULL;
|
||||
pci_reset_handler.super_io_reset = NULL;
|
||||
}
|
||||
|
||||
void pci_register_slot(int card, int type, int inta, int intb, int intc, int intd)
|
||||
|
||||
Reference in New Issue
Block a user