/*
Copyright (c) 1993 Xerox Corporation. All rights reserved.
*/
/*
$Id$
$Date$
*/
/* Chauser, October 28, 1993 3:29 pm PDT */
#ifndef ←←PCR←errno←h
#define ←←PCR←errno←h 1
/*
* Standard POSIX errno values
*/
#include <host/errno.h>
/*
* per-thread error number
*/
#ifndef PCR←GetErrnoAddress
extern int (*(PCR←GetErrnoAddress(void)));
#endif
#define PCR←GetErrno() (*(PCR←GetErrnoAddress()))
#define PCR←SetErrno(err) (*(PCR←GetErrnoAddress())) = (err)
/*
* errno values from PCR itself
*/
#define PCR←←EPCRBASE 1024
#define PCR←EPCR(x) (PCR←←EPCRBASE+(x))
#define PCR←EINTERNAL PCR←EPCR(0) /* should never be seen */
#define PCR←ETIMEDOUT PCR←EPCR(1)
/*
* Human readable error messages
*/
extern void
PCR←perror(const char *s);
/*
Print an error message (constructd from s and errno) on stderr.
This function is also declared in stdio.h.
*/
extern char *
PCR←strerror(int n);
/*
Return error message appropriate for abs(errno), in a static buffer.
Return catchall message if errno is out of range.
This function is also declared in string.h.
*/
#ifndef PCR←NO←RENAME
# undef errno
# define errno (*(PCR←GetErrnoAddress()))
# undef perror
# define perror PCR←perror
# undef strerror
# define strerror PCR←strerror
#endif /* !PCR←NO←RENAME */
#endif /* !←←PCR←errno←h */
/*
$Log$
*/