diff options
Diffstat (limited to 'nx-X11/programs/Xserver/hw/xfree86/os-support/pmax/pmax_map.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/xfree86/os-support/pmax/pmax_map.c | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/nx-X11/programs/Xserver/hw/xfree86/os-support/pmax/pmax_map.c b/nx-X11/programs/Xserver/hw/xfree86/os-support/pmax/pmax_map.c deleted file mode 100644 index 36d3366a2..000000000 --- a/nx-X11/programs/Xserver/hw/xfree86/os-support/pmax/pmax_map.c +++ /dev/null @@ -1,239 +0,0 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/pmax/pmax_map.c,v 1.7 2000/06/27 14:27:31 tsi Exp $ */ -/* - * Copyright 1998 by Concurrent Computer Corporation - * - * 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 name of Concurrent Computer - * Corporation not be used in advertising or publicity pertaining to - * distribution of the software without specific, written prior - * permission. Concurrent Computer Corporation makes no representations - * about the suitability of this software for any purpose. It is - * provided "as is" without express or implied warranty. - * - * CONCURRENT COMPUTER CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS, IN NO EVENT SHALL CONCURRENT COMPUTER CORPORATION 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. - * - * Copyright 1998 by Metro Link Incorporated - * - * 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 name of Metro Link - * Incorporated not be used in advertising or publicity pertaining to - * distribution of the software without specific, written prior - * permission. Metro Link Incorporated makes no representations - * about the suitability of this software for any purpose. It is - * provided "as is" without express or implied warranty. - * - * METRO LINK INCORPORATED DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS, IN NO EVENT SHALL METRO LINK INCORPORATED 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. - * - * This file was derived in part from the original XFree86 sysv OS - * support which contains the following copyright notice: - * - * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany - * Copyright 1993 by David Wexelblat <dwex@goblin.org> - * - * 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 Thomas Roell and David Wexelblat - * not be used in advertising or publicity pertaining to distribution of - * the software without specific, written prior permission. Thomas Roell and - * David Wexelblat makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * THOMAS ROELL AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO - * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS, IN NO EVENT SHALL THOMAS ROELL 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 - -#include <X11/X.h> - -#include "xf86.h" -#include "xf86Priv.h" -#include "xf86_OSlib.h" - -#include "Pci.h" - -/***************************************************************************/ -/* Video Memory Mapping section */ -/***************************************************************************/ - -/* - * Map an I/O region given its address (host POV) - */ -void * -pmax_iomap(unsigned long base, unsigned long len) -{ - int fd; - void *rv; - - if ((fd = open("/dev/iomem", O_RDWR)) < 0) - { - ErrorF("pmax_iomap: failed to open /dev/iomem (%s)\n", - strerror(errno)); - return(MAP_FAILED); - } - - rv = (void *)mmap((caddr_t)0, len, PROT_READ|PROT_WRITE, - MAP_SHARED, fd, (off_t)base); - - close(fd); - return(rv); -} - -Bool -xf86LinearVidMem() -{ - return TRUE; -} - -extern void * pmax_iomap(unsigned long, unsigned long); - -pointer -xf86MapVidMem(int ScreenNum, int Region, pointer Base, unsigned long Size) -{ - ErrorF("%s: Not supported on this OS. Drivers should use xf86MapPciMem() instead\n", - "xf86MapVidMem"); - FatalError("%s: Cannot map [s=%x,a=%x]\n", "xf86MapVidMem", Size, Base); -} - - -pointer -xf86MapPciMem(int ScreenNum, int Flags, PCITAG Tag, pointer Base, - unsigned long Size) -{ - pointer hostbase = pciBusAddrToHostAddr(Tag, Base); - pointer base; - - base = (pointer) pmax_iomap((unsigned long)hostbase, Size); - if (base == MAP_FAILED) { - xf86Msg(X_WARNING, - "xf86MapPciMem: Could not mmap PCI memory " - "[base=0x%x,hostbase=0x%x,size=%x] (%s)\n", - Base, hostbase, Size, strerror(errno)); - } - return((pointer)base); -} - - -/* ARGSUSED */ -void -xf86UnMapVidMem(int ScreenNum, pointer Base, unsigned long Size) -{ - munmap(Base, Size); -} - -/* - * Read BIOS via mmap()ing /dev/iomem. - */ -/*ARGSUSED*/ -int -xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf, int Len) -{ - ErrorF("%s: Not supported on this OS. Drivers should use xf86ReadPciBIOS() instead\n", - "xf86ReadBIOS"); - FatalError("%s: Cannot read BIOS [base=0x%x,offset=0x%x,size=%d]\n", "xf86ReadBIOS", Base, Offset, Len); -} - -int -xf86ReadPciBIOS(unsigned long Base, unsigned long Offset, PCITAG Tag, - unsigned char *Buf, int Len) -{ - pointer hostbase = pciBusAddrToHostAddr(Tag, (void *)Base); - char *base; - int psize; - int mlen; - - psize = xf86getpagesize(); - Offset += Base & (psize - 1); - Base &= ~(psize - 1); - mlen = (Offset + Len + psize - 1) & ~(psize - 1); - base = pmax_iomap((unsigned long)hostbase, mlen); - if (base == MAP_FAILED) { - xf86Msg(X_WARNING, "xf86ReadPciBIOS: Could not mmap PCI memory" - " [base=0x%x,hostbase=0x%x,size=%x] (%s)\n", - Base, hostbase, mlen, strerror(errno)); - return(0); - } - - (void)memcpy(Buf, base + Offset, Len); - (void)munmap(base, mlen); - return(Len); -} - -/***************************************************************************/ -/* Interrupt Handling section */ -/***************************************************************************/ - -#include <sys/ipl.h> - -#ifndef PL_HI -#define PL_HI PL8 -#endif - -#ifndef PL_0 -#define PL_0 PL0 -#endif - -static void *spl_map_addr = NULL; - -void -pmax_init_splmap(void) -{ - spl_map_addr = spl_map(0); - if (!spl_map_addr) { - xf86Msg(X_WARNING, - "pmax_init_splmap: spl_map() failed. " - "Cannot bind to IPL register\n"); - xf86ErrorF("\tInterrupts cannot be disabled/enabled !!!\n"); - } -} - - -Bool -xf86DisableInterrupts() -{ - if (spl_map_addr) { - (void)spl_request(PL_HI,spl_map_addr); - return(TRUE); - } - - return(FALSE); -} - -void xf86EnableInterrupts() -{ - if (spl_map_addr) { - (void)spl_request(PL_0, spl_map_addr); - } -} - |