1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-23 09:10:43 +00:00

Add svgalib - a *native* port of well-knows Linux console graphics library.

Please note, that it's a work in progress, so some features doesn't work (for
example mouse support). However, the functionality already present is
sufficient to run some of the popular apps (quakeforge for example).

I tested it on ATI Mach64 and C&T55554 adapters.
This commit is contained in:
Maxim Sobolev 2000-08-25 09:08:01 +00:00
parent d31b2652d2
commit c01aa3135c
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=31953
27 changed files with 902 additions and 0 deletions

View File

@ -157,6 +157,7 @@
SUBDIR += spigot
SUBDIR += splitmpg
SUBDIR += stamp
SUBDIR += svgalib
SUBDIR += tgd
SUBDIR += tgif
SUBDIR += tgif-nls

111
graphics/svgalib/Makefile Normal file
View File

@ -0,0 +1,111 @@
# New ports collection makefile for: svgalib
# Date created: 24 August 2000
# Whom: sobomax@FreeBSD.org
#
# $FreeBSD$
#
PORTNAME= svgalib
PORTVERSION= 1.4.2
CATEGORIES= graphics devel
MASTER_SITES= http://www.svgalib.org/
MAINTAINER= sobomax@freebsd.org
USE_GMAKE= yes
INSTALLS_SHLIB= yes
ALL_TARGET= shared
MAN1= convfont.1 dumpreg.1 fix132x43.1 restorefont.1 \
restorepalette.1 restoretextmode.1 runx.1 \
savetextmode.1 setmclk.1 svgakeymap.1 \
textmode.1
MAN3= currentcontext.3 gl_allocatecontext.3 gl_bcircle.3 \
gl_circle.3 gl_clearscreen.3 gl_colorfont.3 \
gl_compileboxmask.3 gl_compiledboxmasksize.3 \
gl_copybox.3 gl_copyboxfromcontext.3 \
gl_copyboxtocontext.3 gl_copyscreen.3 \
gl_disableclipping.3 gl_enableclipping.3 \
gl_enablepageflipping.3 gl_expandfont.3 gl_fillbox.3 \
gl_fillcircle.3 gl_font8x8.3 gl_freecontext.3 \
gl_getbox.3 gl_getcontext.3 gl_getpalette.3 \
gl_getpalettecolor.3 gl_getpalettecolors.3 \
gl_getpixel.3 gl_getpixelrgb.3 gl_hline.3 gl_line.3 \
gl_printf.3 gl_putbox.3 gl_putboxmask.3 \
gl_putboxmaskcompiled.3 gl_putboxpart.3 gl_rgbcolor.3 \
gl_scalebox.3 gl_setclippingwindow.3 gl_setcontext.3 \
gl_setcontextheight.3 gl_setcontextvga.3 \
gl_setcontextvgavirtual.3 gl_setcontextvirtual.3 \
gl_setcontextwidth.3 gl_setdisplaystart.3 gl_setfont.3 \
gl_setfontcolors.3 gl_setpalette.3 gl_setpalettecolor.3 \
gl_setpalettecolors.3 gl_setpixel.3 gl_setpixelrgb.3 \
gl_setrgbpalette.3 gl_setscreenoffset.3 \
gl_setwritemode.3 gl_striangle.3 gl_swtriangle.3 \
gl_triangle.3 gl_trigetcolorlookup.3 \
gl_trisetcolorlookup.3 gl_trisetdrawpoint.3 gl_write.3 \
gl_writen.3 gl_wtriangle.3 graph_mem.3 \
joystick_button1.3 joystick_button2.3 \
joystick_button3.3 joystick_button4.3 joystick_close.3 \
joystick_getaxis.3 joystick_getb1.3 joystick_getb2.3 \
joystick_getb3.3 joystick_getb4.3 joystick_getbutton.3 \
joystick_getnumaxes.3 joystick_getnumbuttons.3 \
joystick_getx.3 joystick_gety.3 joystick_getz.3 \
joystick_init.3 joystick_setdefaulthandler.3 \
joystick_sethandler.3 joystick_update.3 joystick_x.3 \
joystick_y.3 joystick_z.3 keyboard_clearstate.3 \
keyboard_close.3 keyboard_getstate.3 keyboard_init.3 \
keyboard_init_return_fd.3 keyboard_keypressed.3 \
keyboard_setdefaulteventhandler.3 \
keyboard_seteventhandler.3 keyboard_translatekeys.3 \
keyboard_update.3 keyboard_waitforupdate.3 \
mouse_close.3 mouse_getbutton.3 mouse_getcaps.3 \
mouse_getposition_6d.3 mouse_getx.3 mouse_gety.3 \
mouse_init.3 mouse_init_return_fd.3 \
mouse_setdefaulteventhandler.3 mouse_seteventhandler.3 \
mouse_setposition.3 mouse_setposition_6d.3 \
mouse_setrange_6d.3 mouse_setscale.3 mouse_setwrap.3 \
mouse_setxrange.3 mouse_setyrange.3 mouse_update.3 \
mouse_waitforupdate.3 vga_accel.3 vga_addmode.3 \
vga_addtiming.3 vga_bitblt.3 vga_blitwait.3 \
vga_changetiming.3 vga_claimvideomemory.3 vga_clear.3 \
vga_copytoplanar16.3 vga_copytoplanar256.3 \
vga_copytoplane.3 vga_disabledriverreport.3 \
vga_drawline.3 vga_drawpixel.3 vga_drawscanline.3 \
vga_drawscansegment.3 vga_dumpregs.3 vga_ext_set.3 \
vga_fillblt.3 vga_flip.3 vga_getch.3 vga_getcolors.3 \
vga_getcurrentchipset.3 vga_getcurrentmode.3 \
vga_getcurrenttiming.3 vga_getdefaultmode.3 \
vga_getgraphmem.3 vga_getkey.3 vga_getmodeinfo.3 \
vga_getmodename.3 vga_getmodenumber.3 \
vga_getmonitortype.3 vga_getmousetype.3 \
vga_getpalette.3 vga_getpalvec.3 vga_getpixel.3 \
vga_getscansegment.3 vga_gettextfont.3 \
vga_gettextmoderegs.3 vga_getxdim.3 vga_getydim.3 \
vga_guesstiming.3 vga_hasmode.3 vga_hlinelistblt.3 \
vga_imageblt.3 vga_init.3 vga_lastmodenumber.3 \
vga_lockvc.3 vga_oktowrite.3 vga_puttextfont.3 \
vga_runinbackground.3 vga_runinbackground_version.3 \
vga_safety_fork.3 vga_screenoff.3 vga_screenon.3 \
vga_setchipset.3 vga_setchipsetandfeatures.3 \
vga_setcolor.3 vga_setdisplaystart.3 vga_setegacolor.3 \
vga_setflipchar.3 vga_setlinearaddressing.3 \
vga_setlogicalwidth.3 vga_setmode.3 vga_setmodeX.3 \
vga_setmousesupport.3 vga_setpage.3 vga_setpalette.3 \
vga_setpalvec.3 vga_setreadpage.3 vga_setrgbcolor.3 \
vga_settextmoderegs.3 vga_setwritepage.3 vga_unlockvc.3 \
vga_waitevent.3 vga_waitretrace.3 vga_white.3
MAN5= libvga.config.5 libvga.et4000.5 svgalibrc.5
MAN6= accel.6 bg_test.6 eventtest.6 forktest.6 fun.6 \
joytest.6 keytest.6 lineart.6 mach32info.6 mjoytest.6 \
mousetest.6 plane.6 printftest.6 scrolltest.6 \
speedtest.6 spin.6 svidtune.6 testaccel.6 testgl.6 \
testlinear.6 threed.6 vgatest.6 wrapdemo.6
MAN7= svgalib.7 svgalib.chips.7 svgalib.et4000.7 \
svgalib.faq.7 svgalib.mach32.7 threedkit.7 vgagl.7
MAN8= mode3.8
pre-patch:
${PERL} -pi -e 's.\x0D..' ${WRKSRC}/utils/gtf/*
.include <bsd.port.mk>

View File

@ -0,0 +1 @@
MD5 (svgalib-1.4.2.tar.gz) = 4576058f43adbc2c433aeba25603fd82

View File

@ -0,0 +1,103 @@
--- Makefile.cfg.orig Fri Jul 21 11:21:34 2000
+++ Makefile.cfg Fri Aug 25 05:05:04 2000
@@ -9,8 +9,8 @@
# to n means yes!
MAJOR_VER = 1
-MINOR_VER = 4.2
-VERSION = $(MAJOR_VER).$(MINOR_VER)
+MINOR_VER =
+VERSION = $(MAJOR_VER)
#----------------------------------------------------------------------
# Configuration Section
@@ -24,8 +24,8 @@
# Common prefix for installation directories.
# NOTE: This directory must exist when you start the install.
-TOPDIR=
-prefix = $(TOPDIR)/usr/local
+TOPDIR=$(PREFIX)
+prefix = $(PREFIX)
exec_prefix = $(prefix)
# Directory where the shared stubs and static library will be installed.
@@ -82,7 +82,7 @@
# BACKGROUND = y
# Uncomment this if you want to compile and install the static libs.
-# INSTALLSTATICLIB = installstaticlib
+INSTALLSTATICLIB = installstaticlib
# Comment this out if you don't want to install the shared libs.
# If you do not install the shared nor the static libs, 'make static'
@@ -94,7 +94,7 @@
# a.out image is available install it in the first directory named something
# like *aout/ in /etc/ld.so.conf.
# If you want this, do not comment out the next line:
-INSTALLAOUTLIB = installaoutcompat
+#INSTALLAOUTLIB = installaoutcompat
# Comment this out if you want to keep old shared images. Old header files,
# library stubs and static libraries CANNOT be kept in public locations
@@ -126,20 +126,20 @@
#INCLUDE_ET4000_DRIVER = y
INCLUDE_CIRRUS_DRIVER = y
INCLUDE_TVGA_DRIVER = y
-#INCLUDE_OAK_DRIVER = y
-#INCLUDE_EGA_DRIVER = y
+INCLUDE_OAK_DRIVER = y
+INCLUDE_EGA_DRIVER = y
INCLUDE_MACH32_DRIVER = y
INCLUDE_S3_DRIVER = y
-#INCLUDE_ET3000_DRIVER = y
-#INCLUDE_GVGA6400_DRIVER = y
-#INCLUDE_ARK_DRIVER = y
-#INCLUDE_ATI_DRIVER = y
-#INCLUDE_ALI_DRIVER = y
+INCLUDE_ET3000_DRIVER = y
+INCLUDE_GVGA6400_DRIVER = y
+INCLUDE_ARK_DRIVER = y
+INCLUDE_ATI_DRIVER = y
+INCLUDE_ALI_DRIVER = y
INCLUDE_CHIPS_DRIVER = y
INCLUDE_APM_DRIVER = y
INCLUDE_NV3_DRIVER = y
INCLUDE_ET6000_DRIVER = y
-INCLUDE_VESA_DRIVER = y
+#INCLUDE_VESA_DRIVER = y
INCLUDE_MX_DRIVER = y
INCLUDE_PARADISE_DRIVER = y
INCLUDE_RAGE_DRIVER = y
@@ -154,15 +154,15 @@
#INCLUDE_ET4000_DRIVER_TEST = y
INCLUDE_CIRRUS_DRIVER_TEST = y
INCLUDE_TVGA_DRIVER_TEST = y
-#INCLUDE_OAK_DRIVER_TEST = y
-#INCLUDE_EGA_DRIVER_TEST = y
+INCLUDE_OAK_DRIVER_TEST = y
+INCLUDE_EGA_DRIVER_TEST = y
INCLUDE_MACH32_DRIVER_TEST = y
-#INCLUDE_GVGA6400_DRIVER_TEST = y
+INCLUDE_GVGA6400_DRIVER_TEST = y
INCLUDE_S3_DRIVER_TEST = y
-#INCLUDE_ET3000_DRIVER_TEST = y
-#INCLUDE_ARK_DRIVER_TEST = y
-#INCLUDE_ATI_DRIVER_TEST = y
-#INCLUDE_ALI_DRIVER_TEST = y
+INCLUDE_ET3000_DRIVER_TEST = y
+INCLUDE_ARK_DRIVER_TEST = y
+INCLUDE_ATI_DRIVER_TEST = y
+INCLUDE_ALI_DRIVER_TEST = y
INCLUDE_CHIPS_DRIVER_TEST = y
INCLUDE_APM_DRIVER_TEST = y
INCLUDE_NV3_DRIVER_TEST = y
@@ -177,7 +177,7 @@
INCLUDE_NEO_DRIVER_TEST = y
#Might be too dangerous:
-INCLUDE_VESA_DRIVER_TEST = y
+#INCLUDE_VESA_DRIVER_TEST = y
#
# Comment out any dac support that you don't want included in the library.

View File

@ -0,0 +1,37 @@
--- src/Makefile.orig Thu Jul 6 19:10:58 2000
+++ src/Makefile Fri Aug 25 05:15:15 2000
@@ -14,7 +14,7 @@
# Compiler Section (overrides Makefile.cfg)
#----------------------------------------------------------------------
-INCLUDES += -I$(srcdir)/src
+INCLUDES += -I$(srcdir)/src -I$(srcdir)/src/config
#----------------------------------------------------------------------
# Rules Section
@@ -361,6 +361,7 @@
libvga.so.$(VERSION): $(ALLOBJS)
$(CC) -s -shared -Wl,-soname,libvga.so.$(MAJOR_VER) \
-o libvga.so.$(VERSION) $(ALLOBJS) -lm
+ /bin/ln -sf libvga.so.$(VERSION) libvga.so
$(sharedlibdir)/libvga.so.$(VERSION): libvga.so.$(VERSION)
$(INSTALL_PROGRAM) $< $(sharedlibdir)/$<
@@ -375,7 +376,7 @@
$(AR) rcs libvga.a $(ALLOBJS)
libvgagl.a: FORCE
- make -f $(srcdir)/gl/Makefile $@ srcdir="$(srcdir)" DLLFLAGS="$(DLLFLAGS)"
+ $(MAKE) -f $(srcdir)/gl/Makefile $@ srcdir="$(srcdir)" DLLFLAGS="$(DLLFLAGS)"
vga.o: vga.c
$(CC) $(CFLAGS) $(VGA_DEFINES) -c -o $@ $<
@@ -397,7 +398,7 @@
dep:
rm -f .depend.src
- make .depend.src
+ $(MAKE) .depend.src
.depend.src:
echo '# Module dependencies' >>.depend.src

View File

@ -0,0 +1,10 @@
--- gl/inlstring.h.orig Fri Aug 25 05:11:26 2000
+++ gl/inlstring.h Fri Aug 25 05:11:36 2000
@@ -1,6 +1,6 @@
/* Based on functions in linux/string.h */
-#include <linux/types.h> /* for size_t */
+#include <sys/types.h> /* for size_t */
#if defined(__alpha__) || defined (NO_ASSEMBLY)

