The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/include/sys/dsl_deleg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * CDDL HEADER START
    3  *
    4  * The contents of this file are subject to the terms of the
    5  * Common Development and Distribution License (the "License").
    6  * You may not use this file except in compliance with the License.
    7  *
    8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    9  * or https://opensource.org/licenses/CDDL-1.0.
   10  * See the License for the specific language governing permissions
   11  * and limitations under the License.
   12  *
   13  * When distributing Covered Code, include this CDDL HEADER in each
   14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
   15  * If applicable, add the following below this CDDL HEADER, with the
   16  * fields enclosed by brackets "[]" replaced with your own identifying
   17  * information: Portions Copyright [yyyy] [name of copyright owner]
   18  *
   19  * CDDL HEADER END
   20  */
   21 /*
   22  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
   23  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
   24  */
   25 
   26 #ifndef _SYS_DSL_DELEG_H
   27 #define _SYS_DSL_DELEG_H
   28 
   29 #include <sys/dmu.h>
   30 #include <sys/dsl_pool.h>
   31 #include <sys/zfs_context.h>
   32 
   33 #ifdef  __cplusplus
   34 extern "C" {
   35 #endif
   36 
   37 #define ZFS_DELEG_PERM_NONE             ""
   38 #define ZFS_DELEG_PERM_CREATE           "create"
   39 #define ZFS_DELEG_PERM_DESTROY          "destroy"
   40 #define ZFS_DELEG_PERM_SNAPSHOT         "snapshot"
   41 #define ZFS_DELEG_PERM_ROLLBACK         "rollback"
   42 #define ZFS_DELEG_PERM_CLONE            "clone"
   43 #define ZFS_DELEG_PERM_PROMOTE          "promote"
   44 #define ZFS_DELEG_PERM_RENAME           "rename"
   45 #define ZFS_DELEG_PERM_MOUNT            "mount"
   46 #define ZFS_DELEG_PERM_SHARE            "share"
   47 #define ZFS_DELEG_PERM_SEND             "send"
   48 #define ZFS_DELEG_PERM_RECEIVE          "receive"
   49 #define ZFS_DELEG_PERM_ALLOW            "allow"
   50 #define ZFS_DELEG_PERM_USERPROP         "userprop"
   51 #define ZFS_DELEG_PERM_VSCAN            "vscan"
   52 #define ZFS_DELEG_PERM_USERQUOTA        "userquota"
   53 #define ZFS_DELEG_PERM_GROUPQUOTA       "groupquota"
   54 #define ZFS_DELEG_PERM_USEROBJQUOTA     "userobjquota"
   55 #define ZFS_DELEG_PERM_GROUPOBJQUOTA    "groupobjquota"
   56 #define ZFS_DELEG_PERM_USERUSED         "userused"
   57 #define ZFS_DELEG_PERM_GROUPUSED        "groupused"
   58 #define ZFS_DELEG_PERM_USEROBJUSED      "userobjused"
   59 #define ZFS_DELEG_PERM_GROUPOBJUSED     "groupobjused"
   60 #define ZFS_DELEG_PERM_HOLD             "hold"
   61 #define ZFS_DELEG_PERM_RELEASE          "release"
   62 #define ZFS_DELEG_PERM_DIFF             "diff"
   63 #define ZFS_DELEG_PERM_BOOKMARK         "bookmark"
   64 #define ZFS_DELEG_PERM_LOAD_KEY         "load-key"
   65 #define ZFS_DELEG_PERM_CHANGE_KEY       "change-key"
   66 #define ZFS_DELEG_PERM_PROJECTUSED      "projectused"
   67 #define ZFS_DELEG_PERM_PROJECTQUOTA     "projectquota"
   68 #define ZFS_DELEG_PERM_PROJECTOBJUSED   "projectobjused"
   69 #define ZFS_DELEG_PERM_PROJECTOBJQUOTA  "projectobjquota"
   70 
   71 /*
   72  * Note: the names of properties that are marked delegatable are also
   73  * valid delegated permissions
   74  */
   75 
   76 int dsl_deleg_get(const char *ddname, nvlist_t **nvp);
   77 int dsl_deleg_set(const char *ddname, nvlist_t *nvp, boolean_t unset);
   78 int dsl_deleg_access(const char *ddname, const char *perm, cred_t *cr);
   79 int dsl_deleg_access_impl(struct dsl_dataset *ds, const char *perm, cred_t *cr);
   80 void dsl_deleg_set_create_perms(dsl_dir_t *dd, dmu_tx_t *tx, cred_t *cr);
   81 int dsl_deleg_can_allow(char *ddname, nvlist_t *nvp, cred_t *cr);
   82 int dsl_deleg_can_unallow(char *ddname, nvlist_t *nvp, cred_t *cr);
   83 int dsl_deleg_destroy(objset_t *os, uint64_t zapobj, dmu_tx_t *tx);
   84 boolean_t dsl_delegation_on(objset_t *os);
   85 
   86 #ifdef  __cplusplus
   87 }
   88 #endif
   89 
   90 #endif  /* _SYS_DSL_DELEG_H */

Cache object: ad0fde0b339bab7aa5f1946ec772eba7


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.