1*3ba68654Swdenk #include <stdio.h> 2*3ba68654Swdenk #include <stdlib.h> 3*3ba68654Swdenk #include <string.h> 4*3ba68654Swdenk #include <unistd.h> 5*3ba68654Swdenk #include "serial.h" 6*3ba68654Swdenk #include "error.h" 7*3ba68654Swdenk #include "remote.h" 8*3ba68654Swdenk 9*3ba68654Swdenk char *serialdev = "/dev/term/b"; 10*3ba68654Swdenk speed_t speed = B230400; 11*3ba68654Swdenk int verbose = 0; 12*3ba68654Swdenk 13*3ba68654Swdenk int 14*3ba68654Swdenk main(int ac, char **av) 15*3ba68654Swdenk { 16*3ba68654Swdenk int c, sfd; 17*3ba68654Swdenk 18*3ba68654Swdenk if ((pname = strrchr(av[0], '/')) == NULL) 19*3ba68654Swdenk pname = av[0]; 20*3ba68654Swdenk else 21*3ba68654Swdenk pname++; 22*3ba68654Swdenk 23*3ba68654Swdenk while ((c = getopt(ac, av, "b:p:v")) != EOF) 24*3ba68654Swdenk switch (c) { 25*3ba68654Swdenk 26*3ba68654Swdenk case 'b': 27*3ba68654Swdenk if ((speed = cvtspeed(optarg)) == B0) 28*3ba68654Swdenk Error("can't decode baud rate specified in -b option"); 29*3ba68654Swdenk break; 30*3ba68654Swdenk 31*3ba68654Swdenk case 'p': 32*3ba68654Swdenk serialdev = optarg; 33*3ba68654Swdenk break; 34*3ba68654Swdenk 35*3ba68654Swdenk case 'v': 36*3ba68654Swdenk verbose = 1; 37*3ba68654Swdenk break; 38*3ba68654Swdenk 39*3ba68654Swdenk default: 40*3ba68654Swdenk usage: 41*3ba68654Swdenk fprintf(stderr, "Usage: %s [-b bps] [-p dev] [-v]\n", pname); 42*3ba68654Swdenk exit(1); 43*3ba68654Swdenk } 44*3ba68654Swdenk if (optind != ac) 45*3ba68654Swdenk goto usage; 46*3ba68654Swdenk 47*3ba68654Swdenk if (verbose) 48*3ba68654Swdenk fprintf(stderr, "Opening serial port and sending continue...\n"); 49*3ba68654Swdenk 50*3ba68654Swdenk if ((sfd = serialopen(serialdev, speed)) < 0) 51*3ba68654Swdenk Perror("open of serial device '%s' failed", serialdev); 52*3ba68654Swdenk 53*3ba68654Swdenk remote_desc = sfd; 54*3ba68654Swdenk remote_reset(); 55*3ba68654Swdenk remote_continue(); 56*3ba68654Swdenk 57*3ba68654Swdenk if (serialclose(sfd) < 0) 58*3ba68654Swdenk Perror("close of serial device '%s' failed", serialdev); 59*3ba68654Swdenk 60*3ba68654Swdenk if (verbose) 61*3ba68654Swdenk fprintf(stderr, "Done.\n"); 62*3ba68654Swdenk 63*3ba68654Swdenk return (0); 64*3ba68654Swdenk } 65