Annotation of Net2/sys/stat.h, revision 1.1.1.1

1.1       root        1: /*-
                      2:  * Copyright (c) 1982, 1986, 1989 The Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution and use in source and binary forms, with or without
                      6:  * modification, are permitted provided that the following conditions
                      7:  * are met:
                      8:  * 1. Redistributions of source code must retain the above copyright
                      9:  *    notice, this list of conditions and the following disclaimer.
                     10:  * 2. Redistributions in binary form must reproduce the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer in the
                     12:  *    documentation and/or other materials provided with the distribution.
                     13:  * 3. All advertising materials mentioning features or use of this software
                     14:  *    must display the following acknowledgement:
                     15:  *     This product includes software developed by the University of
                     16:  *     California, Berkeley and its contributors.
                     17:  * 4. Neither the name of the University nor the names of its contributors
                     18:  *    may be used to endorse or promote products derived from this software
                     19:  *    without specific prior written permission.
                     20:  *
                     21:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     22:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     23:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     24:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     25:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     26:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     27:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     28:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     29:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     30:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     31:  * SUCH DAMAGE.
                     32:  *
                     33:  *     @(#)stat.h      7.11 (Berkeley) 3/3/91
                     34:  */
                     35: 
                     36: struct stat
                     37: {
                     38:        dev_t   st_dev;                 /* inode's device */
                     39:        ino_t   st_ino;                 /* inode's number */
                     40:        mode_t  st_mode;                /* inode protection mode */
                     41:        nlink_t st_nlink;               /* number of hard links */
                     42:        uid_t   st_uid;                 /* user ID of the file's owner */
                     43:        gid_t   st_gid;                 /* group ID of the file's group */
                     44:        dev_t   st_rdev;                /* device type */
                     45:        off_t   st_size;                /* file size, in bytes */
                     46:        time_t  st_atime;               /* time of last access */
                     47:        long    st_spare1;
                     48:        time_t  st_mtime;               /* time of last data modification */
                     49:        long    st_spare2;
                     50:        time_t  st_ctime;               /* time of last file status change */
                     51:        long    st_spare3;
                     52:        long    st_blksize;             /* optimal blocksize for I/O */
                     53:        long    st_blocks;              /* blocks allocated for file */
                     54:        u_long  st_flags;               /* user defined flags for file */
                     55:        u_long  st_gen;                 /* file generation number */
                     56: };
                     57: 
                     58: #define        S_ISUID 0004000                 /* set user id on execution */
                     59: #define        S_ISGID 0002000                 /* set group id on execution */
                     60: #ifndef _POSIX_SOURCE
                     61: #define        S_ISTXT 0001000                 /* sticky bit */
                     62: #endif
                     63: 
                     64: #define        S_IRWXU 0000700                 /* RWX mask for owner */
                     65: #define        S_IRUSR 0000400                 /* R for owner */
                     66: #define        S_IWUSR 0000200                 /* W for owner */
                     67: #define        S_IXUSR 0000100                 /* X for owner */
                     68: 
                     69: #ifndef _POSIX_SOURCE
                     70: #define        S_IREAD         S_IRUSR
                     71: #define        S_IWRITE        S_IWUSR
                     72: #define        S_IEXEC         S_IXUSR
                     73: #endif
                     74: 
                     75: #define        S_IRWXG 0000070                 /* RWX mask for group */
                     76: #define        S_IRGRP 0000040                 /* R for group */
                     77: #define        S_IWGRP 0000020                 /* W for group */
                     78: #define        S_IXGRP 0000010                 /* X for group */
                     79: 
                     80: #define        S_IRWXO 0000007                 /* RWX mask for other */
                     81: #define        S_IROTH 0000004                 /* R for other */
                     82: #define        S_IWOTH 0000002                 /* W for other */
                     83: #define        S_IXOTH 0000001                 /* X for other */
                     84: 
                     85: #ifndef _POSIX_SOURCE
                     86: #define        S_IFMT   0170000                /* type of file */
                     87: #define        S_IFIFO  0010000                /* named pipe (fifo) */
                     88: #define        S_IFCHR  0020000                /* character special */
                     89: #define        S_IFDIR  0040000                /* directory */
                     90: #define        S_IFBLK  0060000                /* block special */
                     91: #define        S_IFREG  0100000                /* regular */
                     92: #define        S_IFLNK  0120000                /* symbolic link */
                     93: #define        S_IFSOCK 0140000                /* socket */
                     94: 
                     95: #define        S_ISVTX  0001000                /* save swapped text even after use */
                     96: 
                     97: #define S_BLKSIZE      512             /* block size used in the stat struct */
                     98: 
                     99:                                        /* 0666 */
                    100: #define        DEFFILEMODE     (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
                    101: #endif
                    102: 
                    103: #define        S_ISDIR(m)      ((m & 0170000) == 0040000)      /* directory */
                    104: #define        S_ISCHR(m)      ((m & 0170000) == 0020000)      /* char special */
                    105: #define        S_ISBLK(m)      ((m & 0170000) == 0060000)      /* block special */
                    106: #define        S_ISREG(m)      ((m & 0170000) == 0100000)      /* regular file */
                    107: #define        S_ISFIFO(m)     ((m & 0170000) == 0010000)      /* fifo */
                    108: #ifndef _POSIX_SOURCE
                    109: #define        S_ISLNK(m)      ((m & 0170000) == 0120000)      /* symbolic link */
                    110: #define        S_ISSOCK(m)     ((m & 0170000) == 0140000)      /* socket */
                    111: #endif
                    112: 
                    113: #ifndef KERNEL
                    114: #include <sys/cdefs.h>
                    115: 
                    116: __BEGIN_DECLS
                    117: mode_t umask __P((mode_t));
                    118: int    chmod __P((const char *, mode_t));
                    119: int    fstat __P((int, struct stat *));
                    120: int    mkdir __P((const char *, mode_t));
                    121: int    mkfifo __P((const char *, mode_t));
                    122: int    stat __P((const char *, struct stat *));
                    123: #ifndef _POSIX_SOURCE
                    124: int    fchmod __P((int, mode_t));
                    125: int    lstat __P((const char *, struct stat *));
                    126: #endif /* not POSIX */
                    127: __END_DECLS
                    128: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.