/* Structure to backup the setting of the terminal. */
-static struct termios serial_termios;
+struct termios serial_termios;
/* Open the serial port and store the settings. */
-#ifdef UCLINUX
-static
-#endif /* UCLINUX */
int serial_open(__const char *__file, int __oflag) {
int __fd;
if (fd < 0)
return fd;
-#ifndef UCLINUX
/* Allow process/thread to receive SIGIO */
#if !(__unices__)
return(-1);
}
}
-#endif /* UCLINUX */
/* Initialise the port settings */
}
-#ifndef UCLINUX
-
int serial_select(int fd, struct timeval *timeout) {
fd_set readfds;
}
-#endif /* UCLINUX */
-
/* Change the speed of the serial device. */
}
#ifndef SGTTY
-#ifdef DEBUG
- fprintf(stdout,_("Serial port speed setting: tcgetattr()...\n"));
-#endif /* DEBUG */
tcgetattr(__fd, &t);
// This is not needed! We set up the speed via cfsetspeed
// t.c_cflag &= ~CBAUD;
// t.c_cflag |= speed;
#ifdef DEBUG
- fprintf(stdout,_("Serial port speed setting: cfsetspeed()...\n"));
-#endif /* DEBUG */
-#ifdef DEBUG
if (cfsetspeed(&t, speed) == -1)
fprintf(stdout,_("Serial port speed setting failed\n"));
#else
- (void)cfsetspeed(&t, speed);
+ cfsetspeed(&t, speed);
#endif
-#ifdef DEBUG
- fprintf(stdout,_("Serial port speed setting: tcsetattr()...\n"));
-#endif /* DEBUG */
- tcsetattr(__fd, TCSANOW, &t);
+ tcsetattr(__fd, TCSADRAIN, &t);
#else
ioctl(__fd, TIOCGETP, &t);
ioctl(__fd, TIOCSETN, &t);
#endif
-#ifdef DEBUG
- fprintf(stdout,_("Serial port speed setting done\n"));
-#endif /* DEBUG */
}
/* Read from serial device. */
size_t serial_read(int __fd, __ptr_t __buf, size_t __nbytes) {
- LIVE;
return (read(__fd, __buf, __nbytes));
}
size_t serial_write(int __fd, __const __ptr_t __buf, size_t __n) {
- LIVE;
return (write(__fd, __buf, __n));
}