- pci_ide: fixed pointer to device object if SMF = 1

- pcivga: fixed memory access flag in PCI command register
This commit is contained in:
Volker Ruppert 2004-06-09 22:05:28 +00:00
parent bf243f892a
commit c8a57ae33c
3 changed files with 12 additions and 8 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: pci_ide.cc,v 1.1 2004-06-09 20:55:58 vruppert Exp $
// $Id: pci_ide.cc,v 1.2 2004-06-09 22:05:28 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002 MandrakeSoft S.A.
@ -274,10 +274,10 @@ bx_pci_ide_c::pci_write(Bit8u address, Bit32u value, unsigned io_len)
}
if (bmide_change) {
if (BX_PIDE_THIS s.bmide_addr > 0) {
DEV_unregister_ioread_handler_range(this, read_handler,
DEV_unregister_ioread_handler_range(BX_PIDE_THIS_PTR, read_handler,
BX_PIDE_THIS s.bmide_addr,
BX_PIDE_THIS s.bmide_addr + 0x0F, 7);
DEV_unregister_iowrite_handler_range(this, write_handler,
DEV_unregister_iowrite_handler_range(BX_PIDE_THIS_PTR, write_handler,
BX_PIDE_THIS s.bmide_addr,
BX_PIDE_THIS s.bmide_addr + 0x0F, 7);
}
@ -285,10 +285,12 @@ bx_pci_ide_c::pci_write(Bit8u address, Bit32u value, unsigned io_len)
(BX_PIDE_THIS s.pci_conf[0x21] << 8);
BX_INFO(("new BM-IDE address: 0x%04x", BX_PIDE_THIS s.bmide_addr));
if (BX_PIDE_THIS s.bmide_addr > 0) {
DEV_register_ioread_handler_range(this, read_handler, BX_PIDE_THIS s.bmide_addr,
DEV_register_ioread_handler_range(BX_PIDE_THIS_PTR, read_handler,
BX_PIDE_THIS s.bmide_addr,
BX_PIDE_THIS s.bmide_addr + 0x0F,
"PIIX3 PCI IDE controller", 7);
DEV_register_iowrite_handler_range(this, write_handler, BX_PIDE_THIS s.bmide_addr,
DEV_register_iowrite_handler_range(BX_PIDE_THIS_PTR, write_handler,
BX_PIDE_THIS s.bmide_addr,
BX_PIDE_THIS s.bmide_addr + 0x0F,
"PIIX3 PCI IDE controller", 7);
}

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: pci_ide.h,v 1.1 2004-06-09 20:55:58 vruppert Exp $
// $Id: pci_ide.h,v 1.2 2004-06-09 22:05:28 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2004 MandrakeSoft S.A.
@ -28,9 +28,11 @@
#if BX_USE_PIDE_SMF
# define BX_PIDE_SMF static
# define BX_PIDE_THIS thePciIdeController->
# define BX_PIDE_THIS_PTR thePciIdeController
#else
# define BX_PIDE_SMF
# define BX_PIDE_THIS this->
# define BX_PIDE_THIS_PTR this
#endif

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: pcivga.cc,v 1.2 2003-01-23 19:31:28 vruppert Exp $
// $Id: pcivga.cc,v 1.3 2004-06-09 22:05:28 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002,2003 Mike Nordell
@ -109,7 +109,7 @@ bx_pcivga_c::reset(unsigned type)
unsigned addr;
unsigned char val;
} reset_vals[] = {
{ 0x04, 0x01 }, { 0x05, 0x00 }, // command_io
{ 0x04, 0x03 }, { 0x05, 0x00 }, // command_io + command_mem
{ 0x06, 0x00 }, { 0x07, 0x02 } // status_devsel_medium
};
for (unsigned i = 0; i < sizeof(reset_vals) / sizeof(*reset_vals); ++i) {