This is stat.h in view mode; [Download] [Up]
/* * Mach Operating System * Copyright (c) 1989 Carnegie-Mellon University * Copyright (c) 1988 Carnegie-Mellon University * Copyright (c) 1987 Carnegie-Mellon University * All rights reserved. The CMU software License Agreement specifies * the terms and conditions for use and redistribution. */ /* * HISTORY * $Log: stat.h,v $ * 7-Jan-93 Mac Gillon (mgillon) at NeXT * Integrated POSIX support * * 22-Feb-90 Gregg Kellogg (gk) at NeXT * Added back in STAT_BSIZE, STAT_BSHIFT, btosb, and sbtob * * Revision 2.5 89/04/22 15:32:24 gm0w * Removed MACH_VFS changes. * [89/04/14 gm0w] * * Revision 2.4 89/03/09 22:07:51 rpd * More cleanup. * * Revision 2.3 89/02/25 17:56:28 gm0w * Made items previously conditional on CMUCS and MACH_VFS * be unconditional. * [89/02/14 mrt] * * Revision 2.2 89/01/18 01:19:13 jsb * Vnode support: define S_IFIFO. * [89/01/13 jsb] * * 06-Jan-88 Jay Kistler (jjk) at Carnegie Mellon University * Made file reentrant. Added declarations for __STDC__. * * 11-Aug-87 Peter King (king) at NeXT * SUN_VFS: Added S_IFIFO for nfs routines (nfs_subr.c) * * 11-Dec-86 Jonathan J. Chew (jjc) at Carnegie-Mellon University * Added a variation of the stat structure that explicitly puts * in padding where the Vax and RT compilers implicitly put it. * This is for the Sun which does not align long fields on a long * boundary. * * 25-Jan-86 Avadis Tevanian (avie) at Carnegie-Mellon University * Upgraded to 4.3. * */ /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. * * @(#)stat.h 7.1 (Berkeley) 6/4/86 */ #ifndef _SYS_STAT_H_ #define _SYS_STAT_H_ #ifndef KERNEL #include <standards.h> #endif #import <sys/types.h> #if defined(_POSIX_SOURCE) || defined(_NEXT_SOURCE) struct stat { dev_t st_dev; /* File device number */ ino_t st_ino; /* File serial number */ #if defined(_POSIX_SOURCE) mode_t st_mode; /* File type and access */ /* permissions */ nlink_t st_nlink; /* File link count */ #else unsigned short st_mode; short st_nlink; #endif /* _POSIX_SOURCE */ uid_t st_uid; /* File owner's user ID */ gid_t st_gid; /* File owner's group ID */ dev_t st_rdev; off_t st_size; /* File size in bytes */ /* (for regular file only) */ time_t st_atime; /* Time of last file access */ int st_spare1; time_t st_mtime; /* Time of last file */ /* modification */ int st_spare2; time_t st_ctime; /* Time of last file status */ /* change */ int st_spare3; long st_blksize; long st_blocks; long st_spare4[2]; }; #endif /* _POSIX_SOURCE || _NEXT_SOURCE */ #ifdef __sun__ /* * Explicitly padded stat structure */ struct padded_stat { dev_t st_dev; short st_shortpad1; /* pad so next field starts on long bound. */ ino_t st_ino; unsigned short st_mode; short st_nlink; uid_t st_uid; gid_t st_gid; dev_t st_rdev; short st_shortpad2; /* pad so next field starts on long bound. */ off_t st_size; time_t st_atime; int st_spare1; time_t st_mtime; int st_spare2; time_t st_ctime; int st_spare3; long st_blksize; long st_blocks; long st_spare4[2]; }; #endif #if defined(_POSIX_SOURCE) || defined(_NEXT_SOURCE) #define _S_IFMT 0170000 /* type of file */ #define _S_IFDIR 0040000 /* directory */ #define _S_IFCHR 0020000 /* character special */ #define _S_IFBLK 0060000 /* block special */ #define _S_IFREG 0100000 /* regular */ #define _S_IFLNK 0120000 /* symbolic link */ #define _S_IFSOCK 0140000 /* socket */ #define _S_IFIFO 0010000 /* fifo (SUN_VFS) */ #define _S_IRUSR 0000400 /* read permission, */ /* owner */ #define _S_IWUSR 0000200 /* write permission, */ /* owner */ #define _S_IXUSR 0000100 /* execute/search */ /* permission, owner */ #define S_ISGID 0002000 /* set group id on */ /* execution */ #define S_ISUID 0004000 /* set user id on */ /* execution */ #endif /* _POSIX_SOURCE || _NEXT_SOURCE */ #ifdef _POSIX_SOURCE #define S_IRUSR _S_IRUSR /* read permission, owner */ #define S_IRGRP 0000040 /* read permission, group */ #define S_IROTH 0000004 /* read permission, other */ #define S_IWUSR _S_IWUSR /* write permission, owner */ #define S_IWGRP 0000020 /* write permission, group */ #define S_IWOTH 0000002 /* write permission, other */ #define S_IXUSR _S_IXUSR /* execute/search permission, */ /* owner */ #define S_IXGRP 0000010 /* execute/search permission, */ /* group */ #define S_IXOTH 0000001 /* execute/search permission, */ /* other */ #define S_IRWXU 0000700 /* read, write, execute */ /* permissions, owner */ #define S_IRWXG 0000070 /* read, write, execute */ /* permissions, group */ #define S_IRWXO 0000007 /* read, write, execute */ /* permissions, other */ #define S_ISBLK(mode) (((mode) & (_S_IFMT)) == (_S_IFBLK)) #define S_ISCHR(mode) (((mode) & (_S_IFMT)) == (_S_IFCHR)) #define S_ISDIR(mode) (((mode) & (_S_IFMT)) == (_S_IFDIR)) #define S_ISFIFO(mode) (((mode) & (_S_IFMT)) == (_S_IFIFO)) #define S_ISREG(mode) (((mode) & (_S_IFMT)) == (_S_IFREG)) #endif /* _POSIX_SOURCE */ #ifdef _NEXT_SOURCE #define S_IFMT _S_IFMT /* type of file */ #define S_IFDIR _S_IFDIR /* directory */ #define S_IFCHR _S_IFCHR /* character special */ #define S_IFBLK _S_IFBLK /* block special */ #define S_IFREG _S_IFREG /* regular */ #define S_IFLNK _S_IFLNK /* symbolic link */ #define S_IFSOCK _S_IFSOCK /* socket */ #define S_IFIFO _S_IFIFO /* fifo (SUN_VFS) */ #define S_ISVTX 0001000 /* save swapped text */ /* even after use */ #define S_IREAD _S_IRUSR /* read permission, */ /* owner */ #define S_IWRITE _S_IWUSR /* write permission, */ /* owner */ #define S_IEXEC _S_IXUSR /* execute/search */ /* permission, owner */ #define STAT_BSIZE 512 /* Size of blocks reported in */ /* st_blocks */ #define STAT_BSHIFT 9 /* log2(STAT_BSIZE) */ #define btosb(bytes) ((unsigned)(bytes) >> STAT_BSHIFT) /* calculates (bytes / STAT_BSIZE) */ #define sbtob(db) ((unsigned)(db) << STAT_BSHIFT) /* calculates (db * STAT_BSIZE) */ #endif /* _NEXT_SOURCE */ #ifndef KERNEL #ifdef _NEXT_SOURCE #ifdef __STDC__ extern int lstat(const char *, struct stat *); #else extern int lstat(); #endif /* __STDC__ */ #endif /* _NEXT_SOURCE */ #ifdef _POSIX_SOURCE #ifdef __STDC__ extern int chmod(const char *path, mode_t mode); extern int mkdir(const char *path, mode_t mode); extern int mkfifo(const char *path, mode_t mode); extern mode_t umask(mode_t cmask); #else extern int chmod(); extern int mkdir(); extern int mkfifo(); extern mode_t umask(); #endif /* __STDC__ */ #endif /* _POSIX_SOURCE */ #if defined(_POSIX_SOURCE) || defined(_NEXT_SOURCE) #ifdef __STDC__ extern int fstat(int fildes, struct stat *buf); extern int stat(const char *path, struct stat *buf); #else extern int fstat(); extern int stat(); #endif /* __STDC__ */ #endif /* _POSIX_SOURCE || _NEXT_SOURCE */ #endif /* !KERNEL */ #endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.