gem5  v22.1.0.0
Public Member Functions | Protected Attributes | List of all members
gem5::BaseBufferArg Class Reference

Base class for BufferArg and TypedBufferArg, Not intended to be used directly. More...

#include <syscall_emul_buf.hh>

Inheritance diagram for gem5::BaseBufferArg:
gem5::BufferArg gem5::TypedBufferArg< T >

Public Member Functions

 BaseBufferArg (Addr _addr, int _size)
 Allocate a buffer of size 'size' representing the memory at target address 'addr'. More...
 
 ~BaseBufferArg ()
 
bool copyIn (const PortProxy &memproxy)
 copy data into simulator space (read from target memory) More...
 
bool copyOut (const PortProxy &memproxy)
 copy data out of simulator space (write to target memory) More...
 

Protected Attributes

const Addr addr
 address of buffer in target address space More...
 
const int size
 buffer size More...
 
uint8_t *const bufPtr
 pointer to buffer in simulator space More...
 

Detailed Description

Base class for BufferArg and TypedBufferArg, Not intended to be used directly.

The BufferArg classes represent buffers in target user space that are passed by reference to an (emulated) system call. Each instance provides an internal (simulator-space) buffer of the appropriate size and tracks the user-space address. The copyIn() and copyOut() methods copy the user-space buffer to and from the simulator-space buffer, respectively.

Definition at line 57 of file syscall_emul_buf.hh.

Constructor & Destructor Documentation

◆ BaseBufferArg()

gem5::BaseBufferArg::BaseBufferArg ( Addr  _addr,
int  _size 
)
inline

Allocate a buffer of size 'size' representing the memory at target address 'addr'.

Definition at line 66 of file syscall_emul_buf.hh.

References bufPtr, and size.

◆ ~BaseBufferArg()

gem5::BaseBufferArg::~BaseBufferArg ( )
inline

Definition at line 75 of file syscall_emul_buf.hh.

References bufPtr.

Member Function Documentation

◆ copyIn()

bool gem5::BaseBufferArg::copyIn ( const PortProxy memproxy)
inline

◆ copyOut()

bool gem5::BaseBufferArg::copyOut ( const PortProxy memproxy)
inline

Member Data Documentation

◆ addr

const Addr gem5::BaseBufferArg::addr
protected

address of buffer in target address space

Definition at line 98 of file syscall_emul_buf.hh.

Referenced by copyIn(), and copyOut().

◆ bufPtr

uint8_t* const gem5::BaseBufferArg::bufPtr
protected

◆ size

const int gem5::BaseBufferArg::size
protected

buffer size

Definition at line 99 of file syscall_emul_buf.hh.

Referenced by BaseBufferArg(), copyIn(), copyOut(), and gem5::GPUComputeDriver::ioctl().


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

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