summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/Gestalt.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/Gestalt.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/Gestalt.h')
-rw-r--r--common/quicktime_win32/Gestalt.h2047
1 files changed, 2047 insertions, 0 deletions
diff --git a/common/quicktime_win32/Gestalt.h b/common/quicktime_win32/Gestalt.h
new file mode 100644
index 0000000..472ebff
--- /dev/null
+++ b/common/quicktime_win32/Gestalt.h
@@ -0,0 +1,2047 @@
+/*
+ File: Gestalt.h
+
+ Contains: Gestalt Interfaces.
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1988-2001 by Apple Computer, Inc. All rights reserved
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __GESTALT__
+#define __GESTALT__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __MIXEDMODE__
+#include <MixedMode.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+
+
+typedef CALLBACK_API( OSErr , SelectorFunctionProcPtr )(OSType selector, long *response);
+typedef STACK_UPP_TYPE(SelectorFunctionProcPtr) SelectorFunctionUPP;
+/*
+ * Gestalt()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter __D0 Gestalt(__D0, __A1)
+#endif
+EXTERN_API( OSErr )
+Gestalt(
+ OSType selector,
+ long * response) TWOWORDINLINE(0xA1AD, 0x2288);
+
+
+
+/*
+ * ReplaceGestalt()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter __D0 ReplaceGestalt(__D0, __A0, __A1)
+#endif
+EXTERN_API( OSErr )
+ReplaceGestalt(
+ OSType selector,
+ SelectorFunctionUPP gestaltFunction,
+ SelectorFunctionUPP * oldGestaltFunction) FOURWORDINLINE(0x2F09, 0xA5AD, 0x225F, 0x2288);
+
+
+/*
+ * NewGestalt()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
+#pragma parameter __D0 NewGestalt(__D0, __A0)
+#endif
+EXTERN_API( OSErr )
+NewGestalt(
+ OSType selector,
+ SelectorFunctionUPP gestaltFunction) ONEWORDINLINE(0xA3AD);
+
+
+/* The GestaltValue functions are available in System 7.5 and later*/
+
+/*
+ * NewGestaltValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+NewGestaltValue(
+ OSType selector,
+ long newValue) THREEWORDINLINE(0x303C, 0x0401, 0xABF1);
+
+
+/*
+ * ReplaceGestaltValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+ReplaceGestaltValue(
+ OSType selector,
+ long replacementValue) THREEWORDINLINE(0x303C, 0x0402, 0xABF1);
+
+
+/*
+ * SetGestaltValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+SetGestaltValue(
+ OSType selector,
+ long newValue) THREEWORDINLINE(0x303C, 0x0404, 0xABF1);
+
+
+/*
+ * DeleteGestaltValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+DeleteGestaltValue(OSType selector) THREEWORDINLINE(0x303C, 0x0203, 0xABF1);
+
+
+
+/*
+ * NewSelectorFunctionUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( SelectorFunctionUPP )
+NewSelectorFunctionUPP(SelectorFunctionProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppSelectorFunctionProcInfo = 0x000003E0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(SelectorFunctionUPP) NewSelectorFunctionUPP(SelectorFunctionProcPtr userRoutine) { return (SelectorFunctionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSelectorFunctionProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewSelectorFunctionUPP(userRoutine) (SelectorFunctionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSelectorFunctionProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * DisposeSelectorFunctionUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeSelectorFunctionUPP(SelectorFunctionUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeSelectorFunctionUPP(SelectorFunctionUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeSelectorFunctionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeSelectorFunctionUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeSelectorFunctionUPP(
+ OSType selector,
+ long * response,
+ SelectorFunctionUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeSelectorFunctionUPP(OSType selector, long * response, SelectorFunctionUPP userUPP) { return (OSErr)CALL_TWO_PARAMETER_UPP(userUPP, uppSelectorFunctionProcInfo, selector, response); }
+ #else
+ #define InvokeSelectorFunctionUPP(selector, response, userUPP) (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppSelectorFunctionProcInfo, (selector), (response))
+ #endif
+#endif
+
+#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
+ /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
+ #define NewSelectorFunctionProc(userRoutine) NewSelectorFunctionUPP(userRoutine)
+ #define CallSelectorFunctionProc(userRoutine, selector, response) InvokeSelectorFunctionUPP(selector, response, userRoutine)
+#endif /* CALL_NOT_IN_CARBON */
+
+
+/* Environment Selectors */
+enum {
+ gestaltAddressingModeAttr = FOUR_CHAR_CODE('addr'), /* addressing mode attributes */
+ gestalt32BitAddressing = 0, /* using 32-bit addressing mode */
+ gestalt32BitSysZone = 1, /* 32-bit compatible system zone */
+ gestalt32BitCapable = 2 /* Machine is 32-bit capable */
+};
+
+enum {
+ gestaltAFPClient = FOUR_CHAR_CODE('afps'),
+ gestaltAFPClientVersionMask = 0x0000FFFF, /* low word of long is the */
+ /* client version 0x0001 -> 0x0007*/
+ gestaltAFPClient3_5 = 0x0001,
+ gestaltAFPClient3_6 = 0x0002,
+ gestaltAFPClient3_6_1 = 0x0003,
+ gestaltAFPClient3_6_2 = 0x0004,
+ gestaltAFPClient3_6_3 = 0x0005, /* including 3.6.4, 3.6.5*/
+ gestaltAFPClient3_7 = 0x0006, /* including 3.7.1*/
+ gestaltAFPClient3_7_2 = 0x0007, /* including 3.7.3, 3.7.4*/
+ gestaltAFPClient3_8 = 0x0008,
+ gestaltAFPClient3_8_1 = 0x0009, /* including 3.8.2 */
+ gestaltAFPClient3_8_3 = 0x000A,
+ gestaltAFPClient3_8_4 = 0x000B, /* including 3.8.5, 3.8.6 */
+ gestaltAFPClientAttributeMask = (long)0xFFFF0000, /* high word of long is a */
+ /* set of attribute bits*/
+ gestaltAFPClientCfgRsrc = 16, /* Client uses config resources*/
+ gestaltAFPClientSupportsIP = 29, /* Client supports AFP over TCP/IP*/
+ gestaltAFPClientVMUI = 30, /* Client can put up UI from the PBVolMount trap*/
+ gestaltAFPClientMultiReq = 31 /* Client supports multiple outstanding requests*/
+};
+
+
+enum {
+ gestaltAliasMgrAttr = FOUR_CHAR_CODE('alis'), /* Alias Mgr Attributes */
+ gestaltAliasMgrPresent = 0, /* True if the Alias Mgr is present */
+ gestaltAliasMgrSupportsRemoteAppletalk = 1, /* True if the Alias Mgr knows about Remote Appletalk */
+ gestaltAliasMgrSupportsAOCEKeychain = 2, /* True if the Alias Mgr knows about the AOCE Keychain */
+ gestaltAliasMgrResolveAliasFileWithMountOptions = 3, /* True if the Alias Mgr implements gestaltAliasMgrResolveAliasFileWithMountOptions() and IsAliasFile() */
+ gestaltAliasMgrFollowsAliasesWhenResolving = 4,
+ gestaltAliasMgrSupportsExtendedCalls = 5,
+ gestaltAliasMgrSupportsFSCalls = 6, /* true if Alias Mgr supports HFS+ Calls */
+ gestaltAliasMgrPrefersPath = 7 /* True if the Alias Mgr prioritizes the path over file id during resolution by default */
+};
+
+/* Gestalt selector and values for the Appearance Manager */
+enum {
+ gestaltAppearanceAttr = FOUR_CHAR_CODE('appr'),
+ gestaltAppearanceExists = 0,
+ gestaltAppearanceCompatMode = 1
+};
+
+/* Gestalt selector for determining Appearance Manager version */
+/* If this selector does not exist, but gestaltAppearanceAttr */
+/* does, it indicates that the 1.0 version is installed. This */
+/* gestalt returns a BCD number representing the version of the */
+/* Appearance Manager that is currently running, e.g. 0x0101 for */
+/* version 1.0.1. */
+enum {
+ gestaltAppearanceVersion = FOUR_CHAR_CODE('apvr')
+};
+
+enum {
+ gestaltArbitorAttr = FOUR_CHAR_CODE('arb '),
+ gestaltSerialArbitrationExists = 0 /* this bit if the serial port arbitrator exists*/
+};
+
+enum {
+ gestaltAppleScriptVersion = FOUR_CHAR_CODE('ascv') /* AppleScript version*/
+};
+
+enum {
+ gestaltAppleScriptAttr = FOUR_CHAR_CODE('ascr'), /* AppleScript attributes*/
+ gestaltAppleScriptPresent = 0,
+ gestaltAppleScriptPowerPCSupport = 1
+};
+
+enum {
+ gestaltATAAttr = FOUR_CHAR_CODE('ata '), /* ATA is the driver to support IDE hard disks */
+ gestaltATAPresent = 0 /* if set, ATA Manager is present */
+};
+
+enum {
+ gestaltATalkVersion = FOUR_CHAR_CODE('atkv') /* Detailed AppleTalk version; see comment above for format */
+};
+
+enum {
+ gestaltAppleTalkVersion = FOUR_CHAR_CODE('atlk') /* appletalk version */
+};
+
+/*
+ FORMAT OF gestaltATalkVersion RESPONSE
+ --------------------------------------
+ The version is stored in the high three bytes of the response value. Let us number
+ the bytes in the response value from 0 to 3, where 0 is the least-significant byte.
+
+ Byte#: 3 2 1 0
+ Value: 0xMMNNRR00
+
+ Byte 3 (MM) contains the major revision number, byte 2 (NN) contains the minor
+ revision number, and byte 1 (RR) contains a constant that represents the release
+ stage. Byte 0 always contains 0x00. The constants for the release stages are:
+
+ development = 0x20
+ alpha = 0x40
+ beta = 0x60
+ final = 0x80
+ release = 0x80
+
+ For example, if you call Gestalt with the 'atkv' selector when AppleTalk version 57
+ is loaded, you receive the long integer response value 0x39008000.
+*/
+enum {
+ gestaltAUXVersion = FOUR_CHAR_CODE('a/ux') /* a/ux version, if present */
+};
+
+enum {
+ gestaltMacOSCompatibilityBoxAttr = FOUR_CHAR_CODE('bbox'), /* Classic presence and features */
+ gestaltMacOSCompatibilityBoxPresent = 0, /* True if running under the Classic */
+ gestaltMacOSCompatibilityBoxHasSerial = 1, /* True if Classic serial support is implemented. */
+ gestaltMacOSCompatibilityBoxless = 2 /* True if we're Boxless (screen shared with Carbon/Cocoa) */
+};
+
+enum {
+ gestaltBusClkSpeed = FOUR_CHAR_CODE('bclk') /* main I/O bus clock speed in hertz */
+};
+
+enum {
+ gestaltCloseViewAttr = FOUR_CHAR_CODE('BSDa'), /* CloseView attributes */
+ gestaltCloseViewEnabled = 0, /* Closeview enabled (dynamic bit - returns current state) */
+ gestaltCloseViewDisplayMgrFriendly = 1 /* Closeview compatible with Display Manager (FUTURE) */
+};
+
+enum {
+ gestaltCarbonVersion = FOUR_CHAR_CODE('cbon') /* version of Carbon API present in system */
+};
+
+enum {
+ gestaltCFMAttr = FOUR_CHAR_CODE('cfrg'), /* Selector for information about the Code Fragment Manager */
+ gestaltCFMPresent = 0, /* True if the Code Fragment Manager is present */
+ gestaltCFMPresentMask = 0x0001,
+ gestaltCFM99Present = 2, /* True if the CFM-99 features are present. */
+ gestaltCFM99PresentMask = 0x0004
+};
+
+enum {
+ gestaltCollectionMgrVersion = FOUR_CHAR_CODE('cltn') /* Collection Manager version */
+};
+
+enum {
+ gestaltColorMatchingAttr = FOUR_CHAR_CODE('cmta'), /* ColorSync attributes */
+ gestaltHighLevelMatching = 0,
+ gestaltColorMatchingLibLoaded = 1
+};
+
+enum {
+ gestaltColorMatchingVersion = FOUR_CHAR_CODE('cmtc'),
+ gestaltColorSync10 = 0x0100, /* 0x0100 & 0x0110 _Gestalt versions for 1.0-1.0.3 product */
+ gestaltColorSync11 = 0x0110, /* 0x0100 == low-level matching only */
+ gestaltColorSync104 = 0x0104, /* Real version, by popular demand */
+ gestaltColorSync105 = 0x0105,
+ gestaltColorSync20 = 0x0200, /* ColorSync 2.0 */
+ gestaltColorSync21 = 0x0210,
+ gestaltColorSync211 = 0x0211,
+ gestaltColorSync212 = 0x0212,
+ gestaltColorSync213 = 0x0213,
+ gestaltColorSync25 = 0x0250,
+ gestaltColorSync26 = 0x0260,
+ gestaltColorSync261 = 0x0261,
+ gestaltColorSync30 = 0x0300
+};
+
+enum {
+ gestaltControlMgrVersion = FOUR_CHAR_CODE('cmvr') /* NOTE: The first version we return is 3.0.1, on Mac OS X plus update 2*/
+};
+
+enum {
+ gestaltControlMgrAttr = FOUR_CHAR_CODE('cntl'), /* Control Mgr*/
+ gestaltControlMgrPresent = (1L << 0), /* NOTE: this is a bit mask, whereas all other Gestalt constants of*/
+ /* this type are bit index values. Universal Interfaces 3.2 slipped*/
+ /* out the door with this mistake.*/
+ gestaltControlMgrPresentBit = 0, /* bit number*/
+ gestaltControlMsgPresentMask = (1L << gestaltControlMgrPresentBit)
+};
+
+enum {
+ gestaltConnMgrAttr = FOUR_CHAR_CODE('conn'), /* connection mgr attributes */
+ gestaltConnMgrPresent = 0,
+ gestaltConnMgrCMSearchFix = 1, /* Fix to CMAddSearch? */
+ gestaltConnMgrErrorString = 2, /* has CMGetErrorString() */
+ gestaltConnMgrMultiAsyncIO = 3 /* CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill */
+};
+
+enum {
+ gestaltColorPickerVersion = FOUR_CHAR_CODE('cpkr'), /* returns version of ColorPicker */
+ gestaltColorPicker = FOUR_CHAR_CODE('cpkr') /* gestaltColorPicker is old name for gestaltColorPickerVersion */
+};
+
+enum {
+ gestaltComponentMgr = FOUR_CHAR_CODE('cpnt'), /* Component Mgr version */
+ gestaltComponentPlatform = FOUR_CHAR_CODE('copl') /* Component Platform number */
+};
+
+/*
+ The gestaltNativeCPUtype ('cput') selector can be used to determine the
+ native CPU type for all Macs running System 7.5 or later.
+
+ The 'cput' selector is not available when running System 7.0 (or earlier)
+ on most 68K machines. If 'cput' is not available, then the 'proc' selector
+ should be used to determine the processor type.
+
+ An application should always try the 'cput' selector first. This is because,
+ on PowerPC machines, the 'proc' selector will reflect the CPU type of the
+ emulator's "virtual processor" rather than the native CPU type.
+
+ The values specified below are accurate. Prior versions of the Gestalt
+ interface file contained values that were off by one.
+
+ The Quadra 840AV and the Quadra 660AV contain a bug in the ROM code that
+ causes the 'cput' selector to respond with the value 5. This behavior
+ occurs only when running System 7.1. System 7.5 fixes the bug by replacing
+ the faulty 'cput' selector function with the correct one.
+
+ The gestaltNativeCPUfamily ('cpuf') selector can be used to determine the
+ general family the native CPU is in. This can be helpful for determing how
+ blitters and things should be written. In general, it is smarter to use this
+ selector (when available) than gestaltNativeCPUtype since newer processors
+ in the same family can be handled without revising your code.
+
+ gestaltNativeCPUfamily uses the same results as gestaltNativeCPUtype, but
+ will only return certain CPU values.
+*/
+enum {
+ gestaltNativeCPUtype = FOUR_CHAR_CODE('cput'), /* Native CPU type */
+ gestaltNativeCPUfamily = FOUR_CHAR_CODE('cpuf'), /* Native CPU family */
+ gestaltCPU68000 = 0, /* Various 68k CPUs... */
+ gestaltCPU68010 = 1,
+ gestaltCPU68020 = 2,
+ gestaltCPU68030 = 3,
+ gestaltCPU68040 = 4,
+ gestaltCPU601 = 0x0101, /* IBM 601 */
+ gestaltCPU603 = 0x0103,
+ gestaltCPU604 = 0x0104,
+ gestaltCPU603e = 0x0106,
+ gestaltCPU603ev = 0x0107,
+ gestaltCPU750 = 0x0108, /* Also 740 - "G3" */
+ gestaltCPU604e = 0x0109,
+ gestaltCPU604ev = 0x010A, /* Mach 5, 250Mhz and up */
+ gestaltCPUG4 = 0x010C, /* Max */
+ gestaltCPUG47450 = 0x0110 /* Vger , Altivec */
+};
+
+#if TARGET_OS_WIN32
+enum {
+ /* x86 CPUs all start with 'i' in the high nybble */
+ gestaltCPU486 = FOUR_CHAR_CODE('i486'),
+ gestaltCPUPentium = FOUR_CHAR_CODE('i586'),
+ gestaltCPUPentiumPro = FOUR_CHAR_CODE('i5pr'),
+ gestaltCPUPentiumII = FOUR_CHAR_CODE('i5ii'),
+ gestaltCPUPentiumIII = FOUR_CHAR_CODE('i5_3'),
+ gestaltCPUPentium4 = FOUR_CHAR_CODE('i5_4'),
+ gestaltCPUX86 = FOUR_CHAR_CODE('ixxx')
+};
+
+#endif /* TARGET_OS_WIN32 */
+
+enum {
+ gestaltCRMAttr = FOUR_CHAR_CODE('crm '), /* comm resource mgr attributes */
+ gestaltCRMPresent = 0,
+ gestaltCRMPersistentFix = 1, /* fix for persistent tools */
+ gestaltCRMToolRsrcCalls = 2 /* has CRMGetToolResource/ReleaseToolResource */
+};
+
+enum {
+ gestaltControlStripVersion = FOUR_CHAR_CODE('csvr') /* Control Strip version (was 'sdvr') */
+};
+
+enum {
+ gestaltCTBVersion = FOUR_CHAR_CODE('ctbv') /* CommToolbox version */
+};
+
+enum {
+ gestaltDBAccessMgrAttr = FOUR_CHAR_CODE('dbac'), /* Database Access Mgr attributes */
+ gestaltDBAccessMgrPresent = 0 /* True if Database Access Mgr present */
+};
+
+enum {
+ gestaltSDPFindVersion = FOUR_CHAR_CODE('dfnd') /* OCE Standard Directory Panel*/
+};
+
+enum {
+ gestaltDictionaryMgrAttr = FOUR_CHAR_CODE('dict'), /* Dictionary Manager attributes */
+ gestaltDictionaryMgrPresent = 0 /* Dictionary Manager attributes */
+};
+
+enum {
+ gestaltDITLExtAttr = FOUR_CHAR_CODE('ditl'), /* AppenDITL, etc. calls from CTB */
+ gestaltDITLExtPresent = 0, /* True if calls are present */
+ gestaltDITLExtSupportsIctb = 1 /* True if AppendDITL, ShortenDITL support 'ictb's */
+};
+
+enum {
+ gestaltDialogMgrAttr = FOUR_CHAR_CODE('dlog'), /* Dialog Mgr*/
+ gestaltDialogMgrPresent = (1L << 0), /* NOTE: this is a bit mask, whereas all other Gestalt constants of*/
+ /* this type are bit index values. Universal Interfaces 3.2 slipped*/
+ /* out the door with this mistake.*/
+ gestaltDialogMgrPresentBit = 0, /* bit number*/
+ gestaltDialogMgrHasAquaAlertBit = 2, /* bit number*/
+ gestaltDialogMgrPresentMask = (1L << gestaltDialogMgrPresentBit),
+ gestaltDialogMgrHasAquaAlertMask = (1L << gestaltDialogMgrHasAquaAlertBit),
+ gestaltDialogMsgPresentMask = gestaltDialogMgrPresentMask /* compatibility mask*/
+};
+
+enum {
+ gestaltDesktopPicturesAttr = FOUR_CHAR_CODE('dkpx'), /* Desktop Pictures attributes */
+ gestaltDesktopPicturesInstalled = 0, /* True if control panel is installed */
+ gestaltDesktopPicturesDisplayed = 1 /* True if a picture is currently displayed */
+};
+
+enum {
+ gestaltDisplayMgrVers = FOUR_CHAR_CODE('dplv') /* Display Manager version */
+};
+
+enum {
+ gestaltDisplayMgrAttr = FOUR_CHAR_CODE('dply'), /* Display Manager attributes */
+ gestaltDisplayMgrPresent = 0, /* True if Display Mgr is present */
+ gestaltDisplayMgrCanSwitchMirrored = 2, /* True if Display Mgr can switch modes on mirrored displays */
+ gestaltDisplayMgrSetDepthNotifies = 3, /* True SetDepth generates displays mgr notification */
+ gestaltDisplayMgrCanConfirm = 4, /* True Display Manager supports DMConfirmConfiguration */
+ gestaltDisplayMgrColorSyncAware = 5, /* True if Display Manager supports profiles for displays */
+ gestaltDisplayMgrGeneratesProfiles = 6, /* True if Display Manager will automatically generate profiles for displays */
+ gestaltDisplayMgrSleepNotifies = 7 /* True if Display Mgr generates "displayWillSleep", "displayDidWake" notifications */
+};
+
+enum {
+ gestaltDragMgrAttr = FOUR_CHAR_CODE('drag'), /* Drag Manager attributes */
+ gestaltDragMgrPresent = 0, /* Drag Manager is present */
+ gestaltDragMgrFloatingWind = 1, /* Drag Manager supports floating windows */
+ gestaltPPCDragLibPresent = 2, /* Drag Manager PPC DragLib is present */
+ gestaltDragMgrHasImageSupport = 3, /* Drag Manager allows SetDragImage call */
+ gestaltCanStartDragInFloatWindow = 4, /* Drag Manager supports starting a drag in a floating window */
+ gestaltSetDragImageUpdates = 5 /* Drag Manager supports drag image updating via SetDragImage */
+};
+
+enum {
+ gestaltDrawSprocketVersion = FOUR_CHAR_CODE('dspv') /* Draw Sprocket version (as a NumVersion) */
+};
+
+enum {
+ gestaltDigitalSignatureVersion = FOUR_CHAR_CODE('dsig') /* returns Digital Signature Toolbox version in low-order word*/
+};
+
+/*
+ Desktop Printing Feature Gestalt
+ Use this gestalt to check if third-party printer driver support is available
+*/
+enum {
+ gestaltDTPFeatures = FOUR_CHAR_CODE('dtpf'),
+ kDTPThirdPartySupported = 0x00000004 /* mask for checking if third-party drivers are supported*/
+};
+
+
+/*
+ Desktop Printer Info Gestalt
+ Use this gestalt to get a hold of information for all of the active desktop printers
+*/
+enum {
+ gestaltDTPInfo = FOUR_CHAR_CODE('dtpx') /* returns GestaltDTPInfoHdle*/
+};
+
+enum {
+ gestaltEasyAccessAttr = FOUR_CHAR_CODE('easy'), /* Easy Access attributes */
+ gestaltEasyAccessOff = 0, /* if Easy Access present, but off (no icon) */
+ gestaltEasyAccessOn = 1, /* if Easy Access "On" */
+ gestaltEasyAccessSticky = 2, /* if Easy Access "Sticky" */
+ gestaltEasyAccessLocked = 3 /* if Easy Access "Locked" */
+};
+
+enum {
+ gestaltEditionMgrAttr = FOUR_CHAR_CODE('edtn'), /* Edition Mgr attributes */
+ gestaltEditionMgrPresent = 0, /* True if Edition Mgr present */
+ gestaltEditionMgrTranslationAware = 1 /* True if edition manager is translation manager aware */
+};
+
+enum {
+ gestaltAppleEventsAttr = FOUR_CHAR_CODE('evnt'), /* Apple Events attributes */
+ gestaltAppleEventsPresent = 0, /* True if Apple Events present */
+ gestaltScriptingSupport = 1,
+ gestaltOSLInSystem = 2, /* OSL is in system so don't use the one linked in to app */
+ gestaltSupportsApplicationURL = 4 /* Supports the typeApplicationURL addressing mode */
+};
+
+enum {
+ gestaltExtensionTableVersion = FOUR_CHAR_CODE('etbl') /* ExtensionTable version */
+};
+
+
+enum {
+ gestaltFBCIndexingState = FOUR_CHAR_CODE('fbci'), /* Find By Content indexing state*/
+ gestaltFBCindexingSafe = 0, /* any search will result in synchronous wait*/
+ gestaltFBCindexingCritical = 1 /* any search will execute immediately*/
+};
+
+enum {
+ gestaltFBCVersion = FOUR_CHAR_CODE('fbcv'), /* Find By Content version*/
+ gestaltFBCCurrentVersion = 0x0011, /* First release for OS 8/9*/
+ gestaltOSXFBCCurrentVersion = 0x0100 /* First release for OS X*/
+};
+
+
+enum {
+ gestaltFileMappingAttr = FOUR_CHAR_CODE('flmp'), /* File mapping attributes*/
+ gestaltFileMappingPresent = 0, /* bit is set if file mapping APIs are present*/
+ gestaltFileMappingMultipleFilesFix = 1 /* bit is set if multiple files per volume can be mapped*/
+};
+
+enum {
+ gestaltFloppyAttr = FOUR_CHAR_CODE('flpy'), /* Floppy disk drive/driver attributes */
+ gestaltFloppyIsMFMOnly = 0, /* Floppy driver only supports MFM disk formats */
+ gestaltFloppyIsManualEject = 1, /* Floppy drive, driver, and file system are in manual-eject mode */
+ gestaltFloppyUsesDiskInPlace = 2 /* Floppy drive must have special DISK-IN-PLACE output; standard DISK-CHANGED not used */
+};
+
+enum {
+ gestaltFinderAttr = FOUR_CHAR_CODE('fndr'), /* Finder attributes */
+ gestaltFinderDropEvent = 0, /* Finder recognizes drop event */
+ gestaltFinderMagicPlacement = 1, /* Finder supports magic icon placement */
+ gestaltFinderCallsAEProcess = 2, /* Finder calls AEProcessAppleEvent */
+ gestaltOSLCompliantFinder = 3, /* Finder is scriptable and recordable */
+ gestaltFinderSupports4GBVolumes = 4, /* Finder correctly handles 4GB volumes */
+ gestaltFinderHasClippings = 6, /* Finder supports Drag Manager clipping files */
+ gestaltFinderFullDragManagerSupport = 7, /* Finder accepts 'hfs ' flavors properly */
+ gestaltFinderFloppyRootComments = 8, /* in MacOS 8 and later, will be set if Finder ever supports comments on Floppy icons */
+ gestaltFinderLargeAndNotSavedFlavorsOK = 9, /* in MacOS 8 and later, this bit is set if drags with >1024-byte flavors and flavorNotSaved flavors work reliably */
+ gestaltFinderUsesExtensibleFolderManager = 10, /* Finder uses Extensible Folder Manager (for example, for Magic Routing) */
+ gestaltFinderUnderstandsRedirectedDesktopFolder = 11 /* Finder deals with startup disk's desktop folder residing on another disk */
+};
+
+enum {
+ gestaltFindFolderAttr = FOUR_CHAR_CODE('fold'), /* Folder Mgr attributes */
+ gestaltFindFolderPresent = 0, /* True if Folder Mgr present */
+ gestaltFolderDescSupport = 1, /* True if Folder Mgr has FolderDesc calls */
+ gestaltFolderMgrFollowsAliasesWhenResolving = 2, /* True if Folder Mgr follows folder aliases */
+ gestaltFolderMgrSupportsExtendedCalls = 3, /* True if Folder Mgr supports the Extended calls */
+ gestaltFolderMgrSupportsDomains = 4, /* True if Folder Mgr supports domains for the first parameter to FindFolder */
+ gestaltFolderMgrSupportsFSCalls = 5 /* True if FOlder manager supports __FindFolderFSRef & __FindFolderExtendedFSRef */
+};
+
+enum {
+ gestaltFindFolderRedirectionAttr = FOUR_CHAR_CODE('fole')
+};
+
+
+enum {
+ gestaltFontMgrAttr = FOUR_CHAR_CODE('font'), /* Font Mgr attributes */
+ gestaltOutlineFonts = 0 /* True if Outline Fonts supported */
+};
+
+enum {
+ gestaltFPUType = FOUR_CHAR_CODE('fpu '), /* fpu type */
+ gestaltNoFPU = 0, /* no FPU */
+ gestalt68881 = 1, /* 68881 FPU */
+ gestalt68882 = 2, /* 68882 FPU */
+ gestalt68040FPU = 3 /* 68040 built-in FPU */
+};
+
+enum {
+ gestaltFSAttr = FOUR_CHAR_CODE('fs '), /* file system attributes */
+ gestaltFullExtFSDispatching = 0, /* has really cool new HFSDispatch dispatcher */
+ gestaltHasFSSpecCalls = 1, /* has FSSpec calls */
+ gestaltHasFileSystemManager = 2, /* has a file system manager */
+ gestaltFSMDoesDynamicLoad = 3, /* file system manager supports dynamic loading */
+ gestaltFSSupports4GBVols = 4, /* file system supports 4 gigabyte volumes */
+ gestaltFSSupports2TBVols = 5, /* file system supports 2 terabyte volumes */
+ gestaltHasExtendedDiskInit = 6, /* has extended Disk Initialization calls */
+ gestaltDTMgrSupportsFSM = 7, /* Desktop Manager support FSM-based foreign file systems */
+ gestaltFSNoMFSVols = 8, /* file system doesn't supports MFS volumes */
+ gestaltFSSupportsHFSPlusVols = 9, /* file system supports HFS Plus volumes */
+ gestaltFSIncompatibleDFA82 = 10 /* VCB and FCB structures changed; DFA 8.2 is incompatible */
+};
+
+enum {
+ gestaltHasHFSPlusAPIs = 12, /* file system supports HFS Plus APIs */
+ gestaltMustUseFCBAccessors = 13, /* FCBSPtr and FSFCBLen are invalid - must use FSM FCB accessor functions*/
+ gestaltFSUsesPOSIXPathsForConversion = 14, /* The path interchange routines operate on POSIX paths instead of HFS paths */
+ gestaltFSSupportsExclusiveLocks = 15, /* File system uses POSIX O_EXLOCK for opens */
+ gestaltFSSupportsHardLinkDetection = 16 /* File system returns if an item is a hard link */
+};
+
+enum {
+ gestaltAdminFeaturesFlagsAttr = FOUR_CHAR_CODE('fred'), /* a set of admin flags, mostly useful internally. */
+ gestaltFinderUsesSpecialOpenFoldersFile = 0 /* the Finder uses a special file to store the list of open folders */
+};
+
+enum {
+ gestaltFSMVersion = FOUR_CHAR_CODE('fsm ') /* returns version of HFS External File Systems Manager (FSM) */
+};
+
+enum {
+ gestaltFXfrMgrAttr = FOUR_CHAR_CODE('fxfr'), /* file transfer manager attributes */
+ gestaltFXfrMgrPresent = 0,
+ gestaltFXfrMgrMultiFile = 1, /* supports FTSend and FTReceive */
+ gestaltFXfrMgrErrorString = 2, /* supports FTGetErrorString */
+ gestaltFXfrMgrAsync = 3 /*supports FTSendAsync, FTReceiveAsync, FTCompletionAsync*/
+};
+
+enum {
+ gestaltGraphicsAttr = FOUR_CHAR_CODE('gfxa'), /* Quickdraw GX attributes selector */
+ gestaltGraphicsIsDebugging = 0x00000001,
+ gestaltGraphicsIsLoaded = 0x00000002,
+ gestaltGraphicsIsPowerPC = 0x00000004
+};
+
+enum {
+ gestaltGraphicsVersion = FOUR_CHAR_CODE('grfx'), /* Quickdraw GX version selector */
+ gestaltCurrentGraphicsVersion = 0x00010200 /* the version described in this set of headers */
+};
+
+enum {
+ gestaltHardwareAttr = FOUR_CHAR_CODE('hdwr'), /* hardware attributes */
+ gestaltHasVIA1 = 0, /* VIA1 exists */
+ gestaltHasVIA2 = 1, /* VIA2 exists */
+ gestaltHasASC = 3, /* Apple Sound Chip exists */
+ gestaltHasSCC = 4, /* SCC exists */
+ gestaltHasSCSI = 7, /* SCSI exists */
+ gestaltHasSoftPowerOff = 19, /* Capable of software power off */
+ gestaltHasSCSI961 = 21, /* 53C96 SCSI controller on internal bus */
+ gestaltHasSCSI962 = 22, /* 53C96 SCSI controller on external bus */
+ gestaltHasUniversalROM = 24, /* Do we have a Universal ROM? */
+ gestaltHasEnhancedLtalk = 30 /* Do we have Enhanced LocalTalk? */
+};
+
+enum {
+ gestaltHelpMgrAttr = FOUR_CHAR_CODE('help'), /* Help Mgr Attributes */
+ gestaltHelpMgrPresent = 0, /* true if help mgr is present */
+ gestaltHelpMgrExtensions = 1, /* true if help mgr extensions are installed */
+ gestaltAppleGuideIsDebug = 30,
+ gestaltAppleGuidePresent = 31 /* true if AppleGuide is installed */
+};
+
+enum {
+ gestaltHardwareVendorCode = FOUR_CHAR_CODE('hrad'), /* Returns hardware vendor information */
+ gestaltHardwareVendorApple = FOUR_CHAR_CODE('Appl') /* Hardware built by Apple */
+};
+
+enum {
+ gestaltCompressionMgr = FOUR_CHAR_CODE('icmp') /* returns version of the Image Compression Manager */
+};
+
+enum {
+ gestaltIconUtilitiesAttr = FOUR_CHAR_CODE('icon'), /* Icon Utilities attributes (Note: available in System 7.0, despite gestalt) */
+ gestaltIconUtilitiesPresent = 0, /* true if icon utilities are present */
+ gestaltIconUtilitiesHas48PixelIcons = 1, /* true if 48x48 icons are supported by IconUtilities */
+ gestaltIconUtilitiesHas32BitIcons = 2, /* true if 32-bit deep icons are supported */
+ gestaltIconUtilitiesHas8BitDeepMasks = 3, /* true if 8-bit deep masks are supported */
+ gestaltIconUtilitiesHasIconServices = 4 /* true if IconServices is present */
+};
+
+enum {
+ gestaltInternalDisplay = FOUR_CHAR_CODE('idsp') /* slot number of internal display location */
+};
+
+/*
+ To obtain information about the connected keyboard(s), one should
+ use the ADB Manager API. See Technical Note OV16 for details.
+*/
+enum {
+ gestaltKeyboardType = FOUR_CHAR_CODE('kbd '), /* keyboard type */
+ gestaltMacKbd = 1,
+ gestaltMacAndPad = 2,
+ gestaltMacPlusKbd = 3,
+ gestaltExtADBKbd = 4,
+ gestaltStdADBKbd = 5,
+ gestaltPrtblADBKbd = 6,
+ gestaltPrtblISOKbd = 7,
+ gestaltStdISOADBKbd = 8,
+ gestaltExtISOADBKbd = 9,
+ gestaltADBKbdII = 10,
+ gestaltADBISOKbdII = 11,
+ gestaltPwrBookADBKbd = 12,
+ gestaltPwrBookISOADBKbd = 13,
+ gestaltAppleAdjustKeypad = 14,
+ gestaltAppleAdjustADBKbd = 15,
+ gestaltAppleAdjustISOKbd = 16,
+ gestaltJapanAdjustADBKbd = 17, /* Japan Adjustable Keyboard */
+ gestaltPwrBkExtISOKbd = 20, /* PowerBook Extended International Keyboard with function keys */
+ gestaltPwrBkExtJISKbd = 21, /* PowerBook Extended Japanese Keyboard with function keys */
+ gestaltPwrBkExtADBKbd = 24, /* PowerBook Extended Domestic Keyboard with function keys */
+ gestaltPS2Keyboard = 27, /* PS2 keyboard */
+ gestaltPwrBkSubDomKbd = 28, /* PowerBook Subnote Domestic Keyboard with function keys w/ inverted T */
+ gestaltPwrBkSubISOKbd = 29, /* PowerBook Subnote International Keyboard with function keys w/ inverted T */
+ gestaltPwrBkSubJISKbd = 30, /* PowerBook Subnote Japanese Keyboard with function keys w/ inverted T */
+ gestaltPwrBkEKDomKbd = 195, /* (0xC3) PowerBook Domestic Keyboard with Embedded Keypad, function keys & inverted T */
+ gestaltPwrBkEKISOKbd = 196, /* (0xC4) PowerBook International Keyboard with Embedded Keypad, function keys & inverted T */
+ gestaltPwrBkEKJISKbd = 197, /* (0xC5) PowerBook Japanese Keyboard with Embedded Keypad, function keys & inverted T */
+ gestaltUSBCosmoANSIKbd = 198, /* (0xC6) original USB Domestic (ANSI) Keyboard */
+ gestaltUSBCosmoISOKbd = 199, /* (0xC7) original USB International (ISO) Keyboard */
+ gestaltUSBCosmoJISKbd = 200, /* (0xC8) original USB Japanese (JIS) Keyboard */
+ gestaltPwrBk99JISKbd = 201, /* (0xC9) '99 PowerBook JIS Keyboard with Embedded Keypad, function keys & inverted T */
+ gestaltUSBAndyANSIKbd = 204, /* (0xCC) USB Pro Keyboard Domestic (ANSI) Keyboard */
+ gestaltUSBAndyISOKbd = 205, /* (0xCD) USB Pro Keyboard International (ISO) Keyboard */
+ gestaltUSBAndyJISKbd = 206 /* (0xCE) USB Pro Keyboard Japanese (JIS) Keyboard */
+};
+
+
+/*
+ This gestalt indicates the highest UDF version that the active UDF implementation supports.
+ The value should be assembled from a read version (upper word) and a write version (lower word)
+*/
+enum {
+ gestaltUDFSupport = FOUR_CHAR_CODE('kudf') /* Used for communication between UDF implementations*/
+};
+
+enum {
+ gestaltLowMemorySize = FOUR_CHAR_CODE('lmem') /* size of low memory area */
+};
+
+enum {
+ gestaltLogicalRAMSize = FOUR_CHAR_CODE('lram') /* logical ram size */
+};
+
+/*
+ MACHINE TYPE CONSTANTS NAMING CONVENTION
+
+ All future machine type constant names take the following form:
+
+ gestalt<lineName><modelNumber>
+
+ Line Names
+
+ The following table contains the lines currently produced by Apple and the
+ lineName substrings associated with them:
+
+ Line lineName
+ ------------------------- ------------
+ Macintosh LC "MacLC"
+ Macintosh Performa "Performa"
+ Macintosh PowerBook "PowerBook"
+ Macintosh PowerBook Duo "PowerBookDuo"
+ Power Macintosh "PowerMac"
+ Apple Workgroup Server "AWS"
+
+ The following table contains lineNames for some discontinued lines:
+
+ Line lineName
+ ------------------------- ------------
+ Macintosh Quadra "MacQuadra" (preferred)
+ "Quadra" (also used, but not preferred)
+ Macintosh Centris "MacCentris"
+
+ Model Numbers
+
+ The modelNumber is a string representing the specific model of the machine
+ within its particular line. For example, for the Power Macintosh 8100/80,
+ the modelNumber is "8100".
+
+ Some Performa & LC model numbers contain variations in the rightmost 1 or 2
+ digits to indicate different RAM and Hard Disk configurations. A single
+ machine type is assigned for all variations of a specific model number. In
+ this case, the modelNumber string consists of the constant leftmost part
+ of the model number with 0s for the variant digits. For example, the
+ Performa 6115 and Performa 6116 are both return the same machine type
+ constant: gestaltPerforma6100.
+
+
+ OLD NAMING CONVENTIONS
+
+ The "Underscore Speed" suffix
+
+ In the past, Apple differentiated between machines that had the same model
+ number but different speeds. For example, the Power Macintosh 8100/80 and
+ Power Macintosh 8100/100 return different machine type constants. This is
+ why some existing machine type constant names take the form:
+
+ gestalt<lineName><modelNumber>_<speed>
+
+ e.g.
+
+ gestaltPowerMac8100_110
+ gestaltPowerMac7100_80
+ gestaltPowerMac7100_66
+
+ It is no longer necessary to use the "underscore speed" suffix. Starting with
+ the Power Surge machines (Power Macintosh 7200, 7500, 8500 and 9500), speed is
+ no longer used to differentiate between machine types. This is why a Power
+ Macintosh 7200/75 and a Power Macintosh 7200/90 return the same machine type
+ constant: gestaltPowerMac7200.
+
+ The "Screen Type" suffix
+
+ All PowerBook models prior to the PowerBook 190, and all PowerBook Duo models
+ before the PowerBook Duo 2300 take the form:
+
+ gestalt<lineName><modelNumber><screenType>
+
+ Where <screenType> is "c" or the empty string.
+
+ e.g.
+
+ gestaltPowerBook100
+ gestaltPowerBookDuo280
+ gestaltPowerBookDuo280c
+ gestaltPowerBook180
+ gestaltPowerBook180c
+
+ Starting with the PowerBook 190 series and the PowerBook Duo 2300 series, machine
+ types are no longer differentiated based on screen type. This is why a PowerBook
+ 5300cs/100 and a PowerBook 5300c/100 both return the same machine type constant:
+ gestaltPowerBook5300.
+
+ Macintosh LC 630 gestaltMacLC630
+ Macintosh Performa 6200 gestaltPerforma6200
+ Macintosh Quadra 700 gestaltQuadra700
+ Macintosh PowerBook 5300 gestaltPowerBook5300
+ Macintosh PowerBook Duo 2300 gestaltPowerBookDuo2300
+ Power Macintosh 8500 gestaltPowerMac8500
+*/
+
+enum {
+ gestaltMachineType = FOUR_CHAR_CODE('mach'), /* machine type */
+ gestaltClassic = 1,
+ gestaltMacXL = 2,
+ gestaltMac512KE = 3,
+ gestaltMacPlus = 4,
+ gestaltMacSE = 5,
+ gestaltMacII = 6,
+ gestaltMacIIx = 7,
+ gestaltMacIIcx = 8,
+ gestaltMacSE030 = 9,
+ gestaltPortable = 10,
+ gestaltMacIIci = 11,
+ gestaltPowerMac8100_120 = 12,
+ gestaltMacIIfx = 13,
+ gestaltMacClassic = 17,
+ gestaltMacIIsi = 18,
+ gestaltMacLC = 19,
+ gestaltMacQuadra900 = 20,
+ gestaltPowerBook170 = 21,
+ gestaltMacQuadra700 = 22,
+ gestaltClassicII = 23,
+ gestaltPowerBook100 = 24,
+ gestaltPowerBook140 = 25,
+ gestaltMacQuadra950 = 26,
+ gestaltMacLCIII = 27,
+ gestaltPerforma450 = gestaltMacLCIII,
+ gestaltPowerBookDuo210 = 29,
+ gestaltMacCentris650 = 30,
+ gestaltPowerBookDuo230 = 32,
+ gestaltPowerBook180 = 33,
+ gestaltPowerBook160 = 34,
+ gestaltMacQuadra800 = 35,
+ gestaltMacQuadra650 = 36,
+ gestaltMacLCII = 37,
+ gestaltPowerBookDuo250 = 38,
+ gestaltAWS9150_80 = 39,
+ gestaltPowerMac8100_110 = 40,
+ gestaltAWS8150_110 = gestaltPowerMac8100_110,
+ gestaltPowerMac5200 = 41,
+ gestaltPowerMac5260 = gestaltPowerMac5200,
+ gestaltPerforma5300 = gestaltPowerMac5200,
+ gestaltPowerMac6200 = 42,
+ gestaltPerforma6300 = gestaltPowerMac6200,
+ gestaltMacIIvi = 44,
+ gestaltMacIIvm = 45,
+ gestaltPerforma600 = gestaltMacIIvm,
+ gestaltPowerMac7100_80 = 47,
+ gestaltMacIIvx = 48,
+ gestaltMacColorClassic = 49,
+ gestaltPerforma250 = gestaltMacColorClassic,
+ gestaltPowerBook165c = 50,
+ gestaltMacCentris610 = 52,
+ gestaltMacQuadra610 = 53,
+ gestaltPowerBook145 = 54,
+ gestaltPowerMac8100_100 = 55,
+ gestaltMacLC520 = 56,
+ gestaltAWS9150_120 = 57,
+ gestaltPowerMac6400 = 58,
+ gestaltPerforma6400 = gestaltPowerMac6400,
+ gestaltPerforma6360 = gestaltPerforma6400,
+ gestaltMacCentris660AV = 60,
+ gestaltMacQuadra660AV = gestaltMacCentris660AV,
+ gestaltPerforma46x = 62,
+ gestaltPowerMac8100_80 = 65,
+ gestaltAWS8150_80 = gestaltPowerMac8100_80,
+ gestaltPowerMac9500 = 67,
+ gestaltPowerMac9600 = gestaltPowerMac9500,
+ gestaltPowerMac7500 = 68,
+ gestaltPowerMac7600 = gestaltPowerMac7500,
+ gestaltPowerMac8500 = 69,
+ gestaltPowerMac8600 = gestaltPowerMac8500,
+ gestaltAWS8550 = gestaltPowerMac7500,
+ gestaltPowerBook180c = 71,
+ gestaltPowerBook520 = 72,
+ gestaltPowerBook520c = gestaltPowerBook520,
+ gestaltPowerBook540 = gestaltPowerBook520,
+ gestaltPowerBook540c = gestaltPowerBook520,
+ gestaltPowerMac5400 = 74,
+ gestaltPowerMac6100_60 = 75,
+ gestaltAWS6150_60 = gestaltPowerMac6100_60,
+ gestaltPowerBookDuo270c = 77,
+ gestaltMacQuadra840AV = 78,
+ gestaltPerforma550 = 80,
+ gestaltPowerBook165 = 84,
+ gestaltPowerBook190 = 85,
+ gestaltMacTV = 88,
+ gestaltMacLC475 = 89,
+ gestaltPerforma47x = gestaltMacLC475,
+ gestaltMacLC575 = 92,
+ gestaltMacQuadra605 = 94,
+ gestaltMacQuadra630 = 98,
+ gestaltMacLC580 = 99,
+ gestaltPerforma580 = gestaltMacLC580,
+ gestaltPowerMac6100_66 = 100,
+ gestaltAWS6150_66 = gestaltPowerMac6100_66,
+ gestaltPowerBookDuo280 = 102,
+ gestaltPowerBookDuo280c = 103,
+ gestaltPowerMacLC475 = 104, /* Mac LC 475 & PPC Processor Upgrade Card*/
+ gestaltPowerMacPerforma47x = gestaltPowerMacLC475,
+ gestaltPowerMacLC575 = 105, /* Mac LC 575 & PPC Processor Upgrade Card */
+ gestaltPowerMacPerforma57x = gestaltPowerMacLC575,
+ gestaltPowerMacQuadra630 = 106, /* Quadra 630 & PPC Processor Upgrade Card*/
+ gestaltPowerMacLC630 = gestaltPowerMacQuadra630, /* Mac LC 630 & PPC Processor Upgrade Card*/
+ gestaltPowerMacPerforma63x = gestaltPowerMacQuadra630, /* Performa 63x & PPC Processor Upgrade Card*/
+ gestaltPowerMac7200 = 108,
+ gestaltPowerMac7300 = 109,
+ gestaltPowerMac7100_66 = 112,
+ gestaltPowerBook150 = 115,
+ gestaltPowerMacQuadra700 = 116, /* Quadra 700 & Power PC Upgrade Card*/
+ gestaltPowerMacQuadra900 = 117, /* Quadra 900 & Power PC Upgrade Card */
+ gestaltPowerMacQuadra950 = 118, /* Quadra 950 & Power PC Upgrade Card */
+ gestaltPowerMacCentris610 = 119, /* Centris 610 & Power PC Upgrade Card */
+ gestaltPowerMacCentris650 = 120, /* Centris 650 & Power PC Upgrade Card */
+ gestaltPowerMacQuadra610 = 121, /* Quadra 610 & Power PC Upgrade Card */
+ gestaltPowerMacQuadra650 = 122, /* Quadra 650 & Power PC Upgrade Card */
+ gestaltPowerMacQuadra800 = 123, /* Quadra 800 & Power PC Upgrade Card */
+ gestaltPowerBookDuo2300 = 124,
+ gestaltPowerBook500PPCUpgrade = 126,
+ gestaltPowerBook5300 = 128,
+ gestaltPowerBook1400 = 310,
+ gestaltPowerBook3400 = 306,
+ gestaltPowerBook2400 = 307,
+ gestaltPowerBookG3Series = 312,
+ gestaltPowerBookG3 = 313,
+ gestaltPowerBookG3Series2 = 314,
+ gestaltPowerMacNewWorld = 406, /* All NewWorld architecture Macs (iMac, blue G3, etc.)*/
+ gestaltPowerMacG3 = 510,
+ gestaltPowerMac5500 = 512,
+ gestalt20thAnniversary = gestaltPowerMac5500,
+ gestaltPowerMac6500 = 513,
+ gestaltPowerMac4400_160 = 514, /* slower machine has different machine ID*/
+ gestaltPowerMac4400 = 515,
+ gestaltMacOSCompatibility = 1206 /* Mac OS Compatibility on Mac OS X (Classic)*/
+};
+
+
+enum {
+ gestaltQuadra605 = gestaltMacQuadra605,
+ gestaltQuadra610 = gestaltMacQuadra610,
+ gestaltQuadra630 = gestaltMacQuadra630,
+ gestaltQuadra650 = gestaltMacQuadra650,
+ gestaltQuadra660AV = gestaltMacQuadra660AV,
+ gestaltQuadra700 = gestaltMacQuadra700,
+ gestaltQuadra800 = gestaltMacQuadra800,
+ gestaltQuadra840AV = gestaltMacQuadra840AV,
+ gestaltQuadra900 = gestaltMacQuadra900,
+ gestaltQuadra950 = gestaltMacQuadra950
+};
+
+enum {
+ kMachineNameStrID = -16395
+};
+
+enum {
+ gestaltSMPMailerVersion = FOUR_CHAR_CODE('malr') /* OCE StandardMail*/
+};
+
+enum {
+ gestaltMediaBay = FOUR_CHAR_CODE('mbeh'), /* media bay driver type */
+ gestaltMBLegacy = 0, /* media bay support in PCCard 2.0 */
+ gestaltMBSingleBay = 1, /* single bay media bay driver */
+ gestaltMBMultipleBays = 2 /* multi-bay media bay driver */
+};
+
+enum {
+ gestaltMessageMgrVersion = FOUR_CHAR_CODE('mess') /* GX Printing Message Manager Gestalt Selector */
+};
+
+
+/* Menu Manager Gestalt (Mac OS 8.5 and later)*/
+enum {
+ gestaltMenuMgrAttr = FOUR_CHAR_CODE('menu'), /* If this Gestalt exists, the Mac OS 8.5 Menu Manager is installed */
+ gestaltMenuMgrPresent = (1L << 0), /* NOTE: this is a bit mask, whereas all other Gestalt constants of this nature */
+ /* are bit index values. 3.2 interfaces slipped out with this mistake unnoticed. */
+ /* Sincere apologies for any inconvenience.*/
+ gestaltMenuMgrPresentBit = 0, /* bit number */
+ gestaltMenuMgrAquaLayoutBit = 1, /* menus have the Aqua 1.0 layout*/
+ gestaltMenuMgrMultipleItemsWithCommandIDBit = 2, /* CountMenuItemsWithCommandID/GetIndMenuItemWithCommandID support multiple items with the same command ID*/
+ gestaltMenuMgrRetainsIconRefBit = 3, /* SetMenuItemIconHandle, when passed an IconRef, calls AcquireIconRef*/
+ gestaltMenuMgrSendsMenuBoundsToDefProcBit = 4, /* kMenuSizeMsg and kMenuPopUpMsg have menu bounding rect information*/
+ gestaltMenuMgrMoreThanFiveMenusDeepBit = 5, /* the Menu Manager supports hierarchical menus more than five deep*/
+ /* masks for the above bits*/
+ gestaltMenuMgrPresentMask = (1L << gestaltMenuMgrPresentBit),
+ gestaltMenuMgrAquaLayoutMask = (1L << gestaltMenuMgrAquaLayoutBit),
+ gestaltMenuMgrMultipleItemsWithCommandIDMask = (1L << gestaltMenuMgrMultipleItemsWithCommandIDBit),
+ gestaltMenuMgrRetainsIconRefMask = (1L << gestaltMenuMgrRetainsIconRefBit),
+ gestaltMenuMgrSendsMenuBoundsToDefProcMask = (1L << gestaltMenuMgrSendsMenuBoundsToDefProcBit),
+ gestaltMenuMgrMoreThanFiveMenusDeepMask = (1L << gestaltMenuMgrMoreThanFiveMenusDeepBit)
+};
+
+
+enum {
+ gestaltMultipleUsersState = FOUR_CHAR_CODE('mfdr') /* Gestalt selector returns MultiUserGestaltHandle (in Folders.h)*/
+};
+
+
+enum {
+ gestaltMachineIcon = FOUR_CHAR_CODE('micn') /* machine icon */
+};
+
+enum {
+ gestaltMiscAttr = FOUR_CHAR_CODE('misc'), /* miscellaneous attributes */
+ gestaltScrollingThrottle = 0, /* true if scrolling throttle on */
+ gestaltSquareMenuBar = 2 /* true if menu bar is square */
+};
+
+
+/*
+ The name gestaltMixedModeVersion for the 'mixd' selector is semantically incorrect.
+ The same selector has been renamed gestaltMixedModeAttr to properly reflect the
+ Inside Mac: PowerPC System Software documentation. The gestaltMixedModeVersion
+ symbol has been preserved only for backwards compatibility.
+
+ Developers are forewarned that gestaltMixedModeVersion has a limited lifespan and
+ will be removed in a future release of the Interfaces.
+
+ For the first version of Mixed Mode, both meanings of the 'mixd' selector are
+ functionally identical. They both return 0x00000001. In subsequent versions
+ of Mixed Mode, however, the 'mixd' selector will not respond with an increasing
+ version number, but rather, with 32 attribute bits with various meanings.
+*/
+enum {
+ gestaltMixedModeVersion = FOUR_CHAR_CODE('mixd') /* returns version of Mixed Mode */
+};
+
+enum {
+ gestaltMixedModeAttr = FOUR_CHAR_CODE('mixd'), /* returns Mixed Mode attributes */
+ gestaltMixedModePowerPC = 0, /* true if Mixed Mode supports PowerPC ABI calling conventions */
+ gestaltPowerPCAware = 0, /* old name for gestaltMixedModePowerPC */
+ gestaltMixedModeCFM68K = 1, /* true if Mixed Mode supports CFM-68K calling conventions */
+ gestaltMixedModeCFM68KHasTrap = 2, /* true if CFM-68K Mixed Mode implements _MixedModeDispatch (versions 1.0.1 and prior did not) */
+ gestaltMixedModeCFM68KHasState = 3 /* true if CFM-68K Mixed Mode exports Save/RestoreMixedModeState */
+};
+
+enum {
+ gestaltQuickTimeConferencing = FOUR_CHAR_CODE('mtlk') /* returns QuickTime Conferencing version */
+};
+
+enum {
+ gestaltMemoryMapAttr = FOUR_CHAR_CODE('mmap'), /* Memory map type */
+ gestaltMemoryMapSparse = 0 /* Sparse memory is on */
+};
+
+enum {
+ gestaltMMUType = FOUR_CHAR_CODE('mmu '), /* mmu type */
+ gestaltNoMMU = 0, /* no MMU */
+ gestaltAMU = 1, /* address management unit */
+ gestalt68851 = 2, /* 68851 PMMU */
+ gestalt68030MMU = 3, /* 68030 built-in MMU */
+ gestalt68040MMU = 4, /* 68040 built-in MMU */
+ gestaltEMMU1 = 5 /* Emulated MMU type 1 */
+};
+
+enum {
+ gestaltUserVisibleMachineName = FOUR_CHAR_CODE('mnam') /* Coerce response into a StringPtr to get a user visible machine name */
+};
+
+enum {
+ gestaltMPCallableAPIsAttr = FOUR_CHAR_CODE('mpsc'), /* Bitmap of toolbox/OS managers that can be called from MPLibrary MPTasks */
+ gestaltMPFileManager = 0, /* True if File Manager calls can be made from MPTasks */
+ gestaltMPDeviceManager = 1, /* True if synchronous Device Manager calls can be made from MPTasks */
+ gestaltMPTrapCalls = 2 /* True if most trap-based calls can be made from MPTasks */
+};
+
+enum {
+ gestaltStdNBPAttr = FOUR_CHAR_CODE('nlup'), /* standard nbp attributes */
+ gestaltStdNBPPresent = 0,
+ gestaltStdNBPSupportsAutoPosition = 1 /* StandardNBP takes (-1,-1) to mean alert position main screen */
+};
+
+enum {
+ gestaltNotificationMgrAttr = FOUR_CHAR_CODE('nmgr'), /* notification manager attributes */
+ gestaltNotificationPresent = 0 /* notification manager exists */
+};
+
+enum {
+ gestaltNameRegistryVersion = FOUR_CHAR_CODE('nreg') /* NameRegistryLib version number, for System 7.5.2+ usage */
+};
+
+enum {
+ gestaltNuBusSlotCount = FOUR_CHAR_CODE('nubs') /* count of logical NuBus slots present */
+};
+
+enum {
+ gestaltOCEToolboxVersion = FOUR_CHAR_CODE('ocet'), /* OCE Toolbox version */
+ gestaltOCETB = 0x0102, /* OCE Toolbox version 1.02 */
+ gestaltSFServer = 0x0100 /* S&F Server version 1.0 */
+};
+
+enum {
+ gestaltOCEToolboxAttr = FOUR_CHAR_CODE('oceu'), /* OCE Toolbox attributes */
+ gestaltOCETBPresent = 0x01, /* OCE toolbox is present, not running */
+ gestaltOCETBAvailable = 0x02, /* OCE toolbox is running and available */
+ gestaltOCESFServerAvailable = 0x04, /* S&F Server is running and available */
+ gestaltOCETBNativeGlueAvailable = 0x10 /* Native PowerPC Glue routines are availible */
+};
+
+enum {
+ gestaltOpenFirmwareInfo = FOUR_CHAR_CODE('opfw') /* Open Firmware info */
+};
+
+enum {
+ gestaltOSAttr = FOUR_CHAR_CODE('os '), /* o/s attributes */
+ gestaltSysZoneGrowable = 0, /* system heap is growable */
+ gestaltLaunchCanReturn = 1, /* can return from launch */
+ gestaltLaunchFullFileSpec = 2, /* can launch from full file spec */
+ gestaltLaunchControl = 3, /* launch control support available */
+ gestaltTempMemSupport = 4, /* temp memory support */
+ gestaltRealTempMemory = 5, /* temp memory handles are real */
+ gestaltTempMemTracked = 6, /* temporary memory handles are tracked */
+ gestaltIPCSupport = 7, /* IPC support is present */
+ gestaltSysDebuggerSupport = 8, /* system debugger support is present */
+ gestaltNativeProcessMgrBit = 19, /* the process manager itself is native */
+ gestaltAltivecRegistersSwappedCorrectlyBit = 20 /* Altivec registers are saved correctly on process switches */
+};
+
+enum {
+ gestaltOSTable = FOUR_CHAR_CODE('ostt') /* OS trap table base */
+};
+
+
+/*******************************************************************************
+* Gestalt Selectors for Open Transport Network Setup
+*
+* Note: possible values for the version "stage" byte are:
+* development = 0x20, alpha = 0x40, beta = 0x60, final & release = 0x80
+********************************************************************************/
+enum {
+ gestaltOpenTptNetworkSetup = FOUR_CHAR_CODE('otcf'),
+ gestaltOpenTptNetworkSetupLegacyImport = 0,
+ gestaltOpenTptNetworkSetupLegacyExport = 1,
+ gestaltOpenTptNetworkSetupSupportsMultihoming = 2
+};
+
+enum {
+ gestaltOpenTptNetworkSetupVersion = FOUR_CHAR_CODE('otcv')
+};
+
+/*******************************************************************************
+* Gestalt Selectors for Open Transport-based Remote Access/PPP
+*
+* Note: possible values for the version "stage" byte are:
+* development = 0x20, alpha = 0x40, beta = 0x60, final & release = 0x80
+********************************************************************************/
+enum {
+ gestaltOpenTptRemoteAccess = FOUR_CHAR_CODE('otra'),
+ gestaltOpenTptRemoteAccessPresent = 0,
+ gestaltOpenTptRemoteAccessLoaded = 1,
+ gestaltOpenTptRemoteAccessClientOnly = 2,
+ gestaltOpenTptRemoteAccessPServer = 3,
+ gestaltOpenTptRemoteAccessMPServer = 4,
+ gestaltOpenTptPPPPresent = 5,
+ gestaltOpenTptARAPPresent = 6
+};
+
+enum {
+ gestaltOpenTptRemoteAccessVersion = FOUR_CHAR_CODE('otrv')
+};
+
+
+/* ***** Open Transport Gestalt ******/
+
+
+enum {
+ gestaltOpenTptVersions = FOUR_CHAR_CODE('otvr') /* Defined by OT 1.1 and higher, response is NumVersion.*/
+};
+
+enum {
+ gestaltOpenTpt = FOUR_CHAR_CODE('otan'), /* Defined by all versions, response is defined below.*/
+ gestaltOpenTptPresentMask = 0x00000001,
+ gestaltOpenTptLoadedMask = 0x00000002,
+ gestaltOpenTptAppleTalkPresentMask = 0x00000004,
+ gestaltOpenTptAppleTalkLoadedMask = 0x00000008,
+ gestaltOpenTptTCPPresentMask = 0x00000010,
+ gestaltOpenTptTCPLoadedMask = 0x00000020,
+ gestaltOpenTptIPXSPXPresentMask = 0x00000040,
+ gestaltOpenTptIPXSPXLoadedMask = 0x00000080,
+ gestaltOpenTptPresentBit = 0,
+ gestaltOpenTptLoadedBit = 1,
+ gestaltOpenTptAppleTalkPresentBit = 2,
+ gestaltOpenTptAppleTalkLoadedBit = 3,
+ gestaltOpenTptTCPPresentBit = 4,
+ gestaltOpenTptTCPLoadedBit = 5,
+ gestaltOpenTptIPXSPXPresentBit = 6,
+ gestaltOpenTptIPXSPXLoadedBit = 7
+};
+
+
+enum {
+ gestaltPCCard = FOUR_CHAR_CODE('pccd'), /* PC Card attributes*/
+ gestaltCardServicesPresent = 0, /* PC Card 2.0 (68K) API is present*/
+ gestaltPCCardFamilyPresent = 1, /* PC Card 3.x (PowerPC) API is present*/
+ gestaltPCCardHasPowerControl = 2, /* PCCardSetPowerLevel is supported*/
+ gestaltPCCardSupportsCardBus = 3 /* CardBus is supported*/
+};
+
+enum {
+ gestaltProcClkSpeed = FOUR_CHAR_CODE('pclk') /* processor clock speed in hertz */
+};
+
+enum {
+ gestaltPCXAttr = FOUR_CHAR_CODE('pcxg'), /* PC Exchange attributes */
+ gestaltPCXHas8and16BitFAT = 0, /* PC Exchange supports both 8 and 16 bit FATs */
+ gestaltPCXHasProDOS = 1, /* PC Exchange supports ProDOS */
+ gestaltPCXNewUI = 2,
+ gestaltPCXUseICMapping = 3 /* PC Exchange uses InternetConfig for file mappings */
+};
+
+enum {
+ gestaltLogicalPageSize = FOUR_CHAR_CODE('pgsz') /* logical page size */
+};
+
+/* System 7.6 and later. If gestaltScreenCaptureMain is not implemented,
+ PictWhap proceeds with screen capture in the usual way.
+
+ The high word of gestaltScreenCaptureMain is reserved (use 0).
+
+ To disable screen capture to disk, put zero in the low word. To
+ specify a folder for captured pictures, put the vRefNum in the
+ low word of gestaltScreenCaptureMain, and put the directory ID in
+ gestaltScreenCaptureDir.
+*/
+enum {
+ gestaltScreenCaptureMain = FOUR_CHAR_CODE('pic1'), /* Zero, or vRefNum of disk to hold picture */
+ gestaltScreenCaptureDir = FOUR_CHAR_CODE('pic2') /* Directory ID of folder to hold picture */
+};
+
+enum {
+ gestaltGXPrintingMgrVersion = FOUR_CHAR_CODE('pmgr') /* QuickDraw GX Printing Manager Version*/
+};
+
+enum {
+ gestaltPopupAttr = FOUR_CHAR_CODE('pop!'), /* popup cdef attributes */
+ gestaltPopupPresent = 0
+};
+
+enum {
+ gestaltPowerMgrAttr = FOUR_CHAR_CODE('powr'), /* power manager attributes */
+ gestaltPMgrExists = 0,
+ gestaltPMgrCPUIdle = 1,
+ gestaltPMgrSCC = 2,
+ gestaltPMgrSound = 3,
+ gestaltPMgrDispatchExists = 4,
+ gestaltPMgrSupportsAVPowerStateAtSleepWake = 5
+};
+
+enum {
+ gestaltPowerMgrVers = FOUR_CHAR_CODE('pwrv') /* power manager version */
+};
+
+/*
+ * PPC will return the combination of following bit fields.
+ * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
+ * indicates PPC is cuurently is only supports real time delivery
+ * and both incoming and outgoing network sessions are allowed.
+ * By default local real time delivery is supported as long as PPCInit has been called.*/
+enum {
+ gestaltPPCToolboxAttr = FOUR_CHAR_CODE('ppc '), /* PPC toolbox attributes */
+ gestaltPPCToolboxPresent = 0x0000, /* PPC Toolbox is present Requires PPCInit to be called */
+ gestaltPPCSupportsRealTime = 0x1000, /* PPC Supports real-time delivery */
+ gestaltPPCSupportsIncoming = 0x0001, /* PPC will allow incoming network requests */
+ gestaltPPCSupportsOutGoing = 0x0002, /* PPC will allow outgoing network requests */
+ gestaltPPCSupportsTCP_IP = 0x0004, /* PPC supports TCP/IP transport */
+ gestaltPPCSupportsIncomingAppleTalk = 0x0010,
+ gestaltPPCSupportsIncomingTCP_IP = 0x0020,
+ gestaltPPCSupportsOutgoingAppleTalk = 0x0100,
+ gestaltPPCSupportsOutgoingTCP_IP = 0x0200
+};
+
+enum {
+ gestaltPowerPCProcessorFeatures = FOUR_CHAR_CODE('ppcf'), /* Optional PowerPC processor features */
+ gestaltPowerPCHasGraphicsInstructions = 0, /* has fres, frsqrte, and fsel instructions */
+ gestaltPowerPCHasSTFIWXInstruction = 1, /* has stfiwx instruction */
+ gestaltPowerPCHasSquareRootInstructions = 2, /* has fsqrt and fsqrts instructions */
+ gestaltPowerPCHasDCBAInstruction = 3, /* has dcba instruction */
+ gestaltPowerPCHasVectorInstructions = 4, /* has vector instructions */
+ gestaltPowerPCHasDataStreams = 5 /* has dst, dstt, dstst, dss, and dssall instructions */
+};
+
+enum {
+ gestaltProcessorType = FOUR_CHAR_CODE('proc'), /* processor type */
+ gestalt68000 = 1,
+ gestalt68010 = 2,
+ gestalt68020 = 3,
+ gestalt68030 = 4,
+ gestalt68040 = 5
+};
+
+enum {
+ gestaltSDPPromptVersion = FOUR_CHAR_CODE('prpv') /* OCE Standard Directory Panel*/
+};
+
+enum {
+ gestaltParityAttr = FOUR_CHAR_CODE('prty'), /* parity attributes */
+ gestaltHasParityCapability = 0, /* has ability to check parity */
+ gestaltParityEnabled = 1 /* parity checking enabled */
+};
+
+enum {
+ gestaltQD3DVersion = FOUR_CHAR_CODE('q3v ') /* Quickdraw 3D version in pack BCD*/
+};
+
+enum {
+ gestaltQD3DViewer = FOUR_CHAR_CODE('q3vc'), /* Quickdraw 3D viewer attributes*/
+ gestaltQD3DViewerPresent = 0 /* bit 0 set if QD3D Viewer is available*/
+};
+
+#if OLDROUTINENAMES
+enum {
+ gestaltQD3DViewerNotPresent = (0 << gestaltQD3DViewerPresent),
+ gestaltQD3DViewerAvailable = (1 << gestaltQD3DViewerPresent)
+};
+
+#endif /* OLDROUTINENAMES */
+
+enum {
+ gestaltQuickdrawVersion = FOUR_CHAR_CODE('qd '), /* quickdraw version */
+ gestaltOriginalQD = 0x0000, /* original 1-bit QD */
+ gestalt8BitQD = 0x0100, /* 8-bit color QD */
+ gestalt32BitQD = 0x0200, /* 32-bit color QD */
+ gestalt32BitQD11 = 0x0201, /* 32-bit color QDv1.1 */
+ gestalt32BitQD12 = 0x0220, /* 32-bit color QDv1.2 */
+ gestalt32BitQD13 = 0x0230, /* 32-bit color QDv1.3 */
+ gestaltAllegroQD = 0x0250, /* Allegro QD OS 8.5 */
+ gestaltMacOSXQD = 0x0300 /* 0x310, 0x320 etc. for 10.x.y */
+};
+
+enum {
+ gestaltQD3D = FOUR_CHAR_CODE('qd3d'), /* Quickdraw 3D attributes*/
+ gestaltQD3DPresent = 0 /* bit 0 set if QD3D available*/
+};
+
+#if OLDROUTINENAMES
+enum {
+ gestaltQD3DNotPresent = (0 << gestaltQD3DPresent),
+ gestaltQD3DAvailable = (1 << gestaltQD3DPresent)
+};
+
+#endif /* OLDROUTINENAMES */
+
+enum {
+ gestaltGXVersion = FOUR_CHAR_CODE('qdgx') /* Overall QuickDraw GX Version*/
+};
+
+enum {
+ gestaltQuickdrawFeatures = FOUR_CHAR_CODE('qdrw'), /* quickdraw features */
+ gestaltHasColor = 0, /* color quickdraw present */
+ gestaltHasDeepGWorlds = 1, /* GWorlds can be deeper than 1-bit */
+ gestaltHasDirectPixMaps = 2, /* PixMaps can be direct (16 or 32 bit) */
+ gestaltHasGrayishTextOr = 3, /* supports text mode grayishTextOr */
+ gestaltSupportsMirroring = 4, /* Supports video mirroring via the Display Manager. */
+ gestaltQDHasLongRowBytes = 5 /* Long rowBytes supported in GWorlds */
+};
+
+enum {
+ gestaltQDTextVersion = FOUR_CHAR_CODE('qdtx'), /* QuickdrawText version */
+ gestaltOriginalQDText = 0x0000, /* up to and including 8.1 */
+ gestaltAllegroQDText = 0x0100, /* starting with 8.5 */
+ gestaltMacOSXQDText = 0x0200 /* we are in Mac OS X */
+};
+
+enum {
+ gestaltQDTextFeatures = FOUR_CHAR_CODE('qdtf'), /* QuickdrawText features */
+ gestaltWSIISupport = 0, /* bit 0: WSII support included */
+ gestaltSbitFontSupport = 1, /* sbit-only fonts supported */
+ gestaltAntiAliasedTextAvailable = 2, /* capable of antialiased text */
+ gestaltOFA2available = 3, /* OFA2 available */
+ gestaltCreatesAliasFontRsrc = 4, /* "real" datafork font support */
+ gestaltNativeType1FontSupport = 5, /* we have scaler for Type1 fonts */
+ gestaltCanUseCGTextRendering = 6
+};
+
+
+enum {
+ gestaltQuickTimeConferencingInfo = FOUR_CHAR_CODE('qtci') /* returns pointer to QuickTime Conferencing information */
+};
+
+enum {
+ gestaltQuickTimeVersion = FOUR_CHAR_CODE('qtim'), /* returns version of QuickTime */
+ gestaltQuickTime = FOUR_CHAR_CODE('qtim') /* gestaltQuickTime is old name for gestaltQuickTimeVersion */
+};
+
+enum {
+ gestaltQuickTimeFeatures = FOUR_CHAR_CODE('qtrs'),
+ gestaltPPCQuickTimeLibPresent = 0 /* PowerPC QuickTime glue library is present */
+};
+
+enum {
+ gestaltQuickTimeStreamingFeatures = FOUR_CHAR_CODE('qtsf')
+};
+
+enum {
+ gestaltQuickTimeStreamingVersion = FOUR_CHAR_CODE('qtst')
+};
+
+enum {
+ gestaltQTVRMgrAttr = FOUR_CHAR_CODE('qtvr'), /* QuickTime VR attributes */
+ gestaltQTVRMgrPresent = 0, /* QTVR API is present */
+ gestaltQTVRObjMoviesPresent = 1, /* QTVR runtime knows about object movies */
+ gestaltQTVRCylinderPanosPresent = 2, /* QTVR runtime knows about cylindrical panoramic movies */
+ gestaltQTVRCubicPanosPresent = 3 /* QTVR runtime knows about cubic panoramic movies */
+};
+
+enum {
+ gestaltQTVRMgrVers = FOUR_CHAR_CODE('qtvv') /* QuickTime VR version */
+};
+
+enum {
+ gestaltPhysicalRAMSize = FOUR_CHAR_CODE('ram ') /* physical RAM size */
+};
+
+enum {
+ gestaltRBVAddr = FOUR_CHAR_CODE('rbv ') /* RBV base address */
+};
+
+enum {
+ gestaltROMSize = FOUR_CHAR_CODE('rom ') /* rom size */
+};
+
+enum {
+ gestaltROMVersion = FOUR_CHAR_CODE('romv') /* rom version */
+};
+
+enum {
+ gestaltResourceMgrAttr = FOUR_CHAR_CODE('rsrc'), /* Resource Mgr attributes */
+ gestaltPartialRsrcs = 0, /* True if partial resources exist */
+ gestaltHasResourceOverrides = 1 /* Appears in the ROM; so put it here. */
+};
+
+enum {
+ gestaltResourceMgrBugFixesAttrs = FOUR_CHAR_CODE('rmbg'), /* Resource Mgr bug fixes */
+ gestaltRMForceSysHeapRolledIn = 0,
+ gestaltRMFakeAppleMenuItemsRolledIn = 1,
+ gestaltSanityCheckResourceFiles = 2, /* Resource manager does sanity checking on resource files before opening them */
+ gestaltSupportsFSpResourceFileAlreadyOpenBit = 3, /* The resource manager supports GetResFileRefNum and FSpGetResFileRefNum and FSpResourceFileAlreadyOpen */
+ gestaltRMSupportsFSCalls = 4, /* The resource manager supports OpenResFileFSRef, CreateResFileFSRef and ResourceFileAlreadyOpenFSRef */
+ gestaltRMTypeIndexOrderingReverse = 8 /* GetIndType() calls return resource types in opposite order to original 68k resource manager */
+};
+
+
+enum {
+ gestaltRealtimeMgrAttr = FOUR_CHAR_CODE('rtmr'), /* Realtime manager attributes */
+ gestaltRealtimeMgrPresent = 0 /* true if the Realtime manager is present */
+};
+
+
+enum {
+ gestaltSafeOFAttr = FOUR_CHAR_CODE('safe'),
+ gestaltVMZerosPagesBit = 0,
+ gestaltInitHeapZerosOutHeapsBit = 1,
+ gestaltNewHandleReturnsZeroedMemoryBit = 2,
+ gestaltNewPtrReturnsZeroedMemoryBit = 3,
+ gestaltFileAllocationZeroedBlocksBit = 4
+};
+
+
+enum {
+ gestaltSCCReadAddr = FOUR_CHAR_CODE('sccr') /* scc read base address */
+};
+
+enum {
+ gestaltSCCWriteAddr = FOUR_CHAR_CODE('sccw') /* scc read base address */
+};
+
+enum {
+ gestaltScrapMgrAttr = FOUR_CHAR_CODE('scra'), /* Scrap Manager attributes */
+ gestaltScrapMgrTranslationAware = 0 /* True if scrap manager is translation aware */
+};
+
+enum {
+ gestaltScriptMgrVersion = FOUR_CHAR_CODE('scri') /* Script Manager version number */
+};
+
+enum {
+ gestaltScriptCount = FOUR_CHAR_CODE('scr#') /* number of active script systems */
+};
+
+enum {
+ gestaltSCSI = FOUR_CHAR_CODE('scsi'), /* SCSI Manager attributes */
+ gestaltAsyncSCSI = 0, /* Supports Asynchronous SCSI */
+ gestaltAsyncSCSIINROM = 1, /* Async scsi is in ROM (available for booting) */
+ gestaltSCSISlotBoot = 2, /* ROM supports Slot-style PRAM for SCSI boots (PDM and later) */
+ gestaltSCSIPollSIH = 3 /* SCSI Manager will poll for interrupts if Secondary Interrupts are busy. */
+};
+
+enum {
+ gestaltControlStripAttr = FOUR_CHAR_CODE('sdev'), /* Control Strip attributes */
+ gestaltControlStripExists = 0, /* Control Strip is installed */
+ gestaltControlStripVersionFixed = 1, /* Control Strip version Gestalt selector was fixed */
+ gestaltControlStripUserFont = 2, /* supports user-selectable font/size */
+ gestaltControlStripUserHotKey = 3 /* support user-selectable hot key to show/hide the window */
+};
+
+enum {
+ gestaltSDPStandardDirectoryVersion = FOUR_CHAR_CODE('sdvr') /* OCE Standard Directory Panel*/
+};
+
+enum {
+ gestaltSerialAttr = FOUR_CHAR_CODE('ser '), /* Serial attributes */
+ gestaltHasGPIaToDCDa = 0, /* GPIa connected to DCDa*/
+ gestaltHasGPIaToRTxCa = 1, /* GPIa connected to RTxCa clock input*/
+ gestaltHasGPIbToDCDb = 2, /* GPIb connected to DCDb */
+ gestaltHidePortA = 3, /* Modem port (A) should be hidden from users */
+ gestaltHidePortB = 4, /* Printer port (B) should be hidden from users */
+ gestaltPortADisabled = 5, /* Modem port (A) disabled and should not be used by SW */
+ gestaltPortBDisabled = 6 /* Printer port (B) disabled and should not be used by SW */
+};
+
+enum {
+ gestaltShutdownAttributes = FOUR_CHAR_CODE('shut'), /* ShutDown Manager Attributes */
+ gestaltShutdownHassdOnBootVolUnmount = 0 /* True if ShutDown Manager unmounts boot & VM volume at shutdown time. */
+};
+
+enum {
+ gestaltNuBusConnectors = FOUR_CHAR_CODE('sltc') /* bitmap of NuBus connectors*/
+};
+
+enum {
+ gestaltSlotAttr = FOUR_CHAR_CODE('slot'), /* slot attributes */
+ gestaltSlotMgrExists = 0, /* true is slot mgr exists */
+ gestaltNuBusPresent = 1, /* NuBus slots are present */
+ gestaltSESlotPresent = 2, /* SE PDS slot present */
+ gestaltSE30SlotPresent = 3, /* SE/30 slot present */
+ gestaltPortableSlotPresent = 4 /* Portable's slot present */
+};
+
+enum {
+ gestaltFirstSlotNumber = FOUR_CHAR_CODE('slt1') /* returns first physical slot */
+};
+
+enum {
+ gestaltSoundAttr = FOUR_CHAR_CODE('snd '), /* sound attributes */
+ gestaltStereoCapability = 0, /* sound hardware has stereo capability */
+ gestaltStereoMixing = 1, /* stereo mixing on external speaker */
+ gestaltSoundIOMgrPresent = 3, /* The Sound I/O Manager is present */
+ gestaltBuiltInSoundInput = 4, /* built-in Sound Input hardware is present */
+ gestaltHasSoundInputDevice = 5, /* Sound Input device available */
+ gestaltPlayAndRecord = 6, /* built-in hardware can play and record simultaneously */
+ gestalt16BitSoundIO = 7, /* sound hardware can play and record 16-bit samples */
+ gestaltStereoInput = 8, /* sound hardware can record stereo */
+ gestaltLineLevelInput = 9, /* sound input port requires line level */
+ /* the following bits are not defined prior to Sound Mgr 3.0 */
+ gestaltSndPlayDoubleBuffer = 10, /* SndPlayDoubleBuffer available, set by Sound Mgr 3.0 and later */
+ gestaltMultiChannels = 11, /* multiple channel support, set by Sound Mgr 3.0 and later */
+ gestalt16BitAudioSupport = 12 /* 16 bit audio data supported, set by Sound Mgr 3.0 and later */
+};
+
+enum {
+ gestaltSplitOSAttr = FOUR_CHAR_CODE('spos'),
+ gestaltSplitOSBootDriveIsNetworkVolume = 0, /* the boot disk is a network 'disk', from the .LANDisk drive. */
+ gestaltSplitOSAware = 1, /* the system includes the code to deal with a split os situation. */
+ gestaltSplitOSEnablerVolumeIsDifferentFromBootVolume = 2, /* the active enabler is on a different volume than the system file. */
+ gestaltSplitOSMachineNameSetToNetworkNameTemp = 3, /* The machine name was set to the value given us from the BootP server */
+ gestaltSplitOSMachineNameStartupDiskIsNonPersistent = 5 /* The startup disk ( vRefNum == -1 ) is non-persistent, meaning changes won't persist across a restart. */
+};
+
+enum {
+ gestaltSMPSPSendLetterVersion = FOUR_CHAR_CODE('spsl') /* OCE StandardMail*/
+};
+
+enum {
+ gestaltSpeechRecognitionAttr = FOUR_CHAR_CODE('srta'), /* speech recognition attributes */
+ gestaltDesktopSpeechRecognition = 1, /* recognition thru the desktop microphone is available */
+ gestaltTelephoneSpeechRecognition = 2 /* recognition thru the telephone is available */
+};
+
+enum {
+ gestaltSpeechRecognitionVersion = FOUR_CHAR_CODE('srtb') /* speech recognition version (0x0150 is the first version that fully supports the API) */
+};
+
+enum {
+ gestaltSoftwareVendorCode = FOUR_CHAR_CODE('srad'), /* Returns system software vendor information */
+ gestaltSoftwareVendorApple = FOUR_CHAR_CODE('Appl'), /* System software sold by Apple */
+ gestaltSoftwareVendorLicensee = FOUR_CHAR_CODE('Lcns') /* System software sold by licensee */
+};
+
+enum {
+ gestaltStandardFileAttr = FOUR_CHAR_CODE('stdf'), /* Standard File attributes */
+ gestaltStandardFile58 = 0, /* True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported */
+ gestaltStandardFileTranslationAware = 1, /* True if standard file is translation manager aware */
+ gestaltStandardFileHasColorIcons = 2, /* True if standard file has 16x16 color icons */
+ gestaltStandardFileUseGenericIcons = 3, /* Standard file LDEF to use only the system generic icons if true */
+ gestaltStandardFileHasDynamicVolumeAllocation = 4 /* True if standard file supports more than 20 volumes */
+};
+
+enum {
+ gestaltSysArchitecture = FOUR_CHAR_CODE('sysa'), /* Native System Architecture */
+ gestalt68k = 1, /* Motorola MC68k architecture */
+ gestaltPowerPC = 2 /* IBM PowerPC architecture */
+};
+
+enum {
+ gestaltSystemVersion = FOUR_CHAR_CODE('sysv') /* system version*/
+};
+
+#if TARGET_OS_WIN32
+enum {
+ gestaltWinOSVersion = FOUR_CHAR_CODE('winv') /* Windows system version*/
+};
+
+#endif /* TARGET_OS_WIN32 */
+
+enum {
+ gestaltToolboxTable = FOUR_CHAR_CODE('tbtt') /* OS trap table base */
+};
+
+enum {
+ gestaltTextEditVersion = FOUR_CHAR_CODE('te '), /* TextEdit version number */
+ gestaltTE1 = 1, /* TextEdit in MacIIci ROM */
+ gestaltTE2 = 2, /* TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci) */
+ gestaltTE3 = 3, /* TextEdit with 6.0.4 Script Systems all but MacIIci */
+ gestaltTE4 = 4, /* TextEdit in System 7.0 */
+ gestaltTE5 = 5 /* TextWidthHook available in TextEdit */
+};
+
+enum {
+ gestaltTEAttr = FOUR_CHAR_CODE('teat'), /* TextEdit attributes */
+ gestaltTEHasGetHiliteRgn = 0, /* TextEdit has TEGetHiliteRgn */
+ gestaltTESupportsInlineInput = 1, /* TextEdit does Inline Input */
+ gestaltTESupportsTextObjects = 2, /* TextEdit does Text Objects */
+ gestaltTEHasWhiteBackground = 3 /* TextEdit supports overriding the TERec's background to white */
+};
+
+enum {
+ gestaltTeleMgrAttr = FOUR_CHAR_CODE('tele'), /* Telephone manager attributes */
+ gestaltTeleMgrPresent = 0,
+ gestaltTeleMgrPowerPCSupport = 1,
+ gestaltTeleMgrSoundStreams = 2,
+ gestaltTeleMgrAutoAnswer = 3,
+ gestaltTeleMgrIndHandset = 4,
+ gestaltTeleMgrSilenceDetect = 5,
+ gestaltTeleMgrNewTELNewSupport = 6
+};
+
+enum {
+ gestaltTermMgrAttr = FOUR_CHAR_CODE('term'), /* terminal mgr attributes */
+ gestaltTermMgrPresent = 0,
+ gestaltTermMgrErrorString = 2
+};
+
+enum {
+ gestaltThreadMgrAttr = FOUR_CHAR_CODE('thds'), /* Thread Manager attributes */
+ gestaltThreadMgrPresent = 0, /* bit true if Thread Mgr is present */
+ gestaltSpecificMatchSupport = 1, /* bit true if Thread Mgr supports exact match creation option */
+ gestaltThreadsLibraryPresent = 2 /* bit true if Thread Mgr shared library is present */
+};
+
+enum {
+ gestaltTimeMgrVersion = FOUR_CHAR_CODE('tmgr'), /* time mgr version */
+ gestaltStandardTimeMgr = 1, /* standard time mgr is present */
+ gestaltRevisedTimeMgr = 2, /* revised time mgr is present */
+ gestaltExtendedTimeMgr = 3, /* extended time mgr is present */
+ gestaltNativeTimeMgr = 4 /* PowerPC native TimeMgr is present */
+};
+
+enum {
+ gestaltTSMTEVersion = FOUR_CHAR_CODE('tmTV'),
+ gestaltTSMTE1 = 0x0100, /* Original version of TSMTE */
+ gestaltTSMTE15 = 0x0150, /* System 8.0 */
+ gestaltTSMTE152 = 0x0152 /* System 8.2 */
+};
+
+enum {
+ gestaltTSMTEAttr = FOUR_CHAR_CODE('tmTE'),
+ gestaltTSMTEPresent = 0,
+ gestaltTSMTE = 0 /* gestaltTSMTE is old name for gestaltTSMTEPresent */
+};
+
+enum {
+ gestaltAVLTreeAttr = FOUR_CHAR_CODE('tree'), /* AVLTree utility routines attributes. */
+ gestaltAVLTreePresentBit = 0, /* if set, then the AVL Tree routines are available. */
+ gestaltAVLTreeSupportsHandleBasedTreeBit = 1, /* if set, then the AVL Tree routines can store tree data in a single handle */
+ gestaltAVLTreeSupportsTreeLockingBit = 2 /* if set, the AVLLockTree() and AVLUnlockTree() routines are available. */
+};
+
+enum {
+ gestaltALMAttr = FOUR_CHAR_CODE('trip'), /* Settings Manager attributes (see also gestaltALMVers) */
+ gestaltALMPresent = 0, /* bit true if ALM is available */
+ gestaltALMHasSFGroup = 1, /* bit true if Put/Get/Merge Group calls are implmented */
+ gestaltALMHasCFMSupport = 2, /* bit true if CFM-based modules are supported */
+ gestaltALMHasRescanNotifiers = 3 /* bit true if Rescan notifications/events will be sent to clients */
+};
+
+enum {
+ gestaltALMHasSFLocation = gestaltALMHasSFGroup
+};
+
+enum {
+ gestaltTSMgrVersion = FOUR_CHAR_CODE('tsmv'), /* Text Services Mgr version, if present */
+ gestaltTSMgr15 = 0x0150,
+ gestaltTSMgr20 = 0x0200
+};
+
+enum {
+ gestaltTSMgrAttr = FOUR_CHAR_CODE('tsma'), /* Text Services Mgr attributes, if present */
+ gestaltTSMDisplayMgrAwareBit = 0, /* TSM knows about display manager */
+ gestaltTSMdoesTSMTEBit = 1 /* TSM has integrated TSMTE */
+};
+
+enum {
+ gestaltSpeechAttr = FOUR_CHAR_CODE('ttsc'), /* Speech Manager attributes */
+ gestaltSpeechMgrPresent = 0, /* bit set indicates that Speech Manager exists */
+ gestaltSpeechHasPPCGlue = 1 /* bit set indicates that native PPC glue for Speech Manager API exists */
+};
+
+enum {
+ gestaltTVAttr = FOUR_CHAR_CODE('tv '), /* TV version */
+ gestaltHasTVTuner = 0, /* supports Philips FL1236F video tuner */
+ gestaltHasSoundFader = 1, /* supports Philips TEA6330 Sound Fader chip */
+ gestaltHasHWClosedCaptioning = 2, /* supports Philips SAA5252 Closed Captioning */
+ gestaltHasIRRemote = 3, /* supports CyclopsII Infra Red Remote control */
+ gestaltHasVidDecoderScaler = 4, /* supports Philips SAA7194 Video Decoder/Scaler */
+ gestaltHasStereoDecoder = 5, /* supports Sony SBX1637A-01 stereo decoder */
+ gestaltHasSerialFader = 6, /* has fader audio in serial with system audio */
+ gestaltHasFMTuner = 7, /* has FM Tuner from donnybrook card */
+ gestaltHasSystemIRFunction = 8, /* Infra Red button function is set up by system and not by Video Startup */
+ gestaltIRDisabled = 9, /* Infra Red remote is not disabled. */
+ gestaltINeedIRPowerOffConfirm = 10, /* Need IR power off confirm dialog. */
+ gestaltHasZoomedVideo = 11 /* Has Zoomed Video PC Card video input. */
+};
+
+
+enum {
+ gestaltATSUVersion = FOUR_CHAR_CODE('uisv'),
+ gestaltOriginalATSUVersion = (1 << 16), /* ATSUI version 1.0 */
+ gestaltATSUUpdate1 = (2 << 16), /* ATSUI version 1.1 */
+ gestaltATSUUpdate2 = (3 << 16), /* ATSUI version 1.2 */
+ gestaltATSUUpdate3 = (4 << 16), /* ATSUI version 2.0 */
+ gestaltATSUUpdate4 = (5 << 16), /* ATSUI version in Mac OS X - SoftwareUpdate 1-4 for Mac OS 10.0.1 - 10.0.4 */
+ gestaltATSUUpdate5 = (6 << 16), /* ATSUI version 2.3 in MacOS 10.1 */
+ gestaltATSUUpdate6 = (7 << 16) /* ATSUI version 2.4 in MacOS 10.2 */
+};
+
+enum {
+ gestaltATSUFeatures = FOUR_CHAR_CODE('uisf'),
+ gestaltATSUTrackingFeature = 0x00000001, /* feature introduced in ATSUI version 1.1 */
+ gestaltATSUMemoryFeature = 0x00000001, /* feature introduced in ATSUI version 1.1 */
+ gestaltATSUFallbacksFeature = 0x00000001, /* feature introduced in ATSUI version 1.1 */
+ gestaltATSUGlyphBoundsFeature = 0x00000001, /* feature introduced in ATSUI version 1.1 */
+ gestaltATSULineControlFeature = 0x00000001, /* feature introduced in ATSUI version 1.1 */
+ gestaltATSULayoutCreateAndCopyFeature = 0x00000001, /* feature introduced in ATSUI version 1.1 */
+ gestaltATSULayoutCacheClearFeature = 0x00000001, /* feature introduced in ATSUI version 1.1 */
+ gestaltATSUTextLocatorUsageFeature = 0x00000002, /* feature introduced in ATSUI version 1.2 */
+ gestaltATSULowLevelOrigFeatures = 0x00000004, /* first low-level features introduced in ATSUI version 2.0 */
+ gestaltATSUFallbacksObjFeatures = 0x00000008, /* feature introduced - ATSUFontFallbacks objects introduced in ATSUI version 2.3 */
+ gestaltATSUIgnoreLeadingFeature = 0x00000008, /* feature introduced - kATSLineIgnoreFontLeading LineLayoutOption introduced in ATSUI version 2.3 */
+ gestaltATSUByCharacterClusterFeature = 0x00000010, /* ATSUCursorMovementTypes introduced in ATSUI version 2.4 */
+ gestaltATSUAscentDescentControlsFeature = 0x00000010, /* attributes introduced in ATSUI version 2.4 */
+ gestaltATSUHighlightInactiveTextFeature = 0x00000010, /* feature introduced in ATSUI version 2.4 */
+ gestaltATSUPositionToCursorFeature = 0x00000010, /* features introduced in ATSUI version 2.4 */
+ gestaltATSUBatchBreakLinesFeature = 0x00000010, /* feature introduced in ATSUI version 2.4 */
+ gestaltATSUTabSupportFeature = 0x00000010, /* features introduced in ATSUI version 2.4 */
+ gestaltATSUDirectAccess = 0x00000010 /* features introduced in ATSUI version 2.4 */
+};
+
+enum {
+ gestaltUSBAttr = FOUR_CHAR_CODE('usb '), /* USB Attributes */
+ gestaltUSBPresent = 0, /* USB Support available */
+ gestaltUSBHasIsoch = 1 /* USB Isochronous features available */
+};
+
+enum {
+ gestaltUSBVersion = FOUR_CHAR_CODE('usbv') /* USB version */
+};
+
+enum {
+ gestaltVersion = FOUR_CHAR_CODE('vers'), /* gestalt version */
+ gestaltValueImplementedVers = 5 /* version of gestalt where gestaltValue is implemented. */
+};
+
+enum {
+ gestaltVIA1Addr = FOUR_CHAR_CODE('via1') /* via 1 base address */
+};
+
+enum {
+ gestaltVIA2Addr = FOUR_CHAR_CODE('via2') /* via 2 base address */
+};
+
+enum {
+ gestaltVMAttr = FOUR_CHAR_CODE('vm '), /* virtual memory attributes */
+ gestaltVMPresent = 0, /* true if virtual memory is present */
+ gestaltVMHasLockMemoryForOutput = 1, /* true if LockMemoryForOutput is available */
+ gestaltVMFilemappingOn = 3, /* true if filemapping is available */
+ gestaltVMHasPagingControl = 4 /* true if MakeMemoryResident, MakeMemoryNonResident, FlushMemory, and ReleaseMemoryData are available */
+};
+
+enum {
+ gestaltVMInfoType = FOUR_CHAR_CODE('vmin'), /* Indicates how the Finder should display information about VM in */
+ /* the Finder about box. */
+ gestaltVMInfoSizeStorageType = 0, /* Display VM on/off, backing store size and name */
+ gestaltVMInfoSizeType = 1, /* Display whether VM is on or off and the size of the backing store */
+ gestaltVMInfoSimpleType = 2, /* Display whether VM is on or off */
+ gestaltVMInfoNoneType = 3 /* Display no VM information */
+};
+
+enum {
+ gestaltVMBackingStoreFileRefNum = FOUR_CHAR_CODE('vmbs') /* file refNum of virtual memory's main backing store file (returned in low word of result) */
+};
+
+
+
+enum {
+ gestaltALMVers = FOUR_CHAR_CODE('walk') /* Settings Manager version (see also gestaltALMAttr) */
+};
+
+enum {
+ gestaltWindowMgrAttr = FOUR_CHAR_CODE('wind'), /* If this Gestalt exists, the Mac OS 8.5 Window Manager is installed*/
+ gestaltWindowMgrPresent = (1L << 0), /* NOTE: this is a bit mask, whereas all other Gestalt constants of*/
+ /* this type are bit index values. Universal Interfaces 3.2 slipped*/
+ /* out the door with this mistake.*/
+ gestaltWindowMgrPresentBit = 0, /* bit number*/
+ gestaltExtendedWindowAttributes = 1, /* Has ChangeWindowAttributes; GetWindowAttributes works for all windows*/
+ gestaltExtendedWindowAttributesBit = 1, /* Has ChangeWindowAttributes; GetWindowAttributes works for all windows*/
+ gestaltHasFloatingWindows = 2, /* Floating window APIs work*/
+ gestaltHasFloatingWindowsBit = 2, /* Floating window APIs work*/
+ gestaltHasWindowBuffering = 3, /* This system has buffering available*/
+ gestaltHasWindowBufferingBit = 3, /* This system has buffering available*/
+ gestaltWindowLiveResizeBit = 4, /* live resizing of windows is available*/
+ gestaltWindowMinimizeToDockBit = 5, /* windows minimize to the dock and do not windowshade (Mac OS X)*/
+ gestaltHasWindowShadowsBit = 6, /* windows have shadows*/
+ gestaltSheetsAreWindowModalBit = 7, /* sheet windows are modal only to their parent window*/
+ gestaltFrontWindowMayBeHiddenBit = 8, /* FrontWindow and related APIs will return the front window even when the app is hidden*/
+ /* masks for the above bits*/
+ gestaltWindowMgrPresentMask = (1L << gestaltWindowMgrPresentBit),
+ gestaltExtendedWindowAttributesMask = (1L << gestaltExtendedWindowAttributesBit),
+ gestaltHasFloatingWindowsMask = (1L << gestaltHasFloatingWindowsBit),
+ gestaltHasWindowBufferingMask = (1L << gestaltHasWindowBufferingBit),
+ gestaltWindowLiveResizeMask = (1L << gestaltWindowLiveResizeBit),
+ gestaltWindowMinimizeToDockMask = (1L << gestaltWindowMinimizeToDockBit),
+ gestaltHasWindowShadowsMask = (1L << gestaltHasWindowShadowsBit),
+ gestaltSheetsAreWindowModalMask = (1L << gestaltSheetsAreWindowModalBit),
+ gestaltFrontWindowMayBeHiddenMask = (1L << gestaltFrontWindowMayBeHiddenBit)
+};
+
+/*#if TARGET_OS_WIN32 - These are needed by the i386 compiler for X*/
+#if TARGET_CPU_X86
+enum {
+ gestaltX86Features = FOUR_CHAR_CODE('x86f'),
+ gestaltX86HasFPU = 0, /* has an FPU that supports the 387 instructions*/
+ gestaltX86HasVME = 1, /* supports Virtual-8086 Mode Extensions*/
+ gestaltX86HasDE = 2, /* supports I/O breakpoints (Debug Extensions)*/
+ gestaltX86HasPSE = 3, /* supports 4-Mbyte pages (Page Size Extension)*/
+ gestaltX86HasTSC = 4, /* supports RTDSC instruction (Time Stamp Counter)*/
+ gestaltX86HasMSR = 5, /* supports Model Specific Registers*/
+ gestaltX86HasPAE = 6, /* supports physical addresses > 32 bits (Physical Address Extension)*/
+ gestaltX86HasMCE = 7, /* supports Machine Check Exception*/
+ gestaltX86HasCX8 = 8, /* supports CMPXCHG8 instructions (Compare Exchange 8 bytes)*/
+ gestaltX86HasAPIC = 9, /* contains local APIC*/
+ gestaltX86Reserved10 = 10, /* do not count on this bit value*/
+ gestaltX86HasSEP = 11, /* supports fast system call (SysEnter Present)*/
+ gestaltX86HasMTRR = 12, /* supports Memory Type Range Registers*/
+ gestaltX86HasPGE = 13, /* supports Page Global Enable*/
+ gestaltX86HasMCA = 14, /* supports Machine Check Architecture*/
+ gestaltX86HasCMOV = 15, /* supports CMOVcc instruction (Conditional Move).*/
+ /* If FPU bit is also set, supports FCMOVcc and FCOMI, too*/
+ gestaltX86HasPAT = 16, /* supports Page Attribute Table*/
+ gestaltX86HasPSE36 = 17, /* supports 36-bit Page Size Extension*/
+ gestaltX86HasMMX = 23, /* supports MMX instructions*/
+ gestaltX86HasFXSR = 24, /* Supports FXSAVE and FXRSTOR instructions (fast FP save/restore)*/
+ gestaltX86HasSSE = 25,
+ gestaltX86HasSSE2 = 26
+};
+
+#endif /* TARGET_CPU_X86 */
+
+enum {
+ gestaltTranslationAttr = FOUR_CHAR_CODE('xlat'), /* Translation Manager attributes */
+ gestaltTranslationMgrExists = 0, /* True if translation manager exists */
+ gestaltTranslationMgrHintOrder = 1, /* True if hint order reversal in effect */
+ gestaltTranslationPPCAvail = 2,
+ gestaltTranslationGetPathAPIAvail = 3
+};
+
+enum {
+ gestaltExtToolboxTable = FOUR_CHAR_CODE('xttt') /* Extended Toolbox trap table base */
+};
+
+enum {
+ gestaltUSBPrinterSharingVersion = FOUR_CHAR_CODE('zak '), /* USB Printer Sharing Version*/
+ gestaltUSBPrinterSharingVersionMask = 0x0000FFFF, /* mask for bits in version*/
+ gestaltUSBPrinterSharingAttr = FOUR_CHAR_CODE('zak '), /* USB Printer Sharing Attributes*/
+ gestaltUSBPrinterSharingAttrMask = (long)0xFFFF0000, /* mask for attribute bits*/
+ gestaltUSBPrinterSharingAttrRunning = (long)0x80000000, /* printer sharing is running*/
+ gestaltUSBPrinterSharingAttrBooted = 0x40000000 /* printer sharing was installed at boot time*/
+};
+
+/*WorldScript settings;*/
+enum {
+ gestaltWorldScriptIIVersion = FOUR_CHAR_CODE('doub'),
+ gestaltWorldScriptIIAttr = FOUR_CHAR_CODE('wsat'),
+ gestaltWSIICanPrintWithoutPrGeneralBit = 0 /* bit 0 is on if WS II knows about PrinterStatus callback */
+};
+
+
+
+
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __GESTALT__ */
+