]> git.sur5r.net Git - u-boot/blob - include/zfs/zio.h
x86: baytrail: Drop EFI-specific test logics
[u-boot] / include / zfs / zio.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 (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
8  */
9
10 #ifndef _ZIO_H
11 #define _ZIO_H
12
13 #include <zfs/spa.h>
14
15 #define ZEC_MAGIC       0x210da7ab10c7a11ULL    /* zio data bloc tail */
16
17 typedef struct zio_eck {
18         uint64_t        zec_magic;      /* for validation, endianness   */
19         zio_cksum_t     zec_cksum;      /* 256-bit checksum             */
20 } zio_eck_t;
21
22 /*
23  * Gang block headers are self-checksumming and contain an array
24  * of block pointers.
25  */
26 #define SPA_GANGBLOCKSIZE       SPA_MINBLOCKSIZE
27 #define SPA_GBH_NBLKPTRS        ((SPA_GANGBLOCKSIZE - \
28         sizeof(zio_eck_t)) / sizeof(blkptr_t))
29 #define SPA_GBH_FILLER          ((SPA_GANGBLOCKSIZE - \
30         sizeof(zio_eck_t) - \
31         (SPA_GBH_NBLKPTRS * sizeof(blkptr_t))) /\
32         sizeof(uint64_t))
33
34 #define ZIO_GET_IOSIZE(zio)     \
35         (BP_IS_GANG((zio)->io_bp) ? \
36         SPA_GANGBLOCKSIZE : BP_GET_PSIZE((zio)->io_bp))
37
38 typedef struct zio_gbh {
39         blkptr_t                zg_blkptr[SPA_GBH_NBLKPTRS];
40         uint64_t                zg_filler[SPA_GBH_FILLER];
41         zio_eck_t               zg_tail;
42 } zio_gbh_phys_t;
43
44 enum zio_checksum {
45         ZIO_CHECKSUM_INHERIT = 0,
46         ZIO_CHECKSUM_ON,
47         ZIO_CHECKSUM_OFF,
48         ZIO_CHECKSUM_LABEL,
49         ZIO_CHECKSUM_GANG_HEADER,
50         ZIO_CHECKSUM_ZILOG,
51         ZIO_CHECKSUM_FLETCHER_2,
52         ZIO_CHECKSUM_FLETCHER_4,
53         ZIO_CHECKSUM_SHA256,
54         ZIO_CHECKSUM_ZILOG2,
55         ZIO_CHECKSUM_FUNCTIONS
56 };
57
58 #define ZIO_CHECKSUM_ON_VALUE   ZIO_CHECKSUM_FLETCHER_2
59 #define ZIO_CHECKSUM_DEFAULT    ZIO_CHECKSUM_ON
60
61 enum zio_compress {
62         ZIO_COMPRESS_INHERIT = 0,
63         ZIO_COMPRESS_ON,
64         ZIO_COMPRESS_OFF,
65         ZIO_COMPRESS_LZJB,
66         ZIO_COMPRESS_EMPTY,
67         ZIO_COMPRESS_GZIP1,
68         ZIO_COMPRESS_GZIP2,
69         ZIO_COMPRESS_GZIP3,
70         ZIO_COMPRESS_GZIP4,
71         ZIO_COMPRESS_GZIP5,
72         ZIO_COMPRESS_GZIP6,
73         ZIO_COMPRESS_GZIP7,
74         ZIO_COMPRESS_GZIP8,
75         ZIO_COMPRESS_GZIP9,
76         ZIO_COMPRESS_FUNCTIONS
77 };
78
79 #endif  /* _ZIO_H */