Home | History | Annotate | Download | only in qemu

Lines Matching defs:acb

2184     BlockDriverAIOCB *acb;
2228 acb = bdrv_aio_writev(bs, reqs[i].sector, reqs[i].qiov,
2231 if (acb == NULL) {
2271 void bdrv_aio_cancel(BlockDriverAIOCB *acb)
2273 acb->pool->cancel(acb);
2292 BlockDriverAIOCBSync *acb =
2294 qemu_bh_delete(acb->bh);
2295 acb->bh = NULL;
2296 qemu_aio_release(acb);
2306 BlockDriverAIOCBSync *acb = opaque;
2308 if (!acb->is_write)
2309 qemu_iovec_from_buffer(acb->qiov, acb->bounce, acb->qiov->size);
2310 qemu_vfree(acb->bounce);
2311 acb->common.cb(acb->common.opaque, acb->ret);
2312 qemu_bh_delete(acb->bh);
2313 acb->bh = NULL;
2314 qemu_aio_release(acb);
2326 BlockDriverAIOCBSync *acb;
2328 acb = qemu_aio_get(&bdrv_em_aio_pool, bs, cb, opaque);
2329 acb->is_write = is_write;
2330 acb->qiov = qiov;
2331 acb->bounce = qemu_blockalign(bs, qiov->size);
2333 if (!acb->bh)
2334 acb->bh = qemu_bh_new(bdrv_aio_bh_cb, acb);
2337 qemu_iovec_to_buffer(acb->qiov, acb->bounce);
2338 acb->ret = bdrv_write(bs, sector_num, acb->bounce, nb_sectors);
2340 acb->ret = bdrv_read(bs, sector_num, acb->bounce, nb_sectors);
2343 qemu_bh_schedule(acb->bh);
2345 return &acb->common;
2365 BlockDriverAIOCBSync *acb;
2367 acb = qemu_aio_get(&bdrv_em_aio_pool, bs, cb, opaque);
2368 acb->is_write = 1; /* don't bounce in the completion hadler */
2369 acb->qiov = NULL;
2370 acb->bounce = NULL;
2371 acb->ret = 0;
2373 if (!acb->bh)
2374 acb->bh = qemu_bh_new(bdrv_aio_bh_cb, acb);
2377 qemu_bh_schedule(acb->bh);
2378 return &acb->common;
2384 BlockDriverAIOCBSync *acb;
2386 acb
2387 acb->is_write = 1; /* don't bounce in the completion handler */
2388 acb->qiov = NULL;
2389 acb->bounce = NULL;
2390 acb->ret = 0;
2392 if (!acb->bh) {
2393 acb->bh = qemu_bh_new(bdrv_aio_bh_cb, acb);
2396 qemu_bh_schedule(acb->bh);
2397 return &acb->common;
2414 BlockDriverAIOCB *acb;
2424 acb = bdrv_aio_readv(bs, sector_num, &qiov, nb_sectors,
2426 if (acb == NULL) {
2445 BlockDriverAIOCB *acb;
2455 acb = bdrv_aio_writev(bs, sector_num, &qiov, nb_sectors,
2457 if (acb == NULL) {
2484 BlockDriverAIOCB *acb;
2487 acb = pool->free_aiocb;
2488 pool->free_aiocb = acb->next;
2490 acb = qemu_mallocz(pool->aiocb_size);
2491 acb->pool = pool;
2493 acb->bs = bs;
2494 acb->cb = cb;
2495 acb->opaque = opaque;
2496 return acb;
2501 BlockDriverAIOCB *acb = (BlockDriverAIOCB *)p;
2502 AIOPool *pool = acb->pool;
2503 acb->next = pool->free_aiocb;
2504 pool->free_aiocb = acb;