home *** CD-ROM | disk | FTP | other *** search
- /*
- oakland.h
-
- % Compiler and OS dependent external declarations used by Oakland C-tools.
- Miscellaneous External Declarations used by Oakland C-tools.
-
- OWL 1.1
- Copyright (c) 1986, 1987, 1988, by Oakland Group, Inc.
- ALL RIGHTS RESERVED.
-
- Revision History:
- -----------------
- 9/12/88 jmd added prototyping macro
- 10/17/88 jmd changed _$arg to _arg
- 12/07/88 ted re-merged compiler-dependent public definitions.
- 12/13/88 jmd added byte define for Lattice
- 10/16/89 jmd added SIZE_T to OAK_APOLLO conditionals
- 10/16/89 jmd added SEEK_ stuff in OAK_APOLLO conditionals
-
- 6/25/89 jmd added OEXTERN, OGLOBAL stuff for VMS
- 7/06/89 gam added MetaWare High C stuff
- 7/07/89 gam added #define for FNULL
- 7/12/89 ted Added OSTATIC stuff for MetaWare.
- 7/14/89 ted Added memmove/omemmove stuff for MetaWare.
- 7/15/89 ted Added TIME_T, VOID_FPTR; moved int_min,int_max to ostdlib.h.
- 7/18/89 jmd added more stuff for VMS
- 8/17/89 jmd ansified apollo
- 9/11/89 jmd added BORDER_CHARS macro
-
- This file depends on a symbol for the Compiler or Operating System
- being #define'd.
-
- Use one of the following:
-
- M5
- TC
- LC
- MW
- OAK_UNIX
- OAK_APOLLO
- OAK_SUN
- OAK_VMS
- OAK_STRATUS
- OAK_DG
-
- In addition, the symbols OAK_OS2 and OAK_FAMILYAPI may be #define'd here.
- */
- /* -------------------------------------------------------------------------- */
- /* Define OAK_OS2 if you want to compile for OS/2. */
- /* #define OAK_OS2 */
-
- /* Define OAK_FAMILYAPI for OS/2 family mode mouse support. */
- /* #define OAK_FAMILYAPI */
-
- /* Automatically take care of #definine'ing TC */
- #ifdef __TURBOC__
- # define TC
- #endif
-
- /* Automatically do MetaWare High C */
- #ifdef __HIGHC__
- # define MW
- #endif
-
- /* Automatically take care of #definine'ing LC */
- #ifdef LATTICE
- # define LC
- #endif
-
- #ifdef M5 /* Microsoft C version 5.x Dependent Code */
- # define oak_notused(var) var
- # ifndef OAK_OS2
- # define OAK_DOS TRUE
- # endif
- typedef unsigned char byte;
- typedef int boolean;
-
- #endif
-
- #ifdef TC /* Turbo C Dependent Code */
- # define oak_notused(var) (var = var)
- # define OAK_DOS TRUE
- typedef unsigned char byte;
- typedef int boolean;
- #endif
-
- #ifdef Z1 /* Zortech C Dependent Code */
- # define oak_notused(var) (var = var)
- # define OAK_DOS TRUE
- typedef unsigned char byte;
- typedef int boolean;
- #endif
-
- #ifdef MW /* Meta Ware High C Dependent Code */
- # define OAK_DOS TRUE
- # define OAK_DOS386 TRUE
- # define oak_notused(var) (var = var)
- # define NO_PROTO
- # define OSTATIC
- typedef unsigned char byte;
- typedef int boolean;
- /* Note: make sure void's, size_t's, proto style are right for this compiler */
- #endif
-
- #ifdef LC /* Lattice C Dependent Code */
- # ifndef OAK_OS2
- # define OAK_DOS TRUE
- # endif
- # define oak_notused(var) (var = 0)
- # define SEEK_SET 0
- # define SEEK_CUR 1
- # define SEEK_END 2
- # define SIZE_T unsigned
- # define TIME_T long
- typedef unsigned char byte;
- typedef int boolean;
- #endif
-
- #ifdef OAK_UNIX /* UNIX Dependent Code */
- # define oak_notused(var)
- # define NO_PROTO
- # define SEEK_SET 0
- # define SEEK_CUR 1
- # define SEEK_END 2
- # define SIZE_T unsigned
- # define TIME_T long
- typedef unsigned char byte;
- typedef int boolean;
- #endif
-
- #ifdef OAK_APOLLO
- # define oak_notused(var)
- # define SEEK_SET 0
- # define SEEK_CUR 1
- # define SEEK_END 2
- # define SIZE_T unsigned
- # define TIME_T long
- typedef unsigned char byte;
- # include </sys/ins/base.ins.c> /* for boolean type definition */
- #endif
-
- #ifdef OAK_SUN /* SUN Dependent Code */
- #endif
-
- #ifdef OAK_VMS /* VMS Dependent Code */
- # define oak_notused(var)
- # define NO_PROTO
- # define SEEK_SET 0
- # define SEEK_CUR 1
- # define SEEK_END 2
- # define SIZE_T unsigned
- # define TIME_T long
- typedef unsigned char byte;
- typedef int boolean;
-
- # define OEXTERN globalref
- # define OGLOBAL globaldef
- #endif
-
- #ifdef OAK_STRATUS /* STRATUS Dependent Code */
- # define oak_notused(var)
- # define NO_PROTO
- typedef unsigned char byte;
- typedef int boolean;
- #endif
-
- #ifdef OAK_DG /* Data General C Dependent Code */
- # define oak_notused(var)
- # define SEEK_SET 0
- # define NO_PROTO
- typedef unsigned char byte;
- typedef int boolean;
- #endif
- /* -------------------------------------------------------------------------- */
-
- /* proto-typing macros */
- /* These macros are used in all oakland prototypes.
- If prototyping is not available on a system then
- they macro out to nothing
- */
-
- #ifndef NO_PROTO
- /* prototyping available */
-
- #define _arg1(a) a
- #define _arg2(a,b) a,b
- #define _arg3(a,b,c) a,b,c
- #define _arg4(a,b,c,d) a,b,c,d
- #define _arg5(a,b,c,d,e) a,b,c,d,e
- #define _arg6(a,b,c,d,e,f) a,b,c,d,e,f
- #define _arg7(a,b,c,d,e,f,g) a,b,c,d,e,f,g
- #define _arg8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h
- #define _arg9(a,b,c,d,e,f,g,h,i) a,b,c,d,e,f,g,h,i
- #define _arg10(a,b,c,d,e,f,g,h,i,j) a,b,c,d,e,f,g,h,i,j
-
- #else
- /* prototyping not available */
-
- #define _arg1(a)
- #define _arg2(a,b)
- #define _arg3(a,b,c)
- #define _arg4(a,b,c,d)
- #define _arg5(a,b,c,d,e)
- #define _arg6(a,b,c,d,e,f)
- #define _arg7(a,b,c,d,e,f,g)
- #define _arg8(a,b,c,d,e,f,g,h)
- #define _arg9(a,b,c,d,e,f,g,h,i)
- #define _arg10(a,b,c,d,e,f,g,h,i,j)
-
- #endif
- /* -------------------------------------------------------------------------- */
-
- /* data types and constants */
- #ifndef TRUE
- #define TRUE 1
- #define FALSE 0
- #endif
-
- #ifndef FNULL
- #define FNULL 0 /* NULL for function pointers */
- #endif
-
- #ifndef VOID
- #define VOID void /* define VOID to char on older systems */
- #endif
-
- #ifndef SIZE_T
- #define SIZE_T size_t /* define SIZE_T to unsigned on older systems */
- #endif
-
- #ifndef TIME_T
- #define TIME_T time_t /* define TIME_T to long on older systems */
- #endif
-
- /* defines for compilers that don't handle static structures correctly */
- #ifndef OEXTERN
- # define OEXTERN extern
- #endif
-
- #ifndef OGLOBAL
- # define OGLOBAL
- #endif
-
- #ifndef OSTATIC
- # define OSTATIC static
- #endif
-
- typedef void (*VOID_FPTR)(_arg1(void));
-
- /** Reentrancy protection functions **/
- #ifdef OAK_OS2
- # define hard_Claim() hard_ProtectDmgr()
- # define hard_Release() hard_UnProtectDmgr()
- #else
- # define hard_Claim()
- # define hard_Release()
- #endif
-
- /*** useful constants ***/
-
- #define OAK_HERE 0
- #define OAK_UP -1
- #define OAK_DOWN -2
- #define OAK_RIGHT -3
- #define OAK_LEFT -4
-
- /*** use fancy characters in borders? ***/
- #ifdef OAK_DOS
- # define BORDER_CHARS
- #endif
-
- #ifdef OAK_OS2
- # define BORDER_CHARS
- #endif
-
- /* -------------------------------------------------------------------------- */
-
-