1 #include <stdio.h>
2 #include <string.h>
3 #include <fcntl.h>
4 #include <errno.h>
5
smd_main(int argc,char ** argv)6 int smd_main(int argc, char **argv)
7 {
8 int fd, len, r, port = 0;
9 char devname[32];
10 argc--;
11 argv++;
12
13 if((argc > 0) && (argv[0][0] == '-')) {
14 port = atoi(argv[0] + 1);
15 argc--;
16 argv++;
17 }
18
19 sprintf(devname,"/dev/smd%d",port);
20 fd = open(devname, O_WRONLY);
21 if(fd < 0) {
22 fprintf(stderr,"failed to open smd0 - %s\n",
23 strerror(errno));
24 return -1;
25 }
26 while(argc > 0) {
27 len = strlen(argv[0]);
28 r = write(fd, argv[0], len);
29 if(r != len) {
30 fprintf(stderr,"failed to write smd0 (%d) %s\n",
31 r, strerror(errno));
32 return -1;
33 }
34 argc--;
35 argv++;
36 write(fd, argc ? " " : "\r", 1);
37 }
38 close(fd);
39 return 0;
40 }
41