_hurd_id.gen.uids, _hurd_id.gen.nuids, _hurd_id.aux.uids, _hurd_id.aux.nuids, newgen, 1 + _hurd_id.gen.ngids, newaux, _hurd_id.aux.ngids,
newgen, ngen, newaux, naux, _hurd_id.gen.gids, _hurd_id.gen.ngids, _hurd_id.aux.gids, _hurd_id.aux.ngids,
DEFUN(__setgid, (gid), gid_t gid){  auth_t newauth;  error_t err;  HURD_CRITICAL_BEGIN;  __mutex_lock (&_hurd_id.lock);  err = _hurd_check_ids ();  if (!err)    {      /* Make a new auth handle which has GID as the real gid,	 and as the first element in the list of effective gids.  */      gid_t newgen[_hurd_id.gen.ngids + 1];      gid_t newaux[_hurd_id.aux.ngids];            newgen[0] = gid;      memcpy (&newgen[1], _hurd_id.gen.gids,	      _hurd_id.gen.ngids * sizeof (gid_t));      newaux[0] = gid;      memcpy (&newaux[1], _hurd_id.aux.gids,	      (_hurd_id.aux.ngids - 1) * sizeof (gid_t));      err = __USEPORT (AUTH, __auth_makeauth		       (port, NULL, MACH_MSG_TYPE_COPY_SEND, 0,			_hurd_id.gen.uids, _hurd_id.gen.nuids,			_hurd_id.aux.uids, _hurd_id.aux.nuids,			newgen, 1 + _hurd_id.gen.ngids,			newaux, _hurd_id.aux.ngids,			&newauth));    }  __mutex_unlock (&_hurd_id.lock);  HURD_CRITICAL_END;  if (err)    return __hurd_fail (err);  /* Install the new handle and reauthenticate everything.  */  err = __setauth (newauth);  __mach_port_deallocate (__mach_task_self (), newauth);  return err;}