gem5 [DEVELOP-FOR-25.1]
Loading...
Searching...
No Matches
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 (std::string_view 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.
IdeDisk * device1 = nullptr
IdeDisk * _selected = nullptr
 Currently selected disk.
bool selectBit = false
bool primary
bool _pendingInterrupt = false

Detailed Description

Definition at line 109 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, gem5::PciDevice::read(), select(), and selected().

◆ 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, gem5::PciDevice::read(), and selected().

◆ clearInterrupt()

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

Definition at line 132 of file ide_ctrl.cc.

References _pendingInterrupt, bmiRegs, ctrl, and isPrimary().

◆ controller()

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

Definition at line 136 of file ide_ctrl.hh.

References ctrl, and gem5::IdeController::IdeController().

◆ isPrimary()

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

Definition at line 131 of file ide_ctrl.hh.

References primary.

Referenced by clearInterrupt(), and postInterrupt().

◆ pendingInterrupt()

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

Definition at line 133 of file ide_ctrl.hh.

References _pendingInterrupt.

◆ postInterrupt()

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

Definition at line 124 of file ide_ctrl.cc.

References _pendingInterrupt, bmiRegs, ctrl, and isPrimary().

◆ select()

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

Definition at line 169 of file ide_ctrl.hh.

References _selected, device0, device1, and selectBit.

Referenced by accessCommand(), and unserialize().

◆ selected()

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

Definition at line 135 of file ide_ctrl.hh.

References _selected.

Referenced by accessBMI(), accessCommand(), and accessControl().

◆ serialize()

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

◆ setDevice0()

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

Definition at line 139 of file ide_ctrl.hh.

References device0.

◆ setDevice1()

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

Definition at line 146 of file ide_ctrl.hh.

References device1.

◆ setDmaComplete()

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

Definition at line 379 of file ide_ctrl.cc.

References bmiRegs.

◆ unserialize()

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

Member Data Documentation

◆ _pendingInterrupt

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

Definition at line 128 of file ide_ctrl.hh.

Referenced by clearInterrupt(), pendingInterrupt(), and postInterrupt().

◆ _selected

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

Currently selected disk.

Definition at line 123 of file ide_ctrl.hh.

Referenced by select(), and selected().

◆ bmiRegs

◆ ctrl

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

Definition at line 112 of file ide_ctrl.hh.

Referenced by Channel(), clearInterrupt(), 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 120 of file ide_ctrl.hh.

Referenced by select(), and setDevice0().

◆ device1

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

Definition at line 120 of file ide_ctrl.hh.

Referenced by select(), and setDevice1().

◆ primary

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

Definition at line 126 of file ide_ctrl.hh.

Referenced by Channel(), and isPrimary().

◆ selectBit

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

Definition at line 125 of file ide_ctrl.hh.

Referenced by select(), serialize(), and unserialize().


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

Generated on Mon Oct 27 2025 04:13:11 for gem5 by doxygen 1.14.0