|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 4.1.0 ! 3: * Copyright (c) 1982, 1993 by Mark Williams Company. ! 4: * All rights reserved. May not be copied without permission. ! 5: -lgl) */ ! 6: /* ! 7: * /usr/include/sys/stat.h ! 8: * Revised Sun Jun 20 1993 for POSIX.1, prototypes -- NB ! 9: */ ! 10: ! 11: #ifndef __SYS_STAT_H__ ! 12: #define __SYS_STAT_H__ ! 13: ! 14: #include <common/ccompat.h> ! 15: ! 16: #if _POSIX_SOURCE || _DDI_DKI ! 17: ! 18: #include <common/__time.h> ! 19: #include <common/__off.h> ! 20: #include <common/_fsize.h> ! 21: #include <common/_uid.h> ! 22: ! 23: #else ! 24: ! 25: #include <common/_time.h> ! 26: #include <sys/types.h> ! 27: ! 28: #endif ! 29: ! 30: #include <common/_imode.h> ! 31: ! 32: /* ! 33: * Structure returned by stat () and fstat () system calls. ! 34: */ ! 35: ! 36: struct stat { ! 37: __dev_t st_dev; /* Device */ ! 38: __ino_t st_ino; /* Inode number */ ! 39: __mode_t st_mode; /* Mode */ ! 40: __nlink_t st_nlink; /* Link count */ ! 41: __uid_t st_uid; /* User id */ ! 42: __gid_t st_gid; /* Group id */ ! 43: __dev_t __NON_POSIX (st_rdev); ! 44: /* Real device */ ! 45: __off_t st_size; /* Size */ ! 46: __time_t st_atime; /* Access time */ ! 47: __time_t st_mtime; /* Modify time */ ! 48: __time_t st_ctime; /* Change time */ ! 49: }; ! 50: ! 51: /* ! 52: * Mode macros. Note that the following definitions are required to be ! 53: * macros, but are /not/ constrained to be integral constant expressions ! 54: * suitable for use in #if-expressions. ! 55: */ ! 56: ! 57: #define S_IFMT __IFMT /* Type */ ! 58: #define S_IFDIR __IFDIR /* Directory */ ! 59: #define S_IFCHR __IFCHR /* Character special */ ! 60: #define S_IFPIP __IFPIP /* Pipe */ ! 61: #define S_IFIFO __IFFIFO /* Pipe */ ! 62: #define S_IFBLK __IFBLK /* Block special */ ! 63: #define S_IFREG __IFREG /* Regular */ ! 64: ! 65: #define S_IFSOCK 0xC000 /* Socket -- UNIMPLEMENTED */ ! 66: #define S_IFMPC 0x3000 /* Multiplexed character special */ ! 67: #define S_IFMPB 0x7000 /* Multiplexed block special */ ! 68: ! 69: #define S_ISUID __ISUID /* Set user id on execution */ ! 70: #define S_ISGID __ISGID /* Set group id on execution */ ! 71: #define S_ISVTX __ISVTX /* Save swapped text even after use */ ! 72: ! 73: #define S_IREAD __IREAD /* Read permission, owner */ ! 74: #define S_IWRITE __IWRITE /* Write permission, owner */ ! 75: #define S_IEXEC __IEXEC /* Execute/search permission, owner */ ! 76: #define S_IRWXU __IRWXU /* RWX permission, owner */ ! 77: #define S_IRUSR __IRUSR /* Read permission, owner */ ! 78: #define S_IWUSR __IWUSR /* Write permission, owner */ ! 79: #define S_IXUSR __IXUSR /* Execute/search permission, owner */ ! 80: #define S_IRWXG __IRWXG /* RWX permission, group */ ! 81: #define S_IRGRP __IRGRP /* Read permission, group */ ! 82: #define S_IWGRP __IWGRP /* Write permission, group */ ! 83: #define S_IXGRP __IXGRP /* Execute/search permission, group */ ! 84: #define S_IRWXO __IRWXO /* RWX permission, other */ ! 85: #define S_IROTH __IROTH /* Read permission, other */ ! 86: #define S_IWOTH __IWOTH /* Write permission, other */ ! 87: #define S_IXOTH __IXOTH /* Execute/search permission, other */ ! 88: ! 89: /* Mode test macros. */ ! 90: ! 91: #define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO) ! 92: #define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) ! 93: #define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) ! 94: #define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) ! 95: #define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) ! 96: #define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) ! 97: ! 98: __EXTERN_C_BEGIN__ ! 99: ! 100: int chmod __PROTO ((__CONST__ char * _path, ! 101: __mode_t _mode)); ! 102: int mkdir __PROTO ((__CONST__ char * _path, ! 103: __mode_t _mode)); ! 104: int fstat __PROTO ((int _fildes, struct stat * _buf)); ! 105: int stat __PROTO ((__CONST__ char * _path, ! 106: struct stat * _buf)); ! 107: __mode_t umask __PROTO ((__mode_t _mask)); ! 108: ! 109: #if 0 /* not supported */ ! 110: int mkfifo __PROTO ((__CONST__ char * _path, ! 111: __mode_t _mode)); ! 112: #endif ! 113: ! 114: __EXTERN_C_END__ ! 115: ! 116: ! 117: #if ! _DDI_DKI ! 118: ! 119: /* ! 120: * Nonexistent device. ! 121: * Must compare correctly with dev_t, which is an unsigned short in the old ! 122: * Coherent device-driver system. ! 123: */ ! 124: ! 125: #ifndef NODEV ! 126: # define NODEV ((__dev_t) -1) ! 127: #endif ! 128: ! 129: ! 130: /* ! 131: * Functions. ! 132: */ ! 133: #define major(dev) (((dev) >> 8) & 0xFF) ! 134: #define minor(dev) ((dev) & 0xFF) ! 135: #define makedev(m1, m2) ((__dev_t) (((m1) << 8) | (m2))) ! 136: ! 137: #endif /* ! _DDI_DKI */ ! 138: ! 139: #endif /* ! defined (__SYS_STAT_H__) */ ! 140: ! 141: /* end of sys/stat.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.