40
41 typedef struct zfeature_info {
42 const char *fi_uname; /* User-facing feature name */
43 const char *fi_guid; /* On-disk feature identifier */
44 const char *fi_desc; /* Feature description */
45 boolean_t fi_can_readonly; /* Can open pool readonly w/o support? */
46 boolean_t fi_mos; /* Is the feature necessary to read the MOS? */
47 struct zfeature_info **fi_depends; /* array; null terminated */
48 } zfeature_info_t;
49
50 typedef int (zfeature_func_t)(zfeature_info_t *fi, void *arg);
51
52 #define ZFS_FEATURE_DEBUG
53
54 enum spa_feature {
55 SPA_FEATURE_ASYNC_DESTROY,
56 SPA_FEATURE_EMPTY_BPOBJ,
57 SPA_FEATURE_LZ4_COMPRESS,
58 SPA_FEATURE_MULTI_VDEV_CRASH_DUMP,
59 SPA_FEATURE_SPACEMAP_HISTOGRAM,
60 SPA_FEATURES
61 } spa_feature_t;
62
63 extern zfeature_info_t spa_feature_table[SPA_FEATURES];
64
65 extern boolean_t zfeature_is_valid_guid(const char *);
66
67 extern boolean_t zfeature_is_supported(const char *);
68 extern int zfeature_lookup_guid(const char *, zfeature_info_t **res);
69 extern int zfeature_lookup_name(const char *, zfeature_info_t **res);
70
71 extern void zpool_feature_init(void);
72
73 #ifdef __cplusplus
74 }
75 #endif
76
77 #endif /* _ZFEATURE_COMMON_H */
|
40
41 typedef struct zfeature_info {
42 const char *fi_uname; /* User-facing feature name */
43 const char *fi_guid; /* On-disk feature identifier */
44 const char *fi_desc; /* Feature description */
45 boolean_t fi_can_readonly; /* Can open pool readonly w/o support? */
46 boolean_t fi_mos; /* Is the feature necessary to read the MOS? */
47 struct zfeature_info **fi_depends; /* array; null terminated */
48 } zfeature_info_t;
49
50 typedef int (zfeature_func_t)(zfeature_info_t *fi, void *arg);
51
52 #define ZFS_FEATURE_DEBUG
53
54 enum spa_feature {
55 SPA_FEATURE_ASYNC_DESTROY,
56 SPA_FEATURE_EMPTY_BPOBJ,
57 SPA_FEATURE_LZ4_COMPRESS,
58 SPA_FEATURE_MULTI_VDEV_CRASH_DUMP,
59 SPA_FEATURE_SPACEMAP_HISTOGRAM,
60 SPA_FEATURE_SHA512,
61 SPA_FEATURE_SKEIN,
62 SPA_FEATURE_EDONR,
63 SPA_FEATURES
64 } spa_feature_t;
65
66 extern zfeature_info_t spa_feature_table[SPA_FEATURES];
67
68 extern boolean_t zfeature_is_valid_guid(const char *);
69
70 extern boolean_t zfeature_is_supported(const char *);
71 extern int zfeature_lookup_guid(const char *, zfeature_info_t **res);
72 extern int zfeature_lookup_name(const char *, zfeature_info_t **res);
73
74 extern void zpool_feature_init(void);
75
76 #ifdef __cplusplus
77 }
78 #endif
79
80 #endif /* _ZFEATURE_COMMON_H */
|