diff options
Diffstat (limited to 'linux')
-rw-r--r-- | linux/vbelib.c | 20 | ||||
-rw-r--r-- | linux/vbelib.h | 1 |
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 */ |