亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? r128_probe.c

?? x.org上有關ati系列顯卡最新驅動
?? C
字號:
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c,v 1.17 2003/02/07 20:41:15 martin Exp $ *//* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, *                      Precision Insight, Inc., Cedar Park, Texas, and *                      VA Linux Systems Inc., Fremont, California. * * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation on the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX * SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <string.h>/* * Authors: *   Rickard E. Faith <faith@valinux.com> *   Kevin E. Martin <martin@valinux.com> * * Modified by Marc Aurele La France <tsi@xfree86.org> for ATI driver merge. */#include "atimodule.h"#include "ativersion.h"#include "r128_probe.h"#include "r128_version.h"#include "atipciids.h"#include "xf86.h"#include "xf86Resources.h"#include "r128_chipset.h"PciChipsets R128PciChipsets[] = {    { PCI_CHIP_RAGE128LE, PCI_CHIP_RAGE128LE, RES_SHARED_VGA },    { PCI_CHIP_RAGE128LF, PCI_CHIP_RAGE128LF, RES_SHARED_VGA },    { PCI_CHIP_RAGE128MF, PCI_CHIP_RAGE128MF, RES_SHARED_VGA },    { PCI_CHIP_RAGE128ML, PCI_CHIP_RAGE128ML, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PA, PCI_CHIP_RAGE128PA, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PB, PCI_CHIP_RAGE128PB, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PC, PCI_CHIP_RAGE128PC, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PD, PCI_CHIP_RAGE128PD, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PE, PCI_CHIP_RAGE128PE, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PF, PCI_CHIP_RAGE128PF, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PG, PCI_CHIP_RAGE128PG, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PH, PCI_CHIP_RAGE128PH, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PI, PCI_CHIP_RAGE128PI, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PJ, PCI_CHIP_RAGE128PJ, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PK, PCI_CHIP_RAGE128PK, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PL, PCI_CHIP_RAGE128PL, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PM, PCI_CHIP_RAGE128PM, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PN, PCI_CHIP_RAGE128PN, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PO, PCI_CHIP_RAGE128PO, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PP, PCI_CHIP_RAGE128PP, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PQ, PCI_CHIP_RAGE128PQ, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PR, PCI_CHIP_RAGE128PR, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PS, PCI_CHIP_RAGE128PS, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PT, PCI_CHIP_RAGE128PT, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PU, PCI_CHIP_RAGE128PU, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PV, PCI_CHIP_RAGE128PV, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PW, PCI_CHIP_RAGE128PW, RES_SHARED_VGA },    { PCI_CHIP_RAGE128PX, PCI_CHIP_RAGE128PX, RES_SHARED_VGA },    { PCI_CHIP_RAGE128RE, PCI_CHIP_RAGE128RE, RES_SHARED_VGA },    { PCI_CHIP_RAGE128RF, PCI_CHIP_RAGE128RF, RES_SHARED_VGA },    { PCI_CHIP_RAGE128RG, PCI_CHIP_RAGE128RG, RES_SHARED_VGA },    { PCI_CHIP_RAGE128RK, PCI_CHIP_RAGE128RK, RES_SHARED_VGA },    { PCI_CHIP_RAGE128RL, PCI_CHIP_RAGE128RL, RES_SHARED_VGA },    { PCI_CHIP_RAGE128SE, PCI_CHIP_RAGE128SE, RES_SHARED_VGA },    { PCI_CHIP_RAGE128SF, PCI_CHIP_RAGE128SF, RES_SHARED_VGA },    { PCI_CHIP_RAGE128SG, PCI_CHIP_RAGE128SG, RES_SHARED_VGA },    { PCI_CHIP_RAGE128SH, PCI_CHIP_RAGE128SH, RES_SHARED_VGA },    { PCI_CHIP_RAGE128SK, PCI_CHIP_RAGE128SK, RES_SHARED_VGA },    { PCI_CHIP_RAGE128SL, PCI_CHIP_RAGE128SL, RES_SHARED_VGA },    { PCI_CHIP_RAGE128SM, PCI_CHIP_RAGE128SM, RES_SHARED_VGA },    { PCI_CHIP_RAGE128SN, PCI_CHIP_RAGE128SN, RES_SHARED_VGA },    { PCI_CHIP_RAGE128TF, PCI_CHIP_RAGE128TF, RES_SHARED_VGA },    { PCI_CHIP_RAGE128TL, PCI_CHIP_RAGE128TL, RES_SHARED_VGA },    { PCI_CHIP_RAGE128TR, PCI_CHIP_RAGE128TR, RES_SHARED_VGA },    { PCI_CHIP_RAGE128TS, PCI_CHIP_RAGE128TS, RES_SHARED_VGA },    { PCI_CHIP_RAGE128TT, PCI_CHIP_RAGE128TT, RES_SHARED_VGA },    { PCI_CHIP_RAGE128TU, PCI_CHIP_RAGE128TU, RES_SHARED_VGA },    { -1,                 -1,                 RES_UNDEFINED }};int gR128EntityIndex = -1;/* Return the options for supported chipset 'n'; NULL otherwise */const OptionInfoRec *R128AvailableOptions(int chipid, int busid){    int i;    /*     * Return options defined in the r128 submodule which will have been     * loaded by this point.     */    if ((chipid >> 16) == PCI_VENDOR_ATI)	chipid -= PCI_VENDOR_ATI << 16;    for (i = 0; R128PciChipsets[i].PCIid > 0; i++) {	if (chipid == R128PciChipsets[i].PCIid)	    return R128OptionsWeak();    }    return NULL;}/* Return the string name for supported chipset 'n'; NULL otherwise. */voidR128Identify(int flags){    xf86PrintChipsets(R128_NAME,		      "Driver for ATI Rage 128 chipsets",		      R128Chipsets);}/* Return TRUE if chipset is present; FALSE otherwise. */BoolR128Probe(DriverPtr drv, int flags){    int           numUsed;    int           numDevSections, nATIGDev, nR128GDev;    int           *usedChips;    GDevPtr       *devSections, *ATIGDevs, *R128GDevs;    Bool          foundScreen = FALSE;    int           i;    if (!xf86GetPciVideoInfo()) return FALSE;    /* Collect unclaimed device sections for both driver names */    nATIGDev = xf86MatchDevice(ATI_NAME, &ATIGDevs);    nR128GDev = xf86MatchDevice(R128_NAME, &R128GDevs);    if (!(numDevSections = nATIGDev + nR128GDev)) return FALSE;    if (!ATIGDevs) {	if (!(devSections = R128GDevs))	    numDevSections = 1;	else	    numDevSections = nR128GDev;    } if (!R128GDevs) {	devSections = ATIGDevs;	numDevSections = nATIGDev;    } else {	/* Combine into one list */	devSections = xnfalloc((numDevSections + 1) * sizeof(GDevPtr));	(void)memcpy(devSections,		     ATIGDevs, nATIGDev * sizeof(GDevPtr));	(void)memcpy(devSections + nATIGDev,		     R128GDevs, nR128GDev * sizeof(GDevPtr));	devSections[numDevSections] = NULL;	xfree(ATIGDevs);	xfree(R128GDevs);    }    numUsed = xf86MatchPciInstances(R128_NAME,				    PCI_VENDOR_ATI,				    R128Chipsets,				    R128PciChipsets,				    devSections,				    numDevSections,				    drv,				    &usedChips);    if (numUsed<=0) return FALSE;    if (flags & PROBE_DETECT)	foundScreen = TRUE;    else for (i = 0; i < numUsed; i++) {        ScrnInfoPtr pScrn;        EntityInfoPtr pEnt;         pScrn    = NULL;        if((pScrn = xf86ConfigPciEntity(pScrn, 0, usedChips[i],             R128PciChipsets, 0, 0, 0, 0, 0)))	{#ifdef XFree86LOADER	    if (!xf86LoadSubModule(pScrn, "r128")) {		xf86Msg(X_ERROR,		    R128_NAME ":  Failed to load \"r128\" module.\n");		xf86DeleteScreen(pScrn->scrnIndex, 0);		continue;	    }	    xf86LoaderReqSymLists(R128Symbols, NULL);#endif	    pScrn->Probe         = R128Probe;	    R128FillInScreenInfo(pScrn);	    foundScreen          = TRUE;        pEnt = xf86GetEntityInfo(usedChips[i]);        /* mobility cards support Dual-Head, mark the entity as sharable*/        if(pEnt->chipset == PCI_CHIP_RAGE128LE ||           pEnt->chipset == PCI_CHIP_RAGE128LF ||           pEnt->chipset == PCI_CHIP_RAGE128MF ||           pEnt->chipset == PCI_CHIP_RAGE128ML)        {            static int instance = 0;            DevUnion* pPriv;            xf86SetEntitySharable(usedChips[i]);            xf86SetEntityInstanceForScreen(pScrn,                pScrn->entityList[0], instance);            if(gR128EntityIndex < 0)            {                gR128EntityIndex = xf86AllocateEntityPrivateIndex();                pPriv = xf86GetEntityPrivate(pScrn->entityList[0],                        gR128EntityIndex);                if (!pPriv->ptr)                {                    R128EntPtr pR128Ent;                    pPriv->ptr = xnfcalloc(sizeof(R128EntRec), 1);                    pR128Ent = pPriv->ptr;                    pR128Ent->IsDRIEnabled = FALSE;                    pR128Ent->BypassSecondary = FALSE;                    pR128Ent->HasSecondary = FALSE;                    pR128Ent->IsSecondaryRestored = FALSE;                                   }             }            instance++;	}	xfree(pEnt);    }    }    xfree(usedChips);    xfree(devSections);    return foundScreen;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品app | 99久久夜色精品国产网站| 精品国产乱子伦一区| 久久精品国产澳门| 国产丝袜在线精品| 一本大道综合伊人精品热热| 午夜精品福利一区二区三区av | 粉嫩高潮美女一区二区三区| 国产精品美女久久久久久久| 欧美综合视频在线观看| 日韩精品每日更新| 国产日产欧美一区二区视频| 99久久99久久免费精品蜜臀| 亚洲va天堂va国产va久| 精品国产百合女同互慰| 丁香婷婷深情五月亚洲| 一区二区三区欧美久久| 日韩欧美一卡二卡| 99久久婷婷国产综合精品电影| 一区二区三区在线观看网站| 日韩一区二区三区av| 成人国产精品免费观看视频| 亚洲成人免费视频| 国产午夜精品一区二区三区嫩草| 91麻豆国产福利精品| 日日骚欧美日韩| 国产精品久久久一本精品| 欧美日韩国产大片| 高清久久久久久| 日本人妖一区二区| 亚洲视频一区在线观看| 日韩免费视频一区| 91免费版pro下载短视频| 日本免费在线视频不卡一不卡二| 欧美高清在线精品一区| 精品污污网站免费看| 国产mv日韩mv欧美| 秋霞国产午夜精品免费视频| 亚洲人被黑人高潮完整版| 精品免费视频一区二区| 欧美色图第一页| 成人激情黄色小说| 国产永久精品大片wwwapp| 亚洲制服丝袜在线| 中文字幕在线一区| 欧美成人免费网站| 色婷婷精品久久二区二区蜜臀av| 国产伦精一区二区三区| 日韩电影一区二区三区| 亚洲免费看黄网站| 国产精品久久久久天堂| 国产亚洲欧洲997久久综合| 欧美日韩国产综合草草| 91黄色免费版| 成人三级在线视频| 国产成人免费视| 精品一区二区三区不卡| 蜜臀av一区二区三区| 日韩精品一二三| 亚洲成a人v欧美综合天堂下载| 亚洲欧美电影一区二区| 一区二区中文视频| 国产精品毛片久久久久久| 国产三级一区二区| 久久精品夜色噜噜亚洲a∨| 欧美一级在线免费| 337p亚洲精品色噜噜狠狠| 精品视频全国免费看| 欧美亚洲一区三区| 欧美日精品一区视频| 欧美三级三级三级爽爽爽| 在线影视一区二区三区| 色香蕉成人二区免费| 欧美在线制服丝袜| 91蜜桃在线免费视频| 97se亚洲国产综合自在线不卡| 懂色av一区二区三区免费观看| 国产综合久久久久久久久久久久| 久久9热精品视频| 青青草97国产精品免费观看无弹窗版| 婷婷一区二区三区| 男人的天堂亚洲一区| 蜜臀国产一区二区三区在线播放| 久久国产综合精品| 精品在线一区二区三区| 国产成人av网站| 本田岬高潮一区二区三区| 91在线一区二区| 在线观看日韩av先锋影音电影院| 欧美亚洲自拍偷拍| 欧美一区二区三区男人的天堂| 69p69国产精品| 久久蜜桃av一区精品变态类天堂| 国产欧美日本一区二区三区| 亚洲欧美一区二区视频| 亚洲国产精品久久人人爱| 婷婷丁香久久五月婷婷| 久久草av在线| 波多野结衣欧美| 欧美性色黄大片| 2023国产精品视频| 亚洲免费av观看| 日产国产欧美视频一区精品| 国产精品原创巨作av| 97se狠狠狠综合亚洲狠狠| 欧美福利一区二区| 国产午夜精品久久久久久免费视 | 国产精品伦理一区二区| 亚洲三级小视频| 美脚の诱脚舐め脚责91 | 婷婷中文字幕一区三区| 国产一区在线不卡| 99久久久国产精品| 这里只有精品电影| 中文字幕永久在线不卡| 亚洲第一久久影院| 国产曰批免费观看久久久| 91亚洲精品久久久蜜桃| 日韩精品资源二区在线| 一区在线中文字幕| 美腿丝袜亚洲一区| 一本大道久久精品懂色aⅴ| 日韩精品自拍偷拍| 亚洲一区二区三区激情| 国产自产v一区二区三区c| 欧美综合视频在线观看| 久久久久久久久久久黄色| 亚洲第一主播视频| 国产aⅴ综合色| 日韩免费性生活视频播放| 亚洲综合男人的天堂| 国产a精品视频| 日韩精品一区二区三区在线观看 | 国产午夜亚洲精品理论片色戒| 亚洲已满18点击进入久久| 国产精品 日产精品 欧美精品| 欧美日韩国产一二三| 欧美激情一区二区在线| 久久综合综合久久综合| 欧美欧美午夜aⅴ在线观看| 国产精品高潮呻吟| 激情国产一区二区| 欧美一级电影网站| 亚洲成人1区2区| 在线视频一区二区免费| 中文字幕欧美一区| 国产成人精品亚洲午夜麻豆| 日韩欧美美女一区二区三区| 亚洲国产精品久久久男人的天堂| 国产高清久久久久| 久久蜜臀精品av| 国产一区欧美日韩| 精品国产一区二区三区忘忧草| 午夜精品一区在线观看| 欧美午夜不卡视频| 一区二区三区中文字幕精品精品 | 欧美va亚洲va| 免费视频一区二区| 欧美一区二区视频免费观看| 午夜av区久久| 91精品国产综合久久福利软件| 午夜欧美一区二区三区在线播放| 91国偷自产一区二区三区观看 | 同产精品九九九| 在线成人小视频| 日韩中文字幕区一区有砖一区| 欧美日韩一区二区三区免费看| 亚洲香蕉伊在人在线观| 精品视频一区二区不卡| 天天av天天翘天天综合网色鬼国产| 欧美色老头old∨ideo| 视频一区在线视频| 欧美大黄免费观看| 国产综合色视频| 亚洲国产精品ⅴa在线观看| 99久免费精品视频在线观看| 日韩一区在线播放| 欧亚一区二区三区| 日韩二区三区四区| 久久久久久久久免费| 岛国av在线一区| 17c精品麻豆一区二区免费| 色噜噜狠狠成人网p站| 亚洲国产日产av| 日韩欧美国产wwwww| 懂色av中文字幕一区二区三区| 国产精品久久久久久久久搜平片| 99久久99久久精品国产片果冻| 一区二区三区.www| 日韩午夜精品视频| 国产高清久久久久| 亚洲精品一二三区| 91麻豆精品国产自产在线观看一区| 美女视频网站黄色亚洲| 国产日韩欧美精品一区| 欧美性猛交xxxx乱大交退制版| 蜜臀久久久99精品久久久久久| 欧美极品xxx| 欧美精品日韩综合在线| 丁香六月综合激情|