Importing xf86-video-impact 0.2.0

This commit is contained in:
matthieu 2006-11-26 20:05:22 +00:00
parent 1e831521b3
commit 89aa54102a
26 changed files with 44345 additions and 0 deletions

View File

@ -0,0 +1,12 @@
This is a stub file. This package has not yet had its complete licensing
information compiled. Please see the individual source files for details on
your rights to use and modify this software.
Please submit updated COPYING files to the Xorg bugzilla:
https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
All licensing questions regarding this software should be directed at the
Xorg mailing list:
http://lists.freedesktop.org/mailman/listinfo/xorg

View File

@ -0,0 +1,5 @@
2006-06-25 Alex Deucher <agd5f@yahoo.com>
Add Impact driver for SGI Indigo2 and Octane. Written by
Peter Fuerst and Stanislaw Skowronek, modularilzed by
Stephen Becker

View File

@ -0,0 +1,24 @@
# Copyright 2005 Adam Jackson.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# on the rights to use, copy, modify, merge, publish, distribute, sub
# license, and/or sell copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man
EXTRA_DIST = XF86Config.impact

View File

@ -0,0 +1,650 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# Copyright 2005 Adam Jackson.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# on the rights to use, copy, modify, merge, publish, distribute, sub
# license, and/or sell copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure COPYING ChangeLog config.guess \
config.sub depcomp install-sh ltmain.sh missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \
install-recursive installcheck-recursive installdirs-recursive \
pdf-recursive ps-recursive uninstall-info-recursive \
uninstall-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
moduledir = @moduledir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man
EXTRA_DIST = XF86Config.impact
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile config.h
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr \
distclean-libtool distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
info: info-recursive
info-am:
install-data-am:
install-exec-am:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
check-am clean clean-generic clean-libtool clean-recursive \
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
dist-shar dist-tarZ dist-zip distcheck distclean \
distclean-generic distclean-hdr distclean-libtool \
distclean-recursive distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-generic \
mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
tags tags-recursive uninstall uninstall-am uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,100 @@
Section "Files"
FontPath "/usr/share/fonts/local/"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/CID/"
FontPath "/usr/share/fonts/Speedo/"
FontPath "/usr/share/fonts/75dpi/"
FontPath "/usr/share/fonts/100dpi/"
EndSection
Section "Module"
Load "dbe"
SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection
Load "type1"
Load "freetype"
EndSection
Section "ServerFlags"
Option "DisableVidModeExtension"
Option "blank time" "10" # 10 minutes
Option "standby time" "20"
Option "suspend time" "30"
Option "off time" "60"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "AutoRepeat" "500 30"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "CorePointer"
Option "Protocol" "ImPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Monitor1"
DisplaySize 340 270
#DisplaySize 380 310
HorizSync 30.0 - 82.0 # multiple ranges of sync frequencies
VertRefresh 50.0 - 75.0 # typical for a single frequency fixed-sync monitor
#ModeLine "1280x1024@70Hz" 130 1280 1320 1480 1728 1024 1029 1036 1077
EndSection
Section "Device"
Identifier "Impact1"
Driver "impact"
Option "Depth" "24"
EndSection
Section "Screen"
Identifier "Screen1"
Device "Impact1"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Depth 8
Modes "1280x1024"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Layout1"
Screen "Screen1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection

7770
driver/xf86-video-impact/aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

1466
driver/xf86-video-impact/config.guess vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
/* config.h.in. Generated from configure.ac by autoheader. */
#include "xorg-server.h"
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Version number of package */
#undef VERSION

1579
driver/xf86-video-impact/config.sub vendored Normal file

File diff suppressed because it is too large Load Diff

21437
driver/xf86-video-impact/configure vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
# Copyright 2005 Adam Jackson.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# on the rights to use, copy, modify, merge, publish, distribute, sub
# license, and/or sell copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Process this file with autoconf to produce a configure script
AC_PREREQ(2.57)
AC_INIT([xf86-video-impact],
0.2.0,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-impact)
AC_CONFIG_SRCDIR([Makefile.am])
AM_CONFIG_HEADER([config.h])
AC_CONFIG_AUX_DIR(.)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
# Checks for programs.
AC_PROG_LIBTOOL
AC_PROG_CC
AH_TOP([#include "xorg-server.h"])
AC_ARG_WITH(xorg-module-dir,
AC_HELP_STRING([--with-xorg-module-dir=DIR],
[Default xorg module directory [[default=$libdir/xorg/modules]]]),
[moduledir="$withval"],
[moduledir="$libdir/xorg/modules"])
# Checks for pkg-config packages
PKG_CHECK_MODULES(XORG, [xorg-server xproto])
sdkdir=$(pkg-config --variable=sdkdir xorg-server)
# Checks for libraries.
# Checks for header files.
AC_HEADER_STDC
AC_SUBST([XORG_CFLAGS])
AC_SUBST([moduledir])
DRIVER_NAME=impact
AC_SUBST([DRIVER_NAME])
XORG_MANPAGE_SECTIONS
XORG_RELEASE_VERSION
AC_OUTPUT([
Makefile
src/Makefile
man/Makefile
])

View File

@ -0,0 +1,530 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2005-07-09.11
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test -f "$tmpdepfile"; then :
else
stripped=`echo "$stripped" | sed 's,^.*/,,'`
tmpdepfile="$stripped.u"
fi
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mecanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no
for arg in "$@"; do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
for arg
do
case "$arg" in
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@ -0,0 +1,323 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2005-05-14.22
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
chmodcmd="$chmodprog 0755"
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=
dst=
dir_arg=
dstarg=
no_target_directory=
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
-c (ignored)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while test -n "$1"; do
case $1 in
-c) shift
continue;;
-d) dir_arg=true
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
--help) echo "$usage"; exit $?;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t) dstarg=$2
shift
shift
continue;;
-T) no_target_directory=true
shift
continue;;
--version) echo "$0 $scriptversion"; exit $?;;
*) # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
test -n "$dir_arg$dstarg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg"
shift # fnord
fi
shift # arg
dstarg=$arg
done
break;;
esac
done
if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src ;;
esac
if test -n "$dir_arg"; then
dst=$src
src=
if test -d "$dst"; then
mkdircmd=:
chmodcmd=
else
mkdircmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dstarg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dstarg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst ;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dstarg: Is a directory" >&2
exit 1
fi
dst=$dst/`basename "$src"`
fi
fi
# This sed command emulates the dirname command.
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# Skip lots of stat calls in the usual case.
if test ! -d "$dstdir"; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
shift
IFS=$oIFS
pathcomp=
while test $# -ne 0 ; do
pathcomp=$pathcomp$1
shift
if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp"
# mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This
# is OK.
test -d "$pathcomp" || exit
fi
pathcomp=$pathcomp/
done
fi
if test -n "$dir_arg"; then
$doit $mkdircmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
else
dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
trap '(exit $?); exit' 1 2 13 15
# Copy the file name to the temp name.
$doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
# Now rename the file to the real destination.
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|| {
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
if test -f "$dstdir/$dstfile"; then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| {
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit 1
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
}
}
fi || { (exit 1); exit 1; }
done
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit 0
}
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,59 @@
# $Id: Makefile.am,v 1.1.1.1 2006/11/26 20:05:41 matthieu Exp $
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the copyright holders shall
# not be used in advertising or otherwise to promote the sale, use or
# other dealings in this Software without prior written authorization
# from the copyright holders.
#
drivermandir = $(DRIVER_MAN_DIR)
driverman_PRE = @DRIVER_NAME@.man
driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@)
EXTRA_DIST = @DRIVER_NAME@.man
CLEANFILES = $(driverman_DATA)
SED = sed
# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
XORGMANNAME = X Version 11
MAN_SUBSTS = \
-e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
-e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
-e 's|__xservername__|Xorg|g' \
-e 's|__xconfigfile__|xorg.conf|g' \
-e 's|__projectroot__|$(prefix)|g' \
-e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
-e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \
-e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
-e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
-e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
.man.$(DRIVER_MAN_SUFFIX):
sed $(MAN_SUBSTS) < $< > $@

View File

@ -0,0 +1,415 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# $Id: Makefile.in,v 1.1.1.1 2006/11/26 20:05:41 matthieu Exp $
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the copyright holders shall
# not be used in advertising or otherwise to promote the sale, use or
# other dealings in this Software without prior written authorization
# from the copyright holders.
#
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = man
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(drivermandir)"
drivermanDATA_INSTALL = $(INSTALL_DATA)
DATA = $(driverman_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
moduledir = @moduledir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
drivermandir = $(DRIVER_MAN_DIR)
driverman_PRE = @DRIVER_NAME@.man
driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@)
EXTRA_DIST = @DRIVER_NAME@.man
CLEANFILES = $(driverman_DATA)
SED = sed
# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
XORGMANNAME = X Version 11
MAN_SUBSTS = \
-e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
-e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
-e 's|__xservername__|Xorg|g' \
-e 's|__xconfigfile__|xorg.conf|g' \
-e 's|__projectroot__|$(prefix)|g' \
-e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
-e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \
-e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
-e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
-e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
all: all-am
.SUFFIXES:
.SUFFIXES: .$(DRIVER_MAN_SUFFIX) .man
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu man/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-drivermanDATA: $(driverman_DATA)
@$(NORMAL_INSTALL)
test -z "$(drivermandir)" || $(mkdir_p) "$(DESTDIR)$(drivermandir)"
@list='$(driverman_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(drivermanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(drivermandir)/$$f'"; \
$(drivermanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(drivermandir)/$$f"; \
done
uninstall-drivermanDATA:
@$(NORMAL_UNINSTALL)
@list='$(driverman_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(drivermandir)/$$f'"; \
rm -f "$(DESTDIR)$(drivermandir)/$$f"; \
done
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(drivermandir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-drivermanDATA
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-drivermanDATA uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-drivermanDATA \
install-exec install-exec-am install-info install-info-am \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am uninstall uninstall-am uninstall-drivermanDATA \
uninstall-info-am
.man.$(DRIVER_MAN_SUFFIX):
sed $(MAN_SUBSTS) < $< > $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,49 @@
.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/impact/impact.man,v 1.3 2001/11/23 19:50:45 dawes Exp $
.\" shorthand for double quote that works everywhere.
.ds q \N'34'
.TH IMPACT __drivermansuffix__ __vendorversion__
.SH NAME
impact \- Impact video driver
.SH SYNOPSIS
.nf
.B "Section \*qDevice\*q"
.BI " Identifier \*q" devname \*q
.B " Driver \*qimpact\*q"
\ \ ...
.B EndSection
.fi
.SH DESCRIPTION
.B impact
is an XFree86 driver for the SGI Indigo2's impact video cards.
.SH SUPPORTED HARDWARE
The
.B impact
driver supports the Impact (MardiGras) cards found in SGI Indigo2 and ImpactSR
(also MardiGras) cards found in SGI Octane.
It supports Impact in 24bit TrueColor mode. There is also a 8bit PseudoColor
mode, but this affects the shadow frame-buffer only (memory usage), hardware
settings are the same.
.SH CONFIGURATION DETAILS
Please refer to XF86Config(__filemansuffix__) for general configuration
details. This section only covers configuration details specific to this
driver.
.PP
The driver auto-detects all device information necessary to initialize
the card. However, you have to decide what color mode you want:
.br
.TP
.BI "Option \*qbitplanes\*q \*q" integer \*q
number of bitplanes of the board (8 or 24)
Default: 24.
.SH "SEE ALSO"
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(__miscmansuffix__)
.SH AUTHORS
Authors:
.TP
Impact XFree86 driver: Peter FÜrst \fIpf@net.alphadv.de\fP
.TP
ImpactSR kernel driver: Stanislaw Skowronek \fIsskowron@et.put.poznan.pl\fP
.TP
Newport XFree86 driver: Guido GÜnther \fIagx@sigxcpu.org\fP
.TP

View File

@ -0,0 +1,360 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
scriptversion=2005-06-08.21
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program).
case "$1" in
lex|yacc)
# Not GNU programs, they don't have --version.
;;
tar)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
exit 1
fi
;;
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
# If the file does not exist, the user really needs makeinfo;
# let's fail without touching anything.
test -f $file || exit 1
touch $file
;;
tar)
shift
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@ -0,0 +1,37 @@
# Copyright 2005 Adam Jackson.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# on the rights to use, copy, modify, merge, publish, distribute, sub
# license, and/or sell copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# this is obnoxious:
# -module lets us name the module exactly how we want
# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
# _ladir passes a dummy rpath to libtool so the thing will actually link
# TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
AM_CFLAGS = @XORG_CFLAGS@
impact_drv_la_LTLIBRARIES = impact_drv.la
impact_drv_la_LDFLAGS = -module -avoid-version
impact_drv_ladir = @moduledir@/drivers
impact_drv_la_SOURCES = \
impact_cmap.c \
impact_driver.c \
impact.h \
impact_regs.c \
impact_regs.h \
impact_shadow.c

