chiark / gitweb /
proper revision ids for redactgraph too etc.
[trains.git] / parport / serial-tcflow.c
1 #include <termios.h>
2 #include <stdio.h>
3 #include <errno.h>
4 #include <string.h>
5 #include <unistd.h>
6 #include <stdlib.h>
7 #include <fcntl.h>
8 #include <sys/ioctl.h>
9
10 int main(int argc, const char *const *argv) {
11   int op, r, v=0, *vp=0, v0;
12   
13   switch (argv[1][0]) {
14   case 'N': op= TCOOFF; break;
15   case 'Y': op= TCOON;  break;
16   case 'n': op= TCIOFF; break;
17   case 'y': op= TCION;  break;
18   case 'g': op= TIOCMGET; vp=&v; break;
19   case 's': op= TIOCMSET; vp=&v; v=atoi(argv[1]+1); break;
20   case 'C': op= TIOCMBIC; vp=&v; v=atoi(argv[1]+1); break;
21   case 'S': op= TIOCMBIS; vp=&v; v=atoi(argv[1]+1); break;
22   default: abort();
23   }
24   errno= 0;
25   v0= v;
26   if (!vp) {
27     v= 0;
28     r= tcflow(3,op);
29   } else {
30     r= ioctl(3,op,vp);
31   }
32   fprintf(stderr,"v0=0x%02x r=%d v=0x%02x e=%s\n",v0,r,v,strerror(errno));
33   return 0;
34 }