Mercurial > mplayer.hg
view libdha/sysdep/pci_svr4.c @ 13303:2571b2e0c0b4
Fixes for VirtualAlloc function:
* mplayer received a SIGSEGV under Linux after
Opening video decoder: [dmo] DMO video codecs
VirtualAlloc(0x00400000, 859648, 0x00003000, 0x00000040)
because that region was already under use and mmap() with
MAP_FIXED has problems under Linux (see code).
VirtualAlloc() fixed in "loader/ext.c".
* VirtualAlloc() made to conform with win32 documented behavior
regarding the alignment of the address and size arguments.
* VirtualAlloc() detection of overlap with previous regions fixed.
Patch by A. Guru ( a.guru at sympatico dot ca )
author | rtognimp |
---|---|
date | Fri, 10 Sep 2004 16:39:31 +0000 |
parents | a7fece7c628e |
children |
line wrap: on
line source
/* This file is based on: $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.34.2.17 1998/11/10 11:55:40 dawes Exp $ Modified for readability by Nick Kurshev */ #include <sys/types.h> #include <sys/proc.h> #include <sys/tss.h> #if defined(NCR) #define __STDC #include <sys/sysi86.h> #undef __STDC #else #include <sys/sysi86.h> #endif #if defined(sun) # ifndef __EXTENSIONS__ # define __EXTENSIONS__ # endif # include <sys/psw.h> #endif static __inline__ int enable_os_io(void) { #if defined(SI86IOPL) sysi86(SI86IOPL, 3); #else sysi86(SI86V86, V86SC_IOPL, PS_IOPL); #endif return(0); } static __inline__ int disable_os_io(void) { #if defined(SI86IOPL) sysi86(SI86IOPL, 0); #else sysi86(SI86V86, V86SC_IOPL, 0); #endif return(0); }