Add dual-license information.
[bertos.git] / drv / ser.h
index ad643e356c2443418dcf4de1e73c38e0db18d6e3..80ffb15ef3a824686d0915d1279f41cd039d5523 100755 (executable)
--- a/drv/ser.h
+++ b/drv/ser.h
@@ -1,9 +1,9 @@
 /*!
  * \file
  * <!--
- * Copyright 2000 Bernardo Innocenti <bernie@codewiz.org>
  * Copyright 2003,2004 Develer S.r.l. (http://www.develer.com/)
- * All Rights Reserved.
+ * Copyright 2000 Bernardo Innocenti <bernie@codewiz.org>
+ * This file is part of DevLib - See devlib/README for information.
  * -->
  *
  * \brief High level serial I/O API
 
 /*
  * $Log$
- * Revision 1.1  2004/05/23 18:10:11  bernie
- * Import drv/ modules.
- *
- * Revision 1.2  2004/04/21 17:38:24  rasky
- * New application
- *
- * Revision 1.16  2004/04/03 18:30:49  aleph
- * Move timeout defines in config, private define in .c
- *
- * Revision 1.15  2004/03/29 17:01:02  aleph
- * Add function to set serial parity, fix it when ser_open is used
+ * Revision 1.4  2004/06/03 11:27:09  bernie
+ * Add dual-license information.
  *
- * Revision 1.14  2004/03/29 16:19:33  aleph
- * Add ser_cleanup function; Various code improvements
+ * Revision 1.3  2004/06/02 21:35:24  aleph
+ * Serial enhancements: interruptible receive handler and 8 bit serial status for AVR; remove volatile attribute to FIFOBuffer, useless for new fifobuf routens
  *
- * Revision 1.13  2004/03/24 15:22:27  aleph
- * Removed subdirs -I, fix header inclusion, move config.h in board_kf, kctrl
+ * Revision 1.2  2004/05/23 18:21:53  bernie
+ * Trim CVS logs and cleanup header info.
  *
- * Revision 1.12  2004/03/17 17:30:30  bernie
- * Add GCC format checks to printf()-like functions.
- *
- * Revision 1.11  2004/03/16 23:06:42  aleph
- * Doc fix
- *
- * Revision 1.10  2004/03/12 18:46:53  bernie
- * ser_read(): New function.
- *
- * Revision 1.9  2004/03/11 18:11:51  bernie
- * Cosmetic fixes
  */
-#ifndef SER_H
-#define SER_H
+#ifndef DRV_SER_H
+#define DRV_SER_H
 
 #include "compiler.h"
 #include <mware/fifobuf.h>
@@ -62,6 +42,8 @@
  */
 /*\{*/
 #if defined(__AVR__)
+       typedef uint8_t serstatus_t;
+
        /* Software errors */
        #define SERRF_RXFIFOOVERRUN  BV(0)  /*!< Rx FIFO buffer overrun */
        #define SERRF_RXTIMEOUT      BV(5)  /*!< Receive timeout */
@@ -72,6 +54,8 @@
        #define SERRF_FRAMEERROR     BV(4)  /*!< Stop bit missing */
        #define SERRF_PARITYERROR    BV(7)  /*!< Parity error */
 #elif defined(__m56800__)
+       typedef uint16_t serstatus_t;
+
        /* Software errors */
        #define SERRF_RXFIFOOVERRUN  BV(0)  /*!< Rx FIFO buffer overrun */
        #define SERRF_RXTIMEOUT      BV(1)  /*!< Receive timeout */
@@ -109,11 +93,11 @@ enum
        #elif defined(__AVR_ATmega103__)
        SER_UART0,
        SER_SPI,
-       
+
        #elif defined (__m56800__)
        SER_UART0,
-       SER_UART1,      
-       
+       SER_UART1,
+
        #else
                #error unknown architecture
        #endif
@@ -143,8 +127,8 @@ struct Serial
         *
         * \{
         */
-       volatile FIFOBuffer txfifo;
-       volatile FIFOBuffer     rxfifo;
+       FIFOBuffer txfifo;
+       FIFOBuffer rxfifo;
        unsigned char txbuffer[CONFIG_SER_TXBUFSIZE];
        unsigned char rxbuffer[CONFIG_SER_RXBUFSIZE];
        /* \} */
@@ -157,11 +141,10 @@ struct Serial
 #endif
 
        /*! Holds the flags defined above.  Will be 0 when no errors have occurred. */
-       REGISTER uint16_t status;
+       serstatus_t status;
        
        /*! Low-level interface to hardware. */
        struct SerialHardware* hw;
-       
 };
 
 
@@ -184,13 +167,13 @@ extern void ser_close(struct Serial *port);
        extern void ser_settimeouts(struct Serial *port, time_t rxtimeout, time_t txtimeout);
 #endif
 
-/**
- * @name Additional functions implemented as macros
+/*!
+ * \name Additional functions implemented as macros
  *
- * @{
+ * \{
  */
 #define ser_getstatus(h)    ((h)->status)
 #define ser_setstatus(h, x) ((h)->status = (x))
-/* @} */
+/* \} */
 
-#endif /* SER_H */
+#endif /* DRV_SER_H */