summaryrefslogtreecommitdiff
path: root/src/atimisc.c
diff options
context:
space:
mode:
authorEgbert Eich <eich@suse.de>2004-03-05 13:40:19 +0000
committerEgbert Eich <eich@suse.de>2004-03-05 13:40:19 +0000
commit397653e558b5fa4936ee6c9ac1eb6acaa9cf1cbc (patch)
tree5988c3f829963dfa7315e626c4d0e72e85d76e09 /src/atimisc.c
parent42cbea1d05a9e44b0d560da29bff19711ebb8a94 (diff)
23. Merged with XFree86 4.4.0. Added changes that went into infected files.XORG-CURRENT-premerge-release-1XACE-SELINUX-BASEDAMAGE-XFIXES-BASEDAMAGE-XFIXES
Reverted darwin/bundle/**/Credits.rtf to XFree86 versions to avoid future conflicts on ASCII but not humal readable files. (There should probably be separate CreditsXorg.rtf files) (Egbert Eich).
Diffstat (limited to 'src/atimisc.c')
-rw-r--r--src/atimisc.c36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/atimisc.c b/src/atimisc.c
index 9219fd7d..53c97b5e 100644
--- a/src/atimisc.c
+++ b/src/atimisc.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c,v 1.8 2004/01/05 16:42:03 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c,v 1.8tsi Exp $ */
/*
* Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
@@ -62,8 +62,38 @@ ATISetup
if (!Inited)
{
/* Ensure main driver module is loaded, but not as a submodule */
- if (!xf86ServerIsOnlyDetecting() && !LoaderSymbol(ATI_NAME))
- xf86LoadOneModule(ATI_DRIVER_NAME, Options);
+ if (!xf86ServerIsOnlyDetecting())
+ {
+ if (!LoaderSymbol(ATI_NAME))
+ xf86LoadOneModule(ATI_DRIVER_NAME, Options);
+
+ /* ati & atimisc module versions must match */
+ do
+ {
+ XF86ModuleData *pModuleData = LoaderSymbol("atiModuleData");
+
+ if (pModuleData)
+ {
+ XF86ModuleVersionInfo *pModuleInfo = pModuleData->vers;
+
+ if ((pModuleInfo->majorversion == ATI_VERSION_MAJOR) &&
+ (pModuleInfo->minorversion == ATI_VERSION_MINOR) &&
+ (pModuleInfo->patchlevel == ATI_VERSION_PATCH))
+ break;
+ }
+
+ xf86Msg(X_ERROR,
+ "\"ati\" and \"atimisc\" module versions must"
+ " match.\n");
+
+ if (ErrorMajor)
+ *ErrorMajor = (int)LDR_MISMATCH;
+ if (ErrorMinor)
+ *ErrorMinor = (int)LDR_MISMATCH;
+
+ return NULL;
+ } while (0);
+ }
/*
* Tell loader about symbols from other modules that this module might