123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- extern "C" {
- typedef uint32_t (*fifo_wait_fn)(void);
- typedef void (*fifo_flush_fn)(void * p_data);
- typedef struct {
- void ** pp_elements;
- uint32_t nmemb;
- fifo_wait_fn wait;
- fifo_flush_fn flush;
- volatile uint32_t read_pos;
- volatile uint32_t write_pos;
- } nrf_fifo_t;
- uint32_t nrf_fifo_init(nrf_fifo_t * p_fifo, uint32_t nmemb, fifo_wait_fn wait_fn, fifo_flush_fn flush_fn);
- void nrf_fifo_deinit(nrf_fifo_t * p_fifo);
- uint32_t nrf_fifo_enq(nrf_fifo_t * p_fifo, void * p_ctx, bool wait);
- uint32_t nrf_fifo_deq(nrf_fifo_t * p_fifo, void ** pp_ctx, bool wait);
- bool nrf_fifo_empty(nrf_fifo_t * p_fifo);
- bool nrf_fifo_full(nrf_fifo_t * p_fifo);
- }
|