source: trunk/Lucide/SOURCE/sominc/somltype.h @ 88

Last change on this file since 88 was 88, checked in by Eugene Romanenko, 15 years ago

UI improvements, save files, ability to compile plugins with gcc, saveAs for djvu plugin, djvu plugin compiled with gcc, get rid of ddjvuapi.dll

File size: 6.9 KB
Line 
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 [7/30/96 14:46:42] */
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        #ifdef __GNUC__
49            #define SOMEXTERN extern
50        #else
51            #define SOMEXTERN extern "C"
52        #endif
53    #ifdef __STR__
54      #undef __STR__
55    #endif
56  #else
57    #define SOMEXTERN extern
58  #endif
59#endif
60
61#ifndef SOMEXTERNF
62  #ifdef __cplusplus
63    #define SOMEXTERNF extern "C"
64  #else
65    #define SOMEXTERNF extern
66  #endif
67#endif
68
69#ifndef SOMLINK
70  #if defined(_CL386)
71    #define SOMLINK _syscall
72  #elif defined(applec)
73    #define SOMLINK
74  #elif defined(__OS2__)
75    #if defined(__IBMCPP__) || defined(__WATCOMC__)
76      #define SOMLINK _System
77    #elif defined(__BCPLUSPLUS__) || (__BORLANDC__)
78      #define SOMLINK _syscall
79    #elif defined(__HIGHC__)
80      #define SOMLINK _DCC(_DEFAULT_CALLING_CONVENTION &   \
81                           ~_SHORT_STRUCTS_IN_REGS & ~_OVERLOADED)
82    #else
83      #define SOMLINK
84    #endif
85  #elif defined(_MSDOS) || defined(__MSDOS__) || defined(__SC__)
86    #if defined(_WDOS) || defined(__SOMEMIT__)
87      #ifdef __SC__
88        #define SOMLINK
89      #endif
90    #else
91      #define SOMLINK __loadds
92      #define WIN16_SOMLINK __loadds
93      #ifndef _WIN16
94        #define _WIN16
95      #endif
96    #endif
97  #else
98    #define SOMLINK
99  #endif
100#endif
101   
102#ifndef SOMDLINK
103  #if defined(_CL386)
104    #define SOMDLINK
105  #elif defined(applec)
106    #define SOMDLINK
107  #elif defined(__BCPLUSPLUS__) || (__BORLANDC__)
108    #define SOMDLINK _syscall
109  #elif defined(__WATCOMC__)
110    #define SOMDLINK _System
111  #elif defined(__OS2__)
112    #define SOMDLINK
113  #elif defined(_MSDOS) || defined(__MSDOS__) || defined(__SC__)
114    #if (defined(_WDOS) || defined(__SOMEMIT__)) && defined(__SC__)
115      #define SOMDLINK
116    #else
117      #define SOMDLINK __far
118    #endif
119  #else
120    #define SOMDLINK
121  #endif
122#endif
123
124/*
125 * === Backwards Source Level Compatability for __IBMC__
126 */
127#if defined(__OS2__) && defined(__IBMC__)
128  #pragma linkage(somAncestorResolve             , system)
129  #pragma linkage(somApply                       , system)
130  #pragma linkage(somAssert                      , system)
131  #pragma linkage(somBeginPersistentIds          , system)
132  #pragma linkage(somBuildClass                  , system)
133  #pragma linkage(somCheckId                     , system)
134  #pragma linkage(somClassResolve                , system)
135  #pragma linkage(somCompareIds                  , system)
136  #pragma linkage(somConstructClass              , system)
137  #pragma linkage(somDataResolve                 , system)
138  #pragma linkage(somDataResolveChk              , system)
139  #pragma linkage(somEndPersistentIds            , system)
140  #pragma linkage(somEnvironmentNew              , system)
141  #pragma linkage(somEnvironmentEnd              , system)
142  #pragma linkage(somGenericApply                , system)
143  #pragma linkage(somGetClassFromMToken          , system)
144  #pragma linkage(somIdFromString                , system)
145  #pragma linkage(somIdMarshal                   , system)
146  #pragma linkage(somIsObj                       , system)
147  #pragma linkage(somLPrintf                     , system)
148  #pragma linkage(somMainProgram                 , system)
149  #pragma linkage(somParentResolve               , system)
150  #pragma linkage(somParentNumResolve            , system)
151  #pragma linkage(somPrefixLevel                 , system)
152  #pragma linkage(somPrintf                      , system)
153  #pragma linkage(somRegisterClassLibrary        , system)
154  #pragma linkage(somRegisterId                  , system)
155  #pragma linkage(somResolve                     , system)
156  #pragma linkage(somResolveDLocator             , system)
157  #pragma linkage(somResolveMLocator             , system)
158  #pragma linkage(somResolveByName               , system)
159  #pragma linkage(somResolveTerminal             , system)
160  #pragma linkage(somSetExpectedIds              , system)
161  #pragma linkage(somStringFromId                , system)
162  #pragma linkage(somTest                        , system)
163  #pragma linkage(somTestCls                     , system)
164  #pragma linkage(somTotalRegIds                 , system)
165  #pragma linkage(somUniqueKey                   , system)
166  #pragma linkage(somVprintf                     , system)
167  #pragma linkage(somTD_classInitRoutine         , system)
168  #pragma linkage(somTD_SOMCalloc                , system)
169  #pragma linkage(somTD_SOMClassInitFuncName     , system)
170  #pragma linkage(somTD_SOMCreateMutexSem        , system)
171  #pragma linkage(somTD_SOMDeleteModule          , system)
172  #pragma linkage(somTD_SOMDestroyMutexSem       , system)
173  #pragma linkage(somTD_SOMError                 , system)
174  #pragma linkage(somTD_SOMFree                  , system)
175  #pragma linkage(somTD_SOMGetThreadId           , system)
176  #pragma linkage(somTD_SOMLoadModule            , system)
177  #pragma linkage(somTD_SOMMalloc                , system)
178  #pragma linkage(somTD_SOMOutCharRoutine        , system)
179  #pragma linkage(somTD_SOMRealloc               , system)
180  #pragma linkage(somTD_SOMReleaseMutexSem       , system)
181  #pragma linkage(somTD_SOMRequestMutexSem       , system)
182  #pragma linkage(somcsr_Static_foreign_marshaler, system)
183  #pragma linkage(somUnregisterClassLibrary      , system)
184#endif
185
Note: See TracBrowser for help on using the repository browser.