1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #ifndef ESPLINK_H
- #define ESPLINK_H 1
- #include <stdlib.h>
- #include <stdbool.h>
- #include <inttypes.h>
- #define ESPLINK_HDR_ADDR ((const uint32_t *)0x40000000)
- struct esplink_ringbuf_desc {
- struct esplink_ringbuf {
- void *start;
- size_t size;
- } dstr, ustr;
- };
- struct esplink_ptrs_ustr {
- size_t head;
- size_t tail;
- };
- struct esplink_ptrs_dstr {
- size_t tail;
- size_t head;
- };
- #define ESPLINK_HEAD_MAGIC 0x3648dec4
- struct esplink_head {
- volatile uint32_t magic;
- uint32_t hlen;
- struct {
- union {
- uint32_t cfg;
- struct {
- uint8_t fixes;
- uint8_t minor;
- uint8_t major;
- uint8_t fpga;
- };
- };
- } board;
- const char *signature;
- uint32_t signature_len;
- struct esplink_ringbuf_head {
- uint32_t count;
- struct esplink_ringbuf_desc *desc;
- struct esplink_ptrs_dstr *dstr;
- struct esplink_ptrs_ustr *ustr;
- } rb;
- };
- #define EL_DIRQ_UNDERRUN 0
- #define EL_DIRQ_HELLO 1
- #define EL_DIRQ_RINGBUF 2
- #define EL_UIRQ_WREN 0
- #define EL_UIRQ_READY 1
- #define EL_UIRQ_RINGBUF 2
- enum esplink_ringbuf_user {
- EL_RB_CONFIG,
- EL_RB_COUNT
- };
- #endif
|