diff options
author | mjg <mjg@FreeBSD.org> | 2014-11-05 02:08:37 +0000 |
---|---|---|
committer | mjg <mjg@FreeBSD.org> | 2014-11-05 02:08:37 +0000 |
commit | dd190ce5d4089c9dd705b3c0c42c19bb3ec539ce (patch) | |
tree | bf0cb165527e59f7dffadcc0cc37c6bf5dfc09a8 /sys/sys/ucred.h | |
parent | aa05a1aea6e54285016265b7baae706e5a0c7f99 (diff) | |
download | FreeBSD-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.h | 5 |
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. */ |