X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fser.h;h=d74c2235e94c3d70d31c9a249aad508c9c279bce;hb=9d38debd0d2b2eaeeeec7f82d7c39e749ac729e5;hp=c77053e4f3f7d0a34bec3a01086c5b660f6cbaa3;hpb=21f92eace872a7e12382cff9aa6e3364f25857aa;p=bertos.git diff --git a/bertos/drv/ser.h b/bertos/drv/ser.h index c77053e4..d74c2235 100644 --- a/bertos/drv/ser.h +++ b/bertos/drv/ser.h @@ -41,7 +41,7 @@ #define DRV_SER_H #include -#include +#include #include #if OS_HOSTED @@ -120,6 +120,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 +155,6 @@ typedef struct Serial struct SerialHardware* hw; } Serial; -typedef struct SerialKFile -{ - KFile fd; - Serial *ser; -} SerialKFile; /** * ID for serial. @@ -164,26 +162,26 @@ typedef struct SerialKFile #define KFT_SERIAL MAKE_ID('S', 'E', 'R', 'L') -INLINE SerialKFile * SERIALKFILE(KFile *fd) +INLINE Serial * SERIAL_CAST(KFile *fd) { ASSERT(fd->_type == KFT_SERIAL); - return (SerialKFile *)fd; + return (Serial *)fd; } /* Function prototypes */ //extern int ser_getchar_nowait(struct Serial *port); -void ser_setbaudrate(struct SerialKFile *fd, unsigned long rate); -void ser_setparity(struct SerialKFile *fd, int parity); -void ser_settimeouts(struct SerialKFile *fd, mtime_t rxtimeout, mtime_t txtimeout); -void ser_resync(struct SerialKFile *fd, mtime_t delay); -int ser_getchar_nowait(struct SerialKFile *fd); - -void ser_purgeRx(struct SerialKFile *fd); -void ser_purgeTx(struct SerialKFile *fd); -void ser_purge(struct SerialKFile *fd); -void ser_init(struct SerialKFile *fds, unsigned int unit); -void spimaster_init(SerialKFile *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); /**