#ifndef IS_VRAM_H_ #define IS_VRAM_H_ #include #define MAX_XFERS 5 typedef enum { XFER_TYPE_ROW, XFER_TYPE_COL } MEM_XFER_TYPE; typedef struct { uint8_t type; uint16_t dest; const uint8_t *source; uint8_t size; } mem_xfer_t; extern mem_xfer_t mem_xfer_queue[MAX_XFERS]; extern uint8_t mem_xfer_queue_size; /** * @brief Initialize VRAM engine */ void vram_init(void); /** * @brief Process VRAM memory transfers */ void vram_update(void); #define vram_enqueue_mem_xfer(_type, _dest, _source, _size) \ do { \ mem_xfer_t *node = &mem_xfer_queue[mem_xfer_queue_size++]; \ node->type = (_type); \ node->dest = (_dest); \ node->source = (_source); \ node->size = (_size); \ } while (0) #endif