-Wall fixes. Might have fixed VESA based DPMS code as a result
This commit is contained in:
parent
4b844cafb2
commit
109b949516
|
@ -58,7 +58,6 @@ VbeGetVmib (Vm86InfoPtr vi, int mode, VbeModeInfoBlock *vmib)
|
|||
{
|
||||
int code;
|
||||
int mark;
|
||||
int vib_base;
|
||||
int vmib_base;
|
||||
VbeModeInfoBlock *vmib_low;
|
||||
|
||||
|
@ -79,6 +78,101 @@ VbeGetVmib (Vm86InfoPtr vi, int mode, VbeModeInfoBlock *vmib)
|
|||
return code;
|
||||
}
|
||||
|
||||
static int
|
||||
VbeReportVib(Vm86InfoPtr vi, VbeInfoBlock *vib)
|
||||
{
|
||||
U32 i, p;
|
||||
unsigned char c;
|
||||
int error = 0;
|
||||
|
||||
ErrorF("VBE version %c.%c (",
|
||||
((vib->VbeVersion >> 8) & 0xFF) + '0',
|
||||
(vib->VbeVersion & 0xFF)+'0');
|
||||
p = vib->OemStringPtr;
|
||||
for(i = 0; 1; i++) {
|
||||
c = Vm86Memory(vi, MAKE_POINTER_1(p+i));
|
||||
if(!c) break;
|
||||
if (c >= ' ')
|
||||
ErrorF("%c", c);
|
||||
if (i > 32000) {
|
||||
error = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ErrorF(")\n");
|
||||
ErrorF("DAC is %s, controller is %sVGA compatible%s\n",
|
||||
(vib->Capabilities[0]&1)?"fixed":"switchable",
|
||||
(vib->Capabilities[0]&2)?"not ":"",
|
||||
(vib->Capabilities[0]&3)?", RAMDAC causes snow":"");
|
||||
ErrorF("Total memory: %lu kilobytes\n", 64L*vib->TotalMemory);
|
||||
if(error)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int
|
||||
VbeReportModeInfo(Vm86InfoPtr vi, U16 mode, VbeModeInfoBlock *vmib)
|
||||
{
|
||||
int supported = (vmib->ModeAttributes&0x1)?1:0;
|
||||
int colour = (vmib->ModeAttributes&0x8)?1:0;
|
||||
int graphics = (vmib->ModeAttributes&0x10)?1:0;
|
||||
int vga_compatible = !((vmib->ModeAttributes&0x20)?1:0);
|
||||
int linear_fb = (vmib->ModeAttributes&0x80)?1:0;
|
||||
|
||||
ErrorF("0x%04X: %dx%dx%d%s",
|
||||
(unsigned)mode,
|
||||
(int)vmib->XResolution, (int)vmib->YResolution,
|
||||
(int)vmib->BitsPerPixel,
|
||||
colour?"":" (monochrome)",
|
||||
graphics?"":" (graphics)",
|
||||
vga_compatible?"":" (vga compatible)",
|
||||
linear_fb?"":" (linear frame buffer)");
|
||||
switch(vmib->MemoryModel) {
|
||||
case 0:
|
||||
ErrorF(" text mode (%dx%d)",
|
||||
(int)vmib->XCharSize, (int)vmib->YCharSize);
|
||||
break;
|
||||
case 1:
|
||||
ErrorF(" CGA graphics");
|
||||
break;
|
||||
case 2:
|
||||
ErrorF(" Hercules graphics");
|
||||
break;
|
||||
case 3:
|
||||
ErrorF(" Planar (%d planes)", vmib->NumberOfPlanes);
|
||||
break;
|
||||
case 4:
|
||||
ErrorF(" PseudoColor");
|
||||
break;
|
||||
case 5:
|
||||
ErrorF(" Non-chain 4, 256 colour");
|
||||
break;
|
||||
case 6:
|
||||
if(vmib->DirectColorModeInfo & 1)
|
||||
ErrorF(" DirectColor");
|
||||
else
|
||||
ErrorF(" TrueColor");
|
||||
ErrorF(" [%d:%d:%d:%d]",
|
||||
vmib->RedMaskSize, vmib->GreenMaskSize, vmib->BlueMaskSize,
|
||||
vmib->RsvdMaskSize);
|
||||
if(vmib->DirectColorModeInfo & 2)
|
||||
ErrorF(" (reserved bits are reserved)");
|
||||
break;
|
||||
case 7: ErrorF("YUV");
|
||||
break;
|
||||
default:
|
||||
ErrorF("unknown MemoryModel 0x%X ", vmib->MemoryModel);
|
||||
}
|
||||
if(!supported)
|
||||
ErrorF(" (unsupported)");
|
||||
else if(!linear_fb)
|
||||
ErrorF(" (no linear framebuffer)");
|
||||
ErrorF("\n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
VbeReportInfo (Vm86InfoPtr vi)
|
||||
{
|
||||
|
@ -95,7 +189,6 @@ VbeGetNmode (Vm86InfoPtr vi)
|
|||
{
|
||||
VbeInfoBlock vib;
|
||||
int code;
|
||||
int ret = 0;
|
||||
unsigned int p;
|
||||
int n;
|
||||
int mode;
|
||||
|
@ -121,7 +214,6 @@ VbeGetModes (Vm86InfoPtr vi, VesaModePtr modes, int nmode)
|
|||
{
|
||||
VbeInfoBlock vib;
|
||||
int code;
|
||||
int ret = 0;
|
||||
unsigned int p;
|
||||
int n;
|
||||
int mode;
|
||||
|
@ -262,7 +354,6 @@ VbeMapFramebuffer(Vm86InfoPtr vi, VbeInfoPtr vbe, int mode, int *ret_size, CARD3
|
|||
int size;
|
||||
int pagesize = getpagesize();
|
||||
int before, after;
|
||||
int devmem;
|
||||
|
||||
if (VbeGetVib (vi, &vib) < 0)
|
||||
return 0;
|
||||
|
@ -329,7 +420,7 @@ VbeSetPalette(Vm86InfoPtr vi, VbeInfoPtr vbe, int first, int number, U8 *entries
|
|||
U8 *palette_scratch;
|
||||
int mark;
|
||||
int palette_base;
|
||||
int i, j, code;
|
||||
int i, code;
|
||||
|
||||
if(number == 0)
|
||||
return 0;
|
||||
|
@ -374,7 +465,7 @@ VbeGetPalette(Vm86InfoPtr vi, VbeInfoPtr vbe, int first, int number, U8 *entries
|
|||
U8 *palette_scratch;
|
||||
int mark;
|
||||
int palette_base;
|
||||
int i, j, code;
|
||||
int i, code;
|
||||
|
||||
if(number == 0)
|
||||
return 0;
|
||||
|
@ -513,10 +604,15 @@ static const int VbeDPMSModes[4] = {
|
|||
};
|
||||
|
||||
Bool
|
||||
VbeDPMS(Vm86InfoPtr vi, VbeInfoBlock *vib, int mode)
|
||||
VbeDPMS(Vm86InfoPtr vi, VbeInfoPtr vbe, int mode)
|
||||
{
|
||||
int code;
|
||||
int code;
|
||||
VbeInfoBlock vib;
|
||||
|
||||
code = VbeGetVib (vi, &vib);
|
||||
if (code < 0)
|
||||
return FALSE;
|
||||
|
||||
/*
|
||||
* Check which modes are supported
|
||||
*/
|
||||
|
@ -547,95 +643,6 @@ VbeDPMS(Vm86InfoPtr vi, VbeInfoBlock *vib, int mode)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
VbeReportVib(Vm86InfoPtr vi, VbeInfoBlock *vib)
|
||||
{
|
||||
U32 i, p;
|
||||
unsigned char c;
|
||||
int error;
|
||||
ErrorF("VBE version %c.%c (",
|
||||
((vib->VbeVersion >> 8) & 0xFF) + '0',
|
||||
(vib->VbeVersion & 0xFF)+'0');
|
||||
p = vib->OemStringPtr;
|
||||
for(i = 0; 1; i++) {
|
||||
c = Vm86Memory(vi, MAKE_POINTER_1(p+i));
|
||||
if(!c) break;
|
||||
if (c >= ' ')
|
||||
ErrorF("%c", c);
|
||||
if (i > 32000) {
|
||||
error = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ErrorF(")\n");
|
||||
ErrorF("DAC is %s, controller is %sVGA compatible%s\n",
|
||||
(vib->Capabilities[0]&1)?"fixed":"switchable",
|
||||
(vib->Capabilities[0]&2)?"not ":"",
|
||||
(vib->Capabilities[0]&3)?", RAMDAC causes snow":"");
|
||||
ErrorF("Total memory: %lu kilobytes\n", 64L*vib->TotalMemory);
|
||||
if(error)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
VbeReportModeInfo(Vm86InfoPtr vi, U16 mode, VbeModeInfoBlock *vmib)
|
||||
{
|
||||
int supported = (vmib->ModeAttributes&0x1)?1:0;
|
||||
int colour = (vmib->ModeAttributes&0x8)?1:0;
|
||||
int graphics = (vmib->ModeAttributes&0x10)?1:0;
|
||||
int vga_compatible = !((vmib->ModeAttributes&0x20)?1:0);
|
||||
int linear_fb = (vmib->ModeAttributes&0x80)?1:0;
|
||||
|
||||
ErrorF("0x%04X: %dx%dx%d%s",
|
||||
(unsigned)mode,
|
||||
(int)vmib->XResolution, (int)vmib->YResolution,
|
||||
(int)vmib->BitsPerPixel,
|
||||
colour?"":" (monochrome)");
|
||||
switch(vmib->MemoryModel) {
|
||||
case 0:
|
||||
ErrorF(" text mode (%dx%d)",
|
||||
(int)vmib->XCharSize, (int)vmib->YCharSize);
|
||||
break;
|
||||
case 1:
|
||||
ErrorF(" CGA graphics");
|
||||
break;
|
||||
case 2:
|
||||
ErrorF(" Hercules graphics");
|
||||
break;
|
||||
case 3:
|
||||
ErrorF(" Planar (%d planes)", vmib->NumberOfPlanes);
|
||||
break;
|
||||
case 4:
|
||||
ErrorF(" PseudoColor");
|
||||
break;
|
||||
case 5:
|
||||
ErrorF(" Non-chain 4, 256 colour");
|
||||
break;
|
||||
case 6:
|
||||
if(vmib->DirectColorModeInfo & 1)
|
||||
ErrorF(" DirectColor");
|
||||
else
|
||||
ErrorF(" TrueColor");
|
||||
ErrorF(" [%d:%d:%d:%d]",
|
||||
vmib->RedMaskSize, vmib->GreenMaskSize, vmib->BlueMaskSize,
|
||||
vmib->RsvdMaskSize);
|
||||
if(vmib->DirectColorModeInfo & 2)
|
||||
ErrorF(" (reserved bits are reserved)");
|
||||
break;
|
||||
case 7: ErrorF("YUV");
|
||||
break;
|
||||
default:
|
||||
ErrorF("unknown MemoryModel 0x%X ", vmib->MemoryModel);
|
||||
}
|
||||
if(!supported)
|
||||
ErrorF(" (unsupported)");
|
||||
else if(!linear_fb)
|
||||
ErrorF(" (no linear framebuffer)");
|
||||
ErrorF("\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
VbeDoInterrupt10(Vm86InfoPtr vi)
|
||||
{
|
||||
|
|
|
@ -121,12 +121,12 @@ VbeGetNmode (Vm86InfoPtr vi);
|
|||
int
|
||||
VbeGetModes (Vm86InfoPtr vi, VesaModePtr modes, int nmode);
|
||||
|
||||
int
|
||||
VbeGetModeInfo(Vm86InfoPtr vi, int m, VesaModePtr mode);
|
||||
|
||||
VbeInfoPtr
|
||||
VbeInit (Vm86InfoPtr vi);
|
||||
|
||||
void
|
||||
VbeCleanup (Vm86InfoPtr vi, VbeInfoPtr vbe);
|
||||
|
||||
int
|
||||
VbeSetMode (Vm86InfoPtr vi, VbeInfoPtr vbe, int mode, int linear, int direct);
|
||||
|
||||
|
@ -134,30 +134,27 @@ int
|
|||
VbeGetMode(Vm86InfoPtr vi, int *mode);
|
||||
|
||||
void *
|
||||
VbeMapFramebuffer(Vm86InfoPtr vi, VbeInfoPtr vbe, int mode, int *size, CARD32 *phys);
|
||||
VbeMapFramebuffer(Vm86InfoPtr vi, VbeInfoPtr vbe, int mode, int *ret_size, CARD32 *ret_phys);
|
||||
|
||||
void
|
||||
VbeUnmapFramebuffer(Vm86InfoPtr vi, VbeInfoPtr vbe, int mode, void *fb);
|
||||
|
||||
int
|
||||
VbeSetPalette(Vm86InfoPtr vi, VbeInfoPtr vbe, int first, int number, U8 *entries);
|
||||
|
||||
|
||||
int
|
||||
VbeGetPalette(Vm86InfoPtr vi, VbeInfoPtr vbe, int first, int number, U8 *entries);
|
||||
|
||||
|
||||
int
|
||||
VbeSetPaletteOptions(Vm86InfoPtr vi, VbeInfoPtr vbe, U8 bits, int wait);
|
||||
|
||||
void *
|
||||
VbeSetWindow(Vm86InfoPtr vi, VbeInfoPtr vbe, int offset, int purpose, int *size_return);
|
||||
|
||||
int
|
||||
VbeReportVib(Vm86InfoPtr vi, VbeInfoBlock *vib);
|
||||
|
||||
int
|
||||
VbeReportModeInfo(Vm86InfoPtr vi, U16 mode, VbeModeInfoBlock *vmib);
|
||||
|
||||
Bool
|
||||
VbeDPMS(Vm86InfoPtr vi, VbeInfoPtr vbe, int mode);
|
||||
|
||||
int
|
||||
VbeDoInterrupt10(Vm86InfoPtr vi);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -25,6 +25,8 @@ THE SOFTWARE.
|
|||
#include <config.h>
|
||||
#endif
|
||||
#include "vesa.h"
|
||||
#include "vga.h"
|
||||
#include "vbe.h"
|
||||
#ifdef RANDR
|
||||
#include <randrstr.h>
|
||||
#endif
|
||||
|
@ -93,11 +95,14 @@ vesaReportMode (VesaModePtr mode)
|
|||
int vga_compatible = !((mode->ModeAttributes&MODE_VGA)?1:0);
|
||||
int linear_fb = (mode->ModeAttributes&MODE_LINEAR)?1:0;
|
||||
|
||||
ErrorF("0x%04X: %dx%dx%d%s",
|
||||
ErrorF("0x%04X: %dx%dx%d%s%s",
|
||||
(unsigned)mode->mode,
|
||||
(int)mode->XResolution, (int)mode->YResolution,
|
||||
vesaDepth (mode),
|
||||
colour?"":" (monochrome)");
|
||||
colour?"":" (monochrome)",
|
||||
graphics?"":" (graphics)",
|
||||
vga_compatible?"":" (vga compatible)",
|
||||
linear_fb?"":" (linear frame buffer)");
|
||||
switch(mode->MemoryModel) {
|
||||
case MEMORY_TEXT:
|
||||
ErrorF(" text mode");
|
||||
|
@ -201,8 +206,6 @@ vesaGetModes (Vm86InfoPtr vi, int *ret_nmode)
|
|||
Bool
|
||||
vesaInitialize (KdCardInfo *card, VesaCardPrivPtr priv)
|
||||
{
|
||||
int code;
|
||||
|
||||
priv->vi = Vm86Setup(vesa_map_holes);
|
||||
if(!priv->vi)
|
||||
goto fail;
|
||||
|
@ -349,6 +352,7 @@ vesaModeGood (KdScreenInfo *screen,
|
|||
{
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#define vabs(a) ((a) >= 0 ? (a) : -(a))
|
||||
|
@ -424,9 +428,7 @@ vesaSelectMode (KdScreenInfo *screen)
|
|||
Bool
|
||||
vesaScreenInitialize (KdScreenInfo *screen, VesaScreenPrivPtr pscr)
|
||||
{
|
||||
VesaCardPrivPtr priv = screen->card->driver;
|
||||
VesaModePtr mode;
|
||||
Pixel allbits;
|
||||
|
||||
screen->driver = pscr;
|
||||
|
||||
|
@ -568,7 +570,6 @@ vesaSetWindowLinear (ScreenPtr pScreen,
|
|||
CARD32 *size)
|
||||
{
|
||||
KdScreenPriv(pScreen);
|
||||
VesaCardPrivPtr priv = pScreenPriv->card->driver;
|
||||
VesaScreenPrivPtr pscr = pScreenPriv->screen->driver;
|
||||
|
||||
*size = pscr->mode.BytesPerScanLine;
|
||||
|
@ -668,7 +669,6 @@ vesaWindowCga (ScreenPtr pScreen,
|
|||
void *closure)
|
||||
{
|
||||
KdScreenPriv(pScreen);
|
||||
VesaCardPrivPtr priv = pScreenPriv->card->driver;
|
||||
VesaScreenPrivPtr pscr = pScreenPriv->screen->driver;
|
||||
int line;
|
||||
|
||||
|
@ -685,21 +685,18 @@ vesaUpdateMono (ScreenPtr pScreen,
|
|||
{
|
||||
RegionPtr damage = &pBuf->damage;
|
||||
PixmapPtr pShadow = pBuf->pPixmap;
|
||||
shadowScrPriv(pScreen);
|
||||
int nbox = REGION_NUM_RECTS (damage);
|
||||
BoxPtr pbox = REGION_RECTS (damage);
|
||||
FbBits *shaBase, *shaLine, *sha;
|
||||
FbBits s;
|
||||
FbStride shaStride;
|
||||
int scrBase, scrLine, scr;
|
||||
int shaBpp;
|
||||
int shaXoff, shaYoff; /* XXX assumed to be zero */
|
||||
int x, y, w, h, width;
|
||||
int i;
|
||||
FbBits *winBase, *winLine, *win;
|
||||
FbBits *winBase = 0, *win;
|
||||
CARD32 winSize;
|
||||
FbBits bits;
|
||||
int plane;
|
||||
|
||||
fbGetDrawable (&pShadow->drawable, shaBase, shaStride, shaBpp, shaXoff, shaYoff);
|
||||
while (nbox--)
|
||||
|
@ -798,7 +795,6 @@ vesaConfigureScreen (ScreenPtr pScreen)
|
|||
{
|
||||
KdScreenPriv(pScreen);
|
||||
KdScreenInfo *screen = pScreenPriv->screen;
|
||||
VesaCardPrivPtr priv = pScreenPriv->card->driver;
|
||||
VesaScreenPrivPtr pscr = pScreenPriv->screen->driver;
|
||||
|
||||
KdMouseMatrix m;
|
||||
|
@ -840,11 +836,9 @@ vesaLayerCreate (ScreenPtr pScreen)
|
|||
{
|
||||
KdScreenPriv(pScreen);
|
||||
KdScreenInfo *screen = pScreenPriv->screen;
|
||||
VesaCardPrivPtr priv = pScreenPriv->card->driver;
|
||||
VesaScreenPrivPtr pscr = pScreenPriv->screen->driver;
|
||||
LayerPtr pLayer;
|
||||
ShadowUpdateProc update;
|
||||
ShadowWindowProc window;
|
||||
ShadowWindowProc window = 0;
|
||||
PixmapPtr pPixmap;
|
||||
int kind;
|
||||
|
||||
|
@ -1144,7 +1138,7 @@ vesaRandRSetConfig (ScreenPtr pScreen,
|
|||
RRScreenSizePtr pSize)
|
||||
{
|
||||
KdScreenPriv(pScreen);
|
||||
VesaModePtr mode;
|
||||
VesaModePtr mode = 0;
|
||||
KdScreenInfo *screen = pScreenPriv->screen;
|
||||
VesaCardPrivPtr priv = pScreenPriv->card->driver;
|
||||
VesaScreenPrivPtr pscr = pScreenPriv->screen->driver;
|
||||
|
@ -1346,9 +1340,6 @@ vesaRandRInit (ScreenPtr pScreen)
|
|||
Bool
|
||||
vesaInitScreen(ScreenPtr pScreen)
|
||||
{
|
||||
KdScreenPriv(pScreen);
|
||||
VesaScreenPrivPtr pscr = pScreenPriv->screen->driver;
|
||||
|
||||
if (!LayerStartInit (pScreen))
|
||||
return FALSE;
|
||||
|
||||
|
@ -1417,7 +1408,6 @@ vesaEnable(ScreenPtr pScreen)
|
|||
VesaCardPrivPtr priv = pScreenPriv->card->driver;
|
||||
VesaScreenPrivPtr pscr = pScreenPriv->screen->driver;
|
||||
KdScreenInfo *screen = pScreenPriv->screen;
|
||||
int code;
|
||||
int i;
|
||||
CARD32 size;
|
||||
char *p;
|
||||
|
@ -1615,7 +1605,6 @@ void
|
|||
vesaPreserve(KdCardInfo *card)
|
||||
{
|
||||
VesaCardPrivPtr priv = card->driver;
|
||||
int code;
|
||||
|
||||
/* The framebuffer might not be valid at this point, so we cannot
|
||||
save the VGA fonts now; we do it in vesaEnable. */
|
||||
|
@ -1678,7 +1667,6 @@ void
|
|||
vesaScreenFini(KdScreenInfo *screen)
|
||||
{
|
||||
VesaScreenPrivPtr pscr = screen->driver;
|
||||
VesaCardPrivPtr priv = screen->card->driver;
|
||||
|
||||
vesaUnmapFramebuffer (screen);
|
||||
screen->fb[0].depth = pscr->origDepth;
|
||||
|
@ -1779,7 +1767,7 @@ vesaGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs)
|
|||
KdScreenPriv(pScreen);
|
||||
VesaScreenPrivPtr pscr = pScreenPriv->screen->driver;
|
||||
VesaCardPrivPtr priv = pScreenPriv->card->driver;
|
||||
int first, i, j, k;
|
||||
int i;
|
||||
int red, green, blue;
|
||||
int min, max;
|
||||
int p;
|
||||
|
|
|
@ -117,6 +117,25 @@ vesaInitialize(KdCardInfo *card, VesaCardPrivPtr priv);
|
|||
Bool
|
||||
vesaCardInit(KdCardInfo *card);
|
||||
|
||||
int
|
||||
vesaDepth (VesaModePtr mode);
|
||||
|
||||
Bool
|
||||
vesaModeGood (KdScreenInfo *screen,
|
||||
VesaModePtr a);
|
||||
|
||||
int
|
||||
vesaSizeError (KdScreenInfo *screen,
|
||||
VesaModePtr a);
|
||||
|
||||
Bool
|
||||
vesaModeBetter (KdScreenInfo *screen,
|
||||
VesaModePtr a,
|
||||
VesaModePtr b);
|
||||
|
||||
VesaModePtr
|
||||
vesaSelectMode (KdScreenInfo *screen);
|
||||
|
||||
Bool
|
||||
vesaInitialize (KdCardInfo *card, VesaCardPrivPtr priv);
|
||||
|
||||
|
@ -129,12 +148,19 @@ vesaScreenInit(KdScreenInfo *screen);
|
|||
LayerPtr
|
||||
vesaLayerCreate (ScreenPtr pScreen);
|
||||
|
||||
Bool
|
||||
vesaMapFramebuffer (KdScreenInfo *screen);
|
||||
|
||||
Bool
|
||||
vesaInitScreen(ScreenPtr pScreen);
|
||||
|
||||
Bool
|
||||
vesaFinishInitScreen(ScreenPtr pScreen);
|
||||
|
||||
Bool
|
||||
vesaSetMode (ScreenPtr pScreen,
|
||||
VesaModePtr mode);
|
||||
|
||||
Bool
|
||||
vesaEnable(ScreenPtr pScreen);
|
||||
|
||||
|
@ -165,4 +191,12 @@ vesaGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs);
|
|||
int
|
||||
vesaProcessArgument (int argc, char **argv, int i);
|
||||
|
||||
#ifdef RANDR
|
||||
Bool
|
||||
vesaRandRSetConfig (ScreenPtr pScreen,
|
||||
Rotation randr,
|
||||
int rate,
|
||||
RRScreenSizePtr pSize);
|
||||
#endif
|
||||
|
||||
#endif /* _VESA_H_ */
|
||||
|
|
|
@ -115,14 +115,14 @@ VgaGetMode (Vm86InfoPtr vi, int *mode)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
VgaSetWritePlaneMask(Vm86InfoPtr vi, int mask)
|
||||
{
|
||||
asm volatile ("outb %b0,%w1" : : "a" (2), "d" (0x3c4));
|
||||
asm volatile ("outb %b0,%w1" : : "a" (mask), "d" (0x3c5));
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
VgaSetReadPlaneMap(Vm86InfoPtr vi, int map)
|
||||
{
|
||||
asm volatile ("outb %b0,%w1" : : "a" (4), "d" (0x3ce));
|
||||
|
|
|
@ -37,10 +37,10 @@ VgaSetMode(Vm86InfoPtr vi, int mode);
|
|||
int
|
||||
VgaGetMode (Vm86InfoPtr vi, int *mode);
|
||||
|
||||
int
|
||||
void
|
||||
VgaSetWritePlaneMask(Vm86InfoPtr vi, int mask);
|
||||
|
||||
int
|
||||
void
|
||||
VgaSetReadPlaneMap(Vm86InfoPtr vi, int map);
|
||||
|
||||
int
|
||||
|
|
|
@ -328,8 +328,8 @@ vm86_outl(U16 port, U32 value)
|
|||
#define SEG_FS 6
|
||||
#define REP 1
|
||||
#define REPNZ 2
|
||||
#define SET_8(_x, _y) (_x) = (_x & ~0xFF) | (_y & 0xFF);
|
||||
#define SET_16(_x, _y) (_x) = (_x & ~0xFFFF) | (_y & 0xFFFF);
|
||||
#define SET_8(_x, _y) (_x) = ((_x) & ~0xFF) | ((_y) & 0xFF);
|
||||
#define SET_16(_x, _y) (_x) = ((_x) & ~0xFFFF) | ((_y) & 0xFFFF);
|
||||
#define INC_IP(_i) SET_16(regs->eip, (regs->eip + _i))
|
||||
#define AGAIN INC_IP(1); goto again;
|
||||
|
||||
|
@ -340,8 +340,6 @@ vm86_emulate(Vm86InfoPtr vi)
|
|||
U8 opcode;
|
||||
int size;
|
||||
int pref_seg = 0, pref_rep = 0, pref_66 = 0, pref_67 = 0;
|
||||
U32 count;
|
||||
int code;
|
||||
|
||||
again:
|
||||
if(!Vm86IsMemory(vi, MAKE_POINTER(regs->cs, regs->eip))) {
|
||||
|
@ -412,7 +410,7 @@ vm86_emulate(Vm86InfoPtr vi)
|
|||
goto again;
|
||||
} else {
|
||||
SET_16(regs->ecx, regs->ecx - 1);
|
||||
if(regs->ecx & 0xFFFF != 0)
|
||||
if((regs->ecx & 0xFFFF) != 0)
|
||||
goto again;
|
||||
}
|
||||
}
|
||||
|
@ -470,7 +468,7 @@ vm86_emulate(Vm86InfoPtr vi)
|
|||
goto again;
|
||||
} else {
|
||||
SET_16(regs->ecx, regs->ecx - 1);
|
||||
if(regs->ecx & 0xFFFF != 0)
|
||||
if((regs->ecx & 0xFFFF) != 0)
|
||||
goto again;
|
||||
}
|
||||
}
|
||||
|
@ -571,6 +569,7 @@ Vm86Memory(Vm86InfoPtr vi, U32 i)
|
|||
return HM(vi, i);
|
||||
else {
|
||||
ErrorF("Reading unmapped memory at 0x%08X\n", i);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user