]> git.sur5r.net Git - u-boot/blob - include/zfs/dmu.h
f16982f8c027a0199559fe8d7e15571cb9208060
[u-boot] / include / zfs / dmu.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  *  GRUB  --  GRand Unified Bootloader
4  *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, Inc.
5  */
6 /*
7  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
8  * Use is subject to license terms.
9  */
10
11 #ifndef _SYS_DMU_H
12 #define _SYS_DMU_H
13
14 /*
15  * This file describes the interface that the DMU provides for its
16  * consumers.
17  *
18  * The DMU also interacts with the SPA.  That interface is described in
19  * dmu_spa.h.
20  */
21 typedef enum dmu_object_type {
22         DMU_OT_NONE,
23         /* general: */
24         DMU_OT_OBJECT_DIRECTORY,        /* ZAP */
25         DMU_OT_OBJECT_ARRAY,            /* UINT64 */
26         DMU_OT_PACKED_NVLIST,           /* UINT8 (XDR by nvlist_pack/unpack) */
27         DMU_OT_PACKED_NVLIST_SIZE,      /* UINT64 */
28         DMU_OT_BPLIST,                  /* UINT64 */
29         DMU_OT_BPLIST_HDR,              /* UINT64 */
30         /* spa: */
31         DMU_OT_SPACE_MAP_HEADER,        /* UINT64 */
32         DMU_OT_SPACE_MAP,               /* UINT64 */
33         /* zil: */
34         DMU_OT_INTENT_LOG,              /* UINT64 */
35         /* dmu: */
36         DMU_OT_DNODE,                   /* DNODE */
37         DMU_OT_OBJSET,                  /* OBJSET */
38         /* dsl: */
39         DMU_OT_DSL_DIR,                 /* UINT64 */
40         DMU_OT_DSL_DIR_CHILD_MAP,       /* ZAP */
41         DMU_OT_DSL_DS_SNAP_MAP,         /* ZAP */
42         DMU_OT_DSL_PROPS,               /* ZAP */
43         DMU_OT_DSL_DATASET,             /* UINT64 */
44         /* zpl: */
45         DMU_OT_ZNODE,                   /* ZNODE */
46         DMU_OT_OLDACL,                  /* OLD ACL */
47         DMU_OT_PLAIN_FILE_CONTENTS,     /* UINT8 */
48         DMU_OT_DIRECTORY_CONTENTS,      /* ZAP */
49         DMU_OT_MASTER_NODE,             /* ZAP */
50         DMU_OT_UNLINKED_SET,            /* ZAP */
51         /* zvol: */
52         DMU_OT_ZVOL,                    /* UINT8 */
53         DMU_OT_ZVOL_PROP,               /* ZAP */
54         /* other; for testing only! */
55         DMU_OT_PLAIN_OTHER,             /* UINT8 */
56         DMU_OT_UINT64_OTHER,            /* UINT64 */
57         DMU_OT_ZAP_OTHER,               /* ZAP */
58         /* new object types: */
59         DMU_OT_ERROR_LOG,               /* ZAP */
60         DMU_OT_SPA_HISTORY,             /* UINT8 */
61         DMU_OT_SPA_HISTORY_OFFSETS,     /* spa_his_phys_t */
62         DMU_OT_POOL_PROPS,              /* ZAP */
63         DMU_OT_DSL_PERMS,               /* ZAP */
64         DMU_OT_ACL,                     /* ACL */
65         DMU_OT_SYSACL,                  /* SYSACL */
66         DMU_OT_FUID,                    /* FUID table (Packed NVLIST UINT8) */
67         DMU_OT_FUID_SIZE,               /* FUID table size UINT64 */
68         DMU_OT_NEXT_CLONES,             /* ZAP */
69         DMU_OT_SCRUB_QUEUE,             /* ZAP */
70         DMU_OT_USERGROUP_USED,          /* ZAP */
71         DMU_OT_USERGROUP_QUOTA,         /* ZAP */
72         DMU_OT_USERREFS,                /* ZAP */
73         DMU_OT_DDT_ZAP,                 /* ZAP */
74         DMU_OT_DDT_STATS,               /* ZAP */
75         DMU_OT_SA,                      /* System attr */
76         DMU_OT_SA_MASTER_NODE,          /* ZAP */
77         DMU_OT_SA_ATTR_REGISTRATION,    /* ZAP */
78         DMU_OT_SA_ATTR_LAYOUTS,         /* ZAP */
79         DMU_OT_NUMTYPES
80 } dmu_object_type_t;
81
82 typedef enum dmu_objset_type {
83         DMU_OST_NONE,
84         DMU_OST_META,
85         DMU_OST_ZFS,
86         DMU_OST_ZVOL,
87         DMU_OST_OTHER,                  /* For testing only! */
88         DMU_OST_ANY,                    /* Be careful! */
89         DMU_OST_NUMTYPES
90 } dmu_objset_type_t;
91
92 /*
93  * The names of zap entries in the DIRECTORY_OBJECT of the MOS.
94  */
95 #define DMU_POOL_DIRECTORY_OBJECT       1
96 #define DMU_POOL_CONFIG                 "config"
97 #define DMU_POOL_ROOT_DATASET           "root_dataset"
98 #define DMU_POOL_SYNC_BPLIST            "sync_bplist"
99 #define DMU_POOL_ERRLOG_SCRUB           "errlog_scrub"
100 #define DMU_POOL_ERRLOG_LAST            "errlog_last"
101 #define DMU_POOL_SPARES                 "spares"
102 #define DMU_POOL_DEFLATE                "deflate"
103 #define DMU_POOL_HISTORY                "history"
104 #define DMU_POOL_PROPS                  "pool_props"
105 #define DMU_POOL_L2CACHE                "l2cache"
106
107 #endif  /* _SYS_DMU_H */