mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
* rust: better integration with clippy, rustfmt and rustdoc
* rust: interior mutability types * rust: add a bit operations module * rust: first part of QOM rework * kvm: remove unnecessary #ifdef * clock: small cleanups, improve handling of Clock lifetimes -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmdZqFkUHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroOzRwf/SYUD+CJCn2x7kUH/JG893jwN1WbJ meGZ0PQDUpOZJFWg6T4g0MuW4O+Wevy2pF4SfGojgqaYxKBbTQVkeliDEMyNUxpr vSKXego0K3pkX3cRDXNVTaXFbsHsMt/3pfzMQM6ocF9qbL+Emvx7Og6WdAcyJ4hc lA17EHlnrWKUSnqN/Ow/pZXsa4ijCklXFFh4barfbdGVhMQc2QekUU45GsP2AvGT NkXTQC05HqxBaAIDeSxbprDSzNihyT71dAooVoxqKboprPu5uoUSJwgaD8rADPr4 EOfsz61V4mji+DWDcIzTtYoAdY41vVXI9lvCKOcCFkimA29xO0W6P7mG2w== =JSh5 -----END PGP SIGNATURE----- Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging * rust: better integration with clippy, rustfmt and rustdoc * rust: interior mutability types * rust: add a bit operations module * rust: first part of QOM rework * kvm: remove unnecessary #ifdef * clock: small cleanups, improve handling of Clock lifetimes # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmdZqFkUHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroOzRwf/SYUD+CJCn2x7kUH/JG893jwN1WbJ # meGZ0PQDUpOZJFWg6T4g0MuW4O+Wevy2pF4SfGojgqaYxKBbTQVkeliDEMyNUxpr # vSKXego0K3pkX3cRDXNVTaXFbsHsMt/3pfzMQM6ocF9qbL+Emvx7Og6WdAcyJ4hc # lA17EHlnrWKUSnqN/Ow/pZXsa4ijCklXFFh4barfbdGVhMQc2QekUU45GsP2AvGT # NkXTQC05HqxBaAIDeSxbprDSzNihyT71dAooVoxqKboprPu5uoUSJwgaD8rADPr4 # EOfsz61V4mji+DWDcIzTtYoAdY41vVXI9lvCKOcCFkimA29xO0W6P7mG2w== # =JSh5 # -----END PGP SIGNATURE----- # gpg: Signature made Wed 11 Dec 2024 09:57:29 EST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (49 commits) rust: qom: change the parent type to an associated type rust: qom: split ObjectType from ObjectImpl trait rust: qom: move bridge for TypeInfo functions out of pl011 rust: qdev: move bridge for realize and reset functions out of pl011 rust: qdev: move device_class_init! body to generic function, ClassInitImpl implementation to macro rust: qom: move ClassInitImpl to the instance side rust: qom: convert type_info! macro to an associated const rust: qom: rename Class trait to ClassInitImpl rust: qom: add default definitions for ObjectImpl rust: add a bit operation module rust: add bindings for interrupt sources rust: define prelude rust: cell: add BQL-enforcing RefCell variant rust: cell: add BQL-enforcing Cell variant bql: check that the BQL is not dropped within marked sections qom/object: Remove type_register() script/codeconverter/qom_type_info: Deprecate MakeTypeRegisterStatic and MakeTypeRegisterNotStatic ui: Replace type_register() with type_register_static() target/xtensa: Replace type_register() with type_register_static() target/sparc: Replace type_register() with type_register_static() ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
1eec82cc06
67 changed files with 1927 additions and 445 deletions
|
@ -141,14 +141,6 @@ Clock *clock_new(Object *parent, const char *name);
|
|||
void clock_set_callback(Clock *clk, ClockCallback *cb,
|
||||
void *opaque, unsigned int events);
|
||||
|
||||
/**
|
||||
* clock_clear_callback:
|
||||
* @clk: the clock to delete the callback from
|
||||
*
|
||||
* Unregister the callback registered with clock_set_callback.
|
||||
*/
|
||||
void clock_clear_callback(Clock *clk);
|
||||
|
||||
/**
|
||||
* clock_set_source:
|
||||
* @clk: the clock.
|
||||
|
|
|
@ -319,7 +319,7 @@ extern const size_t pc_compat_2_3_len;
|
|||
}; \
|
||||
static void pc_machine_init_##suffix(void) \
|
||||
{ \
|
||||
type_register(&pc_machine_type_##suffix); \
|
||||
type_register_static(&pc_machine_type_##suffix); \
|
||||
} \
|
||||
type_init(pc_machine_init_##suffix)
|
||||
|
||||
|
@ -349,7 +349,7 @@ extern const size_t pc_compat_2_3_len;
|
|||
static void MACHINE_VER_SYM(register, namesym, __VA_ARGS__)(void) \
|
||||
{ \
|
||||
MACHINE_VER_DELETION(__VA_ARGS__); \
|
||||
type_register(&MACHINE_VER_SYM(info, namesym, __VA_ARGS__)); \
|
||||
type_register_static(&MACHINE_VER_SYM(info, namesym, __VA_ARGS__)); \
|
||||
} \
|
||||
type_init(MACHINE_VER_SYM(register, namesym, __VA_ARGS__));
|
||||
|
||||
|
|
|
@ -262,6 +262,21 @@ AioContext *iohandler_get_aio_context(void);
|
|||
*/
|
||||
bool bql_locked(void);
|
||||
|
||||
/**
|
||||
* bql_block: Allow/deny releasing the BQL
|
||||
*
|
||||
* The Big QEMU Lock (BQL) is used to provide interior mutability to
|
||||
* Rust code, but this only works if other threads cannot run while
|
||||
* the Rust code has an active borrow. This is because C code in
|
||||
* other threads could come in and mutate data under the Rust code's
|
||||
* feet.
|
||||
*
|
||||
* @increase: Whether to increase or decrease the blocking counter.
|
||||
* Releasing the BQL while the counter is nonzero triggers
|
||||
* an assertion failure.
|
||||
*/
|
||||
void bql_block_unlock(bool increase);
|
||||
|
||||
/**
|
||||
* qemu_in_main_thread: return whether it's possible to safely access
|
||||
* the global state of the block layer.
|
||||
|
|
|
@ -880,24 +880,10 @@ const char *object_get_typename(const Object *obj);
|
|||
* type_register_static:
|
||||
* @info: The #TypeInfo of the new type.
|
||||
*
|
||||
* @info and all of the strings it points to should exist for the life time
|
||||
* that the type is registered.
|
||||
*
|
||||
* Returns: the new #Type.
|
||||
*/
|
||||
Type type_register_static(const TypeInfo *info);
|
||||
|
||||
/**
|
||||
* type_register:
|
||||
* @info: The #TypeInfo of the new type
|
||||
*
|
||||
* Unlike type_register_static(), this call does not require @info or its
|
||||
* string members to continue to exist after the call returns.
|
||||
*
|
||||
* Returns: the new #Type.
|
||||
*/
|
||||
Type type_register(const TypeInfo *info);
|
||||
|
||||
/**
|
||||
* type_register_static_array:
|
||||
* @infos: The array of the new type #TypeInfo structures.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue