6#include "dawn/prog/common.hxx"
8#include "dawn/debug.hxx"
9#include "dawn/io/common.hxx"
10#ifdef CONFIG_DAWN_IO_VIRT
11# include "dawn/io/virt.hxx"
24int CProgCommon::prepareWritableTarget(
CIOCommon *io,
size_t dim,
bool notify)
33 DAWNERR(
"target 0x%" PRIx32
" is not writable\n", io->
getIdV());
42#ifdef CONFIG_DAWN_IO_VIRT
45 return reinterpret_cast<CIOVirt *
>(io)->initialize(dim, 1, notify);
50 DAWNERR(
"virt target 0x%" PRIx32
" dimension mismatch: expected %zu got %zu\n",
59 DAWNERR(
"virt target 0x%" PRIx32
" notify mismatch: expected %d got %d\n",
70 DAWNERR(
"virtIO target 0x%" PRIx32
" requires CONFIG_DAWN_IO_VIRT\n", io->
getIdV());
Base object with bindable object map support.
Descriptor wrapper for individual object configuration.
SObjectId::UObjectId & getObjectId() const
Get object identifier as union structure.
Base class for all I/O objects.
virtual bool isWrite() const =0
Check if IO supports write operations.
virtual bool isNotify() const =0
Check if IO supports notifications.
virtual size_t getDataDim() const =0
Get data vector dimension.
@ IO_CLASS_VIRT
Virtual I/O.
Virtual I/O type for user-provided data and callbacks.
uint16_t getCls() const
Get object class field.
SObjectId::ObjectId getIdV() const
Get object identifier as raw 32-bit value.
@ PROG_CLASS_ANY
Generic PROG type.
CProgCommon(CDescObject &desc)
Constructor.
Out-of-tree user-extension hooks for Dawn.
uint32_t cls
Object class field (bits 21-29, max 511).
struct dawn::SObjectId::UObjectId::@14 s
Bit-field structure for named member access.