1/* $NetBSD: policy.h,v 1.5 2010/03/01 11:19:40 darran Exp $ */ 2 3/*- 4 * Copyright (c) 2007 Pawel Jakub Dawidek <pjd@FreeBSD.org> 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 * 28 $ $FreeBSD: src/sys/compat/opensolaris/sys/policy.h,v 1.1 2007/04/06 01:09:06 pjd Exp $ 29 */ 30 31#ifndef _OPENSOLARIS_SYS_POLICY_H_ 32#define _OPENSOLARIS_SYS_POLICY_H_ 33 34#include <sys/param.h> 35 36#ifdef _KERNEL 37 38#include <sys/vnode.h> 39 40struct mount; 41struct ucred; 42struct vattr; 43struct vnode; 44 45int secpolicy_zfs(struct kauth_cred *cred); 46int secpolicy_sys_config(struct kauth_cred *cred, int checkonly); 47int secpolicy_zinject(struct kauth_cred *cred); 48int secpolicy_fs_mount(struct kauth_cred *cred, struct vnode *mvp, struct mount *vfsp); 49int secpolicy_fs_unmount(struct kauth_cred *cred, struct mount *vfsp); 50int secpolicy_basic_link(struct kauth_cred *cred); 51int secpolicy_vnode_stky_modify(struct kauth_cred *cred); 52int secpolicy_vnode_owner(cred_t *cred, uid_t owner); 53int secpolicy_vnode_remove(struct kauth_cred *cred); 54int secpolicy_vnode_access(struct kauth_cred *cred, struct vnode *vp, 55 uint64_t owner, int mode); 56int secpolicy_vnode_chown(struct kauth_cred *cred, 57 boolean_t check_self); 58int secpolicy_vnode_setdac(struct kauth_cred *cred, uid_t owner); 59int secpolicy_vnode_setattr(struct kauth_cred *cred, struct vnode *vp, 60 struct vattr *vap, const struct vattr *ovap, int flags, 61 int unlocked_access(void *, int, struct kauth_cred *), void *node); 62int secpolicy_vnode_create_gid(struct kauth_cred *cred); 63int secpolicy_vnode_setids_setgids(struct kauth_cred *cred, gid_t gid); 64int secpolicy_vnode_setid_retain(struct kauth_cred *cred, boolean_t issuidroot); 65void secpolicy_setid_clear(struct vattr *vap, struct kauth_cred *cred); 66int secpolicy_setid_setsticky_clear(struct vnode *vp, struct vattr *vap, 67 const struct vattr *ovap, struct kauth_cred *cred); 68int secpolicy_xvattr(xvattr_t *xvap, uid_t owner, cred_t *cr, vtype_t vtype); 69 70#endif /* _KERNEL */ 71 72#endif /* _OPENSOLARIS_SYS_POLICY_H_ */ 73