From f4092abdf94af6a99aff944d6264bc1284e8bdd4 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:43:39 +0200 Subject: Imported nx-X11-3.1.0-1.tar.gz Summary: Imported nx-X11-3.1.0-1.tar.gz Keywords: Imported nx-X11-3.1.0-1.tar.gz into Git repository --- .../hw/xfree86/os-support/dgux/bios_DGmmap.c | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 nx-X11/programs/Xserver/hw/xfree86/os-support/dgux/bios_DGmmap.c (limited to 'nx-X11/programs/Xserver/hw/xfree86/os-support/dgux/bios_DGmmap.c') diff --git a/nx-X11/programs/Xserver/hw/xfree86/os-support/dgux/bios_DGmmap.c b/nx-X11/programs/Xserver/hw/xfree86/os-support/dgux/bios_DGmmap.c new file mode 100644 index 000000000..95aad7a12 --- /dev/null +++ b/nx-X11/programs/Xserver/hw/xfree86/os-support/dgux/bios_DGmmap.c @@ -0,0 +1,70 @@ +/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/dgux/bios_DGmmap.c,v 1.3 2000/02/11 22:36:02 dawes Exp $ */ +/* + * INTEL DG/UX RELEASE 4.20 MU03 + * Copyright 1997 Takis Psarogiannakopoulos Cambridge,UK + * + * + * 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. + * XCONSORTIUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE. + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FITNESS, IN NO EVENT SHALL XCONSORTIUM 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 +#endif + +#include +#include "input.h" +#include "scrnintstr.h" + +#include "xf86.h" +#include "xf86Priv.h" +#include "xf86_OSlib.h" + +/* + * Read the BIOS via mmap() to the device /dev/mem. + */ +int xf86ReadBIOS(Base, Offset, Buf, Len) +unsigned long Base; +unsigned long Offset; +unsigned char *Buf; +int Len; +{ + int fd; + unsigned char *ptr; + int psize; + int mlen; + + if ((fd = open(DEV_MEM, O_RDONLY)) < 0) + { + ErrorF("xf86ReadBios: Failed to open %s (%s)\n", DEV_MEM, + strerror(errno)); + return(-1); + } + psize = xf86getpagesize(); + Offset += Base & (psize - 1); + Base &= ~(psize - 1); + mlen = (Offset + Len + psize - 1) & ~(psize - 1); + ptr = (unsigned char *)mmap((caddr_t)0, mlen, PROT_READ, MAP_SHARED, + fd, (off_t)Base); + if ((int)ptr == -1) + { + ErrorF("xf86ReadBios: %s mmap failed\n", DEV_MEM); + close(fd); + return(-1); + } + (void)memcpy(Buf, (void *)(ptr + Offset), Len); + (void)munmap((caddr_t)ptr, mlen); + (void)close(fd); + return(Len); +} -- cgit v1.2.3