Lines Matching refs:bs

185 static int fd_open(BlockDriverState *bs)  in fd_open()  argument
187 BDRVRawState *s = bs->opaque; in fd_open()
196 static int64_t raw_getlength(BlockDriverState *bs);
199 BlockDriverState *bs; member
234 static int cdrom_reopen(BlockDriverState *bs);
359 static bool raw_needs_alignment(BlockDriverState *bs) in raw_needs_alignment() argument
361 BDRVRawState *s = bs->opaque; in raw_needs_alignment()
363 if ((bs->open_flags & BDRV_O_NOCACHE) != 0 && !dio_byte_aligned(s->fd)) { in raw_needs_alignment()
395 static void raw_probe_alignment(BlockDriverState *bs, int fd, Error **errp) in raw_probe_alignment() argument
397 BDRVRawState *s = bs->opaque; in raw_probe_alignment()
404 if (bdrv_is_sg(bs) || !s->needs_alignment) { in raw_probe_alignment()
405 bs->bl.request_alignment = 1; in raw_probe_alignment()
410 bs->bl.request_alignment = 0; in raw_probe_alignment()
413 if (probe_logical_blocksize(fd, &bs->bl.request_alignment) < 0) { in raw_probe_alignment()
414 bs->bl.request_alignment = 0; in raw_probe_alignment()
429 bs->bl.request_alignment = da.d_miniosz; in raw_probe_alignment()
443 if (!bs->bl.request_alignment) { in raw_probe_alignment()
451 bs->bl.request_alignment = (align != 1) ? align : max_align; in raw_probe_alignment()
466 s->buf_align = (align != 1) ? align : bs->bl.request_alignment; in raw_probe_alignment()
473 if (!s->buf_align || !bs->bl.request_alignment) { in raw_probe_alignment()
592 static int raw_open_common(BlockDriverState *bs, QDict *options, in raw_open_common() argument
596 BDRVRawState *s = bs->opaque; in raw_open_common()
755 bs->drv->format_name, bs->filename); in raw_open_common()
765 bs->drv->format_name, bs->filename); in raw_open_common()
775 if ((bs->bl.zoned != BLK_Z_NONE) && in raw_open_common()
789 if (!(bs->open_flags & BDRV_O_NOCACHE)) { in raw_open_common()
805 s->needs_alignment = raw_needs_alignment(bs); in raw_open_common()
807 bs->supported_zero_flags = BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK; in raw_open_common()
810 bs->supported_truncate_flags = BDRV_REQ_ZERO_WRITE; in raw_open_common()
824 static int raw_open(BlockDriverState *bs, QDict *options, int flags, in raw_open() argument
827 BDRVRawState *s = bs->opaque; in raw_open()
830 return raw_open_common(bs, options, flags, 0, false, errp); in raw_open()
962 static int raw_handle_perm_lock(BlockDriverState *bs, in raw_handle_perm_lock() argument
967 BDRVRawState *s = bs->opaque; in raw_handle_perm_lock()
975 if (bdrv_get_flags(bs) & BDRV_O_INACTIVE) { in raw_handle_perm_lock()
1003 bs->filename); in raw_handle_perm_lock()
1045 static int raw_reconfigure_getfd(BlockDriverState *bs, int flags, in raw_reconfigure_getfd() argument
1048 BDRVRawState *s = bs->opaque; in raw_reconfigure_getfd()
1093 const char *normalized_filename = bs->filename; in raw_reconfigure_getfd()
1124 assert(state->bs != NULL); in raw_reopen_prepare()
1126 s = state->bs->opaque; in raw_reopen_prepare()
1167 BDRVRawState *s = state->bs->opaque; in raw_reopen_commit()
1183 BDRVRawState *s = state->bs->opaque; in raw_reopen_abort()
1319 static int get_zones_wp(BlockDriverState *bs, int fd, int64_t offset, in get_zones_wp() argument
1325 BlockZoneWps *wps = bs->wps; in get_zones_wp()
1326 unsigned int j = offset / bs->bl.zone_size; in get_zones_wp()
1389 static void update_zones_wp(BlockDriverState *bs, int fd, int64_t offset, in update_zones_wp() argument
1392 if (get_zones_wp(bs, fd, offset, nrz, 0) < 0) { in update_zones_wp()
1397 static void raw_refresh_zoned_limits(BlockDriverState *bs, struct stat *st, in raw_refresh_zoned_limits() argument
1400 BDRVRawState *s = bs->opaque; in raw_refresh_zoned_limits()
1408 bs->bl.zoned = zoned; in raw_refresh_zoned_limits()
1412 bs->bl.max_open_zones = ret; in raw_refresh_zoned_limits()
1417 bs->bl.max_active_zones = ret; in raw_refresh_zoned_limits()
1432 bs->bl.zone_size = ret << BDRV_SECTOR_BITS; in raw_refresh_zoned_limits()
1443 bs->bl.nr_zones = ret; in raw_refresh_zoned_limits()
1447 bs->bl.max_append_sectors = ret >> BDRV_SECTOR_BITS; in raw_refresh_zoned_limits()
1452 bs->bl.write_granularity = ret; in raw_refresh_zoned_limits()
1456 g_free(bs->wps); in raw_refresh_zoned_limits()
1457 bs->wps = g_malloc(sizeof(BlockZoneWps) + in raw_refresh_zoned_limits()
1458 sizeof(int64_t) * bs->bl.nr_zones); in raw_refresh_zoned_limits()
1459 ret = get_zones_wp(bs, s->fd, 0, bs->bl.nr_zones, 0); in raw_refresh_zoned_limits()
1464 qemu_co_mutex_init(&bs->wps->colock); in raw_refresh_zoned_limits()
1468 bs->bl.zoned = BLK_Z_NONE; in raw_refresh_zoned_limits()
1469 g_free(bs->wps); in raw_refresh_zoned_limits()
1470 bs->wps = NULL; in raw_refresh_zoned_limits()
1473 static void raw_refresh_zoned_limits(BlockDriverState *bs, struct stat *st, in raw_refresh_zoned_limits() argument
1476 bs->bl.zoned = BLK_Z_NONE; in raw_refresh_zoned_limits()
1480 static void raw_refresh_limits(BlockDriverState *bs, Error **errp) in raw_refresh_limits() argument
1482 BDRVRawState *s = bs->opaque; in raw_refresh_limits()
1485 s->needs_alignment = raw_needs_alignment(bs); in raw_refresh_limits()
1486 raw_probe_alignment(bs, s->fd, errp); in raw_refresh_limits()
1488 bs->bl.min_mem_alignment = s->buf_align; in raw_refresh_limits()
1489 bs->bl.opt_mem_alignment = MAX(s->buf_align, qemu_real_host_page_size()); in raw_refresh_limits()
1504 bs->bl.opt_transfer = buf.f_iosize; in raw_refresh_limits()
1505 bs->bl.pdiscard_alignment = buf.f_bsize; in raw_refresh_limits()
1509 if (bdrv_is_sg(bs) || S_ISBLK(st.st_mode)) { in raw_refresh_limits()
1513 bs->bl.max_hw_transfer = ret; in raw_refresh_limits()
1518 bs->bl.max_hw_iov = ret; in raw_refresh_limits()
1522 raw_refresh_zoned_limits(bs, &st, errp); in raw_refresh_limits()
1541 static int hdev_probe_blocksizes(BlockDriverState *bs, BlockSizes *bsz) in hdev_probe_blocksizes() argument
1543 BDRVRawState *s = bs->opaque; in hdev_probe_blocksizes()
1549 if (bs->bl.zoned == BLK_Z_NONE) { in hdev_probe_blocksizes()
1567 static int hdev_probe_geometry(BlockDriverState *bs, HDGeometry *geo) in hdev_probe_geometry() argument
1569 BDRVRawState *s = bs->opaque; in hdev_probe_geometry()
1595 static int hdev_probe_geometry(BlockDriverState *bs, HDGeometry *geo) in hdev_probe_geometry() argument
1621 BDRVRawState *s = aiocb->bs->opaque; in handle_aiocb_flush()
1735 (aiocb->bs->open_flags & BDRV_O_NOCACHE) && in handle_aiocb_rw_linear()
1796 buf = qemu_try_blockalign(aiocb->bs, aiocb->aio_nbytes); in handle_aiocb_rw()
1876 BDRVRawState *s = aiocb->bs->opaque; in handle_aiocb_write_zeroes_block()
1908 BDRVRawState *s = aiocb->bs->opaque; in handle_aiocb_write_zeroes()
1967 len = raw_getlength(aiocb->bs); in handle_aiocb_write_zeroes()
1983 BDRVRawState *s G_GNUC_UNUSED = aiocb->bs->opaque; in handle_aiocb_write_zeroes_unmap()
2171 trace_file_copy_file_range(aiocb->bs, aiocb->aio_fildes, in_off, in handle_aiocb_copy_range()
2198 BDRVRawState *s = aiocb->bs->opaque; in handle_aiocb_discard()
2418 static bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov) in bdrv_qiov_is_aligned() argument
2421 size_t alignment = bdrv_min_mem_align(bs); in bdrv_qiov_is_aligned()
2422 size_t len = bs->bl.request_alignment; in bdrv_qiov_is_aligned()
2479 static int coroutine_fn raw_co_prw(BlockDriverState *bs, int64_t *offset_ptr, in raw_co_prw() argument
2482 BDRVRawState *s = bs->opaque; in raw_co_prw()
2487 if (fd_open(bs) < 0) in raw_co_prw()
2491 bs->bl.zoned != BLK_Z_NONE) { in raw_co_prw()
2492 qemu_co_mutex_lock(&bs->wps->colock); in raw_co_prw()
2494 int index = offset / bs->bl.zone_size; in raw_co_prw()
2495 offset = bs->wps->wp[index]; in raw_co_prw()
2506 if (s->needs_alignment && !bdrv_qiov_is_aligned(bs, qiov)) { in raw_co_prw()
2511 ret = luring_co_submit(bs, s->fd, offset, qiov, type); in raw_co_prw()
2524 .bs = bs, in raw_co_prw()
2542 bs->bl.zoned != BLK_Z_NONE) { in raw_co_prw()
2543 BlockZoneWps *wps = bs->wps; in raw_co_prw()
2545 uint64_t *wp = &wps->wp[offset / bs->bl.zone_size]; in raw_co_prw()
2549 trace_zbd_zone_append_complete(bs, *offset_ptr in raw_co_prw()
2561 update_zones_wp(bs, s->fd, offset, 1); in raw_co_prw()
2570 static int coroutine_fn raw_co_preadv(BlockDriverState *bs, int64_t offset, in raw_co_preadv() argument
2574 return raw_co_prw(bs, &offset, bytes, qiov, QEMU_AIO_READ); in raw_co_preadv()
2577 static int coroutine_fn raw_co_pwritev(BlockDriverState *bs, int64_t offset, in raw_co_pwritev() argument
2581 return raw_co_prw(bs, &offset, bytes, qiov, QEMU_AIO_WRITE); in raw_co_pwritev()
2584 static int coroutine_fn raw_co_flush_to_disk(BlockDriverState *bs) in raw_co_flush_to_disk() argument
2586 BDRVRawState *s = bs->opaque; in raw_co_flush_to_disk()
2590 ret = fd_open(bs); in raw_co_flush_to_disk()
2596 .bs = bs, in raw_co_flush_to_disk()
2603 return luring_co_submit(bs, s->fd, 0, NULL, QEMU_AIO_FLUSH); in raw_co_flush_to_disk()
2614 static void raw_close(BlockDriverState *bs) in raw_close() argument
2616 BDRVRawState *s = bs->opaque; in raw_close()
2620 g_free(bs->wps); in raw_close()
2634 raw_regular_truncate(BlockDriverState *bs, int fd, int64_t offset, in raw_regular_truncate() argument
2640 .bs = bs, in raw_regular_truncate()
2653 static int coroutine_fn raw_co_truncate(BlockDriverState *bs, int64_t offset, in raw_co_truncate() argument
2657 BDRVRawState *s = bs->opaque; in raw_co_truncate()
2669 return raw_regular_truncate(bs, s->fd, offset, prealloc, errp); in raw_co_truncate()
2679 int64_t cur_length = raw_getlength(bs); in raw_co_truncate()
2697 static int64_t raw_getlength(BlockDriverState *bs) in raw_getlength() argument
2699 BDRVRawState *s = bs->opaque; in raw_getlength()
2716 static int64_t raw_getlength(BlockDriverState *bs) in raw_getlength() argument
2718 BDRVRawState *s = bs->opaque; in raw_getlength()
2741 static int64_t raw_getlength(BlockDriverState *bs) in raw_getlength() argument
2743 BDRVRawState *s = bs->opaque; in raw_getlength()
2748 ret = fd_open(bs); in raw_getlength()
2772 static int64_t raw_getlength(BlockDriverState *bs) in raw_getlength() argument
2774 BDRVRawState *s = bs->opaque; in raw_getlength()
2783 ret = fd_open(bs); in raw_getlength()
2829 if (size <= 0 && !reopened && cdrom_reopen(bs) >= 0) { in raw_getlength()
2844 static int64_t raw_getlength(BlockDriverState *bs) in raw_getlength() argument
2846 BDRVRawState *s = bs->opaque; in raw_getlength()
2850 ret = fd_open(bs); in raw_getlength()
2863 static int64_t coroutine_fn raw_co_getlength(BlockDriverState *bs) in raw_co_getlength() argument
2865 return raw_getlength(bs); in raw_co_getlength()
2868 static int64_t coroutine_fn raw_co_get_allocated_file_size(BlockDriverState *bs) in raw_co_get_allocated_file_size() argument
2871 BDRVRawState *s = bs->opaque; in raw_co_get_allocated_file_size()
3061 static int coroutine_fn raw_co_delete_file(BlockDriverState *bs, in raw_co_delete_file() argument
3067 if (!(stat(bs->filename, &st) == 0) || !S_ISREG(st.st_mode)) { in raw_co_delete_file()
3069 bs->filename); in raw_co_delete_file()
3073 ret = unlink(bs->filename); in raw_co_delete_file()
3077 bs->filename); in raw_co_delete_file()
3093 static int find_allocation(BlockDriverState *bs, off_t start, in find_allocation() argument
3097 BDRVRawState *s = bs->opaque; in find_allocation()
3190 static int coroutine_fn raw_co_block_status(BlockDriverState *bs, in raw_co_block_status() argument
3200 assert(QEMU_IS_ALIGNED(offset | bytes, bs->bl.request_alignment)); in raw_co_block_status()
3202 ret = fd_open(bs); in raw_co_block_status()
3210 *file = bs; in raw_co_block_status()
3214 ret = find_allocation(bs, offset, &data, &hole); in raw_co_block_status()
3232 if (!QEMU_IS_ALIGNED(*pnum, bs->bl.request_alignment)) { in raw_co_block_status()
3233 int64_t file_length = raw_getlength(bs); in raw_co_block_status()
3238 *pnum = ROUND_UP(*pnum, bs->bl.request_alignment); in raw_co_block_status()
3249 *file = bs; in raw_co_block_status()
3255 static void check_cache_dropped(BlockDriverState *bs, Error **errp) in check_cache_dropped() argument
3258 BDRVRawState *s = bs->opaque; in check_cache_dropped()
3270 end = raw_getlength(bs); in check_cache_dropped()
3324 raw_co_invalidate_cache(BlockDriverState *bs, Error **errp) in raw_co_invalidate_cache() argument
3326 BDRVRawState *s = bs->opaque; in raw_co_invalidate_cache()
3329 ret = fd_open(bs); in raw_co_invalidate_cache()
3345 ret = bdrv_co_flush(bs); in raw_co_invalidate_cache()
3362 check_cache_dropped(bs, errp); in raw_co_invalidate_cache()
3392 static int coroutine_fn raw_co_zone_report(BlockDriverState *bs, int64_t offset, in raw_co_zone_report() argument
3395 BDRVRawState *s = bs->opaque; in raw_co_zone_report()
3397 .bs = bs, in raw_co_zone_report()
3407 trace_zbd_zone_report(bs, *nr_zones, offset >> BDRV_SECTOR_BITS); in raw_co_zone_report()
3416 static int coroutine_fn raw_co_zone_mgmt(BlockDriverState *bs, BlockZoneOp op, in raw_co_zone_mgmt() argument
3418 BDRVRawState *s = bs->opaque; in raw_co_zone_mgmt()
3424 BlockZoneWps *wps = bs->wps; in raw_co_zone_mgmt()
3425 int64_t capacity = bs->total_sectors << BDRV_SECTOR_BITS; in raw_co_zone_mgmt()
3427 zone_size = bs->bl.zone_size; in raw_co_zone_mgmt()
3442 uint32_t i = offset / bs->bl.zone_size; in raw_co_zone_mgmt()
3443 uint32_t nrz = len / bs->bl.zone_size; in raw_co_zone_mgmt()
3473 .bs = bs, in raw_co_zone_mgmt()
3483 trace_zbd_zone_mgmt(bs, op_name, offset >> BDRV_SECTOR_BITS, in raw_co_zone_mgmt()
3487 update_zones_wp(bs, s->fd, offset, nrz); in raw_co_zone_mgmt()
3493 ret = get_zones_wp(bs, s->fd, 0, bs->bl.nr_zones, 1); in raw_co_zone_mgmt()
3515 static int coroutine_fn raw_co_zone_append(BlockDriverState *bs, in raw_co_zone_append() argument
3520 int64_t zone_size_mask = bs->bl.zone_size - 1; in raw_co_zone_append()
3526 "%" PRId32 "", *offset / 512, bs->bl.zone_size / 512); in raw_co_zone_append()
3530 int64_t wg = bs->bl.write_granularity; in raw_co_zone_append()
3542 trace_zbd_zone_append(bs, *offset >> BDRV_SECTOR_BITS); in raw_co_zone_append()
3543 return raw_co_prw(bs, offset, len, qiov, QEMU_AIO_ZONE_APPEND); in raw_co_zone_append()
3548 raw_do_pdiscard(BlockDriverState *bs, int64_t offset, int64_t bytes, in raw_do_pdiscard() argument
3551 BDRVRawState *s = bs->opaque; in raw_do_pdiscard()
3556 .bs = bs, in raw_do_pdiscard()
3573 raw_co_pdiscard(BlockDriverState *bs, int64_t offset, int64_t bytes) in raw_co_pdiscard() argument
3575 return raw_do_pdiscard(bs, offset, bytes, false); in raw_co_pdiscard()
3579 raw_do_pwrite_zeroes(BlockDriverState *bs, int64_t offset, int64_t bytes, in raw_do_pwrite_zeroes() argument
3582 BDRVRawState *s = bs->opaque; in raw_do_pwrite_zeroes()
3587 if (offset + bytes > bs->total_sectors * BDRV_SECTOR_SIZE) { in raw_do_pwrite_zeroes()
3606 req = bdrv_co_get_self_request(bs); in raw_do_pwrite_zeroes()
3616 bdrv_make_request_serialising(req, bs->bl.request_alignment); in raw_do_pwrite_zeroes()
3621 .bs = bs, in raw_do_pwrite_zeroes()
3646 BlockDriverState *bs, int64_t offset, in raw_co_pwrite_zeroes() argument
3649 return raw_do_pwrite_zeroes(bs, offset, bytes, flags, false); in raw_co_pwrite_zeroes()
3653 raw_co_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) in raw_co_get_info() argument
3658 static ImageInfoSpecific *raw_get_specific_info(BlockDriverState *bs, in raw_get_specific_info() argument
3671 BDRVRawState *s = bs->opaque; in raw_get_specific_info()
3686 static BlockStatsSpecificFile get_blockstats_specific_file(BlockDriverState *bs) in get_blockstats_specific_file() argument
3688 BDRVRawState *s = bs->opaque; in get_blockstats_specific_file()
3696 static BlockStatsSpecific *raw_get_specific_stats(BlockDriverState *bs) in raw_get_specific_stats() argument
3701 stats->u.file = get_blockstats_specific_file(bs); in raw_get_specific_stats()
3707 static BlockStatsSpecific *hdev_get_specific_stats(BlockDriverState *bs) in hdev_get_specific_stats() argument
3712 stats->u.host_device = get_blockstats_specific_file(bs); in hdev_get_specific_stats()
3750 static int raw_check_perm(BlockDriverState *bs, uint64_t perm, uint64_t shared, in raw_check_perm() argument
3753 BDRVRawState *s = bs->opaque; in raw_check_perm()
3754 int input_flags = s->reopen_state ? s->reopen_state->flags : bs->open_flags; in raw_check_perm()
3759 ret = raw_reconfigure_getfd(bs, input_flags, &open_flags, perm, errp); in raw_check_perm()
3769 raw_probe_alignment(bs, ret, &local_err); in raw_check_perm()
3781 ret = raw_handle_perm_lock(bs, RAW_PL_PREPARE, perm, shared, errp); in raw_check_perm()
3791 raw_handle_perm_lock(bs, RAW_PL_ABORT, 0, 0, NULL); in raw_check_perm()
3805 static void raw_set_perm(BlockDriverState *bs, uint64_t perm, uint64_t shared) in raw_set_perm() argument
3807 BDRVRawState *s = bs->opaque; in raw_set_perm()
3818 raw_handle_perm_lock(bs, RAW_PL_COMMIT, perm, shared, NULL); in raw_set_perm()
3823 static void raw_abort_perm_update(BlockDriverState *bs) in raw_abort_perm_update() argument
3825 BDRVRawState *s = bs->opaque; in raw_abort_perm_update()
3834 raw_handle_perm_lock(bs, RAW_PL_ABORT, 0, 0, NULL); in raw_abort_perm_update()
3838 BlockDriverState *bs, BdrvChild *src, int64_t src_offset, in raw_co_copy_range_from() argument
3847 raw_co_copy_range_to(BlockDriverState *bs, in raw_co_copy_range_to() argument
3854 BDRVRawState *s = bs->opaque; in raw_co_copy_range_to()
3857 assert(dst->bs == bs); in raw_co_copy_range_to()
3858 if (src->bs->drv->bdrv_co_copy_range_to != raw_co_copy_range_to) { in raw_co_copy_range_to()
3862 src_s = src->bs->opaque; in raw_co_copy_range_to()
3863 if (fd_open(src->bs) < 0 || fd_open(dst->bs) < 0) { in raw_co_copy_range_to()
3868 .bs = bs, in raw_co_copy_range_to()
4065 static bool hdev_is_sg(BlockDriverState *bs) in hdev_is_sg() argument
4070 BDRVRawState *s = bs->opaque; in hdev_is_sg()
4076 if (stat(bs->filename, &st) < 0 || !S_ISCHR(st.st_mode)) { in hdev_is_sg()
4096 static int hdev_open(BlockDriverState *bs, QDict *options, int flags, in hdev_open() argument
4099 BDRVRawState *s = bs->opaque; in hdev_open()
4164 ret = raw_open_common(bs, options, flags, 0, true, errp); in hdev_open()
4179 bs->sg = hdev_is_sg(bs); in hdev_open()
4186 hdev_co_ioctl(BlockDriverState *bs, unsigned long int req, void *buf) in hdev_co_ioctl() argument
4188 BDRVRawState *s = bs->opaque; in hdev_co_ioctl()
4192 ret = fd_open(bs); in hdev_co_ioctl()
4207 .bs = bs, in hdev_co_ioctl()
4222 hdev_co_pdiscard(BlockDriverState *bs, int64_t offset, int64_t bytes) in hdev_co_pdiscard() argument
4224 BDRVRawState *s = bs->opaque; in hdev_co_pdiscard()
4227 ret = fd_open(bs); in hdev_co_pdiscard()
4232 return raw_do_pdiscard(bs, offset, bytes, true); in hdev_co_pdiscard()
4235 static coroutine_fn int hdev_co_pwrite_zeroes(BlockDriverState *bs, in hdev_co_pwrite_zeroes() argument
4240 rc = fd_open(bs); in hdev_co_pwrite_zeroes()
4245 return raw_do_pwrite_zeroes(bs, offset, bytes, flags, true); in hdev_co_pwrite_zeroes()
4307 static void cdrom_refresh_limits(BlockDriverState *bs, Error **errp) in cdrom_refresh_limits() argument
4309 bs->bl.has_variable_length = true; in cdrom_refresh_limits()
4310 raw_refresh_limits(bs, errp); in cdrom_refresh_limits()
4315 static int cdrom_open(BlockDriverState *bs, QDict *options, int flags, in cdrom_open() argument
4318 BDRVRawState *s = bs->opaque; in cdrom_open()
4323 return raw_open_common(bs, options, flags, O_NONBLOCK, true, errp); in cdrom_open()
4352 static bool coroutine_fn cdrom_co_is_inserted(BlockDriverState *bs) in cdrom_co_is_inserted() argument
4354 BDRVRawState *s = bs->opaque; in cdrom_co_is_inserted()
4361 static void coroutine_fn cdrom_co_eject(BlockDriverState *bs, bool eject_flag) in cdrom_co_eject() argument
4363 BDRVRawState *s = bs->opaque; in cdrom_co_eject()
4374 static void coroutine_fn cdrom_co_lock_medium(BlockDriverState *bs, bool locked) in cdrom_co_lock_medium() argument
4376 BDRVRawState *s = bs->opaque; in cdrom_co_lock_medium()
4424 static int cdrom_open(BlockDriverState *bs, QDict *options, int flags, in cdrom_open() argument
4427 BDRVRawState *s = bs->opaque; in cdrom_open()
4432 ret = raw_open_common(bs, options, flags, 0, true, errp); in cdrom_open()
4450 static int cdrom_reopen(BlockDriverState *bs) in cdrom_reopen() argument
4452 BDRVRawState *s = bs->opaque; in cdrom_reopen()
4461 fd = qemu_open(bs->filename, s->open_flags, NULL); in cdrom_reopen()
4473 static bool coroutine_fn cdrom_co_is_inserted(BlockDriverState *bs) in cdrom_co_is_inserted() argument
4475 return raw_getlength(bs) > 0; in cdrom_co_is_inserted()
4478 static void coroutine_fn cdrom_co_eject(BlockDriverState *bs, bool eject_flag) in cdrom_co_eject() argument
4480 BDRVRawState *s = bs->opaque; in cdrom_co_eject()
4495 cdrom_reopen(bs); in cdrom_co_eject()
4498 static void coroutine_fn cdrom_co_lock_medium(BlockDriverState *bs, bool locked) in cdrom_co_lock_medium() argument
4500 BDRVRawState *s = bs->opaque; in cdrom_co_lock_medium()