stm32f4-uart-bootloader

Simple UART bootloader for STM32F4 MCU's
git clone git://git.mdnr.space/stm32f4-uart-bootloader
Log | Files | Refs | Submodules | README | LICENSE

ring-buffer.h (696B)


      1 #ifndef __RING_BUFFER_H__
      2 #define __RING_BUFFER_H__
      3 
      4 #include <stdbool.h>
      5 #include <stdint.h>
      6 
      7 typedef struct {
      8     uint8_t *buffer;
      9     uint16_t len;
     10     uint16_t head;
     11     uint16_t tail;
     12 } RingBuffer_t;
     13 
     14 void ring_buffer_setup(RingBuffer_t *rb, uint8_t *buffer, uint16_t len);
     15 
     16 bool ring_buffer_empty(RingBuffer_t *rb);
     17 
     18 bool ring_buffer_read(RingBuffer_t *rb, uint8_t *byte);
     19 
     20 bool ring_buffer_write(RingBuffer_t *rb, const uint8_t byte);
     21 
     22 uint16_t ring_buffer_capacity(RingBuffer_t *rb);
     23 
     24 uint16_t ring_buffer_read_chunk(RingBuffer_t *rb, uint8_t *dest, uint16_t size);
     25 
     26 uint16_t ring_buffer_write_chunk(RingBuffer_t *rb, const uint8_t *src, const uint16_t size);
     27 #endif // __RING_BUFFER_H__