You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2047 lines
90 KiB
2047 lines
90 KiB
/* |
|
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__ */ |
|
|
|
|