X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fstruct%2Ffifobuf.h;h=4bd205d0cf2dd16b105a213e64c036ff70d27808;hb=1997bcac9db9a289afa5ca6d4fea4b75aef329d6;hp=1d7b555ac2a8bec5e5cff853a617acd833cec892;hpb=e5174304054e26cd8f3cd1f9980871c20c07fc46;p=bertos.git diff --git a/bertos/struct/fifobuf.h b/bertos/struct/fifobuf.h index 1d7b555a..4bd205d0 100644 --- a/bertos/struct/fifobuf.h +++ b/bertos/struct/fifobuf.h @@ -28,12 +28,11 @@ * * Copyright 2003, 2004 Develer S.r.l. (http://www.develer.com/) * Copyright 2001, 2008 Bernie Innocenti - * * --> * - * \version $Id: fifobuf.h 1532 2008-08-04 07:21:26Z bernie $ - * - * \author Bernie Innocenti + * \defgroup fifobuf FIFO buffer + * \ingroup struct + * \{ * * \brief General pourpose FIFO buffer implemented with a ring buffer * @@ -64,10 +63,12 @@ * The buffer is also FULL when \c tail points to the last buffer * location and head points to the first one: * \code head == begin && tail == end \endcode + * + * \author Bernie Innocenti */ -#ifndef MWARE_FIFO_H -#define MWARE_FIFO_H +#ifndef STRUCT_FIFO_H +#define STRUCT_FIFO_H #include #include @@ -91,6 +92,19 @@ typedef struct FIFOBuffer ) +/** + * Define a static fifo buffer + */ +#define DEFINE_FIFO(_name, _ptr, _size) \ + FIFOBuffer _name = \ + { \ + .head = (_ptr), \ + .tail = (_ptr), \ + .begin = (_ptr), \ + .end = (_ptr) + (_size) - 1, \ + }; \ + STATIC_ASSERT((_size) > 1) + /** * Check whether the fifo is empty * @@ -357,5 +371,6 @@ void fifo_pushblock(FIFOBuffer *fb, unsigned char *block, size_t len) } #endif -#endif /* MWARE_FIFO_H */ +/** \} */ /* defgroup fifobuf */ +#endif /* STRUCT_FIFO_H */