mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-18 05:28:36 -07:00
rust: chardev: provide basic bindings to character devices
Most of the character device API is pretty simple, with "0 or -errno" or "number of bytes or -errno" as the convention for return codes. Add safe wrappers for the API to the CharBackend bindgen-generated struct. The API is not complete, but it covers the parts that are used by the PL011 device, plus qemu_chr_fe_write which is needed to implement the standard library Write trait. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
2ad011d466
commit
2d0050cbe2
3 changed files with 255 additions and 5 deletions
|
|
@ -54,7 +54,19 @@ qemu_api = declare_dependency(link_with: _qemu_api_rs)
|
|||
rust_qemu_api_objs = static_library(
|
||||
'rust_qemu_api_objs',
|
||||
objects: [libqom.extract_all_objects(recursive: false),
|
||||
libhwcore.extract_all_objects(recursive: false)])
|
||||
libhwcore.extract_all_objects(recursive: false),
|
||||
libchardev.extract_all_objects(recursive: false),
|
||||
libcrypto.extract_all_objects(recursive: false),
|
||||
libauthz.extract_all_objects(recursive: false),
|
||||
libio.extract_all_objects(recursive: false)])
|
||||
rust_qemu_api_deps = declare_dependency(
|
||||
dependencies: [
|
||||
qom_ss.dependencies(),
|
||||
chardev_ss.dependencies(),
|
||||
crypto_ss.dependencies(),
|
||||
authz_ss.dependencies(),
|
||||
io_ss.dependencies()],
|
||||
link_whole: [rust_qemu_api_objs, libqemuutil])
|
||||
|
||||
test('rust-qemu-api-integration',
|
||||
executable(
|
||||
|
|
@ -63,8 +75,7 @@ test('rust-qemu-api-integration',
|
|||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_args: ['--test'],
|
||||
install: false,
|
||||
dependencies: [qemu_api, qemu_api_macros],
|
||||
link_whole: [rust_qemu_api_objs, libqemuutil]),
|
||||
dependencies: [qemu_api, qemu_api_macros, rust_qemu_api_deps]),
|
||||
args: [
|
||||
'--test', '--test-threads', '1',
|
||||
'--format', 'pretty',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue