lol its in c
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
983 B

  1. #ifndef IS_VRAM_H_
  2. #define IS_VRAM_H_
  3. #include <stdint.h>
  4. #define MAX_XFERS 5
  5. typedef enum { XFER_TYPE_ROW, XFER_TYPE_COL } MEM_XFER_TYPE;
  6. typedef struct {
  7. uint8_t type;
  8. uint16_t dest;
  9. const uint8_t *source;
  10. uint8_t size;
  11. } mem_xfer_t;
  12. extern mem_xfer_t mem_xfer_queue[MAX_XFERS];
  13. extern uint8_t mem_xfer_queue_size;
  14. /**
  15. * @brief Initialize VRAM engine
  16. */
  17. void vram_init(void);
  18. /**
  19. * @brief Process VRAM memory transfers
  20. */
  21. void vram_update(void);
  22. #define vram_enqueue_mem_xfer(_type, _dest, _source, _size) \
  23. do { \
  24. mem_xfer_t *node = &mem_xfer_queue[mem_xfer_queue_size++]; \
  25. node->type = (_type); \
  26. node->dest = (_dest); \
  27. node->source = (_source); \
  28. node->size = (_size); \
  29. } while (0)
  30. #endif