|
CIRCT 24.0.0git
|
RAII memory region for host memory in accelerator-accessible address space. More...
#include <Services.h>

Public Member Functions | |
| virtual | ~HostMemRegion ()=default |
| virtual void * | getPtr () const =0 |
| Get a pointer to the host memory. | |
| virtual void * | getDevicePtr () const |
| Sometimes the pointer the device sees is different from the pointer the host sees. | |
| operator void * () const | |
| virtual std::size_t | getSize () const =0 |
| std::optional< uint64_t > | getDeviceAddress (const void *ptr, std::size_t size) const |
| Device address of the host range [ptr, ptr + size) if that range lies entirely inside this region; std::nullopt otherwise (including when size == 0 or the range would overflow the host or device address space). | |
| virtual void | flush () |
| Flush the memory region to ensure that the device sees the latest contents. | |
RAII memory region for host memory in accelerator-accessible address space.
Automatically frees the memory when deconstructed. Allocated via HostMem::allocate() and also available as HostMem::HostMemRegion. Defined at namespace scope so that Common.h can forward declare it.
Definition at line 237 of file Services.h.
|
virtualdefault |
|
inlinevirtual |
Flush the memory region to ensure that the device sees the latest contents.
Because some platforms require it before DMA transactions, it is recommended to call this before any DMA on all platforms. On platforms which don't require it, it is a cheap no-op virtual method call.
Definition at line 256 of file Services.h.
Referenced by hostmemReadBandwidthTest(), hostmemReadTest(), hostmemWriteBandwidthTest(), and hostmemWriteTest().
| std::optional< uint64_t > HostMemRegion::getDeviceAddress | ( | const void * | ptr, |
| std::size_t | size ) const |
Device address of the host range [ptr, ptr + size) if that range lies entirely inside this region; std::nullopt otherwise (including when size == 0 or the range would overflow the host or device address space).
Definition at line 187 of file Services.cpp.
References getDevicePtr(), getPtr(), and getSize().
|
inlinevirtual |
Sometimes the pointer the device sees is different from the pointer the host sees.
Call this function to get the device pointer.
Definition at line 243 of file Services.h.
References getPtr().
Referenced by getDeviceAddress(), hostmemReadBandwidthTest(), hostmemReadTest(), hostmemWriteBandwidthTest(), and hostmemWriteTest().
|
pure virtual |
Get a pointer to the host memory.
Implemented in TraceHostMem::TraceHostMemRegion.
Referenced by getDeviceAddress(), getDevicePtr(), hostmemReadBandwidthTest(), hostmemReadTest(), hostmemWriteBandwidthTest(), hostmemWriteTest(), NB_MODULE(), and operator void *().
|
pure virtual |
Implemented in TraceHostMem::TraceHostMemRegion.
Referenced by getDeviceAddress(), hostmemWriteBandwidthTest(), and NB_MODULE().
|
inline |
Definition at line 244 of file Services.h.
References getPtr().