/* Copyright (c) 1993 Xerox Corporation. All rights reserved. */ /* $Id$ $Date$ */ /* Chauser, October 28, 1993 3:49 pm PDT */ #ifndef __PCR_StdTypes_h #define __PCR_StdTypes_h 1 #define PCR_MAJORVERSION 2 #define PCR_MINORVERSION 0 /* * Boolean */ typedef long PCR_Bool; # define PCR_Bool__false ((PCR_Bool)(0)) # define PCR_Bool_false PCR_Bool__false # define PCR_Bool__true ((PCR_Bool)(1)) # define PCR_Bool_true PCR_Bool__true /* * Pointers */ #ifndef NULL # define NULL 0 #endif #define NIL 0 typedef void * PCR_Ref; /* * ARCH-DEPENDENT: * * The following definitions for PCR_Any make the (mild) * machine-dependent assumption that the heap can't be * too close to either end of the address space. * * Note also that if a PCR_Any is assumed to contain either * a PCR_Ref or a small integer, we are constrained to use * a *converservative* garbage collector. */ typedef void * PCR_Any; #define PCR_Any__IsUnsigned(x) \ ( ((unsigned)(x)) < 4096 ) #define PCR_Any_IsUnsigned PCR_Any__IsUnsigned #define PCR_Any__IsInt(x) \ ( (((int)(x)) < 4096) && (((int)(x)) > (-4096)) ) #define PCR_Any_IsInt PCR_Any__IsInt #define PCR_Any__IsRef(x) ( ((x) == NIL) || (!PCR_Any_IsInt(x)) ) /* * Procedures / functions */ typedef void (* PCR_ProcPtr)(); /* * Results of (many) PCR system calls * * >= 0: success * < 0: failure, value is -(errno value) */ typedef long PCR_ERes; # define PCR_ERes__okay ((PCR_ERes)(0)) # define PCR_ERes_okay PCR_ERes__okay # define PCR_ERes__IsRes(eres) ((eres) >= 0) # define PCR_ERes_IsRes PCR_ERes__IsRes # define PCR_ERes__IsErr(eres) ((eres) < 0) # define PCR_ERes_IsErr PCR_ERes__IsErr # define PCR_ERes__FromErr(err) ((PCR_ERes)(-(err))) # define PCR_ERes_FromErr PCR_ERes__FromErr # define PCR_ERes__ToErr(eres) ((long)(-(eres))) # define PCR_ERes_ToErr PCR_ERes__ToErr # define PCR_ERes__FromRes(res) ((PCR_ERes)(res)) # define PCR_ERes_FromRes PCR_ERes__FromRes # define PCR_ERes__ToRes(eres) ((long)(eres)) # define PCR_ERes_ToRes PCR_ERes__ToRes /* * Timeouts */ typedef unsigned long PCR_Msec; # define PCR_Msec__waitForever ((PCR_Msec)(-1)) # define PCR_Msec_waitForever PCR_Msec__waitForever # define PCR_waitForever PCR_Msec_waitForever # define PCR_Msec__dontWait ((PCR_Msec)(0)) # define PCR_Msec_dontWait PCR_Msec__dontWait # define PCR_dontWait PCR_Msec_dontWait # define PCR_Msec__Between(a,b) (((long)(b)) - ((long)(a))) # define PCR_Msec_Between PCR_Msec__Between #endif /* !__PCR_StdTypes_h */ /* $Log$ */