Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=xfcetesting.git;a=commitdiff;h=7f4e1a11840aa7de3ec48ed75204cfe564ae14b9

commit 7f4e1a11840aa7de3ec48ed75204cfe564ae14b9
Author: James Buren <[email protected]>
Date:   Thu Jun 21 01:36:26 2012 -0500

xf86-video-sisusb-0.9.4-5-x86_64
* fix build

diff --git a/source/x11/xf86-video-sisusb/FrugalBuild 
b/source/x11/xf86-video-sisusb/FrugalBuild
index fe4fe34..2d57d7e 100644
--- a/source/x11/xf86-video-sisusb/FrugalBuild
+++ b/source/x11/xf86-video-sisusb/FrugalBuild
@@ -11,6 +11,8 @@ archs=('i686' 'x86_64')
depends=('xorg-server>=1.12.2')
makedepends=('randrproto>1.3.0' 'renderproto' 'videoproto>=2.2.2' 
'xf86driproto>=2.0.4' 'xf86miscproto' 'xineramaproto')
Finclude xorg
-sha1sums=('600fd49dffe00121f9042555fea55948653d1a7e')
+source=(${source[@]} git.patch)
+sha1sums=('600fd49dffe00121f9042555fea55948653d1a7e' \
+          'b074c2a3583fa8480ef39940381c5f447ba55777')

