[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 08/11] rust/block: Add driver module
From: |
Zhao Liu |
Subject: |
Re: [PATCH v2 08/11] rust/block: Add driver module |
Date: |
Thu, 20 Feb 2025 14:52:32 +0800 |
> +impl BdrvChild {
> + /// Creates a new child reference from a `BlockdevRef`.
> + pub unsafe fn new(
> + parent: *mut bindings::BlockDriverState,
> + bref: *mut bindings::BlockdevRef,
> + errp: *mut *mut bindings::Error,
> + ) -> Option<Self> {
> + unsafe {
> + let child_bs = bindings::bdrv_open_blockdev_ref_file(bref,
> parent, errp);
> + if child_bs.is_null() {
> + return None;
> + }
> +
> + bindings::bdrv_graph_wrlock();
> + let child = bindings::bdrv_attach_child(
> + parent,
> + child_bs,
> + c"file".as_ptr(),
c literal starts from v1.77, and there's a workaround provided by
c_str.rs:
c_str!("file").as_ptr()
> + &bindings::child_of_bds as *const _,
> + bindings::BDRV_CHILD_IMAGE,
> + errp,
> + );
> + bindings::bdrv_graph_wrunlock();
> +
> + if child.is_null() {
> + None
> + } else {
> + Some(BdrvChild { child })
> + }
> + }
> + }
> +
- [PATCH v2 02/11] meson: Add rust_block_ss and link tools with it, (continued)
- [PATCH v2 02/11] meson: Add rust_block_ss and link tools with it, Kevin Wolf, 2025/02/18
- [PATCH v2 01/11] rust: Build separate qemu_api_tools and qemu_api_system, Kevin Wolf, 2025/02/18
- [PATCH v2 05/11] rust/block: Add empty crate, Kevin Wolf, 2025/02/18
- [PATCH v2 04/11] rust/qemu-api: Add wrappers to run futures in QEMU, Kevin Wolf, 2025/02/18
- [PATCH v2 06/11] rust/block: Add I/O buffer traits, Kevin Wolf, 2025/02/18
- [PATCH v2 08/11] rust/block: Add driver module, Kevin Wolf, 2025/02/18
- Re: [PATCH v2 08/11] rust/block: Add driver module,
Zhao Liu <=
- [PATCH v2 09/11] rust/block: Add read support for block drivers, Kevin Wolf, 2025/02/18
- [PATCH v2 03/11] rust: Add some block layer bindings, Kevin Wolf, 2025/02/18
- [PATCH v2 07/11] block: Add bdrv_open_blockdev_ref_file(), Kevin Wolf, 2025/02/18
- [PATCH v2 11/11] rust/block: Add format probing, Kevin Wolf, 2025/02/18
- [PATCH v2 10/11] bochs-rs: Add bochs block driver reimplementation in Rust, Kevin Wolf, 2025/02/18