int *aup_gids;
gid_t *aup_gids;
authunix_create(machname, uid, gid, len, aup_gids)	char *machname;	int uid;	int gid;	register int len;	int *aup_gids;{	struct authunix_parms aup;	char mymem[MAX_AUTH_BYTES];	struct timeval now;	XDR xdrs;	register AUTH *auth;	register struct audata *au;	/*	 * Allocate and set up auth handle	 */	auth = (AUTH *)mem_alloc(sizeof(*auth));#ifndef KERNEL	if (auth == NULL) {		(void)fprintf(stderr, "authunix_create: out of memory\n");		return (NULL);	}#endif	au = (struct audata *)mem_alloc(sizeof(*au));#ifndef KERNEL	if (au == NULL) {		(void)fprintf(stderr, "authunix_create: out of memory\n");		return (NULL);	}#endif	auth->ah_ops = &auth_unix_ops;	auth->ah_private = (caddr_t)au;	auth->ah_verf = au->au_shcred = _null_auth;	au->au_shfaults = 0;	/*	 * fill in param struct from the given params	 */	(void)gettimeofday(&now,  (struct timezone *)0);	aup.aup_time = now.tv_sec;	aup.aup_machname = machname;	aup.aup_uid = uid;	aup.aup_gid = gid;	aup.aup_len = (u_int)len;	aup.aup_gids = aup_gids;	/*	 * Serialize the parameters into origcred	 */	xdrmem_create(&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE);	if (! xdr_authunix_parms(&xdrs, &aup))		abort();	au->au_origcred.oa_length = len = XDR_GETPOS(&xdrs);	au->au_origcred.oa_flavor = AUTH_UNIX;#ifdef KERNEL	au->au_origcred.oa_base = mem_alloc((u_int) len);#else	if ((au->au_origcred.oa_base = mem_alloc((u_int) len)) == NULL) {		(void)fprintf(stderr, "authunix_create: out of memory\n");		return (NULL);	}#endif	bcopy(mymem, au->au_origcred.oa_base, (u_int)len);	/*	 * set auth handle to reflect new cred.	 */	auth->ah_cred = au->au_origcred;	marshal_new_auth(auth);	return (auth);}