003 File Manager
Current Path:
/usr/src/sys/contrib/openzfs/include/os/freebsd/spl/sys
usr
/
src
/
sys
/
contrib
/
openzfs
/
include
/
os
/
freebsd
/
spl
/
sys
/
📁
..
📄
Makefile.am
(859 B)
📄
acl.h
(7.15 KB)
📄
acl_impl.h
(1.52 KB)
📄
atomic.h
(5.25 KB)
📄
byteorder.h
(2.99 KB)
📄
callb.h
(7.01 KB)
📄
ccompat.h
(4.02 KB)
📄
ccompile.h
(7.92 KB)
📄
cmn_err.h
(2.18 KB)
📄
condvar.h
(5.72 KB)
📄
console.h
(1.48 KB)
📄
cred.h
(5.17 KB)
📄
ctype.h
(1.8 KB)
📄
debug.h
(5.91 KB)
📄
dirent.h
(1.68 KB)
📄
disp.h
(1.51 KB)
📄
dkio.h
(14.73 KB)
📄
extdirent.h
(2.17 KB)
📄
file.h
(1.8 KB)
📄
freebsd_rwlock.h
(1.46 KB)
📄
idmap.h
(3.21 KB)
📄
inttypes.h
(20 B)
📄
isa_defs.h
(19.68 KB)
📄
kidmap.h
(1.68 KB)
📄
kmem.h
(3.65 KB)
📄
kmem_cache.h
(1.96 KB)
📄
kstat.h
(7.61 KB)
📄
list.h
(1.8 KB)
📄
list_impl.h
(1.26 KB)
📄
lock.h
(1.79 KB)
📄
misc.h
(1.95 KB)
📄
mod_os.h
(4.01 KB)
📄
mode.h
(20 B)
📄
mount.h
(1.65 KB)
📄
mutex.h
(2.59 KB)
📄
param.h
(1.63 KB)
📄
policy.h
(3.47 KB)
📄
proc.h
(3.33 KB)
📄
processor.h
(1.46 KB)
📄
procfs_list.h
(2 KB)
📄
random.h
(1.71 KB)
📄
rwlock.h
(3.31 KB)
📄
sdt.h
(1.76 KB)
📄
sid.h
(2.47 KB)
📄
sig.h
(2.11 KB)
📄
simd.h
(1.68 KB)
📄
simd_x86.h
(7.07 KB)
📄
spl_condvar.h
(3.04 KB)
📄
string.h
(1.64 KB)
📄
strings.h
(20 B)
📄
sunddi.h
(2.28 KB)
📄
sysmacros.h
(11.66 KB)
📄
systeminfo.h
(1.45 KB)
📄
systm.h
(1.68 KB)
📄
taskq.h
(3.75 KB)
📄
thread.h
(1.47 KB)
📄
time.h
(3 KB)
📄
timer.h
(1.65 KB)
📄
trace.h
(14 B)
📄
trace_zfs.h
(14 B)
📄
types.h
(2.99 KB)
📄
types32.h
(1.52 KB)
📄
uio.h
(2.91 KB)
📄
uuid.h
(2.93 KB)
📄
vfs.h
(4.55 KB)
📄
vm.h
(2.54 KB)
📄
vmsystm.h
(1.42 KB)
📄
vnode.h
(6.07 KB)
📄
vnode_impl.h
(10.47 KB)
📄
zmod.h
(1.87 KB)
📄
zone.h
(2.29 KB)
Editing: cred.h
/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ /* * Portions of this source code were derived from Berkeley 4.3 BSD * under license from the Regents of the University of California. */ #ifndef _SYS_CRED_H #define _SYS_CRED_H #include <sys/types.h> #ifdef __cplusplus extern "C" { #endif /* * The credential is an opaque kernel private data structure defined in * <sys/cred_impl.h>. */ typedef struct ucred cred_t; #define CRED() curthread->td_ucred #define kcred (thread0.td_ucred) #define KUID_TO_SUID(x) (x) #define KGID_TO_SGID(x) (x) #define crgetuid(cred) ((cred)->cr_uid) #define crgetruid(cred) ((cred)->cr_ruid) #define crgetgid(cred) ((cred)->cr_gid) #define crgetgroups(cred) ((cred)->cr_groups) #define crgetngroups(cred) ((cred)->cr_ngroups) #define crgetsid(cred, i) (NULL) struct proc; /* cred.h is included in proc.h */ struct prcred; struct ksid; struct ksidlist; struct credklpd; struct credgrp; struct auditinfo_addr; /* cred.h is included in audit.h */ extern int ngroups_max; /* * kcred is used when you need all privileges. */ extern void cred_init(void); extern void crfree(cred_t *); extern cred_t *cralloc(void); /* all but ref uninitialized */ extern cred_t *cralloc_ksid(void); /* cralloc() + ksid alloc'ed */ extern cred_t *crget(void); /* initialized */ extern void crcopy_to(cred_t *, cred_t *); extern cred_t *crdup(cred_t *); extern void crdup_to(cred_t *, cred_t *); extern cred_t *crgetcred(void); extern void crset(struct proc *, cred_t *); extern void crset_zone_privall(cred_t *); extern int supgroupmember(gid_t, const cred_t *); extern int hasprocperm(const cred_t *, const cred_t *); extern int prochasprocperm(struct proc *, struct proc *, const cred_t *); extern int crcmp(const cred_t *, const cred_t *); extern cred_t *zone_kcred(void); extern gid_t crgetrgid(const cred_t *); extern gid_t crgetsgid(const cred_t *); #define crgetzoneid(cr) ((cr)->cr_prison->pr_id) extern projid_t crgetprojid(const cred_t *); extern cred_t *crgetmapped(const cred_t *); extern const struct auditinfo_addr *crgetauinfo(const cred_t *); extern struct auditinfo_addr *crgetauinfo_modifiable(cred_t *); extern uint_t crgetref(const cred_t *); extern const gid_t *crgetggroups(const struct credgrp *); /* * Sets real, effective and/or saved uid/gid; * -1 argument accepted as "no change". */ extern int crsetresuid(cred_t *, uid_t, uid_t, uid_t); extern int crsetresgid(cred_t *, gid_t, gid_t, gid_t); /* * Sets real, effective and saved uids/gids all to the same * values. Both values must be non-negative and <= MAXUID */ extern int crsetugid(cred_t *, uid_t, gid_t); /* * Functions to handle the supplemental group list. */ extern struct credgrp *crgrpcopyin(int, gid_t *); extern void crgrprele(struct credgrp *); extern void crsetcredgrp(cred_t *, struct credgrp *); /* * Private interface for setting zone association of credential. */ struct zone; extern void crsetzone(cred_t *, struct zone *); extern struct zone *crgetzone(const cred_t *); /* * Private interface for setting project id in credential. */ extern void crsetprojid(cred_t *, projid_t); /* * Private interface for nfs. */ extern cred_t *crnetadjust(cred_t *); /* * Private interface for procfs. */ extern void cred2prcred(const cred_t *, struct prcred *); /* * Private interfaces for Rampart Trusted Solaris. */ struct ts_label_s; extern struct ts_label_s *crgetlabel(const cred_t *); extern boolean_t crisremote(const cred_t *); /* * Private interfaces for ephemeral uids. */ #define VALID_UID(id, zn) \ ((id) <= MAXUID || valid_ephemeral_uid((zn), (id))) #define VALID_GID(id, zn) \ ((id) <= MAXUID || valid_ephemeral_gid((zn), (id))) extern boolean_t valid_ephemeral_uid(struct zone *, uid_t); extern boolean_t valid_ephemeral_gid(struct zone *, gid_t); extern int eph_uid_alloc(struct zone *, int, uid_t *, int); extern int eph_gid_alloc(struct zone *, int, gid_t *, int); extern void crsetsid(cred_t *, struct ksid *, int); extern void crsetsidlist(cred_t *, struct ksidlist *); extern struct ksidlist *crgetsidlist(const cred_t *); extern int crsetpriv(cred_t *, ...); extern struct credklpd *crgetcrklpd(const cred_t *); extern void crsetcrklpd(cred_t *, struct credklpd *); #ifdef __cplusplus } #endif #endif /* _SYS_CRED_H */
Upload File
Create Folder