X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=mware%2Ffifobuf.h;h=d1885a400a0431fd9119888a9b0763c0066d4dcb;hb=5081f04ec09616b5cbac4ec3b51167583b59cc20;hp=12de29495cf64fc9bbafc8eb0ba14cfeb366c664;hpb=22240d0455c6bd837fe928b29068e795be3febae;p=bertos.git diff --git a/mware/fifobuf.h b/mware/fifobuf.h index 12de2949..d1885a40 100755 --- a/mware/fifobuf.h +++ b/mware/fifobuf.h @@ -41,36 +41,45 @@ * \code head == begin && tail == end \endcode */ -/* - * $Log$ - * Revision 1.12 2004/08/02 20:20:29 aleph - * Merge from project_ks - * - * Revision 1.11 2004/07/30 14:15:53 rasky - * Nuovo supporto unificato per detect della CPU - * - * Revision 1.10 2004/07/29 22:57:09 bernie - * Doxygen fix. - * - * Revision 1.9 2004/07/20 23:54:27 bernie - * fifo_flush_locked(): New function; - * Revamp documentation. - * - * Revision 1.8 2004/07/20 23:47:39 bernie - * Finally remove redundant protos. - * - * Revision 1.7 2004/07/20 23:46:29 bernie - * Finally remove redundant protos. - * - * Revision 1.6 2004/06/06 17:18:04 bernie - * Remove redundant declaration of fifo_isempty_locked(). - * - * Revision 1.5 2004/06/06 16:50:35 bernie - * Import fixes for race conditions from project_ks. - * - * Revision 1.4 2004/06/06 16:11:17 bernie - * Protect MetroWerks specific pragmas with #ifdef's - */ +/*#* + *#* $Log$ + *#* Revision 1.15 2004/08/29 22:05:16 bernie + *#* Rename BITS_PER_PTR to CPU_BITS_PER_PTR. + *#* + *#* Revision 1.14 2004/08/25 14:12:09 rasky + *#* Aggiornato il comment block dei log RCS + *#* + *#* Revision 1.13 2004/08/24 13:16:11 bernie + *#* Add type-size definitions for preprocessor. + *#* + *#* Revision 1.12 2004/08/02 20:20:29 aleph + *#* Merge from project_ks + *#* + *#* Revision 1.11 2004/07/30 14:15:53 rasky + *#* Nuovo supporto unificato per detect della CPU + *#* + *#* Revision 1.10 2004/07/29 22:57:09 bernie + *#* Doxygen fix. + *#* + *#* Revision 1.9 2004/07/20 23:54:27 bernie + *#* fifo_flush_locked(): New function; + *#* Revamp documentation. + *#* + *#* Revision 1.8 2004/07/20 23:47:39 bernie + *#* Finally remove redundant protos. + *#* + *#* Revision 1.7 2004/07/20 23:46:29 bernie + *#* Finally remove redundant protos. + *#* + *#* Revision 1.6 2004/06/06 17:18:04 bernie + *#* Remove redundant declaration of fifo_isempty_locked(). + *#* + *#* Revision 1.5 2004/06/06 16:50:35 bernie + *#* Import fixes for race conditions from project_ks. + *#* + *#* Revision 1.4 2004/06/06 16:11:17 bernie + *#* Protect MetroWerks specific pragmas with #ifdef's + *#*/ #ifndef MWARE_FIFO_H #define MWARE_FIFO_H @@ -190,14 +199,17 @@ INLINE void fifo_flush(FIFOBuffer *fb) } -#if !CPU_AVR +#if CPU_REG_BITS >= CPU_BITS_PER_PTR - /* No tricks needed on 16/32bit CPUs */ -# define fifo_isempty_locked(fb) fifo_isempty((fb)) -# define fifo_push_locked(fb, c) fifo_push((fb), (c)) -# define fifo_flush_locked(fb) fifo_flush((fb)) + /* + * 16/32bit CPUs that can update a pointer with a single write + * operation, no need to disable interrupts. + */ + #define fifo_isempty_locked(fb) fifo_isempty((fb)) + #define fifo_push_locked(fb, c) fifo_push((fb), (c)) + #define fifo_flush_locked(fb) fifo_flush((fb)) -#else /* !CPU_AVR */ +#else /* CPU_REG_BITS < CPU_BITS_PER_PTR */ /*! * Similar to fifo_isempty(), but with stronger guarantees for @@ -219,6 +231,7 @@ INLINE void fifo_flush(FIFOBuffer *fb) return result; } + /*! * Similar to fifo_push(), but with stronger guarantees for * concurrent access between user and interrupt code. @@ -235,6 +248,7 @@ INLINE void fifo_flush(FIFOBuffer *fb) ENABLE_IRQRESTORE(flags); } + /*! * Similar to fifo_flush(), but with stronger guarantees for * concurrent access between user and interrupt code. @@ -251,7 +265,7 @@ INLINE void fifo_flush(FIFOBuffer *fb) ENABLE_IRQRESTORE(flags); } -#endif /* !CPU_AVR */ +#endif /* CPU_REG_BITS < BITS_PER_PTR */ /*!