mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-10 19:04:36 +08:00
912 lines
29 KiB
Diff
912 lines
29 KiB
Diff
diff --git a/configure.ac b/configure.ac
|
|
index 225e516..c0ed508 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -44,9 +44,6 @@ XORG_DEFAULT_OPTIONS
|
|
AC_DISABLE_STATIC
|
|
AC_PROG_LIBTOOL
|
|
|
|
-# Checks for programs.
|
|
-AM_PROG_CC_C_O
|
|
-
|
|
AH_TOP([#include "xorg-server.h"])
|
|
|
|
# Define a configure option for an alternate module directory
|
|
diff --git a/man/chips.man b/man/chips.man
|
|
index 740af38..0c022ee 100644
|
|
--- a/man/chips.man
|
|
+++ b/man/chips.man
|
|
@@ -165,9 +165,6 @@ Force the use of memory mapped IO where it can be used. Default: off
|
|
Force driver to leave centering and stretching registers alone. This
|
|
can fix some laptop suspend/resume problems. Default: off
|
|
.TP
|
|
-.BI "Option \*qOverlay\*q"
|
|
-Enable 8+24 overlay mode. Only appropriate for depth 24. Default: off.
|
|
-.TP
|
|
.BI "Option \*qColorKey\*q \*q" integer \*q
|
|
Set the colormap index used for the transparency key for the depth 8 plane
|
|
when operating in 8+16 overlay mode. The value must be in the range
|
|
diff --git a/src/ct_accel.c b/src/ct_accel.c
|
|
index 3920b0a..4b5776a 100644
|
|
--- a/src/ct_accel.c
|
|
+++ b/src/ct_accel.c
|
|
@@ -428,19 +428,7 @@ chips_imagewrite:
|
|
infoPtr->ImageWriteFlags |= NO_PLANEMASK;
|
|
#endif
|
|
|
|
-
|
|
-#ifdef CHIPS_HIQV
|
|
- if (XAAInit(pScreen, infoPtr)) {
|
|
- if (cPtr->Flags & ChipsOverlay8plus16)
|
|
- return(XAAInitDualFramebufferOverlay(pScreen,
|
|
- CTNAME(DepthChange)));
|
|
- else
|
|
- return TRUE;
|
|
- } else
|
|
- return FALSE;
|
|
-#else
|
|
return(XAAInit(pScreen, infoPtr));
|
|
-#endif
|
|
}
|
|
|
|
#ifdef CHIPS_HIQV
|
|
@@ -1243,11 +1231,6 @@ CTNAME(SubsequentScreenToScreenColorExpandFill)(ScrnInfoPtr pScrn,
|
|
#endif
|
|
w *= cAcl->BytesPerPixel;
|
|
ctBLTWAIT;
|
|
-#ifdef CHIPS_HIQV
|
|
- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16) &&
|
|
- (pScrn->depth == 8))
|
|
- ctSETPITCH(cAcl->PitchInBytes << 1, cAcl->PitchInBytes);
|
|
-#endif
|
|
ctSETSRCADDR(srcaddr);
|
|
ctSETDSTADDR(destaddr);
|
|
#ifdef CHIPS_HIQV
|
|
@@ -1271,10 +1254,6 @@ CTNAME(SetupForColor8x8PatternFill)(ScrnInfoPtr pScrn, int patx, int paty,
|
|
patternaddr = (paty * pScrn->displayWidth +
|
|
(patx & ~0x3F)) * cAcl->BytesPerPixel;
|
|
cAcl->patternyrot = (patx & 0x3F) >> 3;
|
|
-#ifdef CHIPS_HIQV
|
|
- if (cPtr->Flags & ChipsOverlay8plus16)
|
|
- patternaddr += cPtr->FbOffset16;
|
|
-#endif
|
|
|
|
ctBLTWAIT;
|
|
ctSETPATSRCADDR(patternaddr);
|
|
@@ -1338,10 +1317,7 @@ CTNAME(SetupForMono8x8PatternFill)(ScrnInfoPtr pScrn, int patx, int paty,
|
|
|
|
#ifdef CHIPS_HIQV
|
|
patternaddr = paty * pScrn->displayWidth + patx;
|
|
- if (cPtr->Flags & ChipsOverlay8plus16)
|
|
- patternaddr = patternaddr * 2 + cPtr->FbOffset16;
|
|
- else
|
|
- patternaddr *= cAcl->BytesPerPixel;
|
|
+ patternaddr *= cAcl->BytesPerPixel;
|
|
#else
|
|
patternaddr = (paty * pScrn->displayWidth + patx) * cAcl->BytesPerPixel;
|
|
#endif
|
|
@@ -1593,10 +1569,7 @@ CTNAME(WritePixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
|
|
dwords = (((skipleft + bytesPerLine + 0x7) & ~0x7)) >> 2;
|
|
destaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
|
|
destpitch = pScrn->displayWidth * (bpp >> 3);
|
|
- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
|
|
- destaddr += cPtr->FbOffset16;
|
|
- else
|
|
- destaddr += cAcl->FbOffset;
|
|
+ destaddr += cAcl->FbOffset;
|
|
|
|
ctBLTWAIT;
|
|
|
|
@@ -1681,10 +1654,7 @@ CTNAME(WritePixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
|
|
y++;
|
|
|
|
destaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
|
|
- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
|
|
- destaddr += cPtr->FbOffset16;
|
|
- else
|
|
- destaddr += cAcl->FbOffset;
|
|
+ destaddr += cAcl->FbOffset;
|
|
|
|
ctBLTWAIT;
|
|
ctSETDSTADDR(destaddr);
|
|
@@ -1717,10 +1687,7 @@ CTNAME(ReadPixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
|
|
dwords = (((bytesPerLine + 0x7) & ~0x7)) >> 2;
|
|
srcaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
|
|
srcpitch = pScrn->displayWidth * (bpp >> 3);
|
|
- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
|
|
- srcaddr += cPtr->FbOffset16;
|
|
- else
|
|
- srcaddr += cAcl->FbOffset;
|
|
+ srcaddr += cAcl->FbOffset;
|
|
|
|
ctBLTWAIT;
|
|
ctSETROP( ctDSTSYSTEM | ctLEFT2RIGHT | ctTOP2BOTTOM |
|
|
@@ -1755,10 +1722,7 @@ CTNAME(ReadPixmap)(ScrnInfoPtr pScrn, int x, int y, int w, int h,
|
|
dst += dstwidth;
|
|
y++;
|
|
srcaddr = (y * pScrn->displayWidth + x) * (bpp >> 3);
|
|
- if ((y >= pScrn->virtualY) && (cPtr->Flags & ChipsOverlay8plus16))
|
|
- srcaddr += cPtr->FbOffset16;
|
|
- else
|
|
- srcaddr += cAcl->FbOffset;
|
|
+ srcaddr += cAcl->FbOffset;
|
|
ctBLTWAIT;
|
|
ctSETSRCADDR(srcaddr);
|
|
ctSETHEIGHTWIDTHGO(h, bytesPerLine);
|
|
diff --git a/src/ct_driver.c b/src/ct_driver.c
|
|
index 6624b79..a2e5c94 100644
|
|
--- a/src/ct_driver.c
|
|
+++ b/src/ct_driver.c
|
|
@@ -949,7 +949,7 @@ CHIPSProbe(DriverPtr drv, int flags)
|
|
}
|
|
|
|
}
|
|
- xfree(usedChips);
|
|
+ free(usedChips);
|
|
}
|
|
}
|
|
|
|
@@ -981,12 +981,12 @@ CHIPSProbe(DriverPtr drv, int flags)
|
|
pScrn->ValidMode = CHIPSValidMode;
|
|
foundScreen = TRUE;
|
|
}
|
|
- xfree(usedChips);
|
|
+ free(usedChips);
|
|
}
|
|
}
|
|
#endif
|
|
|
|
- xfree(devSections);
|
|
+ free(devSections);
|
|
return foundScreen;
|
|
}
|
|
#endif
|
|
@@ -1446,7 +1446,12 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
|
|
|
|
hwp = VGAHWPTR(pScrn);
|
|
vgaHWGetIOBase(hwp);
|
|
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12
|
|
cPtr->PIOBase = hwp->PIOOffset;
|
|
+#else
|
|
+ cPtr->PIOBase = 0;
|
|
+#endif
|
|
+
|
|
/*
|
|
* Must allow ensure that storage for the 2nd set of vga registers is
|
|
* allocated for dual channel cards
|
|
@@ -1639,55 +1644,15 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
|
|
}
|
|
}
|
|
|
|
- if ((s = xf86GetOptValString(cPtr->Options, OPTION_OVERLAY))) {
|
|
- if (!*s || !xf86NameCmp(s, "8,16") || !xf86NameCmp(s, "16,8")) {
|
|
- if (pScrn->bitsPerPixel == 16) {
|
|
- if (cPtr->Flags & ChipsLinearSupport) {
|
|
- cPtr->Flags |= ChipsOverlay8plus16;
|
|
- if(!xf86GetOptValInteger(
|
|
- cPtr->Options, OPTION_COLOR_KEY, &(pScrn->colorKey)))
|
|
- pScrn->colorKey = TRANSPARENCY_KEY;
|
|
- pScrn->overlayFlags = OVERLAY_8_16_DUALFB;
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
|
|
- "PseudoColor overlay enabled.\n");
|
|
- if (!xf86IsOptionSet(cPtr->Options, OPTION_LCD_STRETCH))
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
|
- " - Forcing option \"Stretch\" \"ON\".\n");
|
|
- if (!xf86IsOptionSet(cPtr->Options, OPTION_LCD_CENTER))
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
|
- " - Forcing option \"LcdCenter\" \"OFF\".\n");
|
|
- if (cPtr->Flags & ChipsShadowFB) {
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
|
- " - Disabling \"Shadow Framebuffer\".\n");
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
|
- " Not support with option \"8Plus16\".\n");
|
|
- cPtr->Flags &= ~ChipsShadowFB;
|
|
- cPtr->Rotate = 0;
|
|
- }
|
|
- } else {
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Option \"Overlay\" ignored. Not supported without linear addressing\n");
|
|
- }
|
|
- } else {
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
|
- "Option \"Overlay\" is not supported in this configuration\n");
|
|
- }
|
|
- } else {
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
|
- "\"%s\" is not a valid value for Option \"Overlay\"\n", s);
|
|
- }
|
|
- }
|
|
-
|
|
- if (!(cPtr->Flags & ChipsOverlay8plus16)) {
|
|
- if(xf86GetOptValInteger(cPtr->Options, OPTION_VIDEO_KEY,
|
|
- &(cPtr->videoKey))) {
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n",
|
|
+ if(xf86GetOptValInteger(cPtr->Options, OPTION_VIDEO_KEY,
|
|
+ &(cPtr->videoKey))) {
|
|
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n",
|
|
cPtr->videoKey);
|
|
- } else {
|
|
- cPtr->videoKey = (1 << pScrn->offset.red) |
|
|
+ } else {
|
|
+ cPtr->videoKey = (1 << pScrn->offset.red) |
|
|
(1 << pScrn->offset.green) |
|
|
(((pScrn->mask.blue >> pScrn->offset.blue) - 1)
|
|
<< pScrn->offset.blue);
|
|
- }
|
|
}
|
|
|
|
if (cPtr->Flags & ChipsShadowFB) {
|
|
@@ -2335,28 +2300,16 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags)
|
|
/* and 32bits on the others. Thus multiply by a suitable factor */
|
|
if (cPtr->Flags & Chips64BitMemory) {
|
|
if (cPtr->FrameBufferSize && (cPtr->PanelType & ChipsLCD))
|
|
- if (cPtr->Flags & ChipsOverlay8plus16 )
|
|
- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 8 * 0.7 / 4);
|
|
- else
|
|
cPtr->MaxClock = min(cPtr->MaxClock,
|
|
MemClk->Clk * 8 * 0.7 / (bytesPerPixel + 1));
|
|
else
|
|
- if (cPtr->Flags & ChipsOverlay8plus16)
|
|
- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 8 * 0.7 / 3);
|
|
- else
|
|
cPtr->MaxClock = min(cPtr->MaxClock,
|
|
MemClk->Clk * 8 * 0.7 / bytesPerPixel);
|
|
} else {
|
|
if (cPtr->FrameBufferSize && (cPtr->PanelType & ChipsLCD))
|
|
- if (cPtr->Flags & ChipsOverlay8plus16 )
|
|
- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 4 * 0.7 / 4);
|
|
- else
|
|
cPtr->MaxClock = min(cPtr->MaxClock,
|
|
MemClk->Clk * 4 * 0.7 / (bytesPerPixel + 1));
|
|
else
|
|
- if (cPtr->Flags & ChipsOverlay8plus16)
|
|
- cPtr->MaxClock = min(cPtr->MaxClock, MemClk->Clk * 4 * 0.7 / 3);
|
|
- else
|
|
cPtr->MaxClock = min(cPtr->MaxClock,
|
|
MemClk->Clk * 4 * 0.7 / bytesPerPixel);
|
|
}
|
|
@@ -3736,8 +3689,7 @@ CHIPSEnterVT(int scrnIndex, int flags)
|
|
/* Should we re-save the text mode on each VT enter? */
|
|
if(!chipsModeInit(pScrn, pScrn->currentMode))
|
|
return FALSE;
|
|
- if ((!(cPtr->Flags & ChipsOverlay8plus16))
|
|
- && (cPtr->Flags & ChipsVideoSupport)
|
|
+ if ((cPtr->Flags & ChipsVideoSupport)
|
|
&& (cPtr->Flags & ChipsLinearSupport))
|
|
CHIPSResetVideo(pScrn);
|
|
|
|
@@ -3788,8 +3740,7 @@ chipsLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
|
|
int i, index, shift ;
|
|
CHIPSEntPtr cPtrEnt;
|
|
|
|
- shift = ((pScrn->depth == 15) &&
|
|
- (!(cPtr->Flags & ChipsOverlay8plus16))) ? 3 : 0;
|
|
+ shift = (pScrn->depth == 15) ? 3 : 0;
|
|
|
|
if (cPtr->UseDualChannel) {
|
|
cPtrEnt = xf86GetEntityPrivate(pScrn->entityList[0],
|
|
@@ -3895,18 +3846,6 @@ chipsLoadPalette16(ScrnInfoPtr pScrn, int numColors, int *indices,
|
|
hwp->disablePalette(hwp);
|
|
}
|
|
|
|
-static Bool
|
|
-cfb8_16ScreenInit(ScreenPtr pScreen, pointer pbits16, pointer pbits8,
|
|
- int xsize, int ysize, int dpix, int dpiy,
|
|
- int width16, int width8)
|
|
-{
|
|
- return
|
|
- (fbOverlaySetupScreen(pScreen, pbits16, pbits8, xsize, ysize,
|
|
- dpix, dpiy, width16, width8, 16, 8) &&
|
|
- fbOverlayFinishScreenInit(pScreen, pbits16, pbits8, xsize, ysize,
|
|
- dpix, dpiy, width16, width8, 16, 8, 16, 8));
|
|
-}
|
|
-
|
|
/* Mandatory */
|
|
static Bool
|
|
CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
@@ -3947,22 +3886,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
if (!chipsMapMem(pScrn))
|
|
return FALSE;
|
|
|
|
- /* Setup a pointer to the overlay if needed */
|
|
- if (cPtr->Flags & ChipsOverlay8plus16) {
|
|
- cPtr->FbOffset16 = pScrn->displayWidth * pScrn->virtualY;
|
|
- cPtr->FbSize16 = (pScrn->displayWidth << 1) * pScrn->virtualY;
|
|
- if (cPtr->FbSize16 > (cPtr->FbMapSize - cPtr->FrameBufferSize)) {
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
|
|
- "Too little memory for overlay. Disabling.\n");
|
|
- cPtr->Flags &= ~ChipsOverlay8plus16;
|
|
- }
|
|
- if ((pScrn->displayWidth > 1024) || (pScrn->virtualY > 1024)) {
|
|
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
|
|
- "Max overlay Width/Height 1024 pixels. Disabling.\n");
|
|
- cPtr->Flags &= ~ChipsOverlay8plus16;
|
|
- }
|
|
- }
|
|
-
|
|
/* Setup the MMIO register access functions if need */
|
|
if (cPtr->UseFullMMIO && cPtr->MMIOBaseVGA) {
|
|
CHIPSSetMmioExtFuncs(cPtr);
|
|
@@ -4035,18 +3958,10 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
miClearVisualTypes();
|
|
|
|
/* Setup the visuals we support. */
|
|
- if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16)){
|
|
- if (!miSetVisualTypes(8, PseudoColorMask | GrayScaleMask,
|
|
- pScrn->rgbBits, PseudoColor))
|
|
- return FALSE;
|
|
- if (!miSetVisualTypes(16, TrueColorMask, pScrn->rgbBits, TrueColor))
|
|
- return FALSE;
|
|
- } else {
|
|
- if (!miSetVisualTypes(pScrn->depth,
|
|
+ if (!miSetVisualTypes(pScrn->depth,
|
|
miGetDefaultVisualMask(pScrn->depth),
|
|
pScrn->rgbBits, pScrn->defaultVisual))
|
|
- return FALSE;
|
|
- }
|
|
+ return FALSE;
|
|
miSetPixmapDepths ();
|
|
|
|
/*
|
|
@@ -4090,13 +4005,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
break;
|
|
#endif
|
|
case 16:
|
|
- if (cPtr->Flags & ChipsOverlay8plus16) {
|
|
- ret = cfb8_16ScreenInit(pScreen, (unsigned char *)FBStart +
|
|
- cPtr->FbOffset16, FBStart, width,
|
|
- height, pScrn->xDpi, pScrn->yDpi,
|
|
- displayWidth, displayWidth);
|
|
- break;
|
|
- }
|
|
default:
|
|
ret = fbScreenInit(pScreen, FBStart,
|
|
width,height,
|
|
@@ -4223,7 +4131,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
}
|
|
if (!miInitializeBanking(pScreen, pScrn->virtualX, pScrn->virtualY,
|
|
pScrn->displayWidth, pBankInfo)) {
|
|
- xfree(pBankInfo);
|
|
+ free(pBankInfo);
|
|
pBankInfo = NULL;
|
|
return FALSE;
|
|
}
|
|
@@ -4244,9 +4152,6 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
if (pScrn->bitsPerPixel < 8)
|
|
freespace = allocatebase - pScrn->displayWidth *
|
|
pScrn->virtualY / 2;
|
|
- else if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16))
|
|
- freespace = allocatebase - pScrn->displayWidth *
|
|
- pScrn->virtualY - cPtr->FbSize16;
|
|
else
|
|
freespace = allocatebase - pScrn->displayWidth *
|
|
pScrn->virtualY * (pScrn->bitsPerPixel >> 3);
|
|
@@ -4369,9 +4274,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
AvailFBArea.y2 = cAcl->CacheEnd /
|
|
(pScrn->displayWidth * (pScrn->bitsPerPixel >> 3));
|
|
|
|
- if (!(cPtr->Flags & ChipsOverlay8plus16)) {
|
|
- xf86InitFBManager(pScreen, &AvailFBArea);
|
|
- }
|
|
+ xf86InitFBManager(pScreen, &AvailFBArea);
|
|
}
|
|
if (cPtr->Flags & ChipsAccelSupport) {
|
|
if (IS_HiQV(cPtr)) {
|
|
@@ -4425,16 +4328,10 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
if (!miCreateDefColormap(pScreen))
|
|
return FALSE;
|
|
|
|
- if ((cPtr->Flags & ChipsOverlay8plus16) && (pScrn->bitsPerPixel == 16)) {
|
|
- if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits, chipsLoadPalette,
|
|
- NULL, CMAP_RELOAD_ON_MODE_SWITCH))
|
|
- return FALSE;
|
|
- } else {
|
|
- if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits,
|
|
+ if(!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits,
|
|
(pScrn->depth == 16 ? chipsLoadPalette16 : chipsLoadPalette),
|
|
NULL, CMAP_RELOAD_ON_MODE_SWITCH | CMAP_PALETTED_TRUECOLOR))
|
|
- return FALSE;
|
|
- }
|
|
+ return FALSE;
|
|
|
|
#ifndef XSERVER_LIBPCIACCESS
|
|
racflag = RAC_COLORMAP;
|
|
@@ -4448,8 +4345,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
|
xf86SetSilkenMouse(pScreen);
|
|
#endif
|
|
|
|
- if ((!(cPtr->Flags & ChipsOverlay8plus16))
|
|
- && (cPtr->Flags & ChipsVideoSupport)
|
|
+ if ((cPtr->Flags & ChipsVideoSupport)
|
|
&& (cPtr->Flags & ChipsLinearSupport)) {
|
|
CHIPSInitVideo(pScreen);
|
|
}
|
|
@@ -4522,10 +4418,7 @@ CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags)
|
|
Base >>= 3;
|
|
break;
|
|
case 16:
|
|
- if (!(cPtr->Flags & ChipsOverlay8plus16))
|
|
- Base >>= 1;
|
|
- else
|
|
- Base >>= 2;
|
|
+ Base >>= 1;
|
|
break;
|
|
case 24:
|
|
if (!IS_HiQV(cPtr))
|
|
@@ -4581,14 +4474,6 @@ CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags)
|
|
cPtr->writeMSS(cPtr, hwp, MSS);
|
|
}
|
|
|
|
- if (cPtr->Flags & ChipsOverlay8plus16) {
|
|
- Base = (Base << 3) & ~(unsigned long)0xF;
|
|
-
|
|
- cPtr->writeMR(cPtr, 0x22, (cPtr->FbOffset16 + Base) & 0xF8);
|
|
- cPtr->writeMR(cPtr, 0x23, ((cPtr->FbOffset16 + Base) >> 8) & 0xFF);
|
|
- cPtr->writeMR(cPtr, 0x24, ((cPtr->FbOffset16 + Base) >> 16) & 0xFF);
|
|
- }
|
|
-
|
|
}
|
|
|
|
/* Mandatory */
|
|
@@ -4652,13 +4537,6 @@ CHIPSValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
|
|
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
|
|
CHIPSPtr cPtr = CHIPSPTR(pScrn);
|
|
|
|
- if (flags & MODECHECK_FINAL) {
|
|
- /* Don't subtract FrambufferSize here as it should be subtracted already */
|
|
- if ((cPtr->Flags & ChipsOverlay8plus16)
|
|
- && ((pScrn->videoRam<<10) - pScrn->displayWidth * 3 * pScrn->virtualY
|
|
- < 0))
|
|
- return MODE_MEM;
|
|
- }
|
|
/* The tests here need to be expanded */
|
|
if ((mode->Flags & V_INTERLACE) && (cPtr->PanelType & ChipsLCD))
|
|
return MODE_NO_INTERLACE;
|
|
@@ -5544,12 +5422,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|
} else {
|
|
ChipsStd->Attribute[0x10] = 0x01; /* mode */
|
|
}
|
|
- if ((pScrn->bitsPerPixel == 16) && (cPtr->Flags & ChipsOverlay8plus16)) {
|
|
- /* Make sure that the overlay isn't visible in the overscan region */
|
|
- if (ChipsStd->Attribute[0x11] == pScrn->colorKey)
|
|
- ChipsStd->Attribute[0x11] = pScrn->colorKey - 1;
|
|
- } else
|
|
- ChipsStd->Attribute[0x11] = 0x00; /* overscan (border) color */
|
|
+ ChipsStd->Attribute[0x11] = 0x00; /* overscan (border) color */
|
|
ChipsStd->Attribute[0x12] = 0x0F; /* enable all color planes */
|
|
ChipsStd->Attribute[0x13] = 0x00; /* horiz pixel panning 0 */
|
|
|
|
@@ -5558,8 +5431,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|
/* set virtual screen width */
|
|
tmp = pScrn->displayWidth >> 3;
|
|
if (pScrn->bitsPerPixel == 16) {
|
|
- if (!(cPtr->Flags & ChipsOverlay8plus16))
|
|
- tmp <<= 1; /* double the width of the buffer */
|
|
+ tmp <<= 1; /* double the width of the buffer */
|
|
} else if (pScrn->bitsPerPixel == 24) {
|
|
tmp += tmp << 1;
|
|
} else if (pScrn->bitsPerPixel == 32) {
|
|
@@ -5688,8 +5560,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|
|
|
/* centering/stretching */
|
|
if (!xf86ReturnOptValBool(cPtr->Options, OPTION_SUSPEND_HACK, FALSE)) {
|
|
- if (!xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_STRETCH, FALSE) ||
|
|
- (cPtr->Flags & ChipsOverlay8plus16)) {
|
|
+ if (!xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_STRETCH, FALSE)) {
|
|
ChipsNew->FR[0x40] &= 0xDF; /* Disable Horizontal stretching */
|
|
ChipsNew->FR[0x48] &= 0xFB; /* Disable vertical stretching */
|
|
ChipsNew->XR[0xA0] = 0x10; /* Disable cursor stretching */
|
|
@@ -5709,8 +5580,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|
}
|
|
}
|
|
|
|
- if ((xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_CENTER, TRUE))
|
|
- || (cPtr->Flags & ChipsOverlay8plus16)) {
|
|
+ if (xf86ReturnOptValBool(cPtr->Options, OPTION_LCD_CENTER, TRUE)) {
|
|
ChipsNew->FR[0x40] |= 0x3; /* Enable Horizontal centering */
|
|
ChipsNew->FR[0x48] |= 0x3; /* Enable Vertical centering */
|
|
} else {
|
|
@@ -5723,8 +5593,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|
ChipsNew->XR[0x82] |=0x02;
|
|
|
|
/* software mode flag */
|
|
- ChipsNew->XR[0xE2] = chipsVideoMode(((cPtr->Flags & ChipsOverlay8plus16) ?
|
|
- 8 : pScrn->depth), (cPtr->PanelType & ChipsLCD) ?
|
|
+ ChipsNew->XR[0xE2] = chipsVideoMode((pScrn->depth), (cPtr->PanelType & ChipsLCD) ?
|
|
min(mode->CrtcHDisplay, cPtr->PanelSize.HDisplay) :
|
|
mode->CrtcHDisplay, mode->CrtcVDisplay);
|
|
#ifdef DEBUG
|
|
@@ -5762,7 +5631,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|
}
|
|
}
|
|
/* bpp depend */
|
|
- if ((pScrn->bitsPerPixel == 16) && (!(cPtr->Flags & ChipsOverlay8plus16))) {
|
|
+ if (pScrn->bitsPerPixel == 16) {
|
|
ChipsNew->XR[0x81] = (ChipsNew->XR[0x81] & 0xF0) | 0x4;
|
|
if (cPtr->Flags & ChipsGammaSupport)
|
|
ChipsNew->XR[0x82] |= 0x0C;
|
|
@@ -5915,60 +5784,7 @@ chipsModeInitHiQV(ScrnInfoPtr pScrn, DisplayModePtr mode)
|
|
/* Turn off multimedia by default as it degrades performance */
|
|
ChipsNew->XR[0xD0] &= 0x0f;
|
|
|
|
- /* Setup the video/overlay */
|
|
- if (cPtr->Flags & ChipsOverlay8plus16) {
|
|
- ChipsNew->XR[0xD0] |= 0x10; /* Force the Multimedia engine on */
|
|
-#ifdef SAR04
|
|
- ChipsNew->XR[0x4F] = 0x2A; /* SAR04 >352 pixel overlay width */
|
|
-#endif
|
|
- ChipsNew->MR[0x1E] &= 0xE0; /* Set Zoom and Direction */
|
|
- if ((!(cPtr->PanelType & ChipsLCD)) && (mode->Flags & V_INTERLACE))
|
|
- ChipsNew->MR[0x1E] |= 0x10; /* Interlace */
|
|
- ChipsNew->MR[0x1F] &= 0x14; /* Mask reserved bits */
|
|
- ChipsNew->MR[0x1F] |= 0x08; /* RGB 16bpp */
|
|
- if (pScrn->weight.green == 5)
|
|
- ChipsNew->MR[0x1F] |= 0x01; /* RGB 15bpp */
|
|
-
|
|
- ChipsNew->MR[0x20] &= 0x03; /* Mask reserved bits */
|
|
- ChipsNew->MR[0x20] |= 0x80; /* Auto Centre, Use mem ptr1 */
|
|
- ChipsNew->MR[0x22] = cPtr->FbOffset16 & 0xF8; /* Setup Pointer 1 */
|
|
- ChipsNew->MR[0x23] = (cPtr->FbOffset16 >> 8) & 0xFF;
|
|
- ChipsNew->MR[0x24] = (cPtr->FbOffset16 >> 16) & 0xFF;
|
|
- ChipsNew->MR[0x25] = cPtr->FbOffset16 & 0xF8; /* Setup Pointer 2 */
|
|
- ChipsNew->MR[0x26] = (cPtr->FbOffset16 >> 8) & 0xFF;
|
|
- ChipsNew->MR[0x27] = (cPtr->FbOffset16 >> 16) & 0xFF;
|
|
- ChipsNew->MR[0x28] = (pScrn->displayWidth >> 2) - 1; /* Width */
|
|
- ChipsNew->MR[0x34] = (pScrn->displayWidth >> 2) - 1;
|
|
-
|
|
- /* Left Edge of Overlay */
|
|
- ChipsNew->MR[0x2A] = cPtr->OverlaySkewX;
|
|
- ChipsNew->MR[0x2B] &= 0xF8; /* Mask reserved bits */
|
|
- ChipsNew->MR[0x2B] |= ((cPtr->OverlaySkewX >> 8) & 0x7);
|
|
- /* Right Edge of Overlay */
|
|
- ChipsNew->MR[0x2C] = (cPtr->OverlaySkewX + pScrn->displayWidth -
|
|
- 1) & 0xFF;
|
|
- ChipsNew->MR[0x2D] &= 0xF8; /* Mask reserved bits */
|
|
- ChipsNew->MR[0x2D] |= ((cPtr->OverlaySkewX + pScrn->displayWidth -
|
|
- 1) >> 8) & 0x07;
|
|
- /* Top Edge of Overlay */
|
|
- ChipsNew->MR[0x2E] = cPtr->OverlaySkewY;
|
|
- ChipsNew->MR[0x2F] &= 0xF8;
|
|
- ChipsNew->MR[0x2F] |= ((cPtr->OverlaySkewY >> 8) & 0x7);
|
|
- /* Bottom Edge of Overlay*/
|
|
- ChipsNew->MR[0x30] = (cPtr->OverlaySkewY + pScrn->virtualY - 1 )& 0xFF;
|
|
- ChipsNew->MR[0x31] &= 0xF8; /* Mask reserved bits */
|
|
- ChipsNew->MR[0x31] |= ((cPtr->OverlaySkewY + pScrn->virtualY -
|
|
- 1 ) >> 8) & 0x07;
|
|
-
|
|
- ChipsNew->MR[0x3C] &= 0x18; /* Mask reserved bits */
|
|
- ChipsNew->MR[0x3C] |= 0x07; /* Enable keyed overlay window */
|
|
- ChipsNew->MR[0x3D] = 0x00;
|
|
- ChipsNew->MR[0x3E] = 0x00;
|
|
- ChipsNew->MR[0x3F] = pScrn->colorKey; /* 8bpp transparency key */
|
|
- ChipsNew->MR[0x40] = 0xFF;
|
|
- ChipsNew->MR[0x41] = 0xFF;
|
|
- ChipsNew->MR[0x42] = 0x00;
|
|
- } else if (cPtr->Flags & ChipsVideoSupport) {
|
|
+ if (cPtr->Flags & ChipsVideoSupport) {
|
|
#if 0 /* if we do this even though video isn't playing we kill performance */
|
|
ChipsNew->XR[0xD0] |= 0x10; /* Force the Multimedia engine on */
|
|
#endif
|
|
@@ -6877,8 +6693,7 @@ chipsRestoreExtendedRegs(ScrnInfoPtr pScrn, CHIPSRegPtr Regs)
|
|
}
|
|
|
|
/* Set SAR04 multimedia register correctly */
|
|
- if ((cPtr->Flags & ChipsOverlay8plus16)
|
|
- || (cPtr->Flags & ChipsVideoSupport)) {
|
|
+ if ((cPtr->Flags & ChipsVideoSupport)) {
|
|
#ifdef SAR04
|
|
cPtr->writeXR(cPtr, 0x4E, 0x04);
|
|
if (cPtr->readXR(cPtr, 0x4F) != Regs->XR[0x4F])
|
|
diff --git a/src/ct_driver.h b/src/ct_driver.h
|
|
index d8ce228..9033867 100644
|
|
--- a/src/ct_driver.h
|
|
+++ b/src/ct_driver.h
|
|
@@ -114,7 +114,6 @@ typedef struct {
|
|
/* Options flags for the C&T chipsets */
|
|
#define ChipsHWCursor 0x00001000
|
|
#define ChipsShadowFB 0x00002000
|
|
-#define ChipsOverlay8plus16 0x00004000
|
|
#define ChipsUseNewFB 0x00008000
|
|
|
|
/* Architecture type flags */
|
|
@@ -272,11 +271,13 @@ typedef struct {
|
|
|
|
typedef struct _CHIPSRec {
|
|
pciVideoPtr PciInfo;
|
|
+#ifndef XSERVER_LIBPCIACCESS
|
|
PCITAG PciTag;
|
|
+#endif
|
|
int Chipset;
|
|
EntityInfoPtr pEnt;
|
|
- IOADDRESS PIOBase;
|
|
- CARD32 IOAddress;
|
|
+ unsigned long PIOBase;
|
|
+ unsigned long IOAddress;
|
|
unsigned long FbAddress;
|
|
unsigned int IOBase;
|
|
unsigned char * FbBase;
|
|
diff --git a/src/ct_video.c b/src/ct_video.c
|
|
index a68acb9..c9e5bb4 100644
|
|
--- a/src/ct_video.c
|
|
+++ b/src/ct_video.c
|
|
@@ -56,8 +56,7 @@ CHIPSInitVideo(ScreenPtr pScreen)
|
|
CHIPSPtr cPtr = CHIPSPTR(pScrn);
|
|
int num_adaptors;
|
|
|
|
- if (!(cPtr->Flags & ChipsOverlay8plus16) &&
|
|
- (cPtr->Flags & ChipsVideoSupport)) {
|
|
+ if ((cPtr->Flags & ChipsVideoSupport)) {
|
|
newAdaptor = CHIPSSetupImageVideo(pScreen);
|
|
CHIPSInitOffscreenImages(pScreen);
|
|
}
|
|
diff --git a/util/dRegs.c b/util/dRegs.c
|
|
index b7edc8f..0d2f0cb 100644
|
|
--- a/util/dRegs.c
|
|
+++ b/util/dRegs.c
|
|
@@ -1,63 +1,8 @@
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-#ifdef __NetBSD__
|
|
-# include <sys/types.h>
|
|
-# include <machine/pio.h>
|
|
-# include <machine/sysarch.h>
|
|
-#else
|
|
-# if defined(SVR4) && defined(i386)
|
|
-# include <sys/types.h>
|
|
-# ifdef NCR
|
|
- /* broken NCR <sys/sysi86.h> */
|
|
-# define __STDC
|
|
-# include <sys/sysi86.h>
|
|
-# undef __STDC
|
|
-# else
|
|
-# include <sys/sysi86.h>
|
|
-# endif
|
|
-# ifdef SVR4
|
|
-# if !defined(sun)
|
|
-# include <sys/seg.h>
|
|
-# endif
|
|
-# endif
|
|
-# include <sys/v86.h>
|
|
-# if defined(sun)
|
|
-# include <sys/psw.h>
|
|
-# endif
|
|
-# endif
|
|
-# include "AsmMacros.h"
|
|
-#endif /* NetBSD */
|
|
-
|
|
#include <unistd.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
-#ifdef __NetBSD__
|
|
-# define SET_IOPL() i386_iopl(3)
|
|
-# define RESET_IOPL() i386_iopl(0)
|
|
-#else
|
|
-# if defined(SVR4) && defined(i386)
|
|
-# ifndef SI86IOPL
|
|
-# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
|
|
-# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
|
|
-# else
|
|
-# define SET_IOPL() sysi86(SI86IOPL,3)
|
|
-# define RESET_IOPL() sysi86(SI86IOPL,0)
|
|
-# endif
|
|
-# else
|
|
-# ifdef linux
|
|
-# define SET_IOPL() iopl(3)
|
|
-# define RESET_IOPL() iopl(0)
|
|
-# else
|
|
-# define SET_IOPL() (void)0
|
|
-# define RESET_IOPL() (void)0
|
|
-# endif
|
|
-# endif
|
|
-#endif
|
|
+#include "iopl.h"
|
|
|
|
int main(void)
|
|
{
|
|
diff --git a/util/iopl.h b/util/iopl.h
|
|
new file mode 100644
|
|
index 0000000..e08207c
|
|
--- /dev/null
|
|
+++ b/util/iopl.h
|
|
@@ -0,0 +1,60 @@
|
|
+#ifdef __NetBSD__
|
|
+# include <sys/types.h>
|
|
+# include <machine/pio.h>
|
|
+# include <machine/sysarch.h>
|
|
+#else
|
|
+# if defined(__linux__)
|
|
+/* Can't because <sys/iopl.h> provides conflicting inb, outb, etc
|
|
+ * # include <sys/io.h>
|
|
+ */
|
|
+int iopl(int level);
|
|
+# endif
|
|
+# if defined(SVR4) && defined(i386)
|
|
+# include <sys/types.h>
|
|
+# ifdef NCR
|
|
+ /* broken NCR <sys/sysi86.h> */
|
|
+# define __STDC
|
|
+# include <sys/sysi86.h>
|
|
+# undef __STDC
|
|
+# else
|
|
+# include <sys/sysi86.h>
|
|
+# endif
|
|
+# ifdef SVR4
|
|
+# if !defined(sun)
|
|
+# include <sys/seg.h>
|
|
+# endif
|
|
+# endif
|
|
+# include <sys/v86.h>
|
|
+# if defined(sun)
|
|
+# include <sys/psw.h>
|
|
+# endif
|
|
+# endif
|
|
+# include "AsmMacros.h"
|
|
+#endif /* NetBSD */
|
|
+
|
|
+#include <unistd.h>
|
|
+#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
+
|
|
+#ifdef __NetBSD__
|
|
+# define SET_IOPL() i386_iopl(3)
|
|
+# define RESET_IOPL() i386_iopl(0)
|
|
+#else
|
|
+# if defined(SVR4) && defined(i386)
|
|
+# ifndef SI86IOPL
|
|
+# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
|
|
+# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
|
|
+# else
|
|
+# define SET_IOPL() sysi86(SI86IOPL,3)
|
|
+# define RESET_IOPL() sysi86(SI86IOPL,0)
|
|
+# endif
|
|
+# else
|
|
+# ifdef linux
|
|
+# define SET_IOPL() iopl(3)
|
|
+# define RESET_IOPL() iopl(0)
|
|
+# else
|
|
+# define SET_IOPL() (void)0
|
|
+# define RESET_IOPL() (void)0
|
|
+# endif
|
|
+# endif
|
|
+#endif
|
|
diff --git a/util/mRegs.c b/util/mRegs.c
|
|
index f359738..843d01d 100644
|
|
--- a/util/mRegs.c
|
|
+++ b/util/mRegs.c
|
|
@@ -1,63 +1,8 @@
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-
|
|
-#ifdef __NetBSD__
|
|
-# include <sys/types.h>
|
|
-# include <machine/pio.h>
|
|
-# include <machine/sysarch.h>
|
|
-#else
|
|
-# if defined(SVR4) && defined(i386)
|
|
-# include <sys/types.h>
|
|
-# ifdef NCR
|
|
- /* broken NCR <sys/sysi86.h> */
|
|
-# define __STDC
|
|
-# include <sys/sysi86.h>
|
|
-# undef __STDC
|
|
-# else
|
|
-# include <sys/sysi86.h>
|
|
-# endif
|
|
-# ifdef SVR4
|
|
-# if !defined(sun)
|
|
-# include <sys/seg.h>
|
|
-# endif
|
|
-# endif
|
|
-# include <sys/v86.h>
|
|
-# if defined(sun)
|
|
-# include <sys/psw.h>
|
|
-# endif
|
|
-# endif
|
|
-# include "AsmMacros.h"
|
|
-#endif /* NetBSD */
|
|
-
|
|
#include <unistd.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
-#ifdef __NetBSD__
|
|
-# define SET_IOPL() i386_iopl(3)
|
|
-# define RESET_IOPL() i386_iopl(0)
|
|
-#else
|
|
-# if defined(SVR4) && defined(i386)
|
|
-# ifndef SI86IOPL
|
|
-# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
|
|
-# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
|
|
-# else
|
|
-# define SET_IOPL() sysi86(SI86IOPL,3)
|
|
-# define RESET_IOPL() sysi86(SI86IOPL,0)
|
|
-# endif
|
|
-# else
|
|
-# ifdef linux
|
|
-# define SET_IOPL() iopl(3)
|
|
-# define RESET_IOPL() iopl(0)
|
|
-# else
|
|
-# define SET_IOPL() (void)0
|
|
-# define RESET_IOPL() (void)0
|
|
-# endif
|
|
-# endif
|
|
-#endif
|
|
+#include "iopl.h"
|
|
|
|
int hex2int(char* str);
|
|
|
|
diff --git a/util/modClock.c b/util/modClock.c
|
|
index 89a291a..45af19b 100644
|
|
--- a/util/modClock.c
|
|
+++ b/util/modClock.c
|
|
@@ -1,61 +1,12 @@
|
|
-
|
|
-#ifdef __NetBSD__
|
|
-# include <sys/types.h>
|
|
-# include <machine/pio.h>
|
|
-# include <machine/sysarch.h>
|
|
-#else
|
|
-# if defined(SVR4) && defined(i386)
|
|
-# include <sys/types.h>
|
|
-# ifdef NCR
|
|
- /* broken NCR <sys/sysi86.h> */
|
|
-# define __STDC
|
|
-# include <sys/sysi86.h>
|
|
-# undef __STDC
|
|
-# else
|
|
-# include <sys/sysi86.h>
|
|
-# endif
|
|
-# ifdef SVR4
|
|
-# if !defined(sun)
|
|
-# include <sys/seg.h>
|
|
-# endif
|
|
-# endif
|
|
-# include <sys/v86.h>
|
|
-# if defined(sun)
|
|
-# include <sys/psw.h>
|
|
-# endif
|
|
-# endif
|
|
-# include "AsmMacros.h"
|
|
-#endif /* NetBSD */
|
|
-
|
|
#include <unistd.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
+
|
|
#ifndef Lynx
|
|
#include <fnmatch.h>
|
|
#endif
|
|
|
|
-#ifdef __NetBSD__
|
|
-# define SET_IOPL() i386_iopl(3)
|
|
-# define RESET_IOPL() i386_iopl(0)
|
|
-#else
|
|
-# if defined(SVR4) && defined(i386)
|
|
-# ifndef SI86IOPL
|
|
-# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL)
|
|
-# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0)
|
|
-# else
|
|
-# define SET_IOPL() sysi86(SI86IOPL,3)
|
|
-# define RESET_IOPL() sysi86(SI86IOPL,0)
|
|
-# endif
|
|
-# else
|
|
-# ifdef linux
|
|
-# define SET_IOPL() iopl(3)
|
|
-# define RESET_IOPL() iopl(0)
|
|
-# else
|
|
-# define SET_IOPL() (void)0
|
|
-# define RESET_IOPL() (void)0
|
|
-# endif
|
|
-# endif
|
|
-#endif
|
|
+#include "iopl.h"
|
|
|
|
#define tolerance 0.01 /* +/- 1% */
|