zoneid_t zone_create(const char *name, const char *root, const struct priv_set *privs, const char *rctls, size_t rctlsz, const char *zfs, size_t zfssz, int *extended_error, int match, int doi, const bslabel_t *label) { zone_def zd; priv_data_t *d; LOADPRIVDATA(d); zd.zone_name = name; zd.zone_root = root; zd.zone_privs = privs; zd.zone_privssz = d->pd_setsize; zd.rctlbuf = rctls; zd.rctlbufsz = rctlsz; zd.zfsbuf = zfs; zd.zfsbufsz = zfssz; zd.extended_error = extended_error; zd.match = match; zd.doi = doi; zd.label = label; return ((zoneid_t)syscall(SYS_zone, ZONE_CREATE, &zd)); }
size_t ucred_size(void) { priv_data_t *d; LOADPRIVDATA(d); return (d->pd_ucredsize); }
const priv_set_t * ucred_getprivset(const ucred_t *uc, priv_ptype_t set) { /* LINTED: alignment */ const prpriv_t *pr = UCPRIV(uc); int pset = priv_getsetbyname(set); priv_data_t *d; if (pr == NULL || pset == -1) { errno = EINVAL; return (NULL); } LOADPRIVDATA(d); return ((const priv_set_t *) &pr->pr_sets[d->pd_pinfo->priv_setsize * pset]); }