home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dtswps.zip / DTSFILES.ZIP / SOMLTYPE.H < prev    next >
Text File  |  1996-06-24  |  7KB  |  172 lines

  1. /*
  2.  *   COMPONENT_NAME: somk
  3.  *
  4.  *   ORIGINS: 27
  5.  *
  6.  *
  7.  *    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1994,1996 
  8.  *   All Rights Reserved
  9.  *   Licensed Materials - Property of IBM
  10.  *   US Government Users Restricted Rights - Use, duplication or
  11.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  12.  */
  13. /* @(#) 2.20.2.7 src/somk/somltype.h, somk.api, som2.1 1/18/96 10:43:49 [6/24/96 08:12:11] */
  14.  
  15. /*
  16.  */
  17.  
  18. /*
  19.  *    SOMLTYPE.H
  20.  *    Assure definitions for SOMEXTERN, SOMLINK, and SOMDLINK
  21.  *
  22.  *    These variables are used to control the register linkage conventions
  23.  *    for all SOM functions, methods, and external data references.
  24.  *
  25.  *    All SOM functions and external data references are preceeded with a
  26.  *    SOMEXTERN macro (SOM methods do not have external names).
  27.  *
  28.  *    All SOM functions and methods are prototyped with a SOMLINK keyword.
  29.  *
  30.  *    All SOM external data references are defined with a SOMDLINK keyword.
  31.  *
  32.  *    Users may supply (at their own risk) appropriate definitions for
  33.  *    other compilers using "-DSOMEXTERN=x", "-DSOMLINK=y" or "-DSOMDLINK=z"
  34.  *    arguments on the compiler's command line.  Any such definition is not
  35.  *    disturbed by the following code.
  36.  *
  37.  *    assumptions:
  38.  *      (1) __cplusplus is defined when compiling C++ code anywhere
  39.  *      (2) __IBMCPP__ is defined by CSet/2 on OS/2 when compiling C++ code
  40.  *      (3) _CL386 may be defined if not using an IBM compiler
  41.  *      (4) neither _CL386 nor __IBMCPP__ are defined on AIX
  42.  *      (5) For historical reasons, "#pragma linkage" statements are
  43.  *          generated for __IBMC__ on OS/2 and SOMLINK is set to white space.
  44.  */
  45.  
  46. #ifndef SOMEXTERN
  47.   #ifdef __cplusplus
  48.     #define SOMEXTERN extern "C"
  49.     #ifdef __STR__
  50.       #undef __STR__
  51.     #endif
  52.   #else
  53.     #define SOMEXTERN extern
  54.   #endif
  55. #endif
  56.  
  57. #ifndef SOMLINK
  58.   #if defined(_CL386)
  59.     #define SOMLINK _syscall
  60.   #elif defined(applec)
  61.     #define SOMLINK
  62.   #elif defined(__OS2__)
  63.     #if defined(__IBMCPP__)
  64.       #define SOMLINK _System
  65.     #elif defined(__BCPLUSPLUS__) || (__BORLANDC__)
  66.       #define SOMLINK _syscall
  67.     #elif defined(__HIGHC__)
  68.       #define SOMLINK _DCC(_DEFAULT_CALLING_CONVENTION &   \
  69.                            ~_SHORT_STRUCTS_IN_REGS & ~_OVERLOADED)
  70.     #else
  71.       #define SOMLINK
  72.     #endif
  73.   #elif defined(_MSDOS) || defined(__MSDOS__) || defined(__SC__)
  74.     #if defined(_WDOS) || defined(__SOMEMIT__)
  75.       #ifdef __SC__
  76.         #define SOMLINK
  77.       #endif
  78.     #else
  79.       #define SOMLINK __loadds
  80.       #define WIN16_SOMLINK __loadds
  81.       #ifndef _WIN16
  82.         #define _WIN16
  83.       #endif
  84.     #endif
  85.   #else
  86.     #define SOMLINK
  87.   #endif
  88. #endif
  89.  
  90. #ifndef SOMDLINK
  91.   #if defined(_CL386)
  92.     #define SOMDLINK
  93.   #elif defined(applec)
  94.     #define SOMDLINK
  95.   #elif defined(__BCPLUSPLUS__) || (__BORLANDC__)
  96.     #define SOMDLINK _syscall
  97.   #elif defined(__OS2__)
  98.     #define SOMDLINK
  99.   #elif defined(_MSDOS) || defined(__MSDOS__) || defined(__SC__)
  100.     #if (defined(_WDOS) || defined(__SOMEMIT__)) && defined(__SC__)
  101.       #define SOMDLINK
  102.     #else
  103.       #define SOMDLINK __far
  104.     #endif
  105.   #else
  106.     #define SOMDLINK
  107.   #endif
  108. #endif
  109.  
  110. /*
  111.  * === Backwards Source Level Compatability for __IBMC__
  112.  */
  113. #if defined(__OS2__) && defined(__IBMC__)
  114.   #pragma linkage(somAncestorResolve             , system)
  115.   #pragma linkage(somApply                       , system)
  116.   #pragma linkage(somAssert                      , system)
  117.   #pragma linkage(somBeginPersistentIds          , system)
  118.   #pragma linkage(somBuildClass                  , system)
  119.   #pragma linkage(somCheckId                     , system)
  120.   #pragma linkage(somClassResolve                , system)
  121.   #pragma linkage(somCompareIds                  , system)
  122.   #pragma linkage(somConstructClass              , system)
  123.   #pragma linkage(somDataResolve                 , system)
  124.   #pragma linkage(somDataResolveChk              , system)
  125.   #pragma linkage(somEndPersistentIds            , system)
  126.   #pragma linkage(somEnvironmentNew              , system)
  127.   #pragma linkage(somEnvironmentEnd              , system)
  128.   #pragma linkage(somGenericApply                , system)
  129.   #pragma linkage(somGetClassFromMToken          , system)
  130.   #pragma linkage(somIdFromString                , system)
  131.   #pragma linkage(somIdMarshal                   , system)
  132.   #pragma linkage(somIsObj                       , system)
  133.   #pragma linkage(somLPrintf                     , system)
  134.   #pragma linkage(somMainProgram                 , system)
  135.   #pragma linkage(somParentResolve               , system)
  136.   #pragma linkage(somParentNumResolve            , system)
  137.   #pragma linkage(somPrefixLevel                 , system)
  138.   #pragma linkage(somPrintf                      , system)
  139.   #pragma linkage(somRegisterClassLibrary        , system)
  140.   #pragma linkage(somRegisterId                  , system)
  141.   #pragma linkage(somResolve                     , system)
  142.   #pragma linkage(somResolveDLocator             , system)
  143.   #pragma linkage(somResolveMLocator             , system)
  144.   #pragma linkage(somResolveByName               , system)
  145.   #pragma linkage(somResolveTerminal             , system) 
  146.   #pragma linkage(somSetExpectedIds              , system)
  147.   #pragma linkage(somStringFromId                , system)
  148.   #pragma linkage(somTest                        , system)
  149.   #pragma linkage(somTestCls                     , system)
  150.   #pragma linkage(somTotalRegIds                 , system)
  151.   #pragma linkage(somUniqueKey                   , system)
  152.   #pragma linkage(somVprintf                     , system)
  153.   #pragma linkage(somTD_classInitRoutine         , system)
  154.   #pragma linkage(somTD_SOMCalloc                , system)
  155.   #pragma linkage(somTD_SOMClassInitFuncName     , system)
  156.   #pragma linkage(somTD_SOMCreateMutexSem        , system)
  157.   #pragma linkage(somTD_SOMDeleteModule          , system)
  158.   #pragma linkage(somTD_SOMDestroyMutexSem       , system)
  159.   #pragma linkage(somTD_SOMError                 , system)
  160.   #pragma linkage(somTD_SOMFree                  , system)
  161.   #pragma linkage(somTD_SOMGetThreadId           , system)
  162.   #pragma linkage(somTD_SOMLoadModule            , system)
  163.   #pragma linkage(somTD_SOMMalloc                , system)
  164.   #pragma linkage(somTD_SOMOutCharRoutine        , system)
  165.   #pragma linkage(somTD_SOMRealloc               , system)
  166.   #pragma linkage(somTD_SOMReleaseMutexSem       , system)
  167.   #pragma linkage(somTD_SOMRequestMutexSem       , system)
  168.   #pragma linkage(somcsr_Static_foreign_marshaler, system)
  169.   #pragma linkage(somUnregisterClassLibrary      , system)
  170. #endif
  171.  
  172.