View File

@ -0,0 +1,509 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# Copyright 2005 Adam Jackson.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# on the rights to use, copy, modify, merge, publish, distribute, sub
# license, and/or sell copies of the Software, and to permit persons to whom
# the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(impact_drv_ladir)"
impact_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(impact_drv_la_LTLIBRARIES)
impact_drv_la_LIBADD =
am_impact_drv_la_OBJECTS = impact_cmap.lo impact_driver.lo \
impact_regs.lo impact_shadow.lo
impact_drv_la_OBJECTS = $(am_impact_drv_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(impact_drv_la_SOURCES)
DIST_SOURCES = $(impact_drv_la_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
moduledir = @moduledir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
# this is obnoxious:
# -module lets us name the module exactly how we want
# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
# _ladir passes a dummy rpath to libtool so the thing will actually link
# TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
AM_CFLAGS = @XORG_CFLAGS@
impact_drv_la_LTLIBRARIES = impact_drv.la
impact_drv_la_LDFLAGS = -module -avoid-version
impact_drv_ladir = @moduledir@/drivers
impact_drv_la_SOURCES = \
impact_cmap.c \
impact_driver.c \
impact.h \
impact_regs.c \
impact_regs.h \
impact_shadow.c
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-impact_drv_laLTLIBRARIES: $(impact_drv_la_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(impact_drv_ladir)" || $(mkdir_p) "$(DESTDIR)$(impact_drv_ladir)"
@list='$(impact_drv_la_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(impact_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(impact_drv_ladir)/$$f'"; \
$(LIBTOOL) --mode=install $(impact_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(impact_drv_ladir)/$$f"; \
else :; fi; \
done
uninstall-impact_drv_laLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(impact_drv_la_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(impact_drv_ladir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(impact_drv_ladir)/$$p"; \
done
clean-impact_drv_laLTLIBRARIES:
-test -z "$(impact_drv_la_LTLIBRARIES)" || rm -f $(impact_drv_la_LTLIBRARIES)
@list='$(impact_drv_la_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
impact_drv.la: $(impact_drv_la_OBJECTS) $(impact_drv_la_DEPENDENCIES)
$(LINK) -rpath $(impact_drv_ladir) $(impact_drv_la_LDFLAGS) $(impact_drv_la_OBJECTS) $(impact_drv_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/impact_cmap.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/impact_driver.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/impact_regs.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/impact_shadow.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
for dir in "$(DESTDIR)$(impact_drv_ladir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-impact_drv_laLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-impact_drv_laLTLIBRARIES
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-impact_drv_laLTLIBRARIES uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-impact_drv_laLTLIBRARIES clean-libtool ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-impact_drv_laLTLIBRARIES install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-impact_drv_laLTLIBRARIES \
uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,143 @@
/*
* impact.h 2005/07/12 23:24:15, Copyright (c) 2005 peter fuerst
*
* Based on:
* # newport.h,v 1.4 2000/11/29 20:58:10 agx Exp #
* # xc/programs/Xserver/hw/xfree86/drivers/newport/newport.h,v
* 1.8 2001/12/19 21:31:21 dawes Exp #
*/
#ifndef __IMPACT_H__
#define __IMPACT_H__
/*
* All drivers should include these:
*/
#include "xf86.h"
#include "xf86_OSproc.h"
#include "compiler.h"
#include "xf86Resources.h"
#include "xf86cmap.h"
/* xaa & hardware cursor */
#include "xaa.h"
#include "xf86Cursor.h"
/* register definitions of the Impact card */
#include "impact_regs.h"
#if 0
# define DEBUG 1
#endif
#ifdef DEBUG
# define TRACE_ENTER(str) ErrorF("impact: " str " %d\n",pScrn->scrnIndex)
# define TRACE_EXIT(str) ErrorF("impact: " str " done\n")
# define TRACE(str) ErrorF("impact trace: " str "\n")
# define TRACEV(str...) ErrorF(str)
#else
# define TRACE_ENTER(str)
# define TRACE_EXIT(str)
# define TRACE(str)
# define TRACEV(str...)
#endif
#define IMPACT_FIXED_W_SCRN 1280
#define IMPACT_FIXED_H_SCRN 1024
typedef struct {
unsigned busID;
unsigned isSR;
int devFD;
int bitplanes;
/* revision numbers of the various pieces of silicon */
unsigned int board_rev, cmap_rev, rex_rev, xmap_rev;
ImpactRegsPtr pImpactRegs; /* Pointer to HQ registers */
unsigned long base_addr0;
unsigned long base_offset;
/* ShadowFB stuff: */
pointer ShadowPtr;
unsigned long int ShadowPitch;
unsigned int Bpp; /* Bytes per pixel */
/* for 8bpp ... */
unsigned pseudo_palette[256];
/* wrapped funtions: */
CloseScreenProcPtr CloseScreen;
/* impact register backups: */
struct {
mgireg32_t main_mode;
mgireg8_t pp1select;
} txt_xmap;
unsigned short txt_vc3[0x20];
/* impact register handling for FullHouse/SpeedRacer: */
void (*WaitCfifoEmpty)(ImpactRegsPtr);
unsigned (*WaitCfifo)(ImpactRegsPtr);
unsigned (*WaitDMAOver)(ImpactRegsPtr);
unsigned (*WaitDMAReady)(ImpactRegsPtr);
unsigned short (*Vc3Get)(ImpactRegsPtr, CARD8);
void (*Vc3Set)(ImpactRegsPtr, CARD8, unsigned short);
CARD32 (*XmapGetModeRegister)(ImpactRegsPtr, CARD8);
void (*XmapSetModeRegister)(ImpactRegsPtr, CARD8, CARD32);
void (*RefreshArea8)(ScrnInfoPtr, int num, BoxPtr pbox);
void (*RefreshArea32)(ScrnInfoPtr, int num, BoxPtr pbox);
void (*FlushBoxCache)(int, char*, BoxPtr, unsigned);
OptionInfoPtr Options;
} ImpactRec, *ImpactPtr;
#define IMPACTPTR(p) ((ImpactPtr)((p)->driverPrivate))
#define IMPACTREGSPTR(p) ((IMPACTPTR(p))->pImpactRegs)
/* Impact_regs.c */
void ImpactI2WaitCfifoEmpty(ImpactRegsPtr);
void ImpactSRWaitCfifoEmpty(ImpactRegsPtr);
void ImpactI2WaitDMAOver(ImpactRegsPtr);
void ImpactSRWaitDMAOver(ImpactRegsPtr);
void ImpactI2WaitDMAReady(ImpactRegsPtr);
void ImpactSRWaitDMAReady(ImpactRegsPtr);
unsigned ImpactI2WaitCfifo(ImpactRegsPtr,int);
unsigned ImpactSRWaitCfifo(ImpactRegsPtr,int);
unsigned short ImpactI2Vc3Get(ImpactRegsPtr, CARD8 vc2Ireg);
unsigned short ImpactSRVc3Get(ImpactRegsPtr, CARD8 vc2Ireg);
void ImpactI2Vc3Set(ImpactRegsPtr, CARD8 vc2Ireg, unsigned short val);
void ImpactSRVc3Set(ImpactRegsPtr, CARD8 vc2Ireg, unsigned short val);
void ImpactI2XmapSetModeRegister(ImpactRegsPtr, CARD8 address, CARD32 mode);
void ImpactSRXmapSetModeRegister(ImpactRegsPtr, CARD8 address, CARD32 mode);
CARD32 ImpactI2XmapGetModeRegister(ImpactRegsPtr, CARD8 address);
CARD32 ImpactSRXmapGetModeRegister(ImpactRegsPtr, CARD8 address);
void ImpactVc3DisableCursor(ScrnInfoPtr);
void ImpactVc3BlankScreen(ScrnInfoPtr, int);
void ImpactXmapSet24bpp(ScrnInfoPtr);
void ImpactBackupVc3(ScrnInfoPtr);
void ImpactRestoreVc3(ScrnInfoPtr);
void ImpactBackupRex(ScrnInfoPtr);
void ImpactRestoreRex(ScrnInfoPtr);
void ImpactBackupXmap(ScrnInfoPtr);
void ImpactRestoreXmap(ScrnInfoPtr);
/* newort_cmap.c */
static __inline__ unsigned
ImpactGetPalReg(ImpactPtr pImpact, int i)
{
return pImpact->pseudo_palette[i & 0xff];
}
void ImpactLoadPalette(ScrnInfoPtr, int numColors, int *indices,
LOCO* colors, VisualPtr);
void ImpactRestorePalette(ScrnInfoPtr);
void ImpactBackupPalette(ScrnInfoPtr);
/* impact_shadow.c */
int ImpactDepth24Flags(void);
void ImpactI2RefreshArea8(ScrnInfoPtr, int num, BoxPtr pbox);
void ImpactSRRefreshArea8(ScrnInfoPtr, int num, BoxPtr pbox);
void ImpactI2RefreshArea32(ScrnInfoPtr, int num, BoxPtr pbox);
void ImpactSRRefreshArea32(ScrnInfoPtr, int num, BoxPtr pbox);
#endif /* __IMPACT_H__ */

View File

@ -0,0 +1,52 @@
/*
* impact.h 2005/07/15 01:40:13, Copyright (c) 2005 peter fuerst
*
* Based on:
* # newport_cmap.c,v 1.1 2000/11/29 20:58:10 agx Exp #
* # xc/programs/Xserver/hw/xfree86/drivers/newport/newport_cmap.c,v
* 1.2 2001/11/23 19:50:45 dawes Exp #
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "impact.h"
/*
unsigned ImpactGetPalReg(ImpactPtr pImpact, int i)
{
return pImpact->pseudo_palette[i & 0xff];
}
*/
/* Load a colormap into the "hardware" */
void ImpactLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
LOCO* colors, VisualPtr pVisual)
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
TRACEV("ImpactLoadPalette(%d) %c", numColors, numColors!=1?'\n':0);
if (numColors > 256) numColors = 256;
for ( ; numColors > 0; numColors--, indices++, colors++) {
unsigned rgb = colors->blue & 0xff00;
rgb = (rgb<<8) | (colors->green & 0xff00) | (colors->red>>8);
pImpact->pseudo_palette[*indices] = rgb;
TRACEV("%d:%04x %04x,%04x,%04x\n", *indices, rgb,
(int)colors->red, (int)colors->green, (int)colors->blue);
}
TRACEV("\n");
}
void ImpactBackupPalette(ScrnInfoPtr pScrn)
{
(void)IMPACTPTR(pScrn)->pseudo_palette; /* Nothing to do? */
}
/* restore the default colormap */
void ImpactRestorePalette(ScrnInfoPtr pScrn)
{
(void)IMPACTPTR(pScrn)->pseudo_palette; /* Nothing to do? */
}

View File

@ -0,0 +1,888 @@
/*
* impact_driver.c 2005/07/12 23:24:15, Copyright (c) 2005 peter fuerst
*
* Driver for the SGI Impact/ImpactSR graphics card
*
* This driver is based on the
* newport driver, (c) 2000,2001 Guido Guenther <agx@sigxcpu.org>,
* # newport_driver.c,v 1.2 2000/11/29 20:58:10 agx Exp #
* # xc/programs/Xserver/hw/xfree86/drivers/newport/newport_driver.c,v
* 1.19 2002/01/04 21:22:33 tsi Exp #
*
* The newport driver is based on the newport.c & newport_con.c kernel code
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is fur-
* nished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
* NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
* NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of the XFree86 Project shall not
* be used in advertising or otherwise to promote the sale, use or other deal-
* ings in this Software without prior written authorization from the XFree86
* Project.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/* [un]mmap */
#include <sys/mman.h>
/* function prototypes, common data structures & generic includes */
#include "impact.h"
/* Drivers using the mi SW cursor need: */
#include "mipointer.h"
/* Drivers using the mi implementation of backing store need: */
#include "mibstore.h"
/* Drivers using the mi colourmap code need: */
#include "micmap.h"
/* Drivers using fb need: */
#include "fb.h"
/* Drivers using the shadow frame buffer need: */
#include "shadowfb.h"
/* Xv Extension */
#include "xf86xv.h"
#include <X11/extensions/Xv.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#define IMPACT_MAX_BOARDS 3
#define IMPACT_FB_MMAP_OFF(pool) ((pool)<<24)
#define IMPACT_VERSION 4000
#define IMPACT_NAME "IMPACT"
#define IMPACT_DRIVER_NAME "impact"
#define IMPACT_MAJOR_VERSION 0
#define IMPACT_MINOR_VERSION 2
#define IMPACT_PATCHLEVEL 0
struct probed_id {
unsigned char id;
unsigned char sr;
};
/* Prototypes ------------------------------------------------------- */
static void ImpactIdentify(int flags);
static const OptionInfoRec * ImpactAvailableOptions(int chipid, int busid);
static Bool ImpactProbe(DriverPtr drv, int flags);
static Bool ImpactPreInit(ScrnInfoPtr pScrn, int flags);
static Bool ImpactScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
static Bool ImpactEnterVT(int scrnIndex, int flags);
static void ImpactLeaveVT(int scrnIndex, int flags);
static Bool ImpactCloseScreen(int scrnIndex, ScreenPtr pScreen);
static Bool ImpactSaveScreen(ScreenPtr pScreen, int mode);
static unsigned ImpactHWProbe(struct probed_id probedIDs[],int lim); /* return number of found boards */
static Bool ImpactModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
static void ImpactRestore(ScrnInfoPtr pScrn, Bool Closing);
static Bool ImpactMapRegs(ScrnInfoPtr pScrn);
static Bool ImpactMapShadowFB(ScrnInfoPtr pScrn);
static void ImpactUnmapRegs(ScrnInfoPtr pScrn);
static void ImpactUnmapShadowFB(ScrnInfoPtr pScrn);
static Bool ImpactProbeCardInfo(ScrnInfoPtr pScrn);
/* ------------------------------------------------------------------ */
DriverRec IMPACT = {
IMPACT_VERSION,
IMPACT_DRIVER_NAME,
ImpactIdentify,
ImpactProbe,
ImpactAvailableOptions,
NULL,
0
};
/* Supported "chipsets" */
#define CHIP_MG_3 0x1
#define CHIP_MG_4 0x2
static SymTabRec ImpactChipsets[] = {
{ CHIP_MG_3, "MardiGrasHQ3" },
{ CHIP_MG_4, "MardiGrasHQ4" },
{ -1, NULL }
};
/* List of Symbols from other modules that this module references */
static const char *fbSymbols[] = {
"fbPictureInit",
"fbScreenInit",
NULL
};
static const char *shadowSymbols[] = {
"ShadowFBInit",
NULL
};
#ifdef XFree86LOADER
static MODULESETUPPROTO(impactSetup);
static XF86ModuleVersionInfo impactVersRec =
{
"impact",
MODULEVENDORSTRING,
MODINFOSTRING1,
MODINFOSTRING2,
XF86_VERSION_CURRENT,
IMPACT_MAJOR_VERSION, IMPACT_MINOR_VERSION, IMPACT_PATCHLEVEL,
ABI_CLASS_VIDEODRV,
ABI_VIDEODRV_VERSION,
MOD_CLASS_VIDEODRV,
{0,0,0,0}
};
XF86ModuleData impactModuleData = { &impactVersRec, impactSetup, NULL };
static pointer
impactSetup(pointer module, pointer opts, int *errmaj, int *errmin)
{
static Bool setupDone = FALSE;
/* This module should be loaded only once, but check to be sure. */
if (!setupDone) {
/*
* Modules that this driver always requires may be loaded
* here by calling LoadSubModule().
*/
setupDone = TRUE;
xf86AddDriver(&IMPACT, module, 0);
/*
* Tell the loader about symbols from other modules that this module
* might refer to.
*/
LoaderRefSymLists(fbSymbols, shadowSymbols, NULL);
/*
* The return value must be non-NULL on success even though
* there is no TearDownProc.
*/
return (pointer)1;
} else {
if (errmaj) *errmaj = LDR_ONCEONLY;
return 0;
}
}
#endif /* XFree86LOADER */
typedef enum {
OPTION_BITPLANES,
OPTION_BUS_ID
} ImpactOpts;
/* Supported options */
static const OptionInfoRec ImpactOptions [] = {
{ OPTION_BITPLANES, "Depth", OPTV_INTEGER, {0}, FALSE },
{ OPTION_BUS_ID, "BusID", OPTV_INTEGER, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
/* ------------------------------------------------------------------ */
static Bool
ImpactGetRec(ScrnInfoPtr pScrn)
{
ImpactPtr pImpact;
int i, j;
if (pScrn->driverPrivate)
return TRUE;
pScrn->driverPrivate = xnfcalloc(sizeof(ImpactRec), 1);
pImpact = IMPACTPTR(pScrn);
memset(pImpact, 0, sizeof(*pImpact));
for (i = j = 0; i < 256; i++, j += 0x010101)
pImpact->pseudo_palette[i] = j;
return TRUE;
}
static Bool
ImpactFreeRec(ScrnInfoPtr pScrn)
{
if (!pScrn->driverPrivate)
return TRUE;
xfree(pScrn->driverPrivate);
pScrn->driverPrivate = 0;
return TRUE;
}
static void
ImpactIdentify(int flags)
{
xf86PrintChipsets(
IMPACT_NAME, "experimental driver for Impact Graphics Card",
ImpactChipsets);
}
static Bool
ImpactProbe(DriverPtr drv, int flags)
{
int numDevSections, numUsed, i, j, busID;
Bool foundScreen = FALSE;
GDevPtr *devSections;
GDevPtr dev = 0;
resRange range[] = { {ResExcMemBlock,0,0}, _END };
struct probed_id probedIDs[IMPACT_MAX_BOARDS];
memType base;
if ((numDevSections = xf86MatchDevice(IMPACT_DRIVER_NAME,&devSections))
<= 0)
return FALSE;
numUsed = ImpactHWProbe(probedIDs, IMPACT_MAX_BOARDS);
if (numUsed <= 0)
return FALSE;
if (flags & PROBE_DETECT)
foundScreen = TRUE;
else {
for (i = 0; i < numDevSections; i++) {
dev = devSections[i];
busID = xf86SetIntOption(dev->options, "BusID", 0);
for (j = 0; j < numUsed; j++)
if (busID == probedIDs[j].id) {
int entity;
ScrnInfoPtr pScrn = 0;
/*
* This is a hack because don't have the RAC info (and
* don't want it). Set it as an ISA entity to get the
* entity field set up right.
*/
entity = xf86ClaimIsaSlot(drv, 0, dev, TRUE);
if (probedIDs[j].sr) {
base = (IMPACTSR_BASE_ADDR0 + busID * IMPACTSR_BASE_OFFSET);
RANGE(range[0], base,
base + sizeof(ImpactSRRegs), ResExcMemBlock);
} else {
base = (IMPACTI2_BASE_ADDR0 + busID * IMPACTI2_BASE_OFFSET);
RANGE(range[0], base,
base + sizeof(ImpactI2Regs), ResExcMemBlock);
}
pScrn = xf86ConfigIsaEntity(pScrn, 0, entity, NULL,
range, NULL, NULL, NULL, NULL);
/* Allocate a ScrnInfoRec */
pScrn->driverVersion = IMPACT_VERSION;
pScrn->driverName = IMPACT_DRIVER_NAME;
pScrn->name = IMPACT_NAME;
pScrn->Probe = ImpactProbe;
pScrn->PreInit = ImpactPreInit;
pScrn->ScreenInit = ImpactScreenInit;
pScrn->EnterVT = ImpactEnterVT;
pScrn->LeaveVT = ImpactLeaveVT;
pScrn->driverPrivate =
(void*)(busID | (long)probedIDs[j].sr<<16);
foundScreen = TRUE;
break;
}
}
}
xfree(devSections);
return foundScreen;
}
/* most of this is from DESIGN.TXT s20.3.6 */
static Bool
ImpactPreInit(ScrnInfoPtr pScrn, int flags)
{
long busID;
int i;
ImpactPtr pImpact;
MessageType from;
ClockRangePtr clockRanges;
pointer pFbMod = 0;
if (flags & PROBE_DETECT) return FALSE;
if (pScrn->numEntities != 1)
return FALSE;
busID = (long)pScrn->driverPrivate;
pScrn->driverPrivate = 0;
/* Fill in the monitor field */
pScrn->monitor = pScrn->confScreen->monitor;
if ( !xf86SetDepthBpp(pScrn, 8, 8, 8, ImpactDepth24Flags()) )
return FALSE;
switch (pScrn->depth) {
/* check if the returned depth is one we support */
case 8:
case 24:
/* OK */
break;
default:
xf86DrvMsg(
pScrn->scrnIndex, X_ERROR,
"Given depth (%d) is not supported by Impact driver\n",
pScrn->depth
);
return FALSE;
}
/* Set bits per RGB for 8bpp */
if (8 == pScrn->depth)
pScrn->rgbBits = 8;
/* Set Default Weight */
if (pScrn->depth > 8) {
rgb weights = {8, 8, 8};
rgb masks = {0xFF, 0xFF00, 0xFF0000};
if ( !xf86SetWeight(pScrn, weights, masks) )
return FALSE;
}
xf86PrintDepthBpp(pScrn);
if ( !xf86SetDefaultVisual(pScrn,-1) )
return FALSE;
if (pScrn->depth > 8 && pScrn->defaultVisual != TrueColor) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Given default visual"
" (%s) is not supported at depth %d\n",
xf86GetVisualName(pScrn->defaultVisual), pScrn->depth);
return FALSE;
}
{ /* Set default Gamma */
Gamma zeros = {0.0, 0.0, 0.0};
if ( !xf86SetGamma(pScrn,zeros) )
return FALSE;
}
/* Allocate the ImpactRec driverPrivate */
if ( !ImpactGetRec(pScrn) )
return FALSE;
/* ...and initialize it. */
pImpact = IMPACTPTR(pScrn);
pImpact->busID = busID & 0xffff;
pImpact->isSR = busID >> 16;
pImpact->FlushBoxCache = 0;
if (pImpact->isSR) {
pImpact->WaitCfifoEmpty = &ImpactSRWaitCfifoEmpty;
pImpact->WaitDMAOver = &ImpactSRWaitDMAOver;
pImpact->WaitDMAReady = &ImpactSRWaitDMAReady;
pImpact->Vc3Get = &ImpactSRVc3Get;
pImpact->Vc3Set = &ImpactSRVc3Set;
pImpact->XmapGetModeRegister = &ImpactSRXmapGetModeRegister;
pImpact->XmapSetModeRegister = &ImpactSRXmapSetModeRegister;
pImpact->RefreshArea8 = &ImpactSRRefreshArea8;
pImpact->RefreshArea32 = &ImpactSRRefreshArea32;
pImpact->base_addr0 = IMPACTSR_BASE_ADDR0;
pImpact->base_offset = IMPACTSR_BASE_OFFSET;
} else {
pImpact->WaitCfifoEmpty = &ImpactI2WaitCfifoEmpty;
pImpact->WaitDMAOver = &ImpactI2WaitDMAOver;
pImpact->WaitDMAReady = &ImpactI2WaitDMAReady;
pImpact->Vc3Get = &ImpactI2Vc3Get;
pImpact->Vc3Set = &ImpactI2Vc3Set;
pImpact->XmapGetModeRegister = &ImpactI2XmapGetModeRegister;
pImpact->XmapSetModeRegister = &ImpactI2XmapSetModeRegister;
pImpact->RefreshArea8 = &ImpactI2RefreshArea8;
pImpact->RefreshArea32 = &ImpactI2RefreshArea32;
pImpact->base_addr0 = IMPACTI2_BASE_ADDR0;
pImpact->base_offset = IMPACTI2_BASE_OFFSET;
}
/* We use a programmable clock */
pScrn->progClock = TRUE;
/* Fill in pScrn->options) */
xf86CollectOptions(pScrn, NULL);
if ( !(pImpact->Options = xalloc(sizeof(ImpactOptions))) )
goto out_freerec;
memcpy(pImpact->Options, ImpactOptions, sizeof(ImpactOptions));
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pImpact->Options);
/* Set fields in ScreenInfoRec && ImpactRec */
pScrn->videoRam = IMPACT_FIXED_W_SCRN * (pScrn->bitsPerPixel >> 3);
/* get revisions of REX3, etc. */
if ( !ImpactMapRegs(pScrn) )
goto out_freeopt;
ImpactProbeCardInfo(pScrn);
ImpactUnmapRegs(pScrn);
from = X_PROBED;
xf86DrvMsg(
pScrn->scrnIndex, from,
"Impact Graphics Revisions: Board: %d, Rex: %c, Cmap: %c, Xmap: %c\n",
pImpact->board_rev, pImpact->rex_rev,
pImpact->cmap_rev, pImpact->xmap_rev);
if ( xf86GetOptValInteger(
pImpact->Options, OPTION_BITPLANES, &pImpact->bitplanes) )
from = X_CONFIG;
xf86DrvMsg(pScrn->scrnIndex, from, "Impact has %d bitplanes\n",
pImpact->bitplanes);
if (pScrn->depth > pImpact->bitplanes) {
xf86DrvMsg(
pScrn->scrnIndex, X_ERROR,
"Display depth(%d) > number of bitplanes on Impact board(%d)\n",
pScrn->depth, pImpact->bitplanes);
goto out_freeopt;
}
if (pImpact->bitplanes != 8 && pImpact->bitplanes != 24) {
xf86DrvMsg(
pScrn->scrnIndex, X_ERROR,
"Number of bitplanes on impact must be either 8 or 24 not %d\n",
pImpact->bitplanes);
goto out_freeopt;
}
/* Set up clock ranges that are alway ok */
/* XXX: Use information from VC2 here */
clockRanges = xnfalloc(sizeof(ClockRange));
clockRanges->next = 0;
clockRanges->minClock = 10000;
clockRanges->maxClock = 300000;
clockRanges->clockIndex = -1; /* programmable */
clockRanges->interlaceAllowed = TRUE;
clockRanges->doubleScanAllowed = TRUE;
/* see above note */
/* There is currently only an 1280x1024 mode */
i = xf86ValidateModes(
pScrn, pScrn->monitor->Modes,
pScrn->display->modes, clockRanges,
NULL, 256, 2048,
pScrn->bitsPerPixel, 128, 2048,
pScrn->display->virtualX,
pScrn->display->virtualY,
pScrn->videoRam * 1024,
LOOKUP_BEST_REFRESH);
if (-1 == i)
goto out_freeopt;
xf86PruneDriverModes(pScrn);
if (!i || !pScrn->modes) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes found\n");
goto out_freeopt;
}
/* unnecessary, but do it to get a valid ScrnInfoRec */
xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V);
/* Set the current mode to the first in the list */
pScrn->currentMode = pScrn->modes;
/* Print the list of modes being used */
xf86PrintModes(pScrn);
xf86SetDpi(pScrn, 0, 0);
/* Load FB module */
if ( !(pFbMod = xf86LoadSubModule(pScrn,"fb")) )
goto out_freeopt;
xf86LoaderReqSymLists( fbSymbols, NULL);
/* Load ShadowFB module */
if ( !xf86LoadSubModule(pScrn,"shadowfb") )
goto out_freemod;
xf86LoaderReqSymLists(shadowSymbols, NULL);
return TRUE;
out_freemod:
/* xf86UnloadSubModule(pFbMod); */ /* Unload FB module */
out_freeopt:
xfree(pImpact->Options);
out_freerec:
ImpactFreeRec(pScrn);
return FALSE;
}
static Bool
ImpactScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
{
ScrnInfoPtr pScrn;
ImpactPtr pImpact;
VisualPtr visual;
BOOL ret;
int i;
/* First get a pointer to our private info */
pScrn = xf86Screens[pScreen->myNum];
pImpact = IMPACTPTR(pScrn);
/* map the Impactregs until the server dies */
if ( !ImpactMapRegs(pScrn) )
return FALSE;
/* map the ShadowFB until the server dies */
if ( !ImpactMapShadowFB(pScrn) ) {
ImpactUnmapRegs(pScrn);
return FALSE;
}
/* Reset visual list. */
miClearVisualTypes();
if ( !miSetVisualTypes(
pScrn->depth,
pScrn->depth != 8
? TrueColorMask
: miGetDefaultVisualMask(pScrn->depth),
pScrn->rgbBits, pScrn->defaultVisual) )
goto out_freerec;
miSetPixmapDepths();
pImpact->Bpp = pScrn->bitsPerPixel >> 3;
/* Setup the stuff for the shadow framebuffer */
pImpact->ShadowPitch = (pScrn->virtualX * pImpact->Bpp + 3) & ~3L;
if ( !ImpactModeInit(pScrn,pScrn->currentMode) )
goto out_freerec;
ret = fbScreenInit(
pScreen, pImpact->ShadowPtr,
pScrn->virtualX, pScrn->virtualY,
pScrn->xDpi, pScrn->yDpi,
pScrn->displayWidth,
pScrn->bitsPerPixel);
if (!ret)
goto out_freerec;
/* we need rgb ordering if bitsPerPixel > 8 */
if (pScrn->bitsPerPixel > 8)
for (i = 0, visual = pScreen->visuals;
i < pScreen->numVisuals; i++, visual++)
if ((visual->class | DynamicClass) == DirectColor) {
visual->offsetRed = pScrn->offset.red;
visual->offsetGreen = pScrn->offset.green;
visual->offsetBlue = pScrn->offset.blue;
visual->redMask = pScrn->mask.red;
visual->greenMask = pScrn->mask.green;
visual->blueMask = pScrn->mask.blue;
}
/* must be after RGB ordering fixed */
fbPictureInit (pScreen, 0, 0);
miInitializeBackingStore(pScreen);
xf86SetBackingStore(pScreen);
xf86SetBlackWhitePixels(pScreen);
/* Initialize software cursor */
if ( !miDCInitialize(pScreen,xf86GetPointerScreenFuncs()) )
goto out_freerec;
/* Initialise default colourmap */
if ( !miCreateDefColormap(pScreen) )
goto out_freerec;
/* Install our LoadPalette funciton */
if ( !xf86HandleColormaps(pScreen, 256, 8, ImpactLoadPalette,
0, CMAP_RELOAD_ON_MODE_SWITCH) )
goto out_freerec;
/* Initialise shadow frame buffer */
ShadowFBInit(pScreen,
1 == pImpact->Bpp ? pImpact->RefreshArea8 : pImpact->RefreshArea32);
#ifdef XvExtension
{
XF86VideoAdaptorPtr *ptr;
int n;
n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n)
xf86XVScreenInit(pScreen, ptr, n);
}
#endif
pScreen->SaveScreen = ImpactSaveScreen;
/* Wrap the current CloseScreen function */
pImpact->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = ImpactCloseScreen;
if (1 == serverGeneration)
xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options);
return TRUE;
out_freerec:
ImpactFreeRec(pScrn);
return FALSE;
}
/* called when switching away from a VT */
static Bool
ImpactEnterVT(int scrnIndex, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
return ImpactModeInit(pScrn, pScrn->currentMode);
}
/* called when switching to a VT */
static void
ImpactLeaveVT(int scrnIndex, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
ImpactRestore(pScrn, FALSE);
}
/* called at the end of each server generation */
static Bool
ImpactCloseScreen(int scrnIndex, ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRestore(pScrn, TRUE);
/* unmap the Impact's registers from memory */
ImpactUnmapShadowFB(pScrn);
ImpactUnmapRegs(pScrn);
pScrn->vtSema = FALSE;
if (pScreen->CloseScreen == ImpactCloseScreen)
pScreen->CloseScreen = pImpact->CloseScreen;
return (*pScreen->CloseScreen)(scrnIndex, pScreen);
}
/* Blank or unblank the screen */
static Bool
ImpactSaveScreen(ScreenPtr pScreen, int mode)
{
ScrnInfoPtr pScrn;
ImpactPtr pImpact;
pScrn = xf86Screens[pScreen->myNum];
pImpact = IMPACTPTR(pScrn);
ImpactVc3BlankScreen(pScrn, !xf86IsUnblank(mode));
return TRUE;
}
static const OptionInfoRec *
ImpactAvailableOptions(int chipid, int busid)
{
return ImpactOptions;
}
/* This sets up the actual mode on the Impact */
static Bool
ImpactModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
{
int width, height;
width = mode->HDisplay;
height = mode->VDisplay;
if (width != IMPACT_FIXED_W_SCRN || height != IMPACT_FIXED_H_SCRN) {
xf86DrvMsg(
pScrn->scrnIndex, X_ERROR,
"Width = %d and height = %d is not supported by by this driver\n",
width, height);
return FALSE;
}
pScrn->vtSema = TRUE;
/* first backup the necessary registers... */
/*
ImpactBackupVc3(pScrn);
ImpactBackupRex(pScrn);
ImpactBackupPalette(pScrn);
ImpactBackupXmap(pScrn);
*/
/* ...then setup the hardware */
/*
ImpactVc3DisableCursor(pScrn);
ImpactXmapSet24bpp(pScrn);
*/
/* blank the framebuffer */
/* default drawmode */
return TRUE;
}
/*
* This will actually restore the saved state
* (either when switching back to a VT or when the server is going down)
* Closing is true if the X server is really going down
*/
static void
ImpactRestore(ScrnInfoPtr pScrn, Bool Closing)
{
/* Restore backed up registers */
/*
ImpactRestoreVc3(pScrn);
ImpactRestoreRex(pScrn);
ImpactRestorePalette(pScrn);
ImpactRestoreXmap(pScrn);
*/
}
/* Probe for the Impact card ;) */
static unsigned
ImpactHWProbe(struct probed_id probedIDs[], int lim)
{
FILE* fb;
int hasImpact = 0;
probedIDs[0].sr = probedIDs[0].id = 0;
if (IMPACT_MAX_BOARDS < lim)
lim = IMPACT_MAX_BOARDS;
if ( (fb = fopen("/proc/fb","r")) ) {
char line[80];
while (hasImpact <= lim && fgets(line,sizeof(line),fb)) {
char *s;
unsigned i = strtoul(line,&s,10);
if ( !strncmp(s," Impact",7) ) {
probedIDs[hasImpact].sr = ('S' == s[7]);
probedIDs[hasImpact].id = i;
hasImpact++;
}
}
fclose(fb);
}
return hasImpact;
}
/* Probe for Chipset revisions */
static Bool
ImpactProbeCardInfo(ScrnInfoPtr pScrn)
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
pImpact->bitplanes = 24;
pImpact->board_rev = 0;
pImpact->cmap_rev = '0';
pImpact->rex_rev = '0';
pImpact->xmap_rev = '0';
return TRUE;
}
/*
* To leave "xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c"
* untouched for now, we do our own mapping here.
* mapVidMem() (which is called from xf86MapVidMem(), to do the actual mapping)
* in lnx_video.c 1) has "/dev/mem" hardcoded and 2) unconditionally opens it
* without O_SYNC.
* But we *need* an uncached mapping for pImpactRegs.
* And using "/dev/fbN" at offset 0 automatically creates the appropriate
* mapping at the right hardware-address.
*/
/* map ImpactRegs */
static Bool
ImpactMapRegs(ScrnInfoPtr pScrn)
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
if (pImpact->pImpactRegs)
return TRUE;
if (pImpact->devFD <= 0) {
char devfb[20];
sprintf( devfb, "/dev/fb%d", pImpact->busID );
pImpact->devFD = open(devfb,O_RDWR);
}
if (pImpact->devFD < 0)
ErrorF("ImpactMapRegs: failed to open /dev/fb%d (%s)\n",
pImpact->busID , strerror(errno));
else {
size_t size = pImpact->isSR ? 0x200000:sizeof(ImpactI2Regs);
pImpact->pImpactRegs =
mmap((void*)0, size, PROT_READ|PROT_WRITE,
MAP_SHARED, pImpact->devFD, 0);
if (MAP_FAILED == pImpact->pImpactRegs) {
ErrorF("ImpactMapRegs: Could not mmap card registers"
" (0x%08lx,0x%x) (%s)\n", 0, size, strerror(errno));
pImpact->pImpactRegs = 0;
}
}
return pImpact->pImpactRegs ? TRUE:FALSE;
}
/* map ImpactShadowFB */
static Bool
ImpactMapShadowFB(ScrnInfoPtr pScrn)
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
if (pImpact->ShadowPtr)
return TRUE;
if (pImpact->devFD < 0)
ErrorF("ImpactMapShadowFB: failed to open fb-dev\n");
else {
pImpact->ShadowPtr =
mmap((void*)0, 0x800000, PROT_READ|PROT_WRITE,
MAP_SHARED, pImpact->devFD, IMPACT_FB_MMAP_OFF(3));
if (MAP_FAILED == pImpact->ShadowPtr) {
ErrorF("ImpactMapShadowFB: Could not mmap shadow buffer"
" (0x%08lx,0x800000) (%s)\n", IMPACT_FB_MMAP_OFF(3), strerror(errno));
pImpact->ShadowPtr = 0;
}
}
return pImpact->ShadowPtr ? TRUE:FALSE;
}
/* unmap ImpactRegs */
static void
ImpactUnmapRegs(ScrnInfoPtr pScrn)
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
size_t size = pImpact->isSR ? 0x200000:sizeof(ImpactI2Regs);
if (pImpact->pImpactRegs)
munmap( pImpact->pImpactRegs, size );
pImpact->pImpactRegs = 0;
}
/* unmap ImpactShadowFB */
static void
ImpactUnmapShadowFB(ScrnInfoPtr pScrn)
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
if (pImpact->ShadowPtr)
munmap( pImpact->ShadowPtr, 0x800000 );
pImpact->ShadowPtr = 0;
}
/* eof */

