mirror of https://github.com/mpv-player/mpv
More iopl'ed ports and test for brken BIOS
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2360 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
43e4f2c792
commit
58ce93efc7
|
@ -56,14 +56,22 @@ static inline int VBE_LRMI_int(int int_no, struct LRMI_regs *r)
|
|||
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -189,6 +189,7 @@ struct VesaProtModeInterface
|
|||
#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
|
||||
|
||||
|
|
Loading…
Reference in New Issue