X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fser.h;h=ef62201668d0804f90d43d0ef2feff838f40f593;hb=00bc8478ab5087769fc67e52327934370ee5e3a6;hp=239a751e9815e1385a4cee8ecaffe1a670b5f18d;hpb=d62963b4a64efe8d2917f489fefaf586a9a99126;p=bertos.git diff --git a/bertos/drv/ser.h b/bertos/drv/ser.h index 239a751e..ef622016 100644 --- a/bertos/drv/ser.h +++ b/bertos/drv/ser.h @@ -27,21 +27,27 @@ * the GNU General Public License. * * Copyright 2003,2004 Develer S.r.l. (http://www.develer.com/) - * Copyright 2000 Bernardo Innocenti + * Copyright 2000 Bernie Innocenti * * --> * - * \brief High level serial I/O API + * \brief High level serial I/O API. * * \version $Id$ - * \author Bernardo Innocenti + * \author Bernie Innocenti + * + * $WIZARD_MODULE = { + * "name" : "ser", + * "depends" : ["kfile", "timer"], + * "configuration" : "bertos/cfg/cfg_ser.h" + * } */ #ifndef DRV_SER_H #define DRV_SER_H #include -#include +#include #include #if OS_HOSTED @@ -72,7 +78,7 @@ #include CPU_HEADER(ser) #endif -#include +#include "cfg/cfg_ser.h" @@ -92,11 +98,13 @@ /** * \name LSB or MSB first data order for SPI driver. - * \{ + * + * $WIZARD_LIST = { + * "ser_order_bit" : ["SER_MSB_FIRST", "SER_LSB_FIRST"] + * } */ #define SER_MSB_FIRST 0 #define SER_LSB_FIRST 1 -/*\}*/ /** * \name Parity settings for ser_setparity(). @@ -120,6 +128,9 @@ extern const char * const serial_errors[8]; /** Serial handle structure */ typedef struct Serial { + /** Serial have a KFile struct implementation **/ + KFile fd; + /** Physical port number */ unsigned int unit; @@ -152,11 +163,6 @@ typedef struct Serial struct SerialHardware* hw; } Serial; -typedef struct KFileSerial -{ - KFile fd; - Serial *ser; -} KFileSerial; /** * ID for serial. @@ -164,26 +170,26 @@ typedef struct KFileSerial #define KFT_SERIAL MAKE_ID('S', 'E', 'R', 'L') -INLINE KFileSerial * KFILESERIAL(KFile *fd) +INLINE Serial * SERIAL_CAST(KFile *fd) { ASSERT(fd->_type == KFT_SERIAL); - return (KFileSerial *)fd; + return (Serial *)fd; } /* Function prototypes */ //extern int ser_getchar_nowait(struct Serial *port); -void ser_setbaudrate(struct KFileSerial *fd, unsigned long rate); -void ser_setparity(struct KFileSerial *fd, int parity); -void ser_settimeouts(struct KFileSerial *fd, mtime_t rxtimeout, mtime_t txtimeout); -void ser_resync(struct KFileSerial *fd, mtime_t delay); -int ser_getchar_nowait(struct KFileSerial *fd); - -void ser_purgeRx(struct KFileSerial *fd); -void ser_purgeTx(struct KFileSerial *fd); -void ser_purge(struct KFileSerial *fd); -void ser_init(struct KFileSerial *fds, unsigned int unit); -void spimaster_init(KFileSerial *fds, unsigned int unit); +void ser_setbaudrate(struct Serial *fd, unsigned long rate); +void ser_setparity(struct Serial *fd, int parity); +void ser_settimeouts(struct Serial *fd, mtime_t rxtimeout, mtime_t txtimeout); +void ser_resync(struct Serial *fd, mtime_t delay); +int ser_getchar_nowait(struct Serial *fd); + +void ser_purgeRx(struct Serial *fd); +void ser_purgeTx(struct Serial *fd); +void ser_purge(struct Serial *fd); +void ser_init(struct Serial *fds, unsigned int unit); +void spimaster_init(Serial *fds, unsigned int unit); /**