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
 
IdeDisk * selected () const
 
IdeController * controller () 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

IdeController * ctrl
 
IdeDisk * device0 = 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...
 
IdeDisk * device1 = 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