/*
Copyright (c) 1993 Xerox Corporation.  All rights reserved.
*/
/*
$Id$

$Date$
 *
 * PCR OS description
 */

#ifndef ←←PCR←OS←h
#define ←←PCR←OS←h 1

/*
 * OS names -- define *only* the one(s) that apply.
 */

#define PCR←OS←SUNOS4←1
#define PCR←OS←name		"SUNOS4←1"

#   define PCR←OS←SUNOS4
#   define PCR←OS←SUNOS

/*
 *
 * Dimensions of "generic" OS variation ...
 *
 *   these should *all* be defined with appropriate values.
 */


/*
 * I/O
 */

/* the evil-but-ubiquitous ioctl */
#define PCR←OS←IOCTL		1

/* standard SV poll */
#define PCR←OS←POLL		1
#   define PCR←OS←ENOSTR	1

/* standard BSD select */
#define PCR←OS←SELECT		1

/* generate SIGPOLL on I/O ready */
#define PCR←OS←SIGPOLL		1
#   define PCR←OS←IOCTL←SETSIG	1

/* generate SIGIO on I/O ready */
#define PCR←OS←SIGIO		1
#   define PCR←OS←FCNTL←FASYNC	1
#   define PCR←OS←FCNTL←F←SETOWN	1

/* has SIGURG -- treat this like SIGIO/SIGPOLL */
#define PCR←OS←SIGURG		1

/* has non-POSIX error produced by some non-blocking I/O */
/* (must be numerically distinct from EAGAIN) */
#define PCR←OS←EWOULDBLOCK	1

/* has (f)sync */
#define PCR←OS←SYNC		1
#define PCR←OS←FSYNC		1

/* has fchmod */
#define PCR←OS←FCHMOD		1

/* has fchown */
#define PCR←OS←FCHOWN		1

/* has (f)truncate */
#define PCR←OS←TRUNCATE		1
#define PCR←OS←FTRUNCATE	1

/* has symbolic links */
#define PCR←OS←SYMLINK		1
#define PCR←OS←READLINK		1
#   define PCR←OS←ELOOP		1

/* has BSD compatible socket interface */
#define PCR←OS←SOCKET		1
#   define PCR←OS←EINPROGRESS	1
#   define PCR←OS←EALREADY	1
#   define PCR←OS←EISCONN	1

/* Sys V streams stuff */
#define PCR←OS←STREAMS		1

/*
 * job control
 */

/* can generate SIGCHLD on child termination */
#define PCR←OS←SIGCHLD		1

/*
 * shared memory / protection
 */

/* fixed page size */
#define PCR←OS←PAGESIZE		0

/* dynamic page size */
#define PCR←OS←GETPAGESIZE	1
#define PCR←OS←SC←PAGESIZE	0

/* BSD shm stuff */
#define PCR←OS←MPROTECT		1
#define PCR←OS←MMAP		1

/* Sys V shm stuff */
#define PCR←OS←SHMOPS		1

/*
 * allowable stack location
 */

#define PCR←OS←SP←IN←HEAP	1


/*
 * timer
 */

#define PCR←OS←ITIMER		1
/* should implement use of POSIX real time stuff preferentially */

/*
 * strerror
 */

#define PCR←OS←STRERROR		0


/*
 * dynamic loading/shared library interface ...
 */

#define PCR←OS←DLOPEN			1
    /* SVR4-like dlopen() */
#   define PCR←OS←DLOPEN←STRCMP		1
    /* simple string compare inhibits second dlopen() */


/*
 * symbol name conventions
 */
#define PCR←OS←CSYMCVT←ID		0
    /* ld symbol identical to C external */
#define PCR←OS←CSYMCVT←PREPEND←←	1
    /* ld symbol is C external prefixed by '←' */


/*
 * Default incremental loader id
 */

#define	PCR←OS←DEFAULT←ILRDR←DLOPEN	1
#undef	PCR←OS←DEFAULT←ILRDR←ADOTOUT

#endif /* !←←PCR←OS←h */

/*
$Log$
*/