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