typedef void (*init_impl_f)(void);
typedef void (*fini_impl_f)(void);
+#define RAIDZ_IMPL_NAME_MAX (16)
+
typedef struct raidz_impl_ops {
init_impl_f init;
fini_impl_f fini;
raidz_gen_f gen[RAIDZ_GEN_NUM]; /* Parity generate functions */
raidz_rec_f rec[RAIDZ_REC_NUM]; /* Data reconstruction functions */
will_work_f is_supported; /* Support check function */
- char *name; /* Name of the implementation */
+ char name[RAIDZ_IMPL_NAME_MAX]; /* Name of the implementation */
} raidz_impl_ops_t;
typedef struct raidz_col {
raidz_col_t rm_col[1]; /* Flexible array of I/O columns */
} raidz_map_t;
+#define RAIDZ_ORIGINAL_IMPL (INT_MAX)
+
extern const raidz_impl_ops_t vdev_raidz_scalar_impl;
#if defined(__x86_64) && defined(HAVE_SSE2) /* only x86_64 for now */
extern const raidz_impl_ops_t vdev_raidz_sse2_impl;