6#include "dawn/io/virt.hxx"
12#ifdef CONFIG_DAWN_IO_NOTIFY
65 for (
size_t i = 0; i < len; i++)
71 get_cb(
this, get_cb_priv);
78#ifdef CONFIG_DAWN_IO_TIMESTAMP
111 set_cb(
this, set_cb_priv);
117#ifdef CONFIG_DAWN_IO_NOTIFY
144#ifdef CONFIG_DAWN_IO_NOTIFY
145 DAWNASSERT(n.
io !=
nullptr,
"nullptr pointer");
163int CIOVirt::unregNotifier(
const SIONotifier &n)
165#ifdef CONFIG_DAWN_IO_NOTIFY
166 DAWNASSERT(n.io !=
nullptr,
"nullptr pointer");
170 for (
auto it = vnote.begin(); it != vnote.end(); ++it)
172 if (it->io == n.io && it->cb == n.cb && it->priv == n.priv)
188int CIOVirt::initialize(
size_t dim,
size_t batch,
bool notify)
192 noteSupport = notify;
195 if (data ==
nullptr || !data->isAllocated())
198 DAWNERR(
"failed to allocate data\n");
207#ifdef CONFIG_DAWN_IO_NOTIFY
216int CIOVirt::setCallbackSet(CIOVirt::virtCB cb,
void *priv)
226int CIOVirt::setCallbackGet(CIOVirt::virtCB cb,
void *priv)
234int CIOVirt::getVal(
void *v,
size_t d)
241 DAWNASSERT(dlen * tlen == d,
"invalid input");
252int CIOVirt::setVal(
const void *v,
size_t d)
261 DAWNASSERT(dlen * tlen == d,
"invalid input");
267#ifdef CONFIG_DAWN_IO_TIMESTAMP
276#ifdef CONFIG_DAWN_IO_NOTIFY
virtual int getFd() const
Get file descriptor for notifications.
uint64_t getTimestamp()
Get current timestamp.
bool isTimestamp() const
Check if I/O supports timestamp.
size_t getDataSize() const
Get data size in bytes.
int regNotifier(SIONotifier n)
Register I/O notification callback.
int configure()
Configure object from descriptor data.
int setDataImpl(IODataCmn &data)
Set data implementation (override in derived classes).
int deinit()
De-initialize object.
size_t getDataDim() const
Get data vector dimension.
int getDataImpl(IODataCmn &data, size_t len)
Get data implementation (override in derived classes).
int init()
One-time initialize object after bindings are resolved.
uint8_t getDtype() const
Get data type field.
Out-of-tree user-extension hooks for Dawn.
Notifier registration structure.
CIOCommon * io
I/O object pointer.
int(* cb)(void *priv, io_ddata_t *data)
Notifier callback function type.
Base interface for I/O data buffers (static and dynamic).
virtual void * getDataPtr(size_t batch=0)=0
Get pointer to data only (skips timestamp if present).
virtual uint64_t & getTs(size_t batch=0)=0
Get timestamp reference for batch.
Heap-allocated dynamic I/O data buffer.
void * getDataPtr(size_t batch=0)
Get pointer to data only (skips timestamp if present).