16dd652faSwdenk /*
26dd652faSwdenk * (C) Copyright 2000
36dd652faSwdenk * Murray Jensen <Murray.Jensen@csiro.au>
46dd652faSwdenk *
5*1a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+
66dd652faSwdenk */
76dd652faSwdenk
83ba68654Swdenk #include <stdio.h>
93ba68654Swdenk #include <stdlib.h>
103ba68654Swdenk #include <string.h>
113ba68654Swdenk #include <unistd.h>
123ba68654Swdenk #include "serial.h"
133ba68654Swdenk #include "error.h"
143ba68654Swdenk #include "remote.h"
153ba68654Swdenk
163ba68654Swdenk char *serialdev = "/dev/term/b";
173ba68654Swdenk speed_t speed = B230400;
183ba68654Swdenk int verbose = 0;
193ba68654Swdenk
203ba68654Swdenk int
main(int ac,char ** av)213ba68654Swdenk main(int ac, char **av)
223ba68654Swdenk {
233ba68654Swdenk int c, sfd;
243ba68654Swdenk
253ba68654Swdenk if ((pname = strrchr(av[0], '/')) == NULL)
263ba68654Swdenk pname = av[0];
273ba68654Swdenk else
283ba68654Swdenk pname++;
293ba68654Swdenk
303ba68654Swdenk while ((c = getopt(ac, av, "b:p:v")) != EOF)
313ba68654Swdenk switch (c) {
323ba68654Swdenk
333ba68654Swdenk case 'b':
343ba68654Swdenk if ((speed = cvtspeed(optarg)) == B0)
353ba68654Swdenk Error("can't decode baud rate specified in -b option");
363ba68654Swdenk break;
373ba68654Swdenk
383ba68654Swdenk case 'p':
393ba68654Swdenk serialdev = optarg;
403ba68654Swdenk break;
413ba68654Swdenk
423ba68654Swdenk case 'v':
433ba68654Swdenk verbose = 1;
443ba68654Swdenk break;
453ba68654Swdenk
463ba68654Swdenk default:
473ba68654Swdenk usage:
483ba68654Swdenk fprintf(stderr, "Usage: %s [-b bps] [-p dev] [-v]\n", pname);
493ba68654Swdenk exit(1);
503ba68654Swdenk }
513ba68654Swdenk if (optind != ac)
523ba68654Swdenk goto usage;
533ba68654Swdenk
543ba68654Swdenk if (verbose)
553ba68654Swdenk fprintf(stderr, "Opening serial port and sending continue...\n");
563ba68654Swdenk
573ba68654Swdenk if ((sfd = serialopen(serialdev, speed)) < 0)
583ba68654Swdenk Perror("open of serial device '%s' failed", serialdev);
593ba68654Swdenk
603ba68654Swdenk remote_desc = sfd;
613ba68654Swdenk remote_reset();
623ba68654Swdenk remote_continue();
633ba68654Swdenk
643ba68654Swdenk if (serialclose(sfd) < 0)
653ba68654Swdenk Perror("close of serial device '%s' failed", serialdev);
663ba68654Swdenk
673ba68654Swdenk if (verbose)
683ba68654Swdenk fprintf(stderr, "Done.\n");
693ba68654Swdenk
703ba68654Swdenk return (0);
713ba68654Swdenk }
72