# optimization OK
diff --git a/source/x11/xf86-video-sisusb/git.patch 
b/source/x11/xf86-video-sisusb/git.patch
new file mode 100644
index 0000000..7e61bbb
--- /dev/null
+++ b/source/x11/xf86-video-sisusb/git.patch
@@ -0,0 +1,1195 @@
+diff --git a/configure.ac b/configure.ac
+index 86c6ac5..725d6cb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,49 +20,48 @@
+ #
+ # Process this file with autoconf to produce a configure script
+
+-AC_PREREQ(2.57)
++# Initialize Autoconf
++AC_PREREQ([2.60])
+ AC_INIT([xf86-video-sisusb],
+-        0.9.4,
++        [0.9.4],
+         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
+-        xf86-video-sisusb)
+-
++        [xf86-video-sisusb])
+ AC_CONFIG_SRCDIR([Makefile.am])
+-AM_CONFIG_HEADER([config.h])
++AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_AUX_DIR(.)
+
++# Initialize Automake
+ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+-
+ AM_MAINTAINER_MODE
+
+-# Require xorg-macros: XORG_DEFAULT_OPTIONS
++# Require X.Org macros 1.8 or later for MAN_SUBSTS set by 
XORG_MANPAGE_SECTIONS
+ m4_ifndef([XORG_MACROS_VERSION],
+-          [m4_fatal([must install xorg-macros 1.3 or later before running 
autoconf/autogen])])
+-XORG_MACROS_VERSION(1.3)
++          [m4_fatal([must install xorg-macros 1.8 or later before running 
autoconf/autogen])])
++XORG_MACROS_VERSION(1.8)
+ XORG_DEFAULT_OPTIONS
+
+-# Checks for programs.
++# Initialize libtool
+ AC_DISABLE_STATIC
+ AC_PROG_LIBTOOL
+-AC_PROG_CC
+-XORG_PROG_RAWCPP
+
+ AH_TOP([#include "xorg-server.h"])
+
++# Define a configure option for an alternate module directory
+ AC_ARG_WITH(xorg-module-dir,
+-            AC_HELP_STRING([--with-xorg-module-dir=DIR],
++            AS_HELP_STRING([--with-xorg-module-dir=DIR],
+                            [Default xorg module directory 
[[default=$libdir/xorg/modules]]]),
+             [moduledir="$withval"],
+             [moduledir="$libdir/xorg/modules"])
+
+-# Checks for extensions
++# Store the list of server defined optional extensions in REQUIRED_MODULES
+ XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
+ XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
+ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
+ XORG_DRIVER_CHECK_EXT(XV, videoproto)
+ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
+
+-# Checks for pkg-config packages
+-PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto 
$REQUIRED_MODULES])
++# Obtain compiler/linker options for the driver dependencies
++PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto 
pciaccess $REQUIRED_MODULES])
+ PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
+                   HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, 
[xextproto 7.1 available]),
+                   HAVE_XEXTPROTO_71="no")
+@@ -70,17 +69,14 @@ AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test 
"$HAVE_XEXTPROTO_71" = "yes" ])
+
+ # Checks for libraries.
+
+-# Checks for header files.
+-AC_HEADER_STDC
+-
+-AC_SUBST([XORG_CFLAGS])
+ AC_SUBST([moduledir])
+
+ DRIVER_NAME=sisusb
+ AC_SUBST([DRIVER_NAME])
+
+-AC_OUTPUT([
+-      Makefile
+-      src/Makefile
+-      man/Makefile
++AC_CONFIG_FILES([
++                Makefile
++                src/Makefile
++                man/Makefile
+ ])
++AC_OUTPUT
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 1b26ac2..9ceb36f 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -31,39 +31,9 @@ EXTRA_DIST = @[email protected]
+
+ CLEANFILES = $(driverman_DATA)
+
+-SED = sed
+-
+-# Strings to replace in man pages
+-XORGRELSTRING = @PACKAGE_STRING@
+-  XORGMANNAME = X Version 11
+-
+-MANDEFS =  \
+-      -D__vendorversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \
+-      -D__appmansuffix__=$(APP_MAN_SUFFIX) \
+-      -D__filemansuffix__=$(FILE_MAN_SUFFIX) \
+-      -D__libmansuffix__=$(LIB_MAN_SUFFIX) \
+-      -D__miscmansuffix__=$(MISC_MAN_SUFFIX) \
+-      -D__drivermansuffix__=$(DRIVER_MAN_SUFFIX) \
+-      -D__adminmansuffix__=$(ADMIN_MAN_SUFFIX) \
+-      -D__xconfigfile__=xorg.conf \
+-      -D__xservername__=Xorg
+-
+-# Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM
+-# to cpp, because that trick does not work on all ANSI C preprocessors.
+-# Delete line numbers from the cpp output (-P is not portable, I guess).
+-# Allow XCOMM to be preceded by whitespace and provide a means of generating
+-# output lines with trailing backslashes.
+-# Allow XHASH to always be substituted, even in cases where XCOMM isn't.
+-
+-CPP_SED_MAGIC = $(SED) -e '/^\#  *[0-9][0-9]*  *.*$$/d' \
+-                       -e '/^\#line  *[0-9][0-9]*  *.*$$/d' \
+-                       -e '/^[         ]*XCOMM$$/s/XCOMM/\#/' \
+-                       -e '/^[         ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
+-                       -e '/^[         ]*XHASH/s/XHASH/\#/' \
+-                       -e '/\@\@$$/s/\@\@$$/\\/'
+-
+ SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
+
++# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+ .man.$(DRIVER_MAN_SUFFIX):
+-      $(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | 
$(CPP_SED_MAGIC) > $@
++      $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+
+diff --git a/man/sisusb.man b/man/sisusb.man
+index 7817cb5..6eafb8e 100644
+--- a/man/sisusb.man
++++ b/man/sisusb.man
+@@ -1,17 +1,5 @@
+-.\" $XFree86$
+-.\" $XdotOrg$
+ .\" shorthand for double quote that works everywhere.
+ .ds q \N'34'
+-#ifdef __xservername__
+-#define __myservername__ __xservername__
+-#else
+-#define __myservername__ XFree86
+-#endif
+-#ifdef __xconfigfile__
+-#define __myxconfigfile__ __xconfigfile__
+-#else
+-#define __myxconfigfile__ XF86Config
+-#endif
+ .TH SISUSB __drivermansuffix__ __vendorversion__
+ .SH NAME
+ sisusb \- SiS USB video driver
+@@ -25,7 +13,7 @@ sisusb \- SiS USB video driver
+ .fi
+ .SH DESCRIPTION
+ .B sisusb
+-is an __myservername__ driver for SiS (Silicon Integrated Systems) video 
chips that
++is an __xservername__ driver for SiS (Silicon Integrated Systems) video chips 
that
+ are connected via a Net2280-based USB dongle. The driver is not accelerated, 
but
+ provides support for colordepths of 8, 16 and 24 bpp as well as Render and 
other
+ extensions.
+@@ -39,7 +27,7 @@ driver supports USB video cards based on the following 
chipsets:
+ The SiS315E/PRO features two CRT controllers. However, in its USB version, 
only
+ the first output, referred to as "CRT1", is being used.
+ .SH CONFIGURATION DETAILS
+-Please refer to __myxconfigfile__(__filemansuffix__) for general configuration
++Please refer to __xconfigfile__(__filemansuffix__) for general configuration
+ details and to sis(__drivermansuffix__) for more information. This manpage 
only
+ covers a subset of the supported options.
+ .PP
+@@ -81,11 +69,7 @@ for device reconnection).
+ .SH "KNOWN BUGS"
+ none.
+ .SH "SEE ALSO"
+-#ifdef __xservername__
+ __xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), 
Xserver(__appmansuffix__), X(__miscmansuffix__), sis(__drivermansuffix__)
+-#else
+-XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), 
X(__miscmansuffix__), sis(__drivermansuffix__)
+-#endif
+ .PP
+ .B "http://www.winischhofer.at/linuxsisvga.shtml";
+ for more information and updates
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 5e1735f..1f7e4a1 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -51,4 +51,5 @@ sisusb_drv_la_SOURCES = \
+          sisusb_vga.c \
+          sisusb_video.c \
+          sisusb_video.h \
+-         sisusb_videostr.h
++         sisusb_videostr.h \
++         compat-api.h
+diff --git a/src/compat-api.h b/src/compat-api.h
+new file mode 100644
+index 0000000..6bc946f
+--- /dev/null
++++ b/src/compat-api.h
+@@ -0,0 +1,99 @@
++/*
++ * Copyright 2012 Red Hat, Inc.
++ *
++ * 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 (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 NONINFRINGEMENT.  IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS 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.
++ *
++ * Author: Dave Airlie <[email protected]>
++ */
++
++/* this file provides API compat between server post 1.13 and pre it,
++   it should be reused inside as many drivers as possible */
++#ifndef COMPAT_API_H
++#define COMPAT_API_H
++
++#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
++#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
++#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
++#endif
++
++#ifndef XF86_HAS_SCRN_CONV
++#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
++#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
++#endif
++
++#ifndef XF86_SCRN_INTERFACE
++
++#define SCRN_ARG_TYPE int
++#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)]
++
++#define SCREEN_ARG_TYPE int
++#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
++
++#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv
++
++#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, 
pointer pReadmask
++#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask
++
++#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen
++#define CLOSE_SCREEN_ARGS scrnIndex, pScreen
++
++#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags
++#define ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0
++
++#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags
++#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0
++
++#define FREE_SCREEN_ARGS_DECL int arg, int flags
++
++#define VT_FUNC_ARGS_DECL int arg, int flags
++#define VT_FUNC_ARGS pScrn->scrnIndex, 0
++
++#define XF86_SCRN_ARG(x) ((x)->scrnIndex)
++#else
++#define SCRN_ARG_TYPE ScrnInfoPtr
++#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
++
++#define SCREEN_ARG_TYPE ScreenPtr
++#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1)
++
++#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer 
pReadmask
++#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
++
++#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
++#define CLOSE_SCREEN_ARGS pScreen
++
++#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y
++#define ADJUST_FRAME_ARGS(arg, x, y) arg, x, y
++
++#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode
++#define SWITCH_MODE_ARGS(arg, m) arg, m
++
++#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg
++
++#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg
++#define VT_FUNC_ARGS pScrn
++
++#define XF86_SCRN_ARG(x) (x)
++
++#endif
++
++#endif
+diff --git a/src/sisusb.h b/src/sisusb.h
+index b9992ac..f66b701 100644
+--- a/src/sisusb.h
++++ b/src/sisusb.h
+@@ -113,6 +113,16 @@
+ #include <X11/extensions/Xv.h>
+ #endif
+
++#include "compat-api.h"
++
++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12
++#define _swapl(x, n) swapl(x,n)
++#define _swaps(x, n) swaps(x,n)
++#else
++#define _swapl(x, n) swapl(x)
++#define _swaps(x, n) swaps(x)
++#endif
++
+ /* Platform/architecture related definitions: */
+
+ #undef SIS_PC_PLATFORM
+@@ -141,7 +151,6 @@
+ #define UNLOCK_ALWAYS         /* Always unlock the registers (should be set!) 
*/
+
+ /* Need that for SiSCtrl */
+-#define NEED_REPLIES          /* ? */
+ #define EXTENSION_PROC_ARGS void *
+ #include "extnsionst.h"                       /* required */
+ #include <X11/extensions/panoramiXproto.h>    /* required */
+@@ -732,7 +741,7 @@ typedef struct {
+     Bool              skipswitchcheck;
+     ULong             VBFlagsInit;
+     DisplayModePtr    currentModeLast;
+-    IOADDRESS         MyPIOOffset;
++    unsigned long             MyPIOOffset;
+
+     char              messagebuffer[64];
+     unsigned int      VGAMapSize;             /* SiSVGA stuff */
+diff --git a/src/sisusb_accel.c b/src/sisusb_accel.c
+index d9c0665..c973a4c 100644
+--- a/src/sisusb_accel.c
++++ b/src/sisusb_accel.c
+@@ -60,7 +60,7 @@ SiSUSBInitializeAccelerator(ScrnInfoPtr pScrn)
+ Bool
+ SiSUSBAccelInit(ScreenPtr pScreen)
+ {
+-      ScrnInfoPtr     pScrn = xf86Screens[pScreen->myNum];
++      ScrnInfoPtr     pScrn = xf86ScreenToScrn(pScreen);
+       SISUSBPtr       pSiSUSB = SISUSBPTR(pScrn);
+       int             topFB, reservedFbSize, usableFbSize;
+       BoxRec          Avail;
+diff --git a/src/sisusb_cursor.c b/src/sisusb_cursor.c
+index b5b3629..9782f9e 100644
+--- a/src/sisusb_cursor.c
++++ b/src/sisusb_cursor.c
+@@ -156,7 +156,7 @@ SiSUSBLoadCursorImage(ScrnInfoPtr pScrn, UChar *src)
+ static Bool
+ SiSUSBUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+     DisplayModePtr mode = pSiSUSB->CurrentLayout.mode;
+
+@@ -172,7 +172,7 @@ SiSUSBUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
+ static Bool
+ SiSUSBUseHWCursorARGB(ScreenPtr pScreen, CursorPtr pCurs)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+     DisplayModePtr mode = pSiSUSB->CurrentLayout.mode;
+
+@@ -261,7 +261,7 @@ static void SiSUSBLoadCursorImageARGB(ScrnInfoPtr pScrn, 
CursorPtr pCurs)
+ Bool
+ SiSUSBHWCursorInit(ScreenPtr pScreen)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+     xf86CursorInfoPtr infoPtr;
+
+diff --git a/src/sisusb_dac.c b/src/sisusb_dac.c
+index 5e3eb7f..b5c4dce 100644
+--- a/src/sisusb_dac.c
++++ b/src/sisusb_dac.c
+@@ -672,7 +672,7 @@ SiSUSBMemCopyToVideoRam(SISUSBPtr pSiSUSB, UChar *to, 
UChar *from, int size)
+    int num, retry = 3;
+    if(pSiSUSB->sisusbfatalerror) return;
+    do {
+-      lseek(pSiSUSB->sisusbdev, (int)to, SEEK_SET);
++      lseek(pSiSUSB->sisusbdev, (uintptr_t)to, SEEK_SET);
+       num = write(pSiSUSB->sisusbdev, from, size);
+    } while((num != size) && --retry);
+    if(!retry) SiSLostConnection(pSiSUSB);
+@@ -958,7 +958,7 @@ void sisclearvram(SISUSBPtr pSiSUSB, UChar *where, 
unsigned int howmuch)
+    if(pSiSUSB->sisusbfatalerror) return;
+    do {
+       x.operation = SUCMD_CLRSCR;
+-      x.data3 = (CARD32)where;
++      x.data3 = (CARD32)(uintptr_t)where;
+       x.data0 = (howmuch >> 16) & 0xff;
+       x.data1 = (howmuch >> 8) & 0xff;
+       x.data2 = howmuch & 0xff;
+@@ -990,7 +990,7 @@ void SIS_MMIO_OUT8(SISUSBPtr pSiSUSB, UChar *base, 
unsigned int offset, CARD8 va
+     int num, retry = 3;
+     if(pSiSUSB->sisusbfatalerror) return;
+     do {
+-       lseek(pSiSUSB->sisusbdev, (int)base + offset, SEEK_SET);
++       lseek(pSiSUSB->sisusbdev, (uintptr_t)base + offset, SEEK_SET);
+        num = write(pSiSUSB->sisusbdev, &val, 1);
+     } while((num != 1) && --retry);
+     if(!retry) SiSLostConnection(pSiSUSB);
+@@ -1002,7 +1002,7 @@ void SIS_MMIO_OUT16(SISUSBPtr pSiSUSB, UChar *base, 
unsigned int offset, CARD16
+     CARD16 buf = sisusb_cpu_to_le16(val);
+     if(pSiSUSB->sisusbfatalerror) return;
+     do {
+-       lseek(pSiSUSB->sisusbdev, (int)base + offset, SEEK_SET);
++       lseek(pSiSUSB->sisusbdev, (uintptr_t)base + offset, SEEK_SET);
+        num = write(pSiSUSB->sisusbdev, &buf, 2);
+     } while((num != 2) && --retry);
+     if(!retry) SiSLostConnection(pSiSUSB);
+@@ -1014,7 +1014,7 @@ void SIS_MMIO_OUT32(SISUSBPtr pSiSUSB, UChar *base, 
unsigned int offset, CARD32
+     CARD32 buf = sisusb_cpu_to_le32(val);
+     if(pSiSUSB->sisusbfatalerror) return;
+     do {
+-       lseek(pSiSUSB->sisusbdev, (int)base + offset, SEEK_SET);
++       lseek(pSiSUSB->sisusbdev, (uintptr_t)base + offset, SEEK_SET);
+        num = write(pSiSUSB->sisusbdev, &buf, 4);
+     } while((num != 4) && --retry);
+     if(!retry) SiSLostConnection(pSiSUSB);
+@@ -1026,7 +1026,7 @@ CARD8 SIS_MMIO_IN8(SISUSBPtr pSiSUSB, UChar *base, 
unsigned int offset)
+     CARD8 tmp;
+     if(pSiSUSB->sisusbfatalerror) return 0;
+     do {
+-       lseek(pSiSUSB->sisusbdev, (int)base + offset, SEEK_SET);
++       lseek(pSiSUSB->sisusbdev, (uintptr_t)base + offset, SEEK_SET);
+        num = read(pSiSUSB->sisusbdev, &tmp, 1);
+     } while((num != 1) && --retry);
+     if(!retry) SiSLostConnection(pSiSUSB);
+@@ -1039,7 +1039,7 @@ CARD16 SIS_MMIO_IN16(SISUSBPtr pSiSUSB, UChar *base, 
unsigned int offset)
+     CARD16 tmp;
+     if(pSiSUSB->sisusbfatalerror) return 0;
+     do {
+-       lseek(pSiSUSB->sisusbdev, (int)base + offset, SEEK_SET);
++       lseek(pSiSUSB->sisusbdev, (uintptr_t)base + offset, SEEK_SET);
+        num = read(pSiSUSB->sisusbdev, &tmp, 2);
+     } while((num != 2) && --retry);
+     if(!retry) SiSLostConnection(pSiSUSB);
+@@ -1052,7 +1052,7 @@ CARD32 SIS_MMIO_IN32(SISUSBPtr pSiSUSB, UChar *base, 
unsigned int offset)
+     CARD32 tmp;
+     if(pSiSUSB->sisusbfatalerror) return 0;
+     do {
+-       lseek(pSiSUSB->sisusbdev, (int)base + offset, SEEK_SET);
++       lseek(pSiSUSB->sisusbdev, (uintptr_t)base + offset, SEEK_SET);
+        num = read(pSiSUSB->sisusbdev, &tmp, 4);
+     } while((num != 4) && --retry);
+     if(!retry) SiSLostConnection(pSiSUSB);
+diff --git a/src/sisusb_driver.c b/src/sisusb_driver.c
+index 8ba2c33..208cdbe 100644
+--- a/src/sisusb_driver.c
++++ b/src/sisusb_driver.c
+@@ -186,12 +186,12 @@ SISUSBFreeRec(ScrnInfoPtr pScrn)
+     /* Just to make sure... */
+     if(!pSiSUSB) return;
+
+-    if(pSiSUSB->pstate) xfree(pSiSUSB->pstate);
++    if(pSiSUSB->pstate) free(pSiSUSB->pstate);
+     pSiSUSB->pstate = NULL;
+-    if(pSiSUSB->fonts) xfree(pSiSUSB->fonts);
++    if(pSiSUSB->fonts) free(pSiSUSB->fonts);
+     pSiSUSB->fonts = NULL;
+
+-    if(pSiSUSB->SiS_Pr) xfree(pSiSUSB->SiS_Pr);
++    if(pSiSUSB->SiS_Pr) free(pSiSUSB->SiS_Pr);
+     pSiSUSB->SiS_Pr = NULL;
+
+     if(pSiSUSB->sisusbdevopen) {
+@@ -200,12 +200,12 @@ SISUSBFreeRec(ScrnInfoPtr pScrn)
+     }
+
+     if(pScrn->chipset) {
+-       xfree(pScrn->chipset);
++       free(pScrn->chipset);
+        pScrn->chipset = NULL;
+     }
+
+     if(pScrn->driverPrivate) {
+-       xfree(pScrn->driverPrivate);
++       free(pScrn->driverPrivate);
+        pScrn->driverPrivate = NULL;
+     }
+ }
+@@ -217,14 +217,14 @@ SISUSBErrorLog(ScrnInfoPtr pScrn, const char *format, 
...)
+     static const char *str = 
"**************************************************\n";
+
+     va_start(ap, format);
+-    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
++    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
+     xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+       "                      ERROR:\n");
+     xf86VDrvMsgVerb(pScrn->scrnIndex, X_ERROR, 1, format, ap);
+     va_end(ap);
+     xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+       "                  END OF MESSAGE\n");
+-    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, str);
++    xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "%s", str);
+ }
+
+ static int
+@@ -248,7 +248,7 @@ SiSUSBCheckForUSBDongle(char *filename, SISUSBPtr pSiSUSB, 
int *filehandle)
+
+     if((myfile = open(filename, O_RDWR, 0)) != -1) {
+        if(!ioctl(myfile, SISUSB_GET_CONFIG_SIZE, &sisusbinfosize)) {
+-        if((mysisusbinfo = xalloc(sisusbinfosize))) {
++        if((mysisusbinfo = malloc(sisusbinfosize))) {
+            if(!ioctl(myfile, (SISUSB_GET_CONFIG | (sisusbinfosize << 16)), 
mysisusbinfo)) {
+               if(mysisusbinfo->sisusb_id == SISUSB_ID) {
+                  sisusbversion = (mysisusbinfo->sisusb_version  << 16) |
+@@ -280,7 +280,7 @@ SiSUSBCheckForUSBDongle(char *filename, SISUSBPtr pSiSUSB, 
int *filehandle)
+                  retval = mysisusbinfo->sisusb_minor;
+               }
+            }
+-           xfree(mysisusbinfo);
++           free(mysisusbinfo);
+            mysisusbinfo = NULL;
+         }
+        }
+@@ -307,13 +307,13 @@ SiSUSBFindUSBDongle(GDevPtr dev, int *minorArray, int 
numDevSections, char **nam
+        }
+        if((p) && (*p) && (*p == '/')) {
+           gotdev = 1;
+-        *nameptr = xalloc(strlen(p) + 1);
++        *nameptr = malloc(strlen(p) + 1);
+           strcpy(*nameptr, p);
+         retval = SiSUSBCheckForUSBDongle(*nameptr, NULL, NULL);
+        } else if((p) && (*p) && (sscanf(p, "%d", &i) == 1)) {
+           if(i >= 0 && i <= 31) {
+              gotdev = 1;
+-           *nameptr = xalloc(32);
++           *nameptr = malloc(32);
+              sprintf(*nameptr, "/dev/sisusbvga%d", i);
+              retval = SiSUSBCheckForUSBDongle(*nameptr, NULL, NULL);
+            if(retval < 0) {
+@@ -324,7 +324,7 @@ SiSUSBFindUSBDongle(GDevPtr dev, int *minorArray, int 
numDevSections, char **nam
+        }
+     }
+     if(!gotdev) {
+-       *nameptr = xalloc(32);
++       *nameptr = malloc(32);
+        for(i = 0; i < 64; i++) {
+           if(i < 32) sprintf(*nameptr, "/dev/sisusbvga%d", i);
+         else       sprintf(*nameptr, "/dev/usb/sisusbvga%d", i);
+@@ -338,7 +338,7 @@ SiSUSBFindUSBDongle(GDevPtr dev, int *minorArray, int 
numDevSections, char **nam
+     if(retval >= 0) {
+        xf86Msg(X_INFO, "Found SiSUSB dongle (node %s, minor %d)\n", *nameptr, 
retval);
+     } else if((*nameptr)) {
+-       xfree(*nameptr);
++       free(*nameptr);
+        *nameptr = NULL;
+     }
+
+@@ -401,14 +401,14 @@ SISUSBProbe(DriverPtr drv, int flags)
+      */
+
+     /* Allocate and initialize an array of ints for storing the minors */
+-    if(!(minorArray = (int *)xalloc(numDevSections * sizeof(int)))) {
++    if(!(minorArray = (int *)malloc(numDevSections * sizeof(int)))) {
+        return FALSE;
+     }
+     for(i = 0; i < numDevSections; i++) minorArray[i] = -1;
+
+     /* Allocate an array of char ptrs for storing the device node names */
+-    if(!(devnameArray = (char **)xalloc(numDevSections * sizeof(char *)))) {
+-       xfree(minorArray);
++    if(!(devnameArray = (char **)malloc(numDevSections * sizeof(char *)))) {
++       free(minorArray);
+        return FALSE;
+     }
+
+@@ -420,20 +420,20 @@ SISUSBProbe(DriverPtr drv, int flags)
+        if((myminor = SiSUSBFindUSBDongle(devSections[i], minorArray, 
numDevSections, &nameptr)) >= 0) {
+           if(!SiSUSBFindDuplicate(myminor, minorArray, numDevSections)) {
+            minorArray[numUsed] = myminor;
+-           devnameArray[numUsed] = xalloc(strlen(nameptr) + 1);
++           devnameArray[numUsed] = malloc(strlen(nameptr) + 1);
+            strcpy(devnameArray[numUsed], nameptr);
+              numUsed++;
+         }
+-        xfree(nameptr);
++        free(nameptr);
+        }
+     }
+
+     /* Free the minor array, we don't need it anymore */
+-    xfree(minorArray);
++    free(minorArray);
+
+     if(numUsed <= 0) {
+-       xfree(devSections);
+-       xfree(devnameArray);
++       free(devSections);
++       free(devnameArray);
+        return FALSE;
+     }
+
+@@ -470,8 +470,8 @@ SISUSBProbe(DriverPtr drv, int flags)
+
+     }
+
+-    xfree(devSections);
+-    xfree(devnameArray);
++    free(devSections);
++    free(devnameArray);
+     return foundScreen;
+ }
+
+@@ -622,10 +622,10 @@ SISUSBCalculateGammaRamp(ScreenPtr pScreen, ScrnInfoPtr 
pScrn)
+    if(!(nramp = xf86GetGammaRampSize(pScreen))) return;
+
+    for(i=0; i<3; i++) {
+-      ramp[i] = (UShort *)xalloc(nramp * sizeof(UShort));
++      ramp[i] = (UShort *)malloc(nramp * sizeof(UShort));
+       if(!ramp[i]) {
+-         if(ramp[0]) { xfree(ramp[0]); ramp[0] = NULL; }
+-       if(ramp[1]) { xfree(ramp[1]); ramp[1] = NULL; }
++         if(ramp[0]) { free(ramp[0]); ramp[0] = NULL; }
++       if(ramp[1]) { free(ramp[1]); ramp[1] = NULL; }
+          return;
+       }
+    }
+@@ -685,9 +685,9 @@ SISUSBCalculateGammaRamp(ScreenPtr pScreen, ScrnInfoPtr 
pScrn)
+
+    xf86ChangeGammaRamp(pScreen, nramp, ramp[0], ramp[1], ramp[2]);
+
+-   xfree(ramp[0]);
+-   xfree(ramp[1]);
+-   xfree(ramp[2]);
++   free(ramp[0]);
++   free(ramp[1]);
++   free(ramp[2]);
+    ramp[0] = ramp[1] = ramp[2] = NULL;
+ }
+ #endif
+@@ -906,11 +906,11 @@ SISUSBPreInit(ScrnInfoPtr pScrn, int flags)
+            Bool gotit = FALSE;
+
+            if(!ioctl(fd, SISUSBFB_GET_INFO_SIZE, &sisfbinfosize)) {
+-              if((mysisfbinfo = xalloc(sisfbinfosize))) {
++              if((mysisfbinfo = malloc(sisfbinfosize))) {
+                  if(!ioctl(fd, (SISUSBFB_GET_INFO | (sisfbinfosize << 16)), 
mysisfbinfo)) {
+                     gotit = TRUE;
+                  } else {
+-                    xfree(mysisfbinfo);
++                    free(mysisfbinfo);
+                     mysisfbinfo = NULL;
+                  }
+               }
+@@ -944,7 +944,7 @@ SISUSBPreInit(ScrnInfoPtr pScrn, int flags)
+
+                  }
+               }
+-              xfree(mysisfbinfo);
++              free(mysisfbinfo);
+               mysisfbinfo = NULL;
+            }
+            close (fd);
+@@ -1147,7 +1147,7 @@ SISUSBPreInit(ScrnInfoPtr pScrn, int flags)
+ #endif
+
+     if(pSiSUSB->HWCursor) {
+-       if(!(pSiSUSB->USBCursorBuf = xcalloc(pSiSUSB->CursorSize * 4, 1))) 
pSiSUSB->HWCursor = FALSE;
++       if(!(pSiSUSB->USBCursorBuf = calloc(pSiSUSB->CursorSize * 4, 1))) 
pSiSUSB->HWCursor = FALSE;
+
+        pSiSUSB->availMem -= (pSiSUSB->CursorSize * 2);
+        if(pSiSUSB->OptUseColorCursor) pSiSUSB->availMem -= 
(pSiSUSB->CursorSize * 2);
+@@ -1456,8 +1456,8 @@ SISUSBMapMem(ScrnInfoPtr pScrn)
+ {
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+
+-    pSiSUSB->FbBase = (UChar *)pSiSUSB->FbAddress;
+-    pSiSUSB->IOBase = (UChar *)pSiSUSB->IOAddress;
++    pSiSUSB->FbBase = (UChar *)(uintptr_t)pSiSUSB->FbAddress;
++    pSiSUSB->IOBase = (UChar *)(uintptr_t)pSiSUSB->IOAddress;
+
+     return TRUE;
+ }
+@@ -1638,10 +1638,10 @@ SISUSBBridgeRestore(ScrnInfoPtr pScrn)
+
+ /* Our generic BlockHandler for Xv */
+ static void
+-SISUSBBlockHandler(int i, pointer blockData, pointer pTimeout, pointer 
pReadmask)
++SISUSBBlockHandler(BLOCKHANDLER_ARGS_DECL)
+ {
+-    ScreenPtr pScreen = screenInfo.screens[i];
+-    ScrnInfoPtr pScrn = xf86Screens[i];
++    SCREEN_PTR(arg);
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+
+     if((pSiSUSB->sisusbfatalerror) && (pSiSUSB->timeout != -1)) {
+@@ -1651,7 +1651,7 @@ SISUSBBlockHandler(int i, pointer blockData, pointer 
pTimeout, pointer pReadmask
+            pSiSUSB->sisusberrorsleepcount = 0;
+            pSiSUSB->sisusbfatalerror = 0;
+            pSiSUSB->sisusbdevopen = TRUE;
+-           (*pScrn->SwitchMode)(pScrn->scrnIndex, pScrn->currentMode, 0);
++           (*pScrn->SwitchMode)(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode));
+            pSiSUSB->ShBoxcount = 1;
+            pSiSUSB->ShXmin = pSiSUSB->ShYmin = 0;
+            pSiSUSB->ShXmax = pScrn->virtualX;
+@@ -1669,7 +1669,7 @@ SISUSBBlockHandler(int i, pointer blockData, pointer 
pTimeout, pointer pReadmask
+     SISUSBDoRefreshArea(pScrn);
+
+     pScreen->BlockHandler = pSiSUSB->BlockHandler;
+-    (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
++    (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS);
+     pScreen->BlockHandler = SISUSBBlockHandler;
+
+     if(pSiSUSB->VideoTimerCallback) {
+@@ -1686,9 +1686,9 @@ SISUSBBlockHandler(int i, pointer blockData, pointer 
pTimeout, pointer pReadmask
+  * depth, bitsPerPixel)
+  */
+ static Bool
+-SISUSBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
++SISUSBScreenInit(SCREEN_INIT_ARGS_DECL)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+     int ret;
+     VisualPtr visual;
+@@ -1784,7 +1784,7 @@ SISUSBScreenInit(int scrnIndex, ScreenPtr pScreen, int 
argc, char **argv)
+     SISUSBSaveScreen(pScreen, SCREEN_SAVER_ON);
+
+     /* Set the viewport */
+-    SISUSBAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++    SISUSBAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, 
pScrn->frameY0));
+
+     /* Reset visual list. */
+     miClearVisualTypes();
+@@ -1811,7 +1811,7 @@ SISUSBScreenInit(int scrnIndex, ScreenPtr pScreen, int 
argc, char **argv)
+
+     if(pSiSUSB->ShadowFB) {
+        pSiSUSB->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * 
displayWidth);
+-       pSiSUSB->ShadowPtr = xalloc(pSiSUSB->ShadowPitch * height);
++       pSiSUSB->ShadowPtr = malloc(pSiSUSB->ShadowPitch * height);
+        if(!(FBStart = pSiSUSB->ShadowPtr)) {
+           SISUSBSaveScreen(pScreen, SCREEN_SAVER_OFF);
+           SISUSBErrorLog(pScrn, "Failed to allocate shadow framebuffer\n");
+@@ -1820,7 +1820,7 @@ SISUSBScreenInit(int scrnIndex, ScreenPtr pScreen, int 
argc, char **argv)
+ #if X_BYTE_ORDER == X_BIG_ENDIAN
+        if(pScrn->bitsPerPixel == 16) {
+           /* For 16bpp, we need to swap the bytes in the framebuffer */
+-          if(!(pSiSUSB->ShadowPtrSwap = xalloc(pSiSUSB->ShadowPitch * 
height))) {
++          if(!(pSiSUSB->ShadowPtrSwap = malloc(pSiSUSB->ShadowPitch * 
height))) {
+            SISUSBSaveScreen(pScreen, SCREEN_SAVER_OFF);
+              SISUSBErrorLog(pScrn, "Failed to allocate swap buffer for shadow 
framebuffer\n");
+              return FALSE;
+@@ -2044,13 +2044,13 @@ SISUSBScreenInit(int scrnIndex, ScreenPtr pScreen, int 
argc, char **argv)
+
+ /* Usually mandatory */
+ Bool
+-SISUSBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
++SISUSBSwitchMode(SWITCH_MODE_ARGS_DECL)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++    SCRN_INFO_PTR(arg);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+
+     if(!pSiSUSB->skipswitchcheck) {
+-       if(SISUSBValidMode(scrnIndex, mode, TRUE, flags) != MODE_OK) {
++       if(SISUSBValidMode(arg, mode, TRUE, 0) != MODE_OK) {
+           return FALSE;
+        }
+     }
+@@ -2061,7 +2061,7 @@ SISUSBSwitchMode(int scrnIndex, DisplayModePtr mode, int 
flags)
+     }
+ #endif
+
+-    if(!(SISUSBModeInit(xf86Screens[scrnIndex], mode))) return FALSE;
++    if(!(SISUSBModeInit(pScrn, mode))) return FALSE;
+
+     return TRUE;
+ }
+@@ -2089,9 +2089,9 @@ SISUSBSetStartAddressCRT1(SISUSBPtr pSiSUSB, ULong base)
+  * Usually mandatory
+  */
+ void
+-SISUSBAdjustFrame(int scrnIndex, int x, int y, int flags)
++SISUSBAdjustFrame(ADJUST_FRAME_ARGS_DECL)
+ {
+-    ScrnInfoPtr   pScrn = xf86Screens[scrnIndex];
++    SCRN_INFO_PTR(arg);
+     SISUSBPtr        pSiSUSB = SISUSBPTR(pScrn);
+     ULong base;
+
+@@ -2130,9 +2130,9 @@ SISUSBAdjustFrame(int scrnIndex, int x, int y, int flags)
+  * Mandatory!
+  */
+ static Bool
+-SISUSBEnterVT(int scrnIndex, int flags)
++SISUSBEnterVT(VT_FUNC_ARGS_DECL)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++    SCRN_INFO_PTR(arg);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+
+     SiSUSB_SiSFB_Lock(pScrn, TRUE);
+@@ -2148,7 +2148,7 @@ SISUSBEnterVT(int scrnIndex, int flags)
+        return FALSE;
+     }
+
+-    SISUSBAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
++    SISUSBAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, 
pScrn->frameY0));
+
+     if(pSiSUSB->ResetXv) {
+        (pSiSUSB->ResetXv)(pScrn);
+@@ -2163,9 +2163,9 @@ SISUSBEnterVT(int scrnIndex, int flags)
+  * Mandatory!
+  */
+ static void
+-SISUSBLeaveVT(int scrnIndex, int flags)
++SISUSBLeaveVT(VT_FUNC_ARGS_DECL)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++    SCRN_INFO_PTR(arg);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+
+     if(pSiSUSB->CursorInfoPtr) {
+@@ -2197,9 +2197,9 @@ SISUSBLeaveVT(int scrnIndex, int flags)
+  * Mandatory!
+  */
+ static Bool
+-SISUSBCloseScreen(int scrnIndex, ScreenPtr pScreen)
++SISUSBCloseScreen(CLOSE_SCREEN_ARGS_DECL)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+
+     if(pSiSUSB->SiSCtrlExtEntry) {
+@@ -2238,24 +2238,24 @@ SISUSBCloseScreen(int scrnIndex, ScreenPtr pScreen)
+     }
+
+     if(pSiSUSB->USBCursorBuf) {
+-       xfree(pSiSUSB->USBCursorBuf);
++       free(pSiSUSB->USBCursorBuf);
+        pSiSUSB->USBCursorBuf = NULL;
+     }
+
+     if(pSiSUSB->ShadowPtr) {
+-       xfree(pSiSUSB->ShadowPtr);
++       free(pSiSUSB->ShadowPtr);
+        pSiSUSB->ShadowPtr = NULL;
+     }
+
+ #if 0
+     if(pSiSUSB->PreAllocMem) {
+-       xfree(pSiSUSB->PreAllocMem);
++       free(pSiSUSB->PreAllocMem);
+        pSiSUSB->PreAllocMem = NULL;
+     }
+ #endif
+
+     if(pSiSUSB->adaptor) {
+-       xfree(pSiSUSB->adaptor);
++       free(pSiSUSB->adaptor);
+        pSiSUSB->adaptor = NULL;
+        pSiSUSB->ResetXv = pSiSUSB->ResetXvGamma = NULL;
+     }
+@@ -2273,7 +2273,7 @@ SISUSBCloseScreen(int scrnIndex, ScreenPtr pScreen)
+
+     pScreen->CloseScreen = pSiSUSB->CloseScreen;
+
+-    return(*pScreen->CloseScreen)(scrnIndex, pScreen);
++    return(*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
+ }
+
+
+@@ -2281,18 +2281,19 @@ SISUSBCloseScreen(int scrnIndex, ScreenPtr pScreen)
+
+ /* Optional */
+ static void
+-SISUSBFreeScreen(int scrnIndex, int flags)
++SISUSBFreeScreen(FREE_SCREEN_ARGS_DECL)
+ {
+-    SISUSBFreeRec(xf86Screens[scrnIndex]);
++    SCRN_INFO_PTR(arg);
++    SISUSBFreeRec(pScrn);
+ }
+
+
+ /* Checks if a mode is suitable for the selected chipset. */
+
+ static ModeStatus
+-SISUSBValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
++SISUSBValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int 
flags)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
++    SCRN_INFO_PTR(arg);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+
+     if(SiSUSB_CheckModeCRT1(pScrn, mode, pSiSUSB->VBFlags, 
pSiSUSB->HaveCustomModes) < 0x14)
+diff --git a/src/sisusb_driver.h b/src/sisusb_driver.h
+index c4bc1dd..d0002d1 100644
+--- a/src/sisusb_driver.h
++++ b/src/sisusb_driver.h
+@@ -71,20 +71,20 @@ static const struct _sis_vrate {
+ static void   SISUSBIdentify(int flags);
+ static Bool   SISUSBProbe(DriverPtr drv, int flags);
+ static Bool   SISUSBPreInit(ScrnInfoPtr pScrn, int flags);
+-static Bool   SISUSBScreenInit(int Index, ScreenPtr pScreen, int argc, char 
**argv);
+-static Bool   SISUSBEnterVT(int scrnIndex, int flags);
+-static void   SISUSBLeaveVT(int scrnIndex, int flags);
+-static Bool   SISUSBCloseScreen(int scrnIndex, ScreenPtr pScreen);
++static Bool   SISUSBScreenInit(SCREEN_INIT_ARGS_DECL);
++static Bool   SISUSBEnterVT(VT_FUNC_ARGS_DECL);
++static void   SISUSBLeaveVT(VT_FUNC_ARGS_DECL);
++static Bool   SISUSBCloseScreen(CLOSE_SCREEN_ARGS_DECL);
+ static Bool   SISUSBSaveScreen(ScreenPtr pScreen, int mode);
+-static Bool   SISUSBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
+-static void   SISUSBAdjustFrame(int scrnIndex, int x, int y, int flags);
++static Bool   SISUSBSwitchMode(SWITCH_MODE_ARGS_DECL);
++static void   SISUSBAdjustFrame(ADJUST_FRAME_ARGS_DECL);
+ #ifdef SISUSB_HAVE_DRIVER_FUNC
+ static Bool   SISUSBDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, 
pointer p);
+ #endif
+
+ /* Optional functions */
+-static void       SISUSBFreeScreen(int scrnIndex, int flags);
+-static ModeStatus SISUSBValidMode(int scrnIndex, DisplayModePtr mode,
++static void       SISUSBFreeScreen(FREE_SCREEN_ARGS_DECL);
++static ModeStatus SISUSBValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode,
+                               Bool verbose, int flags);
+
+ /* Internally used functions */
+diff --git a/src/sisusb_init.c b/src/sisusb_init.c
+index ba44431..99ec519 100644
+--- a/src/sisusb_init.c
++++ b/src/sisusb_init.c
+@@ -1301,10 +1301,10 @@ SiSUSBBuildBuiltInModeList(ScrnInfoPtr pScrn, BOOLEAN 
includelcdmodes, BOOLEAN i
+        }
+       }
+
+-      if(!(new = xalloc(sizeof(DisplayModeRec)))) return first;
++      if(!(new = malloc(sizeof(DisplayModeRec)))) return first;
+       memset(new, 0, sizeof(DisplayModeRec));
+-      if(!(new->name = xalloc(10))) {
+-               xfree(new);
++      if(!(new->name = malloc(10))) {
++               free(new);
+        return first;
+       }
+       if(!first) first = new;
+diff --git a/src/sisusb_opt.c b/src/sisusb_opt.c
+index d4612b0..4d5cfa3 100644
+--- a/src/sisusb_opt.c
++++ b/src/sisusb_opt.c
+@@ -228,7 +228,7 @@ SiSUSBOptions(ScrnInfoPtr pScrn)
+     xf86CollectOptions(pScrn, NULL);
+
+     /* Process the options */
+-    if(!(pSiSUSB->Options = xalloc(sizeof(SISUSBOptions)))) return;
++    if(!(pSiSUSB->Options = malloc(sizeof(SISUSBOptions)))) return;
+
+     memcpy(pSiSUSB->Options, SISUSBOptions, sizeof(SISUSBOptions));
+
+diff --git a/src/sisusb_osdef.h b/src/sisusb_osdef.h
+index 2d938ad..500bffb 100644
+--- a/src/sisusb_osdef.h
++++ b/src/sisusb_osdef.h
+@@ -77,11 +77,11 @@
+
+ #define SIS315H
+
+-#define OutPortByte(p,v) outSISREG((IOADDRESS)(p),(CARD8)(v))
+-#define OutPortWord(p,v) outSISREGW((IOADDRESS)(p),(CARD16)(v))
+-#define OutPortLong(p,v) outSISREGL((IOADDRESS)(p),(CARD32)(v))
+-#define InPortByte(p)    inSISREG((IOADDRESS)(p))
+-#define InPortWord(p)    inSISREGW((IOADDRESS)(p))
+-#define InPortLong(p)    inSISREGL((IOADDRESS)(p))
++#define OutPortByte(p,v) outSISREG((unsigned long)(p),(CARD8)(v))
++#define OutPortWord(p,v) outSISREGW((unsigned long)(p),(CARD16)(v))
++#define OutPortLong(p,v) outSISREGL((unsigned long)(p),(CARD32)(v))
++#define InPortByte(p)    inSISREG((unsigned long)(p))
++#define InPortWord(p)    inSISREGW((unsigned long)(p))
++#define InPortLong(p)    inSISREGL((unsigned long)(p))
+
+ #endif  /* _SISUSB_OSDEF_H_ */
+diff --git a/src/sisusb_types.h b/src/sisusb_types.h
+index 04c7a7a..9fc6b41 100644
+--- a/src/sisusb_types.h
++++ b/src/sisusb_types.h
+@@ -51,6 +51,8 @@
+ #ifndef _VGATYPES_
+ #define _VGATYPES_
+
++#include <xf86Pci.h>
++
+ #ifndef FALSE
+ #define FALSE   0
+ #endif
+@@ -93,7 +95,7 @@ typedef unsigned char BOOLEAN;
+
+ #define SISIOMEMTYPE
+
+-typedef IOADDRESS SISIOADDRESS;
++typedef unsigned long SISIOADDRESS;
+
+ typedef enum _SIS_CHIP_TYPE {
+     SIS_VGALegacy = 0,
+diff --git a/src/sisusb_utility.c b/src/sisusb_utility.c
+index 8c03d63..a9c1ee1 100644
+--- a/src/sisusb_utility.c
++++ b/src/sisusb_utility.c
+@@ -34,8 +34,6 @@
+ #endif
+
+ #include "sisusb.h"
+-#define NEED_REPLIES
+-#define NEED_EVENTS
+ #include <X11/X.h>
+ #include "dixstruct.h"
+
+@@ -789,10 +787,10 @@ SiSUSBProcSiSCtrlQueryVersion(ClientPtr client)
+     rep.majorVersion = SISCTRL_MAJOR_VERSION;
+     rep.minorVersion = SISCTRL_MINOR_VERSION;
+     if(client->swapped) {
+-        swaps(&rep.sequenceNumber, n);
+-        swapl(&rep.length, n);
+-        swaps(&rep.majorVersion, n);
+-        swaps(&rep.minorVersion, n);
++        _swaps(&rep.sequenceNumber, n);
++        _swapl(&rep.length, n);
++        _swaps(&rep.majorVersion, n);
++        _swaps(&rep.minorVersion, n);
+     }
+     WriteToClient(client, sizeof(xSiSCtrlQueryVersionReply), (char *)&rep);
+     return (client->noClientException);
+@@ -834,15 +832,15 @@ SiSUSBProcSiSCtrlCommand(ClientPtr client)
+     rep.sequenceNumber = client->sequence;
+
+     if(client->swapped) {
+-       swaps(&rep.sequenceNumber, n);
+-       swapl(&rep.length, n);
+-       swapl(&rep.screen, n);
+-       swapl(&rep.sdc_id, n);
+-       swapl(&rep.sdc_command, n);
+-       swapl(&rep.sdc_result_header, n);
++       _swaps(&rep.sequenceNumber, n);
++       _swapl(&rep.length, n);
++       _swapl(&rep.screen, n);
++       _swapl(&rep.sdc_id, n);
++       _swapl(&rep.sdc_command, n);
++       _swapl(&rep.sdc_result_header, n);
+        for(i = 0; i < SDC_NUM_PARM_RESULT; i++) {
+-        swapl(&rep.sdc_parm[i], n);
+-        swapl(&rep.sdc_result[i], n);
++        _swapl(&rep.sdc_parm[i], n);
++        _swapl(&rep.sdc_result[i], n);
+        }
+     }
+     WriteToClient(client, sizeof(xSiSCtrlCommandReply), (char *)&rep);
+@@ -869,7 +867,7 @@ SiSUSBSProcSiSCtrlQueryVersion(ClientPtr client)
+ {
+     REQUEST(xSiSCtrlQueryVersionReq);
+     register int n;
+-    swaps(&stuff->length, n);
++    _swaps(&stuff->length, n);
+     REQUEST_SIZE_MATCH(xSiSCtrlQueryVersionReq);
+     return SiSUSBProcSiSCtrlQueryVersion(client);
+ }
+@@ -880,14 +878,14 @@ SiSUSBSProcSiSCtrlCommand(ClientPtr client)
+     REQUEST(xSiSCtrlCommandReq);
+     register int n;
+     int i;
+-    swaps(&stuff->length, n);
+-    swapl(&stuff->screen, n);
+-    swapl(&stuff->sdc_id, n);
+-    swapl(&stuff->sdc_command, n);
+-    swapl(&stuff->sdc_result_header, n);
++    _swaps(&stuff->length, n);
++    _swapl(&stuff->screen, n);
++    _swapl(&stuff->sdc_id, n);
++    _swapl(&stuff->sdc_command, n);
++    _swapl(&stuff->sdc_result_header, n);
+     for(i = 0; i < SDC_NUM_PARM_RESULT; i++) {
+-       swapl(&stuff->sdc_parm[i], n);
+-       swapl(&stuff->sdc_result[i], n);
++       _swapl(&stuff->sdc_parm[i], n);
++       _swapl(&stuff->sdc_result[i], n);
+     }
+     REQUEST_SIZE_MATCH(xSiSCtrlCommandReq);
+     return SiSUSBProcSiSCtrlCommand(client);
+@@ -911,7 +909,7 @@ SiSUSBCtrlResetProc(ExtensionEntry* extEntry)
+ {
+     /* Called by CloseDownExtensions() */
+     if(extEntry->extPrivate) {
+-       xfree(extEntry->extPrivate);
++       free(extEntry->extPrivate);
+        extEntry->extPrivate = NULL;
+     }
+ }
+@@ -928,7 +926,7 @@ SiSUSBCtrlExtInit(ScrnInfoPtr pScrn)
+
+    if(!(myext = CheckExtension(SISCTRL_PROTOCOL_NAME))) {
+
+-      if(!(myctrl = xcalloc(sizeof(xSiSCtrlScreenTable), 1)))
++      if(!(myctrl = calloc(sizeof(xSiSCtrlScreenTable), 1)))
+          return;
+
+       if(!(myext = AddExtension(SISCTRL_PROTOCOL_NAME, 0, 0,
+@@ -938,7 +936,7 @@ SiSUSBCtrlExtInit(ScrnInfoPtr pScrn)
+                               StandardMinorOpcode))) {
+          xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                       "Failed to add SISCTRL extension\n");
+-       xfree(myctrl);
++       free(myctrl);
+        return;
+       }
+
+diff --git a/src/sisusb_vga.c b/src/sisusb_vga.c
+index 404a2b1..1c9761d 100644
+--- a/src/sisusb_vga.c
++++ b/src/sisusb_vga.c
+@@ -327,7 +327,7 @@ SiSUSBVGASaveScreen(ScreenPtr pScreen, int mode)
+
+     if(pScreen == NULL) return FALSE;
+
+-    pScrn = xf86Screens[pScreen->myNum];
++    pScrn = xf86ScreenToScrn(pScreen);
+
+     if(pScrn->vtSema) {
+        SISUSBVGABlankScreen(pScrn, on);
+diff --git a/src/sisusb_video.c b/src/sisusb_video.c
+index bc469b0..9340696 100644
+--- a/src/sisusb_video.c
++++ b/src/sisusb_video.c
+@@ -196,7 +196,7 @@ SISUSBResetXvGamma(ScrnInfoPtr pScrn)
+
+ void SISUSBInitVideo(ScreenPtr pScreen)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
+     XF86VideoAdaptorPtr newAdaptor = NULL;
+     int num_adaptors;
+@@ -216,7 +216,7 @@ void SISUSBInitVideo(ScreenPtr pScreen)
+
+        if(newAdaptor) size++;
+
+-       newAdaptors = xalloc(size * sizeof(XF86VideoAdaptorPtr*));
++       newAdaptors = malloc(size * sizeof(XF86VideoAdaptorPtr*));
+        if(newAdaptors) {
+           if(num_adaptors) {
+              memcpy(newAdaptors, adaptors, num_adaptors * 
sizeof(XF86VideoAdaptorPtr));
+@@ -234,7 +234,7 @@ void SISUSBInitVideo(ScreenPtr pScreen)
+     }
+
+     if(newAdaptors) {
+-       xfree(newAdaptors);
++       free(newAdaptors);
+     }
+ }
+
+@@ -372,12 +372,12 @@ set_maxencoding(SISUSBPtr pSiSUSB, SISUSBPortPrivPtr 
pPriv)
+ static XF86VideoAdaptorPtr
+ SISUSBSetupImageVideo(ScreenPtr pScreen)
+ {
+-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
++    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
+     SISUSBPtr pSiSUSB = SISUSBPTR(pScrn);
+     XF86VideoAdaptorPtr adapt;
+     SISUSBPortPrivPtr pPriv;
+
+-    if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
++    if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) +
+                             sizeof(SISUSBPortPrivRec) +
+                             sizeof(DevUnion))))
+       return NULL;
+@@ -1477,7 +1477,7 @@ SISUSBAllocateOverlayMemory(
+       xf86FreeOffscreenLinear(linear);
+    }
+
+-   pScreen = screenInfo.screens[pScrn->scrnIndex];
++   pScreen = xf86ScrnToScreen(pScrn);
+
+    new_linear = xf86AllocateOffscreenLinear(pScreen, size, 8,
+                                             NULL, NULL, NULL);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to