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

Defined functions

findspeed defined in line 123; used 2 times
  • in line 36(2)
main defined in line 23; never used

Defined variables

devname defined in line 20; used 2 times
hostname defined in line 21; never used
rcsid defined in line 14; never used
sccsid defined in line 2; never used
slipdisc defined in line 18; used 1 times
  • in line 55
spds defined in line 68; used 1 times

Defined struct's

sg_spds defined in line 66; used 2 times
  • in line 126(2)

Defined macros

DEFAULT_BAUD defined in line 17; used 1 times
  • in line 36
Last modified: 1987-08-01
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 3448
Valid CSS Valid XHTML 1.0 Strict