6#include "dawn/io/descriptor.hxx"
10int CIODescriptor::configureDesc(
const CDescObject &desc)
16 for (i = 0; i < desc.
getSize(); i++)
30 DAWNERR(
"unsupported descriptor cfg 0x08%" PRIx32
"\n", item->
cfgid.
v);
39CIODescriptor::~CIODescriptor()
62 DAWNERR(
"Failed to get descriptor data\n");
115 DAWNERR(
"Failed to refresh descriptor data\n");
132 if (offset >= regDesc.
len)
137 avail = regDesc.
len - offset;
140 std::memcpy(data.
getDataPtr(0),
static_cast<const uint8_t *
>(regDesc.
ptr) + offset, to_copy);
145#ifdef CONFIG_DAWN_IO_NOTIFY
Descriptor wrapper for individual object configuration.
size_t getSize() const
Get number of configuration items for this object.
SObjectCfg::SObjectCfgItem * objectCfgItemAtOffset(size_t offset) const
Get configuration item at specified offset.
Descriptor interface available for IO.
int getDescriptor(int inst, SDescriptorReg ®)
Get registered descriptor data for an instance.
static CDevDescriptor * getInst()
Get singleton instance.
int writeSlotData(int inst, const void *data, size_t offset, size_t len)
Write descriptor bytes into a RAM slot.
virtual int getFd() const
Get file descriptor for notifications.
int getCmnDevno() const
Get device number for this I/O.
size_t cfgCmnOffset(const SObjectCfg::SObjectCfgItem *cfg)
Get offset of configuration item in descriptor.
@ IO_CLASS_ANY
Any I/O class.
int deinit()
De-initialize object.
int setDataImpl(IODataCmn &data)
Set data implementation (override in derived classes).
size_t getDataSize() const
Get data size in bytes.
int getDataImpl(IODataCmn &data, size_t len)
Get data implementation (override in derived classes).
int configure()
Configure object from descriptor data.
int setDataAtImpl(IODataCmn &data, size_t offset)
Set data at byte offset (override in seekable IOs).
int getDataAtImpl(IODataCmn &data, size_t len, size_t offset)
Get data at byte offset (override in seekable IOs).
size_t getDataDim() const
Get data vector dimension.
CDescObject & getDesc()
Get descriptor object for this object.
Out-of-tree user-extension hooks for Dawn.
size_t len
Descriptor length in bytes.
void * ptr
Pointer to descriptor data.
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 size_t getDataSize()=0
Get data size in bytes.
Single configuration item within object.
UObjectCfgId cfgid
Configuration ID header (type, class, id, size, rw, dtype).
ObjectCfgId v
Raw 32-bit ConfigID value (for storage, comparison).
uint32_t cls
Object class (bits 21-29, max 511).
struct dawn::SObjectCfg::UObjectCfgId::@10 s
Bit-field structure for named member access.