]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - include/sys/fs/zfs.h
Imported Upstream version 0.6.2+git20140204
[mirror_zfs-debian.git] / include / sys / fs / zfs.h
index 26c24fc003aa132f0642403cf23acfe59696817b..c54721155a851ad93b76e323534e4e4a525e3570 100644 (file)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  */
@@ -52,6 +52,16 @@ typedef enum {
        ZFS_TYPE_POOL           = 0x8
 } zfs_type_t;
 
+typedef enum dmu_objset_type {
+       DMU_OST_NONE,
+       DMU_OST_META,
+       DMU_OST_ZFS,
+       DMU_OST_ZVOL,
+       DMU_OST_OTHER,                  /* For testing only! */
+       DMU_OST_ANY,                    /* Be careful! */
+       DMU_OST_NUMTYPES
+} dmu_objset_type_t;
+
 #define        ZFS_TYPE_DATASET        \
        (ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME | ZFS_TYPE_SNAPSHOT)
 
@@ -128,7 +138,16 @@ typedef enum {
        ZFS_PROP_REFRATIO,
        ZFS_PROP_WRITTEN,
        ZFS_PROP_CLONES,
+       ZFS_PROP_LOGICALUSED,
+       ZFS_PROP_LOGICALREFERENCED,
+       ZFS_PROP_INCONSISTENT,          /* not exposed to the user */
        ZFS_PROP_SNAPDEV,
+       ZFS_PROP_ACLTYPE,
+       ZFS_PROP_SELINUX_CONTEXT,
+       ZFS_PROP_SELINUX_FSCONTEXT,
+       ZFS_PROP_SELINUX_DEFCONTEXT,
+       ZFS_PROP_SELINUX_ROOTCONTEXT,
+       ZFS_PROP_RELATIME,
        ZFS_NUM_PROPS
 } zfs_prop_t;
 
