summaryrefslogtreecommitdiffstats
path: root/sys/sys/ucred.h
diff options
context:
space:
mode:
authormjg <mjg@FreeBSD.org>2014-11-05 02:08:37 +0000
committermjg <mjg@FreeBSD.org>2014-11-05 02:08:37 +0000
commitdd190ce5d4089c9dd705b3c0c42c19bb3ec539ce (patch)
treebf0cb165527e59f7dffadcc0cc37c6bf5dfc09a8 /sys/sys/ucred.h
parentaa05a1aea6e54285016265b7baae706e5a0c7f99 (diff)
downloadFreeBSD-src-dd190ce5d4089c9dd705b3c0c42c19bb3ec539ce.zip
FreeBSD-src-dd190ce5d4089c9dd705b3c0c42c19bb3ec539ce.tar.gz
Extend struct ucred with group table.
This saves one malloc + free with typical cases and better utilizes memory. Submitted by: Tiwei Bie <btw mail.ustc.edu.cn> (slightly modified) X-Additional: JuniorJobs project
Diffstat (limited to 'sys/sys/ucred.h')
-rw-r--r--sys/sys/ucred.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/sys/ucred.h b/sys/sys/ucred.h
index 81e4520..a6531c4 100644
--- a/sys/sys/ucred.h
+++ b/sys/sys/ucred.h
@@ -37,6 +37,8 @@
struct loginclass;
+#define XU_NGROUPS 16
+
/*
* Credentials.
*
@@ -64,13 +66,12 @@ struct ucred {
struct auditinfo_addr cr_audit; /* Audit properties. */
gid_t *cr_groups; /* groups */
int cr_agroups; /* Available groups */
+ gid_t cr_smallgroups[XU_NGROUPS]; /* storage for small groups */
};
#define NOCRED ((struct ucred *)0) /* no credential available */
#define FSCRED ((struct ucred *)-1) /* filesystem credential */
#endif /* _KERNEL || _WANT_UCRED */
-#define XU_NGROUPS 16
-
/*
* Flags for cr_flags.
*/
OpenPOWER on IntegriCloud