Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / include / zfs / zio.h
diff --git a/qemu/roms/u-boot/include/zfs/zio.h b/qemu/roms/u-boot/include/zfs/zio.h
new file mode 100644 (file)
index 0000000..888a4d3
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, Inc.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+/*
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _ZIO_H
+#define        _ZIO_H
+
+#include <zfs/spa.h>
+
+#define        ZEC_MAGIC       0x210da7ab10c7a11ULL    /* zio data bloc tail */
+
+typedef struct zio_eck {
+       uint64_t        zec_magic;      /* for validation, endianness   */
+       zio_cksum_t     zec_cksum;      /* 256-bit checksum             */
+} zio_eck_t;
+
+/*
+ * Gang block headers are self-checksumming and contain an array
+ * of block pointers.
+ */
+#define        SPA_GANGBLOCKSIZE       SPA_MINBLOCKSIZE
+#define        SPA_GBH_NBLKPTRS        ((SPA_GANGBLOCKSIZE - \
+       sizeof(zio_eck_t)) / sizeof(blkptr_t))
+#define        SPA_GBH_FILLER          ((SPA_GANGBLOCKSIZE - \
+       sizeof(zio_eck_t) - \
+       (SPA_GBH_NBLKPTRS * sizeof(blkptr_t))) /\
+       sizeof(uint64_t))
+
+#define        ZIO_GET_IOSIZE(zio)     \
+       (BP_IS_GANG((zio)->io_bp) ? \
+       SPA_GANGBLOCKSIZE : BP_GET_PSIZE((zio)->io_bp))
+
+typedef struct zio_gbh {
+       blkptr_t                zg_blkptr[SPA_GBH_NBLKPTRS];
+       uint64_t                zg_filler[SPA_GBH_FILLER];
+       zio_eck_t               zg_tail;
+} zio_gbh_phys_t;
+
+enum zio_checksum {
+       ZIO_CHECKSUM_INHERIT = 0,
+       ZIO_CHECKSUM_ON,
+       ZIO_CHECKSUM_OFF,
+       ZIO_CHECKSUM_LABEL,
+       ZIO_CHECKSUM_GANG_HEADER,
+       ZIO_CHECKSUM_ZILOG,
+       ZIO_CHECKSUM_FLETCHER_2,
+       ZIO_CHECKSUM_FLETCHER_4,
+       ZIO_CHECKSUM_SHA256,
+       ZIO_CHECKSUM_ZILOG2,
+       ZIO_CHECKSUM_FUNCTIONS
+};
+
+#define        ZIO_CHECKSUM_ON_VALUE   ZIO_CHECKSUM_FLETCHER_2
+#define        ZIO_CHECKSUM_DEFAULT    ZIO_CHECKSUM_ON
+
+enum zio_compress {
+       ZIO_COMPRESS_INHERIT = 0,
+       ZIO_COMPRESS_ON,
+       ZIO_COMPRESS_OFF,
+       ZIO_COMPRESS_LZJB,
+       ZIO_COMPRESS_EMPTY,
+       ZIO_COMPRESS_GZIP1,
+       ZIO_COMPRESS_GZIP2,
+       ZIO_COMPRESS_GZIP3,
+       ZIO_COMPRESS_GZIP4,
+       ZIO_COMPRESS_GZIP5,
+       ZIO_COMPRESS_GZIP6,
+       ZIO_COMPRESS_GZIP7,
+       ZIO_COMPRESS_GZIP8,
+       ZIO_COMPRESS_GZIP9,
+       ZIO_COMPRESS_FUNCTIONS
+};
+
+#endif /* _ZIO_H */