/*
Copyright (c) 1993 Xerox Corporation. All rights reserved.
*/
/*
$Id$
$Date$
*/
#ifndef ←←PCR←StdDefs←h
#define ←←PCR←StdDefs←h 1
#include <config/PCR←StdTypes.h>
#include <config/PCR←Arch.h>
/*
* Rounding
*/
extern const unsigned long PCR←defaultAlignMASK;
extern unsigned long
PCR←RoundUp(unsigned long x, unsigned long mask);
#define PCR←←RoundUp(x,mask) \
(((x) + (mask)) & (~(mask)))
#define PCR←RoundUp PCR←←RoundUp
extern unsigned long
PCR←RoundDown(unsigned long x, unsigned long mask);
#define PCR←←RoundDown(x,mask) \
((x) & (~(mask)))
#define PCR←RoundDown PCR←←RoundDown
/*
* Host-network byte order conversions
*/
extern unsigned short
PCR←hton16(unsigned short);
extern unsigned short
PCR←ntoh16(unsigned short);
extern unsigned long
PCR←hton32(unsigned long);
extern unsigned long
PCR←ntoh32(unsigned long);
#if PCR←Arch←ENDIAN3210 /* big-endian */
# define PCR←←hton16(x) ((unsigned short)(x))
# define PCR←hton16 PCR←←hton16
# define PCR←←ntoh16(x) ((unsigned short)(x))
# define PCR←ntoh16 PCR←←ntoh16
# define PCR←←hton32(x) ((unsigned long)(x))
# define PCR←hton32 PCR←←hton32
# define PCR←←ntoh32(x) ((unsigned long)(x))
# define PCR←ntoh32 PCR←←ntoh32
#else /* not big-endian */
/* they're out-of-line, sigh */
#endif /* PCR←Arch←ENDIAN3210 */
/*
* (im)mutability testing.
*
* On some systems/arguments both the following may be FALSE,
* meaning "don't know".
*/
extern PCR←Bool
PCR←IsMutable(const void *p);
/*
PCR←IsMutable(p) => *p may be written.
*/
extern PCR←Bool
PCR←IsImmutable(const void *p);
/*
PCR←IsImmutable(p) => *p guaranteed not to change.
*/
#endif /* !←←PCR←StdDefs←h */
/*
$Log$
*/