summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormike <mike@FreeBSD.org>2002-02-26 19:43:03 +0000
committermike <mike@FreeBSD.org>2002-02-26 19:43:03 +0000
commitd20627ce9b55094b48f14450a8fad468e11f3927 (patch)
tree66f2f4b240f161008805775c25f8c918cec6ee5a
parentb1c3d8a6033a2b94ebf7fa936314b3458eba15ef (diff)
downloadFreeBSD-src-d20627ce9b55094b48f14450a8fad468e11f3927.zip
FreeBSD-src-d20627ce9b55094b48f14450a8fad468e11f3927.tar.gz
Rather than include namespace pollution in <grp.h> in order to declare
`gid_t', use the canonical protection scheme to define a type in two or more headers. This brings <grp.h> closer to POSIX.1-2001 conformance.
-rw-r--r--include/grp.h6
-rw-r--r--sys/sys/types.h5
2 files changed, 10 insertions, 1 deletions
diff --git a/include/grp.h b/include/grp.h
index abd88ef..07a4e45 100644
--- a/include/grp.h
+++ b/include/grp.h
@@ -42,13 +42,17 @@
#ifndef _GRP_H_
#define _GRP_H_
-#include <sys/types.h>
#include <sys/cdefs.h>
#ifndef _POSIX_SOURCE
#define _PATH_GROUP "/etc/group"
#endif
+#ifndef _GID_T_DECLARED
+#define _GID_T_DECLARED
+typedef u_int32_t gid_t;
+#endif
+
struct group {
char *gr_name; /* group name */
char *gr_passwd; /* group password */
diff --git a/sys/sys/types.h b/sys/sys/types.h
index e80462b..db3c04d 100644
--- a/sys/sys/types.h
+++ b/sys/sys/types.h
@@ -73,7 +73,12 @@ typedef __volatile char *v_caddr_t; /* core address, pointer to volatile */
typedef int32_t daddr_t; /* disk address */
typedef u_int32_t u_daddr_t; /* unsigned disk address */
typedef u_int32_t fixpt_t; /* fixed point number */
+
+#ifndef _GID_T_DECLARED
+#define _GID_T_DECLARED
typedef u_int32_t gid_t; /* group id */
+#endif
+
typedef u_int32_t ino_t; /* inode number */
typedef long key_t; /* IPC key (for Sys V IPC) */
typedef u_int16_t mode_t; /* permissions */
OpenPOWER on IntegriCloud