Revision 4333bb71 include/block/block.h

b/include/block/block.h
81 81
#define BDRV_SECTOR_SIZE   (1ULL << BDRV_SECTOR_BITS)
82 82
#define BDRV_SECTOR_MASK   ~(BDRV_SECTOR_SIZE - 1)
83 83

  
84
/* BDRV_BLOCK_DATA: data is read from bs->file or another file
85
 * BDRV_BLOCK_ZERO: sectors read as zero
86
 * BDRV_BLOCK_OFFSET_VALID: sector stored in bs->file as raw data
87
 *
88
 * If BDRV_BLOCK_OFFSET_VALID is set, bits 9-62 represent the offset in
89
 * bs->file where sector data can be read from as raw data.
90
 *
91
 * DATA == 0 && ZERO == 0 means that data is read from backing_hd if present.
92
 *
93
 * DATA ZERO OFFSET_VALID
94
 *  t    t        t       sectors read as zero, bs->file is zero at offset
95
 *  t    f        t       sectors read as valid from bs->file at offset
96
 *  f    t        t       sectors preallocated, read as zero, bs->file not
97
 *                        necessarily zero at offset
98
 *  f    f        t       sectors preallocated but read from backing_hd,
99
 *                        bs->file contains garbage at offset
100
 *  t    t        f       sectors preallocated, read as zero, unknown offset
101
 *  t    f        f       sectors read from unknown file or offset
102
 *  f    t        f       not allocated or unknown offset, read as zero
103
 *  f    f        f       not allocated or unknown offset, read from backing_hd
104
 */
105
#define BDRV_BLOCK_DATA         1
106
#define BDRV_BLOCK_ZERO         2
107
#define BDRV_BLOCK_OFFSET_VALID 4
108
#define BDRV_BLOCK_OFFSET_MASK  BDRV_SECTOR_MASK
109

  
84 110
typedef enum {
85 111
    BDRV_ACTION_REPORT, BDRV_ACTION_IGNORE, BDRV_ACTION_STOP
86 112
} BlockErrorAction;

Also available in: Unified diff