Home | History | Annotate | Download | only in qemu

Lines Matching defs:mcb

2047 static void multiwrite_user_cb(MultiwriteCB *mcb)
2051 for (i = 0; i < mcb->num_callbacks; i++) {
2052 mcb->callbacks[i].cb(mcb->callbacks[i].opaque, mcb->error);
2053 if (mcb->callbacks[i].free_qiov) {
2054 qemu_iovec_destroy(mcb->callbacks[i].free_qiov);
2056 qemu_free(mcb->callbacks[i].free_qiov);
2057 qemu_vfree(mcb->callbacks[i].free_buf);
2063 MultiwriteCB *mcb = opaque;
2065 if (ret < 0 && !mcb->error) {
2066 mcb->error = ret;
2069 mcb->num_requests--;
2070 if (mcb->num_requests == 0) {
2071 multiwrite_user_cb(mcb);
2072 qemu_free(mcb);
2098 int num_reqs, MultiwriteCB *mcb)
2147 mcb->callbacks[i].free_buf = buf;
2156 mcb->callbacks[i].free_qiov = reqs[outidx].qiov;
2185 MultiwriteCB *mcb;
2193 mcb = qemu_mallocz(sizeof(*mcb) + num_reqs * sizeof(*mcb->callbacks));
2194 mcb->num_requests = 0;
2195 mcb->num_callbacks = num_reqs;
2198 mcb->callbacks[i].cb = reqs[i].cb;
2199 mcb->callbacks[i].opaque = reqs[i].opaque;
2203 num_reqs = multiwrite_merge(bs, reqs, num_reqs, mcb);
2224 mcb->num_requests = 1;
2227 mcb->num_requests++;
2229 reqs[i].nb_sectors, multiwrite_cb, mcb);
2238 multiwrite_cb(mcb, -EIO);
2245 multiwrite_cb(mcb, 0);
2250 for (i = 0; i < mcb->num_callbacks; i++) {
2253 qemu_free(mcb);