Fixes for compilation against recent kernels; disable helper module, change configuration file loading...
This commit is contained in:
parent
00bae13bba
commit
ed9bb8f71a
15 changed files with 206 additions and 73 deletions
29
Makefile
29
Makefile
|
|
@ -97,9 +97,9 @@ installsharedlib: $(SHAREDLIBS) $(SVGALIBSHAREDSTUBS)
|
||||||
@for foo in $(notdir $(SHAREDLIBS)); do \
|
@for foo in $(notdir $(SHAREDLIBS)); do \
|
||||||
$(INSTALL_SHLIB) sharedlib/$$foo $(sharedlibdir)/$$foo; \
|
$(INSTALL_SHLIB) sharedlib/$$foo $(sharedlibdir)/$$foo; \
|
||||||
(cd $(sharedlibdir); \
|
(cd $(sharedlibdir); \
|
||||||
ln -sf $$foo `echo $$foo | sed 's/\.so\..*/.so/'` ); \
|
ln -sf $$foo `echo $$foo | sed 's/\.so\..*/.so/'` ; \
|
||||||
|
ln -sf $$foo `echo $$foo | sed 's/\.so\..*/.so.1/'` ); \
|
||||||
done
|
done
|
||||||
@./fixldsoconf
|
|
||||||
-ldconfig
|
-ldconfig
|
||||||
|
|
||||||
installstaticlib: static
|
installstaticlib: static
|
||||||
|
|
@ -180,15 +180,26 @@ installmodule:
|
||||||
installmodule.alt:
|
installmodule.alt:
|
||||||
(cd kernel/svgalib_helper ; $(MAKE) -f Makefile.alt modules_install )
|
(cd kernel/svgalib_helper ; $(MAKE) -f Makefile.alt modules_install )
|
||||||
|
|
||||||
installdev:
|
|
||||||
(cd kernel/svgalib_helper ; $(MAKE) device )
|
|
||||||
|
|
||||||
lib3dkit-install:
|
lib3dkit-install:
|
||||||
(cd threeDKit/; $(MAKE) install)
|
(cd threeDKit/; $(MAKE) install)
|
||||||
|
|
||||||
|
udev-rules-install:
|
||||||
|
@echo "Installing Udev rules..."
|
||||||
|
@$(INSTALL_DIR) $(rulesdir)
|
||||||
|
@$(INSTALL_DATA) src/udev/56-svga.rules $(rulesdir)
|
||||||
|
|
||||||
|
docs-install:
|
||||||
|
@echo "Installing documentation..."
|
||||||
|
@$(INSTALL_DIR) $(docdir)
|
||||||
|
@$(INSTALL_DATA) 0-README README doc/0-INSTALL doc/CHANGES doc/DESIGN \
|
||||||
|
doc/Driver-programming-HOWTO doc/README.joystick doc/README.keymap \
|
||||||
|
doc/README.multi-monitor doc/README.patching doc/README.vesa doc/TODO \
|
||||||
|
doc/add_driver doc/dual-head-howto $(docdir)
|
||||||
|
@$(INSTALL_DATA) lrmi-0.6m/README $(docdir)/README.lrmi
|
||||||
|
|
||||||
install: installheaders $(INSTALLSHAREDLIB) installconfig \
|
install: installheaders $(INSTALLSHAREDLIB) installconfig \
|
||||||
$(INSTALLSTATICLIB) $(INSTALLUTILS) $(INSTALLMAN) $(INSTALLMODULE) $(INSTALLDEV) \
|
$(INSTALLSTATICLIB) $(INSTALLUTILS) $(INSTALLMAN) $(INSTALLMODULE) \
|
||||||
lib3dkit-install
|
lib3dkit-install udev-rules-install docs-install
|
||||||
@echo
|
@echo
|
||||||
@echo
|
@echo
|
||||||
@echo Now run "'make demoprogs'" to make the test and demo programs in
|
@echo Now run "'make demoprogs'" to make the test and demo programs in
|
||||||
|
|
@ -282,6 +293,8 @@ sharedlib/libvgagl.so.$(VERSION): $(SHAREDDIRS)
|
||||||
)
|
)
|
||||||
|
|
||||||
demoprogs: $(PREDEMO) $(DEMODIRS)
|
demoprogs: $(PREDEMO) $(DEMODIRS)
|
||||||
|
@$(INSTALL_DIR) $(docdir)/demos/svgalib
|
||||||
|
@$(INSTALL_DIR) $(docdir)/demos/threeDKit
|
||||||
@for dir in $(DEMODIRS); do \
|
@for dir in $(DEMODIRS); do \
|
||||||
if [ -d $(SRCDIR)/$$dir ]; then \
|
if [ -d $(SRCDIR)/$$dir ]; then \
|
||||||
(cd $$dir; \
|
(cd $$dir; \
|
||||||
|
|
|
||||||
18
Makefile.cfg
18
Makefile.cfg
|
|
@ -44,7 +44,7 @@ CONFDIR = $(SRCDIR)/src/config
|
||||||
# Common prefix for installation directories.
|
# Common prefix for installation directories.
|
||||||
# NOTE: This directory must exist when you start the install.
|
# NOTE: This directory must exist when you start the install.
|
||||||
TOPDIR=
|
TOPDIR=
|
||||||
prefix = $(TOPDIR)/usr/local
|
prefix = $(TOPDIR)/usr
|
||||||
exec_prefix = $(prefix)
|
exec_prefix = $(prefix)
|
||||||
|
|
||||||
# Directory where the shared stubs and static library will be installed.
|
# Directory where the shared stubs and static library will be installed.
|
||||||
|
|
@ -65,6 +65,12 @@ includedir = $(prefix)/include
|
||||||
# Directory where the man files will be installed.
|
# Directory where the man files will be installed.
|
||||||
mandir = $(prefix)/share/man
|
mandir = $(prefix)/share/man
|
||||||
|
|
||||||
|
# Directory where the udev rules files will be installed.
|
||||||
|
rulesdir = $(TOPDIR)/etc/udev/rules.d
|
||||||
|
|
||||||
|
# Directory where the documentation will be installed.
|
||||||
|
docdir = $(prefix)/share/doc/svgalib-$(VERSION)
|
||||||
|
|
||||||
# Target binary format.
|
# Target binary format.
|
||||||
TARGET_FORMAT = elf
|
TARGET_FORMAT = elf
|
||||||
|
|
||||||
|
|
@ -320,10 +326,12 @@ DLLFLAGS = -fPIC -DPIC
|
||||||
|
|
||||||
# Utilites used.
|
# Utilites used.
|
||||||
AR = ar
|
AR = ar
|
||||||
INSTALL_PROGRAM = install -sm755
|
INSTALL_PROGRAM = install -sm0755
|
||||||
INSTALL_SCRIPT = install -m755
|
INSTALL_SCRIPT = install -m0755
|
||||||
INSTALL_SHLIB = install -m755
|
INSTALL_SHLIB = install -m0755
|
||||||
INSTALL_DATA = install -m644
|
INSTALL_DATA = install -m0644
|
||||||
|
INSTALL_DIR = install -m0755 -d
|
||||||
|
|
||||||
|
|
||||||
ifneq ($(ARCH),i386)
|
ifneq ($(ARCH),i386)
|
||||||
NO_ASM = y
|
NO_ASM = y
|
||||||
|
|
|
||||||
|
|
@ -36,29 +36,38 @@ ifndef LIBS
|
||||||
LVGADEP = $(LIBS)
|
LVGADEP = $(LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: $(PROGS)
|
all: $(PROGS) graphics
|
||||||
|
|
||||||
.PHONY: all clean cleanbin dep
|
.PHONY: all clean cleanbin dep
|
||||||
|
|
||||||
$(PROGS): $(LVGADEP)
|
$(PROGS): $(LVGADEP)
|
||||||
|
|
||||||
.c:
|
.c:
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $* $*.c $(LIBS)
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $* $*.c $(LIBS) -L$(srcdir)/sharedlib
|
||||||
|
$(INSTALL_PROGRAM) $* $(docdir)/demos/svgalib
|
||||||
|
|
||||||
rwpage: rwpage.pp
|
rwpage: rwpage.pp
|
||||||
$(PC) -Rintel rwpage.pp
|
$(PC) -Rintel rwpage.pp
|
||||||
|
|
||||||
testaccel: testaccel.c
|
testaccel: testaccel.c
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -o testaccel testaccel.c $(LIBS) -lm
|
$(CC) $(CFLAGS) $(LDFLAGS) -o testaccel testaccel.c $(LIBS) -lm -L$(srcdir)/sharedlib
|
||||||
|
$(INSTALL_PROGRAM) testaccel $(docdir)/demos/svgalib
|
||||||
|
|
||||||
accel: accel.c
|
accel: accel.c
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -o accel accel.c $(LIBS) -lm
|
$(CC) $(CFLAGS) $(LDFLAGS) -o accel accel.c $(LIBS) -lm -L$(srcdir)/sharedlib
|
||||||
|
$(INSTALL_PROGRAM) accel $(docdir)/demos/svgalib
|
||||||
|
|
||||||
linearspeed: linearspeed.c memset.o
|
linearspeed: linearspeed.c memset.o
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -o linearspeed linearspeed.c memset.o $(LIBS)
|
$(CC) $(CFLAGS) $(LDFLAGS) -o linearspeed linearspeed.c memset.o $(LIBS) -L$(srcdir)/sharedlib
|
||||||
|
$(INSTALL_PROGRAM) linearspeed $(docdir)/demos/svgalib
|
||||||
|
|
||||||
buildcsr: mkcur.o
|
buildcsr: mkcur.o
|
||||||
$(CC) -o buildcsr $(LDFLAGS) mkcur.o -lvgagl -lvga
|
$(CC) -o buildcsr $(LDFLAGS) mkcur.o -lvgagl -lvga -L$(srcdir)/sharedlib
|
||||||
|
$(INSTALL_PROGRAM) buildcsr $(docdir)/demos/svgalib
|
||||||
|
|
||||||
|
graphics:
|
||||||
|
$(INSTALL_DATA) linuxlogo.bitmap eightbpp.xbm clut.xbm sixbpp.xbm \
|
||||||
|
wizard.xbm wizardmsk.xbm rwpage.pp $(docdir)/demos/svgalib
|
||||||
|
|
||||||
clean: cleanbin
|
clean: cleanbin
|
||||||
rm -f .depend *.o *~ *.bak core
|
rm -f .depend *.o *~ *.bak core
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ THREED1=man7/threedkit.7 man3/gl_*tri* man6/plane.6 man6/wrapdemo.6
|
||||||
SVGALIB=$(subst man,$(srcdir)/doc/man,$(SVGALIB1))
|
SVGALIB=$(subst man,$(srcdir)/doc/man,$(SVGALIB1))
|
||||||
VGAGL=$(subst man,$(srcdir)/doc/man,$(VGAGL1))
|
VGAGL=$(subst man,$(srcdir)/doc/man,$(VGAGL1))
|
||||||
THREED=$(subst man,$(srcdir)/doc/man,$(THREED1))
|
THREED=$(subst man,$(srcdir)/doc/man,$(THREED1))
|
||||||
COMPMANPAGES=$(shell cd $(srcdir)/doc; find man? -name "*.gz" -type f -print)
|
COMPMANPAGES=$(shell cd $(srcdir)/doc; find man? -type f -print)
|
||||||
|
|
||||||
.PHONY: clean ascii dvi ps install gunzip gzip
|
.PHONY: clean ascii dvi ps install gunzip gzip
|
||||||
|
|
||||||
|
|
@ -63,13 +63,12 @@ ps dvi:
|
||||||
cat $(VGAGL) | grep -v '^\.so ' | troff -man -T$@ > vgagl.$@
|
cat $(VGAGL) | grep -v '^\.so ' | troff -man -T$@ > vgagl.$@
|
||||||
cat $(THREED) | grep -v '^\.so ' | troff -man -T$@ > 3d.$@
|
cat $(THREED) | grep -v '^\.so ' | troff -man -T$@ > 3d.$@
|
||||||
|
|
||||||
install: gzip
|
install:
|
||||||
mkdir -p $(mandir)/man1 $(mandir)/man3 $(mandir)/man5 \
|
mkdir -p $(mandir)/man1 $(mandir)/man3 $(mandir)/man5 \
|
||||||
$(mandir)/man6 $(mandir)/man7 $(mandir)/man8
|
$(mandir)/man6 $(mandir)/man7 $(mandir)/man8
|
||||||
for i in $(COMPMANPAGES); do\
|
for i in $(COMPMANPAGES); do\
|
||||||
$(INSTALL_DATA) $(srcdir)/doc/$$i $(mandir)/$$i; \
|
$(INSTALL_DATA) $(srcdir)/doc/$$i $(mandir)/$$i; \
|
||||||
done
|
done
|
||||||
make gunzip
|
|
||||||
ifdef MAKEWHATIS
|
ifdef MAKEWHATIS
|
||||||
@echo "Rebuilding the whatis database (this is slow!)"
|
@echo "Rebuilding the whatis database (this is slow!)"
|
||||||
@echo "You can comment this out in Makefile.cfg!"
|
@echo "You can comment this out in Makefile.cfg!"
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ else
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
CLASS_SIMPLE := $(shell grep class_simple_create $(KDIR)/include/linux/device.h)
|
CLASS_SIMPLE := $(shell grep -s class_simple_create $(KDIR)/include/linux/device.h)
|
||||||
|
|
||||||
ifneq ($(CLASS_SIMPLE),)
|
ifneq ($(CLASS_SIMPLE),)
|
||||||
CLASS_CFLAGS = -DCLASS_SIMPLE=1
|
CLASS_CFLAGS = -DCLASS_SIMPLE=1
|
||||||
|
|
@ -49,18 +49,9 @@ clean:
|
||||||
svgalib_helper.o: $(svgalib_helper-objs)
|
svgalib_helper.o: $(svgalib_helper-objs)
|
||||||
$(LD) -r -o $@ $(svgalib_helper-objs)
|
$(LD) -r -o $@ $(svgalib_helper-objs)
|
||||||
|
|
||||||
device:
|
install: modules_install
|
||||||
rm -f /dev/svga /dev/svga?
|
|
||||||
mknod -m 666 /dev/svga c $(SVGALIB_HELPER_MAJOR) 0
|
|
||||||
mknod -m 666 /dev/svga1 c $(SVGALIB_HELPER_MAJOR) 1
|
|
||||||
mknod -m 666 /dev/svga2 c $(SVGALIB_HELPER_MAJOR) 2
|
|
||||||
mknod -m 666 /dev/svga3 c $(SVGALIB_HELPER_MAJOR) 3
|
|
||||||
mknod -m 666 /dev/svga4 c $(SVGALIB_HELPER_MAJOR) 4
|
|
||||||
|
|
||||||
install: device modules_install
|
|
||||||
|
|
||||||
modules_install: $(MODNAME)
|
modules_install: $(MODNAME)
|
||||||
mkdir -p /lib/modules/$(VER)/kernel/misc
|
mkdir -p $(TOPDIR)/lib/modules/$(VER)/kernel/misc
|
||||||
install -m 0644 -c $(TARGET).ko /lib/modules/$(VER)/kernel/misc || install -m 0644 -c $(TARGET).o /lib/modules/$(VER)/kernel/misc
|
install -m 0644 -c $(TARGET).ko $(TOPDIR)/lib/modules/$(VER)/kernel/misc || install -m 0644 -c $(TARGET).o $(TOPDIR)/lib/modules/$(VER)/kernel/misc
|
||||||
depmod -a $(VER)
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ CFLAGS += $(INCLUDES)
|
||||||
CFLAGS += -DSVGALIB_HELPER_MAJOR=$(SVGALIB_HELPER_MAJOR)
|
CFLAGS += -DSVGALIB_HELPER_MAJOR=$(SVGALIB_HELPER_MAJOR)
|
||||||
|
|
||||||
ifeq (1,$(findstring 1,$(MODVER)))
|
ifeq (1,$(findstring 1,$(MODVER)))
|
||||||
CFLAGS += -DMODVERSIONS -include $(INCLUDEDIR)/linux/modversions.h
|
CFLAGS += -DMODVERSIONS -DCONFIG_MODVERSIONS=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
TARGET = svgalib_helper
|
TARGET = svgalib_helper
|
||||||
|
|
@ -50,7 +50,8 @@ ifeq (2,$(VER_MAJOR))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: .depend $(OBJS)
|
modules: $(OBJS)
|
||||||
|
all: .depend modules
|
||||||
|
|
||||||
$(TARGET).o: $(SRC:.c=.o)
|
$(TARGET).o: $(SRC:.c=.o)
|
||||||
$(LD) -r $^ -o $@
|
$(LD) -r $^ -o $@
|
||||||
|
|
@ -61,8 +62,8 @@ $(TARGET).ko: $(TARGET).o
|
||||||
install: device modules_install
|
install: device modules_install
|
||||||
|
|
||||||
modules_install: $(OBJS)
|
modules_install: $(OBJS)
|
||||||
mkdir -p /lib/modules/$(VER)/kernel/misc
|
mkdir -p $(TOPDIR)/lib/modules/$(VER)/kernel/misc
|
||||||
install -m 0644 -c $(OBJS) /lib/modules/$(VER)/kernel/misc
|
install -m 0644 -c $(OBJS) $(TOPDIR)/lib/modules/$(VER)/kernel/misc
|
||||||
|
|
||||||
device:
|
device:
|
||||||
rm -f /dev/svgalib_helper* /dev/svga_helper* /dev/svga /dev/svga?
|
rm -f /dev/svgalib_helper* /dev/svga_helper* /dev/svga /dev/svga?
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
# define PCI_GET_CLASS pci_find_class
|
# define PCI_GET_CLASS pci_find_class
|
||||||
# define PCI_GET_DEVICE pci_find_device
|
# define PCI_GET_DEVICE pci_find_device
|
||||||
|
|
||||||
# if defined (PG_chainlock)
|
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,3)
|
||||||
# define my_io_remap_page_range(vma, start, ofs, len, prot) \
|
# define my_io_remap_page_range(vma, start, ofs, len, prot) \
|
||||||
io_remap_page_range(vma,start,ofs,len,prot)
|
io_remap_page_range(vma,start,ofs,len,prot)
|
||||||
# else
|
# else
|
||||||
|
|
@ -70,6 +70,7 @@ typedef void* devfs_handle_t;
|
||||||
|
|
||||||
/* These are also not present in 2.6 kernels ... */
|
/* These are also not present in 2.6 kernels ... */
|
||||||
#if (!defined _LINUX_DEVFS_FS_KERNEL_H) || (defined KERNEL_2_6)
|
#if (!defined _LINUX_DEVFS_FS_KERNEL_H) || (defined KERNEL_2_6)
|
||||||
|
#include <linux/fs.h>
|
||||||
static inline int devfs_register_chrdev (unsigned int major, const char *name,
|
static inline int devfs_register_chrdev (unsigned int major, const char *name,
|
||||||
struct file_operations *fops)
|
struct file_operations *fops)
|
||||||
{
|
{
|
||||||
|
|
@ -77,7 +78,12 @@ static inline int devfs_register_chrdev (unsigned int major, const char *name,
|
||||||
}
|
}
|
||||||
static inline int devfs_unregister_chrdev (unsigned int major,const char *name)
|
static inline int devfs_unregister_chrdev (unsigned int major,const char *name)
|
||||||
{
|
{
|
||||||
return unregister_chrdev (major, name);
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
|
||||||
|
return unregister_chrdev (major, name);
|
||||||
|
#else
|
||||||
|
unregister_chrdev (major, name);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -99,7 +105,8 @@ static inline int devfs_unregister_chrdev (unsigned int major,const char *name)
|
||||||
class_device_create(svgalib_helper_class, \
|
class_device_create(svgalib_helper_class, \
|
||||||
MKDEV(SVGALIB_HELPER_MAJOR, _minor), \
|
MKDEV(SVGALIB_HELPER_MAJOR, _minor), \
|
||||||
&sh_pci_devs[_minor]->dev->dev, _name);
|
&sh_pci_devs[_minor]->dev->dev, _name);
|
||||||
#else /* 2.6.15 changed class_device_create */
|
/* 2.6.15 changed class_device_create */
|
||||||
|
#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
|
||||||
# define SLH_SYSFS_ADD_CONTROL \
|
# define SLH_SYSFS_ADD_CONTROL \
|
||||||
class_device_create(svgalib_helper_class, NULL, \
|
class_device_create(svgalib_helper_class, NULL, \
|
||||||
MKDEV(SVGALIB_HELPER_MAJOR, 0), \
|
MKDEV(SVGALIB_HELPER_MAJOR, 0), \
|
||||||
|
|
@ -109,7 +116,42 @@ static inline int devfs_unregister_chrdev (unsigned int major,const char *name)
|
||||||
class_device_create(svgalib_helper_class, NULL, \
|
class_device_create(svgalib_helper_class, NULL, \
|
||||||
MKDEV(SVGALIB_HELPER_MAJOR, _minor), \
|
MKDEV(SVGALIB_HELPER_MAJOR, _minor), \
|
||||||
&sh_pci_devs[_minor]->dev->dev, _name);
|
&sh_pci_devs[_minor]->dev->dev, _name);
|
||||||
#endif /* 2.6.15 */
|
/* 2.6.26 changed class_device_create to device_create */
|
||||||
|
#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
|
||||||
|
# define SLH_SYSFS_ADD_CONTROL \
|
||||||
|
device_create(svgalib_helper_class, NULL, \
|
||||||
|
MKDEV(SVGALIB_HELPER_MAJOR, 0), \
|
||||||
|
"svga");
|
||||||
|
|
||||||
|
# define SLH_SYSFS_ADD_DEVICE(_name, _minor) \
|
||||||
|
device_create(svgalib_helper_class, &sh_pci_devs[_minor]->dev->dev, \
|
||||||
|
MKDEV(SVGALIB_HELPER_MAJOR, _minor), \
|
||||||
|
_name);
|
||||||
|
/* 2.6.27 changed device_create to device_create_drvdata */
|
||||||
|
#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
|
||||||
|
# define SLH_SYSFS_ADD_CONTROL \
|
||||||
|
device_create_drvdata(svgalib_helper_class, NULL, \
|
||||||
|
MKDEV(SVGALIB_HELPER_MAJOR, 0), \
|
||||||
|
"%s%d", "svga", 0);
|
||||||
|
|
||||||
|
# define SLH_SYSFS_ADD_DEVICE(_name, _minor) \
|
||||||
|
device_create_drvdata(svgalib_helper_class, \
|
||||||
|
&sh_pci_devs[_minor]->dev->dev, \
|
||||||
|
MKDEV(SVGALIB_HELPER_MAJOR, _minor), \
|
||||||
|
"%s%d", _name, _minor);
|
||||||
|
/* 2.6.28 changed device_create_drvdata back to device_create */
|
||||||
|
#else
|
||||||
|
# define SLH_SYSFS_ADD_CONTROL \
|
||||||
|
device_create(svgalib_helper_class, NULL, \
|
||||||
|
MKDEV(SVGALIB_HELPER_MAJOR, 0), NULL, \
|
||||||
|
"%s%d", "svga", 0);
|
||||||
|
|
||||||
|
# define SLH_SYSFS_ADD_DEVICE(_name, _minor) \
|
||||||
|
device_create(svgalib_helper_class, \
|
||||||
|
&sh_pci_devs[_minor]->dev->dev, \
|
||||||
|
MKDEV(SVGALIB_HELPER_MAJOR, _minor), NULL, \
|
||||||
|
"%s%d", _name, _minor);
|
||||||
|
#endif
|
||||||
|
|
||||||
# define SLH_SYSFS_REMOVE_DEVICE(i) \
|
# define SLH_SYSFS_REMOVE_DEVICE(i) \
|
||||||
class_destroy(svgalib_helper_class);
|
class_destroy(svgalib_helper_class);
|
||||||
|
|
@ -161,3 +203,7 @@ static inline int devfs_unregister_chrdev (unsigned int major,const char *name)
|
||||||
#ifndef PCI_VENDOR_ID_RENDITION
|
#ifndef PCI_VENDOR_ID_RENDITION
|
||||||
#define PCI_VENDOR_ID_RENDITION 0x1163
|
#define PCI_VENDOR_ID_RENDITION 0x1163
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef IRQF_SHARED
|
||||||
|
# define IRQF_SHARED SA_SHIRQ
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
#include <linux/config.h>
|
|
||||||
|
|
||||||
#if defined (CONFIG_MODVERSIONS) && !defined (MODVERSIONS)
|
#if defined (CONFIG_MODVERSIONS) && !defined (MODVERSIONS)
|
||||||
# define MODVERSIONS
|
# define MODVERSIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -17,15 +15,22 @@
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
|
#include <linux/version.h>
|
||||||
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
|
||||||
#include <linux/devfs_fs_kernel.h>
|
#include <linux/devfs_fs_kernel.h>
|
||||||
|
#endif
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
|
||||||
#include <linux/thread_info.h>
|
#include <linux/thread_info.h>
|
||||||
|
#endif
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
#include <linux/smp_lock.h>
|
#include <linux/smp_lock.h>
|
||||||
|
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/wait.h>
|
#include <linux/wait.h>
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
|
||||||
#include <linux/syscalls.h>
|
#include <linux/syscalls.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#define __KERNEL_SYSCALLS__
|
#define __KERNEL_SYSCALLS__
|
||||||
#include <linux/unistd.h>
|
#include <linux/unistd.h>
|
||||||
|
|
@ -50,7 +55,7 @@ asmlinkage long (*s_ioperm)(unsigned long from, unsigned long num, int turn_on);
|
||||||
#include "displaystart.h"
|
#include "displaystart.h"
|
||||||
|
|
||||||
int debug=0;
|
int debug=0;
|
||||||
static int all_devices=0;
|
int all_devices=0;
|
||||||
int num_devices=0;
|
int num_devices=0;
|
||||||
|
|
||||||
static char *sdev_id="svgalib_helper";
|
static char *sdev_id="svgalib_helper";
|
||||||
|
|
@ -98,7 +103,11 @@ static int get_dev(int pcipos, int minor) {
|
||||||
static volatile int vsync=0;
|
static volatile int vsync=0;
|
||||||
static wait_queue_head_t vsync_wait;
|
static wait_queue_head_t vsync_wait;
|
||||||
|
|
||||||
static irqreturn_t vsync_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
static irqreturn_t vsync_interrupt(int irq, void *dev_id
|
||||||
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
|
||||||
|
, struct pt_regs *regs
|
||||||
|
#endif
|
||||||
|
)
|
||||||
{
|
{
|
||||||
struct sh_pci_device *dev = (struct sh_pci_device *)dev_id;
|
struct sh_pci_device *dev = (struct sh_pci_device *)dev_id;
|
||||||
|
|
||||||
|
|
@ -153,9 +162,15 @@ static void task_startad(void *data) {
|
||||||
get_user(pciv.address, &user_pciv->address); \
|
get_user(pciv.address, &user_pciv->address); \
|
||||||
get_user(pciv.val, &user_pciv->val);
|
get_user(pciv.val, &user_pciv->val);
|
||||||
#define PUT_PCIV \
|
#define PUT_PCIV \
|
||||||
put_user(pciv.val, &user_pciv->val);
|
put_user(pciv.val, &user_pciv->val);
|
||||||
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
|
||||||
static int svgalib_helper_ioctl( struct inode *inode, struct file *filp,
|
static int svgalib_helper_ioctl( struct inode *inode, struct file *filp,
|
||||||
unsigned int cmd, unsigned long arg) {
|
unsigned int cmd, unsigned long arg) {
|
||||||
|
#else
|
||||||
|
static int svgalib_helper_ioctl(struct file *filp,
|
||||||
|
unsigned int cmd, unsigned long arg) {
|
||||||
|
struct inode *inode=filp->f_dentry->d_inode;
|
||||||
|
#endif
|
||||||
|
|
||||||
io_t iov, *user_iov=(io_t *)arg;
|
io_t iov, *user_iov=(io_t *)arg;
|
||||||
pcic_t pciv, *user_pciv=(pcic_t *)arg;
|
pcic_t pciv, *user_pciv=(pcic_t *)arg;
|
||||||
|
|
@ -355,7 +370,7 @@ static int svgalib_helper_ioctl( struct inode *inode, struct file *filp,
|
||||||
vsync=1;
|
vsync=1;
|
||||||
i=0;
|
i=0;
|
||||||
while(irqs[i]!=-1)
|
while(irqs[i]!=-1)
|
||||||
request_irq(irqs[i++], vsync_interrupt, SA_SHIRQ, "svgalib_helper", sdev_id);
|
request_irq(irqs[i++], vsync_interrupt, IRQF_SHARED, "svgalib_helper", sdev_id);
|
||||||
vga_enable_vsync((void *)sdev_id);
|
vga_enable_vsync((void *)sdev_id);
|
||||||
wait_event_interruptible(vsync_wait, !vsync);
|
wait_event_interruptible(vsync_wait, !vsync);
|
||||||
i=0;
|
i=0;
|
||||||
|
|
@ -443,7 +458,7 @@ static int svgalib_helper_open( struct inode *inode, struct file * filp) {
|
||||||
int i=sh_pci_devs[minor]->dev->irq;
|
int i=sh_pci_devs[minor]->dev->irq;
|
||||||
sh_pci_devs[minor]->opencount++;
|
sh_pci_devs[minor]->opencount++;
|
||||||
if(sh_pci_devs[minor]->opencount==1 && i!=0 && i!=-1 && i!=255)
|
if(sh_pci_devs[minor]->opencount==1 && i!=0 && i!=-1 && i!=255)
|
||||||
request_irq(i, vsync_interrupt, SA_SHIRQ, "svgalib_helper", sh_pci_devs[minor]);
|
request_irq(i, vsync_interrupt, IRQF_SHARED, "svgalib_helper", sh_pci_devs[minor]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef KERNEL_2_6
|
#ifndef KERNEL_2_6
|
||||||
|
|
@ -586,7 +601,11 @@ struct file_operations svgalib_helper_fops = {
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0)
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
#endif
|
#endif
|
||||||
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
|
||||||
.ioctl = svgalib_helper_ioctl,
|
.ioctl = svgalib_helper_ioctl,
|
||||||
|
#else
|
||||||
|
.unlocked_ioctl = svgalib_helper_ioctl,
|
||||||
|
#endif
|
||||||
.mmap = svgalib_helper_mmap,
|
.mmap = svgalib_helper_mmap,
|
||||||
.open = svgalib_helper_open,
|
.open = svgalib_helper_open,
|
||||||
.release = svgalib_helper_release,
|
.release = svgalib_helper_release,
|
||||||
|
|
@ -763,10 +782,15 @@ void cleanup_module(void)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef KERNEL_2_6
|
||||||
|
module_param(debug, int, 0);
|
||||||
|
module_param(all_devices, int, 0);
|
||||||
|
#else
|
||||||
MODULE_PARM(debug, "i");
|
MODULE_PARM(debug, "i");
|
||||||
MODULE_PARM_DESC(debug, "Debug output level.");
|
|
||||||
|
|
||||||
MODULE_PARM(all_devices, "i");
|
MODULE_PARM(all_devices, "i");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MODULE_PARM_DESC(debug, "Debug output level.");
|
||||||
MODULE_PARM_DESC(all_devices, "Give access to all PCI devices, regardless of class.");
|
MODULE_PARM_DESC(all_devices, "Give access to all PCI devices, regardless of class.");
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,14 @@ LRMI_free_real(void *m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef TF_MASK
|
||||||
|
#define TF_MASK X86_EFLAGS_TF
|
||||||
|
#define IF_MASK X86_EFLAGS_IF
|
||||||
|
#define IOPL_MASK X86_EFLAGS_IOPL
|
||||||
|
#define VIF_MASK X86_EFLAGS_VIF
|
||||||
|
#define VIP_MASK X86_EFLAGS_VIP
|
||||||
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
|
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
|
||||||
#define DEFAULT_STACK_SIZE 0x1000
|
#define DEFAULT_STACK_SIZE 0x1000
|
||||||
#define RETURN_TO_32_INT 255
|
#define RETURN_TO_32_INT 255
|
||||||
|
|
|
||||||
|
|
@ -203,6 +203,13 @@ LRMI_free_real(void *m)
|
||||||
|
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
#ifndef TF_MASK
|
||||||
|
#define TF_MASK X86_EFLAGS_TF
|
||||||
|
#define IF_MASK X86_EFLAGS_IF
|
||||||
|
#define IOPL_MASK X86_EFLAGS_IOPL
|
||||||
|
#define VIF_MASK X86_EFLAGS_VIF
|
||||||
|
#define VIP_MASK X86_EFLAGS_VIP
|
||||||
|
#endif
|
||||||
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
|
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
|
||||||
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||||
#define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
|
#define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
|
||||||
|
|
|
||||||
|
|
@ -169,6 +169,13 @@ LRMI_free_real(void *m)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef TF_MASK
|
||||||
|
#define TF_MASK X86_EFLAGS_TF
|
||||||
|
#define IF_MASK X86_EFLAGS_IF
|
||||||
|
#define IOPL_MASK X86_EFLAGS_IOPL
|
||||||
|
#define VIF_MASK X86_EFLAGS_VIF
|
||||||
|
#define VIP_MASK X86_EFLAGS_VIP
|
||||||
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
|
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
|
||||||
#define DEFAULT_STACK_SIZE 0x1000
|
#define DEFAULT_STACK_SIZE 0x1000
|
||||||
|
|
|
||||||
|
|
@ -206,6 +206,13 @@ LRMI_free_real(void *m)
|
||||||
|
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
#ifndef TF_MASK
|
||||||
|
#define TF_MASK X86_EFLAGS_TF
|
||||||
|
#define IF_MASK X86_EFLAGS_IF
|
||||||
|
#define IOPL_MASK X86_EFLAGS_IOPL
|
||||||
|
#define VIF_MASK X86_EFLAGS_VIF
|
||||||
|
#define VIP_MASK X86_EFLAGS_VIP
|
||||||
|
#endif
|
||||||
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
|
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
|
||||||
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||||
#define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
|
#define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
|
||||||
|
|
|
||||||
6
src/udev/56-svga.rules
Normal file
6
src/udev/56-svga.rules
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# /etc/udev/rules.d/56-svga.rules
|
||||||
|
#
|
||||||
|
# When the svgalib_helper.ko module is loaded, it creates file in /dev
|
||||||
|
# This rule sets the proper group and permissions
|
||||||
|
#
|
||||||
|
KERNEL=="svga*", MODE="0660", GROUP="video"
|
||||||
|
|
@ -14,7 +14,7 @@ VPATH = $(srcdir)/src
|
||||||
# Compiler Section (overrides Makefile.cfg)
|
# Compiler Section (overrides Makefile.cfg)
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
INCLUDES += -I$(srcdir)/src
|
INCLUDES += -I$(srcdir)/src -I$(srcdir)/gl
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
# Rules Section
|
# Rules Section
|
||||||
|
|
@ -48,7 +48,7 @@ all: lib3dkit.a plane wrapdemo
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
all: lib3dkit.so.$(VERSION) plane wrapdemo
|
all: lib3dkit.so.$(VERSION) plane wrapdemo otherfiles
|
||||||
|
|
||||||
# These rules are for ELF only.
|
# These rules are for ELF only.
|
||||||
lib3dkit.so.$(VERSION): $(OBJECTS)
|
lib3dkit.so.$(VERSION): $(OBJECTS)
|
||||||
|
|
@ -57,7 +57,7 @@ lib3dkit.so.$(VERSION): $(OBJECTS)
|
||||||
|
|
||||||
$(sharedlibdir)/lib3dkit.so.$(VERSION): lib3dkit.so.$(VERSION)
|
$(sharedlibdir)/lib3dkit.so.$(VERSION): lib3dkit.so.$(VERSION)
|
||||||
$(INSTALL_SHLIB) $< $(sharedlibdir)/$<
|
$(INSTALL_SHLIB) $< $(sharedlibdir)/$<
|
||||||
(cd $(sharedlibdir); ln -sf lib3dkit.so.$(VERSION) `echo lib3dkit.so.$(VERSION) | sed 's/\.so\..*/.so/'` )
|
(cd $(sharedlibdir); ln -sf lib3dkit.so.$(VERSION) `echo lib3dkit.so.$(VERSION) | sed 's/\.so\..*/.so/'`; ln -sf lib3dkit.so.$(VERSION) `echo lib3dkit.so.$(VERSION) | sed 's/\.so\..*/.so.1/'` )
|
||||||
-ldconfig
|
-ldconfig
|
||||||
|
|
||||||
install: $(sharedlibdir)/lib3dkit.so.$(VERSION) installheaders
|
install: $(sharedlibdir)/lib3dkit.so.$(VERSION) installheaders
|
||||||
|
|
@ -76,15 +76,20 @@ lib3dkit.a: $(ALLOBJS)
|
||||||
$(AR) rcs lib3dkit.a $(ALLOBJS)
|
$(AR) rcs lib3dkit.a $(ALLOBJS)
|
||||||
|
|
||||||
plane: planukit.o planinit.o $(OBJECTS) $(LVGADEP)
|
plane: planukit.o planinit.o $(OBJECTS) $(LVGADEP)
|
||||||
$(CC) $(LDFLAGS) -o plane planukit.o planinit.o $(OBJECTS) $(LIBS)
|
$(CC) $(LDFLAGS) -o plane planukit.o planinit.o $(OBJECTS) $(LIBS) -L$(srcdir)/sharedlib
|
||||||
|
$(INSTALL_PROGRAM) plane $(docdir)/demos/threeDKit
|
||||||
# chown root plane
|
# chown root plane
|
||||||
# chmod u+s plane
|
# chmod u+s plane
|
||||||
|
|
||||||
wrapdemo: wrapdemo.o $(OBJECTS) $(LVGADEP)
|
wrapdemo: wrapdemo.o $(OBJECTS) $(LVGADEP)
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -o wrapdemo wrapdemo.c $(OBJECTS) $(LIBS)
|
$(CC) $(CFLAGS) $(LDFLAGS) -o wrapdemo wrapdemo.c $(OBJECTS) $(LIBS) -L$(srcdir)/sharedlib
|
||||||
|
$(INSTALL_PROGRAM) wrapdemo $(docdir)/demos/threeDKit
|
||||||
# chown root wrapdemo
|
# chown root wrapdemo
|
||||||
# chmod u+s wrapdemo
|
# chmod u+s wrapdemo
|
||||||
|
|
||||||
|
otherfiles:
|
||||||
|
$(INSTALL_DATA) susannaRUBENS.bmp 0-README $(docdir)/demos/threeDKit
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o core lib3dkit.a lib3dkit.so.* plane wrapdemo *.bak
|
rm -f *.o core lib3dkit.a lib3dkit.so.* plane wrapdemo *.bak
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,9 @@ static GTF_constants GC = {
|
||||||
|
|
||||||
/*-------------------------- Implementation -------------------------------*/
|
/*-------------------------- Implementation -------------------------------*/
|
||||||
|
|
||||||
static double round(double v)
|
static double svg_round(double v);
|
||||||
|
|
||||||
|
double svg_round(double v)
|
||||||
{
|
{
|
||||||
return floor(v + 0.5);
|
return floor(v + 0.5);
|
||||||
}
|
}
|
||||||
|
|
@ -84,9 +86,9 @@ static void GetInternalConstants(GTF_constants *c)
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
{
|
{
|
||||||
c->margin = GC.margin;
|
c->margin = GC.margin;
|
||||||
c->cellGran = round(GC.cellGran);
|
c->cellGran = svg_round(GC.cellGran);
|
||||||
c->minPorch = round(GC.minPorch);
|
c->minPorch = svg_round(GC.minPorch);
|
||||||
c->vSyncRqd = round(GC.vSyncRqd);
|
c->vSyncRqd = svg_round(GC.vSyncRqd);
|
||||||
c->hSync = GC.hSync;
|
c->hSync = GC.hSync;
|
||||||
c->minVSyncBP = GC.minVSyncBP;
|
c->minVSyncBP = GC.minVSyncBP;
|
||||||
if (GC.k == 0)
|
if (GC.k == 0)
|
||||||
|
|
@ -140,13 +142,13 @@ void GTF_calcTimings(double hPixels,double vLines,double freq,
|
||||||
vFreq = hFreq = dotClock = freq;
|
vFreq = hFreq = dotClock = freq;
|
||||||
|
|
||||||
/* Round pixels to character cell granularity */
|
/* Round pixels to character cell granularity */
|
||||||
hPixels = round(hPixels / c.cellGran) * c.cellGran;
|
hPixels = svg_round(hPixels / c.cellGran) * c.cellGran;
|
||||||
|
|
||||||
/* For interlaced mode halve the vertical parameters, and double
|
/* For interlaced mode halve the vertical parameters, and double
|
||||||
* the required field refresh rate.
|
* the required field refresh rate.
|
||||||
*/
|
*/
|
||||||
if (wantInterlace) {
|
if (wantInterlace) {
|
||||||
vLines = round(vLines / 2);
|
vLines = svg_round(vLines / 2);
|
||||||
vFieldRate = vFreq * 2;
|
vFieldRate = vFreq * 2;
|
||||||
dotClock = dotClock * 2;
|
dotClock = dotClock * 2;
|
||||||
interlace = 0.5;
|
interlace = 0.5;
|
||||||
|
|
@ -158,8 +160,8 @@ void GTF_calcTimings(double hPixels,double vLines,double freq,
|
||||||
|
|
||||||
/* Determine the lines for margins */
|
/* Determine the lines for margins */
|
||||||
if (wantMargins) {
|
if (wantMargins) {
|
||||||
topMarginLines = round(c.margin / 100 * vLines);
|
topMarginLines = svg_round(c.margin / 100 * vLines);
|
||||||
botMarginLines = round(c.margin / 100 * vLines);
|
botMarginLines = svg_round(c.margin / 100 * vLines);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
topMarginLines = 0;
|
topMarginLines = 0;
|
||||||
|
|
@ -173,11 +175,11 @@ void GTF_calcTimings(double hPixels,double vLines,double freq,
|
||||||
(vLines + (2*topMarginLines) + c.minPorch + interlace) * 1000000;
|
(vLines + (2*topMarginLines) + c.minPorch + interlace) * 1000000;
|
||||||
|
|
||||||
/* Find the number of lines in vSync + back porch */
|
/* Find the number of lines in vSync + back porch */
|
||||||
vSyncBP = round(c.minVSyncBP / hPeriodEst);
|
vSyncBP = svg_round(c.minVSyncBP / hPeriodEst);
|
||||||
}
|
}
|
||||||
else if (type == GTF_lockHF) {
|
else if (type == GTF_lockHF) {
|
||||||
/* Find the number of lines in vSync + back porch */
|
/* Find the number of lines in vSync + back porch */
|
||||||
vSyncBP = round((c.minVSyncBP * hFreq) / 1000);
|
vSyncBP = svg_round((c.minVSyncBP * hFreq) / 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Find the number of lines in the V back porch alone */
|
/* Find the number of lines in the V back porch alone */
|
||||||
|
|
@ -205,8 +207,8 @@ void GTF_calcTimings(double hPixels,double vLines,double freq,
|
||||||
|
|
||||||
/* Find the number of pixels in the left and right margins */
|
/* Find the number of pixels in the left and right margins */
|
||||||
if (wantMargins) {
|
if (wantMargins) {
|
||||||
leftMarginPixels = round(hPixels * c.margin) / (100 * c.cellGran);
|
leftMarginPixels = svg_round(hPixels * c.margin) / (100 * c.cellGran);
|
||||||
rightMarginPixels = round(hPixels * c.margin) / (100 * c.cellGran);
|
rightMarginPixels = svg_round(hPixels * c.margin) / (100 * c.cellGran);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
leftMarginPixels = 0;
|
leftMarginPixels = 0;
|
||||||
|
|
@ -235,17 +237,17 @@ void GTF_calcTimings(double hPixels,double vLines,double freq,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Find the number of pixels in blanking time */
|
/* Find the number of pixels in blanking time */
|
||||||
hBlankPixels = round((hTotalActivePixels * idealDutyCycle) /
|
hBlankPixels = svg_round((hTotalActivePixels * idealDutyCycle) /
|
||||||
((100 - idealDutyCycle) * 2 * c.cellGran)) * (2 * c.cellGran);
|
((100 - idealDutyCycle) * 2 * c.cellGran)) * (2 * c.cellGran);
|
||||||
|
|
||||||
/* Find the total number of pixels */
|
/* Find the total number of pixels */
|
||||||
hTotalPixels = hTotalActivePixels + hBlankPixels;
|
hTotalPixels = hTotalActivePixels + hBlankPixels;
|
||||||
|
|
||||||
/* Find the horizontal back porch */
|
/* Find the horizontal back porch */
|
||||||
hBackPorch = round((hBlankPixels / 2) / c.cellGran) * c.cellGran;
|
hBackPorch = svg_round((hBlankPixels / 2) / c.cellGran) * c.cellGran;
|
||||||
|
|
||||||
/* Find the horizontal sync width */
|
/* Find the horizontal sync width */
|
||||||
hSyncWidth = round(((c.hSync/100) * hTotalPixels) / c.cellGran) * c.cellGran;
|
hSyncWidth = svg_round(((c.hSync/100) * hTotalPixels) / c.cellGran) * c.cellGran;
|
||||||
|
|
||||||
/* Find the horizontal sync + back porch */
|
/* Find the horizontal sync + back porch */
|
||||||
hSyncBP = hBackPorch + hSyncWidth;
|
hSyncBP = hBackPorch + hSyncWidth;
|
||||||
|
|
@ -258,7 +260,7 @@ void GTF_calcTimings(double hPixels,double vLines,double freq,
|
||||||
hPeriod = 1000 / hFreq;
|
hPeriod = 1000 / hFreq;
|
||||||
|
|
||||||
/* Find the number of lines in vSync + back porch */
|
/* Find the number of lines in vSync + back porch */
|
||||||
vSyncBP = round((c.minVSyncBP * hFreq) / 1000);
|
vSyncBP = svg_round((c.minVSyncBP * hFreq) / 1000);
|
||||||
|
|
||||||
/* Find the number of lines in the V back porch alone */
|
/* Find the number of lines in the V back porch alone */
|
||||||
vBackPorch = vSyncBP - c.vSyncRqd;
|
vBackPorch = vSyncBP - c.vSyncRqd;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue