#define DRV_SER_H
#include <kern/kfile.h>
-#include <mware/fifobuf.h>
+#include <struct/fifobuf.h>
#include <cfg/compiler.h>
#if OS_HOSTED
/** Serial handle structure */
typedef struct Serial
{
+ /** Serial have a KFile struct implementation **/
+ KFile fd;
+
/** Physical port number */
unsigned int unit;
struct SerialHardware* hw;
} Serial;
-typedef struct KFileSerial
-{
- KFile fd;
- Serial *ser;
-} KFileSerial;
/**
* ID for serial.
#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);
/**