summaryrefslogtreecommitdiff
path: root/misc/cuecat/patches/patch-ab
diff options
context:
space:
mode:
Diffstat (limited to 'misc/cuecat/patches/patch-ab')
-rw-r--r--misc/cuecat/patches/patch-ab161
1 files changed, 161 insertions, 0 deletions
diff --git a/misc/cuecat/patches/patch-ab b/misc/cuecat/patches/patch-ab
new file mode 100644
index 00000000000..7fd7bc6c13b
--- /dev/null
+++ b/misc/cuecat/patches/patch-ab
@@ -0,0 +1,161 @@
+$NetBSD: patch-ab,v 1.1.1.1 2001/02/13 13:55:42 wiz Exp $
+
+--- read_cuecat.c.orig Wed Sep 20 22:13:46 2000
++++ read_cuecat.c
+@@ -4,8 +4,8 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
+-#include <linux/kd.h>
+-#include <linux/serial.h>
++#include <sys/time.h>
++#include <dev/wscons/wsconsio.h>
+ #include <sys/ioctl.h>
+ #include "cuecat_lib.h"
+ #include "cuecat_at2xt.h"
+@@ -24,8 +24,6 @@
+ int previous_kbd_mode;
+ struct termios old_term_settings;
+ struct termios new_term_settings;
+-struct serial_struct old_serinfo;
+-struct serial_struct new_serinfo;
+ char serial_dev_filename[FILENAME_MAX]=DEFAULT_SERIAL_DEV_FILE;
+ char serial;
+ char help;
+@@ -55,6 +53,7 @@
+ char barcode_type[CUECAT_BARCODE_TYPE_LEN+1];
+ char barcode[256];
+ int user_abort=0;
++ int ioctl_arg;
+
+ /* Parse the command line parameters */
+ if((invalid_parameter=parse_cmdline(argc,argv)))
+@@ -83,7 +82,7 @@
+ }
+
+ /* Get a console or serial port descriptor */
+- fd=getfd();
++ fd=0;
+
+ /* Did the user want to use a serial pod ? */
+ if(!serial)
+@@ -92,9 +91,9 @@
+ printf("Press ESC to end the program ...\n\n");
+
+ /* Get the current state of the keyboard */
+- if (ioctl(fd, KDGKBMODE, &previous_kbd_mode))
++ if (ioctl(fd, WSKBDIO_GETMODE, &previous_kbd_mode))
+ {
+- perror("KDGKBMODE");
++ perror("WSKBDIO_GETMODE");
+ close(fd);
+ exit(1);
+ }
+@@ -103,11 +102,9 @@
+ printf("The keyboard was in ");
+ switch(previous_kbd_mode)
+ {
+- case K_RAW: printf("raw") ;break;
+- case K_XLATE: printf("xlate") ;break;
+- case K_MEDIUMRAW: printf("mediumraw");break;
+- case K_UNICODE: printf("unicode") ;break;
+- default: printf("unknown") ;break;
++ case WSKBD_TRANSLATED: printf("translated"); break;
++ case WSKBD_RAW: printf("raw"); break;
++ default: printf("unknown(%d)",previous_kbd_mode); break;
+ }
+ printf(" state.\n\n");
+
+@@ -139,9 +136,10 @@
+ close(fd);
+ exit(1);
+ }
+- if (ioctl(fd,KDSKBMODE,K_RAW))
++ ioctl_arg = WSKBD_RAW;
++ if (ioctl(fd,WSKBDIO_SETMODE,&ioctl_arg))
+ {
+- perror("KDSKBMODE");
++ perror("WSKBDIO_SETMODE");
+ close(fd);
+ exit(1);
+ }
+@@ -151,13 +149,6 @@
+ /* Give a quick word of advise */
+ printf("Press CTRL-C to end the program ...\n\n");
+
+- /* Get the current state of the serial port */
+- if(ioctl(fd,TIOCGSERIAL,&old_serinfo))
+- {
+- perror("TIOCGSERIAL");
+- close(fd);
+- exit(1);
+- }
+ if(tcgetattr(fd,&old_term_settings)==-1)
+ {
+ perror("tcgetattr");
+@@ -165,28 +156,12 @@
+ exit(1);
+ }
+
+- new_serinfo=old_serinfo;
+ new_term_settings=old_term_settings;
+
+ /* Setup the signal handler to trap any signal that might kill us before
+ we can restore the serial port as it was before */
+ setup_signal_handlers();
+
+- /* set SPD_CUST and divisor */
+- new_serinfo.flags&=~ASYNC_SPD_MASK;
+- new_serinfo.flags|=ASYNC_SPD_CUST;
+-
+- /* we measured the cuecat's baudrate to be about 8000 the closest we can
+- get to this with a basebaud of 115200 is to use a divisor of 14 */
+- new_serinfo.custom_divisor=14;
+-
+- if (ioctl(fd,TIOCSSERIAL,&new_serinfo))
+- {
+- perror("TIOCSSERIAL");
+- close(fd);
+- exit(1);
+- }
+-
+ cfmakeraw(&new_term_settings);
+ cfsetospeed(&new_term_settings, B38400);
+
+@@ -268,9 +243,9 @@
+ /* Restore the keyboard and console as they where when we started */
+ void restore_console()
+ {
+- if(ioctl(fd,KDSKBMODE,previous_kbd_mode))
++ if(ioctl(fd,WSKBDIO_SETMODE,&previous_kbd_mode))
+ {
+- perror("KDSKBMODE");
++ perror("WSKBDIO_SETMODE");
+ close(fd);
+ exit(1);
+ }
+@@ -288,12 +263,6 @@
+ /* Restore the keyboard and console as they where when we started */
+ void restore_serial_port()
+ {
+- if(ioctl(fd,TIOCSSERIAL,&old_serinfo)==-1)
+- {
+- perror("TIOCSSERIAL");
+- close(fd);
+- exit(1);
+- }
+ close(fd);
+ }
+
+@@ -361,8 +330,11 @@
+ char arg;
+
+ arg=0;
++ return 1;
++#if 0
+ return(ioctl(fd,KDGKBTYPE,&arg)==0
+ && ((arg==KB_101) || (arg==KB_84)));
++#endif
+ }
+
+