View File

@ -0,0 +1,11 @@
--- utils/gtf/scitech.h.orig Fri Aug 25 05:23:32 2000
+++ utils/gtf/scitech.h Fri Aug 25 05:24:02 2000
@@ -228,7 +228,7 @@
#endif
/* 32-bit FreeBSD compile environment */
-#elif defined(__FREEBSD__)
+#elif defined(__FreeBSD__)
#ifndef __32BIT__
#define __32BIT__
#endif

View File

@ -0,0 +1,20 @@
--- Makefile.orig Fri Aug 25 05:26:16 2000
+++ Makefile Fri Aug 25 05:26:20 2000
@@ -210,7 +210,7 @@
@$(INSTALL_DATA) staticlib/libvgagl.a $(libdir)/libvgagl.a
@chmod a+r $(libdir)/libvgagl.a
-installutils: textutils lrmi
+installutils: textutils
@if [ ! -d $(bindir) ]; then \
echo No $(bindir) directory, creating it.; \
mkdir $(bindir); \
@@ -236,8 +236,6 @@
@cp utils/textmode $(bindir)
@echo "savetextmode: Script that saves textmode information used by 'textmode'."
@cp utils/savetextmode $(bindir)
- @echo "mode3: Restore textmode by setting VESA mode 3."
- @cp lrmi-0.6m/mode3 $(bindir)
@echo "Installing keymap utilities in $(bindir):"
@echo "svgakeymap: Perl script that generates scancode conversion maps."
@cp utils/svgakeymap $(bindir)

