gem5
[DEVELOP-FOR-23.0]
|
#include <semihosting.hh>
Public Member Functions | |
File (ArmSemihosting &_parent, const char *name, const char *mode) | |
~File () | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
int64_t | open () override |
Open the the file. More... | |
int64_t | close () override |
Close the file. More... | |
bool | isTTY () const override |
Check if a file corresponds to a TTY device. More... | |
int64_t | read (uint8_t *buffer, uint64_t size) override |
Read data from file. More... | |
int64_t | write (const uint8_t *buffer, uint64_t size) override |
Write data to file. More... | |
int64_t | seek (uint64_t pos) override |
Seek to an absolute position in the file. More... | |
int64_t | flen () override |
Get the length of a file in bytes. More... | |
![]() | |
FileBase (ArmSemihosting &_parent, const char *name, const char *_mode) | |
virtual | ~FileBase () |
FileBase ()=delete | |
FileBase (FileBase &)=delete | |
const std::string & | fileName () |
![]() | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Protected Member Functions | |
int64_t | openImpl (bool unserialize) |
bool | needClose () const |
Protected Attributes | |
FILE * | file |
![]() | |
ArmSemihosting & | parent |
std::string | _name |
std::string | mode |
Additional Inherited Members | |
![]() | |
static std::unique_ptr< FileBase > | create (ArmSemihosting &parent, const std::string &fname, const char *mode) |
static std::unique_ptr< FileBase > | create (ArmSemihosting &parent, CheckpointIn &cp, const std::string &sec) |
![]() | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. More... | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. More... | |
Definition at line 386 of file semihosting.hh.
gem5::ArmSemihosting::File::File | ( | ArmSemihosting & | _parent, |
const char * | name, | ||
const char * | mode | ||
) |
Definition at line 894 of file semihosting.cc.
gem5::ArmSemihosting::File::~File | ( | ) |
Definition at line 901 of file semihosting.cc.
|
overridevirtual |
Close the file.
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 937 of file semihosting.cc.
References panic_if.
|
overridevirtual |
Get the length of a file in bytes.
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 1001 of file semihosting.cc.
References len.
|
overridevirtual |
Check if a file corresponds to a TTY device.
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 950 of file semihosting.cc.
Referenced by needClose().
|
inlineprotected |
Definition at line 405 of file semihosting.hh.
References isTTY().
|
inlineoverridevirtual |
Open the the file.
Semihosting file IO interfaces
These interfaces implement common IO functionality in the Semihosting interface.
All functions return a negative value that corresponds to a UNIX errno value when they fail and >=0 on success.
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 395 of file semihosting.hh.
References openImpl().
|
protected |
Definition at line 908 of file semihosting.cc.
References gem5::Named::_name, gem5::ArmISA::mode, panic_if, and warn.
Referenced by open().
|
overridevirtual |
Read data from file.
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 958 of file semihosting.cc.
References panic_if.
|
overridevirtual |
Seek to an absolute position in the file.
pos | Byte offset from start of file. |
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 989 of file semihosting.cc.
References panic_if.
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 1023 of file semihosting.cc.
References panic_if, gem5::ArmSemihosting::FileBase::serialize(), and SERIALIZE_SCALAR.
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 1035 of file semihosting.cc.
References gem5::Named::_name, fatal, gem5::ArmSemihosting::FileBase::unserialize(), and UNSERIALIZE_SCALAR.
|
overridevirtual |
Write data to file.
Reimplemented from gem5::ArmSemihosting::FileBase.
Definition at line 973 of file semihosting.cc.
References panic_if.
|
protected |
Definition at line 407 of file semihosting.hh.