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 >
Wrap
Text File
|
1995-06-29
|
9KB
|
196 lines
Brief documentation for NTYPES.H v1.05 BETA 1
NTYPES.H is broken up into five sections. The first defines automatic
compiler/platform settings. The second section defines items according
to the platform. The third section defines non-platform specific defines.
The fourth section defines new types. The fifth section defines macros.
This file is guarenteed NOT to include any other files. It should be
placed before any Novell include files, but after any standard C or
platform specific files, such as "windows.h".
Certain sections may be excluded by defining N_INC_NO... macros. These
are currently defined as:
N_INC_NO_AUTO Don't automatically define platforms defines.
N_INC_NO_OLD_CONSTANTS Don't define historical constants.
N_INC_NO_OLD_MACROS Don't define historical macros.
Section 4c is obsolete and will be removed from v1.06 of NTYPES.H
N_INC_NO_GUI Is no longer checked
N_INC_GUI Can be used for this rev only to still
define GUI defines.
For compatibility purposes a platform may be defined in multiple ways.
Some of these methods are defacto standards for their appropriate
platforms. Note that AppWare considers the N_PLAT_xxxx method to be the
default.
(Some of the following are trademarks of their respective companies)
Microsoft Windows Family - N_PLAT_MSW
**************************
If N_PLAT_MSW is defined, at least one of the below should be defined;
if none is defined, N_PLAT_MSW3 will be forced on.
If any of the following are defined, N_PLAT_MSW will be forced on.
If N_PLAT_WNT? is defined, N_PLAT_WNT will be forced on.
Microsoft Windows 3.x - N_PLAT_MSW3
Microsoft Windows 4.x - N_PLAT_MSW4
Microsoft Windows NT 3.x - N_PLAT_WNT3
Microsoft Windows NT 4.x - N_PLAT_WNT4
**************************
IBM OS/2 - N_PLAT_OS2
DOS - N_PLAT_DOS, NWDOS
Novell NetWare NLM - N_PLAT_NLM
Macintosh - N_PLAT_MAC
Unix - N_PLAT_UNIX
One of the following architectures will always be defined:
N_ARCH_16 - 16 bit word size
N_ARCH_32 - 32 bit word size
N_ARCH_64 - 64 bit word size
If there is a need to force the natural integer to a specific size
use one of the following definitions (like for thunk layers).
N_FORCE_INT_16 - Force nint and nuint to be 16 bit word size
N_FORCE_INT_32 - Force nint and nuint to be 32 bit word size
Typical combinations are as follows. The preferred defines are the first
one in each of the following lines:
Microsoft Windows (16 bit) - N_PLAT_MSW and N_ARCH_16, NWWIN
Microsoft Windows (32 bit) - N_PLAT_MSW and N_ARCH_32, WIN32
Microsoft Windows 3.x - N_PLAT_MSW3
Microsoft Windows 4.x - N_PLAT_MSW4
Microsoft Windows NT - N_PLAT_WNT
Microsoft Windows NT 3.x - N_PLAT_WNT3
Microsoft Windows NT 4.x - N_PLAT_WNT4
IBM OS/2 (16 bit) - N_PLAT_OS2 and N_ARCH_16, NWOS2
IBM OS/2 (32 bit) - N_PLAT_OS2 and N_ARCH_32
DOS - N_PLAT_DOS, NWDOS
Novell NetWare NLM - N_PLAT_NLM and N_ARCH_32
Macintosh - N_PLAT_MAC and N_ARCH_32
Unix - N_PLAT_UNIX and N_ARCH_32 or N_ARCH_64
Implied definitions (ntypes.h will create the implied definitions if no
additional defines are provided). Variances (ex: N_PLAT_WNT && N_ARCH_16)
must be defined explicity:
Defined Implied
NWDOS N_PLAT_DOS, N_ARCH_16
N_PLAT_DOS NWDOS, N_ARCH_16
NWOS2 N_PLAT_OS2, N_ARCH_16
N_PLAT_OS2 N_ARCH_32
N_PLAT_OS2, N_ARCH_16 NWOS2
NWWIN N_PLAT_MSW, N_ARCH_16
N_PLAT_MSW N_PLAT_MSW3, N_ARCH_16
N_PLAT_MSW, N_ARCH_16 NWWIN, N_PLAT_MSW3
N_PLAT_MSW3 N_PLAT_MSW, N_ARCH_16
N_PLAT_MSW4 N_PLAT_MSW, N_ARCH_32
N_PLAT_WNT N_PLAT_MSW, N_PLAT_WNT3, N_ARCH_32
N_PLAT_WNT, N_ARCH_16 NWWIN, N_PLAT_MSW, N_PLAT_WNT3
N_PLAT_WNT3 N_PLAT_MSW, N_PLAT_WNT, N_ARCH_32
N_PLAT_WNT4 N_PLAT_MSW, N_PLAT_WNT, N_ARCH_32
N_PLAT_NLM N_ARCH_32
N_PLAT_MAC N_ARCH_32
N_PLAT_UNIX N_ARCH_32
Note that the following constants are assumed to be defined for the
given circumstances:
_INC_WINDOWS - Microsoft's WINDOWS.H file has been included.
RC_INVOKED - Microsoft's RC resource compiler is currently
processing the file.
Revision history:
v1.05
- Added special pascal type for OS2 under Borland compile.
- Added Enhanced "endianness" checks for N_PLAT_NLM
- Changed N_API et.al. under N_PLAT_NLM to use compiler "default" and changed
N_PASCAL and N_CDECL to be properly defined. This allows forced function
types when needed.
- Changed TRUE/FALSE in section 5 to be defined directly, not in terms of
N_TRUE and N_FALSE.
- Changed default to NOT include GUI defines. N_INC_GUI must be defined to
include these now. This section will be removed in v1.06 of NTYPES.H.
- Broke off large comment at beginning of file into NTYPES.TXT.
- Added pointers to pointers typedefs.
- Added sized boolean types.
Changes to NPACKON.H:
- Added support for Windows 95 platform
v1.04
-Added N_..._CALLBACK and N_TYPEDEFs for N_PLAT_NLM
-Corrected bug in NCopyFrom... macros (they were reversed in functionality)
-Added support for reading from or writing to unaligned values (NRead... and
NWrite...)
-Changed:
#if !defined(N_ARCH_64) && \
!defined(N_ARCH_32) && \
!defined(N_ARCH_16)
to:
#if !defined(N_ARCH_64) && !defined(N_ARCH_32) && !defined(N_ARCH_16)
to work around a bug in MPW's CFront preprocessor.
-Changed METROWERKS_C define check to check for __MWERKS__ instead.
METROWERKS_C is obsolete.
-Changed N_GLOBAL_LIBRARY and N_EXTERN_LIBRARY to use N_PASCAL instead of
pascal (which is the purpose of N_PASCAL anyway).
-Changed platform specific typedefs to use N_HUGE...will probably consolidate
into platform independent types later.
-Changed to standardized copyright (smaller)
-Cosmetic (typo) changes made to introductory comments
-Changed function definition macros and function pointer type definition
macros to correctly match document and use the N_CALLBACK, N_CDECL, and
N_PASCAL defines.
Changes to NPACKON.H:
-Added pragma to shut up Visual C compilers so they don't complain about
changing the alignment.
v1.03
-Reformat (one time hit, won't happen again); includes removal of embedded
tabs and consistent indenting to 4,7 "tabbing", consistent use of #if's.
Various authors have modified this file using different tab stop
interpretations (some at 4 spaces per tab, some at 3, and some at 8).
Reading the code was subject to misinterpretations because of differences in
indentation. Embedded tabs will now be kept out of ntypes.
-"Fixed" missing section markers and corrected commented documentation on
sections.
-Clarified and corrected commented documentation.
-Added support for N_INC_NO_GUI (don't include GUI structures) so that
non-interface apps don't need to fill up compiler symbol space.
-Added automatic defininitions for N_ARCH... and N_PLAT... macros when they
can be deduced from a single definition. For example, if N_PLAT_DOS is
defined, N_ARCH_16 is automatically defined if no N_ARCH... macro has yet
been set.
-Removed automatic inclusion of Types.h for Mac platform (as stated at the
beginning of ntypes:
"This file is guarenteed NOT to include any other files. It should be
placed before any NetWare include files, but after any standard C or
platform specific files, such as "windows.h"."
Types.h should be included before ntypes for Mac code.
-Added NSwapTo... and NSwapFrom... macros to clarify usage.
-Renamed NMake32() and NMake16() macro parameters for clarity.
-Changed use of PASCAL to N_PASCAL as per spec in function macros.
v1.02
- Added support for NLMs
- Eliminated nbool16 and nbool32 in all Platforms.
- Fixed bugs in Macintosh PowerPC
- Added support for OSF on Alpha
v1.01
- Macintosh compile problems, want to use C calling conventions, not pascal
(at least for now)
- Changes in OS/2 Section only to support 32 bit IBM C++ compiler
- Added support for non-MPW compilers
v1.00
- Initial release