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