Gestalt Selectors List

Apple System Software (N-O)

This chapter lists selector codes of which the meaning is documented and the first character of the selector code is in the N-O range.

nlup (System [7.0])
     Returns information about the call StandardNBP.

     enum {
     #define gestaltStdNBPAttr 'nlup' /* Standard NBP attributes */
     gestaltStdNBPPresent              = 0,
     gestaltStdNBPSupportsAutoPosition = 1}; /* StandardNBP takes
                                                 (-1,-1) for auto-
                                                 positioning */

nmgr (System [6.0.5])
     Returns information about the Notification Manager.

     enum {
     #define gestaltNotificationMgrAttr 'nmgr' /* Notification Mgr attr. */
     gestaltNotificationPresent = 0};

nreg (NameRegistryLib lib [???], part of System 7.5.1)
     gestaltNameRegistryVersion &AD21
     Returns the version of Name Registry as BCD in the hi-word. Lo-word
     unknown. When this selector isn't installed you can assume that the
     machine doesn't have PCI slots. Hence, when present PCI slots may
     NOT be installed!

     #define gestaltNameRegistryVersion 'nreg';

     All returned values found so far are always 0! (Rene Ros, Nov. 96)
     The iMac (rev. B) returns 0x01010000 (John Mancino)

     When the NameRegistryLib can't be found an invalid value is returned.
     This is fixed with Mac OS 7.6 by not installing the selector.

nubs (System [6.0.4, 6.0.5, 6.0.7, discontinued])
     Returns count of NuBus slots.

     #define gestaltNuBusSlotCount 'nubs' /* NuBus slot count */

nvsv (System [Copland?])
     gestaltNavigationServicesAttr &AD21
     Returns information about the Navigation Services.

     enum {
     #define gestaltNavigationServicesAttr 'nvsv'
     gestaltNavigationServicesPresent = 0};

     From the Preliminary Copland Headers. Copland is replaced by Rhapsody.

ocet (PowerTalk Manager ext [1.0?], part of PowerTalk)
     Returns the versions of the S&F Server and the OCE Toolbox as BCD.
     Returns zero if not present and available.

     enum {
     #define gestaltOCEToolboxVersion 'ocet' /* OCE Toolbox version */
     gestaltOCETB    = 0x0102,  /* current OCE Toolbox version 1.0.2 */
     gestaltSFServer = 0x0100}; /* current S&F Server version 1.0 */

     The high order word will represent the S&F Server version number, and
     the low order the OCE Toolbox version number both as BCD.
     These will be zero until the component is up and running.

oceu (PowerTalk Manager ext [1.0?], part of PowerTalk)
     Returns information about the Open Colloboration Environment Toolbox.

     enum {
     #define gestaltOCEToolboxAttr 'oceu' /* OCE Toolbox attributes */
     gestaltOCETBPresent            = 0x1,   /* OCE toolbox is present,
                                                 not running */
     gestaltOCETBAvailable          = 0x2,   /* OCE toolbox is running
                                                 and available */
     gestaltOCESFServerAvailable    = 0x4,   /* S&F Server is running
                                                 and available */
     gestaltOCTBNativeGlueAvailable = 0x10}; /* PowerPC glue available
                                                 &AS13 */

     Any (future) remaining OCE attributes may not be established
     correctly until the attribute gestaltOCETBAvailable is set.

opfw (System [7.5.2])
     Returns ???

     enum {
     #define gestaltOpenFirmwareInfo 'opfw'
     gestalt??? = 1};

     This selector may be installed but returns gestaltUnknownErr instead
     of zero. (Rene Ros)

