/*
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$
*/