View File

@ -0,0 +1,332 @@
/*
* impact_regs.c 2005/07/15 23:36:16, Copyright (c) 2005 peter fuerst
*
* Based on:
* - linux/drivers/video/impact.c, 2005 pf.
* - linux/drivers/video/impactsr.c, (c) 2004 by Stanislaw Skowronek.
* - newport_regs.c
* # newport_regs.c,v 1.3 2000/11/29 20:58:10 agx Exp #
* # xc/programs/Xserver/hw/xfree86/drivers/newport/newport_regs.c,v
* 1.6 2001/12/21 15:37:23 tsi Exp #
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "impact.h"
/* FIFO status */
#define MSK_I2_CFIFO_CNT 0x7f
#define MSK_SR_CFIFO_CNT 0xff
#define IMPACTI2_CFIFO_MAX 64
#define IMPACTSR_CFIFO_MAX 128
#define IMPACT_BFIFO_MAX 16
/* Sometimes we just have to wait until we can do anything */
/*
* ImpactWaitCfifo
*/
unsigned
ImpactI2WaitCfifo(ImpactRegsPtr pImpactRegs, int nslots)
{
unsigned x;
while (((x = pImpactRegs->i2.fifostatus) & MSK_I2_CFIFO_CNT)
> IMPACTI2_CFIFO_MAX-nslots);
return x;
}
unsigned
ImpactSRWaitCfifo(ImpactRegsPtr pImpactRegs, int nslots)
{
unsigned x;
while (((x = pImpactRegs->sr.fifostatus) & MSK_SR_CFIFO_CNT)
> IMPACTSR_CFIFO_MAX-nslots);
return x;
}
/*
* ImpactWaitCfifoEmpty
*/
void
ImpactI2WaitCfifoEmpty(ImpactRegsPtr pImpactRegs)
{
while (pImpactRegs->i2.fifostatus & MSK_I2_CFIFO_CNT);
}
void
ImpactSRWaitCfifoEmpty(ImpactRegsPtr pImpactRegs)
{
while (pImpactRegs->sr.fifostatus & MSK_SR_CFIFO_CNT);
}
/*
* ImpactWaitDMAOver
*/
void
ImpactI2WaitDMAOver(ImpactRegsPtr pImpactRegs)
{
while (pImpactRegs->i2.dmabusy & 0x1F);
while (!(pImpactRegs->i2.status & 1));
while (!(pImpactRegs->i2.status & 2));
while (!(pImpactRegs->i2.rss.status & 0x100));
}
void
ImpactSRWaitDMAOver(ImpactRegsPtr pImpactRegs)
{
while (pImpactRegs->sr.dmabusy & 0x1F);
while (!(pImpactRegs->sr.status & 1));
while (!(pImpactRegs->sr.status & 2));
while (!(pImpactRegs->sr.rss.status & 0x100));
}
/*
* ImpactWaitDMAReady
*/
void
ImpactI2WaitDMAReady(ImpactRegsPtr pImpactRegs)
{
ImpactFifoCmd32(&pImpactRegs->i2.cfifo, 0x000e0100, 0);
while (pImpactRegs->i2.dmabusy & 0x1EFF);
while (!(pImpactRegs->i2.status & 2));
}
void
ImpactSRWaitDMAReady(ImpactRegsPtr pImpactRegs)
{
ImpactFifoCmd32(&pImpactRegs->sr.cfifo, 0x000e0100, 0);
while (pImpactRegs->sr.dmabusy & 0x1EFF);
while (!(pImpactRegs->sr.status & 2));
}
/*
* ImpactWaitBfifo
*/
static __inline__ unsigned
ImpactWaitBfifo(mgireg32_t *giostatus, int nslots)
{
unsigned x;
while (((x = *giostatus) & 0x1f) > IMPACT_BFIFO_MAX-nslots);
return x;
}
unsigned
ImpactI2WaitBfifo(ImpactRegsPtr pImpactRegs, int nslots)
{
return ImpactWaitBfifo(&pImpactRegs->i2.giostatus, nslots);
}
unsigned
ImpactSRWaitBfifo(ImpactRegsPtr pImpactRegs, int nslots)
{
return ImpactWaitBfifo(&pImpactRegs->sr.giostatus, nslots);
}
/*
* ImpactWaitBfifoEmpty
*/
static __inline__ void
ImpactWaitBfifoEmpty(mgireg32_t *giostatus)
{
while (*giostatus & 0x1f);
}
void
ImpactI2WaitBfifoEmpty(ImpactRegsPtr pImpactRegs)
{
ImpactWaitBfifoEmpty(&pImpactRegs->i2.giostatus);
}
void
ImpactSRWaitBfifoEmpty(ImpactRegsPtr pImpactRegs)
{
ImpactWaitBfifoEmpty(&pImpactRegs->sr.giostatus);
}
/*
* ImpactVc3[GS]et
*/
static __inline__ void
ImpactVc3Set(Impact_vc3regs_t* vc3, CARD8 idx, unsigned short val)
{
vc3->indexdata = (idx << 24) | (val << 8);
}
void
ImpactI2Vc3Set(ImpactRegsPtr pImpactRegs, CARD8 idx, unsigned short val)
{
ImpactVc3Set(&pImpactRegs->i2.vc3, idx, val);
}
void
ImpactSRVc3Set(ImpactRegsPtr pImpactRegs, CARD8 idx, unsigned short val)
{
ImpactVc3Set(&pImpactRegs->sr.vc3, idx, val);
}
static __inline__ unsigned short
ImpactVc3Get(Impact_vc3regs_t* vc3, CARD8 idx)
{
vc3->index = idx;
return vc3->data;
}
unsigned short
ImpactI2Vc3Get(ImpactRegsPtr pImpactRegs, CARD8 idx)
{
return ImpactVc3Get(&pImpactRegs->i2.vc3, idx);
}
unsigned short
ImpactSRVc3Get(ImpactRegsPtr pImpactRegs, CARD8 idx)
{
return ImpactVc3Get(&pImpactRegs->sr.vc3, idx);
}
/*
* ImpactXmap[GS]etModeRegister
*/
static __inline__ void
ImpactXmapSetModeRegister(Impact_xmapregs_t *xmap, CARD8 address, CARD32 mode)
{
xmap->index = address << 2;
xmap->main_mode = mode;
}
void
ImpactI2XmapSetModeRegister(ImpactRegsPtr pImpactRegs, CARD8 address, CARD32 mode)
{
ImpactXmapSetModeRegister(&pImpactRegs->i2.xmap, address, mode);
}
void
ImpactSRXmapSetModeRegister(ImpactRegsPtr pImpactRegs, CARD8 address, CARD32 mode)
{
ImpactXmapSetModeRegister(&pImpactRegs->sr.xmap, address, mode);
}
static __inline__ CARD32
ImpactXmapGetModeRegister(Impact_xmapregs_t *xmap, CARD8 address)
{
xmap->index = address << 2;
return xmap->main_mode;
}
CARD32
ImpactI2XmapGetModeRegister(ImpactRegsPtr pImpactRegs, CARD8 address)
{
return ImpactXmapGetModeRegister(&pImpactRegs->i2.xmap, address);
}
CARD32
ImpactSRXmapGetModeRegister(ImpactRegsPtr pImpactRegs, CARD8 address)
{
return ImpactXmapGetModeRegister(&pImpactRegs->sr.xmap, address);
}
/*
* ImpactBackup.../ImpactRestore...
*/
void
ImpactBackupVc3( ScrnInfoPtr pScrn )
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
CARD8 i = sizeof(pImpact->txt_vc3)/sizeof(*pImpact->txt_vc3);
while (i--)
pImpact->txt_vc3[i] = (*pImpact->Vc3Get)( pImpactRegs, i );
}
void
ImpactRestoreVc3( ScrnInfoPtr pScrn )
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
CARD8 i = sizeof(pImpact->txt_vc3)/sizeof(*pImpact->txt_vc3);
while (i--)
(*pImpact->Vc3Set)( pImpactRegs, i, pImpact->txt_vc3[i] );
}
void
ImpactVc3DisableCursor( ScrnInfoPtr pScrn )
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
unsigned short val = (*pImpact->Vc3Get)( pImpactRegs, VC3_IREG_CURSOR );
(*pImpact->Vc3Set)(pImpactRegs, VC3_IREG_CURSOR, val & ~VC3_CTRL_ECURS);
}
void
ImpactVc3BlankScreen( ScrnInfoPtr pScrn, int blank )
{/*
ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
unsigned short treg = (*pImpact->Vc3Get)( pImpactRegs, VC3_IREG_CONTROL );
if (blank)
treg &= ~VC3_CTRL_EDISP;
else
treg |= VC3_CTRL_EDISP;
(*pImpact->Vc3Set)( pImpactRegs, VC3_IREG_CONTROL, treg );
*/}
void
ImpactBackupRex( ScrnInfoPtr pScrn )
{
}
void
ImpactRestoreRex( ScrnInfoPtr pScrn )
{
}
void ImpactBackupXmap( ScrnInfoPtr pScrn )
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
Impact_xmapregs_t *xmap =
(&ImpactSRXmapGetModeRegister != pImpact->XmapGetModeRegister)
? &pImpactRegs->i2.xmap
: &pImpactRegs->sr.xmap;
pImpact->txt_xmap.pp1select = xmap->pp1select;
pImpact->txt_xmap.main_mode =
(*pImpact->XmapGetModeRegister)( pImpactRegs, 0 );
}
void ImpactRestoreXmap( ScrnInfoPtr pScrn )
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
Impact_xmapregs_t *xmap =
(&ImpactSRXmapGetModeRegister != pImpact->XmapGetModeRegister)
? &pImpactRegs->i2.xmap
: &pImpactRegs->sr.xmap;
xmap->pp1select = pImpact->txt_xmap.pp1select;
(*pImpact->XmapSetModeRegister)(
pImpactRegs, 0, pImpact->txt_xmap.main_mode );
}
/* set XMAP into 24-bpp mode */
void
ImpactXmapSet24bpp( ScrnInfoPtr pScrn )
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
Impact_xmapregs_t *xmap =
(&ImpactSRXmapGetModeRegister != pImpact->XmapGetModeRegister)
? &pImpactRegs->i2.xmap
: &pImpactRegs->sr.xmap;
xmap->pp1select = 1;
(*pImpact->XmapSetModeRegister)( pImpactRegs, 0, 0x07a4 );
}
/* eof */

