summaryrefslogtreecommitdiffstats
path: root/graphics/svgalib/files/patch-am
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/svgalib/files/patch-am')
-rw-r--r--graphics/svgalib/files/patch-am156
1 files changed, 156 insertions, 0 deletions
diff --git a/graphics/svgalib/files/patch-am b/graphics/svgalib/files/patch-am
new file mode 100644
index 0000000..86ea29e
--- /dev/null
+++ b/graphics/svgalib/files/patch-am
@@ -0,0 +1,156 @@
+--- src/vga.c.orig Thu Jul 6 19:10:32 2000
++++ src/vga.c Fri Aug 25 06:32:01 2000
+@@ -22,10 +22,10 @@
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <sys/mman.h>
+-#include <sys/kd.h>
++#include <sys/kbio.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+-#include <sys/vt.h>
++#include <sys/consio.h>
+ #include <sys/wait.h>
+ #include <errno.h>
+ #include <ctype.h>
+@@ -37,6 +37,22 @@
+ #include "keyboard/vgakeyboard.h"
+ #include "vgaregs.h"
+
++int permfd = -1;
++int ioperm(unsigned long from, unsigned long num, int on)
++{
++ if (permfd == -1)
++ permfd = open("/dev/io", O_RDONLY);
++ if (permfd != -1)
++ return 0;
++ else
++ return 1;
++}
++
++int iopl(int level)
++{
++ return ioperm(0, 0, 0);
++}
++
+ #ifdef BACKGROUND
+ #include "vgabg.h"
+
+@@ -745,7 +761,7 @@
+ /* Leave keyboard alone when rawkeyboard is enabled! */
+ if (__svgalib_kbd_fd < 0) {
+ /* set graphics mode termio parameters */
+- ioctl(0, TCSETSW, &graph_termio);
++ ioctl(0, TIOCSETAW, &graph_termio);
+ }
+ }
+
+@@ -755,7 +771,7 @@
+ /* Leave keyboard alone when rawkeyboard is enabled! */
+ if (__svgalib_kbd_fd < 0) {
+ /* restore text mode termio parameters */
+- ioctl(0, TCSETSW, &text_termio);
++ ioctl(0, TIOCSETAW, &text_termio);
+ }
+ }
+
+@@ -766,9 +782,9 @@
+
+ /* Well, one could argue that sigint is not enabled at all when in __svgalib_nosigint
+ but sometimes they *still* are enabled b4 graph_termio is set.. */
+- ioctl(0, TCGETS, &cur_termio);
++ ioctl(0, TIOCGETA, &cur_termio);
+ cur_termio.c_lflag &= ~ISIG;
+- ioctl(0, TCSETSW, &cur_termio);
++ ioctl(0, TIOCSETAW, &cur_termio);
+ }
+
+
+@@ -778,9 +794,9 @@
+
+ if (__svgalib_nosigint) /* do not reenable, they are often reenabled by text_termio */
+ return;
+- ioctl(0, TCGETS, &cur_termio);
++ ioctl(0, TIOCGETA, &cur_termio);
+ cur_termio.c_lflag |= ISIG;
+- ioctl(0, TCSETSW, &cur_termio);
++ ioctl(0, TIOCSETAW, &cur_termio);
+ }
+
+ /* The following is rather messy and inelegant. The only solution I can */
+@@ -851,7 +867,7 @@
+ if (!getuid())
+ return 1; /* root can do it always */
+ #endif
+- sprintf(fname, "/dev/tty%d", vc);
++ sprintf(fname, "/dev/ttyv%d", vc);
+ if ((stat(fname, &sbuf) >= 0) && (getuid() == sbuf.st_uid)) {
+ return 1;
+ }
+@@ -862,7 +878,7 @@
+ void __svgalib_open_devconsole(void)
+ {
+ struct vt_mode vtm;
+- struct vt_stat vts;
++ int vts;
+ struct stat sbuf;
+ char fname[30];
+
+@@ -903,15 +919,15 @@
+ goto error;
+ if (svgalib_vc <= 0)
+ goto error;
+- sprintf(fname, "/dev/tty%d", svgalib_vc);
++ sprintf(fname, "/dev/ttyv%d", svgalib_vc - 1);
+ close(__svgalib_tty_fd);
+ /* change our control terminal: */
+ setpgid(0,getppid());
+ setsid();
+ /* We must use RDWR to allow for output... */
+ if (((__svgalib_tty_fd = open(fname, O_RDWR)) >= 0) &&
+- (ioctl(__svgalib_tty_fd, VT_GETSTATE, &vts) >= 0)) {
+- if (!check_owner(vts.v_active))
++ (ioctl(__svgalib_tty_fd, VT_GETACTIVE, &vts) >= 0)) {
++ if (!check_owner(vts))
+ goto error;
+ /* success, redirect all stdios */
+ if (DREP)
+@@ -928,8 +944,8 @@
+ /* clear screen and switch to it */
+ fwrite("\e[H\e[J", 6, 1, stderr);
+ fflush(stderr);
+- if (svgalib_vc != vts.v_active) {
+- startup_vc = vts.v_active;
++ if (svgalib_vc != vts) {
++ startup_vc = vts;
+ ioctl(__svgalib_tty_fd, VT_ACTIVATE, svgalib_vc);
+ __svgalib_waitvtactive();
+ }
+@@ -1240,7 +1256,7 @@
+ SIGTRAP, SIGIOT, SIGBUS, SIGFPE,
+ SIGSEGV, SIGPIPE, SIGALRM, SIGTERM,
+ SIGXCPU, SIGXFSZ, SIGVTALRM,
+-/* SIGPROF ,*/ SIGPWR};
++/* SIGPROF ,*/ SIGUSR1};
+ static struct sigaction old_signal_handler[sizeof(sig2catch)];
+
+ struct vt_mode __svgalib_oldvtmode;
+@@ -1822,15 +1838,15 @@
+ #endif
+
+ /* save text mode termio parameters */
+- ioctl(0, TCGETS, &text_termio);
++ ioctl(0, TIOCGETA, &text_termio);
+
+ graph_termio = text_termio;
+
+ /* change termio parameters to allow our own I/O processing */
+- graph_termio.c_iflag &= ~(BRKINT | PARMRK | INPCK | IUCLC | IXON | IXOFF);
++ graph_termio.c_iflag &= ~(BRKINT | PARMRK | INPCK | IXON | IXOFF);
+ graph_termio.c_iflag |= (IGNBRK | IGNPAR);
+
+- graph_termio.c_oflag &= ~(ONOCR);
++/* graph_termio.c_oflag &= ~(ONOCR);*/
+
+ graph_termio.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | NOFLSH);
+ if (__svgalib_nosigint)
OpenPOWER on IntegriCloud