Revision eabba580 block/qed.h

b/block/qed.h
116 116
    CachedL2Table *l2_table;
117 117
} QEDRequest;
118 118

  
119
typedef struct QEDAIOCB {
120
    BlockDriverAIOCB common;
121
    QEMUBH *bh;
122
    int bh_ret;                     /* final return status for completion bh */
123
    QSIMPLEQ_ENTRY(QEDAIOCB) next;  /* next request */
124
    bool is_write;                  /* false - read, true - write */
125
    bool *finished;                 /* signal for cancel completion */
126
    uint64_t end_pos;               /* request end on block device, in bytes */
127

  
128
    /* User scatter-gather list */
129
    QEMUIOVector *qiov;
130
    size_t qiov_offset;             /* byte count already processed */
131

  
132
    /* Current cluster scatter-gather list */
133
    QEMUIOVector cur_qiov;
134
    uint64_t cur_pos;               /* position on block device, in bytes */
135
    uint64_t cur_cluster;           /* cluster offset in image file */
136
    unsigned int cur_nclusters;     /* number of clusters being accessed */
137
    int find_cluster_ret;           /* used for L1/L2 update */
138

  
139
    QEDRequest request;
140
} QEDAIOCB;
141

  
119 142
typedef struct {
120 143
    BlockDriverState *bs;           /* device */
121 144
    uint64_t file_size;             /* length of image file, in bytes */
......
127 150
    uint32_t l1_shift;
128 151
    uint32_t l2_shift;
129 152
    uint32_t l2_mask;
153

  
154
    /* Allocating write request queue */
155
    QSIMPLEQ_HEAD(, QEDAIOCB) allocating_write_reqs;
130 156
} BDRVQEDState;
131 157

  
132 158
enum {

Also available in: Unified diff