View File

@ -0,0 +1,12 @@
diff -druN svgalib-1.4.2.orig/src/et6000.c src/et6000.c
--- svgalib-1.4.2.orig/src/et6000.c Fri Aug 25 04:39:39 2000
+++ src/et6000.c Fri Aug 25 04:39:57 2000
@@ -10,7 +10,7 @@
#include "vga.h"
#include "libvga.h"
#include "driver.h"
-#include <linux/pci.h>
+/*#include <linux/pci.h>*/
#include "timing.h"
#include "interface.h"
#include "vgaregs.h"

View File

@ -0,0 +1,12 @@
diff -druN svgalib-1.4.2.orig/src/joystick/joydev.h src/joystick/joydev.h
--- svgalib-1.4.2.orig/src/joystick/joydev.h Fri Aug 25 04:39:39 2000
+++ src/joystick/joydev.h Fri Aug 25 04:39:57 2000
@@ -1,6 +1,6 @@
-#include <linux/version.h>
+/*#include <linux/version.h>*/
-#if ( LINUX_VESION_CODE >= 131584)
+#if 0 /*( LINUX_VESION_CODE >= 131584) */
#include <linux/joystick.h>
#else
/* Joystick interface modeled after svgalibs keyboard and mouse interfaces

View File

@ -0,0 +1,50 @@
diff -druN svgalib-1.4.2.orig/src/keyboard/keyboard.c src/keyboard/keyboard.c
--- svgalib-1.4.2.orig/src/keyboard/keyboard.c Fri Aug 25 04:39:39 2000
+++ src/keyboard/keyboard.c Fri Aug 25 04:39:57 2000
@@ -28,12 +28,13 @@
#include <sys/ioctl.h>
#include <fcntl.h>
#include <termios.h>
-#include <linux/kd.h>
+#include <sys/kbio.h>
/* linux/keyboard.h defines NR_KEYS and some scancode-like constants, so it */
/* should also be useful for svgalib programs using the keyboard. It misses */
/* a few KERNEL ifdefs around kernel data structures though. */
-#include <linux/keyboard.h>
-#include <sys/vt.h>
+/*#include <linux/keyboard.h>*/
+#define NR_KEYS 128
+#include <sys/consio.h>
/* Needed to check uid of keymap files */
#include <sys/stat.h>
#include <unistd.h>
@@ -340,7 +341,7 @@
tcsetattr(__svgalib_kbd_fd, TCSAFLUSH, &newkbdtermios);
- ioctl(__svgalib_kbd_fd, KDSKBMODE, K_MEDIUMRAW);
+ ioctl(__svgalib_kbd_fd, KDSKBMODE, K_RAW);
keyboard_clearstate();
@@ -578,7 +579,7 @@
/* VT switch. */
/* *** what about F11 & F12? */
int j, vt = 0;
- struct vt_stat vts;
+ int vts;
for (j = 0; j < 12; j++)
if (functionkey_state & (1 << j)) {
vt = j + 1;
@@ -587,9 +588,9 @@
}
/* Do not switch vt's if need not to */
- ioctl(__svgalib_tty_fd, VT_GETSTATE, &vts);
+ ioctl(__svgalib_tty_fd, VT_GETACTIVE, &vts);
- if(vt != vts.v_active) {
+ if(vt != vts) {
/* if switching vt's, need to clear keystates */
keyboard_clearstate();
/*

View File

@ -0,0 +1,12 @@
diff -druN svgalib-1.4.2.orig/src/libvga.h src/libvga.h
--- svgalib-1.4.2.orig/src/libvga.h Fri Aug 25 04:39:39 2000
+++ src/libvga.h Fri Aug 25 04:39:57 2000
@@ -358,7 +358,7 @@
#else
-#define SVGALIB_ACQUIRE_SIG SIGUNUSED
+#define SVGALIB_ACQUIRE_SIG SIGUSR2
#define SVGALIB_RELEASE_SIG SIGPROF
#endif

View File

@ -0,0 +1,204 @@
diff -druN svgalib-1.4.2.orig/src/mach32.c src/mach32.c
--- svgalib-1.4.2.orig/src/mach32.c Fri Aug 25 04:39:39 2000
+++ src/mach32.c Fri Aug 25 04:39:57 2000
@@ -2415,7 +2415,7 @@
return ptr;
}
-static int isnumber(char *str)
+static int is_number(char *str)
{
if (str == NULL)
return 0;
@@ -2607,11 +2607,11 @@
goto ex_inv_mod;
}
if (*ptr == ':') { /*No. of clock given */
- if (!isnumber(ptr + 1))
+ if (!is_number(ptr + 1))
goto inv_clk;
i = atoi(ptr + 1);
} else { /* search clock in table */
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto inv_clk;
flag = atoi(ptr);
for (i = 0; i < 32; i++)
@@ -2627,45 +2627,45 @@
mptr->disp_cntl = 0x23; /* Assume non interlaced */
/* The rest is straight forward: */
ptr = strtok(NULL, " ");
- if (!isnumber(ptr)) {
+ if (!is_number(ptr)) {
inv_time:
puts("mach32-config: Invalid define command, timing is invalid");
goto ex_inv_mod;
}
mptr->h_disp = (atoi(ptr) >> 3) - 1;
ptr = strtok(NULL, " ");
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto inv_time;
i = atoi(ptr);
mptr->h_sync_strt = (i >> 3) - 1;
ptr = strtok(NULL, " ");
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto inv_time;
mptr->h_sync_wid = ((atoi(ptr) - i) >> 3);
if (mptr->h_sync_wid > 0x1f)
mptr->h_sync_wid = 0x1f;
ptr = strtok(NULL, " ");
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto inv_time;
mptr->h_total = (atoi(ptr) >> 3) - 1;
ptr = strtok(NULL, " ");
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto inv_time;
mptr->v_disp = mach32_skip2(atoi(ptr) - 1);
ptr = strtok(NULL, " ");
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto inv_time;
i = atoi(ptr);
mptr->v_sync_strt = mach32_skip2(i - 1);
ptr = strtok(NULL, " ");
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto inv_time;
mptr->v_sync_wid = atoi(ptr) - i;
if (mptr->v_sync_wid > 0x1f)
mptr->v_sync_wid = 0x1f;
ptr = strtok(NULL, " ");
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto inv_time;
mptr->v_total = mach32_skip2(atoi(ptr) - 1);
for (;;) { /* Parse for additional goodies */
@@ -2701,7 +2701,7 @@
return ptr;
case 3:
ptr = strtok(NULL, " ");
- if (!isnumber(ptr)) {
+ if (!is_number(ptr)) {
puts("mach32-config: illegal setlinelength command.\n"
"Usage: setlinelength integer modes...");
return ptr;
@@ -2719,7 +2719,7 @@
puts("Don't use the maxclock's commands out of the environment variable.");
return ptr;
}
- if (!isnumber(ptr)) {
+ if (!is_number(ptr)) {
ilmaxclk:
puts("mach32-config: illegal maxclock16 or maxclock24 command.\n"
"Usage: maxclock16 integer or maxclock24 integer");
@@ -2731,7 +2731,7 @@
ptr = strtok(NULL, " ");
if (!mode)
goto maxclk_deny;
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto ilmaxclk;
mach32_maxclk24 = atoi(ptr);
break;
@@ -2741,7 +2741,7 @@
for (i = 0; i < 16; i++) {
ptr = strtok(NULL, " ");
clocks_set = 1;
- if (!isnumber(ptr)) {
+ if (!is_number(ptr)) {
puts("mach32-config: illegal clocks command.\n"
"Usage: clocks integer integer ...\n"
"16 clocks have to be specified.\n"
@@ -2776,7 +2776,7 @@
ptr = strtok(NULL, " ");
if (!mode)
goto maxclk_deny;
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto ilmaxclk;
mach32_maxclk8 = atoi(ptr);
break;
@@ -2784,7 +2784,7 @@
ptr = strtok(NULL, " ");
if (!mode)
goto maxclk_deny;
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto ilmaxclk;
mach32_maxclk32 = atoi(ptr);
break;
@@ -2803,7 +2803,7 @@
puts("The vfifo, latch, blank commands are not allowed out of the environment.");
return ptr;
}
- if (!isnumber(ptr)) {
+ if (!is_number(ptr)) {
ilvfi:
puts("Illegal vfifo command");
return ptr;
@@ -2814,7 +2814,7 @@
ptr = strtok(NULL, " ");
if (!mode)
goto tweak_deny;
- if (!isnumber(ptr)) {
+ if (!is_number(ptr)) {
puts("Illegal latch command");
return ptr;
}
@@ -2824,7 +2824,7 @@
ptr = strtok(NULL, " ");
if (!mode)
goto tweak_deny;
- if (!isnumber(ptr)) {
+ if (!is_number(ptr)) {
puts("Illegal blank command");
return ptr;
}
@@ -2834,7 +2834,7 @@
ptr = strtok(NULL, " ");
if (!mode)
goto tweak_deny;
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto ilvfi;
vfifo16 = atoi(ptr) & 0xf;
break;
@@ -2842,7 +2842,7 @@
ptr = strtok(NULL, " ");
if (!mode)
goto tweak_deny;
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto ilvfi;
vfifo24 = atoi(ptr) & 0xf;
break;
@@ -2850,13 +2850,13 @@
ptr = strtok(NULL, " ");
if (!mode)
goto tweak_deny;
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto ilvfi;
vfifo32 = atoi(ptr) & 0xf;
break;
case 20:
ptr = strtok(NULL, " ");
- if (!isnumber(ptr)) {
+ if (!is_number(ptr)) {
ilsetupli:
puts("Illegal setuplinear command.\n"
"usage: setuplinear address size\n"
@@ -2998,7 +2998,7 @@
else if (!strcasecmp(ptr, "keep"))
svga_clock = (-1);
else {
- if (!isnumber(ptr))
+ if (!is_number(ptr))
goto invpar;
i = atoi(ptr);
if ((i < 0) || (i > 0x1f))

View File

@ -0,0 +1,21 @@
diff -druN svgalib-1.4.2.orig/src/mouse/ms.c src/mouse/ms.c
--- svgalib-1.4.2.orig/src/mouse/ms.c Fri Aug 25 04:39:39 2000
+++ src/mouse/ms.c Fri Aug 25 04:39:57 2000
@@ -116,7 +116,7 @@
tty.c_iflag = IGNBRK | IGNPAR;
tty.c_oflag = 0;
tty.c_lflag = 0;
- tty.c_line = 0;
+/* tty.c_line = 0;*/
tty.c_cc[VTIME] = 0;
tty.c_cc[VMIN] = 1;
@@ -509,7 +509,7 @@
tty.c_iflag = IGNBRK | IGNPAR;
tty.c_oflag = 0;
tty.c_lflag = 0;
- tty.c_line = 0;
+/* tty.c_line = 0;*/
tty.c_cc[VTIME] = 0;
tty.c_cc[VMIN] = 1;
tty.c_cflag = cflag[m_type] | B1200;

View File

@ -0,0 +1,11 @@
diff -druN svgalib-1.4.2.orig/src/nv3.c src/nv3.c
--- svgalib-1.4.2.orig/src/nv3.c Fri Aug 25 04:39:39 2000
+++ src/nv3.c Fri Aug 25 04:39:57 2000
@@ -17,6 +17,7 @@
#include <stdlib.h>
#include <stdio.h> /* for printf */
#include <string.h> /* for memset */
+#include <sys/types.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <math.h>

View File

@ -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)

View File

@ -0,0 +1,19 @@
diff -druN svgalib-1.4.2.orig/src/vgamisc.c src/vgamisc.c
--- svgalib-1.4.2.orig/src/vgamisc.c Fri Aug 25 04:39:39 2000
+++ src/vgamisc.c Fri Aug 25 04:39:57 2000
@@ -73,12 +73,12 @@
return __svgalib_graph_mem;
}
-#include <syscall.h>
-#include <linux/kernel.h>
+#include <sys/syscall.h>
+/*#include <linux/kernel.h>*/
int __svgalib_physmem(void)
{
-#ifdef __alpha__
+#if defined(__alpha__) || defined(__FreeBSD__)
printf("__svgalib_physmem: are you sure you wanna do this??\n");
return -1;
#else

View File

@ -0,0 +1,10 @@
--- src/ark.c.orig Fri Aug 25 05:03:06 2000
+++ src/ark.c Fri Aug 25 05:03:21 2000
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <sys/types.h>
#include <sys/mman.h>
#include <signal.h>
#include "vga.h"

View File

@ -0,0 +1,11 @@
--- utils/Makefile.orig Fri Aug 25 05:31:18 2000
+++ utils/Makefile Fri Aug 25 05:31:23 2000
@@ -15,7 +15,7 @@
CFLAGS = $(WARN) $(OPTIMIZE) -I../include
#Use the next one for the Alpha/AXP if you need it
-#LDFLAGS = -L../staticlib
+LDFLAGS = -L../sharedlib
LIBS = -lvga -lm
#----------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
--- gl/Makefile.orig Fri Aug 25 06:05:40 2000
+++ gl/Makefile Fri Aug 25 06:06:28 2000
@@ -31,6 +31,7 @@
libvgagl.so.$(VERSION): $(MODULES)
$(CC) -s -shared -Wl,-soname,libvgagl.so.$(MAJOR_VER) -o libvgagl.so.$(VERSION) \
$(MODULES)
+ /bin/ln -sf libvgagl.so.$(MAJOR_VER) libvgagl.so
libvgagl.a: $(MODULES)
rm -f libvgagl.a

View File

@ -0,0 +1,11 @@
--- demos/Makefile.orig Fri Aug 25 06:09:33 2000
+++ demos/Makefile Fri Aug 25 06:09:50 2000
@@ -29,7 +29,7 @@
# Determine what library (static or shared) we will be linking programs with
ifdef INSTALLSHAREDLIB
- LIBS = -lvgagl -lvga
+ LIBS = -L../sharedlib -lvgagl -lvga
endif
ifndef LIBS
LIBS = ../staticlib/libvgagl.a ../staticlib/libvga.a -lm

View File

@ -0,0 +1,10 @@
--- demos/accel.c.orig Fri Aug 25 06:13:16 2000
+++ demos/accel.c Fri Aug 25 06:13:30 2000
@@ -12,7 +12,6 @@
#include <unistd.h>
#include <time.h>
#include <math.h>
-#include <alloca.h>
#include <string.h>
#include "vga.h"
#include "vgagl.h"

View File

@ -0,0 +1,11 @@
--- demos/forktest.c.orig Fri Aug 25 06:13:58 2000
+++ demos/forktest.c Fri Aug 25 06:14:15 2000
@@ -18,7 +18,7 @@
SIGTRAP, SIGIOT, SIGBUS, SIGFPE,
SIGSEGV, SIGPIPE, SIGALRM, SIGTERM,
SIGXCPU, SIGXFSZ, SIGVTALRM,
- SIGPROF, SIGPWR};
+ SIGPROF, SIGUSR1};
static int newcolor(void)

View File

@ -0,0 +1,11 @@
--- demos/linearfork.c.orig Fri Aug 25 06:14:48 2000
+++ demos/linearfork.c Fri Aug 25 06:15:00 2000
@@ -18,7 +18,7 @@
SIGTRAP, SIGIOT, SIGBUS, SIGFPE,
SIGSEGV, SIGPIPE, SIGALRM, SIGTERM,
SIGXCPU, SIGXFSZ, SIGVTALRM,
- SIGPROF, SIGPWR};
+ SIGPROF, SIGUSR1};
static int newcolor(void)

View File

@ -0,0 +1 @@
A low level console graphics library

View File

@ -0,0 +1,13 @@
This is a low level console graphics library, originally based on VGAlib 1.2 by
Tommy Frandsen. VGAlib supported a number of standard VGA graphics modes,
as well high resolution/high color modes on many popular graphics adapters. As
of now, support for many more chipsets has been added.
It supports transparent virtual console switching, that is, you can switch
consoles to and from text and graphics mode consoles using alt-[function key].
Also, svgalib corrects most of VGAlib's textmode corruption behaviour by
catching SIGSEGV, SIGFPE, SIGILL, and other fatal signals and ensuring that
a program is running in the currently visible virtual console before setting a
graphics mode.
WWW: http://www.svgalib.org/

View File

@ -0,0 +1,23 @@
bin/dumpreg
bin/restorefont
bin/restorepalette
bin/restoretextmode
bin/savetextmode
bin/svgakeymap
bin/textmode
etc/vga/dvorak-us.keymap
etc/vga/libvga.config
etc/vga/libvga.et4000
etc/vga/null.keymap
include/vga.h
include/vgagl.h
include/vgajoystick.h
include/vgakeyboard.h
include/vgamouse.h
lib/libvga.a
lib/libvga.so
lib/libvga.so.1
lib/libvgagl.a
lib/libvgagl.so
lib/libvgagl.so.1
@dirrm etc/vga