/*
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←SUNOS5←2
#define PCR←OS←name		"SUNOS5←2"

#   define PCR←OS←SUNOS5
#   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			0 /* alias for SIGPOLL */
#   define PCR←OS←FCNTL←FASYNC		0
#   define PCR←OS←FCNTL←F←SETOWN	1 /* sockets o(w)nly */

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

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

/* 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	0
#define PCR←OS←SC←PAGESIZE	1

/* 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		1 /* ??? */


/*
 * 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		1
    /* ld symbol identical to C external */
#define PCR←OS←CSYMCVT←PREPEND←←	0
    /* ld symbol is C external prefixed by '←' */



/*
 * Default incremental loader id
 */

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

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

/*
$Log$
*/