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