@@ -516,7 +535,7 @@ typedef struct zpool_rewind_policy {
 #define        ZPOOL_CONFIG_SPLIT_GUID         "split_guid"
 #define        ZPOOL_CONFIG_SPLIT_LIST         "guid_list"
 #define        ZPOOL_CONFIG_REMOVING           "removing"
-#define        ZPOOL_CONFIG_RESILVERING        "resilvering"
+#define        ZPOOL_CONFIG_RESILVER_TXG       "resilver_txg"
 #define        ZPOOL_CONFIG_COMMENT            "comment"
 #define        ZPOOL_CONFIG_SUSPENDED          "suspended"     /* not stored on disk */
 #define        ZPOOL_CONFIG_TIMESTAMP          "timestamp"     /* not stored on disk */
@@ -753,10 +772,13 @@ typedef struct ddt_histogram {
 /*
  * /dev/zfs ioctl numbers.
  */
-#define        ZFS_IOC         ('Z' << 8)
-
 typedef enum zfs_ioc {
-       ZFS_IOC_POOL_CREATE = ZFS_IOC,
+       /*
+        * Illumos - 69/128 numbers reserved.
+        */
+       ZFS_IOC_FIRST = ('Z' << 8),
+       ZFS_IOC = ZFS_IOC_FIRST,
+       ZFS_IOC_POOL_CREATE = ZFS_IOC_FIRST,
        ZFS_IOC_POOL_DESTROY,
        ZFS_IOC_POOL_IMPORT,
        ZFS_IOC_POOL_EXPORT,
@@ -779,8 +801,6 @@ typedef enum zfs_ioc {
        ZFS_IOC_DATASET_LIST_NEXT,
        ZFS_IOC_SNAPSHOT_LIST_NEXT,
        ZFS_IOC_SET_PROP,
-       ZFS_IOC_CREATE_MINOR,
-       ZFS_IOC_REMOVE_MINOR,
        ZFS_IOC_CREATE,
        ZFS_IOC_DESTROY,
        ZFS_IOC_ROLLBACK,
@@ -793,7 +813,6 @@ typedef enum zfs_ioc {
        ZFS_IOC_ERROR_LOG,
        ZFS_IOC_CLEAR,
        ZFS_IOC_PROMOTE,
-       ZFS_IOC_DESTROY_SNAPS_NVL,
        ZFS_IOC_SNAPSHOT,
        ZFS_IOC_DSOBJ_TO_DSNAME,
        ZFS_IOC_OBJ_TO_PATH,
@@ -816,19 +835,36 @@ typedef enum zfs_ioc {
        ZFS_IOC_DIFF,
        ZFS_IOC_TMP_SNAPSHOT,
        ZFS_IOC_OBJ_TO_STATS,
-       ZFS_IOC_EVENTS_NEXT,
-       ZFS_IOC_EVENTS_CLEAR,
-       ZFS_IOC_POOL_REGUID,
        ZFS_IOC_SPACE_WRITTEN,
        ZFS_IOC_SPACE_SNAPS,
+       ZFS_IOC_DESTROY_SNAPS,
+       ZFS_IOC_POOL_REGUID,
        ZFS_IOC_POOL_REOPEN,
        ZFS_IOC_SEND_PROGRESS,
+       ZFS_IOC_LOG_HISTORY,
+       ZFS_IOC_SEND_NEW,
+       ZFS_IOC_SEND_SPACE,
+       ZFS_IOC_CLONE,
+
+       /*
+        * Linux - 3/64 numbers reserved.
+        */
+       ZFS_IOC_LINUX = ('Z' << 8) + 0x80,
+       ZFS_IOC_EVENTS_NEXT,
+       ZFS_IOC_EVENTS_CLEAR,
+
+       /*
+        * FreeBSD - 1/64 numbers reserved.
+        */
+       ZFS_IOC_FREEBSD = ('Z' << 8) + 0xC0,
+
+       ZFS_IOC_LAST
 } zfs_ioc_t;
 
 /*
  * zvol ioctl to get dataset name
  */
-#define BLKZNAME               _IOR(0x12,125,char[ZFS_MAXNAMELEN])
+#define        BLKZNAME                _IOR(0x12, 125, char[ZFS_MAXNAMELEN])
 
 /*
  * Internal SPA load state.  Used by FMA diagnosis engine.
@@ -864,6 +900,12 @@ typedef enum {
 #define        ZPOOL_HIST_TXG          "history txg"
 #define        ZPOOL_HIST_INT_EVENT    "history internal event"
 #define        ZPOOL_HIST_INT_STR      "history internal str"
+#define        ZPOOL_HIST_INT_NAME     "internal_name"
+#define        ZPOOL_HIST_IOCTL        "ioctl"
+#define        ZPOOL_HIST_INPUT_NVL    "in_nvl"
+#define        ZPOOL_HIST_OUTPUT_NVL   "out_nvl"
+#define        ZPOOL_HIST_DSNAME       "dsname"
+#define        ZPOOL_HIST_DSID         "dsid"
 
 /*
  * Flags for ZFS_IOC_VDEV_SET_STATE
@@ -909,57 +951,6 @@ typedef enum {
 #define        ZFS_EV_VDEV_PATH        "vdev_path"
 #define        ZFS_EV_VDEV_GUID        "vdev_guid"
 
-/*
- * Note: This is encoded on-disk, so new events must be added to the
- * end, and unused events can not be removed.  Be sure to edit
- * libzfs_pool.c: hist_event_table[].
- */
-typedef enum history_internal_events {
-       LOG_NO_EVENT = 0,
-       LOG_POOL_CREATE,
-       LOG_POOL_VDEV_ADD,
-       LOG_POOL_REMOVE,
-       LOG_POOL_DESTROY,
-       LOG_POOL_EXPORT,
-       LOG_POOL_IMPORT,
-       LOG_POOL_VDEV_ATTACH,
-       LOG_POOL_VDEV_REPLACE,
-       LOG_POOL_VDEV_DETACH,
-       LOG_POOL_VDEV_ONLINE,
-       LOG_POOL_VDEV_OFFLINE,
-       LOG_POOL_UPGRADE,
-       LOG_POOL_CLEAR,
-       LOG_POOL_SCAN,
-       LOG_POOL_PROPSET,
-       LOG_DS_CREATE,
-       LOG_DS_CLONE,
-       LOG_DS_DESTROY,
-       LOG_DS_DESTROY_BEGIN,
-       LOG_DS_INHERIT,
-       LOG_DS_PROPSET,
-       LOG_DS_QUOTA,
-       LOG_DS_PERM_UPDATE,
-       LOG_DS_PERM_REMOVE,
-       LOG_DS_PERM_WHO_REMOVE,
-       LOG_DS_PROMOTE,
-       LOG_DS_RECEIVE,
-       LOG_DS_RENAME,
-       LOG_DS_RESERVATION,
-       LOG_DS_REPLAY_INC_SYNC,
-       LOG_DS_REPLAY_FULL_SYNC,
-       LOG_DS_ROLLBACK,
-       LOG_DS_SNAPSHOT,
-       LOG_DS_UPGRADE,
-       LOG_DS_REFQUOTA,
-       LOG_DS_REFRESERV,
-       LOG_POOL_SCAN_DONE,
-       LOG_DS_USER_HOLD,
-       LOG_DS_USER_RELEASE,
-       LOG_POOL_SPLIT,
-       LOG_POOL_GUID_CHANGE,
-       LOG_END
-} history_internal_events_t;
-
 #ifdef __cplusplus
 }
 #endif