Gestalt Selectors List

Apple System Software (Ma-Mz)

This chapter lists selector codes of which the meaning is documented and the first two characters of the selector code is in the Ma-Mz range.

malr (PowerTalk ext [1.0?], part of PowerTalk)
     Returns the SMP Mailer version as INTEGER. Returns zero if not
     present and available.

     #define gestaltSMPMailerVersion 'malr' /* SMP Mailer version */

mbeh (System? [8.1?])
     gestaltMediaBay &AS29
     Returns the media bay driver type.

     enum {
     #define gestaltMediaBay 'mbeh'
     gestaltMBLegacy       = 0,  /* media bay support in PCCard 2.0 */
     gestaltMBSingleBay    = 1,  /* single bay media bay driver */
     gestaltMBMultipleBays = 2}; /* multi-bay media bay driver */

mbxa (PowerTalk Manager ext [1.5?])
     gestaltOCEMailboxAPIAttr &AD32
     Returns information about the capabilities of the Mailbox.

     enum {
     #define gestaltOCEMailboxAPIAttr 'mbxa'
     gestaltMailboxAPIPresent = 0x01,   /* basic operations on Mailbox
                                            and Letter Contents avail. */
     gestaltSupportsOutbox    = 0x02,   /* examine and act upon the
                                            outbox possible */
     gestaltSupportsErrorLog  = 0x04 }; /* examine and act upon the
                                            mailbox error log possible */

     Unlike other selectors returning attributes, the responses are not bit
     values, but bit masks.

menu (System? [8.5?])
     Returns information about the PowerPC-native Menu Manager.

     enum {
     #define gestaltMenuMgrAttr 'menu' /* PPC Menu Mgr exists */
     gestaltMenuMgrPresent = 1}; /* mask! */

mfdr (At Ease [1.0])
     (System? [9.0])
     Returns MultiUserGestaltHandle (in Folders.h).

     #define gestaltMultipleUsersState 'mfdr'

micn (System [6.0.4]) INF
     Returns an icon family resource ID for the current type of

     #define gestaltMachineIcon 'micn' /* machine ICON/cicn res ID */

     It appears as if this selector always returns the ID of the generic
     Macintosh icon (like in the Welcome screen), starting with System 7.5.
     On a PowerBook 5300 with System 7.5.2 installed the icon ID is
     returned for an icon showing a generic portable computer. (Rene Ros)

misc (System [6.0.5])
     Returns information about miscellaneous pieces of software or

     enum {
     #define gestaltMiscAttr 'misc' /* miscellaneous attributes */
     gestaltScrollingThrottle = 0,
     gestaltBootGlobals       = 1,  /* Boot Globals &M02, obsolete? */
     gestaltSquareMenuBar     = 2};

     The Gestalt function for this selector, at least as implemented by
     System 7.5.3 and earlier, does not properly restore the D3 register
     and returns a bogus value in it. (John Mancino)

mixd (CFM-68K Runtime Enabler ext [4.0])
     (System? [7.1.2?])
     Returns information about the Mixed Mode Manager.

     enum {
     #define gestaltMixedModeAttr 'mixd' /* Mixed Mode Mgr attributes */
     gestaltMixedModePowerPC        = 0,  /* true if Mixed Mode supports
                                             PowerPC ABI calling
                                             conventions &AS21 */
     gestaltPowerPCAware            = 0,  /* old name for
                                             gestaltMixedModePowerPC */
     gestaltMixedModeCFM68K         = 1,  /* true if Mixed Mode supports
                                             CFM-68K calling
                                             conventions &AS21 */
     gestaltMixedModeCFM68KHasTrap  = 2,  /* true if CFM-68K Mixed Mode
                                              implements _MixedModeDispatch
                                              (versions 1.0.1 and prior
                                              did not) &AS21 */
     gestaltMixedModeCFM68KHasState = 3}; /* SaveMixedModeState and
                                              RestoreMixedModeState are
                                              available &AT19 */

     The name 'gestaltMixedModeVersion' (as used in IM OS Utilites and
     IM PowerPC System Software) is incorrect. It may be listed in
     Gestalt header files for a limited time for backwards compatibility.
     (Rene Ros)

mnam (System? [8.6?])
     Returns a StringPtr to a user visible machine name.

     #define gestaltUserVisibleMachineName 'mnam'

mmap (System? [Blue Box])
     gestaltMemoryMapAttr &AS29
     Returns information about the Memory map.

     enum {
     #define gestaltMemoryMapAttr 'mmap' /* Memory map type */
     gestaltMemoryMapSparse = 0}; /* Sparse memory is on */

mmu  (System [6.0.4])
     Returns a value that indicates the type of MMU currently installed,
     if any.

     enum {
     #define gestaltMMUType 'mmu ' /* MMU Type */
     gestaltNoMMU    = 0,  /* no MMU */
     gestaltAMU      = 1,  /* AMU */
     gestalt68851    = 2,  /* 68851 MMU */
     gestalt68030MMU = 3,  /* built-in 68030 MMU */
     gestalt68040MMU = 4,  /* built-in 68040/68LC040 &S01 */
     gestaltEMMU1    = 5}; /* Emulated MMU type 1, PowerPC MMU &AS05 */

     You should also use this selector to test for the existence of
     _MemoryDispatch if your code runs before system patches are applied
     on machines of which the ROM implements _MemoryDispatch but the
     machine doesn't have a MMU. This may happen with a Mac LC, whose
     ROM is derived from the Macintosh IIci. &AT09

mpsc (System? [9.0])
     Returns a bitmap of toolbox/OS managers that can be called from
     MPLibrary MPTasks

     enum {
     #define gestaltMPCallableAPIsAttr 'mpsc'
     gestaltMPFileManager   = 0,  /* File Manager calls can be made */
     gestaltMPDeviceManager = 1}; /* Synchronous Device Manager calls can
                                     be made */

mtcp (MacTCP cp [1.1])
     (Open Tpt MacTCP [3.0a2])
     gestaltMacTCPVersion? &AD01
     Returns the version of MacTCP, if opened, as index-value. If MacTCP is
     not opened a value of 0 is returned.

     #define gestaltMacTCPVersion? 'mtcp'

     MacTCP responses
     Version        Response   Remarks
      1.0 - 1.0.3     N/A      Doesn't install selector.
      1.1 and later    0       MacTCP not opened.

      1.1              1
      1.1.1            2
      2.0.x            3
      3.0              4       Part of Open Transport 1.0

     Rumour goes this selector is not installed with A/UX. Versions of
     MacTCP and A/UX involved are unknown.

     No constants are defined by the documentation.