[Mplayer-cvslog] help regarding VESA VBE interface functions.
Tallapragada, Balakrishna M
balakrishna.m.tallapragada at intel.com
Fri Feb 21 21:54:31 CET 2003
- Previous message: [Mplayer-cvslog] CVS: main/postproc swscale_internal.h,NONE,1.1 swscale.c,1.116,1.117 swscale_template.c,1.97,1.98 swscale.h,1.25,1.26 yuv2rgb.c,1.15,1.16 yuv2rgb_mlib.c,1.4,1.5 yuv2rgb_template.c,1.12,1.13 rgb2rgb.h,1.25,1.26
- Next message: [Mplayer-cvslog] help regarding VESA VBE interface functions.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Hi,
Is the following code stub works for linux 32 bit protected mode ?
Especially I am interested in the stub "vbeGetControllerInfo()" as I am
wondering how to do it with VBE interface function 0x4F00 in protected mode.
It looks more like DOS dpmi code.
If there is any way I can get access to the code stub please let me know. I
appreciate your help.
Thanks,
Mohan
Atmosfear mplayer-cvslog at mplayerhq.hu
Fri, 21 Jun 2002 04:20:40 +0200
Previous message: [Mplayer-cvslog] CVS: main/DOCS bugreports.html,1.29,1.30
Next message: [Mplayer-cvslog] Returned mail--"is the popup screen"
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
----------------------------------------------------------------------------
----
Update of /cvsroot/mplayer/main/linux
In directory mail:/var/tmp.root/cvs-serv5649
Modified Files:
vbelib.c
Log Message:
date: 2002/06/16 09:10:00; author: nickols_k; state: Exp; lines: +17 -13
fixed some DOS-memory leaks
patch adopted from mpxp by Tibcu, this fixes vesaout crashes after playing
multiple files.
Index: vbelib.c
===================================================================
RCS file: /cvsroot/mplayer/main/linux/vbelib.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- vbelib.c 29 Jan 2002 09:57:21 -0000 1.19
+++ vbelib.c 21 Jun 2002 02:20:30 -0000 1.20
@@ -112,12 +112,20 @@
static unsigned hh_int_10_seg;
static int fd_mem;
+/*
+the list of supported video modes is stored in the reserved portion of
+the SuperVGA information record by some implementations, and it may
+thus be necessary to either copy the mode list or use a different
+buffer for all subsequent VESA calls
+*/
+static void *controller_info;
int vbeInit( void )
{
unsigned short iopl_port;
size_t i;
int retval;
if(!LRMI_init()) return VBE_VM86_FAIL;
+ if(!(controller_info = LRMI_alloc_real(sizeof(struct VbeInfoBlock))))
return VBE_OUT_OF_DOS_MEM;
/*
Allow read/write to ALL io ports
*/
@@ -144,6 +152,7 @@
{
__set_cursor_type(my_stdout,1);
close(fd_mem);
+ LRMI_free_real(controller_info);
return VBE_OK;
}
@@ -216,25 +225,19 @@
int vbeGetControllerInfo(struct VbeInfoBlock *data)
{
struct LRMI_regs r;
- void *rm_space;
int retval;
- if(!(rm_space = LRMI_alloc_real(sizeof(struct VbeInfoBlock)))) return
VBE_OUT_OF_DOS_MEM;
- memcpy(rm_space,data,sizeof(struct VbeInfoBlock));
+ memcpy(controller_info,data,sizeof(struct VbeInfoBlock));
memset(&r,0,sizeof(struct LRMI_regs));
r.eax = 0x4f00;
- r.es = VirtToPhysSeg(rm_space);
- r.edi = VirtToPhysOff(rm_space);
- if(!VBE_LRMI_int(0x10,&r))
- {
- LRMI_free_real(rm_space);
- return VBE_VM86_FAIL;
- }
+ r.es = VirtToPhysSeg(controller_info);
+ r.edi = VirtToPhysOff(controller_info);
+ if(!VBE_LRMI_int(0x10,&r)) return VBE_VM86_FAIL;
retval = r.eax & 0xffff;
if(retval == 0x4f)
{
FarPtr fpdata;
retval = VBE_OK;
- memcpy(data,rm_space,sizeof(struct VbeInfoBlock));
+ memcpy(data,controller_info,sizeof(struct VbeInfoBlock));
fpdata.seg = (unsigned long)(data->OemStringPtr) >> 16;
fpdata.off = (unsigned long)(data->OemStringPtr) & 0xffff;
data->OemStringPtr = PhysToVirt(fpdata);
@@ -325,6 +328,7 @@
retval = VBE_OK;
memcpy(data,rm_space,sizeof(struct VesaModeInfoBlock));
}
+ LRMI_free_real(rm_space);
return retval;
}
@@ -344,7 +348,7 @@
r.eax = 0x4f02;
r.ebx = mode;
retval = VBE_LRMI_int(0x10,&r);
- if(rm_space) LRMI_free_real(rm_space);
+ LRMI_free_real(rm_space);
if(!retval) return VBE_VM86_FAIL;
retval = r.eax & 0xffff;
if(retval == 0x4f)
@@ -682,7 +686,7 @@
memcpy(rm_space,str,r.ecx);
r.eax = 0x1300;
retval = VBE_LRMI_int(0x10,&r);
- if(rm_space) LRMI_free_real(rm_space);
+ LRMI_free_real(rm_space);
if(!retval) return VBE_VM86_FAIL;
retval = r.eax & 0xffff;
if(retval == 0x4f) retval = VBE_OK;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-cvslog/attachments/20030221/5d529369/attachment.htm>
- Previous message: [Mplayer-cvslog] CVS: main/postproc swscale_internal.h,NONE,1.1 swscale.c,1.116,1.117 swscale_template.c,1.97,1.98 swscale.h,1.25,1.26 yuv2rgb.c,1.15,1.16 yuv2rgb_mlib.c,1.4,1.5 yuv2rgb_template.c,1.12,1.13 rgb2rgb.h,1.25,1.26
- Next message: [Mplayer-cvslog] help regarding VESA VBE interface functions.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the MPlayer-cvslog
mailing list