gem5  v22.1.0.0
Classes | Public Member Functions | Public Attributes | Private Attributes | List of all members
gem5::IdeController::Channel Class Reference

#include <ide_ctrl.hh>

Inheritance diagram for gem5::IdeController::Channel:
gem5::Named

Classes

struct  BMIRegs
 Registers used for bus master interface. More...
 

Public Member Functions

bool isPrimary () const
 
bool pendingInterrupt () const
 
IdeDiskselected () const
 
IdeControllercontroller () const
 
void setDevice0 (IdeDisk *disk)
 
void setDevice1 (IdeDisk *disk)
 
void select (bool select_device_1)
 
void accessCommand (Addr offset, int size, uint8_t *data, bool read)
 
void accessControl (Addr offset, int size, uint8_t *data, bool read)
 
void accessBMI (Addr offset, int size, uint8_t *data, bool read)
 
void setDmaComplete ()
 
void postInterrupt ()
 
void clearInterrupt ()
 
 Channel (std::string new_name, IdeController *new_ctrl, bool new_primary)
 
void serialize (const std::string &base, std::ostream &os) const
 
void unserialize (const std::string &base, CheckpointIn &cp)
 
- Public Member Functions inherited from gem5::Named
 Named (const std::string &name_)
 
virtual ~Named ()=default
 
virtual std::string name () const
 

Public Attributes

struct gem5::IdeController::Channel::BMIRegs bmiRegs
 

Private Attributes

IdeControllerctrl
 
IdeDiskdevice0 = nullptr
 IDE disks connected to this controller For more details about device0 and device1 see: https://en.wikipedia.org/wiki/Parallel_ATA #Multiple_devices_on_a_cable. More...
 
IdeDiskdevice1 = nullptr
 
IdeDisk_selected = nullptr
 Currently selected disk. More...
 
bool selectBit = false
 
bool primary
 
bool _pendingInterrupt = false
 

Detailed Description

Definition at line 108 of file ide_ctrl.hh.

Constructor & Destructor Documentation

◆ Channel()

gem5::IdeController::Channel::Channel ( std::string  new_name,
IdeController new_ctrl,
bool  new_primary 
)

Member Function Documentation

◆ accessBMI()

void gem5::IdeController::Channel::accessBMI ( Addr  offset,
int  size,
uint8_t *  data,
bool  read 
)

◆ accessCommand()

void gem5::IdeController::Channel::accessCommand ( Addr  offset,
int  size,
uint8_t *  data,
bool  read 
)

Definition at line 196 of file ide_ctrl.cc.

References data, gem5::ArmISA::offset, and gem5::IdeController::read().

Referenced by gem5::IdeController::dispatchAccess().

◆ accessControl()

void gem5::IdeController::Channel::accessControl ( Addr  offset,
int  size,
uint8_t *  data,
bool  read 
)

Definition at line 216 of file ide_ctrl.cc.

References data, gem5::ArmISA::offset, and gem5::IdeController::read().

Referenced by gem5::IdeController::dispatchAccess().

◆ clearInterrupt()

void gem5::IdeController::Channel::clearInterrupt ( )

Definition at line 132 of file ide_ctrl.cc.

Referenced by gem5::IdeDisk::clearInterrupt().

◆ controller()

IdeController* gem5::IdeController::Channel::controller ( ) const
inline

Definition at line 135 of file ide_ctrl.hh.

References ctrl.

Referenced by gem5::IdeDisk::setChannel().

◆ isPrimary()

bool gem5::IdeController::Channel::isPrimary ( ) const
inline

Definition at line 130 of file ide_ctrl.hh.

References primary.

Referenced by postInterrupt().

◆ pendingInterrupt()

bool gem5::IdeController::Channel::pendingInterrupt ( ) const
inline

Definition at line 132 of file ide_ctrl.hh.

References _pendingInterrupt.

◆ postInterrupt()

void gem5::IdeController::Channel::postInterrupt ( )

◆ select()

void gem5::IdeController::Channel::select ( bool  select_device_1)
inline

Definition at line 168 of file ide_ctrl.hh.

References _selected, device0, device1, and selectBit.

Referenced by gem5::IdeController::IdeController().

◆ selected()

IdeDisk* gem5::IdeController::Channel::selected ( ) const
inline

Definition at line 134 of file ide_ctrl.hh.

References _selected.

Referenced by gem5::IdeDisk::isDEVSelect().

◆ serialize()

void gem5::IdeController::Channel::serialize ( const std::string &  base,
std::ostream &  os 
) const

Definition at line 415 of file ide_ctrl.cc.

References gem5::X86ISA::base, gem5::paramOut(), and gem5::ArmISA::status.

Referenced by gem5::IdeController::serialize().

◆ setDevice0()

void gem5::IdeController::Channel::setDevice0 ( IdeDisk disk)
inline

Definition at line 138 of file ide_ctrl.hh.

References device0.

Referenced by gem5::IdeController::IdeController().

◆ setDevice1()

void gem5::IdeController::Channel::setDevice1 ( IdeDisk disk)
inline

Definition at line 145 of file ide_ctrl.hh.

References device1.

◆ setDmaComplete()

void gem5::IdeController::Channel::setDmaComplete ( )

Definition at line 379 of file ide_ctrl.cc.

Referenced by gem5::IdeDisk::updateState().

◆ unserialize()

void gem5::IdeController::Channel::unserialize ( const std::string &  base,
CheckpointIn cp 
)

Definition at line 443 of file ide_ctrl.cc.

References gem5::X86ISA::base, gem5::paramIn(), and gem5::ArmISA::status.

Referenced by gem5::IdeController::unserialize().

Member Data Documentation

◆ _pendingInterrupt

bool gem5::IdeController::Channel::_pendingInterrupt = false
private

Definition at line 127 of file ide_ctrl.hh.

Referenced by pendingInterrupt(), and postInterrupt().

◆ _selected

IdeDisk* gem5::IdeController::Channel::_selected = nullptr
private

Currently selected disk.

Definition at line 122 of file ide_ctrl.hh.

Referenced by select(), and selected().

◆ bmiRegs

struct gem5::IdeController::Channel::BMIRegs gem5::IdeController::Channel::bmiRegs

Referenced by Channel(), and postInterrupt().

◆ ctrl

IdeController* gem5::IdeController::Channel::ctrl
private

Definition at line 111 of file ide_ctrl.hh.

Referenced by controller(), and postInterrupt().

◆ device0

IdeDisk* gem5::IdeController::Channel::device0 = nullptr
private

IDE disks connected to this controller For more details about device0 and device1 see: https://en.wikipedia.org/wiki/Parallel_ATA #Multiple_devices_on_a_cable.

Definition at line 119 of file ide_ctrl.hh.

Referenced by select(), and setDevice0().

◆ device1

IdeDisk * gem5::IdeController::Channel::device1 = nullptr
private

Definition at line 119 of file ide_ctrl.hh.

Referenced by select(), and setDevice1().

◆ primary

bool gem5::IdeController::Channel::primary
private

Definition at line 125 of file ide_ctrl.hh.

Referenced by isPrimary().

◆ selectBit

bool gem5::IdeController::Channel::selectBit = false
private

Definition at line 124 of file ide_ctrl.hh.

Referenced by select().


The documentation for this class was generated from the following files:

Generated on Wed Dec 21 2022 10:23:22 for gem5 by doxygen 1.9.1