dioscuri.module.pci
Class PCI

java.lang.Object
  extended by dioscuri.module.AbstractModule
      extended by dioscuri.module.pci.PCI
All Implemented Interfaces:
Addressable, Module

public class PCI
extends AbstractModule
implements Addressable

An implementation of a PCI controller module.

See Also:

Metadata module ******************************************** general.type : pci general.name : Peripheral Component Interconnect general.architecture : Von Neumann general.description : Implements a standard PCI controller general.creator : Tessella Support Services, Koninklijke Bibliotheek, Nationaal Archief of the Netherlands general.version : 1.0 general.keywords : PCI, controller general.relations : motherboard general.yearOfIntroduction : general.yearOfEnding : general.ancestor : general.successor :

Notes: PCI can be defined by configuration mechanism 1 or 2. However, mechanism 2 is deprecated as of PCI version 2.1; only mechanism 1 should be used for new systems. The Intel "Saturn" and "Neptune" chipsets use configuration mechanism 2.

Bitfields for PCI configuration address port: Bit(s) Description (Table P207) 1-0 reserved (00) 7-2 configuration register number (see #0597) 10-8 function 15-11 device number 23-16 bus number 30-24 reserved (0) 31 enable configuration space mapping Configuration registers are considered DWORDs, so the number in bits 7-2 is the configuration space address shifted right two bits.


Nested Class Summary
 
Nested classes/interfaces inherited from interface dioscuri.interfaces.Module
Module.Type
 
Field Summary
 
Fields inherited from class dioscuri.module.AbstractModule
type
 
Constructor Summary
PCI(Emulator owner)
          Class constructor
 
Method Summary
 byte getIOPortByte(int portAddress)
          
 byte[] getIOPortDoubleWord(int portAddress)
          
 byte[] getIOPortWord(int portAddress)
          
 boolean reset()
          Reset all parameters of module.
 void setIOPortByte(int portAddress, byte data)
          
 void setIOPortDoubleWord(int portAddress, byte[] dataDoubleWord)
          
 void setIOPortWord(int portAddress, byte[] dataWord)
          
 
Methods inherited from class dioscuri.module.AbstractModule
getConnection, getConnections, getDebugMode, getDump, getExpectedConnections, getType, isConnected, setConnection, setDebugMode, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface dioscuri.interfaces.Module
getConnection, getConnections, getDebugMode, getDump, getExpectedConnections, getType, isConnected, setConnection, setDebugMode, start, stop
 

Constructor Detail

PCI

public PCI(Emulator owner)
Class constructor

Parameters:
owner -
Method Detail

reset

public boolean reset()
Reset all parameters of module.

Specified by:
reset in interface Module
Specified by:
reset in class AbstractModule
Returns:
true iff the AbstractModule was reset properly.
See Also:
AbstractModule

getIOPortByte

public byte getIOPortByte(int portAddress)
                   throws ModuleException

Specified by:
getIOPortByte in interface Addressable
Returns:
Throws:
ModuleException
See Also:
Addressable

setIOPortByte

public void setIOPortByte(int portAddress,
                          byte data)
                   throws ModuleException

Specified by:
setIOPortByte in interface Addressable
Throws:
ModuleException
See Also:
Addressable

getIOPortWord

public byte[] getIOPortWord(int portAddress)
                     throws ModuleException,
                            WriteOnlyPortException

Specified by:
getIOPortWord in interface Addressable
Returns:
Throws:
ModuleException
WriteOnlyPortException
See Also:
Addressable

setIOPortWord

public void setIOPortWord(int portAddress,
                          byte[] dataWord)
                   throws ModuleException

Specified by:
setIOPortWord in interface Addressable
Throws:
ModuleException
See Also:
Addressable

getIOPortDoubleWord

public byte[] getIOPortDoubleWord(int portAddress)
                           throws ModuleException,
                                  WriteOnlyPortException

Specified by:
getIOPortDoubleWord in interface Addressable
Returns:
Throws:
ModuleException
WriteOnlyPortException
See Also:
Addressable

setIOPortDoubleWord

public void setIOPortDoubleWord(int portAddress,
                                byte[] dataDoubleWord)
                         throws ModuleException

Specified by:
setIOPortDoubleWord in interface Addressable
Throws:
ModuleException
See Also:
Addressable