MAINTAINERS | 12 +- docs/devel/rust.rst | 51 +-- meson.build | 4 - rust/bql/wrapper.h | 27 ++ rust/chardev/wrapper.h | 28 ++ rust/hw/char/pl011/wrapper.h | 51 +++ rust/hw/core/wrapper.h | 32 ++ rust/{qemu-api => migration}/wrapper.h | 20 -- rust/qom/wrapper.h | 27 ++ rust/system/wrapper.h | 29 ++ rust/util/wrapper.h | 32 ++ rust/Cargo.lock | 127 ++++++- rust/Cargo.toml | 16 +- rust/bits/Cargo.toml | 2 +- rust/bits/meson.build | 2 +- rust/bits/src/lib.rs | 4 +- rust/{qemu-api => bql}/Cargo.toml | 13 +- rust/{qemu-api => bql}/build.rs | 2 +- rust/bql/meson.build | 52 +++ rust/bql/src/bindings.rs | 25 ++ rust/{qemu-api => bql}/src/cell.rs | 333 +++--------------- rust/bql/src/lib.rs | 29 ++ rust/chardev/Cargo.toml | 24 ++ rust/chardev/build.rs | 43 +++ rust/chardev/meson.build | 54 +++ rust/chardev/src/bindings.rs | 36 ++ rust/{qemu-api => chardev}/src/chardev.rs | 35 +- rust/chardev/src/lib.rs | 4 + rust/common/Cargo.toml | 16 + rust/common/meson.build | 32 ++ rust/{qemu-api => common}/src/assertions.rs | 16 +- rust/{qemu-api => common}/src/bitops.rs | 1 - rust/{qemu-api => common}/src/callbacks.rs | 12 +- rust/common/src/lib.rs | 17 + rust/common/src/opaque.rs | 240 +++++++++++++ rust/{qemu-api => common}/src/uninit.rs | 2 +- rust/common/src/zeroable.rs | 18 + rust/hw/char/pl011/Cargo.toml | 11 +- rust/hw/char/pl011/build.rs | 43 +++ rust/hw/char/pl011/meson.build | 39 +- rust/hw/char/pl011/src/bindings.rs | 27 ++ rust/hw/char/pl011/src/device.rs | 49 +-- rust/hw/char/pl011/src/lib.rs | 1 + rust/hw/char/pl011/src/registers.rs | 4 +- rust/hw/core/Cargo.toml | 26 ++ rust/hw/core/build.rs | 43 +++ rust/{qemu-api => hw/core}/meson.build | 86 ++--- rust/hw/core/src/bindings.rs | 41 +++ rust/{qemu-api => hw/core}/src/irq.rs | 18 +- rust/hw/core/src/lib.rs | 12 + rust/{qemu-api => hw/core}/src/qdev.rs | 81 +++-- rust/{qemu-api => hw/core}/src/sysbus.rs | 28 +- rust/{qemu-api => hw/core}/tests/tests.rs | 29 +- rust/hw/timer/hpet/Cargo.toml | 10 +- rust/hw/timer/hpet/meson.build | 12 +- rust/hw/timer/hpet/src/device.rs | 56 ++- rust/hw/timer/hpet/src/fw_cfg.rs | 6 +- rust/meson.build | 12 +- rust/migration/Cargo.toml | 21 ++ rust/migration/build.rs | 43 +++ rust/migration/meson.build | 57 +++ rust/migration/src/bindings.rs | 48 +++ rust/migration/src/lib.rs | 4 + rust/{qemu-api => migration}/src/vmstate.rs | 166 ++++----- rust/qemu-api/.gitignore | 2 - rust/qemu-api/README.md | 19 - rust/qemu-api/src/lib.rs | 170 --------- rust/qemu-api/src/prelude.rs | 31 -- rust/qemu-api/src/zeroable.rs | 37 -- .../Cargo.toml | 2 +- .../meson.build | 10 +- .../src/bits.rs | 0 .../src/lib.rs | 20 +- .../src/tests.rs | 8 +- rust/qom/Cargo.toml | 23 ++ rust/qom/build.rs | 43 +++ rust/qom/meson.build | 61 ++++ rust/qom/src/bindings.rs | 25 ++ rust/qom/src/lib.rs | 4 + rust/{qemu-api => qom}/src/qom.rs | 27 +- rust/qom/tests/tests.rs | 47 +++ rust/system/Cargo.toml | 22 ++ rust/system/build.rs | 43 +++ rust/system/meson.build | 57 +++ rust/{qemu-api => system}/src/bindings.rs | 33 +- rust/system/src/lib.rs | 4 + rust/{qemu-api => system}/src/memory.rs | 20 +- rust/tests/Cargo.toml | 30 ++ rust/tests/meson.build | 14 + .../tests/vmstate_tests.rs | 18 +- rust/util/Cargo.toml | 23 ++ rust/util/build.rs | 43 +++ rust/util/meson.build | 61 ++++ rust/util/src/bindings.rs | 25 ++ rust/{qemu-api => util}/src/errno.rs | 11 +- rust/{qemu-api => util}/src/error.rs | 6 +- rust/util/src/lib.rs | 10 + rust/{qemu-api => util}/src/log.rs | 12 +- rust/{qemu-api => util}/src/module.rs | 2 +- rust/{qemu-api => util}/src/timer.rs | 12 +- 100 files changed, 2372 insertions(+), 1044 deletions(-) create mode 100644 rust/bql/wrapper.h create mode 100644 rust/chardev/wrapper.h create mode 100644 rust/hw/char/pl011/wrapper.h create mode 100644 rust/hw/core/wrapper.h rename rust/{qemu-api => migration}/wrapper.h (77%) create mode 100644 rust/qom/wrapper.h create mode 100644 rust/system/wrapper.h create mode 100644 rust/util/wrapper.h rename rust/{qemu-api => bql}/Cargo.toml (52%) rename rust/{qemu-api => bql}/build.rs (96%) create mode 100644 rust/bql/meson.build create mode 100644 rust/bql/src/bindings.rs rename rust/{qemu-api => bql}/src/cell.rs (70%) create mode 100644 rust/bql/src/lib.rs create mode 100644 rust/chardev/Cargo.toml create mode 100644 rust/chardev/build.rs create mode 100644 rust/chardev/meson.build create mode 100644 rust/chardev/src/bindings.rs rename rust/{qemu-api => chardev}/src/chardev.rs (91%) create mode 100644 rust/chardev/src/lib.rs create mode 100644 rust/common/Cargo.toml create mode 100644 rust/common/meson.build rename rust/{qemu-api => common}/src/assertions.rs (92%) rename rust/{qemu-api => common}/src/bitops.rs (98%) rename rust/{qemu-api => common}/src/callbacks.rs (97%) create mode 100644 rust/common/src/lib.rs create mode 100644 rust/common/src/opaque.rs rename rust/{qemu-api => common}/src/uninit.rs (98%) create mode 100644 rust/common/src/zeroable.rs create mode 100644 rust/hw/char/pl011/build.rs create mode 100644 rust/hw/char/pl011/src/bindings.rs create mode 100644 rust/hw/core/Cargo.toml create mode 100644 rust/hw/core/build.rs rename rust/{qemu-api => hw/core}/meson.build (52%) create mode 100644 rust/hw/core/src/bindings.rs rename rust/{qemu-api => hw/core}/src/irq.rs (92%) create mode 100644 rust/hw/core/src/lib.rs rename rust/{qemu-api => hw/core}/src/qdev.rs (86%) rename rust/{qemu-api => hw/core}/src/sysbus.rs (87%) rename rust/{qemu-api => hw/core}/tests/tests.rs (88%) create mode 100644 rust/migration/Cargo.toml create mode 100644 rust/migration/build.rs create mode 100644 rust/migration/meson.build create mode 100644 rust/migration/src/bindings.rs create mode 100644 rust/migration/src/lib.rs rename rust/{qemu-api => migration}/src/vmstate.rs (80%) delete mode 100644 rust/qemu-api/.gitignore delete mode 100644 rust/qemu-api/README.md delete mode 100644 rust/qemu-api/src/lib.rs delete mode 100644 rust/qemu-api/src/prelude.rs delete mode 100644 rust/qemu-api/src/zeroable.rs rename rust/{qemu-api-macros => qemu-macros}/Cargo.toml (94%) rename rust/{qemu-api-macros => qemu-macros}/meson.build (63%) rename rust/{qemu-api-macros => qemu-macros}/src/bits.rs (100%) rename rust/{qemu-api-macros => qemu-macros}/src/lib.rs (91%) rename rust/{qemu-api-macros => qemu-macros}/src/tests.rs (93%) create mode 100644 rust/qom/Cargo.toml create mode 100644 rust/qom/build.rs create mode 100644 rust/qom/meson.build create mode 100644 rust/qom/src/bindings.rs create mode 100644 rust/qom/src/lib.rs rename rust/{qemu-api => qom}/src/qom.rs (98%) create mode 100644 rust/qom/tests/tests.rs create mode 100644 rust/system/Cargo.toml create mode 100644 rust/system/build.rs create mode 100644 rust/system/meson.build rename rust/{qemu-api => system}/src/bindings.rs (56%) create mode 100644 rust/system/src/lib.rs rename rust/{qemu-api => system}/src/memory.rs (95%) create mode 100644 rust/tests/Cargo.toml create mode 100644 rust/tests/meson.build rename rust/{qemu-api => tests}/tests/vmstate_tests.rs (96%) create mode 100644 rust/util/Cargo.toml create mode 100644 rust/util/build.rs create mode 100644 rust/util/meson.build create mode 100644 rust/util/src/bindings.rs rename rust/{qemu-api => util}/src/errno.rs (98%) rename rust/{qemu-api => util}/src/error.rs (98%) create mode 100644 rust/util/src/lib.rs rename rust/{qemu-api => util}/src/log.rs (93%) rename rust/{qemu-api => util}/src/module.rs (97%) rename rust/{qemu-api => util}/src/timer.rs (93%)