summaryrefslogtreecommitdiffstats
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/vbelib.c20
-rw-r--r--linux/vbelib.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/linux/vbelib.c b/linux/vbelib.c
index 704371958b..d3fc9a445f 100644
--- a/linux/vbelib.c
+++ b/linux/vbelib.c
@@ -376,6 +376,26 @@ int vbeGetMode(unsigned *mode)
return retval;
}
+int vbeGetPixelClock(unsigned *mode,unsigned *pixel_clock) // in Hz
+{
+ struct LRMI_regs r;
+ int retval;
+ memset(&r,0,sizeof(struct LRMI_regs));
+ r.eax = 0x4f0b;
+ r.ebx = 0;
+ r.edx = *mode;
+ r.ecx = *pixel_clock;
+ if(!VBE_LRMI_int(0x10,&r)) return VBE_VM86_FAIL;
+ retval = r.eax & 0xffff;
+ if(retval == 0x4f)
+ {
+ *pixel_clock = r.ecx;
+ retval = VBE_OK;
+ }
+ return retval;
+}
+
+
int vbeSaveState(void **data)
{
struct LRMI_regs r;
diff --git a/linux/vbelib.h b/linux/vbelib.h
index 957c2fb550..c1ae08beb8 100644
--- a/linux/vbelib.h
+++ b/linux/vbelib.h
@@ -199,6 +199,7 @@ extern int vbeGetControllerInfo(struct VbeInfoBlock *);
extern int vbeGetModeInfo(unsigned mode,struct VesaModeInfoBlock *);
extern int vbeSetMode(unsigned mode,struct VesaCRTCInfoBlock *);
extern int vbeGetMode(unsigned *mode);
+extern int vbeGetPixelClock(unsigned *mode,unsigned *pixel_clock);
extern int vbeSaveState(void **data); /* note never copy this data */
extern int vbeRestoreState(void *data);
extern int vbeGetWindow(unsigned *win_num); /* win_A=0 or win_B=1 */