diff options
Diffstat (limited to 'hw/xfree86')
42 files changed, 279 insertions, 3698 deletions
diff --git a/hw/xfree86/common/Makefile.am b/hw/xfree86/common/Makefile.am index db726fea1..c060b73f0 100644 --- a/hw/xfree86/common/Makefile.am +++ b/hw/xfree86/common/Makefile.am @@ -23,8 +23,8 @@ BUSSOURCES = xf86isaBus.c xf86pciBus.c xf86fbBus.c xf86noBus.c $(SBUS_SOURCES) MODEDEFSOURCES = $(srcdir)/vesamodes $(srcdir)/extramodes -xf86DefModeSet.c: $(srcdir)/modeline2c.pl $(MODEDEFSOURCES) - cat $(MODEDEFSOURCES) | $(PERL) $(srcdir)/modeline2c.pl > $@ +xf86DefModeSet.c: $(srcdir)/modeline2c.awk $(MODEDEFSOURCES) + cat $(MODEDEFSOURCES) | $(AWK) -f $(srcdir)/modeline2c.awk > $@ BUILT_SOURCES = xf86DefModeSet.c @@ -85,9 +85,8 @@ EXTRA_DIST = \ xf86Version.h \ xorgVersion.h \ xf86Date.h \ - xf86DefModes.c \ $(MODEDEFSOURCES) \ - modeline2c.pl \ + modeline2c.awk \ $(DISTKBDSOURCES) if LNXACPI diff --git a/hw/xfree86/common/modeline2c.awk b/hw/xfree86/common/modeline2c.awk new file mode 100644 index 000000000..d4b9649c8 --- /dev/null +++ b/hw/xfree86/common/modeline2c.awk @@ -0,0 +1,97 @@ +#!/usr/bin/awk -f +# +# Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>. +# All rights reserved. +# +# Based on Perl script by Dirk Hohndel. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# Usage: modeline2c.awk < modefile > xf86DefModeSet.c +# + +BEGIN { + flagsdict[""] = "0" + + flagsdict["+hsync +vsync"] = "V_PHSYNC | V_PVSYNC" + flagsdict["+hsync -vsync"] = "V_PHSYNC | V_NVSYNC" + flagsdict["-hsync +vsync"] = "V_NHSYNC | V_PVSYNC" + flagsdict["-hsync -vsync"] = "V_NHSYNC | V_NVSYNC" + flagsdict["+hsync +vsync interlace"] = "V_PHSYNC | V_PVSYNC | V_INTERLACE" + flagsdict["+hsync -vsync interlace"] = "V_PHSYNC | V_NVSYNC | V_INTERLACE" + flagsdict["-hsync +vsync interlace"] = "V_NHSYNC | V_PVSYNC | V_INTERLACE" + flagsdict["-hsync -vsync interlace"] = "V_NHSYNC | V_NVSYNC | V_INTERLACE" + + print "/* $" "XFree86$ */" + print + print "/* THIS FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT -- LOOK at" + print " * modeline2c.awk */" + print "" + print "/*" + print " * Author: Joerg Sonnenberger <joerg@NetBSD.org>" + print " * Based on Perl script from Dirk Hohndel <hohndel@XFree86.Org>" + print " */" + print "" + print "#ifdef HAVE_XORG_CONFIG_H" + print "#include <xorg-config.h>" + print "#endif" + print "" + print "#ifdef __UNIXOS2__" + print "#define I_NEED_OS2_H" + print "#endif" + print "#include \"xf86.h\"" + print "#include \"xf86Config.h\"" + print "#include \"xf86Priv.h\"" + print "#include \"xf86_OSlib.h\"" + print "" + print "#include \"globals.h\"" + print "" + print "#define MODEPREFIX(name) NULL, NULL, name, MODE_OK, M_T_DEFAULT" + print "#define MODESUFFIX 0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,FALSE,FALSE,0,NULL,0,0.0,0.0" + print "" + print "DisplayModeRec xf86DefaultModes [] = {" + + modeline = "\t{MODEPREFIX(\"%dx%d\"),%d, %d,%d,%d,%d,0, %d,%d,%d,%d,0, %s, MODESUFFIX},\n" + modeline_data = "^[a-zA-Z]+[ \t]+[^ \t]+[ \t0-9.]+" +} + +/^[mM][oO][dD][eE][lL][iI][nN][eE]/ { + flags = $0 + gsub(modeline_data, "", flags) + flags = tolower(flags) + printf(modeline, $4, $8, $3 * 1000, $4, $5, $6, $7, + $8, $9, $10, $11, flagsdict[flags]) + # Half-width double scanned modes + printf(modeline, $4/2, $8/2, $3 * 500, $4/2, $5/2, $6/2, $7/2, + $8/2, $9/2, $10/2, $11/2, flagsdict[flags] " | V_DBLSCAN") +} + +/^#/ { + print "/*" substr($0, 2) " */" +} + +END { + printf("\t{MODEPREFIX(NULL),0,0,0,0,0,0,0,0,0,0,0,0,MODESUFFIX}\n};\n") +} diff --git a/hw/xfree86/common/modeline2c.pl b/hw/xfree86/common/modeline2c.pl deleted file mode 100644 index 88e380de4..000000000 --- a/hw/xfree86/common/modeline2c.pl +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/perl - -# automatically generate the xf86DefModeSet.c file from a normal -# XF86Config style file of Modelines -# -# run as -# -# perl /modeline2c.pl < [modesfile] > xf86DefModes.c -# -# hackish perl - author Dirk Hohndel -# -# Copyright 1999-2003 by The XFree86 Project, 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 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 holder(s) -# and author(s) 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 holder(s) and author(s). -# -# $XFree86: xc/programs/Xserver/hw/xfree86/common/modeline2c.pl,v 1.10tsi Exp $ - -#my %flagshash; -$flagshash{""} = "0"; -# $flagshash{"Interlace"} = "V_INTERLACE"; -# $flagshash{"+hsync"} = "V_PHSYNC"; -# $flagshash{"-hsync"} = "V_NHSYNC"; -# $flagshash{"+vsync"} = "V_PVSYNC"; -# $flagshash{"-vsync"} = "V_NVSYNC"; -# XXX I'm definitely not a perl guru... -- tsi -$flagshash{"+hsync +vsync"} = "V_PHSYNC | V_PVSYNC"; -$flagshash{"+hsync -vsync"} = "V_PHSYNC | V_NVSYNC"; -$flagshash{"-hsync +vsync"} = "V_NHSYNC | V_PVSYNC"; -$flagshash{"-hsync -vsync"} = "V_NHSYNC | V_NVSYNC"; -$flagshash{"+hsync +vsync interlace"} = "V_PHSYNC | V_PVSYNC | V_INTERLACE"; -$flagshash{"+hsync -vsync interlace"} = "V_PHSYNC | V_NVSYNC | V_INTERLACE"; -$flagshash{"-hsync +vsync interlace"} = "V_NHSYNC | V_PVSYNC | V_INTERLACE"; -$flagshash{"-hsync -vsync interlace"} = "V_NHSYNC | V_NVSYNC | V_INTERLACE"; - -# stop CVS from expanding the XFree86 Id here... - -$proj = "XFree86"; -printf("/* \$$proj\$ */ - -/* THIS FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT -- LOOK at - * modeline2c.pl */ - -/* - * Copyright 1999-2003 by The XFree86 Project, Inc. - * - * Author: Dirk Hohndel <hohndel\@XFree86.Org> - */ - -#ifdef HAVE_XORG_CONFIG_H -#include <xorg-config.h> -#endif - -#include \"xf86.h\" -#include \"xf86Config.h\" -#include \"xf86Priv.h\" -#include \"xf86_OSlib.h\" - -#include \"globals.h\" - -#define MODEPREFIX(name) NULL, NULL, name, MODE_OK, M_T_DEFAULT -#define MODESUFFIX 0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,FALSE,FALSE,0,NULL,0,0.0,0.0 - -DisplayModeRec xf86DefaultModes [] = { -"); -while (<>) { - if (/^\#/) { - s/^\#//; - chop; - print "/*" . $_ . " */\n"; - } - if (/^ModeLine\s+(\S+)\s+([\d.\s]+)(.*)/i) { - $name = $1; - $values = $2; - $flags = $3; - $flags =~ y/A-Z/a-z/; - $values =~ /([\d.]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/; - printf("\t{MODEPREFIX(%s),%d, %d,%d,%d,%d,0, %d,%d,%d,%d,0, %s, MODESUFFIX},\n", - $name,$1*1000,$2,$3,$4,$5,$6,$7,$8,$9,$flagshash{$flags}); -# Also generate half-width doublescanned modes - printf("\t{MODEPREFIX(\"%dx%d\"),%d, %d,%d,%d,%d,0, %d,%d,%d,%d,0, %s | V_DBLSCAN, MODESUFFIX},\n", - $2/2,$6/2,$1*500,$2/2,$3/2,$4/2,$5/2,$6/2,$7/2,$8/2,$9/2,$flagshash{$flags}); - } - - -} -printf("\t{MODEPREFIX(NULL),0,0,0,0,0,0,0,0,0,0,0,0,MODESUFFIX}\n};\n"); diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h index 183c3cdb3..4e7d914bf 100644 --- a/hw/xfree86/common/xf86.h +++ b/hw/xfree86/common/xf86.h @@ -339,6 +339,7 @@ Bool xf86IsUnblank(int mode); void xf86AddModuleInfo(ModuleInfoPtr info, pointer module); void xf86DeleteModuleInfo(int idx); +void xf86getsecs(long *, long *); /* xf86Debug.c */ #ifdef BUILDDEBUG diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index f58e2a70f..622c31850 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -1958,6 +1958,18 @@ configScreen(confScreenPtr screenp, XF86ConfScreenPtr conf_screen, int scrnum, } screenp->displays = xnfalloc((count) * sizeof(DispRec)); screenp->numdisplays = count; + + /* Fill in the default Virtual size, if any */ + if (conf_screen->scrn_virtualX && conf_screen->scrn_virtualY) { + for (count = 0, dispptr = conf_screen->scrn_display_lst; + dispptr; + dispptr = (XF86ConfDisplayPtr)dispptr->list.next, count++) { + screenp->displays[count].virtualX = conf_screen->scrn_virtualX; + screenp->displays[count].virtualY = conf_screen->scrn_virtualY; + } + } + + /* Now do the per-Display Virtual sizes */ count = 0; dispptr = conf_screen->scrn_display_lst; while(dispptr) { diff --git a/hw/xfree86/common/xf86DefModes.c b/hw/xfree86/common/xf86DefModes.c deleted file mode 100644 index bdb64fe8e..000000000 --- a/hw/xfree86/common/xf86DefModes.c +++ /dev/null @@ -1,155 +0,0 @@ -/* THIS FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT -- LOOK at - * modeline2c.pl */ - -/* - * Copyright 1999-2003 by The XFree86 Project, Inc. - * - * Author: Dirk Hohndel <hohndel@XFree86.Org> - */ - -#ifdef HAVE_XORG_CONFIG_H -#include <xorg-config.h> -#endif - -#include "xf86.h" -#include "xf86Config.h" -#include "xf86Priv.h" -#include "xf86_OSlib.h" - -#include "globals.h" - -#define MODEPREFIX(name) NULL, NULL, name, MODE_OK, M_T_DEFAULT -#define MODESUFFIX 0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,FALSE,FALSE,0,NULL,0,0.0,0.0 - -DisplayModeRec xf86DefaultModes [] = { -/* 640x350 @ 85Hz (VESA) hsync: 37.9kHz */ - {MODEPREFIX("640x350"),31500, 640,672,736,832,0, 350,382,385,445,0, V_PHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("320x175"),15750, 320,336,368,416,0, 175,191,192,222,0, V_PHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 640x400 @ 85Hz (VESA) hsync: 37.9kHz */ - {MODEPREFIX("640x400"),31500, 640,672,736,832,0, 400,401,404,445,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("320x200"),15750, 320,336,368,416,0, 200,200,202,222,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 720x400 @ 85Hz (VESA) hsync: 37.9kHz */ - {MODEPREFIX("720x400"),35500, 720,756,828,936,0, 400,401,404,446,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("360x200"),17750, 360,378,414,468,0, 200,200,202,223,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz */ - {MODEPREFIX("640x480"),25200, 640,656,752,800,0, 480,490,492,525,0, V_NHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("320x240"),12600, 320,328,376,400,0, 240,245,246,262,0, V_NHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 640x480 @ 72Hz (VESA) hsync: 37.9kHz */ - {MODEPREFIX("640x480"),31500, 640,664,704,832,0, 480,489,491,520,0, V_NHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("320x240"),15750, 320,332,352,416,0, 240,244,245,260,0, V_NHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 640x480 @ 75Hz (VESA) hsync: 37.5kHz */ - {MODEPREFIX("640x480"),31500, 640,656,720,840,0, 480,481,484,500,0, V_NHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("320x240"),15750, 320,328,360,420,0, 240,240,242,250,0, V_NHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 640x480 @ 85Hz (VESA) hsync: 43.3kHz */ - {MODEPREFIX("640x480"),36000, 640,696,752,832,0, 480,481,484,509,0, V_NHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("320x240"),18000, 320,348,376,416,0, 240,240,242,254,0, V_NHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 800x600 @ 56Hz (VESA) hsync: 35.2kHz */ - {MODEPREFIX("800x600"),36000, 800,824,896,1024,0, 600,601,603,625,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("400x300"),18000, 400,412,448,512,0, 300,300,301,312,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 800x600 @ 60Hz (VESA) hsync: 37.9kHz */ - {MODEPREFIX("800x600"),40000, 800,840,968,1056,0, 600,601,605,628,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("400x300"),20000, 400,420,484,528,0, 300,300,302,314,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 800x600 @ 72Hz (VESA) hsync: 48.1kHz */ - {MODEPREFIX("800x600"),50000, 800,856,976,1040,0, 600,637,643,666,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("400x300"),25000, 400,428,488,520,0, 300,318,321,333,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 800x600 @ 75Hz (VESA) hsync: 46.9kHz */ - {MODEPREFIX("800x600"),49500, 800,816,896,1056,0, 600,601,604,625,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("400x300"),24750, 400,408,448,528,0, 300,300,302,312,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 800x600 @ 85Hz (VESA) hsync: 53.7kHz */ - {MODEPREFIX("800x600"),56300, 800,832,896,1048,0, 600,601,604,631,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("400x300"),28150, 400,416,448,524,0, 300,300,302,315,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1024x768i @ 43Hz (industry standard) hsync: 35.5kHz */ - {MODEPREFIX("1024x768"),44900, 1024,1032,1208,1264,0, 768,768,776,817,0, V_PHSYNC | V_PVSYNC | V_INTERLACE, MODESUFFIX}, - {MODEPREFIX("512x384"),22450, 512,516,604,632,0, 384,384,388,408,0, V_PHSYNC | V_PVSYNC | V_INTERLACE | V_DBLSCAN, MODESUFFIX}, -/* 1024x768 @ 60Hz (VESA) hsync: 48.4kHz */ - {MODEPREFIX("1024x768"),65000, 1024,1048,1184,1344,0, 768,771,777,806,0, V_NHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("512x384"),32500, 512,524,592,672,0, 384,385,388,403,0, V_NHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1024x768 @ 70Hz (VESA) hsync: 56.5kHz */ - {MODEPREFIX("1024x768"),75000, 1024,1048,1184,1328,0, 768,771,777,806,0, V_NHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("512x384"),37500, 512,524,592,664,0, 384,385,388,403,0, V_NHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1024x768 @ 75Hz (VESA) hsync: 60.0kHz */ - {MODEPREFIX("1024x768"),78800, 1024,1040,1136,1312,0, 768,769,772,800,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("512x384"),39400, 512,520,568,656,0, 384,384,386,400,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1024x768 @ 85Hz (VESA) hsync: 68.7kHz */ - {MODEPREFIX("1024x768"),94500, 1024,1072,1168,1376,0, 768,769,772,808,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("512x384"),47250, 512,536,584,688,0, 384,384,386,404,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1152x864 @ 75Hz (VESA) hsync: 67.5kHz */ - {MODEPREFIX("1152x864"),108000, 1152,1216,1344,1600,0, 864,865,868,900,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("576x432"),54000, 576,608,672,800,0, 432,432,434,450,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1280x960 @ 60Hz (VESA) hsync: 60.0kHz */ - {MODEPREFIX("1280x960"),108000, 1280,1376,1488,1800,0, 960,961,964,1000,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("640x480"),54000, 640,688,744,900,0, 480,480,482,500,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1280x960 @ 85Hz (VESA) hsync: 85.9kHz */ - {MODEPREFIX("1280x960"),148500, 1280,1344,1504,1728,0, 960,961,964,1011,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("640x480"),74250, 640,672,752,864,0, 480,480,482,505,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1280x1024 @ 60Hz (VESA) hsync: 64.0kHz */ - {MODEPREFIX("1280x1024"),108000, 1280,1328,1440,1688,0, 1024,1025,1028,1066,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("640x512"),54000, 640,664,720,844,0, 512,512,514,533,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1280x1024 @ 75Hz (VESA) hsync: 80.0kHz */ - {MODEPREFIX("1280x1024"),135000, 1280,1296,1440,1688,0, 1024,1025,1028,1066,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("640x512"),67500, 640,648,720,844,0, 512,512,514,533,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1280x1024 @ 85Hz (VESA) hsync: 91.1kHz */ - {MODEPREFIX("1280x1024"),157500, 1280,1344,1504,1728,0, 1024,1025,1028,1072,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("640x512"),78750, 640,672,752,864,0, 512,512,514,536,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1600x1200 @ 60Hz (VESA) hsync: 75.0kHz */ - {MODEPREFIX("1600x1200"),162000, 1600,1664,1856,2160,0, 1200,1201,1204,1250,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("800x600"),81000, 800,832,928,1080,0, 600,600,602,625,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1600x1200 @ 65Hz (VESA) hsync: 81.3kHz */ - {MODEPREFIX("1600x1200"),175500, 1600,1664,1856,2160,0, 1200,1201,1204,1250,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("800x600"),87750, 800,832,928,1080,0, 600,600,602,625,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1600x1200 @ 70Hz (VESA) hsync: 87.5kHz */ - {MODEPREFIX("1600x1200"),189000, 1600,1664,1856,2160,0, 1200,1201,1204,1250,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("800x600"),94500, 800,832,928,1080,0, 600,600,602,625,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1600x1200 @ 75Hz (VESA) hsync: 93.8kHz */ - {MODEPREFIX("1600x1200"),202500, 1600,1664,1856,2160,0, 1200,1201,1204,1250,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("800x600"),101250, 800,832,928,1080,0, 600,600,602,625,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1600x1200 @ 85Hz (VESA) hsync: 106.3kHz */ - {MODEPREFIX("1600x1200"),229500, 1600,1664,1856,2160,0, 1200,1201,1204,1250,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("800x600"),114750, 800,832,928,1080,0, 600,600,602,625,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1792x1344 @ 60Hz (VESA) hsync: 83.6kHz */ - {MODEPREFIX("1792x1344"),204800, 1792,1920,2120,2448,0, 1344,1345,1348,1394,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("896x672"),102400, 896,960,1060,1224,0, 672,672,674,697,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1792x1344 @ 75Hz (VESA) hsync: 106.3kHz */ - {MODEPREFIX("1792x1344"),261000, 1792,1888,2104,2456,0, 1344,1345,1348,1417,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("896x672"),130500, 896,944,1052,1228,0, 672,672,674,708,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1856x1392 @ 60Hz (VESA) hsync: 86.3kHz */ - {MODEPREFIX("1856x1392"),218300, 1856,1952,2176,2528,0, 1392,1393,1396,1439,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("928x696"),109150, 928,976,1088,1264,0, 696,696,698,719,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1856x1392 @ 75Hz (VESA) hsync: 112.5kHz */ - {MODEPREFIX("1856x1392"),288000, 1856,1984,2208,2560,0, 1392,1393,1396,1500,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("928x696"),144000, 928,992,1104,1280,0, 696,696,698,750,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1920x1440 @ 60Hz (VESA) hsync: 90.0kHz */ - {MODEPREFIX("1920x1440"),234000, 1920,2048,2256,2600,0, 1440,1441,1444,1500,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("960x720"),117000, 960,1024,1128,1300,0, 720,720,722,750,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1920x1440 @ 75Hz (VESA) hsync: 112.5kHz */ - {MODEPREFIX("1920x1440"),297000, 1920,2064,2288,2640,0, 1440,1441,1444,1500,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("960x720"),148500, 960,1032,1144,1320,0, 720,720,722,750,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 832x624 @ 75Hz (74.55Hz) (fix if the official/Apple spec is different) hsync: 49.725kHz */ - {MODEPREFIX("832x624"),57284, 832,864,928,1152,0, 624,625,628,667,0, V_NHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("416x312"),28642, 416,432,464,576,0, 312,312,314,333,0, V_NHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1152x768 @ 54.8Hz (Titanium PowerBook) hsync: 44.2kHz */ - {MODEPREFIX("1152x768"),64995, 1152,1178,1314,1472,0, 768,771,777,806,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("576x384"),32497, 576,589,657,736,0, 384,385,388,403,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1400x1050 @ 60Hz (VESA GTF) hsync: 65.5kHz */ - {MODEPREFIX("1400x1050"),122000, 1400,1488,1640,1880,0, 1050,1052,1064,1082,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("700x525"),61000, 700,744,820,940,0, 525,526,532,541,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1400x1050 @ 75Hz (VESA GTF) hsync: 82.2kHz */ - {MODEPREFIX("1400x1050"),155800, 1400,1464,1784,1912,0, 1050,1052,1064,1090,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("700x525"),77900, 700,732,892,956,0, 525,526,532,545,0, V_PHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1600x1024 @ 60Hz (SGI 1600SW) hsync: 64.0kHz */ - {MODEPREFIX("1600x1024"),106910, 1600,1620,1640,1670,0, 1024,1027,1030,1067,0, V_NHSYNC | V_NVSYNC, MODESUFFIX}, - {MODEPREFIX("800x512"),53455, 800,810,820,835,0, 512,513,515,533,0, V_NHSYNC | V_NVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 1920x1440 @ 85Hz (VESA GTF) hsync: 128.5kHz */ - {MODEPREFIX("1920x1440"),341350, 1920,2072,2288,2656,0, 1440,1441,1444,1512,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("960x720"),170675, 960,1036,1144,1328,0, 720,720,722,756,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 2048x1536 @ 60Hz (VESA GTF) hsync: 95.3kHz */ - {MODEPREFIX("2048x1536"),266950, 2048,2200,2424,2800,0, 1536,1537,1540,1589,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("1024x768"),133475, 1024,1100,1212,1400,0, 768,768,770,794,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 2048x1536 @ 75Hz (VESA GTF) hsync: 120.2kHz */ - {MODEPREFIX("2048x1536"),340480, 2048,2216,2440,2832,0, 1536,1537,1540,1603,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("1024x768"),170240, 1024,1108,1220,1416,0, 768,768,770,801,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, -/* 2048x1536 @ 85Hz (VESA GTF) hsync: 137.0kHz */ - {MODEPREFIX("2048x1536"),388040, 2048,2216,2440,2832,0, 1536,1537,1540,1612,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, - {MODEPREFIX("1024x768"),194020, 1024,1108,1220,1416,0, 768,768,770,806,0, V_NHSYNC | V_PVSYNC | V_DBLSCAN, MODESUFFIX}, - {MODEPREFIX(NULL),0,0,0,0,0,0,0,0,0,0,0,0,MODESUFFIX} -}; diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index d37875c35..ec524e63c 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -2957,3 +2957,17 @@ xf86GetMotionEvents(DeviceIntPtr pDev, xTimecoord *buff, unsigned long start, { return GetMotionHistory(pDev, buff, start, stop, pScreen); } + +_X_EXPORT void +xf86getsecs(long * secs, long * usecs) +{ + struct timeval tv; + + X_GETTIMEOFDAY(&tv); + if (secs) + *secs = tv.tv_sec; + if (usecs) + *usecs= tv.tv_usec; + + return; +} diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index f040eadf5..d12b6bd6a 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -1195,8 +1195,6 @@ OsVendorInit() { static Bool beenHere = FALSE; - xf86WrapperInit(); - #ifdef SIGCHLD signal(SIGCHLD, SIG_DFL); /* Need to wait for child processes */ #endif diff --git a/hw/xfree86/ddc/ddcProperty.c b/hw/xfree86/ddc/ddcProperty.c index 67351d3dc..02125dff7 100644 --- a/hw/xfree86/ddc/ddcProperty.c +++ b/hw/xfree86/ddc/ddcProperty.c @@ -31,7 +31,6 @@ #include "property.h" #include "propertyst.h" #include "xf86DDC.h" -#include "xf86_ansic.h" #define EDID1_ATOM_NAME "XFree86_DDC_EDID1_RAWDATA" #define EDID2_ATOM_NAME "XFree86_DDC_EDID2_RAWDATA" diff --git a/hw/xfree86/dixmods/xkbKillSrv.c b/hw/xfree86/dixmods/xkbKillSrv.c index b3399db4a..9074fd390 100644 --- a/hw/xfree86/dixmods/xkbKillSrv.c +++ b/hw/xfree86/dixmods/xkbKillSrv.c @@ -48,6 +48,8 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. int XkbDDXTerminateServer(DeviceIntPtr dev,KeyCode key,XkbAction *act) { - xf86ProcessActionEvent(ACTION_TERMINATE, NULL); + if (dev != inputInfo.keyboard) + xf86ProcessActionEvent(ACTION_TERMINATE, NULL); + return 0; } diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c index 1b5c717fd..584cabfd1 100644 --- a/hw/xfree86/loader/loadmod.c +++ b/hw/xfree86/loader/loadmod.c @@ -859,7 +859,7 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, char *m = NULL; const char **cim; - xf86MsgVerb(X_INFO, 3, "LoadModule: \"%s\"", module); + xf86MsgVerb(X_INFO, 3, "LoadModule: \"%s\"\n", module); for (cim = compiled_in_modules; *cim; cim++) if (!strcmp (module, *cim)) diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c index 67a2fe784..623e87ab5 100644 --- a/hw/xfree86/loader/xf86sym.c +++ b/hw/xfree86/loader/xf86sym.c @@ -79,8 +79,6 @@ #include "vidmodeproc.h" #include "xf86miscproc.h" #include "loader.h" -#define DONT_DEFINE_WRAPPERS -#include "xf86_ansic.h" #include "xisb.h" #include "vbe.h" #ifndef __OpenBSD__ @@ -269,7 +267,6 @@ _X_HIDDEN void *xfree86LookupTab[] = { SYMFUNC(xf86ReadSerial) SYMFUNC(xf86WriteSerial) SYMFUNC(xf86CloseSerial) - SYMFUNC(xf86GetErrno) SYMFUNC(xf86WaitForInput) SYMFUNC(xf86SerialSendBreak) SYMFUNC(xf86FlushInput) @@ -724,186 +721,6 @@ _X_HIDDEN void *xfree86LookupTab[] = { SYMFUNC(LoaderGetOS) SYMFUNC(LoaderGetABIVersion) - /* - * These are our own interfaces to libc functions. - */ - SYMFUNC(xf86abort) - SYMFUNC(xf86abs) - SYMFUNC(xf86acos) - SYMFUNC(xf86asin) - SYMFUNC(xf86atan) - SYMFUNC(xf86atan2) - SYMFUNC(xf86atof) - SYMFUNC(xf86atoi) - SYMFUNC(xf86atol) - SYMFUNC(xf86bsearch) - SYMFUNC(xf86ceil) - SYMFUNC(xf86calloc) - SYMFUNC(xf86clearerr) - SYMFUNC(xf86close) - SYMFUNC(xf86cos) - SYMFUNC(xf86exit) - SYMFUNC(xf86exp) - SYMFUNC(xf86fabs) - SYMFUNC(xf86fclose) - SYMFUNC(xf86feof) - SYMFUNC(xf86ferror) - SYMFUNC(xf86fflush) - SYMFUNC(xf86fgetc) - SYMFUNC(xf86fgetpos) - SYMFUNC(xf86fgets) - SYMFUNC(xf86finite) - SYMFUNC(xf86floor) - SYMFUNC(xf86fmod) - SYMFUNC(xf86fopen) - SYMFUNC(xf86fprintf) - SYMFUNC(xf86fputc) - SYMFUNC(xf86fputs) - SYMFUNC(xf86fread) - SYMFUNC(xf86free) - SYMFUNC(xf86freopen) - SYMFUNC(xf86frexp) - SYMFUNC(xf86fscanf) - SYMFUNC(xf86fseek) - SYMFUNC(xf86fsetpos) - SYMFUNC(xf86ftell) - SYMFUNC(xf86fwrite) - SYMFUNC(xf86getc) - SYMFUNC(xf86getenv) - SYMFUNC(xf86getpagesize) - SYMFUNC(xf86hypot) - SYMFUNC(xf86ioctl) - SYMFUNC(xf86isalnum) - SYMFUNC(xf86isalpha) - SYMFUNC(xf86iscntrl) - SYMFUNC(xf86isdigit) - SYMFUNC(xf86isgraph) - SYMFUNC(xf86islower) - SYMFUNC(xf86isprint) - SYMFUNC(xf86ispunct) - SYMFUNC(xf86isspace) - SYMFUNC(xf86isupper) - SYMFUNC(xf86isxdigit) - SYMFUNC(xf86labs) - SYMFUNC(xf86ldexp) - SYMFUNC(xf86log) - SYMFUNC(xf86log10) - SYMFUNC(xf86lseek) - SYMFUNC(xf86malloc) - SYMFUNC(xf86memchr) - SYMFUNC(xf86memcmp) - SYMFUNC(xf86memcpy) - /* - * Some compilers generate calls to memcpy to handle structure copies - * or run-time initializations. - */ - SYMFUNCALIAS("memcpy", xf86memcpy) - SYMFUNC(xf86memset) - /* - * Some compilers generate calls to memset to handle aggregate - * initializations. - */ - SYMFUNCALIAS("memset", xf86memset) - SYMFUNC(xf86memmove) - SYMFUNC(xf86mmap) - SYMFUNC(xf86modf) - SYMFUNC(xf86munmap) - SYMFUNC(xf86open) - SYMFUNC(xf86perror) - SYMFUNC(xf86pow) - SYMFUNC(xf86printf) - SYMFUNC(xf86qsort) - SYMFUNC(xf86read) - SYMFUNC(xf86realloc) - SYMFUNC(xf86remove) - SYMFUNC(xf86rename) - SYMFUNC(xf86rewind) - SYMFUNC(xf86setbuf) - SYMFUNC(xf86setvbuf) - SYMFUNC(xf86sin) - SYMFUNC(xf86snprintf) - SYMFUNC(xf86sprintf) - SYMFUNC(xf86sqrt) - SYMFUNC(xf86sscanf) - SYMFUNC(xf86strcat) - SYMFUNC(xf86strcmp) - SYMFUNC(xf86strcasecmp) - SYMFUNC(xf86strcpy) - SYMFUNC(xf86strcspn) - SYMFUNC(xf86strerror) - SYMFUNC(xf86strlcat) - SYMFUNC(xf86strlcpy) - SYMFUNC(xf86strlen) - SYMFUNC(xf86strncasecmp) - SYMFUNC(xf86strncat) - SYMFUNC(xf86strncmp) - SYMFUNC(xf86strncpy) - SYMFUNC(xf86strpbrk) - SYMFUNC(xf86strchr) - SYMFUNC(xf86strrchr) - SYMFUNC(xf86strspn) - SYMFUNC(xf86strstr) - SYMFUNC(xf86strtod) - SYMFUNC(xf86strtok) - SYMFUNC(xf86strtol) - SYMFUNC(xf86strtoul) - SYMFUNC(xf86tan) - SYMFUNC(xf86tmpfile) - SYMFUNC(xf86tolower) - SYMFUNC(xf86toupper) - SYMFUNC(xf86ungetc) - SYMFUNC(xf86vfprintf) - SYMFUNC(xf86vsnprintf) - SYMFUNC(xf86vsprintf) - SYMFUNC(xf86write) - - /* non-ANSI C functions */ - SYMFUNC(xf86opendir) - SYMFUNC(xf86closedir) - SYMFUNC(xf86readdir) - SYMFUNC(xf86rewinddir) - SYMFUNC(xf86ffs) - SYMFUNC(xf86strdup) - SYMFUNC(xf86bzero) - SYMFUNC(xf86usleep) - SYMFUNC(xf86execl) - - SYMFUNC(xf86getsecs) - SYMFUNC(xf86fpossize) /* for returning sizeof(fpos_t) */ - - /* Some of these were added for DRI support. */ - SYMFUNC(xf86stat) - SYMFUNC(xf86fstat) - SYMFUNC(xf86access) - SYMFUNC(xf86geteuid) - SYMFUNC(xf86getegid) - SYMFUNC(xf86getpid) - SYMFUNC(xf86mknod) - SYMFUNC(xf86chmod) - SYMFUNC(xf86chown) - SYMFUNC(xf86sleep) - SYMFUNC(xf86mkdir) - SYMFUNC(xf86shmget) - SYMFUNC(xf86shmat) - SYMFUNC(xf86shmdt) - SYMFUNC(xf86shmctl) -#ifdef HAS_GLIBC_SIGSETJMP - SYMFUNC(xf86setjmp) - SYMFUNC(xf86setjmp0) -#if defined(__GLIBC__) && (__GLIBC__ >= 2) - SYMFUNCALIAS("xf86setjmp1", __sigsetjmp) -#else - SYMFUNC(xf86setjmp1) /* For libc5 */ -#endif -#else - SYMFUNCALIAS("xf86setjmp", setjmp) - SYMFUNC(xf86setjmp0) - SYMFUNC(xf86setjmp1) -#endif - SYMFUNCALIAS("xf86longjmp", longjmp) - SYMFUNC(xf86getjmptype) - SYMFUNC(xf86setjmp1_arg2) - SYMFUNC(xf86setjmperror) #ifdef XF86DRI /* * These may have more general uses, but for now, they are only used @@ -1088,14 +905,6 @@ _X_HIDDEN void *xfree86LookupTab[] = { #endif #endif - /* Some variables. */ - - SYMVAR(xf86stdin) - SYMVAR(xf86stdout) - SYMVAR(xf86stderr) - SYMVAR(xf86errno) - SYMVAR(xf86HUGE_VAL) - /* General variables (from xf86.h) */ SYMVAR(xf86ScreenKey) SYMVAR(xf86PixmapKey) diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 653042c85..e00fdf3f3 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -260,6 +260,30 @@ xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation, crtc->y = y; crtc->rotation = rotation; + /* Shift offsets that move us out of virtual size */ + if (x + mode->HDisplay > xf86_config->maxWidth || + y + mode->VDisplay > xf86_config->maxHeight) + { + if (x + mode->HDisplay > xf86_config->maxWidth) + crtc->x = xf86_config->maxWidth - mode->HDisplay; + if (y + mode->VDisplay > xf86_config->maxHeight) + crtc->y = xf86_config->maxHeight - mode->VDisplay; + if (crtc->x < 0 || crtc->y < 0) + { + xf86DrvMsg (scrn->scrnIndex, X_ERROR, + "Mode %dx%d does not fit virtual size %dx%d - " + "internal error\n", mode->HDisplay, mode->VDisplay, + xf86_config->maxWidth, xf86_config->maxHeight); + goto done; + } + xf86DrvMsg (scrn->scrnIndex, X_ERROR, + "Mode %dx%d+%d+%d does not fit virtual size %dx%d - " + "offset updated to +%d+%d\n", + mode->HDisplay, mode->VDisplay, x, y, + xf86_config->maxWidth, xf86_config->maxHeight, + crtc->x, crtc->y); + } + /* XXX short-circuit changes to base location only */ /* Pass our mode to the outputs and the CRTC to give them a chance to @@ -301,7 +325,7 @@ xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation, /* Set up the DPLL and any output state that needs to adjust or depend * on the DPLL. */ - crtc->funcs->mode_set(crtc, mode, adjusted_mode, x, y); + crtc->funcs->mode_set(crtc, mode, adjusted_mode, crtc->x, crtc->y); for (i = 0; i < xf86_config->num_output; i++) { xf86OutputPtr output = xf86_config->output[i]; @@ -439,7 +463,7 @@ xf86OutputSetMonitor (xf86OutputPtr output) } static Bool -xf86OutputEnabled (xf86OutputPtr output) +xf86OutputEnabled (xf86OutputPtr output, Bool strict) { Bool enable, disable; @@ -457,8 +481,16 @@ xf86OutputEnabled (xf86OutputPtr output) "Output %s disabled by config file\n", output->name); return FALSE; } - /* otherwise, enable if it is not disconnected */ - enable = output->status != XF86OutputStatusDisconnected; + + /* If not, try to only light up the ones we know are connected */ + if (strict) { + enable = output->status == XF86OutputStatusConnected; + } + /* But if that fails, try to light up even outputs we're unsure of */ + else { + enable = output->status != XF86OutputStatusDisconnected; + } + xf86DrvMsg (output->scrn->scrnIndex, X_INFO, "Output %s %sconnected\n", output->name, enable ? "" : "dis"); return enable; @@ -1055,6 +1087,16 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes) any_set = TRUE; continue; } + if (!modes[or]) + { + xf86DrvMsg (scrn->scrnIndex, X_ERROR, + "Cannot position output %s relative to output %s without modes\n", + output->name, relative_name); + output->initial_x = 0; + output->initial_y = 0; + any_set = TRUE; + continue; + } if (relative->initial_x == POSITION_UNSET) { keep_going = TRUE; @@ -1070,10 +1112,10 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes) output->initial_x += xf86ModeWidth (modes[or], relative->initial_rotation); break; case OPTION_ABOVE: - output->initial_y -= xf86ModeHeight (modes[or], relative->initial_rotation); + output->initial_y -= xf86ModeHeight (modes[o], relative->initial_rotation); break; case OPTION_LEFT_OF: - output->initial_x -= xf86ModeWidth (modes[or], relative->initial_rotation); + output->initial_x -= xf86ModeWidth (modes[o], relative->initial_rotation); break; default: break; @@ -1537,7 +1579,7 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) Rotation target_rotation = RR_Rotate_0; xf86CrtcPtr *crtcs; DisplayModePtr *modes; - Bool *enabled; + Bool *enabled, any_enabled = FALSE; int width; int height; @@ -1570,9 +1612,23 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) xf86OutputPtr output = config->output[o]; modes[o] = NULL; - enabled[o] = xf86OutputEnabled (output); + any_enabled |= (enabled[o] = xf86OutputEnabled (output, TRUE)); } + if (!any_enabled) + { + xf86DrvMsg (scrn->scrnIndex, X_WARNING, + "No outputs definitely connected, trying again...\n"); + + for (o = 0; o < config->num_output; o++) + { + xf86OutputPtr output = config->output[o]; + + modes[o] = NULL; + enabled[o] = xf86OutputEnabled (output, FALSE); + } + } + /* * User preferred > preferred > other modes */ @@ -2130,7 +2186,8 @@ xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus) xf86MonPtr mon; mon = xf86DoEDID_DDC2 (scrn->scrnIndex, pDDCBus); - xf86DDCApplyQuirks (scrn->scrnIndex, pDDCBus); + if (mon) + xf86DDCApplyQuirks (scrn->scrnIndex, mon); return mon; } diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c index 2f26a6450..a125d8c82 100644 --- a/hw/xfree86/modes/xf86EdidModes.c +++ b/hw/xfree86/modes/xf86EdidModes.c @@ -72,7 +72,8 @@ static Bool quirk_prefer_large_60 (int scrnIndex, xf86MonPtr DDC) { /* Belinea 10 15 55 */ if (memcmp (DDC->vendor.name, "MAX", 4) == 0 && - DDC->vendor.prod_id == 1516) + ((DDC->vendor.prod_id == 1516) || + (DDC->vendor.prod_id == 0x77e))) return TRUE; /* Acer AL1706 */ @@ -327,6 +328,12 @@ DDCModeFromDetailedTiming(int scrnIndex, struct detailed_timings *timing, Mode->VSyncEnd = Mode->VSyncStart + timing->v_sync_width; Mode->VTotal = timing->v_active + timing->v_blanking; + /* perform basic check on the detail timing */ + if (Mode->HSyncEnd > Mode->HTotal || Mode->VSyncEnd > Mode->VTotal) { + xfree(Mode); + return NULL; + } + xf86SetModeDefaultName(Mode); /* We ignore h/v_size and h/v_border for now. */ diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 18989bb3c..e2668fbbc 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -60,7 +60,7 @@ static Bool xf86RandR12CreateScreenResources12 (ScreenPtr pScreen); #endif static int xf86RandR12Generation; -static DevPrivateKey xf86RandR12Key = &xf86RandR12Key; +static DevPrivateKey xf86RandR12Key; #define XF86RANDRINFO(p) ((XF86RandRInfoPtr) \ dixLookupPrivate(&(p)->devPrivates, xf86RandR12Key)) @@ -340,10 +340,12 @@ xf86RandR12ScreenSetSize (ScreenPtr pScreen, PixmapPtr pScrnPix = (*pScreen->GetScreenPixmap)(pScreen); Bool ret = FALSE; - if (randrp->virtualX == -1 || randrp->virtualY == -1) - { - randrp->virtualX = pScrn->virtualX; - randrp->virtualY = pScrn->virtualY; + if (xf86RandR12Key) { + if (randrp->virtualX == -1 || randrp->virtualY == -1) + { + randrp->virtualX = pScrn->virtualX; + randrp->virtualY = pScrn->virtualY; + } } if (pRoot && pScrn->vtSema) (*pScrn->EnableDisableFBAccess) (pScreen->myNum, FALSE); @@ -366,7 +368,7 @@ finish: if (pRoot && pScrn->vtSema) (*pScrn->EnableDisableFBAccess) (pScreen->myNum, TRUE); #if RANDR_12_INTERFACE - if (WindowTable[pScreen->myNum] && ret) + if (xf86RandR12Key && WindowTable[pScreen->myNum] && ret) RRScreenSizeNotify (pScreen); #endif return ret; @@ -466,6 +468,9 @@ xf86RandR12CreateScreenResources (ScreenPtr pScreen) mmHeight); } + if (xf86RandR12Key == NULL) + return TRUE; + if (randrp->virtualX == -1 || randrp->virtualY == -1) { randrp->virtualX = pScrn->virtualX; @@ -491,9 +496,12 @@ xf86RandR12Init (ScreenPtr pScreen) if (!noPanoramiXExtension) return TRUE; #endif + if (xf86RandR12Generation != serverGeneration) xf86RandR12Generation = serverGeneration; + xf86RandR12Key = &xf86RandR12Key; + randrp = xalloc (sizeof (XF86RandRInfoRec)); if (!randrp) return FALSE; @@ -530,12 +538,18 @@ xf86RandR12Init (ScreenPtr pScreen) _X_EXPORT void xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotations) { - XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); + XF86RandRInfoPtr randrp; #if RANDR_12_INTERFACE ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; int c; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); +#endif + if (xf86RandR12Key == NULL) + return; + + randrp = XF86RANDRINFO(pScreen); +#if RANDR_12_INTERFACE for (c = 0; c < config->num_crtc; c++) { xf86CrtcPtr crtc = config->crtc[c]; @@ -680,11 +694,8 @@ xf86RandRModeConvert (ScrnInfoPtr scrn, RRModePtr randr_mode, DisplayModePtr mode) { - mode->prev = NULL; - mode->next = NULL; - mode->name = NULL; + memset(mode, 0, sizeof(DisplayModeRec)); mode->status = MODE_OK; - mode->type = 0; mode->Clock = randr_mode->mode.dotClock / 1000; @@ -1065,9 +1076,11 @@ xf86RandR12CreateScreenResources12 (ScreenPtr pScreen) ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); + if (xf86RandR12Key == NULL) + return TRUE; + for (c = 0; c < config->num_crtc; c++) - xf86RandR12CrtcNotify (config->crtc[c]->randr_crtc); - + xf86RandR12CrtcNotify (config->crtc[c]->randr_crtc); RRScreenSetSizeRange (pScreen, config->minWidth, config->minHeight, config->maxWidth, config->maxHeight); @@ -1084,11 +1097,11 @@ xf86RandR12TellChanged (ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); - XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); int c; - if (!randrp) + if (xf86RandR12Key == NULL) return; + xf86RandR12SetInfo12 (pScreen); for (c = 0; c < config->num_crtc; c++) xf86RandR12CrtcNotify (config->crtc[c]->randr_crtc); diff --git a/hw/xfree86/os-support/Makefile.am b/hw/xfree86/os-support/Makefile.am index e5a71c00a..f9a82c68d 100644 --- a/hw/xfree86/os-support/Makefile.am +++ b/hw/xfree86/os-support/Makefile.am @@ -1,7 +1,7 @@ SUBDIRS = bus @XORG_OS_SUBDIR@ misc $(DRI_SUBDIRS) DIST_SUBDIRS = bsd bus misc linux lynxos solaris sysv sco usl hurd -sdk_HEADERS = xf86_OSproc.h xf86_OSlib.h xf86_ansic.h xf86_libc.h \ +sdk_HEADERS = xf86_OSproc.h xf86_OSlib.h \ assyntax.h xf86OSmouse.h EXTRA_DIST = int10Defines.h xf86OSpriv.h README.OS-lib diff --git a/hw/xfree86/os-support/bsd/Makefile.am b/hw/xfree86/os-support/bsd/Makefile.am index 446b69ee2..4fc270aa9 100644 --- a/hw/xfree86/os-support/bsd/Makefile.am +++ b/hw/xfree86/os-support/bsd/Makefile.am @@ -54,7 +54,6 @@ AM_CFLAGS = -DUSESTDRES $(XORG_CFLAGS) $(DIX_CFLAGS) INCLUDES = $(XORG_INCS) libbsd_la_SOURCES = \ - $(srcdir)/../shared/libc_wrapper.c \ $(srcdir)/../shared/posix_tty.c \ $(srcdir)/../shared/sigio.c \ $(srcdir)/../shared/vidmem.c \ diff --git a/hw/xfree86/os-support/bsd/alpha_video.c b/hw/xfree86/os-support/bsd/alpha_video.c index a1b19d0f6..523c4488e 100644 --- a/hw/xfree86/os-support/bsd/alpha_video.c +++ b/hw/xfree86/os-support/bsd/alpha_video.c @@ -368,7 +368,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf, return(-1); } - psize = xf86getpagesize(); + psize = getpagesize(); Offset += Base & (psize - 1); Base &= ~(psize - 1); mlen = (Offset + Len + psize - 1) & ~(psize - 1); diff --git a/hw/xfree86/os-support/bsd/arm_video.c b/hw/xfree86/os-support/bsd/arm_video.c index b556563d3..23948b5d6 100644 --- a/hw/xfree86/os-support/bsd/arm_video.c +++ b/hw/xfree86/os-support/bsd/arm_video.c @@ -246,7 +246,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf, return(-1); } - psize = xf86getpagesize(); + psize = getpagesize(); Offset += Base & (psize - 1); Base &= ~(psize - 1); mlen = (Offset + Len + psize - 1) & ~(psize - 1); diff --git a/hw/xfree86/os-support/bsd/i386_video.c b/hw/xfree86/os-support/bsd/i386_video.c index e7db6c10e..42b905483 100644 --- a/hw/xfree86/os-support/bsd/i386_video.c +++ b/hw/xfree86/os-support/bsd/i386_video.c @@ -301,7 +301,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf, return(-1); } - psize = xf86getpagesize(); + psize = getpagesize(); Offset += Base & (psize - 1); Base &= ~(psize - 1); mlen = (Offset + Len + psize - 1) & ~(psize - 1); diff --git a/hw/xfree86/os-support/bus/Pci.h b/hw/xfree86/os-support/bus/Pci.h index 6bd0eb7fc..0abb34f98 100644 --- a/hw/xfree86/os-support/bus/Pci.h +++ b/hw/xfree86/os-support/bus/Pci.h @@ -210,7 +210,7 @@ # define ARCH_PCI_INIT ia64linuxPciInit # endif # define XF86SCANPCI_WRAPPER ia64ScanPCIWrapper -#elif defined(__i386__) +#elif defined(__i386__) || defined(__i386) # if defined(linux) # define ARCH_PCI_INIT linuxPciInit # else diff --git a/hw/xfree86/os-support/bus/Sbus.c b/hw/xfree86/os-support/bus/Sbus.c index c864e3385..2f0043f4c 100644 --- a/hw/xfree86/os-support/bus/Sbus.c +++ b/hw/xfree86/os-support/bus/Sbus.c @@ -559,7 +559,7 @@ _X_EXPORT pointer xf86MapSbusMem(sbusDevicePtr psdp, unsigned long offset, unsigned long size) { pointer ret; - unsigned long pagemask = xf86getpagesize() - 1; + unsigned long pagemask = getpagesize() - 1; unsigned long off = offset & ~pagemask; unsigned long len = ((offset + size + pagemask) & ~pagemask) - off; diff --git a/hw/xfree86/os-support/bus/sparcPci.c b/hw/xfree86/os-support/bus/sparcPci.c index 6f7113f15..2d8039c29 100644 --- a/hw/xfree86/os-support/bus/sparcPci.c +++ b/hw/xfree86/os-support/bus/sparcPci.c @@ -270,7 +270,7 @@ sparcPciInit(void) } sparcPromInit(); - pagemask = xf86getpagesize() - 1; + pagemask = getpagesize() - 1; for (node = promGetChild(promRootNode); node; diff --git a/hw/xfree86/os-support/bus/zx1PCI.c b/hw/xfree86/os-support/bus/zx1PCI.c index 561fbd9f7..d78e0c434 100644 --- a/hw/xfree86/os-support/bus/zx1PCI.c +++ b/hw/xfree86/os-support/bus/zx1PCI.c @@ -469,7 +469,7 @@ void xf86PreScanZX1(void) { resRange range; - unsigned long mapSize = xf86getpagesize(); + unsigned long mapSize = getpagesize(); unsigned long tmp, base, ioaaddr; unsigned long flagsd, based, lastd, maskd, routed; unsigned long flags0, base0, last0, mask0, route0; diff --git a/hw/xfree86/os-support/hurd/Makefile.am b/hw/xfree86/os-support/hurd/Makefile.am index e6543e133..2214b1c2d 100644 --- a/hw/xfree86/os-support/hurd/Makefile.am +++ b/hw/xfree86/os-support/hurd/Makefile.am @@ -4,7 +4,6 @@ libhurd_la_SOURCES = hurd_bell.c hurd_init.c hurd_mmap.c \ hurd_mouse.c hurd_video.c \ $(srcdir)/../shared/VTsw_noop.c \ $(srcdir)/../shared/posix_tty.c \ - $(srcdir)/../shared/libc_wrapper.c \ $(srcdir)/../shared/stdResource.c \ $(srcdir)/../shared/sigiostubs.c \ $(srcdir)/../shared/pm_noop.c \ diff --git a/hw/xfree86/os-support/linux/Makefile.am b/hw/xfree86/os-support/linux/Makefile.am index 5bb252be3..5a52ffdd4 100644 --- a/hw/xfree86/os-support/linux/Makefile.am +++ b/hw/xfree86/os-support/linux/Makefile.am @@ -34,7 +34,6 @@ liblinux_la_SOURCES = lnx_init.c lnx_video.c lnx_mouse.c \ $(srcdir)/../shared/vidmem.c \ $(srcdir)/../shared/sigio.c \ $(srcdir)/../shared/stdResource.c \ - $(srcdir)/../shared/libc_wrapper.c \ $(ACPI_SRCS) \ $(APM_SRCS) \ $(PLATFORM_PCI_SUPPORT) diff --git a/hw/xfree86/os-support/misc/Delay.c b/hw/xfree86/os-support/misc/Delay.c index e3e93faa4..b18789a3a 100644 --- a/hw/xfree86/os-support/misc/Delay.c +++ b/hw/xfree86/os-support/misc/Delay.c @@ -18,7 +18,7 @@ xf86UDelay(long usec) int sigio; sigio = xf86BlockSIGIO(); - xf86usleep(usec); + usleep(usec); xf86UnblockSIGIO(sigio); #endif diff --git a/hw/xfree86/os-support/shared/bios_mmap.c b/hw/xfree86/os-support/shared/bios_mmap.c index cccf86a04..8bac87ebe 100644 --- a/hw/xfree86/os-support/shared/bios_mmap.c +++ b/hw/xfree86/os-support/shared/bios_mmap.c @@ -55,7 +55,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf, DEV_MEM, strerror(errno)); return(-1); } - psize = xf86getpagesize(); + psize = getpagesize(); Offset += Base & (psize - 1); Base &= ~(psize - 1); mlen = (Offset + Len + psize - 1) & ~(psize - 1); @@ -137,7 +137,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf, return(-1); } - psize = xf86getpagesize(); + psize = getpagesize(); Offset += Base & (psize - 1); Base &= ~(psize - 1); mlen = (Offset + Len + psize - 1) & ~(psize - 1); diff --git a/hw/xfree86/os-support/shared/libc_wrapper.c b/hw/xfree86/os-support/shared/libc_wrapper.c deleted file mode 100644 index 959424110..000000000 --- a/hw/xfree86/os-support/shared/libc_wrapper.c +++ /dev/null @@ -1,2123 +0,0 @@ -/* - * Copyright 1997-2003 by The XFree86 Project, Inc. - * - * 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, and that the names of Orest Zborowski and David Wexelblat - * not be used in advertising or publicity pertaining to distribution of - * the software without specific, written prior permission. Orest Zborowski - * and David Wexelblat make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE - * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -#ifdef HAVE_XORG_CONFIG_H -#include <xorg-config.h> -#endif - -#if defined(linux) && !defined(__GLIBC__) -#undef __STRICT_ANSI__ -#endif -#include <X11/X.h> -#include <X11/Xmd.h> -#include <X11/Xos.h> -#include <sys/types.h> -#include <sys/stat.h> -#if defined(__bsdi__) -#undef _POSIX_SOURCE -#undef _ANSI_SOURCE -#endif -#include <sys/time.h> -#include <math.h> -#ifdef sun -#include <ieeefp.h> -#endif -#include <stdarg.h> -#include <fcntl.h> -#include <X11/Xfuncproto.h> -#include "os.h" -#include <ctype.h> -#include <unistd.h> -#include <string.h> -#include <errno.h> -#include <stdio.h> -#include <sys/ioctl.h> -#ifdef HAS_SVR3_MMAPDRV -#define NO_MMAP -#ifdef SELF_CONTAINED_WRAPPER -#include <sys/at_ansi.h> -#include <sys/kd.h> -#include <sys/sysmacros.h> -#if !defined(_NEED_SYSI86) -# include <sys/immu.h> -# include <sys/region.h> -#endif -#include <sys/mmap.h> -struct kd_memloc MapDSC; -int mmapFd = -2; -#else -extern struct kd_memloc MapDSC; -extern int mmapFd; -#endif -#endif -#ifndef NO_MMAP -#include <sys/mman.h> -#ifndef MAP_FAILED -#define MAP_FAILED ((caddr_t)-1) -#endif -#endif -#if !defined(ISC) -#include <stdlib.h> -#endif - -#define NEED_XF86_TYPES 1 -#define NEED_XF86_PROTOTYPES 1 -#define DONT_DEFINE_WRAPPERS -#include "xf86_ansic.h" - -#ifndef SELF_CONTAINED_WRAPPER -#include "xf86.h" -#include "xf86Priv.h" -#define NO_OSLIB_PROTOTYPES -#define XF86_OS_PRIVS -#define HAVE_WRAPPER_DECLS -#include "xf86_OSlib.h" -#else -void xf86WrapperInit(void); -#endif - - -#ifndef X_NOT_POSIX -#include <dirent.h> -#else -#ifdef SYSV -#include <dirent.h> -#else -#ifdef USG -#include <dirent.h> -#else -#include <sys/dir.h> -#ifndef dirent -#define dirent direct -#endif -#endif -#endif -#endif -typedef struct dirent DIRENTRY; - -#ifdef ISC202 -#include <sys/types.h> -#define WIFEXITED(a) ((a & 0x00ff) == 0) /* LSB will be 0 */ -#define WEXITSTATUS(a) ((a & 0xff00) >> 8) -#define WIFSIGNALED(a) ((a & 0xff00) == 0) /* MSB will be 0 */ -#define WTERMSIG(a) (a & 0x00ff) -#else -#if defined(ISC) && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#include <sys/types.h> -#include <sys/wait.h> -#undef _POSIX_SOURCE -#else -#if (defined(ISC) && defined(_POSIX_SOURCE)) || defined(Lynx) || (defined (__alpha__) && defined(linux)) -#include <sys/types.h> -#endif -#include <sys/wait.h> -#endif -#endif -#ifdef Lynx -#if !defined(S_IFIFO) && defined(S_IFFIFO) -#define S_IFIFO S_IFFIFO -#endif -#endif - -/* For xf86getpagesize() */ -#if defined(linux) -#define HAS_SC_PAGESIZE -#define HAS_GETPAGESIZE -#elif defined(CSRG_BASED) -#define HAS_GETPAGESIZE -#elif defined(DGUX) -#define HAS_GETPAGESIZE -#elif defined(sun) && !defined(SVR4) -#define HAS_GETPAGESIZE -#endif -#ifdef XNO_SYSCONF -#undef _SC_PAGESIZE -#endif -#ifdef HAVE_SYSV_IPC -#include <sys/ipc.h> -#include <sys/shm.h> -#endif -#include <setjmp.h> - -#if defined(setjmp) && defined(__GNU_LIBRARY__) && \ - (!defined(__GLIBC__) || (__GLIBC__ < 2) || \ - ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 3))) -#define HAS_GLIBC_SIGSETJMP 1 -#endif - -#if 0 -#define SETBUF_RETURNS_INT -#endif - -_X_EXPORT double xf86HUGE_VAL; - -#ifndef SELF_CONTAINED_WRAPPERS -extern void xf86DisableIO(void); -#endif - -/* - * This file contains the XFree86 wrappers for libc functions that can be - * called by loadable modules - */ - -_X_EXPORT double -xf86hypot(double x, double y) -{ - return(hypot(x,y)); -} - -_X_EXPORT void -xf86qsort(void *base, xf86size_t nmemb, xf86size_t size, - int (*comp)(const void *, const void *)) -{ - qsort(base, nmemb, size, comp); -} - -/* string functions */ - -_X_EXPORT char* -xf86strcat(char* dest, const char* src) -{ - return(strcat(dest,src)); -} - -_X_EXPORT char* -xf86strchr(const char* s, int c) -{ - return strchr(s,c); -} - -_X_EXPORT int -xf86strcmp(const char* s1, const char* s2) -{ - return strcmp(s1,s2); -} - -/* Just like the BSD version. It assumes that tolower() is ANSI-compliant */ -_X_EXPORT int -xf86strcasecmp(const char* s1, const char* s2) -{ - const unsigned char *us1 = (const unsigned char *)s1; - const unsigned char *us2 = (const unsigned char *)s2; - - while (tolower(*us1) == tolower(*us2++)) - if (*us1++ == '\0') - return 0; - - return tolower(*us1) - tolower(*--us2); -} - -_X_EXPORT char* -xf86strcpy(char* dest, const char* src) -{ - return strcpy(dest,src); -} - -_X_EXPORT xf86size_t -xf86strcspn(const char* s1, const char* s2) -{ - return (xf86size_t)strcspn(s1,s2); -} - -_X_EXPORT xf86size_t -xf86strlen(const char* s) -{ - return (xf86size_t)strlen(s); -} - -_X_EXPORT xf86size_t -xf86strlcat(char *dest, const char *src, xf86size_t size) -{ - return(strlcat(dest, src, size)); -} - -_X_EXPORT xf86size_t -xf86strlcpy(char *dest, const char *src, xf86size_t size) -{ - return strlcpy(dest, src, size); -} - -_X_EXPORT char* -xf86strncat(char* dest, const char* src, xf86size_t n) -{ - return strncat(dest,src,(size_t)n); -} - -_X_EXPORT int -xf86strncmp(const char* s1, const char* s2, xf86size_t n) -{ - return strncmp(s1,s2,(size_t)n); -} - -/* Just like the BSD version. It assumes that tolower() is ANSI-compliant */ -_X_EXPORT int -xf86strncasecmp(const char* s1, const char* s2, xf86size_t n) -{ - if (n != 0) { - const unsigned char *us1 = (const unsigned char *)s1; - const unsigned char *us2 = (const unsigned char *)s2; - - do { - if (tolower(*us1) != tolower(*us2++)) - return tolower(*us1) - tolower(*--us2); - if (*us1++ == '\0') - break; - } while (--n != 0); - } - return 0; -} - -_X_EXPORT char* -xf86strncpy(char* dest, const char* src, xf86size_t n) -{ - return strncpy(dest,src,(size_t)n); -} - -_X_EXPORT char* -xf86strpbrk(const char* s1, const char* s2) -{ - return strpbrk(s1,s2); -} - -_X_EXPORT char* -xf86strrchr(const char* s, int c) -{ - return strrchr(s,c); -} - -_X_EXPORT xf86size_t -xf86strspn(const char* s1, const char* s2) -{ - return strspn(s1,s2); -} - -_X_EXPORT char* -xf86strstr(const char* s1, const char* s2) -{ - return strstr(s1,s2); -} - -_X_EXPORT char* -xf86strtok(char* s1, const char* s2) -{ - return strtok(s1,s2); -} - -_X_EXPORT char* -xf86strdup(const char* s) -{ - return xstrdup(s); -} - -_X_EXPORT int -xf86sprintf(char *s, const char *format, ...) -{ - int ret; - va_list args; - va_start(args, format); - ret = vsprintf(s, format, args); - va_end(args); - return ret; -} - -_X_EXPORT int -xf86snprintf(char *s, xf86size_t len, const char *format, ...) -{ - int ret; - va_list args; - va_start(args, format); - ret = vsnprintf(s, (size_t)len, format, args); - va_end(args); - return ret; -} - -_X_EXPORT void -xf86bzero(void* s, unsigned int n) -{ - memset(s, 0, n); -} - -#ifdef HAVE_VSSCANF -_X_EXPORT int -xf86sscanf(char *s, const char *format, ...) -#else -_X_EXPORT int -xf86sscanf(char *s, const char *format, char *a0, char *a1, char *a2, - char *a3, char *a4, char *a5, char *a6, char *a7, char *a8, - char *a9) /* limit of ten args */ -#endif -{ -#ifdef HAVE_VSSCANF - int ret; - va_list args; - va_start(args, format); - - ret = vsscanf(s,format,args); - va_end(args); - return ret; -#else - return sscanf(s, format, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); -#endif -} - -/* Basic I/O */ - -_X_EXPORT int xf86errno; - -/* XXX This is not complete */ - -static int -xfToOsOpenFlags(int xfflags) -{ - int flags = 0; - - /* XXX This assumes O_RDONLY is 0 */ - if (xfflags & XF86_O_WRONLY) - flags |= O_WRONLY; - if (xfflags & XF86_O_RDWR) - flags |= O_RDWR; - if (xfflags & XF86_O_CREAT) - flags |= O_CREAT; - - return flags; -} - -_X_EXPORT int -xf86open(const char *path, int flags, ...) -{ - int fd; - va_list ap; - - va_start(ap, flags); - flags = xfToOsOpenFlags(flags); - if (flags & O_CREAT) { - /* can't request a mode_t directly on systems where mode_t - is an unsigned short */ - mode_t mode = (mode_t)va_arg(ap, unsigned int); - fd = open(path, flags, mode); - } else { - fd = open(path, flags); - } - va_end(ap); - xf86errno = xf86GetErrno(); - - return fd; -} - -_X_EXPORT int -xf86close(int fd) -{ - int status = close(fd); - - xf86errno = xf86GetErrno(); - return status; -} - -_X_EXPORT long -xf86lseek(int fd, long offset, int whence) -{ - switch (whence) { - case XF86_SEEK_SET: - whence = SEEK_SET; - break; - case XF86_SEEK_CUR: - whence = SEEK_CUR; - break; - case XF86_SEEK_END: - whence = SEEK_END; - break; - } - return (long)lseek(fd, (off_t)offset, whence); -} - -_X_EXPORT int -xf86ioctl(int fd, unsigned long request, pointer argp) -{ - int status = ioctl(fd, request, argp); - - xf86errno = xf86GetErrno(); - return status; -} - -_X_EXPORT xf86ssize_t -xf86read(int fd, void *buf, xf86size_t nbytes) -{ - xf86ssize_t n = read(fd, buf, (size_t)nbytes); - - xf86errno = xf86GetErrno(); - return n; -} - -_X_EXPORT xf86ssize_t -xf86write(int fd, const void *buf, xf86size_t nbytes) -{ - xf86ssize_t n = write(fd, buf, (size_t)nbytes); - - xf86errno = xf86GetErrno(); - return n; -} - -_X_EXPORT void* -xf86mmap(void *start, xf86size_t length, int prot, - int flags, int fd, xf86size_t /* off_t */ offset) -{ -#ifndef NO_MMAP - int p=0, f=0; - void *rc; - - if (flags & XF86_MAP_FIXED) f |= MAP_FIXED; - if (flags & XF86_MAP_SHARED) f |= MAP_SHARED; - if (flags & XF86_MAP_PRIVATE) f |= MAP_PRIVATE; -#if defined(__amd64__) && defined(linux) - if (flags & XF86_MAP_32BIT) f |= MAP_32BIT; -#endif - if (prot & XF86_PROT_EXEC) p |= PROT_EXEC; - if (prot & XF86_PROT_READ) p |= PROT_READ; - if (prot & XF86_PROT_WRITE) p |= PROT_WRITE; - if (prot & XF86_PROT_NONE) p |= PROT_NONE; - - rc = mmap(start,(size_t)length,p,f,fd,(off_t)offset); - - xf86errno = xf86GetErrno(); - if (rc == MAP_FAILED) - return XF86_MAP_FAILED; - else - return rc; -#else -#ifdef HAS_SVR3_MMAPDRV - void *rc; -#ifdef SELF_CONTAINED_WRAPPER - if(mmapFd < 0) { - if ((mmapFd = open("/dev/mmap", O_RDWR)) == -1) { - ErrorF("Warning: failed to open /dev/mmap \n"); - xf86errno = xf86_ENOSYS; - return XF86_MAP_FAILED; - } - } -#endif - MapDSC.vaddr = (char *)start; - MapDSC.physaddr = (char *)offset; - MapDSC.length = length; - MapDSC.ioflg = 1; - - rc = (pointer)ioctl(mmapFd, MAP, &MapDSC); - xf86errno = xf86GetErrno(); - if (rc == NULL) - return XF86_MAP_FAILED; - else - return rc; -#else - ErrorF("Warning: mmap() is not supported on this platform\n"); - xf86errno = xf86_ENOSYS; - return XF86_MAP_FAILED; -#endif -#endif -} - -_X_EXPORT int -xf86munmap(void *start, xf86size_t length) -{ -#ifndef NO_MMAP - int rc = munmap(start,(size_t)length); - - xf86errno = xf86GetErrno(); - return rc; -#else -#ifdef HAS_SVR3_MMAPDRV - int rc = ioctl(mmapFd, UNMAPRM , start); - - xf86errno = xf86GetErrno(); - return rc; -#else - ErrorF("Warning: munmap() is not supported on this platform\n"); - xf86errno = xf86_ENOSYS; - return -1; -#endif -#endif -} - -_X_EXPORT int -xf86stat(const char *file_name, struct xf86stat *xfst) -{ - int rc; - struct stat st; - - rc = stat(file_name, &st); - xf86errno = xf86GetErrno(); - xfst->st_rdev = st.st_rdev; /* Not much is currently supported */ - return rc; -} - -_X_EXPORT int -xf86fstat(int fd, struct xf86stat *xfst) -{ - int rc; - struct stat st; - - rc = fstat(fd, &st); - xf86errno = xf86GetErrno(); - xfst->st_rdev = st.st_rdev; /* Not much is currently supported */ - return rc; -} - -static int -xfToOsAccessMode(int xfmode) -{ - switch(xfmode) { - case XF86_R_OK: return R_OK; - case XF86_W_OK: return W_OK; - case XF86_X_OK: return X_OK; - case XF86_F_OK: return F_OK; - } - return 0; -} - -_X_EXPORT int -xf86access(const char *pathname, int mode) -{ - int rc; - - mode = xfToOsAccessMode(mode); - rc = access(pathname, mode); - xf86errno = xf86GetErrno(); - return rc; -} - - - -/* limited stdio support */ - -#define XF86FILE_magic 0x58464856 /* "XFHV" */ - -typedef struct _xf86_file_ { - INT32 fileno; - INT32 magic; - FILE* filehnd; - char* fname; -} XF86FILE_priv; - -static XF86FILE_priv stdhnd[3] = { - { 0, XF86FILE_magic, NULL, "$stdinp$" }, - { 0, XF86FILE_magic, NULL, "$stdout$" }, - { 0, XF86FILE_magic, NULL, "$stderr$" } -}; - -_X_EXPORT XF86FILE* xf86stdin = (XF86FILE*)&stdhnd[0]; -_X_EXPORT XF86FILE* xf86stdout = (XF86FILE*)&stdhnd[1]; -_X_EXPORT XF86FILE* xf86stderr = (XF86FILE*)&stdhnd[2]; - -void -xf86WrapperInit() -{ - if (stdhnd[0].filehnd == NULL) - stdhnd[0].filehnd = stdin; - if (stdhnd[1].filehnd == NULL) - stdhnd[1].filehnd = stdout; - if (stdhnd[2].filehnd == NULL) - stdhnd[2].filehnd = stderr; - xf86HUGE_VAL = HUGE_VAL; -} - -_X_EXPORT XF86FILE* -xf86fopen(const char* fn, const char* mode) -{ - XF86FILE_priv* fp; - FILE *f = fopen(fn,mode); - xf86errno = xf86GetErrno(); - if (!f) return 0; - - fp = xalloc(sizeof(XF86FILE_priv)); - fp->magic = XF86FILE_magic; - fp->filehnd = f; - fp->fileno = fileno(f); - fp->fname = xf86strdup(fn); -#ifdef DEBUG - ErrorF("xf86fopen(%s,%s) yields FILE %p XF86FILE %p\n", - fn,mode,f,fp); -#endif - return (XF86FILE*)fp; -} - -static void _xf86checkhndl(XF86FILE_priv* f,const char *func) -{ - if (!f || f->magic != XF86FILE_magic || - !f->filehnd || !f->fname) { - FatalError("libc_wrapper error: passed invalid FILE handle to %s", - func); - exit(42); - } -} - -_X_EXPORT int -xf86fclose(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - int ret; - - _xf86checkhndl(fp,"xf86fclose"); - - /* somewhat bad check */ - if (fp->fileno < 3 && fp->fname[0]=='$') { - /* assume this is stdin/out/err, don't dispose */ - ret = fclose(fp->filehnd); - } else { - ret = fclose(fp->filehnd); - fp->magic = 0; /* invalidate */ - xfree(fp->fname); - xfree(fp); - } - return ret ? -1 : 0; -} - -_X_EXPORT int -xf86printf(const char *format, ...) -{ - int ret; - va_list args; - va_start(args, format); - - ret = printf(format,args); - va_end(args); - return ret; -} - -_X_EXPORT int -xf86fprintf(XF86FILE* f, const char *format, ...) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - int ret; - va_list args; - va_start(args, format); - -#ifdef DEBUG - ErrorF("xf86fprintf for XF86FILE %p\n", fp); -#endif - _xf86checkhndl(fp,"xf86fprintf"); - - ret = vfprintf(fp->filehnd,format,args); - va_end(args); - return ret; -} - -_X_EXPORT int -xf86vfprintf(XF86FILE* f, const char *format, va_list ap) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - -#ifdef DEBUG - ErrorF("xf86vfprintf for XF86FILE %p\n", fp); -#endif - _xf86checkhndl(fp,"xf86vfprintf"); - - return vfprintf(fp->filehnd,format,ap); -} - -_X_EXPORT int -xf86vsprintf(char *s, const char *format, va_list ap) -{ - return vsprintf(s, format, ap); -} - -_X_EXPORT int -xf86vsnprintf(char *s, xf86size_t len, const char *format, va_list ap) -{ - return vsnprintf(s, (size_t)len, format, ap); -} - -#ifdef HAVE_VFSCANF -_X_EXPORT int -xf86fscanf(XF86FILE* f, const char *format, ...) -#else -_X_EXPORT int -xf86fscanf(XF86FILE* f, const char *format, char *a0, char *a1, char *a2, - char *a3, char *a4, char *a5, char *a6, char *a7, char *a8, - char *a9) /* limit of ten args */ -#endif -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - -#ifdef HAVE_VFSCANF - int ret; - va_list args; - va_start(args, format); - - _xf86checkhndl(fp,"xf86fscanf"); - - ret = vfscanf(fp->filehnd,format,args); - va_end(args); - return ret; -#else - _xf86checkhndl(fp,"xf86fscanf"); - return fscanf(fp->filehnd, format, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); -#endif -} - -_X_EXPORT char * -xf86fgets(char *buf, INT32 n, XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fgets"); - return fgets(buf,(int)n,fp->filehnd); -} - -_X_EXPORT int -xf86fputs(const char *buf, XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fputs"); - return fputs(buf,fp->filehnd); -} - -_X_EXPORT int -xf86getc(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86getc"); - return getc(fp->filehnd); -} - -_X_EXPORT int -xf86fgetc(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fgetc"); - return fgetc(fp->filehnd); -} - -_X_EXPORT int -xf86fputc(int c,XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fputc"); - return fputc(c,fp->filehnd); -} - -_X_EXPORT int -xf86fflush(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fflush"); - return fflush(fp->filehnd); -} - -_X_EXPORT xf86size_t -xf86fread(void* buf, xf86size_t sz, xf86size_t cnt, XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - -#ifdef DEBUG - ErrorF("xf86fread for XF86FILE %p\n", fp); -#endif - _xf86checkhndl(fp,"xf86fread"); - return fread(buf,(size_t)sz,(size_t)cnt,fp->filehnd); -} - -_X_EXPORT xf86size_t -xf86fwrite(const void* buf, xf86size_t sz, xf86size_t cnt, XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fwrite"); - return fwrite(buf,(size_t)sz,(size_t)cnt,fp->filehnd); -} - -_X_EXPORT int -xf86fseek(XF86FILE* f, long offset, int whence) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fseek"); - switch (whence) { - case XF86_SEEK_SET: - whence = SEEK_SET; - break; - case XF86_SEEK_CUR: - whence = SEEK_CUR; - break; - case XF86_SEEK_END: - whence = SEEK_END; - break; - } - return fseek(fp->filehnd,offset,whence); -} - -_X_EXPORT long -xf86ftell(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86ftell"); - return ftell(fp->filehnd); -} - -#define mapnum(e) case (xf86_##e): err = e; break; - -_X_EXPORT char* -xf86strerror(int n) -{ - int err; - - switch (n) - { - case 0: err = 0; break; - mapnum (EACCES); - mapnum (EAGAIN); - mapnum (EBADF); - mapnum (EEXIST); - mapnum (EFAULT); - mapnum (EINTR); - mapnum (EINVAL); - mapnum (EISDIR); - mapnum (ELOOP); /* not POSIX 1 */ - mapnum (EMFILE); - mapnum (ENAMETOOLONG); - mapnum (ENFILE); - mapnum (ENOENT); - mapnum (ENOMEM); - mapnum (ENOSPC); - mapnum (ENOTDIR); - mapnum (EPIPE); - mapnum (EROFS); - mapnum (ETXTBSY); /* not POSIX 1 */ - mapnum (ENOTTY); -#ifdef ENOSYS - mapnum (ENOSYS); -#endif - mapnum (EBUSY); - mapnum (ENODEV); - mapnum (EIO); -#ifdef ESRCH - mapnum (ESRCH); -#endif -#ifdef ENXIO - mapnum (ENXIO); -#endif -#ifdef E2BIG - mapnum (E2BIG); -#endif -#ifdef ENOEXEC - mapnum (ENOEXEC); -#endif -#ifdef ECHILD - mapnum (ECHILD); -#endif -#ifdef ENOTBLK - mapnum (ENOTBLK); -#endif -#ifdef EXDEV - mapnum (EXDEV); -#endif -#ifdef EFBIG - mapnum (EFBIG); -#endif -#ifdef ESPIPE - mapnum (ESPIPE); -#endif -#ifdef EMLINK - mapnum (EMLINK); -#endif -#ifdef EDOM - mapnum (EDOM); -#endif -#ifdef ERANGE - mapnum (ERANGE); -#endif - - default: - err = 999; - } - return strerror(err); -} - -#undef mapnum - - -/* required for portable fgetpos/fsetpos, - * use as - * XF86fpos_t* pos = xalloc(xf86fpossize()); - */ -_X_EXPORT long -xf86fpossize() -{ - return sizeof(fpos_t); -} - -_X_EXPORT int -xf86fgetpos(XF86FILE* f,XF86fpos_t* pos) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - fpos_t *ppos = (fpos_t*)pos; - - _xf86checkhndl(fp,"xf86fgetpos"); -#ifndef ISC - return fgetpos(fp->filehnd,ppos); -#else - *ppos = ftell(fp->filehnd); - if (*ppos < 0L) - return(-1); - return(0); -#endif -} - -_X_EXPORT int -xf86fsetpos(XF86FILE* f,const XF86fpos_t* pos) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - fpos_t *ppos = (fpos_t*)pos; - - /* XXX need to handle xf86errno here */ - _xf86checkhndl(fp,"xf86fsetpos"); -#ifndef ISC - return fsetpos(fp->filehnd,ppos); -#else - if (ppos == NULL) - { - errno = EINVAL; - return EOF; - } - return fseek(fp->filehnd, *ppos, SEEK_SET); -#endif -} - -_X_EXPORT void -xf86perror(const char *s) -{ - perror(s); -} - -_X_EXPORT int -xf86remove(const char *s) -{ -#ifdef _POSIX_SOURCE - return remove(s); -#else - return unlink(s); -#endif -} - -_X_EXPORT int -xf86rename(const char *old, const char *new) -{ -#ifdef _POSIX_SOURCE - return rename(old,new); -#else - int ret = link(old,new); - if (!ret) { - ret = unlink(old); - if (ret) unlink(new); - } else - ret = unlink(new); - return ret; -#endif -} - -_X_EXPORT void -xf86rewind(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fsetpos"); - rewind(fp->filehnd); -} - -_X_EXPORT void -xf86clearerr(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86clearerr"); - clearerr(fp->filehnd); -} - -_X_EXPORT int -xf86feof(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86feof"); - return feof(fp->filehnd); -} - -_X_EXPORT int -xf86ferror(XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86ferror"); - return ferror(fp->filehnd); -} - -_X_EXPORT XF86FILE* -xf86freopen(const char* fname,const char* mode,XF86FILE* fold) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)fold; - FILE *fnew; - - _xf86checkhndl(fp,"xf86freopen"); - fnew = freopen(fname,mode,fp->filehnd); - xf86errno = xf86GetErrno(); - if (!fnew) { - xf86fclose(fold); /* discard old XF86FILE structure */ - return 0; - } - /* recycle the old XF86FILE structure */ - fp->magic = XF86FILE_magic; - fp->filehnd = fnew; - fp->fileno = fileno(fnew); - fp->fname = xf86strdup(fname); -#ifdef DEBUG - ErrorF("xf86freopen(%s,%s,%p) yields FILE %p XF86FILE %p\n", - fname,mode,fold,fnew,fp); -#endif - return (XF86FILE*)fp; -} - -_X_EXPORT int -xf86setbuf(XF86FILE* f, char *buf) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86fsetbuf"); -#ifdef SETBUF_RETURNS_INT - return setbuf(fp->filehnd, buf); -#else - setbuf(fp->filehnd, buf); - return 0; -#endif -} - -_X_EXPORT int -xf86setvbuf(XF86FILE* f, char *buf, int mode, xf86size_t size) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - int vbufmode; - - _xf86checkhndl(fp,"xf86fsetvbuf"); - - switch (mode) { - case XF86_IONBF: - vbufmode = _IONBF; - break; - case XF86_IOLBF: - vbufmode = _IOFBF; - break; - case XF86_IOFBF: - vbufmode = _IOLBF; - break; - default: - FatalError("libc_wrapper error: mode in setvbuf incorrect"); - exit(42); - } - - return setvbuf(fp->filehnd,buf,vbufmode,(size_t)size); -} - -_X_EXPORT XF86FILE* -xf86tmpfile(void) -{ -#ifdef NEED_TMPFILE - return xf86fopen(tmpnam((char*)0),"w+"); -#else - XF86FILE_priv* fp; - FILE *f = tmpfile(); - xf86errno = xf86GetErrno(); - if (!f) return 0; - - fp = xalloc(sizeof(XF86FILE_priv)); - fp->magic = XF86FILE_magic; - fp->filehnd = f; - fp->fileno = fileno(f); - fp->fname = xf86strdup("*tmpfile*"); /* so that it can be xfree()'d */ -#ifdef DEBUG - ErrorF("xf86tmpfile() yields FILE %p XF86FILE %p\n",f,fp); -#endif - return (XF86FILE*)fp; -} -#endif /* HAS_TMPFILE */ - - -_X_EXPORT int -xf86ungetc(int c,XF86FILE* f) -{ - XF86FILE_priv* fp = (XF86FILE_priv*)f; - - _xf86checkhndl(fp,"xf86ungetc"); - return ungetc(c,fp->filehnd); -} - -/* Misc functions. Some are ANSI C, some are not. */ - -_X_EXPORT void -xf86usleep(usec) - unsigned long usec; -{ -#if (defined(SYSV) || defined(SVR4)) && !defined(sun) - syscall(3112, (usec) / 1000 + 1); -#else - usleep(usec); -#endif -} - -_X_EXPORT void -xf86getsecs(long * secs, long * usecs) -{ - struct timeval tv; - - X_GETTIMEOFDAY(&tv); - if (secs) - *secs = tv.tv_sec; - if (usecs) - *usecs= tv.tv_usec; - - return; -} - -_X_EXPORT int -xf86ffs(int mask) -{ - int n; - if (mask == 0) return 0; - for (n = 1; (mask & 1)==0; n++) - mask >>= 1; - return n; -} - -_X_EXPORT char * -xf86getenv(const char * a) -{ - /* Only allow this when the real and effective uids are the same */ - if (getuid() != geteuid()) - return NULL; - else - return(getenv(a)); -} - -_X_EXPORT void * -xf86bsearch(const void *key, const void *base, xf86size_t nmemb, - xf86size_t size, int (*compar)(const void *, const void *)) -{ - return bsearch(key, base, (size_t)nmemb, (size_t)size, compar); -} - -_X_EXPORT int -xf86execl(const char *pathname, const char *arg, ...) -{ - int i; - pid_t pid; - int exit_status; - char *arglist[5]; - va_list args; - va_start(args, arg); - arglist[0] = (char*)&args; - i = 1; - while (i < 5 && (arglist[i++] = va_arg(args, char *)) != NULL) - ; - va_end(args); - - if ((pid = fork()) < 0) { - ErrorF("Fork failed (%s)\n", strerror(errno)); - return -1; - } else if (pid == 0) { /* child */ - /* - * Make sure that the child doesn't inherit any I/O permissions it - * shouldn't have. It's better to put constraints on the development - * of a clock program than to give I/O permissions to a bogus program - * in someone's XF86Config file - */ -#ifndef SELF_CONTAINED_WRAPPER - xf86DisableIO(); -#endif - if (setuid(getuid()) == -1) { - ErrorF("xf86Execl: setuid() failed: %s\n", strerror(errno)); - exit(255); - } -#if !defined(SELF_CONTAINED_WRAPPER) - /* set stdin, stdout to the consoleFD, and leave stderr alone */ - for (i = 0; i < 2; i++) - { - if (xf86Info.consoleFd != i) - { - close(i); - dup(xf86Info.consoleFd); - } - } -#endif - - execv(pathname, arglist); - ErrorF("Exec failed for command \"%s\" (%s)\n", - pathname, strerror(errno)); - exit(255); - } - - /* parent */ - wait(&exit_status); - if (WIFEXITED(exit_status)) - { - switch (WEXITSTATUS(exit_status)) - { - case 0: /* OK */ - return 0; - case 255: /* exec() failed */ - return(255); - default: /* bad exit status */ - ErrorF("Program \"%s\" had bad exit status %d\n", - pathname, WEXITSTATUS(exit_status)); - return(WEXITSTATUS(exit_status)); - } - } - else if (WIFSIGNALED(exit_status)) - { - ErrorF("Program \"%s\" died on signal %d\n", - pathname, WTERMSIG(exit_status)); - return(WTERMSIG(exit_status)); - } -#ifdef WIFSTOPPED - else if (WIFSTOPPED(exit_status)) - { - ErrorF("Program \"%s\" stopped by signal %d\n", - pathname, WSTOPSIG(exit_status)); - return(WSTOPSIG(exit_status)); - } -#endif - else /* should never get to this point */ - { - ErrorF("Program \"%s\" has unknown exit condition\n", - pathname); - return(1); - } -} - -_X_EXPORT void -xf86abort(void) -{ - ErrorF("Module called abort() function\n"); - abort(); -} - -_X_EXPORT void -xf86exit(int ex) -{ - ErrorF("Module called exit() function with value=%d\n",ex); - exit(ex); -} - -/* directory handling functions */ -#define XF86DIR_magic 0x78666876 /* "xfhv" */ - -typedef struct _xf86_dir_ { - DIR *dir; - INT32 magic; - XF86DIRENT *dirent; -} XF86DIR_priv; - -static void -_xf86checkdirhndl(XF86DIR_priv* f,const char *func) -{ - if (!f || f->magic != XF86DIR_magic || !f->dir || !f->dirent) { - FatalError("libc_wrapper error: passed invalid DIR handle to %s", - func); - exit(42); - } -} - -_X_EXPORT XF86DIR * -xf86opendir(const char *name) -{ - XF86DIR_priv *dp; - DIR *dirp; - - dirp = opendir(name); - if (!dirp) - return (XF86DIR*)0; - - dp = xalloc(sizeof(XF86DIR_priv)); - dp->magic = XF86DIR_magic; /* This time I have this, Dirk! :-) */ - dp->dir = dirp; - dp->dirent = xalloc(sizeof(struct _xf86dirent)); - - return (XF86DIR*)dp; -} - -_X_EXPORT XF86DIRENT* -xf86readdir(XF86DIR* dirp) -{ - XF86DIR_priv* dp = (XF86DIR_priv*)dirp; - DIRENTRY *de; - XF86DIRENT* xde; - int sz; - - _xf86checkdirhndl(dp,"xf86readdir"); - - de = readdir(dp->dir); - if (!de) - return (XF86DIRENT*)0; - xde = dp->dirent; - sz = strlen(de->d_name); - strncpy(xde->d_name,de->d_name, sz>_XF86NAMELEN ? (_XF86NAMELEN+1) : (sz+1)); - xde->d_name[_XF86NAMELEN] = '\0'; /* be sure to have a 0 byte */ - return xde; -} - -_X_EXPORT void -xf86rewinddir(XF86DIR* dirp) -{ - XF86DIR_priv* dp = (XF86DIR_priv*)dirp; - - _xf86checkdirhndl(dp,"xf86readdir"); - rewinddir(dp->dir); -} - -_X_EXPORT int -xf86closedir(XF86DIR* dir) -{ - XF86DIR_priv* dp = (XF86DIR_priv*)dir; - int n; - - _xf86checkdirhndl(dp,"xf86readdir"); - - n = closedir(dp->dir); - dp->magic = 0; - xfree(dp->dirent); - xfree(dp); - - return n; -} - -static mode_t -xfToOsChmodMode(xf86mode_t xfmode) -{ - mode_t mode = 0; - - if (xfmode & XF86_S_ISUID) mode |= S_ISUID; - if (xfmode & XF86_S_ISGID) mode |= S_ISGID; - if (xfmode & XF86_S_ISVTX) mode |= S_ISVTX; - if (xfmode & XF86_S_IRUSR) mode |= S_IRUSR; - if (xfmode & XF86_S_IWUSR) mode |= S_IWUSR; - if (xfmode & XF86_S_IXUSR) mode |= S_IXUSR; - if (xfmode & XF86_S_IRGRP) mode |= S_IRGRP; - if (xfmode & XF86_S_IWGRP) mode |= S_IWGRP; - if (xfmode & XF86_S_IXGRP) mode |= S_IXGRP; - if (xfmode & XF86_S_IROTH) mode |= S_IROTH; - if (xfmode & XF86_S_IWOTH) mode |= S_IWOTH; - if (xfmode & XF86_S_IXOTH) mode |= S_IXOTH; - - return mode; -} - -_X_EXPORT int -xf86chmod(const char *path, xf86mode_t xfmode) -{ - mode_t mode = xfToOsChmodMode(xfmode); - int rc = chmod(path, mode); - - xf86errno = xf86GetErrno(); - return rc; -} - -_X_EXPORT int -xf86chown(const char *path, xf86uid_t owner, xf86gid_t group) -{ - int rc = chown(path, owner, group); - xf86errno = xf86GetErrno(); - return rc; -} - -_X_EXPORT xf86uid_t -xf86geteuid(void) -{ - return geteuid(); -} - -_X_EXPORT xf86gid_t -xf86getegid(void) -{ - return getegid(); -} - -_X_EXPORT int -xf86getpid(void) -{ - return getpid(); -} - -static mode_t -xfToOsMknodMode(xf86mode_t xfmode) -{ - mode_t mode = xfToOsChmodMode(xfmode); - - if (xfmode & XF86_S_IFREG) mode |= S_IFREG; - if (xfmode & XF86_S_IFCHR) mode |= S_IFCHR; - if (xfmode & XF86_S_IFBLK) mode |= S_IFBLK; - if (xfmode & XF86_S_IFIFO) mode |= S_IFIFO; - - return mode; -} - -_X_EXPORT int xf86mknod(const char *pathname, xf86mode_t xfmode, xf86dev_t dev) -{ - mode_t mode = xfToOsMknodMode(xfmode); - int rc = mknod(pathname, mode, dev); - xf86errno = xf86GetErrno(); - return rc; -} - -_X_EXPORT unsigned int xf86sleep(unsigned int seconds) -{ - return sleep(seconds); -} - -_X_EXPORT int xf86mkdir(const char *pathname, xf86mode_t xfmode) -{ - mode_t mode = xfToOsChmodMode(xfmode); - int rc = mkdir(pathname, mode); - - xf86errno = xf86GetErrno(); - return rc; -} - - -/* Several math functions */ - -_X_EXPORT int -xf86abs(int x) -{ - return abs(x); -} - -_X_EXPORT double -xf86acos(double x) -{ - return acos(x); -} - -_X_EXPORT double -xf86asin(double x) -{ - return asin(x); -} - -_X_EXPORT double -xf86atan(double x) -{ - return atan(x); -} - -_X_EXPORT double -xf86atan2(double x,double y) -{ - return atan2(x,y); -} - -_X_EXPORT double -xf86atof(const char* s) -{ - return atof(s); -} - -_X_EXPORT int -xf86atoi(const char* s) -{ - return atoi(s); -} - -_X_EXPORT long -xf86atol(const char* s) -{ - return atol(s); -} - -_X_EXPORT double -xf86ceil(double x) -{ - return ceil(x); -} - -_X_EXPORT double -xf86cos(double x) -{ - return(cos(x)); -} - -_X_EXPORT double -xf86exp(double x) -{ - return(exp(x)); -} - -_X_EXPORT double -xf86fabs(double x) -{ - return(fabs(x)); -} - -_X_EXPORT int -xf86finite(double x) -{ -#ifndef QNX4 - return(finite(x)); -#else - /* XXX Replace this with something that really works. */ - return 1; -#endif -} - -_X_EXPORT double -xf86floor(double x) -{ - return floor(x); -} - -_X_EXPORT double -xf86fmod(double x,double y) -{ - return fmod(x,y); -} - -_X_EXPORT long -xf86labs(long x) -{ - return labs(x); -} - -_X_EXPORT double -xf86ldexp(double x, int exp) -{ - return ldexp(x, exp); -} - -_X_EXPORT double -xf86log(double x) -{ - return(log(x)); -} - -_X_EXPORT double -xf86log10(double x) -{ - return(log10(x)); -} - -_X_EXPORT double -xf86modf(double x,double* y) -{ - return modf(x,y); -} - -_X_EXPORT double -xf86pow(double x, double y) -{ - return(pow(x,y)); -} - -_X_EXPORT double -xf86sin(double x) -{ - return sin(x); -} - -_X_EXPORT double -xf86sqrt(double x) -{ - return(sqrt(x)); -} - -_X_EXPORT double -xf86strtod(const char *s, char **end) -{ - return strtod(s,end); -} - -_X_EXPORT long -xf86strtol(const char *s, char **end, int radix) -{ - return strtol(s,end,radix); -} - -_X_EXPORT unsigned long -xf86strtoul(const char *s, char **end,int radix) -{ - return strtoul(s,end,radix); -} - -_X_EXPORT double -xf86tan(double x) -{ - return tan(x); -} - -/* memory functions */ -_X_EXPORT void* -xf86memchr(const void* s, int c, xf86size_t n) -{ - return memchr(s,c,(size_t)n); -} - -_X_EXPORT int -xf86memcmp(const void* s1, const void* s2, xf86size_t n) -{ - return(memcmp(s1,s2,(size_t)n)); -} - -_X_EXPORT void* -xf86memcpy(void* dest, const void* src, xf86size_t n) -{ - return(memcpy(dest,src,(size_t)n)); -} - -_X_EXPORT void* -xf86memmove(void* dest, const void* src, xf86size_t n) -{ - return(memmove(dest,src,(size_t)n)); -} - -_X_EXPORT void* -xf86memset(void* s, int c, xf86size_t n) -{ - return(memset(s,c,(size_t)n)); -} - -/* ctype functions */ - -_X_EXPORT int -xf86isalnum(int c) -{ - return isalnum(c) ? 1 : 0; -} - -_X_EXPORT int -xf86isalpha(int c) -{ - return isalpha(c) ? 1 : 0; -} - -_X_EXPORT int -xf86iscntrl(int c) -{ - return iscntrl(c) ? 1 : 0; -} - -_X_EXPORT int -xf86isdigit(int c) -{ - return isdigit(c) ? 1 : 0; -} - -_X_EXPORT int -xf86isgraph(int c) -{ - return isgraph(c) ? 1 : 0; -} - -_X_EXPORT int -xf86islower(int c) -{ - return islower(c) ? 1 : 0; -} - -_X_EXPORT int -xf86isprint(int c) -{ - return isprint(c) ? 1 : 0; -} - -_X_EXPORT int -xf86ispunct(int c) -{ - return ispunct(c) ? 1 : 0; -} - -_X_EXPORT int -xf86isspace(int c) -{ - return isspace(c) ? 1 : 0; -} - -_X_EXPORT int -xf86isupper(int c) -{ - return isupper(c) ? 1 : 0; -} - -_X_EXPORT int -xf86isxdigit(int c) -{ - return isxdigit(c) ? 1 : 0; -} - -_X_EXPORT int -xf86tolower(int c) -{ - return tolower(c); -} - -_X_EXPORT int -xf86toupper(int c) -{ - return toupper(c); -} - -/* memory allocation functions */ -_X_EXPORT void* -xf86calloc(xf86size_t sz,xf86size_t n) -{ - return xcalloc(sz, n); -} - -_X_EXPORT void -xf86free(void* p) -{ - xfree(p); -} - -_X_EXPORT double -xf86frexp(double x, int *exp) -{ - return frexp(x, exp); -} - -_X_EXPORT void* -xf86malloc(xf86size_t n) -{ - return xalloc(n); -} - -_X_EXPORT void* -xf86realloc(void* p, xf86size_t n) -{ - return xrealloc(p,n); -} - -/* - * XXX This probably doesn't belong here. - */ -_X_EXPORT int -xf86getpagesize() -{ - static int pagesize = -1; - - if (pagesize != -1) - return pagesize; - -#if defined(_SC_PAGESIZE) || defined(HAS_SC_PAGESIZE) - pagesize = sysconf(_SC_PAGESIZE); -#endif -#ifdef _SC_PAGE_SIZE - if (pagesize == -1) - pagesize = sysconf(_SC_PAGE_SIZE); -#endif -#ifdef HAS_GETPAGESIZE - if (pagesize == -1) - pagesize = getpagesize(); -#endif -#ifdef PAGE_SIZE - if (pagesize == -1) - pagesize = PAGE_SIZE; -#endif - if (pagesize == -1) - FatalError("xf86getpagesize: Cannot determine page size"); - - return pagesize; -} - - -#define mapnum(e) case (e): return (xf86_##e) - -_X_EXPORT int -xf86GetErrno () -{ - switch (errno) - { - case 0: return 0; - mapnum (EACCES); - mapnum (EAGAIN); - mapnum (EBADF); - mapnum (EEXIST); - mapnum (EFAULT); - mapnum (EINTR); - mapnum (EINVAL); - mapnum (EISDIR); - mapnum (ELOOP); /* not POSIX 1 */ - mapnum (EMFILE); - mapnum (ENAMETOOLONG); - mapnum (ENFILE); - mapnum (ENOENT); - mapnum (ENOMEM); - mapnum (ENOSPC); - mapnum (ENOTDIR); - mapnum (EPIPE); - mapnum (EROFS); - mapnum (ETXTBSY); /* not POSIX 1 */ - mapnum (ENOTTY); -#ifdef ENOSYS - mapnum (ENOSYS); -#endif - mapnum (EBUSY); - mapnum (ENODEV); - mapnum (EIO); -#ifdef ESRCH - mapnum (ESRCH); -#endif -#ifdef ENXIO - mapnum (ENXIO); -#endif -#ifdef E2BIG - mapnum (E2BIG); -#endif -#ifdef ENOEXEC - mapnum (ENOEXEC); -#endif -#ifdef ECHILD - mapnum (ECHILD); -#endif -#ifdef ENOTBLK - mapnum (ENOTBLK); -#endif -#ifdef EXDEV - mapnum (EXDEV); -#endif -#ifdef EFBIG - mapnum (EFBIG); -#endif -#ifdef ESPIPE - mapnum (ESPIPE); -#endif -#ifdef EMLINK - mapnum (EMLINK); -#endif -#ifdef EDOM - mapnum (EDOM); -#endif -#ifdef ERANGE - mapnum (ERANGE); -#endif - default: - return (xf86_UNKNOWN); - } -} - -#undef mapnum - - - -#ifdef HAVE_SYSV_IPC - -_X_EXPORT int -xf86shmget(xf86key_t key, int size, int xf86shmflg) -{ - int shmflg; - int ret; - - /* This copies the permissions (SHM_R, SHM_W for u, g, o). */ - shmflg = xf86shmflg & 0777; - - if (key == XF86IPC_PRIVATE) key = IPC_PRIVATE; - - if (xf86shmflg & XF86IPC_CREAT) shmflg |= IPC_CREAT; - if (xf86shmflg & XF86IPC_EXCL) shmflg |= IPC_EXCL; - if (xf86shmflg & XF86IPC_NOWAIT) shmflg |= IPC_NOWAIT; - ret = shmget((key_t) key, size, shmflg); - - if (ret == -1) - xf86errno = xf86GetErrno(); - - return ret; -} - -_X_EXPORT char * -xf86shmat(int id, char *addr, int xf86shmflg) -{ - int shmflg = 0; - pointer ret; - -#ifdef SHM_RDONLY - if (xf86shmflg & XF86SHM_RDONLY) shmflg |= SHM_RDONLY; -#endif -#ifdef SHM_RND - if (xf86shmflg & XF86SHM_RND) shmflg |= SHM_RND; -#endif -#ifdef SHM_REMAP - if (xf86shmflg & XF86SHM_REMAP) shmflg |= SHM_REMAP; -#endif - - ret = shmat(id,addr,shmflg); - - if (ret == (pointer) -1) - xf86errno = xf86GetErrno(); - - return ret; -} - -_X_EXPORT int -xf86shmdt(char *addr) -{ - int ret; - - ret = shmdt(addr); - - if (ret == -1) - xf86errno = xf86GetErrno(); - - return ret; -} - -/* - * for now only implement the rmid command. - */ -_X_EXPORT int -xf86shmctl(int id, int xf86cmd, pointer buf) -{ - int cmd; - int ret; - - switch (xf86cmd) { - case XF86IPC_RMID: - cmd = IPC_RMID; - break; - default: - return 0; - } - - ret = shmctl(id, cmd, buf); - - if (ret == -1) - xf86errno = xf86GetErrno(); - - return ret; -} -#else - -int -xf86shmget(xf86key_t key, int size, int xf86shmflg) -{ - xf86errno = ENOSYS; - - return -1; -} - -char * -xf86shmat(int id, char *addr, int xf86shmflg) -{ - xf86errno = ENOSYS; - - return (char *)-1; -} - -int -xf86shmctl(int id, int xf86cmd, pointer buf) -{ - xf86errno = ENOSYS; - - return -1; -} - -int -xf86shmdt(char *addr) -{ - xf86errno = ENOSYS; - - return -1; -} -#endif /* HAVE_SYSV_IPC */ - -_X_EXPORT int -xf86getjmptype() -{ -#ifdef HAS_GLIBC_SIGSETJMP - return 1; -#else - return 0; -#endif -} - -#ifdef HAS_GLIBC_SIGSETJMP - -_X_EXPORT int -xf86setjmp(xf86jmp_buf env) -{ -#if defined(__GLIBC__) && (__GLIBC__ >= 2) - return __sigsetjmp((void *)env, xf86setjmp1_arg2()); -#else - return xf86setjmp1(env, xf86setjmp1_arg2()); -#endif -} - -_X_EXPORT int -xf86setjmp0(xf86jmp_buf env) -{ - FatalError("setjmp: type 0 called instead of type %d", xf86getjmptype()); -} - -#if !defined(__GLIBC__) || (__GLIBC__ < 2) /* libc5 */ - -_X_EXPORT int -xf86setjmp1(xf86jmp_buf env, int arg2) -{ - __sigjmp_save((void *)env, arg2); - return __setjmp((void *)env); -} - -#endif - -#else /* HAS_GLIBC_SIGSETJMP */ - -int -xf86setjmp1(xf86jmp_buf env, int arg2) -{ - FatalError("setjmp: type 1 called instead of type %d", xf86getjmptype()); -} - -int -xf86setjmp0(xf86jmp_buf env) -{ - return setjmp((void *)env); -} - -#endif /* HAS_GLIBC_SIGSETJMP */ - -_X_EXPORT int -xf86setjmp1_arg2() -{ - return 1; -} - -_X_EXPORT int -xf86setjmperror(xf86jmp_buf env) -{ - FatalError("setjmp: don't know how to handle setjmp() type %d", - xf86getjmptype()); -} - -long -xf86random() -{ - return random(); -} diff --git a/hw/xfree86/os-support/solaris/Makefile.am b/hw/xfree86/os-support/solaris/Makefile.am index 5ed60bc55..68f6b4cd0 100644 --- a/hw/xfree86/os-support/solaris/Makefile.am +++ b/hw/xfree86/os-support/solaris/Makefile.am @@ -20,7 +20,6 @@ solaris-@SOLARIS_INOUT_ARCH@.il: solaris-@SOLARIS_INOUT_ARCH@.S noinst_LTLIBRARIES = libsolaris.la libsolaris_la_SOURCES = sun_bios.c sun_init.c \ sun_mouse.c sun_vid.c sun_bell.c $(AGP_SRC) sun_apm.c \ - $(srcdir)/../shared/libc_wrapper.c \ $(srcdir)/../shared/kmod_noop.c \ $(srcdir)/../shared/posix_tty.c $(srcdir)/../shared/sigiostubs.c \ $(srcdir)/../shared/stdResource.c \ diff --git a/hw/xfree86/os-support/solaris/sun_bios.c b/hw/xfree86/os-support/solaris/sun_bios.c index 1223dcd68..a27a5a5a7 100644 --- a/hw/xfree86/os-support/solaris/sun_bios.c +++ b/hw/xfree86/os-support/solaris/sun_bios.c @@ -26,7 +26,7 @@ #include <xorg-config.h> #endif -#ifdef __i386__ +#if defined(__i386__) || defined(__i386) #define _NEED_SYSI86 #endif #include "xf86.h" @@ -62,11 +62,11 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf, * * Use /dev/xsvc for everything. */ - psize = xf86getpagesize(); + psize = getpagesize(); Offset += Base & (psize - 1); Base &= ~(psize - 1); mlen = (Offset + Len + psize - 1) & ~(psize - 1); -#if defined(__i386__) && !defined(__SOL8__) +#if (defined(__i386__) || defined(__i386)) && !defined(__SOL8__) if (Base >= 0xA0000 && Base + mlen < 0xFFFFF && xf86Info.vtno >= 0) sprintf(solx86_vtname, "/dev/vt%02d", xf86Info.vtno); else diff --git a/hw/xfree86/os-support/solaris/sun_init.c b/hw/xfree86/os-support/solaris/sun_init.c index c7fac524f..1f389cb40 100644 --- a/hw/xfree86/os-support/solaris/sun_init.c +++ b/hw/xfree86/os-support/solaris/sun_init.c @@ -29,7 +29,7 @@ #include "xf86.h" #include "xf86Priv.h" #include "xf86_OSlib.h" -#if defined(__i386__) || defined(__x86) +#if defined(__i386__) || defined(__i386) || defined(__x86) # include <sys/kd.h> #endif @@ -40,7 +40,7 @@ static int VTnum = -1; static int xf86StartVT = -1; #endif -#if defined(__SOL8__) || !defined(__i386__) +#if defined(__SOL8__) || (!defined(__i386__) && !defined(__i386)) static char fb_dev[PATH_MAX] = "/dev/fb"; #else static char fb_dev[PATH_MAX] = "/dev/console"; @@ -209,11 +209,8 @@ xf86CloseConsole(void) #ifdef HAS_USL_VTS struct vt_mode VT; #endif -#if defined(__SOL8__) || !defined(__i386__) - int tmp; -#endif -#if !defined(__i386__) && !defined(__x86) +#if !defined(__i386__) && !defined(__i386) && !defined(__x86) if (!xf86DoProbe && !xf86DoConfigure) { int fd; @@ -332,7 +329,7 @@ xf86ProcessArgument(int argc, char **argv, int i) #endif /* HAS_USL_VTS */ -#if defined(__SOL8__) || !defined(__i386__) +#if defined(__SOL8__) || (!defined(__i386__) && !defined(__i386)) if ((i + 1) < argc) { if (!strcmp(argv[i], "-dev")) { diff --git a/hw/xfree86/os-support/solaris/sun_vid.c b/hw/xfree86/os-support/solaris/sun_vid.c index 494b2cfbf..e7b529ccb 100644 --- a/hw/xfree86/os-support/solaris/sun_vid.c +++ b/hw/xfree86/os-support/solaris/sun_vid.c @@ -28,7 +28,7 @@ #include <sys/types.h> /* get __x86 definition if not set by compiler */ -#if defined(__i386__) || defined(__x86) +#if defined(__i386__) || defined(__i386) || defined(__x86) #define _NEED_SYSI86 #endif #include "xf86.h" @@ -148,14 +148,14 @@ xf86UnMapVidMem(int ScreenNum, pointer Base, unsigned long Size) /* I/O Permissions section */ /***************************************************************************/ -#if defined(__i386__) || defined(__x86) +#if defined(__i386__) || defined(__i386) || defined(__x86) static Bool ExtendedEnabled = FALSE; #endif _X_EXPORT Bool xf86EnableIO(void) { -#if defined(__i386__) || defined(__x86) +#if defined(__i386__) || defined(__i386) || defined(__x86) if (ExtendedEnabled) return TRUE; @@ -171,7 +171,7 @@ xf86EnableIO(void) _X_EXPORT void xf86DisableIO(void) { -#if defined(__i386__) || defined(__x86) +#if defined(__i386__) || defined(__i386) || defined(__x86) if(!ExtendedEnabled) return; @@ -188,7 +188,7 @@ xf86DisableIO(void) _X_EXPORT Bool xf86DisableInterrupts(void) { -#if defined(__i386__) || defined(__x86) +#if defined(__i386__) || defined(__i386) || defined(__x86) if (!ExtendedEnabled && (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) < 0)) return FALSE; @@ -207,7 +207,7 @@ _X_EXPORT Bool xf86DisableInterrupts(void) _X_EXPORT void xf86EnableInterrupts(void) { -#if defined(__i386__) || defined(__x86) +#if defined(__i386__) || defined(__i386) || defined(__x86) if (!ExtendedEnabled && (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) < 0)) return; diff --git a/hw/xfree86/os-support/xf86_OSlib.h b/hw/xfree86/os-support/xf86_OSlib.h index 662dbaace..aba47581f 100644 --- a/hw/xfree86/os-support/xf86_OSlib.h +++ b/hw/xfree86/os-support/xf86_OSlib.h @@ -76,21 +76,6 @@ #include <X11/Xos.h> #include <X11/Xfuncproto.h> -/* - * Define some things from the "ANSI" C wrappers that are needed in the - * the core server. - */ -#ifndef HAVE_WRAPPER_DECLS -#define HAVE_WRAPPER_DECLS -#undef usleep -#define usleep(a) xf86usleep(a) -extern void xf86usleep(unsigned long); -extern int xf86getpagesize(void); -extern int xf86GetErrno(void); -typedef unsigned long xf86size_t; -typedef signed long xf86ssize_t; -#endif - #include <stdio.h> #include <ctype.h> #include <stddef.h> @@ -140,7 +125,7 @@ typedef signed long xf86ssize_t; # endif /* SVR4 && !sun */ /* V86SC_IOPL was moved to <sys/sysi86.h> on Solaris 7 and later */ # if defined(sun) && defined (SVR4) /* Solaris? */ -# if defined(__i386__) || defined(__x86) /* on x86 or x64? */ +# if defined(__i386__) || defined(__i386) || defined(__x86) /* on x86 or x64? */ # if !defined(V86SC_IOPL) /* Solaris 7 or later? */ # include <sys/v86.h> /* Nope */ # endif @@ -148,7 +133,7 @@ typedef signed long xf86ssize_t; # else # include <sys/v86.h> /* Not solaris */ # endif /* sun && i386 && SVR4 */ -# if defined(sun) && (defined (__i386__) || defined(__x86)) && defined (SVR4) +# if defined(sun) && (defined (__i386__) || defined(__i386) || defined(__x86)) && defined (SVR4) # include <sys/psw.h> # endif # endif /* _NEED_SYSI86 */ @@ -224,7 +209,7 @@ typedef signed long xf86ssize_t; # define POSIX_TTY # endif -# if defined(sun) && defined (__i386__) && defined (SVR4) && !defined(__SOL8__) +# if defined(sun) && (defined (__i386__) || defined(__i386)) && defined (SVR4) && !defined(__SOL8__) # define USE_VT_SYSREQ # define VT_SYSREQ_DEFAULT TRUE # endif diff --git a/hw/xfree86/os-support/xf86_ansic.h b/hw/xfree86/os-support/xf86_ansic.h deleted file mode 100644 index 0afd96744..000000000 --- a/hw/xfree86/os-support/xf86_ansic.h +++ /dev/null @@ -1,314 +0,0 @@ -/* - * Copyright 1997-2003 by The XFree86 Project, Inc - * - * 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, and that the names of the above listed copyright holders - * not be used in advertising or publicity pertaining to distribution of - * the software without specific, written prior permission. The above listed - * copyright holders make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE - * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY - * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING - * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -#ifndef _XF86_ANSIC_H -#define _XF86_ANSIC_H - -#include <stdarg.h> - -/* - * The first set of definitions are required both for modules and - * libc_wrapper.c. - */ - -#if !defined(SYSV) && !defined(SVR4) && !defined(Lynx) || \ - defined(__SCO__) || defined(__UNIXWARE__) -#define HAVE_VSSCANF -#define HAVE_VFSCANF -#endif - -#ifndef NULL -#if (defined(SVR4) || defined(SYSV)) && !defined(__GNUC__) -#define NULL 0 -#else -#define NULL ((void *)0) -#endif -#endif -#ifndef EOF -#define EOF (-1) -#endif - -#ifndef PATH_MAX -#define PATH_MAX 1024 -#endif - -/* <limits.h> stuff */ -#define x_BITSPERBYTE 8 -#define x_BITS(type) (x_BITSPERBYTE * (int)sizeof(type)) -#define x_SHORTBITS x_BITS(short) -#define x_INTBITS x_BITS(int) -#define x_LONGBITS x_BITS(long) -#ifndef SHRT_MIN -#define SHRT_MIN ((short)(1 << (x_SHORTBITS - 1))) -#endif - -#ifndef FONTMODULE -#include "misc.h" -#endif -#include "xf86_libc.h" -#ifndef SHRT_MAX -#define SHRT_MAX ((short)~SHRT_MIN) -#endif -#ifndef USHRT_MAX -#define USHRT_MAX ((unsigned short)~0) -#endif -#ifndef MINSHORT -#define MINSHORT SHRT_MIN -#endif -#ifndef MAXSHORT -#define MAXSHORT SHRT_MAX -#endif -#ifndef INT_MIN -#define INT_MIN (1 << (x_INTBITS - 1)) -#endif -#ifndef INT_MAX -#define INT_MAX (~INT_MIN) -#endif -#ifndef UINT_MAX -#define UINT_MAX (~0) -#endif -#ifndef MININT -#define MININT INT_MIN -#endif -#ifndef MAXINT -#define MAXINT INT_MAX -#endif -#ifndef LONG_MIN -#define LONG_MIN ((long)(1 << (x_LONGBITS - 1))) -#endif -#ifndef LONG_MAX -#define LONG_MAX ((long)~LONG_MIN) -#endif -#ifndef ULONG_MAX -#define ULONG_MAX ((unsigned long)~0UL) -#endif -#ifndef MINLONG -#define MINLONG LONG_MIN -#endif -#ifndef MAXLONG -#define MAXLONG LONG_MAX -#endif - -/* - * ANSI C compilers only. - */ - -/* ANSI C emulation library */ - -extern void xf86abort(void); -extern int xf86abs(int); -extern double xf86acos(double); -extern double xf86asin(double); -extern double xf86atan(double); -extern double xf86atan2(double,double); -extern double xf86atof(const char*); -extern int xf86atoi(const char*); -extern long xf86atol(const char*); -extern void *xf86bsearch(const void *, const void *, xf86size_t, xf86size_t, - int (*)(const void *, const void *)); -extern double xf86ceil(double); -extern void* xf86calloc(xf86size_t,xf86size_t); -extern void xf86clearerr(XF86FILE*); -extern double xf86cos(double); -extern void xf86exit(int); -extern double xf86exp(double); -extern double xf86fabs(double); -extern int xf86fclose(XF86FILE*); -extern int xf86feof(XF86FILE*); -extern int xf86ferror(XF86FILE*); -extern int xf86fflush(XF86FILE*); -extern int xf86fgetc(XF86FILE*); -extern int xf86getc(XF86FILE*); -extern int xf86fgetpos(XF86FILE*,XF86fpos_t*); -extern char* xf86fgets(char*,INT32,XF86FILE*); -extern int xf86finite(double); -extern double xf86floor(double); -extern double xf86fmod(double,double); -extern XF86FILE* xf86fopen(const char*,const char*); -extern double xf86frexp(double, int*); -extern int xf86printf(const char*,...); -extern int xf86fprintf(XF86FILE*,const char*,...); -extern int xf86fputc(int,XF86FILE*); -extern int xf86fputs(const char*,XF86FILE*); -extern xf86size_t xf86fread(void*,xf86size_t,xf86size_t,XF86FILE*); -extern void xf86free(void*); -extern XF86FILE* xf86freopen(const char*,const char*,XF86FILE*); -#if defined(HAVE_VFSCANF) || !defined(NEED_XF86_PROTOTYPES) -extern int xf86fscanf(XF86FILE*,const char*,...); -#else -extern int xf86fscanf(/*XF86FILE*,const char*,char *,char *,char *,char *, - char *,char *,char *,char *,char *,char * */); -#endif -extern int xf86fseek(XF86FILE*,long,int); -extern int xf86fsetpos(XF86FILE*,const XF86fpos_t*); -extern long xf86ftell(XF86FILE*); -extern xf86size_t xf86fwrite(const void*,xf86size_t,xf86size_t,XF86FILE*); -extern char* xf86getenv(const char*); -extern int xf86isalnum(int); -extern int xf86isalpha(int); -extern int xf86iscntrl(int); -extern int xf86isdigit(int); -extern int xf86isgraph(int); -extern int xf86islower(int); -extern int xf86isprint(int); -extern int xf86ispunct(int); -extern int xf86isspace(int); -extern int xf86isupper(int); -extern int xf86isxdigit(int); -extern long xf86labs(long); -extern double xf86ldexp(double,int); -extern double xf86log(double); -extern double xf86log10(double); -extern void* xf86malloc(xf86size_t); -extern void* xf86memchr(const void*,int,xf86size_t); -extern int xf86memcmp(const void*,const void*,xf86size_t); -extern void* xf86memcpy(void*,const void*,xf86size_t); -extern void* xf86memmove(void*,const void*,xf86size_t); -extern void* xf86memset(void*,int,xf86size_t); -extern double xf86modf(double,double*); -extern void xf86perror(const char*); -extern double xf86pow(double,double); -extern void xf86qsort(void*, xf86size_t, xf86size_t, - int(*)(const void*, const void*)); -extern void* xf86realloc(void*,xf86size_t); -extern long xf86random(void); -extern int xf86remove(const char*); -extern int xf86rename(const char*,const char*); -extern void xf86rewind(XF86FILE*); -extern int xf86setbuf(XF86FILE*,char*); -extern int xf86setvbuf(XF86FILE*,char*,int,xf86size_t); -extern double xf86sin(double); -extern int xf86sprintf(char*,const char*,...); -extern int xf86snprintf(char*,xf86size_t,const char*,...); -extern double xf86sqrt(double); -#if defined(HAVE_VSSCANF) || !defined(NEED_XF86_PROTOTYPES) -extern int xf86sscanf(char*,const char*,...); -#else -extern int xf86sscanf(/*char*,const char*,char *,char *,char *,char *, - char *,char *,char *,char *,char *,char * */); -#endif -extern char* xf86strcat(char*,const char*); -extern char* xf86strchr(const char*, int c); -extern int xf86strcmp(const char*,const char*); -extern int xf86strcasecmp(const char*,const char*); -extern char* xf86strcpy(char*,const char*); -extern xf86size_t xf86strcspn(const char*,const char*); -extern char* xf86strerror(int); -extern xf86size_t xf86strlcat(char*,const char*,xf86size_t); -extern xf86size_t xf86strlcpy(char*,const char*,xf86size_t); -extern xf86size_t xf86strlen(const char*); -extern char* xf86strncat(char *, const char *, xf86size_t); -extern int xf86strncmp(const char*,const char*,xf86size_t); -extern int xf86strncasecmp(const char*,const char*,xf86size_t); -extern char* xf86strncpy(char*,const char*,xf86size_t); -extern char* xf86strpbrk(const char*,const char*); -extern char* xf86strrchr(const char*,int); -extern xf86size_t xf86strspn(const char*,const char*); -extern char* xf86strstr(const char*,const char*); -extern double xf86strtod(const char*,char**); -extern char* xf86strtok(char*,const char*); -extern long xf86strtol(const char*,char**,int); -extern unsigned long xf86strtoul(const char*,char**,int); -extern double xf86tan(double); -extern XF86FILE* xf86tmpfile(void); -extern char* xf86tmpnam(char*); -extern int xf86tolower(int); -extern int xf86toupper(int); -extern int xf86ungetc(int,XF86FILE*); -extern int xf86vfprintf(XF86FILE*,const char*,va_list); -extern int xf86vsprintf(char*,const char*,va_list); -extern int xf86vsnprintf(char*,xf86size_t,const char*,va_list); - -extern int xf86open(const char*, int,...); -extern int xf86close(int); -extern long xf86lseek(int, long, int); -extern int xf86ioctl(int, unsigned long, pointer); -extern xf86ssize_t xf86read(int, void *, xf86size_t); -extern xf86ssize_t xf86write(int, const void *, xf86size_t); -extern void* xf86mmap(void*, xf86size_t, int, int, int, xf86size_t /* off_t */); -extern int xf86munmap(void*, xf86size_t); -extern int xf86stat(const char *, struct xf86stat *); -extern int xf86fstat(int, struct xf86stat *); -extern int xf86access(const char *, int); -extern int xf86errno; -extern int xf86GetErrno(void); - -extern double xf86HUGE_VAL; - -extern double xf86hypot(double,double); - -/* non-ANSI C functions */ -extern XF86DIR* xf86opendir(const char*); -extern int xf86closedir(XF86DIR*); -extern XF86DIRENT* xf86readdir(XF86DIR*); -extern void xf86rewinddir(XF86DIR*); -extern void xf86bcopy(const void*,void*,xf86size_t); -extern int xf86ffs(int); -extern char* xf86strdup(const char*); -extern void xf86bzero(void*,unsigned int); -extern int xf86execl(const char *, const char *, ...); -extern long xf86fpossize(void); -extern int xf86chmod(const char *, xf86mode_t); -extern int xf86chown(const char *, xf86uid_t, xf86gid_t); -extern xf86uid_t xf86geteuid(void); -extern xf86gid_t xf86getegid(void); -extern int xf86getpid(void); -extern int xf86mknod(const char *, xf86mode_t, xf86dev_t); -extern int xf86mkdir(const char *, xf86mode_t); -unsigned int xf86sleep(unsigned int seconds); -/* sysv IPC */ -extern int xf86shmget(xf86key_t key, int size, int xf86shmflg); -extern char * xf86shmat(int id, char *addr, int xf86shmflg); -extern int xf86shmdt(char *addr); -extern int xf86shmctl(int id, int xf86cmd, pointer buf); - -extern int xf86setjmp(xf86jmp_buf env); -extern int xf86setjmp0(xf86jmp_buf env); -extern int xf86setjmp1(xf86jmp_buf env, int); -extern int xf86setjmp1_arg2(void); -extern int xf86setjmperror(xf86jmp_buf env); -extern int xf86getjmptype(void); -extern void xf86longjmp(xf86jmp_buf env, int val); -#define xf86setjmp_macro(env) \ - (xf86getjmptype() == 0 ? xf86setjmp0((env)) : \ - (xf86getjmptype() == 1 ? xf86setjmp1((env), xf86setjmp1_arg2()) : \ - xf86setjmperror((env)))) - -/* - * These things are always required by drivers (but not by libc_wrapper.c), - * even for a static server because some OSs don't provide them. - */ - -extern int xf86getpagesize(void); -extern void xf86usleep(unsigned long); -extern void xf86getsecs(long *, long *); -#ifndef DONT_DEFINE_WRAPPERS -#undef getpagesize -#define getpagesize() xf86getpagesize() -#undef usleep -#define usleep(ul) xf86usleep(ul) -#undef getsecs -#define getsecs(a, b) xf86getsecs(a, b) -#endif -#endif /* _XF86_ANSIC_H */ diff --git a/hw/xfree86/os-support/xf86_libc.h b/hw/xfree86/os-support/xf86_libc.h deleted file mode 100644 index 199fcd6b9..000000000 --- a/hw/xfree86/os-support/xf86_libc.h +++ /dev/null @@ -1,721 +0,0 @@ -/* - * Copyright (c) 1997-2003 by The XFree86 Project, 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 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 holder(s) - * and author(s) 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 holder(s) and author(s). - */ - -/* - * This file is an attempt to make developing code for the new loadable module - * architecure simpler. It tries to use macros to hide all libc wrappers so - * that all that is needed to "port" a module to this architecture is to - * include this one header file - * - * Revision history: - * - * - * 0.4 Apr 12 1997 add the ANSI defines - * 0.3 Feb 24 1997 handle getenv - * 0.2 Feb 24 1997 hide few FILE functions - * 0.1 Feb 24 1997 hide the trivial functions mem* str* - */ - -#ifndef XF86_LIBC_H -#define XF86_LIBC_H 1 - -#include <X11/Xfuncs.h> -#include <stddef.h> - -/* - * The first set of definitions are required both for modules and - * libc_wrapper.c. - */ - -/* - * First, the new data types - * - * note: if some pointer is declared "opaque" here, pass it between - * xf86* functions only, and don't rely on it having a whatever internal - * structure, even if some source file might reveal the existence of - * such a structure. - */ -typedef void XF86FILE; /* opaque FILE replacement */ -extern XF86FILE* xf86stdin; -extern XF86FILE* xf86stdout; -extern XF86FILE* xf86stderr; - -typedef void XF86fpos_t; /* opaque fpos_t replacement */ - -#define _XF86NAMELEN 263 /* enough for a larger filename */ - /* (divisble by 8) */ -typedef void XF86DIR; /* opaque DIR replacement */ - -/* Note: the following is POSIX! POSIX only requires the d_name member. - * Normal Unix has often a number of other members, but don't rely on that - */ -struct _xf86dirent { /* types in struct dirent/direct: */ - char d_name[_XF86NAMELEN+1]; /* char [MAXNAMLEN]; might be smaller or unaligned */ -}; -typedef struct _xf86dirent XF86DIRENT; - -typedef unsigned long xf86size_t; -typedef signed long xf86ssize_t; -typedef unsigned long xf86dev_t; -typedef unsigned int xf86mode_t; -typedef unsigned int xf86uid_t; -typedef unsigned int xf86gid_t; - -struct xf86stat { - xf86dev_t st_rdev; /* This is incomplete, and makes assumptions */ -}; - -/* sysv IPC */ -typedef int xf86key_t; - -/* setjmp/longjmp */ -#if defined(__ia64__) -typedef int xf86jmp_buf[1024] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */ -#else -typedef int xf86jmp_buf[1024]; -#endif - -/* for setvbuf */ -#define XF86_IONBF 1 -#define XF86_IOFBF 2 -#define XF86_IOLBF 3 - -/* for open (XXX not complete) */ -#define XF86_O_RDONLY 0x0000 -#define XF86_O_WRONLY 0x0001 -#define XF86_O_RDWR 0x0002 -#define XF86_O_CREAT 0x0200 - -/* for mmap */ -#define XF86_PROT_EXEC 0x0001 -#define XF86_PROT_READ 0x0002 -#define XF86_PROT_WRITE 0x0004 -#define XF86_PROT_NONE 0x0008 -#define XF86_MAP_FIXED 0x0001 -#define XF86_MAP_SHARED 0x0002 -#define XF86_MAP_PRIVATE 0x0004 -#define XF86_MAP_32BIT 0x0040 -#define XF86_MAP_FAILED ((void *)-1) - -/* for fseek */ -#define XF86_SEEK_SET 0 -#define XF86_SEEK_CUR 1 -#define XF86_SEEK_END 2 - -/* for access */ -#define XF86_R_OK 0 -#define XF86_W_OK 1 -#define XF86_X_OK 2 -#define XF86_F_OK 3 - -/* for chmod */ -#define XF86_S_ISUID 04000 /* set user ID on execution */ -#define XF86_S_ISGID 02000 /* set group ID on execution */ -#define XF86_S_ISVTX 01000 /* sticky bit */ -#define XF86_S_IRUSR 00400 /* read by owner */ -#define XF86_S_IWUSR 00200 /* write by owner */ -#define XF86_S_IXUSR 00100 /* execute/search by owner */ -#define XF86_S_IRGRP 00040 /* read by group */ -#define XF86_S_IWGRP 00020 /* write by group */ -#define XF86_S_IXGRP 00010 /* execute/search by group */ -#define XF86_S_IROTH 00004 /* read by others */ -#define XF86_S_IWOTH 00002 /* write by others */ -#define XF86_S_IXOTH 00001 /* execute/search by others */ - -/* for mknod */ -#define XF86_S_IFREG 0010000 -#define XF86_S_IFCHR 0020000 -#define XF86_S_IFBLK 0040000 -#define XF86_S_IFIFO 0100000 - -/* - * errno values - * They start at 1000 just so they don't match real errnos at all - */ -#define xf86_UNKNOWN 1000 -#define xf86_EACCES 1001 -#define xf86_EAGAIN 1002 -#define xf86_EBADF 1003 -#define xf86_EEXIST 1004 -#define xf86_EFAULT 1005 -#define xf86_EINTR 1006 -#define xf86_EINVAL 1007 -#define xf86_EISDIR 1008 -#define xf86_ELOOP 1009 -#define xf86_EMFILE 1010 -#define xf86_ENAMETOOLONG 1011 -#define xf86_ENFILE 1012 -#define xf86_ENOENT 1013 -#define xf86_ENOMEM 1014 -#define xf86_ENOSPC 1015 -#define xf86_ENOTDIR 1016 -#define xf86_EPIPE 1017 -#define xf86_EROFS 1018 -#define xf86_ETXTBSY 1019 -#define xf86_ENOTTY 1020 -#define xf86_ENOSYS 1021 -#define xf86_EBUSY 1022 -#define xf86_ENODEV 1023 -#define xf86_EIO 1024 - -#define xf86_ESRCH 1025 -#define xf86_ENXIO 1026 -#define xf86_E2BIG 1027 -#define xf86_ENOEXEC 1028 -#define xf86_ECHILD 1029 -#define xf86_ENOTBLK 1030 -#define xf86_EXDEV 1031 -#define xf86_EFBIG 1032 -#define xf86_ESPIPE 1033 -#define xf86_EMLINK 1034 -#define xf86_EDOM 1035 -#define xf86_ERANGE 1036 - - -/* sysv IPV */ -/* xf86shmget() */ -#define XF86IPC_CREAT 01000 -#define XF86IPC_EXCL 02000 -#define XF86IPC_NOWAIT 04000 -#define XF86SHM_R 0400 -#define XF86SHM_W 0200 -#define XF86IPC_PRIVATE ((xf86key_t)0) -/* xf86shmat() */ -#define XF86SHM_RDONLY 010000 /* attach read-only else read-write */ -#define XF86SHM_RND 020000 /* round attach address to SHMLBA */ -#define XF86SHM_REMAP 040000 /* take-over region on attach */ -/* xf86shmclt() */ -#define XF86IPC_RMID 0 - -/* - * the rest of this file should only be included for code that is supposed - * to go into modules - */ - -#if !defined(DONT_DEFINE_WRAPPERS) - -#undef abort -#define abort() xf86abort() -#undef abs -#define abs(i) xf86abs(i) -#undef acos -#define acos(d) xf86acos(d) -#undef asin -#define asin(d) xf86asin(d) -#undef atan -#define atan(d) xf86atan(d) -#undef atan2 -#define atan2(d1,d2) xf86atan2(d1,d2) -#undef atof -#define atof(ccp) xf86atof(ccp) -#undef atoi -#define atoi(ccp) xf86atoi(ccp) -#undef atol -#define atol(ccp) xf86atol(ccp) -#undef bsearch -#define bsearch(a,b,c,d,e) xf86bsearch(a,b,c,d,e) -#undef ceil -#define ceil(d) xf86ceil(d) -#undef calloc -#define calloc(I1,I2) xf86calloc(I1,I2) -#undef clearerr -#define clearerr(FP) xf86clearerr(FP) -#undef cos -#define cos(d) xf86cos(d) -#undef exit -#define exit(i) xf86exit(i) -#undef exp -#define exp(d) xf86exp(d) -#undef fabs -#define fabs(d) xf86fabs(d) -#undef fclose -#define fclose(FP) xf86fclose(FP) -#undef feof -#define feof(FP) xf86feof(FP) -#undef ferror -#define ferror(FP) xf86ferror(FP) -#undef fflush -#define fflush(FP) xf86fflush(FP) -#undef fgetc -#define fgetc(FP) xf86fgetc(FP) -#undef getc -#define getc(FP) xf86getc(FP) -#undef fgetpos -#define fgetpos(FP,fpp) xf86fgetpos(FP,fpp) -#undef fgets -#define fgets(cp,i,FP) xf86fgets(cp,i,FP) -#undef finite -#define finite(d) xf86finite(d) -#undef floor -#define floor(d) xf86floor(d) -#undef fmod -#define fmod(d1,d2) xf86fmod(d1,d2) -#undef fopen -#define fopen(ccp1,ccp2) xf86fopen(ccp1,ccp2) -#undef printf -#define printf xf86printf -#undef fprintf -#define fprintf xf86fprintf -#undef fputc -#define fputc(i,FP) xf86fputc(i,FP) -#undef fputs -#define fputs(ccp,FP) xf86fputs(ccp,FP) -#undef fread -#define fread(vp,I1,I2,FP) xf86fread(vp,I1,I2,FP) -#undef free -#define free(vp) xf86free(vp) -#undef freopen -#define freopen(ccp1,ccp2,FP) xf86freopen(ccp1,ccp2,FP) -#undef frexp -#define frexp(x,exp) xf86frexp(x,exp) -#undef fscanf -#define fscanf xf86fscanf -#undef fseek -#define fseek(FP,l,i) xf86fseek(FP,l,i) -#undef fsetpos -#define fsetpos(FP,cfpp) xf86fsetpos(FP,cfpp) -#undef ftell -#define ftell(FP) xf86ftell(FP) -#undef fwrite -#define fwrite(cvp,I1,I2,FP) xf86fwrite(cvp,I1,I2,FP) -#undef getenv -#define getenv(ccp) xf86getenv(ccp) -#undef isalnum -#define isalnum(i) xf86isalnum(i) -#undef isalpha -#define isalpha(i) xf86isalpha(i) -#undef iscntrl -#define iscntrl(i) xf86iscntrl(i) -#undef isdigit -#define isdigit(i) xf86isdigit(i) -#undef isgraph -#define isgraph(i) xf86isgraph(i) -#undef islower -#define islower(i) xf86islower(i) -#undef isprint -#define isprint(i) xf86isprint(i) -#undef ispunct -#define ispunct(i) xf86ispunct(i) -#undef isspace -#define isspace(i) xf86isspace(i) -#undef isupper -#define isupper(i) xf86isupper(i) -#undef isxdigit -#define isxdigit(i) xf86isxdigit(i) -#undef labs -#define labs(l) xf86labs(l) -#undef ldexp -#define ldexp(x, exp) xf86ldexp(x, exp) -#undef log -#define log(d) xf86log(d) -#undef log10 -#define log10(d) xf86log10(d) -#undef malloc -#define malloc(I) xf86malloc(I) -#undef memchr -#define memchr(cvp,i,I) xf86memchr(cvp,i,I) -#undef memcmp -#define memcmp(cvp1,cvp2,I) xf86memcmp(cvp1,cvp2,I) -#undef memcpy -#define memcpy(vp,cvp,I) xf86memcpy(vp,cvp,I) -#undef memmove -#define memmove(vp,cvp,I) xf86memmove(vp,cvp,I) -#undef memset -#define memset(vp,int,I) xf86memset(vp,int,I) -#undef modf -#define modf(d,dp) xf86modf(d,dp) -#undef perror -#define perror(ccp) xf86perror(ccp) -#undef pow -#define pow(d1,d2) xf86pow(d1,d2) -#undef random -#define random() xf86random() -#undef realloc -#define realloc(vp,I) xf86realloc(vp,I) -#undef remove -#define remove(ccp) xf86remove(ccp) -#undef rename -#define rename(ccp1,ccp2) xf86rename(ccp1,ccp2) -#undef rewind -#define rewind(FP) xf86rewind(FP) -#undef setbuf -#define setbuf(FP,cp) xf86setbuf(FP,cp) -#undef setvbuf -#define setvbuf(FP,cp,i,I) xf86setvbuf(FP,cp,i,I) -#undef sin -#define sin(d) xf86sin(d) -#undef snprintf -#define snprintf xf86snprintf -#undef sprintf -#define sprintf xf86sprintf -#undef sqrt -#define sqrt(d) xf86sqrt(d) -#undef sscanf -#define sscanf xf86sscanf -#undef strcat -#define strcat(cp,ccp) xf86strcat(cp,ccp) -#undef strcmp -#define strcmp(ccp1,ccp2) xf86strcmp(ccp1,ccp2) -#undef strcasecmp -#define strcasecmp(ccp1,ccp2) xf86strcasecmp(ccp1,ccp2) -#undef strcpy -#define strcpy(cp,ccp) xf86strcpy(cp,ccp) -#undef strcspn -#define strcspn(ccp1,ccp2) xf86strcspn(ccp1,ccp2) -#undef strerror -#define strerror(i) xf86strerror(i) -#undef strlcat -#define strlcat(cp,ccp,I) xf86strlcat(cp,ccp,I) -#undef strlcpy -#define strlcpy(cp,ccp,I) xf86strlcpy(cp,ccp,I) -#undef strlen -#define strlen(ccp) xf86strlen(ccp) -#undef strncmp -#define strncmp(ccp1,ccp2,I) xf86strncmp(ccp1,ccp2,I) -#undef strncasecmp -#define strncasecmp(ccp1,ccp2,I) xf86strncasecmp(ccp1,ccp2,I) -#undef strncpy -#define strncpy(cp,ccp,I) xf86strncpy(cp,ccp,I) -#undef strpbrk -#define strpbrk(ccp1,ccp2) xf86strpbrk(ccp1,ccp2) -#undef strchr -#define strchr(ccp,i) xf86strchr(ccp,i) -#undef strrchr -#define strrchr(ccp,i) xf86strrchr(ccp,i) -#undef strspn -#define strspn(ccp1,ccp2) xf86strspn(ccp1,ccp2) -#undef strstr -#define strstr(ccp1,ccp2) xf86strstr(ccp1,ccp2) -#undef srttod -#define strtod(ccp,cpp) xf86strtod(ccp,cpp) -#undef strtok -#define strtok(cp,ccp) xf86strtok(cp,ccp) -#undef strtol -#define strtol(ccp,cpp,i) xf86strtol(ccp,cpp,i) -#undef strtoul -#define strtoul(ccp,cpp,i) xf86strtoul(ccp,cpp,i) -#undef tan -#define tan(d) xf86tan(d) -#undef tmpfile -#define tmpfile() xf86tmpfile() -#undef tolower -#define tolower(i) xf86tolower(i) -#undef toupper -#define toupper(i) xf86toupper(i) -#undef ungetc -#define ungetc(i,FP) xf86ungetc(i,FP) -#undef vfprintf -#define vfprintf(p,f,a) xf86vfprintf(p,f,a) -#undef vsnprintf -#define vsnprintf(s,n,f,a) xf86vsnprintf(s,n,f,a) -#undef vsprintf -#define vsprintf(s,f,a) xf86vsprintf(s,f,a) -/* XXX Disable assert as if NDEBUG was defined */ -/* Some X headers defined this away too */ -#undef assert -#define assert(a) ((void)0) -#undef HUGE_VAL -#define HUGE_VAL xf86HUGE_VAL - -#undef hypot -#define hypot(x,y) xf86hypot(x,y) - -#undef qsort -#define qsort(b, n, s, f) xf86qsort(b, n, s, f) - -/* non-ANSI C functions */ -#undef opendir -#define opendir(cp) xf86opendir(cp) -#undef closedir -#define closedir(DP) xf86closedir(DP) -#undef readdir -#define readdir(DP) xf86readdir(DP) -#undef rewinddir -#define rewinddir(DP) xf86rewinddir(DP) -#undef bcopy -#define bcopy(vp,cvp,I) xf86memmove(cvp,vp,I) -#undef ffs -#define ffs(i) xf86ffs(i) -#undef strdup -#define strdup(ccp) xf86strdup(ccp) -#undef bzero -#define bzero(vp,ui) xf86bzero(vp,ui) -#undef execl -#define execl xf86execl -#undef chmod -#define chmod(a,b) xf86chmod(a,b) -#undef chown -#define chown(a,b,c) xf86chown(a,b,c) -#undef geteuid -#define geteuid xf86geteuid -#undef getegid -#define getegid xf86getegid -#undef getpid -#define getpid xf86getpid -#undef mknod -#define mknod(a,b,c) xf86mknod(a,b,c) -#undef sleep -#define sleep(a) xf86sleep(a) -#undef mkdir -#define mkdir(a,b) xf86mkdir(a,b) -#undef getpagesize -#define getpagesize xf86getpagesize -#undef shmget -#define shmget(a,b,c) xf86shmget(a,b,c) -#undef shmat -#define shmat(a,b,c) xf86shmat(a,b,c) -#undef shmdt -#define shmdt(a) xf86shmdt(a) -#undef shmctl -#define shmctl(a,b,c) xf86shmctl(a,b,c) - -#undef S_ISUID -#define S_ISUID XF86_S_ISUID -#undef S_ISGID -#define S_ISGID XF86_S_ISGID -#undef S_ISVTX -#define S_ISVTX XF86_S_ISVTX -#undef S_IRUSR -#define S_IRUSR XF86_S_IRUSR -#undef S_IWUSR -#define S_IWUSR XF86_S_IWUSR -#undef S_IXUSR -#define S_IXUSR XF86_S_IXUSR -#undef S_IRGRP -#define S_IRGRP XF86_S_IRGRP -#undef S_IWGRP -#define S_IWGRP XF86_S_IWGRP -#undef S_IXGRP -#define S_IXGRP XF86_S_IXGRP -#undef S_IROTH -#define S_IROTH XF86_S_IROTH -#undef S_IWOTH -#define S_IWOTH XF86_S_IWOTH -#undef S_IXOTH -#define S_IXOTH XF86_S_IXOTH -#undef S_IFREG -#define S_IFREG XF86_S_IFREG -#undef S_IFCHR -#define S_IFCHR XF86_S_IFCHR -#undef S_IFBLK -#define S_IFBLK XF86_S_IFBLK -#undef S_IFIFO -#define S_IFIFO XF86_S_IFIFO - -/* some types */ -#undef FILE -#define FILE XF86FILE -#undef fpos_t -#define fpos_t XF86fpos_t -#undef DIR -#define DIR XF86DIR -#undef DIRENT -#define DIRENT XF86DIRENT -#undef size_t -#define size_t xf86size_t -#undef ssize_t -#define ssize_t xf86ssize_t -#undef dev_t -#define dev_t xf86dev_t -#undef mode_t -#define mode_t xf86mode_t -#undef uid_t -#define uid_t xf86uid_t -#undef gid_t -#define gid_t xf86gid_t -#undef stat_t -#define stat_t struct xf86stat - -#undef ulong -#define ulong unsigned long - -/* - * There should be no need to #undef any of these. If they are already - * defined it is because some illegal header has been included. - */ - -/* some vars */ -#undef stdin -#define stdin xf86stdin -#undef stdout -#define stdout xf86stdout -#undef stderr -#define stderr xf86stderr - -#undef SEEK_SET -#define SEEK_SET XF86_SEEK_SET -#undef SEEK_CUR -#define SEEK_CUR XF86_SEEK_CUR -#undef SEEK_END -#define SEEK_END XF86_SEEK_END - -/* - * XXX Basic I/O functions BAD,BAD,BAD! - */ -#define open xf86open -#define close(a) xf86close(a) -#define lseek(a,b,c) xf86lseek(a,b,c) -#if !defined(__DragonFly__) -#define ioctl(a,b,c) xf86ioctl(a,b,c) -#endif -#define read(a,b,c) xf86read(a,b,c) -#define write(a,b,c) xf86write(a,b,c) -#define mmap(a,b,c,d,e,f) xf86mmap(a,b,c,d,e,f) -#define munmap(a,b) xf86munmap(a,b) -#define stat(a,b) xf86stat(a,b) -#define fstat(a,b) xf86fstat(a,b) -#define access(a,b) xf86access(a,b) -#undef O_RDONLY -#define O_RDONLY XF86_O_RDONLY -#undef O_WRONLY -#define O_WRONLY XF86_O_WRONLY -#undef O_RDWR -#define O_RDWR XF86_O_RDWR -#undef O_CREAT -#define O_CREAT XF86_O_CREAT -#undef PROT_EXEC -#define PROT_EXEC XF86_PROT_EXEC -#undef PROT_READ -#define PROT_READ XF86_PROT_READ -#undef PROT_WRITE -#define PROT_WRITE XF86_PROT_WRITE -#undef PROT_NONE -#define PROT_NONE XF86_PROT_NONE -#undef MAP_FIXED -#define MAP_FIXED XF86_MAP_FIXED -#undef MAP_SHARED -#define MAP_SHARED XF86_MAP_SHARED -#undef MAP_PRIVATE -#define MAP_PRIVATE XF86_MAP_PRIVATE -#undef MAP_FAILED -#define MAP_FAILED XF86_MAP_FAILED -#undef R_OK -#define R_OK XF86_R_OK -#undef W_OK -#define W_OK XF86_W_OK -#undef X_OK -#define X_OK XF86_X_OK -#undef F_OK -#define F_OK XF86_F_OK -#undef errno -#define errno xf86errno -#undef putchar -#define putchar(i) xf86fputc(i, xf86stdout) -#undef puts -#define puts(s) xf86fputs(s, xf86stdout) - -#undef EACCES -#define EACCES xf86_EACCES -#undef EAGAIN -#define EAGAIN xf86_EAGAIN -#undef EBADF -#define EBADF xf86_EBADF -#undef EEXIST -#define EEXIST xf86_EEXIST -#undef EFAULT -#define EFAULT xf86_EFAULT -#undef EINTR -#define EINTR xf86_EINTR -#undef EINVAL -#define EINVAL xf86_EINVAL -#undef EISDIR -#define EISDIR xf86_EISDIR -#undef ELOOP -#define ELOOP xf86_ELOOP -#undef EMFILE -#define EMFILE xf86_EMFILE -#undef ENAMETOOLONG -#define ENAMETOOLONG xf86_ENAMETOOLONG -#undef ENFILE -#define ENFILE xf86_ENFILE -#undef ENOENT -#define ENOENT xf86_ENOENT -#undef ENOMEM -#define ENOMEM xf86_ENOMEM -#undef ENOSPC -#define ENOSPC xf86_ENOSPC -#undef ENOTDIR -#define ENOTDIR xf86_ENOTDIR -#undef EPIPE -#define EPIPE xf86_EPIPE -#undef EROFS -#define EROFS xf86_EROFS -#undef ETXTBSY -#define ETXTBSY xf86_ETXTBSY -#undef ENOTTY -#define ENOTTY xf86_ENOTTY -#undef ENOSYS -#define ENOSYS xf86_ENOSYS -#undef EBUSY -#define EBUSY xf86_EBUSY -#undef ENODEV -#define ENODEV xf86_ENODEV -#undef EIO -#define EIO xf86_EIO - -/* IPC stuff */ -#undef SHM_RDONLY -#define SHM_RDONLY XF86SHM_RDONLY -#undef SHM_RND -#define SHM_RND XF86SHM_RND -#undef SHM_REMAP -#define SHM_REMAP XF86SHM_REMAP -#undef IPC_RMID -#define IPC_RMID XF86IPC_RMID -#undef IPC_CREAT -#define IPC_CREAT XF86IPC_CREAT -#undef IPC_EXCL -#define IPC_EXCL XF86IPC_EXCL -#undef PC_NOWAIT -#define IPC_NOWAIT XF86IPC_NOWAIT -#undef SHM_R -#define SHM_R XF86SHM_R -#undef SHM_W -#define SHM_W XF86SHM_W -#undef IPC_PRIVATE -#define IPC_PRIVATE XF86IPC_PRIVATE - -/* Some ANSI macros */ -#undef FILENAME_MAX -#define FILENAME_MAX 1024 - -#if (defined(sun) && defined(__SVR4)) -# define _FILEDEFED /* Already have FILE defined, don't redefine it */ -#endif - -#endif /* !DONT_DEFINE_WRAPPERS */ - -#if (!defined(DONT_DEFINE_WRAPPERS) || defined(DEFINE_SETJMP_WRAPPERS)) -#undef setjmp -#define setjmp(a) xf86setjmp_macro(a) -#undef longjmp -#define longjmp(a,b) xf86longjmp(a,b) -#undef jmp_buf -#define jmp_buf xf86jmp_buf -#endif - -#endif /* XF86_LIBC_H */ diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c index 730ea0cab..19b9d1477 100644 --- a/hw/xfree86/parser/Flags.c +++ b/hw/xfree86/parser/Flags.c @@ -63,6 +63,7 @@ #include "xf86tokens.h" #include "Configint.h" #include <math.h> +#include <X11/Xfuncproto.h> extern LexRec val; @@ -330,7 +331,7 @@ xf86findOption (XF86OptionPtr list, const char *name) * returned. If the option is not found, a NULL is returned. */ -__attribute__((visibility("default"))) char * +_X_EXPORT char * xf86findOptionValue (XF86OptionPtr list, const char *name) { XF86OptionPtr p = xf86findOption (list, name); diff --git a/hw/xfree86/parser/Screen.c b/hw/xfree86/parser/Screen.c index 4524f17f6..ad08c1382 100644 --- a/hw/xfree86/parser/Screen.c +++ b/hw/xfree86/parser/Screen.c @@ -214,6 +214,7 @@ static xf86ConfigSymTabRec ScreenTab[] = {DEFAULTDEPTH, "defaultdepth"}, {DEFAULTBPP, "defaultbpp"}, {DEFAULTFBBPP, "defaultfbbpp"}, + {VIRTUAL, "virtual"}, {OPTION, "option"}, {-1, ""}, }; @@ -299,6 +300,14 @@ xf86parseScreenSection (void) } } break; + case VIRTUAL: + if (xf86getSubToken (&(ptr->scrn_comment)) != NUMBER) + Error (VIRTUAL_MSG, NULL); + ptr->scrn_virtualX = val.num; + if (xf86getSubToken (&(ptr->scrn_comment)) != NUMBER) + Error (VIRTUAL_MSG, NULL); + ptr->scrn_virtualY = val.num; + break; case OPTION: ptr->scrn_option_lst = xf86parseOption(ptr->scrn_option_lst); break; @@ -364,6 +373,10 @@ xf86printScreenSection (FILE * cf, XF86ConfScreenPtr ptr) { fprintf (cf, "\tVideoAdaptor \"%s\"\n", aptr->al_adaptor_str); } + if (ptr->scrn_virtualX && ptr->scrn_virtualY) + fprintf (cf, "\tVirtual %d %d\n", + ptr->scrn_virtualX, + ptr->scrn_virtualY); for (dptr = ptr->scrn_display_lst; dptr; dptr = dptr->list.next) { fprintf (cf, "\tSubSection \"Display\"\n"); diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c index 36061c889..9706d483b 100644 --- a/hw/xfree86/parser/scan.c +++ b/hw/xfree86/parser/scan.c @@ -64,6 +64,7 @@ #include <string.h> #include <unistd.h> #include <stdarg.h> +#include <X11/Xfuncproto.h> #if !defined(X_NOT_POSIX) #if defined(_POSIX_SOURCE) @@ -939,7 +940,7 @@ StringToToken (char *str, xf86ConfigSymTabRec * tab) * Compare two names. The characters '_', ' ', and '\t' are ignored * in the comparison. */ -__attribute__((visibility("default"))) int +_X_EXPORT int xf86nameCompare (const char *s1, const char *s2) { char c1, c2; diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h index a078361d3..fd6cc530b 100644 --- a/hw/xfree86/parser/xf86Parser.h +++ b/hw/xfree86/parser/xf86Parser.h @@ -307,6 +307,7 @@ typedef struct XF86ConfDisplayPtr scrn_display_lst; XF86OptionPtr scrn_option_lst; char *scrn_comment; + int scrn_virtualX, scrn_virtualY; } XF86ConfScreenRec, *XF86ConfScreenPtr; diff --git a/hw/xfree86/utils/xorgcfg/Makefile.am b/hw/xfree86/utils/xorgcfg/Makefile.am index e7113035f..31d1b3f00 100644 --- a/hw/xfree86/utils/xorgcfg/Makefile.am +++ b/hw/xfree86/utils/xorgcfg/Makefile.am @@ -42,7 +42,6 @@ xorgcfg_LDADD = $(XORGCFG_DEP_LIBS) ../../parser/libxf86config.a $(LOADERLIB) \ #if DoLoadableServer LDSRCS = \ - $(top_srcdir)/hw/xfree86/os-support/shared/libc_wrapper.c \ loader.c loadmod.c LOADERLIB = ../../loader/libloader.a #endif diff --git a/hw/xfree86/utils/xorgconfig/xorgconfig.c b/hw/xfree86/utils/xorgconfig/xorgconfig.c index efabc9d1f..30eb83182 100644 --- a/hw/xfree86/utils/xorgconfig/xorgconfig.c +++ b/hw/xfree86/utils/xorgconfig/xorgconfig.c @@ -631,7 +631,7 @@ mouse_configuration(void) { config_emulate3buttons = 0; printf("\n"); -#if (defined(sun) && (defined(__i386__) || defined(__x86))) +#if (defined(sun) && (defined(__i386) || defined(__x86))) /* SPARC & USB mice (VUID or AUTO protocols) default to /dev/mouse, but PS/2 mice default to /dev/kdmouse */ if ((config_mousetype != M_AUTO) && (config_mousetype != M_VUID)) { |