File: /usr/include/sys/_types/_s_ifmt.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: /*
       2:  * Copyright (c) 2003-2012 Apple Inc. All rights reserved.
       3:  *
       4:  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
       5:  * 
       6:  * This file contains Original Code and/or Modifications of Original Code
       7:  * as defined in and that are subject to the Apple Public Source License
       8:  * Version 2.0 (the 'License'). You may not use this file except in
       9:  * compliance with the License. The rights granted to you under the License
      10:  * may not be used to create, or enable the creation or redistribution of,
      11:  * unlawful or unlicensed copies of an Apple operating system, or to
      12:  * circumvent, violate, or enable the circumvention or violation of, any
      13:  * terms of an Apple operating system software license agreement.
      14:  * 
      15:  * Please obtain a copy of the License at
      16:  * http://www.opensource.apple.com/apsl/ and read it before using this file.
      17:  * 
      18:  * The Original Code and all software distributed under the License are
      19:  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
      20:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
      21:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
      22:  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
      23:  * Please see the License for the specific language governing rights and
      24:  * limitations under the License.
      25:  * 
      26:  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
      27:  */
      28: 
      29: /*
      30:  * [XSI] The symbolic names for file modes for use as values of mode_t
      31:  * shall be defined as described in <sys/stat.h>
      32:  */
      33: #ifndef S_IFMT
      34: /* File type */
      35: #define    S_IFMT        0170000        /* [XSI] type of file mask */
      36: #define    S_IFIFO        0010000        /* [XSI] named pipe (fifo) */
      37: #define    S_IFCHR        0020000        /* [XSI] character special */
      38: #define    S_IFDIR        0040000        /* [XSI] directory */
      39: #define    S_IFBLK        0060000        /* [XSI] block special */
      40: #define    S_IFREG        0100000        /* [XSI] regular */
      41: #define    S_IFLNK        0120000        /* [XSI] symbolic link */
      42: #define    S_IFSOCK    0140000        /* [XSI] socket */
      43: #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
      44: #define    S_IFWHT        0160000        /* OBSOLETE: whiteout */
      45: #endif
      46: 
      47: /* File mode */
      48: /* Read, write, execute/search by owner */
      49: #define    S_IRWXU        0000700        /* [XSI] RWX mask for owner */
      50: #define    S_IRUSR        0000400        /* [XSI] R for owner */
      51: #define    S_IWUSR        0000200        /* [XSI] W for owner */
      52: #define    S_IXUSR        0000100        /* [XSI] X for owner */
      53: /* Read, write, execute/search by group */
      54: #define    S_IRWXG        0000070        /* [XSI] RWX mask for group */
      55: #define    S_IRGRP        0000040        /* [XSI] R for group */
      56: #define    S_IWGRP        0000020        /* [XSI] W for group */
      57: #define    S_IXGRP        0000010        /* [XSI] X for group */
      58: /* Read, write, execute/search by others */
      59: #define    S_IRWXO        0000007        /* [XSI] RWX mask for other */
      60: #define    S_IROTH        0000004        /* [XSI] R for other */
      61: #define    S_IWOTH        0000002        /* [XSI] W for other */
      62: #define    S_IXOTH        0000001        /* [XSI] X for other */
      63: 
      64: #define    S_ISUID        0004000        /* [XSI] set user id on execution */
      65: #define    S_ISGID        0002000        /* [XSI] set group id on execution */
      66: #define    S_ISVTX        0001000        /* [XSI] directory restrcted delete */
      67: 
      68: #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
      69: #define    S_ISTXT        S_ISVTX        /* sticky bit: not supported */
      70: #define    S_IREAD        S_IRUSR        /* backward compatability */
      71: #define    S_IWRITE    S_IWUSR        /* backward compatability */
      72: #define    S_IEXEC        S_IXUSR        /* backward compatability */
      73: #endif
      74: #endif    /* !S_IFMT */
      75: