1/* $XFree86$ */ 2/* $XdotOrg$ */ 3/* 4 * OS depending defines 5 * 6 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria 7 * 8 * If distributed as part of the Linux kernel, the following license terms 9 * apply: 10 * 11 * * This program is free software; you can redistribute it and/or modify 12 * * it under the terms of the GNU General Public License as published by 13 * * the Free Software Foundation; either version 2 of the named License, 14 * * or any later version. 15 * * 16 * * This program is distributed in the hope that it will be useful, 17 * * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * * GNU General Public License for more details. 20 * * 21 * * You should have received a copy of the GNU General Public License 22 * * along with this program; if not, write to the Free Software 23 * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA 24 * 25 * Otherwise, the following license terms apply: 26 * 27 * * Redistribution and use in source and binary forms, with or without 28 * * modification, are permitted provided that the following conditions 29 * * are met: 30 * * 1) Redistributions of source code must retain the above copyright 31 * * notice, this list of conditions and the following disclaimer. 32 * * 2) Redistributions in binary form must reproduce the above copyright 33 * * notice, this list of conditions and the following disclaimer in the 34 * * documentation and/or other materials provided with the distribution. 35 * * 3) The name of the author may not be used to endorse or promote products 36 * * derived from this software without specific prior written permission. 37 * * 38 * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 39 * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 40 * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 41 * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 42 * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 43 * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 44 * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 45 * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 46 * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 47 * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 48 * 49 * Author: Thomas Winischhofer <thomas@winischhofer.net> 50 * Silicon Integrated Systems, Inc. (used by permission) 51 * 52 */ 53 54#ifndef _SIS_OSDEF_H_ 55#define _SIS_OSDEF_H_ 56 57/* The choices are: */ 58#define SIS_LINUX_KERNEL /* Linux kernel framebuffer */ 59#undef SIS_XORG_XF86 /* XFree86/X.org */ 60 61#ifdef OutPortByte 62#undef OutPortByte 63#endif 64 65#ifdef OutPortWord 66#undef OutPortWord 67#endif 68 69#ifdef OutPortLong 70#undef OutPortLong 71#endif 72 73#ifdef InPortByte 74#undef InPortByte 75#endif 76 77#ifdef InPortWord 78#undef InPortWord 79#endif 80 81#ifdef InPortLong 82#undef InPortLong 83#endif 84 85/**********************************************************************/ 86/* LINUX KERNEL */ 87/**********************************************************************/ 88 89#ifdef SIS_LINUX_KERNEL 90 91#ifdef CONFIG_FB_SIS_300 92#define SIS300 93#endif 94 95#ifdef CONFIG_FB_SIS_315 96#define SIS315H 97#endif 98 99#if !defined(SIS300) && !defined(SIS315H) 100#warning Neither CONFIG_FB_SIS_300 nor CONFIG_FB_SIS_315 is set 101#warning sisfb will not work! 102#endif 103 104#define OutPortByte(p,v) outb((u8)(v),(SISIOADDRESS)(p)) 105#define OutPortWord(p,v) outw((u16)(v),(SISIOADDRESS)(p)) 106#define OutPortLong(p,v) outl((u32)(v),(SISIOADDRESS)(p)) 107#define InPortByte(p) inb((SISIOADDRESS)(p)) 108#define InPortWord(p) inw((SISIOADDRESS)(p)) 109#define InPortLong(p) inl((SISIOADDRESS)(p)) 110#define SiS_SetMemory(MemoryAddress,MemorySize,value) memset_io(MemoryAddress, value, MemorySize) 111 112#endif /* LINUX_KERNEL */ 113 114/**********************************************************************/ 115/* XFree86/X.org */ 116/**********************************************************************/ 117 118#ifdef SIS_XORG_XF86 119 120#define SIS300 121#define SIS315H 122 123#define OutPortByte(p,v) outSISREG((IOADDRESS)(p),(CARD8)(v)) 124#define OutPortWord(p,v) outSISREGW((IOADDRESS)(p),(CARD16)(v)) 125#define OutPortLong(p,v) outSISREGL((IOADDRESS)(p),(CARD32)(v)) 126#define InPortByte(p) inSISREG((IOADDRESS)(p)) 127#define InPortWord(p) inSISREGW((IOADDRESS)(p)) 128#define InPortLong(p) inSISREGL((IOADDRESS)(p)) 129#define SiS_SetMemory(MemoryAddress,MemorySize,value) memset(MemoryAddress, value, MemorySize) 130 131#endif /* XF86 */ 132 133#endif /* _OSDEF_H_ */ 134