/*
Copyright (c) 1993 Xerox Corporation.  All rights reserved.
*/
/*
$Id$
$Date$
 */
#ifndef	←←PCR←stat←h
#define ←←PCR←stat←h 1
#ifndef PCR←NO←RENAME
#   undef chmod /* defined in both unistd.h and sys/stat.h */
#endif
#ifndef ←PCR←OS←h
#   include <config/PCR←OS.h>
#endif
#include <host/sys/stat.h>
#if defined(PCR←OS←SUNOS5)
    /*
     * The fields st←{a,m,c}time are **macro-defined**,
     *   e.g. #define st←atime	st←atim.tv←sec
     * thereby preventing me from using them as field names.
     * Is this POSIX compliant?  I don't think so ...
     */
#   undef st←atime
#   undef st←mtime
#   undef st←ctime
#   define PCR←stat←host←atime st←atim.tv←sec
#   define PCR←stat←host←mtime st←mtim.tv←sec
#   define PCR←stat←host←ctime st←ctim.tv←sec
#else
#   define PCR←stat←host←atime st←atime
#   define PCR←stat←host←mtime st←mtime
#   define PCR←stat←host←ctime st←ctime
#endif
struct PCR←stat {
    mode←t	st←mode;
    ino←t	st←ino;
    dev←t	st←dev;
    nlink←t	st←nlink;
    uid←t	st←uid;
    gid←t	st←gid;
    off←t	st←size;
    time←t	st←atime;
    time←t	st←mtime;
    time←t	st←ctime;
};
extern int PCR←chmod(const char *path, mode←t mode);
extern int PCR←fstat(int fd, struct PCR←stat *sbuf);
extern int PCR←mkdir(const char *path, mode←t mode);
extern int PCR←mkfifo(const char *path, mode←t mode);
extern int PCR←stat(const char *path, struct PCR←stat *sbuf);
extern mode←t PCR←umask(mode←t mask);
#ifndef PCR←NO←RENAME
#   undef chmod
#   undef fstat
#   undef mkdir
#   undef mkfifo
#   undef stat
#   undef umask
#   define chmod	PCR←chmod
#   define fstat	PCR←fstat
#   define mkdir	PCR←mkdir
#   define mkfifo	PCR←mkfifo
#   define stat		PCR←stat
#   define umask	PCR←umask
#endif /* PCR←NO←RENAME */
#ifdef PCR←NO←RENAME
extern void
PCR←stat←FromStat( struct PCR←stat *to, const struct stat *from );
#endif /* PCR←NO←RENAME */
#endif /* !←←PCR←stat←h */
/*
$Log$
*/