#ifdef XFree86LOADER
#include "ati.h"
#include "aticursor.h"
#include "atiload.h"
#include "atistruct.h"
const char *ATIint10Symbols[] =
{
"xf86FreeInt10",
"xf86InitInt10",
"xf86int10Addr",
NULL
};
const char *ATIddcSymbols[] =
{
"xf86PrintEDID",
"xf86SetDDCProperties",
NULL
};
const char *ATIvbeSymbols[] =
{
"VBEInit",
"vbeDoEDID",
"vbeFree",
NULL
};
#ifndef AVOID_CPIO
const char *ATIxf1bppSymbols[] =
{
"xf1bppScreenInit",
NULL
};
const char *ATIxf4bppSymbols[] =
{
"xf4bppScreenInit",
NULL
};
#endif
const char *ATIfbSymbols[] =
{
"fbPictureInit",
"fbScreenInit",
NULL
};
const char *ATIshadowfbSymbols[] =
{
"ShadowFBInit",
NULL
};
const char *ATIxaaSymbols[] =
{
"XAACreateInfoRec",
"XAADestroyInfoRec",
"XAAInit",
NULL
};
const char *ATIramdacSymbols[] =
{
"xf86CreateCursorInfoRec",
"xf86DestroyCursorInfoRec",
"xf86InitCursor",
NULL
};
const char *ATIi2cSymbols[] =
{
"xf86CreateI2CBusRec",
"xf86DestroyI2CBusRec",
"xf86I2CBusInit",
"xf86I2CDevInit",
"xf86I2CFindDev",
"xf86I2CGetScreenBuses",
NULL
};
pointer
ATILoadModule
(
ScrnInfoPtr pScreenInfo,
const char *Module,
const char **SymbolList
)
{
pointer pModule = xf86LoadSubModule(pScreenInfo, Module);
if (pModule)
xf86LoaderReqSymLists(SymbolList, NULL);
return pModule;
}
pointer
ATILoadModules
(
ScrnInfoPtr pScreenInfo,
ATIPtr pATI
)
{
if (pATI->OptionShadowFB &&
!ATILoadModule(pScreenInfo, "shadowfb", ATIshadowfbSymbols))
return NULL;
if (pATI->OptionAccel &&
!ATILoadModule(pScreenInfo, "xaa", ATIxaaSymbols))
return NULL;
if ((pATI->Cursor > ATI_CURSOR_SOFTWARE) &&
!ATILoadModule(pScreenInfo, "ramdac", ATIramdacSymbols))
return NULL;
switch (pATI->bitsPerPixel)
{
#ifndef AVOID_CPIO
case 1:
return ATILoadModule(pScreenInfo, "xf1bpp", ATIxf1bppSymbols);
case 4:
return ATILoadModule(pScreenInfo, "xf4bpp", ATIxf4bppSymbols);
#endif
case 8:
case 16:
case 24:
case 32:
return ATILoadModule(pScreenInfo, "fb", ATIfbSymbols);
default:
return NULL;
}
}
#endif