View File

@ -0,0 +1,253 @@
/*
* impact_regs.h 2005/07/12 23:24:15, Copyright (c) 2005 peter fuerst
*
* Register Layouts of the SGI Impact/ImpactSR (MardiGras) chips.
*
* Based on:
* - linux/include/video/impact.h, 2005 pf.
* - linux/include/video/impactsr.h, (c) 2004 by Stanislaw Skowronek.
* - newport_regs.h
* # xc/programs/Xserver/hw/xfree86/drivers/newport/newport_regs.h,v
* 1.2 2001/11/23 19:50:45 dawes Exp #
* # newport_regs.h,v 1.5 2000/11/18 23:23:14 agx Exp #
*/
#ifndef __IMPACT_REGS_H__
#define __IMPACT_REGS_H__
typedef volatile unsigned long long int mgireg64_t;
typedef volatile unsigned int mgireg32_t;
typedef volatile unsigned short int mgireg16_t;
typedef volatile unsigned char mgireg8_t;
typedef union mgicfifo {
mgireg64_t x;
mgireg32_t w;
} mgicfifo_t;
typedef
struct Impact_xmapregs {
mgireg64_t a___________; /* 0x0000 */
mgireg8_t pp1select; /* 0x0008 */
mgireg8_t b___________[0x7f];
mgireg8_t index; /* 0x0088 */
mgireg8_t c___________[0x77];
mgireg32_t config; /* 0x0100 */
mgireg32_t d___________;
mgireg8_t configb; /* 0x0108 */
mgireg8_t f___________[0x77];
mgireg32_t buf_select; /* 0x0180 */
mgireg8_t g___________[0x7c];
mgireg32_t main_mode; /* 0x0200 */
mgireg8_t h___________[0x7c];
mgireg32_t overlay_mode; /* 0x0280 */
mgireg8_t i___________[0x7c];
mgireg32_t dib; /* 0x0300 */
mgireg8_t j___________[0x3c];
mgireg32_t dib_dw; /* 0x0340 */
mgireg8_t k___________[0x3c];
mgireg32_t re_rac; /* 0x0380 */
} Impact_xmapregs_t;
typedef
struct Impact_vc3regs {
mgireg64_t a________; /* 0x0000 */
mgireg8_t index; /* 0x0008 */
mgireg8_t b________[0x2f];
mgireg32_t indexdata; /* 0x038 */
mgireg8_t c________[0x74];
mgireg16_t data; /* 0x00b0 */
mgireg16_t d________[0x6f];
mgireg16_t ram; /* 0x0190 */
} Impact_vc3regs_t;
typedef
struct Impact_rexregs {
mgireg8_t unused[0x78]; /* 0x0000 */
mgireg32_t status; /* 0x0078 */
} Impact_rexregs_t;
typedef
struct ImpactI2_regs {
/* Indigo2 Impact */
mgireg8_t a__________[0x50020]; /* 0x00000 */
mgireg32_t cfifo_hw; /* 0x50020 */
mgireg32_t cfifo_lw; /* 0x50024 */
mgireg32_t cfifo_delay; /* 0x50028 */
mgireg32_t dfifo_hw; /* 0x5002c */
mgireg32_t dfifo_lw; /* 0x50030 */
mgireg32_t dfifo_delay; /* 0x50034 */
mgireg8_t b__________[0x48];
mgicfifo_t cfifop; /* 0x50080 */
mgireg8_t c__________[0x11b78];
Impact_xmapregs_t xmap; /* 0x61c00 */
mgireg8_t d__________[0x62000-sizeof(Impact_xmapregs_t)-0x61c00];
Impact_vc3regs_t vc3; /* 0x62000 */
mgireg8_t e__________[0x70000-sizeof(Impact_vc3regs_t)-0x62000];
mgireg32_t status; /* 0x70000 */
mgireg32_t fifostatus; /* 0x70004 */
mgireg8_t f__________[0x78];
mgicfifo_t cfifo; /* 0x70080 */
mgireg8_t g__________[0x78];
mgireg32_t giostatus; /* 0x70100 */
mgireg32_t dmabusy; /* 0x70104 */
mgireg8_t h__________[0xc3f8];
Impact_rexregs_t rss; /* 0x7c500 */
} ImpactI2Regs, *ImpactI2RegsPtr;
typedef
struct ImpactSR_regs {
/* Octane ImpactSR */
mgireg8_t a__________[0x20000]; /* 0x00000 */
mgireg32_t status; /* 0x20000 */
mgireg8_t b__________[4];
mgireg32_t fifostatus; /* 0x20008 */
mgireg8_t c__________[0xf4];
mgireg32_t giostatus; /* 0x20100 */
mgireg8_t d__________[0xfc];
mgireg32_t dmabusy; /* 0x20200 */
mgireg8_t e__________[0x1fc];
mgicfifo_t cfifo; /* 0x20400 */
mgireg8_t f__________[0xc0f8];
Impact_rexregs_t rss; /* 0x2c500 */
mgireg8_t g__________[0x40000-sizeof(Impact_rexregs_t)-0x2c500];
mgireg32_t cfifo_hw; /* 0x40000 */
mgireg32_t h__________;
mgireg32_t cfifo_lw; /* 0x40008 */
mgireg32_t i__________;
mgireg32_t cfifo_delay; /* 0x40010 */
mgireg32_t j__________[3];
mgireg32_t dfifo_hw; /* 0x40020 */
mgireg32_t k__________;
mgireg32_t dfifo_lw; /* 0x40028 */
mgireg32_t l__________;
mgireg32_t dfifo_delay; /* 0x40030 */
mgireg8_t m__________[0x31bcc];
Impact_xmapregs_t xmap; /* 0x71c00 */
mgireg8_t n__________[0x72000-sizeof(Impact_xmapregs_t)-0x71c00];
Impact_vc3regs_t vc3; /* 0x72000 */
mgireg8_t o__________[0x130400-sizeof(Impact_vc3regs_t)-0x72000];
mgicfifo_t cfifop; /* 0x130400 */
} ImpactSRRegs, *ImpactSRRegsPtr;
typedef union {
struct ImpactI2_regs i2;
struct ImpactSR_regs sr;
} ImpactRegs, *ImpactRegsPtr;
static __inline__ void
ImpactFifoCmd64( mgicfifo_t *fifo, unsigned cmd, unsigned reg, unsigned val )
{
#if (_MIPS_SZLONG == 64) /* see Xmd.h */
fifo->x = ((unsigned long)cmd | reg<<8) << 32 | val;
#else
fifo->w = cmd | reg<<8;
fifo->w = val;
#endif
}
static __inline__ void
ImpactFifoCmd32( mgicfifo_t *fifo, unsigned cmd, unsigned reg )
{
(&fifo->w)[1] = cmd | reg<<8;
}
#define ImpactCmdWriteRss( fifo, reg, val )\
ImpactFifoCmd64( fifo, 0x00180004, reg, val )
#define ImpactCmdExecRss( fifo, reg, val )\
ImpactFifoCmd64( fifo, 0x001c0004, reg, val )
#define impact_cmd_gline_xstartf(f,v) ImpactCmdWriteRss(f,0x000c,v)
#define impact_cmd_ir_alias(f,v) ImpactCmdExecRss( f,0x0045,v)
#define impact_cmd_blockxystarti(f,x,y) ImpactCmdWriteRss(f,0x0046,(x)<<16|(y))
#define impact_cmd_blockxyendi(f,x,y) ImpactCmdWriteRss(f,0x0047,(x)<<16|(y))
#define impact_cmd_packedcolor(f,v) ImpactCmdWriteRss(f,0x005b,v)
#define impact_cmd_red(f,v) ImpactCmdWriteRss(f,0x005c,v)
#define impact_cmd_alpha(f,v) ImpactCmdWriteRss(f,0x005f,v)
#define impact_cmd_char(f,v) ImpactCmdExecRss( f,0x0070,v)
#define impact_cmd_char_h(f,v) ImpactCmdWriteRss(f,0x0070,v)
#define impact_cmd_char_l(f,v) ImpactCmdExecRss( f,0x0071,v)
#define impact_cmd_xfrcontrol(f,v) ImpactCmdWriteRss(f,0x0102,v)
#define impact_cmd_fillmode(f,v) ImpactCmdWriteRss(f,0x0110,v)
#define impact_cmd_config(f,v) ImpactCmdWriteRss(f,0x0112,v)
#define impact_cmd_xywin(f,x,y) ImpactCmdWriteRss(f,0x0115,(y)<<16|(x))
#define impact_cmd_xfrsize(f,x,y) ImpactCmdWriteRss(f,0x0153,(y)<<16|(x))
#define impact_cmd_xfrmasklo(f,v) ImpactCmdWriteRss(f,0x0156,v)
#define impact_cmd_xfrmaskhi(f,v) ImpactCmdWriteRss(f,0x0157,v)
#define impact_cmd_xfrcounters(f,x,y) ImpactCmdWriteRss(f,0x0158,(y)<<16|(x))
#define impact_cmd_xfrmode(f,v) ImpactCmdWriteRss(f,0x0159,v)
#define impact_cmd_re_togglecntx(f,v) ImpactCmdWriteRss(f,0x015f,v)
#define impact_cmd_pixcmd(f,v) ImpactCmdWriteRss(f,0x0160,v)
#define impact_cmd_pp1fillmode(f,m,o) ImpactCmdWriteRss(f,0x0161,(m)|(o)<<26)
#define impact_cmd_colormaskmsbs(f,v) ImpactCmdWriteRss(f,0x0162,v)
#define impact_cmd_colormasklsbsa(f,v) ImpactCmdWriteRss(f,0x0163,v)
#define impact_cmd_colormasklsbsb(f,v) ImpactCmdWriteRss(f,0x0164,v)
#define impact_cmd_drbpointers(f,v) ImpactCmdWriteRss(f,0x016d,v)
#define impact_cmd_hq_pixelformat(f,v) ImpactFifoCmd64(f,0x000c0004,0,v)
#define impact_cmd_hq_scanwidth(f,v) ImpactFifoCmd64(f,0x000a0204,0,v)
#define impact_cmd_hq_dmatype(f,v) ImpactFifoCmd64(f,0x000a0604,0,v)
#define impact_cmd_hq_pg_list0(f,v) ImpactFifoCmd64(f,0x00080004,0,v)
#define impact_cmd_hq_pg_width(f,v) ImpactFifoCmd64(f,0x00080404,0,v)
#define impact_cmd_hq_pg_offset(f,v) ImpactFifoCmd64(f,0x00080504,0,v)
#define impact_cmd_hq_pg_startaddr(f,v) ImpactFifoCmd64(f,0x00080604,0,v)
#define impact_cmd_hq_pg_linecnt(f,v) ImpactFifoCmd64(f,0x00080704,0,v)
#define impact_cmd_hq_pg_widtha(f,v) ImpactFifoCmd64(f,0x00080804,0,v)
#if 0
#define impact_cmd_hq_dmactrl_1(f) ImpactFifoCmd32(f,0x00080b04,0)
#define impact_cmd_hq_dmactrl_2(f) ImpactFifoCmd64(f,0x000000b7,0,0x000e0400)
#else
#define impact_cmd_hq_dmactrl_a(f,p) ImpactFifoCmd64(f,0x00080b04,0,((p)<<1)|0x000000b1)
#define impact_cmd_hq_dmactrl_b(f) ImpactFifoCmd32(f,0x000e0400,0)
#endif
/* Now the Indexed registers of the VC2. */
#define VC2_IREG_CONFIG 0x1f /* this is wrong (0x20) in newport_regs.h */
#define VC3_IREG_CURSOR 0x1d
#define VC3_IREG_CONTROL 0x1e
#define VC3_IREG_CONFIG VC2_IREG_CONFIG
/* VC2 Control register bits */
#define VC2_CTRL_EVIRQ 0x0001 /* VINTR enable */
#define VC2_CTRL_EDISP 0x0002 /* Blackout */
#define VC2_CTRL_EVIDEO 0x0004 /* Video Timing Enable */
#define VC2_CTRL_EDIDS 0x0008 /* DID Function Enable */
#define VC3_CTRL_EVIRQ VC2_CTRL_EVIRQ
#define VC3_CTRL_EDISP VC2_CTRL_EDISP
#define VC3_CTRL_EVIDEO VC2_CTRL_EVIDEO
#define VC3_CTRL_EDIDS VC2_CTRL_EDIDS
#define VC3_CTRL_ECURS 0x0001 /* Cursor Enable */
/* Logic operations for the PP1 (SI=source invert, DI=dest invert, RI=result invert) */
#define IMPACT_LO_CLEAR 0
#define IMPACT_LO_AND 1
#define IMPACT_LO_DIAND 2
#define IMPACT_LO_COPY 3
#define IMPACT_LO_SIAND 4
#define IMPACT_LO_NOP 5
#define IMPACT_LO_XOR 6
#define IMPACT_LO_OR 7
#define IMPACT_LO_RIOR 8
#define IMPACT_LO_RIXOR 9
#define IMPACT_LO_RINOP 10
#define IMPACT_LO_DIOR 11
#define IMPACT_LO_RICOPY 12
#define IMPACT_LO_SIOR 13
#define IMPACT_LO_RIAND 14
#define IMPACT_LO_SET 15
/*
* Scanning physaddr range 1f000000 to 1f3fffff on Indigo2 shows this
* periodic pattern (but couldn't test more than a single board yet).
*/
#define IMPACTI2_BASE_ADDR0 0x1f000000
#define IMPACTI2_BASE_OFFSET 0x00100000
#define IMPACTI2_MAX_BOARDS 3
/* Don't know, how it looks on Octane... */
#define IMPACTSR_BASE_ADDR0 0x1c000000
#define IMPACTSR_BASE_OFFSET 0
#define IMPACTSR_MAX_BOARDS 1
#endif /* __IMPACT_REGS_H__ */

View File

@ -0,0 +1,354 @@
/*
* impact_shadow.c 2005/07/12 23:24:15, Copyright (c) 2005 peter fuerst
*
* Based on:
* - linux/drivers/video/impact.c, 2005 pf.
* - linux/drivers/video/impactsr.c, (c) 2004 by Stanislaw Skowronek.
* - newport_shadow.c
* # newport_shadow.c,v 1.3 2000/11/29 20:58:10 agx Exp #
* # xc/programs/Xserver/hw/xfree86/drivers/newport/newport_shadow.c,v
* 1.2 2001/11/23 19:50:45 dawes Exp #
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <asm/cachectl.h>
#include <sys/cachectl.h>
#include <sys/ioctl.h>
#include "impact.h"
/*
* 4th parameter to be passed to xf86SetDepthBpp()
*/
int ImpactDepth24Flags(void)
{
return Support32bppFb;
}
/*
* Common sanity check and adjustment for all ImpactRefreshArea...
*/
static __inline__ int
ImpactAdjRefreshBox(const BoxPtr obox, BoxPtr nbox)
{
/*
* NB: Box defines [x1,x2[ x [x2,y2[, not [x1,x2] x [x2,y2] !
*/
*nbox = *obox;
if (nbox->x1 < 0) nbox->x1 = 0;
if (nbox->y1 < 0) nbox->y1 = 0;
if (IMPACT_FIXED_W_SCRN < nbox->x2) nbox->x2 = IMPACT_FIXED_W_SCRN;
if (IMPACT_FIXED_H_SCRN < nbox->y2) nbox->y2 = IMPACT_FIXED_H_SCRN;
/*
* We may need to do some adjustment, since
* 1) the actual number of pixels *must* match the settings
* in "xystarti", "xyendi", "xfrsize", "xfrcounters",
* 2) we draw pairs of pixels.
* Otherwise... (try it :))
*/
nbox->x1 &= ~1;
nbox->x2 = ++nbox->x2 & ~1;
return (nbox->x2 <= nbox->x1 || nbox->y2 <= nbox->y1);
}
/*
* Common per-box-prologue for PIO-version of ImpactRefreshArea*
*/
static __inline__ int
ImpactPreRefreshBoxPIO(mgicfifo_t *cfifo, const BoxPtr obox, BoxPtr nbox)
{
int h, w, i;
if (ImpactAdjRefreshBox(obox, nbox))
return 0;
w = nbox->x2 - nbox->x1;
h = nbox->y2 - nbox->y1;
/* setup PIO to RE */
impact_cmd_pp1fillmode(cfifo, 0x6300, IMPACT_LO_COPY);
impact_cmd_blockxystarti(cfifo, nbox->x1, nbox->y1);
impact_cmd_blockxyendi(cfifo, nbox->x2-1, nbox->y2-1);
impact_cmd_fillmode(cfifo, 0x00c00000);
impact_cmd_xfrmode(cfifo, 0x00080);
impact_cmd_xfrsize(cfifo, w, h);
impact_cmd_xfrcounters(cfifo, w, h);
impact_cmd_gline_xstartf(cfifo, 1);
impact_cmd_ir_alias(cfifo, 0x18);
/* another workaround.. 33 writes to alpha... hmm... */
for (i = 0; i < 33; i++)
impact_cmd_alpha(cfifo, 0);
impact_cmd_xfrcontrol(cfifo, 2);
return 1;
}
/*
* Common per-box-epilogue for PIO-version of ImpactRefreshArea*
*/
static __inline__ void
ImpactPostRefreshBoxPIO(mgicfifo_t *cfifo)
{
impact_cmd_gline_xstartf(cfifo, 0);
impact_cmd_re_togglecntx(cfifo, 0);
impact_cmd_xfrcounters(cfifo, 0, 0);
}
/*
* 8-bpp blits are done as PIO draw operation; the pixels are unpacked
* into 32-bpp values from the current palette in software.
*/
static void
ImpactRefreshArea8(ImpactPtr pImpact, mgicfifo_t *cfifo, int num, BoxPtr pbox)
{
unsigned pal[256];
int i;
for (i = 0; i < sizeof(pal)/sizeof(*pal); i++)
pal[i] = ImpactGetPalReg(pImpact, i);
for (; num--; pbox++) {
BoxRec sanebox;
unsigned char *base;
int dy;
TRACEV("ImpactRefreshArea8: %d [%d..%d[x[%d..%d[\n",
num, pbox->x1,pbox->x2, pbox->y1,pbox->y2 );
(*pImpact->WaitCfifoEmpty)(pImpact->pImpactRegs);
if (ImpactPreRefreshBoxPIO(cfifo,pbox,&sanebox) <= 0)
continue;
base = (unsigned char*)pImpact->ShadowPtr
+ (dy = sanebox.y1) * pImpact->ShadowPitch + sanebox.x1;
for ( ; dy < sanebox.y2; dy++) {
unsigned char *src = base;
int dx = sanebox.x1;
while (dx < sanebox.x2) {
/* pairs of pixels are sent in two writes to the RE */
impact_cmd_char_h(cfifo, pal[*src++]);
impact_cmd_char_l(cfifo, pal[*src++]);
dx += 2;
}
base += pImpact->ShadowPitch;
}
ImpactPostRefreshBoxPIO(cfifo);
}
TRACE_EXIT("ImpactRefreshArea8");
}
void
ImpactI2RefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
if (num > 0)
{ ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
ImpactRefreshArea8(pImpact, &pImpactRegs->i2.cfifo, num, pbox);
}
}
void
ImpactSRRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
if (num > 0)
{ ImpactPtr pImpact = IMPACTPTR(pScrn);
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
ImpactRefreshArea8(pImpact, &pImpactRegs->sr.cfifo, num, pbox);
}
}
/*
* 32-bit blits are done as DMA operations, which is FAST on SGI machines
*/
static void
ImpactCflushBoxPixlines(int fd, char *base, BoxPtr box, unsigned bpitch)
{
int w = (box->x2 - box->x1) << 2;
int h = box->y2 - box->y1;
int i;
base += bpitch*box->y1 + 4*box->x1;
/* One syscall for each pixel-line. */
for (i = 0; i < h; i++, base += bpitch)
cacheflush(base, w, DCACHE);
}
static void
ImpactCflushBoxEnclosure(int fd, char *base, BoxPtr box, unsigned bpitch)
{
int w = (box->x2 - box->x1) << 2;
int h = box->y2 - box->y1;
base += bpitch*box->y1 + 4*box->x1;
/* Whole enclosing mem, although may be mostly unconcerned. */
cacheflush(base, (h-1)*bpitch + w, DCACHE);
}
static __inline__ int
ImpactRefreshBoxDMA(int isSR, mgicfifo_t *cfifo, BoxPtr box, unsigned bpitch)
{
int w = box->x2 - box->x1;
int h = box->y2 - box->y1;
/* setup DMA to RE */
impact_cmd_pp1fillmode(cfifo, isSR ? 0x6300:0x6200, IMPACT_LO_COPY);
impact_cmd_colormasklsbsa(cfifo, 0xFFFFFFFF);
impact_cmd_colormasklsbsb(cfifo, 0xFFFFFFFF);
impact_cmd_colormaskmsbs(cfifo, 0xFFFF);
impact_cmd_xfrmasklo(cfifo, 0xFFFFFFFF);
impact_cmd_xfrmaskhi(cfifo, 0xFFFFFFFF);
impact_cmd_packedcolor(cfifo, 0);
impact_cmd_red(cfifo, 0);
impact_cmd_drbpointers(cfifo, 0xc8240);
impact_cmd_blockxystarti(cfifo, box->x1, box->y1);
impact_cmd_blockxyendi(cfifo, box->x2-1, box->y2-1);
impact_cmd_fillmode(cfifo, 0x01400000);
impact_cmd_xfrmode(cfifo, 0x00080);
impact_cmd_hq_pixelformat(cfifo, 0x600);
impact_cmd_hq_scanwidth(cfifo, w<<2);
impact_cmd_hq_dmatype(cfifo, 0x0c);
impact_cmd_pixcmd(cfifo, 3);
impact_cmd_xfrsize(cfifo, w, h);
impact_cmd_xfrcounters(cfifo, w, h);
impact_cmd_gline_xstartf(cfifo, 1);
impact_cmd_ir_alias(cfifo, 0x18);
if (isSR) {
int i;
for (i = 0; i < 33; i++)
impact_cmd_alpha(cfifo, 0);
}
impact_cmd_xfrcontrol(cfifo, 1);
impact_cmd_hq_pg_list0(cfifo, 0x80000000);
impact_cmd_hq_pg_width(cfifo, bpitch);
impact_cmd_hq_pg_offset(cfifo, 0);
impact_cmd_hq_pg_startaddr(cfifo, bpitch*box->y1+(box->x1<<2));
impact_cmd_hq_pg_linecnt(cfifo, h);
impact_cmd_hq_pg_widtha(cfifo, w<<2);
impact_cmd_hq_dmactrl_a(cfifo,3);
impact_cmd_hq_dmactrl_b(cfifo);
return 1;
}
static __inline__ void
ImpactPostRefreshBoxDMA(mgicfifo_t *cfifo)
{
impact_cmd_gline_xstartf(cfifo, 0);
impact_cmd_re_togglecntx(cfifo, 0);
impact_cmd_xfrcounters(cfifo, 0, 0);
impact_cmd_pixcmd(cfifo, 0);
impact_cmd_hq_pixelformat(cfifo, 0xe00);
}
static void
ImpactRefreshArea32DMA(ImpactPtr pImpact, int num, BoxPtr pbox)
{
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
mgicfifo_t *cfifo =
pImpact->isSR ? &pImpactRegs->sr.cfifo:&pImpactRegs->i2.cfifo;
unsigned bpitch = pImpact->ShadowPitch;
for (; num-- > 0; pbox++) {
BoxRec sanebox;
TRACEV("ImpactRefreshArea32: %d [%d..%d]x[%d..%d]\n",
num, pbox->x1,pbox->x2, pbox->y1,pbox->y2);
if (ImpactAdjRefreshBox(pbox, &sanebox))
continue;
if (pImpact->FlushBoxCache)
(*pImpact->FlushBoxCache)(pImpact->devFD, (char*)pImpact->ShadowPtr,
&sanebox, bpitch);
(*pImpact->WaitDMAOver)(pImpactRegs);
ImpactRefreshBoxDMA(pImpact->isSR, cfifo, &sanebox, bpitch);
(*pImpact->WaitDMAOver)(pImpactRegs);
ImpactPostRefreshBoxDMA(cfifo);
}
TRACE_EXIT("ImpactRefreshArea32");
}
/*
* 32-bpp blits, done as PIO draw operation. On Indigo2 faster than DMA
* for very small boxes or boxes, no wider than about a dozen pixels.
*/
static void
ImpactRefreshArea32PIO(ImpactPtr pImpact, int num, BoxPtr pbox)
{
ImpactRegsPtr pImpactRegs = pImpact->pImpactRegs;
mgicfifo_t *cfifo =
pImpact->isSR ? &pImpactRegs->sr.cfifo:&pImpactRegs->i2.cfifo;
unsigned bpitch = pImpact->ShadowPitch;
for (; num--; pbox++) {
BoxRec sanebox;
unsigned char* base;
int dy;
TRACEV("ImpactRefreshArea32 PIO: %d [%d..%d[x[%d..%d[\n",
num, pbox->x1,pbox->x2, pbox->y1,pbox->y2 );
(*pImpact->WaitCfifoEmpty)(pImpactRegs);
if (ImpactPreRefreshBoxPIO(cfifo,pbox,&sanebox) <= 0)
continue;
base = (unsigned char*)pImpact->ShadowPtr
+ (dy = sanebox.y1) * bpitch + sanebox.x1 * 4;
for ( ; dy < sanebox.y2; dy++) {
unsigned *src = (unsigned*)base;
int dx = sanebox.x1;
while (dx < sanebox.x2) {
/* pairs of pixels are sent in two writes to the RE */
impact_cmd_char_h(cfifo, *src++);
impact_cmd_char_l(cfifo, *src++);
dx += 2;
}
base += bpitch;
}
ImpactPostRefreshBoxPIO(cfifo);
}
/* TRACE_EXIT("ImpactRefreshArea32"); */
}
void
ImpactI2RefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
ImpactPtr pImpact = IMPACTPTR(pScrn);
for (; num--; pbox++) {
int w = pbox->x2 - pbox->x1;
int h = pbox->y2 - pbox->y1;
if (w < 16 || w < 24 && h < 16 || w < 40 && h < 4)
ImpactRefreshArea32PIO(pImpact, 1, pbox);
else {
if (h < 580)
pImpact->FlushBoxCache = ImpactCflushBoxPixlines;
else
pImpact->FlushBoxCache = ImpactCflushBoxEnclosure;
ImpactRefreshArea32DMA(pImpact, 1, pbox);
}
}
}
void
ImpactSRRefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
ImpactRefreshArea32DMA(IMPACTPTR(pScrn), num, pbox);
}
/* eof */