X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fusb_serial.h;h=0406cebfca0865bf70e631fece9c89b30a780857;hb=5aee4c8b76fe3aefc7f530de322a6b0f5faffcc1;hp=d27f7a98d92163db1c8a70ef75d341b9b14f3246;hpb=8af7d7531523e1156f699c1252c30e45bca08057;p=bertos.git diff --git a/bertos/drv/usb_serial.h b/bertos/drv/usb_serial.h index d27f7a98..0406cebf 100644 --- a/bertos/drv/usb_serial.h +++ b/bertos/drv/usb_serial.h @@ -42,9 +42,35 @@ #ifndef USB_SERIAL_H #define USB_SERIAL_H -ssize_t usb_serial_read(void *buf, ssize_t size); -ssize_t usb_serial_write(const void *buf, ssize_t size); +#include -int usb_serial_init(void); +typedef uint32_t usbser_status_t; + +typedef struct USBSerial +{ + /** KFile structure implementation **/ + KFile fd; + /** Logical port number */ + unsigned int unit; +#ifdef _DEBUG + /** Used for debugging only */ + bool is_open; +#endif + /** Holds the status flags. Set to 0 when no errors have occurred. */ + usbser_status_t status; +} USBSerial; + +/** + * ID for usb-serial. + */ +#define KFT_USB_SERIAL MAKE_ID('U', 'S', 'B', 'S') + +INLINE USBSerial *USB_SERIAL_CAST(KFile *fd) +{ + ASSERT(fd->_type == KFT_USB_SERIAL); + return (USBSerial *)fd; +} + +int usb_serial_init(struct USBSerial *fds, int unit); #endif /* USB_SERIAL_H */