#ifndef __KFIFO_H #define __KFIFO_H #include "stdint.h" // #include "stm32f407xx.h" // #include "main.h" // #include "base.h" #ifndef min #define min(x,y) ((x) < (y) ? x : y) #endif typedef struct _kfifo { uint8_t *buffer; /* the buffer holding the data */ uint16_t size; /* the size of the allocated buffer */ uint16_t in; /* data is added at offset (in % size) */ uint16_t out; /* data is extracted from off. (out % size) */ }kfifo_t; static inline unsigned int __kfifo_len(kfifo_t *fifo) { return fifo->in - fifo->out; } // extern kfifo_t recvfifo; // extern uint8_t USART_Receive_Buf[64]; extern void kfifo_init(kfifo_t *fifo, uint8_t *pFifoBuffer, uint16_t fifoSize); extern uint16_t __kfifo_put(kfifo_t *fifo, uint8_t *buffer, uint16_t len); extern void __kfifo_put_singlebyte(kfifo_t *fifo, uint8_t data); extern uint16_t __kfifo_get(kfifo_t *fifo, uint8_t *buffer, uint16_t len); // extern uint16_t __kfifo_put(kfifo_t *fifo, uint8_t *buffer, uint16_t len); // extern void __kfifo_put_singlebyte(kfifo_t *fifo, uint8_t data); // extern uint16_t __kfifo_get(kfifo_t *fifo, uint8_t *buffer, uint16_t len); #endif