{ GlxExtensionInit, "GLX", &glxSupported },
#endif
};
- int i;
- for (i = 0; i < ARRAY_SIZE(dmxExtensions); i++)
- LoadExtension(&dmxExtensions[i], TRUE);
+ LoadExtensionList(dmxExtensions, ARRAY_SIZE(dmxExtensions), TRUE);
}
/** This routine is called in Xserver/dix/main.c from \a main(). */
static
void ephyrExtensionInit(void)
{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(ephyrExtensions); i++)
- LoadExtension(&ephyrExtensions[i], TRUE);
+ LoadExtensionList(ephyrExtensions, ARRAY_SIZE(ephyrExtensions), TRUE);
}
static
void vfbExtensionInit(void)
{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(vfbExtensions); i++)
- LoadExtension(&vfbExtensions[i], TRUE);
+ LoadExtensionList(vfbExtensions, ARRAY_SIZE(vfbExtensions), TRUE);
}
void
void
xf86ExtensionInit(void)
{
- int i;
-
load_extension_config();
- for (i = 0; i < ARRAY_SIZE(extensionModules); i++)
- LoadExtension(&extensionModules[i], TRUE);
+ LoadExtensionList(extensionModules, ARRAY_SIZE(extensionModules), TRUE);
}
static MODULESETUPPROTO(glxSetup);
-static const ExtensionModule GLXExt = {
- GlxExtensionInit,
- "GLX",
- &noGlxExtension
+static const ExtensionModule GLXExt[] = {
+ { GlxExtensionInit, "GLX", &noGlxExtension },
};
static XF86ModuleVersionInfo VersRec = {
GlxPushProvider(provider);
}
- LoadExtension(&GLXExt, FALSE);
+ LoadExtensionList(GLXExt, ARRAY_SIZE(GLXExt), FALSE);
return module;
}
<blockquote><para>
<programlisting>
- void LoadExtension(ExtensionModule *ext);
+ void LoadExtensionList(const ExtensionModule ext[]);
</programlisting>
<blockquote><para>
- This registers the entry points for the extension identified by
+ This registers the entry points for the extension array identified by
<parameter>ext</parameter>. The <structname>ExtensionModule</structname> struct is
defined as:
*/
static void QuartzExtensionInit(void)
{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(quartzExtensions); i++)
- LoadExtension(&quartzExtensions[i], TRUE);
+ LoadExtensionList(quartzExtensions, ARRAY_SIZE(quartzExtensions), TRUE);
}
/*
static
void XwinExtensionInit(void)
{
- int i;
-
#ifdef XWIN_GLX_WINDOWS
if (g_fNativeGl) {
/* install the native GL provider */
}
#endif
- for (i = 0; i < ARRAY_SIZE(xwinExtensions); i++)
- LoadExtension(&xwinExtensions[i], TRUE);
+ LoadExtensionList(xwinExtensions, ARRAY_SIZE(xwinExtensions), TRUE);
}
#if defined(DDXBEFORERESET)
extern _X_EXPORT void CloseDownExtensions(void);
-extern _X_EXPORT void LoadExtension(const ExtensionModule *ext, Bool external);
+extern _X_EXPORT void LoadExtensionList(const ExtensionModule ext[],
+ int listSize, Bool external);
#endif /* EXTENSION_H */
AddStaticExtensions(void)
{
static Bool listInitialised = FALSE;
- int i;
if (listInitialised)
return;
listInitialised = TRUE;
/* Add built-in extensions to the list. */
- for (i = 0; i < ARRAY_SIZE(staticExtensions); i++)
- LoadExtension(&staticExtensions[i], TRUE);
+ LoadExtensionList(staticExtensions, ARRAY_SIZE(staticExtensions), TRUE);
}
void
}
static ExtensionModule *
-NewExtensionModule(void)
+NewExtensionModuleList(int size)
{
ExtensionModule *save = ExtensionModuleList;
int n;
if (!ExtensionModuleList)
numExtensionModules = 0;
- n = numExtensionModules + 1;
+ n = numExtensionModules + size;
ExtensionModuleList = realloc(ExtensionModuleList,
n * sizeof(ExtensionModule));
if (ExtensionModuleList == NULL) {
return NULL;
}
else {
- numExtensionModules++;
- return ExtensionModuleList + (numExtensionModules - 1);
+ numExtensionModules += size;
+ return ExtensionModuleList + (numExtensionModules - size);
}
}
void
-LoadExtension(const ExtensionModule * e, Bool builtin)
+LoadExtensionList(const ExtensionModule ext[], int size, Bool builtin)
{
ExtensionModule *newext;
+ const char *msg;
+ int i;
/* Make sure built-in extensions get added to the list before those
* in modules. */
AddStaticExtensions();
- if (!(newext = NewExtensionModule()))
+ if (!(newext = NewExtensionModuleList(size)))
return;
if (builtin)
- ErrorF("Initializing built-in extension %s\n", e->name);
+ msg = "Initializing built-in";
else
- ErrorF("Loading extension %s\n", e->name);
+ msg = "Loading";
- newext->name = e->name;
- newext->initFunc = e->initFunc;
- newext->disablePtr = e->disablePtr;
+ for (i = 0; i < size; i++, newext++) {
+ ErrorF("%s extension %s\n", msg, ext[i].name);
+
+ newext->name = ext[i].name;
+ newext->initFunc = ext[i].initFunc;
+ newext->disablePtr = ext[i].disablePtr;
+ }
}