|
@@ -139,16 +139,22 @@ anymore.
|
|
Writing Rust code in QEMU
|
|
Writing Rust code in QEMU
|
|
-------------------------
|
|
-------------------------
|
|
|
|
|
|
-Right now QEMU includes three crates:
|
|
|
|
|
|
+QEMU includes four crates:
|
|
|
|
|
|
* ``qemu_api`` for bindings to C code and useful functionality
|
|
* ``qemu_api`` for bindings to C code and useful functionality
|
|
|
|
|
|
* ``qemu_api_macros`` defines several procedural macros that are useful when
|
|
* ``qemu_api_macros`` defines several procedural macros that are useful when
|
|
writing C code
|
|
writing C code
|
|
|
|
|
|
-* ``pl011`` (under ``rust/hw/char/pl011``) is the sample device that is being
|
|
|
|
- used to further develop ``qemu_api`` and ``qemu_api_macros``. It is a functional
|
|
|
|
- replacement for the ``hw/char/pl011.c`` file.
|
|
|
|
|
|
+* ``pl011`` (under ``rust/hw/char/pl011``) and ``hpet`` (under ``rust/hw/timer/hpet``)
|
|
|
|
+ are sample devices that demonstrate ``qemu_api`` and ``qemu_api_macros``, and are
|
|
|
|
+ used to further develop them. These two crates are functional\ [#issues]_ replacements
|
|
|
|
+ for the ``hw/char/pl011.c`` and ``hw/timer/hpet.c`` files.
|
|
|
|
+
|
|
|
|
+.. [#issues] The ``pl011`` crate is synchronized with ``hw/char/pl011.c``
|
|
|
|
+ as of commit 02b1f7f61928. The ``hpet`` crate is synchronized as of
|
|
|
|
+ commit f32352ff9e. Both are lacking tracing functionality; ``hpet``
|
|
|
|
+ is also lacking support for migration.
|
|
|
|
|
|
This section explains how to work with them.
|
|
This section explains how to work with them.
|
|
|
|
|