100 for (bptr = btable; bptr->speed; bptr++)
101 if (bptr->speed == speed)
104 fprintf(stderr,
"Cannot match selected speed %d\n", speed);
112 printf(
"using %s...\n", dev);
117#define seteuid(a) setresuid(-1, a, -1)
126#if defined(__APPLE__) && defined(__MACH__)
131 options |= O_NONBLOCK;
134 if ((fd = open(dev, options, 0)) < 0) {
139 perror(
"seteuid back");
143 printf(
"open done\n");
145 ioctl(fd, TIOCEXCL, (
char *) 0);
147 fprintf(stderr,
"WARNING: opened %s non-exclusive!\n", dev);
150 memset(&ti, 0,
sizeof(
struct termios));
151 ti.c_cflag = CS8 | HUPCL | CLOCAL | CREAD;
152#if defined(sun) || defined(linux) || defined(__sgi) || \
153 (defined(__APPLE__) && defined(__MACH__)) || \
154 defined(__NetBSD__) || defined(__FreeBSD__)
155 ti.c_cflag |= CRTSCTS;
156 ti.c_iflag = IGNBRK | IGNPAR;
160 cfsetispeed(&ti, baud);
161 cfsetospeed(&ti, baud);
163 if (tcsetattr(fd, TCSADRAIN, &ti) < 0)
164 perror(
"tcsetattr TCSADRAIN");
167 bzero(&tx,
sizeof(
struct termiox));
168 tx.x_hflag = RTSXOFF | CTSXON;
169 if (ioctl(fd, TCSETXW, &tx) < 0)
173 ioctl(fd, TXDELCD,
"dtr");
174 ioctl(fd, TXDELCD,
"xon");
175 ioctl(fd, TXADDCD,
"rts");