serial.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef serial_h
00031 #define serial_h
00032
00033 extern long serial_recv_timeout;
00034
00039 union filedescriptor
00040 {
00041 int ifd;
00042 void *pfd;
00043 struct
00044 {
00045 void *handle;
00046 int ep;
00047 } usb;
00048 };
00049
00056 struct serial_device
00057 {
00058 void (*open)(char * port, long baud, union filedescriptor *fd);
00059 int (*setspeed)(union filedescriptor *fd, long baud);
00060 void (*close)(union filedescriptor *fd);
00061
00062 int (*send)(union filedescriptor *fd, unsigned char * buf, size_t buflen);
00063 int (*recv)(union filedescriptor *fd, unsigned char * buf, size_t buflen);
00064 int (*drain)(union filedescriptor *fd, int display);
00065 void (*poll)(void);
00066
00067 int flags;
00068 #define SERDEV_FL_NONE 0x0000
00069 #define SERDEV_FL_CANSETSPEED 0x0001
00070 };
00071
00072 extern struct serial_device *serdev;
00073 extern struct serial_device serial_serdev;
00074 extern struct serial_device usb_serdev;
00075 extern struct serial_device usb_serdev_frame;
00076 extern struct serial_device avrdoper_serdev;
00077
00078 #define serial_open (serdev->open)
00079 #define serial_setspeed (serdev->setspeed)
00080 #define serial_close (serdev->close)
00081 #define serial_send (serdev->send)
00082 #define serial_recv (serdev->recv)
00083 #define serial_drain (serdev->drain)
00084 #define serial_poll (serdev->poll)
00085
00086 #endif