os   (System [6.0.4, 7.0 and later])
     (Process Manager INIT ext [???], part of ???)
     Returns general information about the Operating System.

     enum {
     #define gestaltOSAttr 'os  ' /* O/S attributes */
     gestaltSysZoneGrowable      =  0,
     gestaltLaunchCanReturn      =  1,
     gestaltLaunchFullFileSpec   =  2,
     gestaltLaunchControl        =  3,
     gestaltTempMemSupport       =  4,
     gestaltRealTempMemory       =  5,
     gestaltTempMemTracked       =  6,
     gestaltIPCSupport           =  7,
     gestaltSysDebuggerSupport   =  8,
     gestaltSkiaGlobalsSwitched  =  9,  /* &AS05 */
     gestaltHasBGMouseDown?      = 10,  /* unnamed Process Mgr routine
                                            available to indicate if a
                                            layer switch is wanted by the
                                            application when one of its
                                            windows is clicked while in
                                            the background. &AS04 */
     gestalt???                  = 11,  /* on PowerPC, Performa 630 and
                                            PB180? */
     gestalt???                  = 13,  /* unknown, System 7.5 */
     gestalt???                  = 14,  /* unknown, System 7.5 */
     gestalt???                  = 15,  /* unknown, System 7.5.1 */
     gestaltHideLayerOnSwitchSupport = 16,
                                        /* HideOnSwitch flag can be
                                           used with GetHideOnSwitch and
                                           SetHideOnSwitch */
     gestalt???                  = 17}; /* unknown, Tempo / Mac OS 8.0 */

     See the Process Manager chapter in IM Processes for more information
     about the launch control features. And the Memory Manager chapter in
     IM Memory about the memory features.

     Under A/UX 2.x this selector incorrectly returns information about the
     Process Manager, which isn't available. You should test for A/UX 3.0 or
     later by using the gestaltAUXVersion ('a/ux') selector. &AT10

     More information on the unnamed routine which presence is indicated
     by the gestaltHasBGMouseDown? bit can be found in the orginal email
     from Marco Piovanelli to the editor of the GSL. You can get a copy by
     emailing this command to the mail archive server:
          'archive get src/UndocumentedProcesses.h'

     The header file which lists the gestaltSkiaGlobalsSwitched bit says
     /*gestaltSkiaGlobalsSwitched is #9. I don't know why it is not here*/

     "Skia" was the code name for QuickDraw GX (MacsBug uses it for trap
     0xA832, which is the main QuickDraw GX trap).
     (Lawrence D'Oliveiro, Anonymous)

ostt (System [6.0.8?])
     Returns the base address of the Operating System trap table.

     #define gestaltOSTable 'ostt' /* O/S trap table base */

osyv (sysvINIT ext [???] by T. Tanaka, Apple Computer Japan Inc.)
     Returns the version of the system file as BCD which was returned
     before sysvINIT replaced the gestalt definition with a corrected one.

     #define gestaltOldSystemVersion? 'osyv'

     Because of a bug with KanjiTalk 6.0.7 this extension (snippet code,
     available on Developer CD Series) replaces the standard 'sysv' gestalt
     function with a corrected one to return 0x0607 and installs the
     'osyv' selector which uses the replaced gestalt definition. &M03

otan (Open Transport lib [1.0])
     gestaltOpenTpt &AS18
     Returns information about the Open Transport software.

     enum {
     #define gestaltOpenTpt 'otan'
     gestaltOpenTptPresentBit           = 0,
     gestaltOpenTptLoadedBit            = 1,
     gestaltOpenTptAppleTalkPresentBit  = 2,
     gestaltOpenTptAppleTalkLoadedBit   = 3,
     gestaltOpenTptTCPPresentBit        = 4,
     gestaltOpenTptTCPLoadedBit         = 5,
     gestaltOpenTptIPXSPXPresentBit     = 6,
     gestaltOpenTptIPXSPXLoadedBit      = 7,

     gestaltOpenTptPresentMask          = 0x00000001,
     gestaltOpenTptLoadedMask           = 0x00000002,
     gestaltOpenTptAppleTalkPresentMask = 0x00000004,
     gestaltOpenTptAppleTalkLoadedMask  = 0x00000008,
     gestaltOpenTptTCPPresentMask       = 0x00000010,
     gestaltOpenTptTCPLoadedMask        = 0x00000020,
     gestaltOpenTptIPXSPXPresentMask    = 0x00000040,
     gestaltOpenTptIPXSPXLoadedMask     = 0x00000080,

     /* older names? */
     gestaltOpenTptNetwarePresent   = 0x00000040,
     gestaltOpenTptNetwareLoaded    = 0x00000080};

     Contrary to the 'ot  ' selector this one is really installed by
     Open Transport.

     With Open Transport 1.08 (and probably lower) the OpenTptTCPLoaded bit
     is not set when OT TCP is loaded. (John Mancino)

     The names have all had the word 'Mask' appended to them. (David Cook)
     Later, separate Bit constants were defined. (Rene Ros)

otmo (Open Transport lib [1.1.1?])
     gestaltOpenTptModem &AT18
     Returns information about the Open Transport Modem software.

     enum {
     #define gestaltOpenTptModem 'otmo'
     gestaltOpenTptModemPresent = 0x00000000};

otra (Open Transport lib [1.1.1?])
     gestaltOpenTptRemoteAccess &AS25
     Returns information about the Open Transport-based Remote Access/PPP.

     enum {
     #define gestaltOpenTptRemoteAccess 'otra'
     gestaltOpenTptRemoteAccessPresent    = 0,
     gestaltOpenTptRemoteAccessLoaded     = 1,
     gestaltOpenTptRemoteAccessClientOnly = 2,
     gestaltOpenTptRemoteAccessPServer    = 3,
     gestaltOpenTptRemoteAccessMPServer   = 4,
     gestaltOpenTptPPPPresent             = 5,
     gestaltOpenTptARAPPresent            = 6};

     See also 'strm' in this chapter.

otrv (Open Transport lib [1.1.1?])
     gestaltOpenTptRemoteAccessVersion &AS25
     Returns the version of Open Transport Modem software as NumVersion.

     #define gestaltOpenTptRemoteAccessVersion 'otrv'

otvr (Open Transport lib [1.1])
     Returns the version of Open Transport as NumVersion. (Anonymous)

     enum {
     #define gestaltOpenTptVersion? 'otvr'

     kOTIPSingleLinkMultihomingVersion = 0x01300000	/* OT 1.3 */

     This selector erroneously returns 0x00008000 for the 1.1 version
     of Open Transport on System 7.1, 7.1.1 and 7.1.2.