home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / os232.exe / INCLUDE / NTYPES.TXT < prev    next >
Text File  |  1995-06-29  |  9KB  |  196 lines

  1. Brief documentation for NTYPES.H v1.05 BETA 1
  2.  
  3.    NTYPES.H is broken up into five sections.  The first defines automatic
  4.    compiler/platform settings.  The second section defines items according 
  5.    to the platform.  The third section defines non-platform specific defines. 
  6.    The fourth section defines new types. The fifth section defines macros.
  7.  
  8.    This file is guarenteed NOT to include any other files.  It should be
  9.    placed before any Novell include files, but after any standard C or
  10.    platform specific files, such as "windows.h".
  11.  
  12.    Certain sections may be excluded by defining N_INC_NO... macros.  These
  13.    are currently defined as:
  14.  
  15.       N_INC_NO_AUTO           Don't automatically define platforms defines.
  16.       N_INC_NO_OLD_CONSTANTS  Don't define historical constants.
  17.       N_INC_NO_OLD_MACROS     Don't define historical macros.
  18.  
  19.    Section 4c is obsolete and will be removed from v1.06 of NTYPES.H
  20.  
  21.       N_INC_NO_GUI            Is no longer checked
  22.       N_INC_GUI               Can be used for this rev only to still
  23.                               define GUI defines.
  24.  
  25.    For compatibility purposes a platform may be defined in multiple ways.
  26.    Some of these methods are defacto standards for their appropriate
  27.    platforms.  Note that AppWare considers the N_PLAT_xxxx method to be the
  28.    default. 
  29.  
  30.    (Some of the following are trademarks of their respective companies)
  31.  
  32.       Microsoft Windows Family   - N_PLAT_MSW
  33.       **************************
  34.          If N_PLAT_MSW is defined, at least one of the below should be defined;
  35.          if none is defined, N_PLAT_MSW3 will be forced on.
  36.          If any of the following are defined, N_PLAT_MSW will be forced on.
  37.          If N_PLAT_WNT? is defined, N_PLAT_WNT will be forced on.
  38.       Microsoft Windows 3.x      - N_PLAT_MSW3
  39.       Microsoft Windows 4.x      - N_PLAT_MSW4
  40.       Microsoft Windows NT 3.x   - N_PLAT_WNT3
  41.       Microsoft Windows NT 4.x   - N_PLAT_WNT4
  42.       **************************
  43.       IBM OS/2                   - N_PLAT_OS2
  44.       DOS                        - N_PLAT_DOS, NWDOS
  45.       Novell NetWare NLM         - N_PLAT_NLM
  46.       Macintosh                  - N_PLAT_MAC
  47.       Unix                       - N_PLAT_UNIX
  48.    
  49.    One of the following architectures will always be defined:
  50.  
  51.       N_ARCH_16                  - 16 bit word size
  52.       N_ARCH_32                  - 32 bit word size
  53.       N_ARCH_64                  - 64 bit word size
  54.  
  55.    If there is a need to force the natural integer to a specific size
  56.    use one of the following definitions (like for thunk layers).
  57.  
  58.       N_FORCE_INT_16             - Force nint and nuint to be 16 bit word size
  59.       N_FORCE_INT_32             - Force nint and nuint to be 32 bit word size 
  60.    
  61.    Typical combinations are as follows.  The preferred defines are the first
  62.    one in each of the following lines:
  63.  
  64.       Microsoft Windows (16 bit) - N_PLAT_MSW and N_ARCH_16, NWWIN
  65.       Microsoft Windows (32 bit) - N_PLAT_MSW and N_ARCH_32, WIN32
  66.       Microsoft Windows 3.x      - N_PLAT_MSW3
  67.       Microsoft Windows 4.x      - N_PLAT_MSW4
  68.       Microsoft Windows NT       - N_PLAT_WNT
  69.       Microsoft Windows NT 3.x   - N_PLAT_WNT3
  70.       Microsoft Windows NT 4.x   - N_PLAT_WNT4
  71.       IBM OS/2 (16 bit)          - N_PLAT_OS2 and N_ARCH_16, NWOS2
  72.       IBM OS/2 (32 bit)          - N_PLAT_OS2 and N_ARCH_32
  73.       DOS                        - N_PLAT_DOS, NWDOS
  74.       Novell NetWare NLM         - N_PLAT_NLM and N_ARCH_32
  75.       Macintosh                  - N_PLAT_MAC and N_ARCH_32 
  76.       Unix                       - N_PLAT_UNIX and N_ARCH_32 or N_ARCH_64
  77.  
  78.    Implied definitions (ntypes.h will create the implied definitions if no 
  79.    additional defines are provided).  Variances (ex: N_PLAT_WNT && N_ARCH_16)
  80.    must be defined explicity:
  81.  
  82.         Defined                 Implied
  83.  
  84.         NWDOS                   N_PLAT_DOS,                     N_ARCH_16
  85.         N_PLAT_DOS              NWDOS,                          N_ARCH_16
  86.         NWOS2                   N_PLAT_OS2,                     N_ARCH_16
  87.         N_PLAT_OS2                                              N_ARCH_32
  88.         N_PLAT_OS2, N_ARCH_16   NWOS2
  89.         NWWIN                   N_PLAT_MSW,                     N_ARCH_16
  90.         N_PLAT_MSW              N_PLAT_MSW3,                    N_ARCH_16
  91.         N_PLAT_MSW, N_ARCH_16   NWWIN, N_PLAT_MSW3
  92.         N_PLAT_MSW3             N_PLAT_MSW,                     N_ARCH_16
  93.         N_PLAT_MSW4             N_PLAT_MSW,                     N_ARCH_32
  94.         N_PLAT_WNT              N_PLAT_MSW, N_PLAT_WNT3,        N_ARCH_32
  95.         N_PLAT_WNT, N_ARCH_16   NWWIN, N_PLAT_MSW, N_PLAT_WNT3
  96.         N_PLAT_WNT3             N_PLAT_MSW, N_PLAT_WNT,         N_ARCH_32
  97.         N_PLAT_WNT4             N_PLAT_MSW, N_PLAT_WNT,         N_ARCH_32
  98.         N_PLAT_NLM                                              N_ARCH_32
  99.         N_PLAT_MAC                                              N_ARCH_32
  100.         N_PLAT_UNIX                                             N_ARCH_32
  101.  
  102.    Note that the following constants are assumed to be defined for the
  103.    given circumstances:
  104.  
  105.       _INC_WINDOWS        - Microsoft's WINDOWS.H file has been included.
  106.       RC_INVOKED          - Microsoft's RC resource compiler is currently
  107.                             processing the file.
  108.  
  109.  
  110. Revision history:
  111.  
  112. v1.05
  113. - Added special pascal type for OS2 under Borland compile.
  114. - Added Enhanced "endianness" checks for N_PLAT_NLM
  115. - Changed N_API et.al. under N_PLAT_NLM to use compiler "default" and changed
  116. N_PASCAL and N_CDECL to be properly defined.  This allows forced function
  117. types when needed.
  118. - Changed TRUE/FALSE in section 5 to be defined directly, not in terms of
  119. N_TRUE and N_FALSE.
  120. - Changed default to NOT include GUI defines.  N_INC_GUI must be defined to
  121. include these now.  This section will be removed in v1.06 of NTYPES.H.
  122. - Broke off large comment at beginning of file into NTYPES.TXT.
  123. - Added pointers to pointers typedefs.
  124. - Added sized boolean types.
  125. Changes to NPACKON.H:
  126. - Added support for Windows 95 platform
  127.  
  128. v1.04
  129. -Added N_..._CALLBACK and N_TYPEDEFs for N_PLAT_NLM
  130. -Corrected bug in NCopyFrom... macros (they were reversed in functionality)
  131. -Added support for reading from or writing to unaligned values (NRead... and
  132. NWrite...)
  133. -Changed:
  134.    #if !defined(N_ARCH_64) && \
  135.        !defined(N_ARCH_32) && \
  136.        !defined(N_ARCH_16)
  137. to:
  138.    #if !defined(N_ARCH_64) && !defined(N_ARCH_32) && !defined(N_ARCH_16)
  139. to work around a bug in MPW's CFront preprocessor.
  140. -Changed METROWERKS_C define check to check for __MWERKS__ instead. 
  141. METROWERKS_C is obsolete.
  142. -Changed N_GLOBAL_LIBRARY and N_EXTERN_LIBRARY to use N_PASCAL instead of
  143. pascal (which is the purpose of N_PASCAL anyway).
  144. -Changed platform specific typedefs to use N_HUGE...will probably consolidate
  145. into platform independent types later.
  146. -Changed to standardized copyright (smaller)
  147. -Cosmetic (typo) changes made to introductory comments
  148. -Changed function definition macros and function pointer type definition
  149. macros to correctly match document and use the N_CALLBACK, N_CDECL, and
  150. N_PASCAL defines.  
  151. Changes to NPACKON.H:
  152. -Added pragma to shut up Visual C compilers so they don't complain about
  153. changing the alignment.
  154.  
  155. v1.03
  156. -Reformat (one time hit, won't happen again); includes removal of embedded
  157. tabs and consistent indenting to 4,7 "tabbing", consistent use of #if's. 
  158. Various authors have modified this file using different tab stop
  159. interpretations (some at 4 spaces per tab, some at 3, and some at 8). 
  160. Reading the code was subject to misinterpretations because of differences in
  161. indentation.  Embedded tabs will now be kept out of ntypes.
  162. -"Fixed" missing section markers and corrected commented documentation on
  163. sections.
  164. -Clarified and corrected commented documentation.
  165. -Added support for N_INC_NO_GUI (don't include GUI structures) so that
  166. non-interface apps don't need to fill up compiler symbol space.
  167. -Added automatic defininitions for N_ARCH... and N_PLAT... macros when they
  168. can be deduced from a single definition. For example, if N_PLAT_DOS is
  169. defined, N_ARCH_16 is automatically defined if no N_ARCH... macro has yet
  170. been set.
  171. -Removed automatic inclusion of Types.h for Mac platform (as stated at the
  172. beginning of ntypes:
  173.         "This file is guarenteed NOT to include any other files.  It should be
  174.         placed before any NetWare include files, but after any standard C or
  175.         platform specific files, such as "windows.h"."
  176. Types.h should be included before ntypes for Mac code.
  177. -Added NSwapTo... and NSwapFrom... macros to clarify usage.
  178. -Renamed NMake32() and NMake16() macro parameters for clarity.
  179. -Changed use of PASCAL to N_PASCAL as per spec in function macros.
  180.  
  181.  
  182. v1.02
  183. - Added support for NLMs
  184. - Eliminated nbool16 and nbool32 in all Platforms.
  185. - Fixed bugs in Macintosh PowerPC
  186. - Added support for OSF on Alpha
  187.  
  188. v1.01
  189. - Macintosh compile problems, want to use C calling conventions, not pascal
  190. (at least for now)
  191. - Changes in OS/2 Section only to support 32 bit IBM C++ compiler
  192. - Added support for non-MPW compilers
  193.  
  194. v1.00
  195. - Initial release
  196.