From: Zhao Liu <zhao1.liu@intel.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-rust@nongnu.org
Subject: Re: [PATCH v2 2/2] rust: add bindings for interrupt sources
Date: Tue, 3 Dec 2024 23:47:46 +0800 [thread overview]
Message-ID: <Z08oItSaucp9Z5Xi@intel.com> (raw)
In-Reply-To: <20241202110609.36775-3-pbonzini@redhat.com>
On Mon, Dec 02, 2024 at 12:06:09PM +0100, Paolo Bonzini wrote:
> Date: Mon, 2 Dec 2024 12:06:09 +0100
> From: Paolo Bonzini <pbonzini@redhat.com>
> Subject: [PATCH v2 2/2] rust: add bindings for interrupt sources
> X-Mailer: git-send-email 2.47.0
>
> The InterruptSource bindings let us call qemu_set_irq() and sysbus_init_irq()
> as safe code.
>
> Interrupt sources, qemu_irq in C code, are pointers to IRQState objects.
> They are QOM link properties and can be written to outside the control
> of the device (i.e. from a shared reference); therefore they must be
> interior-mutable in Rust. Since thread-safety is provided by the BQL,
> what we want here is the newly-introduced BqlCell. A pointer to the
> contents of the BqlCell (an IRQState**, or equivalently qemu_irq*)
> is then passed to the C sysbus_init_irq function.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> rust/hw/char/pl011/src/device.rs | 22 ++++----
> rust/qemu-api/meson.build | 2 +
> rust/qemu-api/src/irq.rs | 91 ++++++++++++++++++++++++++++++++
> rust/qemu-api/src/lib.rs | 2 +
> rust/qemu-api/src/sysbus.rs | 26 +++++++++
> 5 files changed, 133 insertions(+), 10 deletions(-)
> create mode 100644 rust/qemu-api/src/irq.rs
> create mode 100644 rust/qemu-api/src/sysbus.rs
>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
prev parent reply other threads:[~2024-12-03 15:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-02 11:06 [PATCH v2 0/2] rust: safe wrappers for interrupt sources Paolo Bonzini
2024-12-02 11:06 ` [PATCH v2 1/2] rust: add BQL-enforcing Cell variant Paolo Bonzini
2024-12-03 1:01 ` Junjie Mao
2024-12-02 11:06 ` [PATCH v2 2/2] rust: add bindings for interrupt sources Paolo Bonzini
2024-12-03 15:47 ` Zhao Liu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z08oItSaucp9Z5Xi@intel.com \
--to=zhao1.liu@intel.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-rust@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.