22#ifndef RCBENCH_LINK_ARTXFER_H
23#define RCBENCH_LINK_ARTXFER_H
86 uint8_t *buf, uint32_t cap);
153 uint16_t height, uint32_t bytes, uint16_t crc,
168 uint32_t bytes, uint16_t block);
void link_artserve_meta(uint16_t *regs, uint16_t format, uint16_t width, uint16_t height, uint32_t bytes, uint16_t crc, uint32_t hash)
The LINK_AW_COUNT registers ARTWORK answers for bytes of payload, with the CRC and hash the generator...
Definition link_artxfer.c:145
bool link_artxfer_complete(const link_artxfer_t *x)
Every block placed.
Definition link_artxfer.c:130
bool link_artxfer_meta_ok(const uint16_t *meta, link_art_meta_t *out)
Whether these LINK_AW_COUNT registers can describe a drawing at all.
Definition link_artxfer.c:28
uint16_t link_artxfer_next(const link_artxfer_t *x)
Which block to ask for.
Definition link_artxfer.c:97
void link_artserve_block(uint16_t *regs, const uint8_t *payload, uint32_t bytes, uint16_t block)
The LINK_AD_COUNT registers ART_DATA answers while LINK_AD_BLOCK holds block: the block number,...
Definition link_artxfer.c:167
bool link_artxfer_take(link_artxfer_t *x, const uint16_t *data)
Place one ART_DATA window.
Definition link_artxfer.c:102
bool link_artxfer_begin(link_artxfer_t *x, const uint16_t *meta, uint8_t *buf, uint32_t cap)
Read the metadata and get ready to assemble into buf.
Definition link_artxfer.c:72
bool link_artxfer_verify(const link_artxfer_t *x)
And they are: the payload matches the CRC and the hash the IOmcu declared.
Definition link_artxfer.c:135
The page map: what the panel can ask the IOmcu for, and set.
State of one board drawing transfer.
Definition link_artxfer.h:48
uint16_t next
Definition link_artxfer.h:53
uint8_t * buf
Definition link_artxfer.h:50
uint32_t cap
Definition link_artxfer.h:51
uint32_t at
Definition link_artxfer.h:52
bool begun
Definition link_artxfer.h:54