summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2008-07-10 14:38:34 -0700
committerAaron Plattner <aplattner@nvidia.com>2008-07-10 15:13:13 -0700
commitebd70c82fdbe483d149ac9bdb5a64cc6e0c10e0a (patch)
tree865458634ba6e9bc5e5131601a880bc4a49d8b22
parentc42427f63f0e0495e56909ee99ad1e3c4321c39b (diff)
Add LoaderShouldIgnoreABI to allow drivers that roll their own ABI checks (i.e. nvidia) to perform the check before ScreenInit.
-rw-r--r--hw/xfree86/common/xf86Module.h1
-rw-r--r--hw/xfree86/loader/loader.c6
-rw-r--r--hw/xfree86/loader/xf86sym.c1
3 files changed, 8 insertions, 0 deletions
diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
index fdcd5674b..c8bf1cec8 100644
--- a/hw/xfree86/common/xf86Module.h
+++ b/hw/xfree86/common/xf86Module.h
@@ -209,6 +209,7 @@ void LoaderReqSymLists(const char **, ...);
void LoaderReqSymbols(const char *, ...);
int LoaderCheckUnresolved(int);
void LoaderGetOS(const char **name, int *major, int *minor, int *teeny);
+Bool LoaderShouldIgnoreABI(void);
int LoaderGetABIVersion(const char *abiclass);
typedef pointer (*ModuleSetupProc)(pointer, pointer, int *, int *);
diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c
index 774a4c4a0..b05c48e94 100644
--- a/hw/xfree86/loader/loader.c
+++ b/hw/xfree86/loader/loader.c
@@ -363,6 +363,12 @@ LoaderSetOptions(unsigned long opts)
LoaderOptions |= opts;
}
+_X_EXPORT Bool
+LoaderShouldIgnoreABI(void)
+{
+ return (LoaderOptions & LDR_OPT_ABI_MISMATCH_NONFATAL) != 0;
+}
+
_X_EXPORT int
LoaderGetABIVersion(const char *abiclass)
{
diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
index 6576fe8e9..e78ba33ee 100644
--- a/hw/xfree86/loader/xf86sym.c
+++ b/hw/xfree86/loader/xf86sym.c
@@ -713,6 +713,7 @@ _X_HIDDEN void *xfree86LookupTab[] = {
SYMFUNC(LoaderListDirs)
SYMFUNC(LoaderFreeDirList)
SYMFUNC(LoaderGetOS)
+ SYMFUNC(LoaderShouldIgnoreABI)
SYMFUNC(LoaderGetABIVersion)
#ifdef XF86DRI