⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atiload.c

📁 x.org上有关ati系列显卡最新驱动
💻 C
字号:
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c,v 1.15 2003/08/29 21:07:57 tsi Exp $ *//* * Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of Marc Aurele La France not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission.  Marc Aurele La France makes no representations * about the suitability of this software for any purpose.  It is provided * "as-is" without express or implied warranty. * * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. * * DRI support by: *    Leif Delgass <ldelgass@retinalburn.net> */#ifdef HAVE_CONFIG_H#include "config.h"#endif#ifdef XFree86LOADER#include "ati.h"#include "aticursor.h"#include "atiload.h"#include "atistruct.h"/* * All symbol lists belong here.  They are externalised so that they can be * referenced elsewhere.  Note the naming convention for these things... */const char *ATIint10Symbols[] ={    "xf86FreeInt10",    "xf86InitInt10",    "xf86int10Addr",    NULL};const char *ATIddcSymbols[] ={    "xf86PrintEDID",    "xf86SetDDCproperties",    NULL};const char *ATIvbeSymbols[] ={    "VBEInit",    "vbeDoEDID",    "vbeFree",    NULL};#ifndef AVOID_CPIOconst char *ATIxf1bppSymbols[] ={    "xf1bppScreenInit",    NULL};const char *ATIxf4bppSymbols[] ={    "xf4bppScreenInit",    NULL};#endif /* AVOID_CPIO */#ifdef XF86DRI_DEVELconst char *ATIdrmSymbols[] = {    "drmAddBufs",    "drmAddMap",    "drmAgpAcquire",    "drmAgpAlloc",    "drmAgpBase",    "drmAgpBind",    "drmAgpDeviceId",    "drmAgpEnable",    "drmAgpFree",    "drmAgpGetMode",    "drmAgpRelease",    "drmAgpUnbind",    "drmAgpVendorId",    "drmAvailable",    "drmCommandNone",    "drmCommandRead",    "drmCommandWrite",    "drmCommandWriteRead",    "drmCtlInstHandler",    "drmCtlUninstHandler",    "drmFreeVersion",    "drmGetInterruptFromBusID",    "drmGetLibVersion",    "drmGetVersion",    "drmMap",    "drmMapBufs",    "drmDMA",    "drmUnmap",    "drmUnmapBufs",    NULL};const char *ATIdriSymbols[] = {    "DRICloseScreen",    "DRICreateInfoRec",    "DRIDestroyInfoRec",    "DRIFinishScreenInit",    "DRIGetSAREAPrivate",    "DRILock",    "DRIQueryVersion",    "DRIScreenInit",    "DRIUnlock",    "GlxSetVisualConfigs",    "DRICreatePCIBusID",    NULL};#endif /* XF86DRI_DEVEL */const char *ATIfbSymbols[] ={    "fbPictureInit",    "fbScreenInit",    NULL};const char *ATIshadowfbSymbols[] ={    "ShadowFBInit",    NULL};#ifdef USE_EXAconst char *ATIexaSymbols[] ={    "exaDriverAlloc",    "exaDriverInit",    "exaDriverFini",    "exaOffscreenAlloc",    "exaOffscreenFree",    NULL};#endif#ifdef USE_XAAconst char *ATIxaaSymbols[] ={    "XAACreateInfoRec",    "XAADestroyInfoRec",    "XAAInit",    NULL};#endifconst char *ATIramdacSymbols[] ={    "xf86CreateCursorInfoRec",    "xf86DestroyCursorInfoRec",    "xf86InitCursor",    NULL};const char *ATIi2cSymbols[] ={    "xf86CreateI2CBusRec",    "xf86DestroyI2CBusRec",    "xf86I2CBusInit",    "xf86I2CDevInit",    "xf86I2CFindDev",    "xf86I2CGetScreenBuses",    NULL};/* * ATILoadModule -- * * Load a specific module and register with the loader those of its entry * points that are referenced by this driver. */pointerATILoadModule(    ScrnInfoPtr  pScreenInfo,    const char  *Module,    const char **SymbolList){    pointer pModule = xf86LoadSubModule(pScreenInfo, Module);    if (pModule)        xf86LoaderReqSymLists(SymbolList, NULL);    return pModule;}/* * ATILoadModules -- * * This function loads other modules required for a screen. */pointerATILoadModules(    ScrnInfoPtr pScreenInfo,    ATIPtr      pATI){    pointer fbPtr = NULL;    /* Load shadow frame buffer code if needed */    if (pATI->OptionShadowFB &&        !ATILoadModule(pScreenInfo, "shadowfb", ATIshadowfbSymbols))        return NULL;    /* Load depth-specific entry points */    switch (pATI->bitsPerPixel)    {#ifndef AVOID_CPIO        case 1:            fbPtr = ATILoadModule(pScreenInfo, "xf1bpp", ATIxf1bppSymbols);            break;        case 4:            fbPtr = ATILoadModule(pScreenInfo, "xf4bpp", ATIxf4bppSymbols);            break;#endif /* AVOID_CPIO */        case 8:        case 16:        case 24:        case 32:            fbPtr = ATILoadModule(pScreenInfo, "fb", ATIfbSymbols);            break;        default:            return NULL;    }    if (!fbPtr)        return NULL;    /* Load ramdac module if needed */    if ((pATI->Cursor > ATI_CURSOR_SOFTWARE) &&        !ATILoadModule(pScreenInfo, "ramdac", ATIramdacSymbols))        return NULL;#ifdef USE_EXA    /* Load EXA if needed */    if (pATI->useEXA && pATI->OptionAccel)    {        /* Cannot use ATILoadModule(), because of version checking */        XF86ModReqInfo req;        int errmaj, errmin;        memset(&req, 0, sizeof(XF86ModReqInfo));        req.majorversion = 2;        req.minorversion = 0;        if (!LoadSubModule(pScreenInfo->module, "exa", NULL, NULL, NULL, &req,            &errmaj, &errmin))        {            LoaderErrorMsg(NULL, "exa", errmaj, errmin);            return NULL;        }        xf86LoaderReqSymLists(ATIexaSymbols, NULL);    }#endif#ifdef USE_XAA    /* Load XAA if needed */    if (!pATI->useEXA && pATI->OptionAccel &&        !ATILoadModule(pScreenInfo, "xaa", ATIxaaSymbols))        return NULL;#endif    return fbPtr;}#endif /* XFree86LOADER */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -