Added check for CFM
authorMiro Jurisic <meeroh@mit.edu>
Tue, 8 Sep 1998 19:56:55 +0000 (19:56 +0000)
committerMiro Jurisic <meeroh@mit.edu>
Tue, 8 Sep 1998 19:56:55 +0000 (19:56 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10913 dc483132-0cff-0310-8789-dd5450dbe970

src/mac/CFMglue.c
src/mac/ChangeLog

index b2270885d80a41d3b66cb38fb67219c1c7f0cf7f..4daf5d8669944454d5f6ee2c1b986afbbca90c48 100644 (file)
@@ -1,4 +1,6 @@
 #include <CodeFragments.h>
+#include <Gestalt.h>
+#include <Errors.h>
 
 // Private function prototypes
 
@@ -7,6 +9,8 @@ static OSErr Find_Symbol(
        Str255 pSymName,
        ProcInfoType pProcInfo);
 
+static pascal Boolean HaveCFM(void);
+
 static pascal OSErr GetSystemArchitecture(OSType *archType);
 
 /* This code is directly from Technote 1077 */
@@ -40,6 +44,13 @@ static pascal OSErr GetSystemArchitecture(OSType *archType)
        return tOSErr;
 }
 
+static pascal Boolean HaveCFM(void)
+{
+       long response;
+       return ( (Gestalt (gestaltCFMAttr, &response) == noErr) &&
+                               (((response >> gestaltCFMPresent) & 1) != 0));
+}
+
 static OSErr Find_Symbol(
        Ptr* pSymAddr,
        Str255 pSymName,
@@ -61,6 +72,12 @@ static OSErr Find_Symbol(
                if (sOSErr != noErr)
                return sOSErr; // OOPS!
        }
+       
+       if (!HaveCFM()) {
+               // If we don't have CFM68K, return a reasonable-looking error.
+               sOSErr = cfragLibConnErr;
+               return sOSErr;
+       }
 
        if (sArchType == kMotorola68KCFragArch) // ...for CFM68K
                tISAType = kM68kISA | kCFM68kRTA;
index 0337462c713bfc9087d30cc5ca1618054e80880b..55a5781db0e0b60555d7dda7a86b4d41e3404b87 100644 (file)
@@ -1,3 +1,6 @@
+Fri Sep 8 15:50:00 1998  Miro Jurisic <meeroh@mit.edu>
+       * CFMGlue.c: Added check for Code Fragment Manager
+
 Fri Aug 28 16:30:00 1998  Miro Jurisic <meeroh@mit.edu>
 
        * Makefile.tmpl, ReadMe, Makefile.initial, RunAppleScript.pl: Added stuff to