gem5 v24.0.0.0
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
 
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.
 
IdeDiskdevice1 = 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, 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 136 of file ide_ctrl.hh.

References ctrl.

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

◆ isPrimary()

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

Definition at line 131 of file ide_ctrl.hh.

References primary.

Referenced by 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 ( )

◆ 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 gem5::IdeController::IdeController().

◆ selected()

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

Definition at line 135 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 139 of file ide_ctrl.hh.

References device0.

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

◆ 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.

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 128 of file ide_ctrl.hh.

Referenced by 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

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

Referenced by Channel(), and postInterrupt().

◆ ctrl

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

Definition at line 112 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 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 isPrimary().

◆ selectBit

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

Definition at line 125 of file ide_ctrl.hh.

Referenced by select().


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

Generated on Tue Jun 18 2024 16:24:12 for gem5 by doxygen 1.11.0