示例#1
0
static BlockDriverAIOCB *raw_aio_writev(BlockDriverState *bs,
        int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
        BlockDriverCompletionFunc *cb, void *opaque)
{
    return raw_aio_submit(bs, sector_num, qiov, nb_sectors,
                          cb, opaque, QEMU_AIO_WRITE);
}
示例#2
0
static BlockDriverAIOCB *raw_aio_writev(BlockDriverState *bs,
        int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
        BlockDriverCompletionFunc *cb, void *opaque)
{
    if (__hook_bdrv_aio_write) {
        ///XXX: only do when s2e is running
        return __hook_bdrv_aio_write(bs, sector_num, qiov->iov->iov_base, nb_sectors, cb, opaque);
    }

    return raw_aio_submit(bs, sector_num, qiov, nb_sectors,
                          cb, opaque, QEMU_AIO_WRITE);
}
示例#3
0
static BlockDriverAIOCB *raw_aio_readv(BlockDriverState *bs,
        int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
        BlockDriverCompletionFunc *cb, void *opaque)
{
    if (__hook_bdrv_aio_read) {
        int fallback;
        static BlockDriverAIOCB *ret;
        ret = __hook_bdrv_aio_read(bs, sector_num, qiov->iov->iov_base, nb_sectors, cb, 
            opaque, &fallback, &raw_read);
        if (!fallback) {
            return ret;
        }
    }

    return raw_aio_submit(bs, sector_num, qiov, nb_sectors,
                          cb, opaque, QEMU_AIO_READ);
}