xref: /openbsd-src/gnu/usr.sbin/mkhybrid/src/include/statdefs.h (revision f0d9efc08bdf8f314c206a5c81ebc300245394f8)
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