gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
BaseBufferArg Class Reference

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

#include <syscall_emul_buf.hh>

Inheritance diagram for BaseBufferArg:
BufferArg 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 (SETranslatingPortProxy &memproxy)
 copy data into simulator space (read from target memory) More...
 
bool copyOut (SETranslatingPortProxy &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 56 of file syscall_emul_buf.hh.

Constructor & Destructor Documentation

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

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

Definition at line 64 of file syscall_emul_buf.hh.

References bufPtr, and size.

BaseBufferArg::~BaseBufferArg ( )
inline

Definition at line 73 of file syscall_emul_buf.hh.

References bufPtr.

Member Function Documentation

bool BaseBufferArg::copyIn ( SETranslatingPortProxy memproxy)
inline

copy data into simulator space (read from target memory)

Definition at line 78 of file syscall_emul_buf.hh.

References addr, bufPtr, SETranslatingPortProxy::readBlob(), and size.

Referenced by execveFunc(), futexFunc(), osf_setsysinfoFunc(), pwrite64Func(), sys_setsysinfoFunc(), sysctlFunc(), utimesFunc(), and writeFunc().

bool BaseBufferArg::copyOut ( SETranslatingPortProxy memproxy)
inline

Member Data Documentation

const Addr BaseBufferArg::addr
protected

address of buffer in target address space

Definition at line 94 of file syscall_emul_buf.hh.

Referenced by copyIn(), and copyOut().

uint8_t* const BaseBufferArg::bufPtr
protected
const int BaseBufferArg::size
protected

buffer size

Definition at line 95 of file syscall_emul_buf.hh.

Referenced by BaseBufferArg(), copyIn(), and copyOut().


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

Generated on Fri Jun 9 2017 13:04:02 for gem5 by doxygen 1.8.6