CIRCT  20.0.0git
Classes | Public Member Functions | Private Attributes | List of all members
TraceHostMem Class Reference
Inheritance diagram for TraceHostMem:
Inheritance graph
[legend]
Collaboration diagram for TraceHostMem:
Collaboration graph
[legend]

Classes

struct  TraceHostMemRegion
 

Public Member Functions

 TraceHostMem (TraceAccelerator::Impl &impl)
 
virtual std::unique_ptr< HostMemRegionallocate (std::size_t size, HostMem::Options opts) const override
 Allocate a region of host memory in accelerator accessible address space. More...
 
virtual bool mapMemory (void *ptr, std::size_t size, HostMem::Options opts) const override
 Try to make a region of host memory accessible to the accelerator. More...
 
virtual void unmapMemory (void *ptr) const override
 Unmap memory which was previously mapped with 'mapMemory'. More...
 
- Public Member Functions inherited from esi::services::HostMem
virtual ~HostMem ()=default
 
virtual std::string getServiceSymbol () const override
 
virtual void start ()
 In cases where necessary, enable host memory services. More...
 
- Public Member Functions inherited from esi::services::Service
virtual ~Service ()=default
 
virtual ServicegetChildService (AcceleratorConnection *conn, Service::Type service, AppIDPath id={}, std::string implName={}, ServiceImplDetails details={}, HWClientDetails clients={})
 Create a "child" service of this service. More...
 
virtual ServicePortgetPort (AppIDPath id, const BundleType *type, const std::map< std::string, ChannelPort & > &, AcceleratorConnection &) const
 Get specialized port for this service to attach to the given appid path. More...
 

Private Attributes

TraceAccelerator::Implimpl
 

Additional Inherited Members

- Public Types inherited from esi::services::Service
using Type = const std::type_info &
 

Detailed Description

Definition at line 287 of file Trace.cpp.

Constructor & Destructor Documentation

◆ TraceHostMem()

TraceHostMem::TraceHostMem ( TraceAccelerator::Impl impl)
inline

Definition at line 289 of file Trace.cpp.

Member Function Documentation

◆ allocate()

virtual std::unique_ptr<HostMemRegion> TraceHostMem::allocate ( std::size_t  size,
HostMem::Options  opts 
) const
inlineoverridevirtual

Allocate a region of host memory in accelerator accessible address space.

Implements esi::services::HostMem.

Definition at line 312 of file Trace.cpp.

References esi::backends::trace::TraceAccelerator::impl, esi::services::HostMem::Options::useLargePages, and esi::services::HostMem::Options::writeable.

◆ mapMemory()

virtual bool TraceHostMem::mapMemory ( void *  ptr,
std::size_t  size,
HostMem::Options  opts 
) const
inlineoverridevirtual

Try to make a region of host memory accessible to the accelerator.

Returns 'false' on failure. It is optional for an accelerator backend to implement this, so client code needs to have a fallback for when this returns 'false'. On success, it is the client's responsibility to ensure that the memory eventually gets unmapped.

Reimplemented from esi::services::HostMem.

Definition at line 322 of file Trace.cpp.

References esi::backends::trace::TraceAccelerator::impl, esi::services::HostMem::Options::useLargePages, and esi::services::HostMem::Options::writeable.

◆ unmapMemory()

virtual void TraceHostMem::unmapMemory ( void *  ptr) const
inlineoverridevirtual

Unmap memory which was previously mapped with 'mapMemory'.

Undefined behavior when called with a pointer which was not previously mapped.

Reimplemented from esi::services::HostMem.

Definition at line 332 of file Trace.cpp.

References esi::backends::trace::TraceAccelerator::impl.

Member Data Documentation

◆ impl

TraceAccelerator::Impl& TraceHostMem::impl
private

Definition at line 338 of file Trace.cpp.


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