1*f0d9efc0Sbeck /* @(#)statdefs.h 1.1 98/11/22 Copyright 1998 J. Schilling */ 2*f0d9efc0Sbeck /* 3*f0d9efc0Sbeck * Definitions for stat() file mode 4*f0d9efc0Sbeck * 5*f0d9efc0Sbeck * Copyright (c) 1998 J. Schilling 6*f0d9efc0Sbeck */ 7*f0d9efc0Sbeck /* 8*f0d9efc0Sbeck * This program is free software; you can redistribute it and/or modify 9*f0d9efc0Sbeck * it under the terms of the GNU General Public License as published by 10*f0d9efc0Sbeck * the Free Software Foundation; either version 2, or (at your option) 11*f0d9efc0Sbeck * any later version. 12*f0d9efc0Sbeck * 13*f0d9efc0Sbeck * This program is distributed in the hope that it will be useful, 14*f0d9efc0Sbeck * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*f0d9efc0Sbeck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*f0d9efc0Sbeck * GNU General Public License for more details. 17*f0d9efc0Sbeck * 18*f0d9efc0Sbeck * You should have received a copy of the GNU General Public License 19*f0d9efc0Sbeck * along with this program; see the file COPYING. If not, write to 20*f0d9efc0Sbeck * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 21*f0d9efc0Sbeck */ 22*f0d9efc0Sbeck 23*f0d9efc0Sbeck #ifndef _STATDEFS_H 24*f0d9efc0Sbeck #define _STATDEFS_H 25*f0d9efc0Sbeck 26*f0d9efc0Sbeck #ifndef _MCONFIG_H 27*f0d9efc0Sbeck #include <mconfig.h> 28*f0d9efc0Sbeck #endif 29*f0d9efc0Sbeck 30*f0d9efc0Sbeck #ifdef STAT_MACROS_BROKEN 31*f0d9efc0Sbeck #undef S_ISFIFO /* Named pipe */ 32*f0d9efc0Sbeck #undef S_ISCHR /* Character special */ 33*f0d9efc0Sbeck #undef S_ISMPC /* UNUSED multiplexed c */ 34*f0d9efc0Sbeck #undef S_ISDIR /* Directory */ 35*f0d9efc0Sbeck #undef S_ISNAM /* Named file (XENIX) */ 36*f0d9efc0Sbeck #undef S_ISBLK /* Block special */ 37*f0d9efc0Sbeck #undef S_ISMPB /* UNUSED multiplexed b */ 38*f0d9efc0Sbeck #undef S_ISREG /* Regular file */ 39*f0d9efc0Sbeck #undef S_ISCNT /* Contiguous file */ 40*f0d9efc0Sbeck #undef S_ISLNK /* Symbolic link */ 41*f0d9efc0Sbeck #undef S_ISSHAD /* Solaris shadow inode */ 42*f0d9efc0Sbeck #undef S_ISSOCK /* UNIX domain socket */ 43*f0d9efc0Sbeck #undef S_ISDOOR /* Solaris DOOR */ 44*f0d9efc0Sbeck #endif 45*f0d9efc0Sbeck 46*f0d9efc0Sbeck #ifndef S_ISFIFO /* Named pipe */ 47*f0d9efc0Sbeck # ifdef S_IFIFO 48*f0d9efc0Sbeck # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) 49*f0d9efc0Sbeck # else 50*f0d9efc0Sbeck # define S_ISFIFO(m) (0) 51*f0d9efc0Sbeck # endif 52*f0d9efc0Sbeck #endif 53*f0d9efc0Sbeck #ifndef S_ISCHR /* Character special */ 54*f0d9efc0Sbeck # ifdef S_IFCHR 55*f0d9efc0Sbeck # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) 56*f0d9efc0Sbeck # else 57*f0d9efc0Sbeck # define S_ISCHR(m) (0) 58*f0d9efc0Sbeck # endif 59*f0d9efc0Sbeck #endif 60*f0d9efc0Sbeck #ifndef S_ISMPC /* UNUSED multiplexed c */ 61*f0d9efc0Sbeck # ifdef S_IFMPC 62*f0d9efc0Sbeck # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) 63*f0d9efc0Sbeck # else 64*f0d9efc0Sbeck # define S_ISMPC(m) (0) 65*f0d9efc0Sbeck # endif 66*f0d9efc0Sbeck #endif 67*f0d9efc0Sbeck #ifndef S_ISDIR /* Directory */ 68*f0d9efc0Sbeck # ifdef S_IFDIR 69*f0d9efc0Sbeck # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) 70*f0d9efc0Sbeck # else 71*f0d9efc0Sbeck # define S_ISDIR(m) (0) 72*f0d9efc0Sbeck # endif 73*f0d9efc0Sbeck #endif 74*f0d9efc0Sbeck #ifndef S_ISNAM /* Named file (XENIX) */ 75*f0d9efc0Sbeck # ifdef S_IFNAM 76*f0d9efc0Sbeck # define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) 77*f0d9efc0Sbeck # else 78*f0d9efc0Sbeck # define S_ISNAM(m) (0) 79*f0d9efc0Sbeck # endif 80*f0d9efc0Sbeck #endif 81*f0d9efc0Sbeck #ifndef S_ISBLK /* Block special */ 82*f0d9efc0Sbeck # ifdef S_IFBLK 83*f0d9efc0Sbeck # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) 84*f0d9efc0Sbeck # else 85*f0d9efc0Sbeck # define S_ISBLK(m) (0) 86*f0d9efc0Sbeck # endif 87*f0d9efc0Sbeck #endif 88*f0d9efc0Sbeck #ifndef S_ISMPB /* UNUSED multiplexed b */ 89*f0d9efc0Sbeck # ifdef S_IFMPB 90*f0d9efc0Sbeck # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) 91*f0d9efc0Sbeck # else 92*f0d9efc0Sbeck # define S_ISMPB(m) (0) 93*f0d9efc0Sbeck # endif 94*f0d9efc0Sbeck #endif 95*f0d9efc0Sbeck #ifndef S_ISREG /* Regular file */ 96*f0d9efc0Sbeck # ifdef S_IFREG 97*f0d9efc0Sbeck # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) 98*f0d9efc0Sbeck # else 99*f0d9efc0Sbeck # define S_ISREG(m) (0) 100*f0d9efc0Sbeck # endif 101*f0d9efc0Sbeck #endif 102*f0d9efc0Sbeck #ifndef S_ISCNT /* Contiguous file */ 103*f0d9efc0Sbeck # ifdef S_IFCNT 104*f0d9efc0Sbeck # define S_ISCNT(m) (((m) & S_IFMT) == S_IFCNT) 105*f0d9efc0Sbeck # else 106*f0d9efc0Sbeck # define S_ISCNT(m) (0) 107*f0d9efc0Sbeck # endif 108*f0d9efc0Sbeck #endif 109*f0d9efc0Sbeck #ifndef S_ISLNK /* Symbolic link */ 110*f0d9efc0Sbeck # ifdef S_IFLNK 111*f0d9efc0Sbeck # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) 112*f0d9efc0Sbeck # else 113*f0d9efc0Sbeck # define S_ISLNK(m) (0) 114*f0d9efc0Sbeck # endif 115*f0d9efc0Sbeck #endif 116*f0d9efc0Sbeck #ifndef S_ISSHAD /* Solaris shadow inode */ 117*f0d9efc0Sbeck # ifdef S_IFSHAD 118*f0d9efc0Sbeck # define S_ISSHAD(m) (((m) & S_IFMT) == S_IFSHAD) 119*f0d9efc0Sbeck # else 120*f0d9efc0Sbeck # define S_ISSHAD(m) (0) 121*f0d9efc0Sbeck # endif 122*f0d9efc0Sbeck #endif 123*f0d9efc0Sbeck #ifndef S_ISSOCK /* UNIX domain socket */ 124*f0d9efc0Sbeck # ifdef S_IFSOCK 125*f0d9efc0Sbeck # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) 126*f0d9efc0Sbeck # else 127*f0d9efc0Sbeck # define S_ISSOCK(m) (0) 128*f0d9efc0Sbeck # endif 129*f0d9efc0Sbeck #endif 130*f0d9efc0Sbeck #ifndef S_ISDOOR /* Solaris DOOR */ 131*f0d9efc0Sbeck # ifdef S_IFDOOR 132*f0d9efc0Sbeck # define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR) 133*f0d9efc0Sbeck # else 134*f0d9efc0Sbeck # define S_ISDOOR(m) (0) 135*f0d9efc0Sbeck # endif 136*f0d9efc0Sbeck #endif 137*f0d9efc0Sbeck 138*f0d9efc0Sbeck #endif /* _STATDEFS_H */ 139*f0d9efc0Sbeck 140