00001 /* 00002 * Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2008 00003 * The President and Fellows of Harvard College. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 1. Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * 2. Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * 3. Neither the name of the University nor the names of its contributors 00014 * may be used to endorse or promote products derived from this software 00015 * without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS ``AS IS'' AND 00018 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00019 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00020 * ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE 00021 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00022 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 00023 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00024 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00025 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 00026 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00027 * SUCH DAMAGE. 00028 */ 00029 00030 #ifndef _KERN_STATTYPES_H_ 00031 #define _KERN_STATTYPES_H_ 00032 00033 /* 00034 * Further supporting material for stat(), fstat(), and lstat(). 00035 * 00036 * File types for st_mode. (The permissions are the low 12 bits.) 00037 * 00038 * These are also used, shifted right by those 12 bits, in struct 00039 * dirent in libc, which is why they get their own file. 00040 * 00041 * Non-underscore versions of the names can be gotten from <stat.h> 00042 * (kernel) or <sys/stat.h> (userland). 00043 */ 00044 00045 #define _S_IFMT 070000 /* mask for type of file */ 00046 #define _S_IFREG 010000 /* ordinary regular file */ 00047 #define _S_IFDIR 020000 /* directory */ 00048 #define _S_IFLNK 030000 /* symbolic link */ 00049 #define _S_IFIFO 040000 /* pipe or named pipe */ 00050 #define _S_IFSOCK 050000 /* socket */ 00051 #define _S_IFCHR 060000 /* character device */ 00052 #define _S_IFBLK 070000 /* block device */ 00053 00054 00055 #endif /* _KERN_STATTYPES_H_ */