parport-ctl
train-pic-prog-select
+siggen
-Wnested-externs -Wmissing-prototypes -Wstrict-prototypes \
-O2
-targets: parport-ctl train-pic-prog-select
+targets: parport-ctl train-pic-prog-select siggen
+
+train-pic-prog-select: train-pic-prog-select.o lib.o
+siggen: siggen.o lib.o
+
+train-pic-prog-select.o siggen.o lib.o: lib.h
--- /dev/null
+/**/
+
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <sys/ioctl.h>
+
+#include "lib.h"
+
+int fd;
+
+void doioctl(int ioctlnum, void *vp, unsigned long vpv) {
+ int r;
+ errno=0;
+ r= ioctl(fd, ioctlnum, vp);
+ if (r) {
+ fprintf(stderr,"ioctl #%d 0x%lx gave %d %s\n",
+ ioctlnum, vpv, r, strerror(errno));
+ exit(127);
+ }
+}
--- /dev/null
+/**/
+
+#ifndef LIB_H
+#define LIB_H
+
+void doioctl(int ioctlnum, void *vp, unsigned long vpv);
+extern int fd;
+
+#endif /*LIB_H*/
--- /dev/null
+/**/
+
+#include <assert.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <sys/ioctl.h>
+#include <linux/ppdev.h>
+
+#include "lib.h"
+
+int main(int argc, const char *const *argv) {
+ unsigned char v[2];
+ int wh=0, p;
+
+ assert(argc==3 || argc==4);
+
+ v[0]= strtoul(argv[1],0,0);
+ v[1]= strtoul(argv[2],0,0);
+ p= argv[3] ? atoi(argv[3]) : -1;
+ for (;;) {
+ doioctl(PPWCONTROL, &v[wh], v[wh]);
+ wh= !wh;
+ if (p>=0) usleep(p);
+ }
+}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/ppdev.h>
+#include "lib.h"
+
#define COLUMNS 7
#define ROWS 8
yesno lin[COLUMNS*ROWS];
} yesses;
-static int fd;
-
-static void doioctl(int ioctlnum, void *vp, unsigned long vpv) {
- int r;
- errno=0;
- r= ioctl(fd, ioctlnum, vp);
- if (r) {
- fprintf(stderr,"ioctl #%d 0x%lx gave %d %s\n",
- ioctlnum, vpv, r, strerror(errno));
- exit(127);
- }
-}
-
static void wpause(int ioctlnum, unsigned char value) {
printf(" %s%02x",
ioctlnum == PPWCONTROL ? "C" :