24 CAPS_BUILD_OS_NUTTX = (1u << 0),
25 CAPS_BUILD_FILESYSTEM = (1u << 1),
26 CAPS_BUILD_IO_NOTIFY = (1u << 2),
27 CAPS_BUILD_IO_HAS_STATS = (1u << 3),
28 CAPS_BUILD_OBJECT_HASNAME = (1u << 4),
29 CAPS_BUILD_DESC_DYNAMIC = (1u << 5),
39#ifdef CONFIG_DAWN_OBJECT_HAS_NAME
40 const char *getClassNameStr()
const override
42 return "capabilities";
79 using ObjectIdHelper =
88 constexpr static size_t CAPS_HDR_SIZE = 8;
89 constexpr static uint8_t CAPS_VERSION = 2;
90 constexpr static size_t CAPS_BITMAP_WORDS = 16;
91 constexpr static size_t CAPS_TOTAL_SIZE = 512;
92 constexpr static size_t CAPS_BITMAP_BYTES = (CAPS_BITMAP_WORDS * 4);
93 constexpr static size_t CAPS_PAYLOAD_SIZE = CAPS_TOTAL_SIZE - CAPS_HDR_SIZE;
94 constexpr static size_t CAPS_IO_BITMAP_OFFSET = 0;
95 constexpr static size_t CAPS_PROG_BITMAP_OFFSET = CAPS_BITMAP_BYTES;
96 constexpr static size_t CAPS_PROTO_BITMAP_OFFSET = CAPS_BITMAP_BYTES * 2;
97 constexpr static size_t CAPS_META_OFFSET = CAPS_BITMAP_BYTES * 3;
98 constexpr static size_t CAPS_META_WORDS = (CAPS_PAYLOAD_SIZE - (CAPS_BITMAP_BYTES * 3)) / 4;
100 uint8_t payloadBuf[CAPS_PAYLOAD_SIZE];
102 int configureDesc(
const CDescObject &desc);
103 int configurePayload();
104 void buildIoBitmap();
105 void buildProgBitmap();
106 void buildProtoBitmap();
107 void buildMetaPayload();
108 void setBitmapBit(uint8_t *bitmap, uint16_t bit);
109 void setMetaWord(uint16_t index, uint32_t value);
110 size_t copyFromBlob(uint8_t *dst,
size_t offset,
size_t len)
const;