Home | History | Annotate | Download | only in qemu

Lines Matching defs:acb

422     struct qemu_paiocb *acb, **pacb;
430 acb = *pacb;
431 if (!acb)
435 if (acb->async_context_id != async_context_id) {
436 pacb = &acb->next;
440 ret = qemu_paio_error(acb);
443 *pacb = acb->next;
444 qemu_aio_release(acb);
449 ret = qemu_paio_return(acb);
450 if (ret == acb->aio_nbytes)
458 //trace_paio_complete(acb, acb->common.opaque, ret);
461 *pacb = acb->next;
463 acb->common.cb(acb->common.opaque, ret);
464 qemu_aio_release(acb);
468 pacb = &acb->next;
518 static void paio_remove(struct qemu_paiocb *acb)
528 } else if (*pacb == acb) {
529 *pacb = acb->next;
530 qemu_aio_release(acb);
539 struct qemu_paiocb *acb = (struct qemu_paiocb *)blockacb;
542 //trace_paio_cancel(acb, acb->common.opaque);
545 if (!acb->active) {
546 QTAILQ_REMOVE(&request_list, acb, node);
547 acb->ret = -ECANCELED;
548 } else if (acb->ret == -EINPROGRESS) {
556 while (qemu_paio_error(acb) == EINPROGRESS)
560 paio_remove(acb);
572 struct qemu_paiocb *acb;
574 acb = qemu_aio_get(&raw_aio_pool, bs, cb, opaque);
575 if (!acb)
577 acb->aio_type = type;
578 acb->aio_fildes = fd;
579 acb->ev_signo = SIGUSR2;
580 acb->async_context_id = get_async_context_id();
583 acb->aio_iov = qiov->iov;
584 acb->aio_niov = qiov->niov;
586 acb->aio_nbytes = nb_sectors * 512;
587 acb->aio_offset = sector_num * 512;
589 acb->next = posix_aio_state->first_aio;
590 posix_aio_state->first_aio = acb;
592 //trace_paio_submit(acb, opaque, sector_num, nb_sectors, type);
593 qemu_paio_submit(acb);
594 return &acb->common;
601 struct qemu_paiocb *acb;
603 acb = qemu_aio_get(&raw_aio_pool, bs, cb, opaque);
604 if (!acb)
606 acb->aio_type = QEMU_AIO_IOCTL;
607 acb->aio_fildes = fd;
608 acb->ev_signo = SIGUSR2;
609 acb->async_context_id = get_async_context_id();
610 acb->aio_offset = 0;
611 acb->aio_ioctl_buf = buf;
612 acb->aio_ioctl_cmd = req;
614 acb->next = posix_aio_state->first_aio;
615 posix_aio_state->first_aio = acb;
617 qemu_paio_submit(acb);
618 return &acb->common;