Mercurial > mplayer.hg
changeset 2359:ee6ef0b10655
More iopl'ed ports and test for brken BIOS
author | nick |
---|---|
date | Mon, 22 Oct 2001 09:28:44 +0000 |
parents | 8b971caf9e03 |
children | aa4d96380b7f |
files | linux/vbelib.c linux/vbelib.h |
diffstat | 2 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/linux/vbelib.c Mon Oct 22 07:43:32 2001 +0000 +++ b/linux/vbelib.c Mon Oct 22 09:28:44 2001 +0000 @@ -56,14 +56,22 @@ int vbeInit( void ) { + unsigned short iopl_port,int_10_seg; + size_t i; if(!LRMI_init()) return VBE_VM86_FAIL; /* Allow read/write to ALL io ports */ + int_10_seg = *(unsigned short *)PhysToVirtSO(0x0000,0x0042); + /* Video BIOS should be at C000:0000 and above */ + if((int_10_seg >> 12) < 0xC) return VBE_BROKEN_BIOS; ioperm(0, 1024, 1); iopl(3); memset(&vbe_pm_info,0,sizeof(struct VesaProtModeInterface)); vbeGetProtModeInfo(&vbe_pm_info); + i = 0; + while((iopl_port=vbe_pm_info.iopl_ports[i++]) != 0xFFFF) ioperm(iopl_port,1,1); + iopl(3); return VBE_OK; }
--- a/linux/vbelib.h Mon Oct 22 07:43:32 2001 +0000 +++ b/linux/vbelib.h Mon Oct 22 09:28:44 2001 +0000 @@ -189,6 +189,7 @@ #define VBE_VM86_FAIL -1 #define VBE_OUT_OF_DOS_MEM -2 #define VBE_OUT_OF_MEM -3 +#define VBE_BROKEN_BIOS -4 #define VBE_VESA_ERROR_MASK 0x004f #define VBE_VESA_ERRCODE_MASK 0xff00