1: #ifndef lint
   2: static char sccsid[] = "@(#)slattach.c	4.1 (Berkeley) 2/17/86";
   3: #endif
   4: #include <stdio.h>
   5: #include <sys/param.h>
   6: #include <sgtty.h>
   7: #include <sys/socket.h>
   8: #include <netinet/in.h>
   9: #include <net/if.h>
  10: #include <netdb.h>
  11: #include <fcntl.h>
  12: 
  13: #ifndef lint
  14: static char rcsid[] = "$Header: slattach.c,v 1.1 84/10/04 12:57:12 rick Exp $";
  15: #endif
  16: 
  17: #define DEFAULT_BAUD    9600
  18: int speed;
  19: int slipdisc = SLIPDISC;
  20: 
  21: char    devname[32];
  22: char    hostname[MAXHOSTNAMELEN];
  23: 
  24: extern int errno;
  25: 
  26: main(argc, argv)
  27:     int argc;
  28:     char *argv[];
  29: {
  30:     register FILE *fp;
  31:     register int fd;
  32:     register char *dev = argv[1];
  33:     struct sgttyb sgtty;
  34:     int n;
  35: 
  36:     if (argc < 2 || argc > 3) {
  37:         fprintf(stderr, "usage: %s ttyname [baudrate]\n", argv[0]);
  38:         exit(1);
  39:     }
  40:     speed = argc == 3 ? findspeed(atoi(argv[2])) : findspeed(DEFAULT_BAUD);
  41:     if (speed == 0) {
  42:         fprintf(stderr, "unknown speed %s", argv[2]);
  43:         exit(1);
  44:     }
  45:     if (strncmp("/dev/", dev, 5)) {
  46:         sprintf(devname, "/dev/%s", dev);
  47:         dev = devname;
  48:     }
  49:     if ((fd = open(dev, O_RDWR | O_NDELAY)) < 0) {
  50:         perror(dev);
  51:         exit(1);
  52:     }
  53:     sgtty.sg_flags = RAW | ANYP;
  54:     sgtty.sg_ispeed = sgtty.sg_ospeed = speed;
  55:     if (ioctl(fd, TIOCSETP, &sgtty) < 0) {
  56:         perror("ioctl(TIOCSETP)");
  57:         exit(1);
  58:     }
  59:     if (ioctl(fd, TIOCSETD, &slipdisc) < 0) {
  60:         perror("ioctl(TIOCSETD)");
  61:         exit(1);
  62:     }
  63: 
  64:     if (fork() > 0)
  65:         exit(0);
  66:     for (;;)
  67:         sigpause(0);
  68: }
  69: 
  70: struct sg_spds {
  71:     int sp_val, sp_name;
  72: }       spds[] = {
  73: #ifdef B50
  74:     { 50, B50 },
  75: #endif
  76: #ifdef B75
  77:     { 75, B75 },
  78: #endif
  79: #ifdef B110
  80:     { 110, B110 },
  81: #endif
  82: #ifdef B150
  83:     { 150, B150 },
  84: #endif
  85: #ifdef B200
  86:     { 200, B200 },
  87: #endif
  88: #ifdef B300
  89:     { 300, B300 },
  90: #endif
  91: #ifdef B600
  92:     { 600, B600 },
  93: #endif
  94: #ifdef B1200
  95:     { 1200, B1200 },
  96: #endif
  97: #ifdef B1800
  98:     { 1800, B1800 },
  99: #endif
 100: #ifdef B2000
 101:     { 2000, B2000 },
 102: #endif
 103: #ifdef B2400
 104:     { 2400, B2400 },
 105: #endif
 106: #ifdef B3600
 107:     { 3600, B3600 },
 108: #endif
 109: #ifdef B4800
 110:     { 4800, B4800 },
 111: #endif
 112: #ifdef B7200
 113:     { 7200, B7200 },
 114: #endif
 115: #ifdef B9600
 116:     { 9600, B9600 },
 117: #endif
 118: #ifdef EXTA
 119:     { 19200, EXTA },
 120: #endif
 121: #ifdef EXTB
 122:     { 38400, EXTB },
 123: #endif
 124:     { 0, 0 }
 125: };
 126: 
 127: findspeed(speed)
 128:     register int speed;
 129: {
 130:     register struct sg_spds *sp;
 131: 
 132:     sp = spds;
 133:     while (sp->sp_val && sp->sp_val != speed)
 134:         sp++;
 135:     return (sp->sp_name);
 136: }

Defined functions

findspeed defined in line 127; used 2 times
  • in line 40(2)
main defined in line 26; never used

Defined variables

devname defined in line 21; used 2 times
hostname defined in line 22; never used
rcsid defined in line 14; never used
sccsid defined in line 2; never used
slipdisc defined in line 19; used 1 times
  • in line 59
spds defined in line 72; used 1 times
speed defined in line 18; used 6 times

Defined struct's

sg_spds defined in line 70; used 2 times
  • in line 130(2)

Defined macros

DEFAULT_BAUD defined in line 17; used 1 times
  • in line 40
Last modified: 1986-02-18
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1180
Valid CSS Valid XHTML 1.0 Strict