diff options
Diffstat (limited to 'nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_ioperm.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_ioperm.c | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_ioperm.c b/nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_ioperm.c deleted file mode 100644 index c03bb96af..000000000 --- a/nx-X11/programs/Xserver/hw/xfree86/os-support/os2/os2_ioperm.c +++ /dev/null @@ -1,140 +0,0 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/os2/os2_ioperm.c,v 3.5 1997/08/26 10:01:38 hohndel Exp $ */ -/* - * Copyright 1993 by David Wexelblat <dwex@goblin.org> - * Modified 1996 by Sebastien Marineau <marineau@genie.uottawa.ca> - * - * 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 David Wexelblat not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. David Wexelblat makes no representations - * about the suitability of this software for any purpose. It is provided - * "as is" without express or implied warranty. - * - * DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL 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. - * - */ -/* $XConsortium: os2_ioperm.c /main/4 1996/04/18 16:50:01 kaleb $ */ - - - -#define I_NEED_OS2_H -#define INCL_32 -#define INCL_DOS -#define INCL_DOSFILEMGR -#ifdef HAVE_XORG_CONFIG_H -#include <xorg-config.h> -#endif - -#include "xf86.h" -#include "xf86Priv.h" -#include "xf86_OSlib.h" - -/* - * To access I/O ports under OS/2, we use the xf86sup.sys driver. - * For the moment, we use a function which basically grants IO priviledge - * to the whole server. NOTE: Once the server is running, we should - * change this to use inline IO functions through the callgate returned by - * the fastio$ driver. - */ - -int ioEnabled=FALSE; -ULONG action; -char *ioDrvPath = "/dev/fastio$"; -USHORT callgate[3]={0,0,0}; - - -Bool xf86EnableIO() -{ - -HFILE hfd; - ULONG dlen; - APIRET rc; - - /* no need to call multiple times */ - if (ioEnabled) return TRUE; - - if (DosOpen((PSZ)ioDrvPath, (PHFILE)&hfd, (PULONG)&action, - (ULONG)0, FILE_SYSTEM, FILE_OPEN, - OPEN_SHARE_DENYNONE|OPEN_FLAGS_NOINHERIT|OPEN_ACCESS_READONLY, - (ULONG)0) != 0) { - xf86Msg(X_ERROR,"Error opening fastio$ driver...\n"); - xf86Msg(X_ERROR,"Please install xf86sup.sys in config.sys!\n"); - return FALSE; - } - callgate[0] = callgate[1] = 0; - -/* Get callgate from driver for fast io to ports and other stuff */ - - rc = DosDevIOCtl(hfd, (ULONG)0x76, (ULONG)0x64, - NULL, 0, NULL, - (ULONG*)&callgate[2], sizeof(USHORT), &dlen); - if (rc) { - xf86Msg(X_ERROR, - "EnableIOPorts failed, rc=%d, dlen=%d; emergency exit\n", - rc,dlen); - DosClose(hfd); - return FALSE; - } - -/* Calling callgate with function 13 sets IOPL for the program */ - - asm volatile ("movl $13,%%ebx;.byte 0xff,0x1d;.long _callgate" - : /*no outputs */ - : /*no inputs */ - : "eax","ebx","ecx","edx","cc"); - - ioEnabled = TRUE; - DosClose(hfd); - return TRUE; -} - -void xf86DisableIO() -{ -HFILE hfd; - ULONG dlen; - APIRET rc; - - /* no need to call multiple times */ - if (!ioEnabled) return; - - if (DosOpen((PSZ)ioDrvPath, (PHFILE)&hfd, (PULONG)&action, - (ULONG)0, FILE_SYSTEM, FILE_OPEN, - OPEN_SHARE_DENYNONE|OPEN_FLAGS_NOINHERIT|OPEN_ACCESS_READONLY, - (ULONG)0) != 0) { - xf86Msg(X_ERROR,"Error opening fastio$ driver...\n"); - xf86Msg(X_ERROR,"Please install xf86sup.sys in config.sys!\n"); - return; - } - callgate[0] = callgate[1] = 0; - - rc = DosDevIOCtl(hfd, (ULONG)0x76, (ULONG)0x64, - NULL, 0, NULL, - (ULONG*)&callgate[2], sizeof(USHORT), &dlen); - if (rc) { - xf86Msg(X_ERROR,"DisableIOPorts failed, rc=%d, dlen=%d\n", - rc,dlen); - DosClose(hfd); - return; - } - -/* Function 14 of callgate brings program back to ring 3 */ - - asm volatile ("movl $14,%%ebx;.byte 0xff,0x1d;.long _callgate" - : /*no outputs */ - : /*no inputs */ - : "eax","ebx","ecx","edx","cc"); - ioEnabled=FALSE; - DosClose(hfd); - return; - -} - |