#ifndef KFIFO_H #define KFIFO_H 1 #include "plat_types.h" #if defined(__cplusplus) extern "C" { #endif struct kfifo { unsigned char *buffer; /* the buffer holding the data */ unsigned int size; /* the size of the allocated buffer */ unsigned int in; /* data is added at offset (in % size) */ unsigned int out; /* data is extracted from off. (out % size) */ }; void kfifo_init(struct kfifo *k, unsigned char *buff, unsigned int len); unsigned int kfifo_put(struct kfifo *k, unsigned char *buff, unsigned int len); unsigned int kfifo_get(struct kfifo *k, unsigned char *buff, unsigned int len); unsigned int kfifo_peek(struct kfifo *k, unsigned int len_want, unsigned char **buff1, unsigned char **buff2, unsigned int *len1, unsigned int *len2); unsigned int kfifo_peek_to_buf(struct kfifo *fifo, unsigned char *buff, unsigned int len); unsigned int kfifo_len(struct kfifo *fifo); #if defined(__cplusplus) } #endif #endif /* KFIFO_H */