#
11f590b1 |
| 03-Mar-2014 |
Stefan Hajnoczi <stefanha@redhat.com> |
object: add object_get_canonical_path_component()
It is often useful to find an object's child property name. Also use this new function to simplify the implementation of object_get_canonical_path(
object: add object_get_canonical_path_component()
It is often useful to find an object's child property name. Also use this new function to simplify the implementation of object_get_canonical_path().
Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
show more ...
|
#
0b7593e0 |
| 08-Feb-2014 |
Paolo Bonzini <pbonzini@redhat.com> |
qapi: Add human mode to StringOutputVisitor
This will be used by "info qtree". For numbers it prints both the decimal and hex values. For sizes it rounds to the nearest power of 2^10. For strings
qapi: Add human mode to StringOutputVisitor
This will be used by "info qtree". For numbers it prints both the decimal and hex values. For sizes it rounds to the nearest power of 2^10. For strings, it puts quotes around the string and separates NULL and empty string.
Reviewed-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
b061dc41 |
| 03-Dec-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
qom: Do not register interface "types" in the type table and fix names
There should be no need to look up nor enumerate the interface "types", whose "classes" are really just vtables. Just create t
qom: Do not register interface "types" in the type table and fix names
There should be no need to look up nor enumerate the interface "types", whose "classes" are really just vtables. Just create the types and add them to the interface list of the parent type.
Interfaces not registering their type anymore means that accessing superclass::interface by type name will fail when initializing subclass::interface. Thus, we need to pre-initialize the subclass's parent_type field before calling type_initialize. Apart from this, the interface "types" should never be used and thus it is harmless to leave them out of the hashtable.
Further, the interface types had a bug with interfaces that are inherited from a superclass: The implementation type name was wrong (for example it was subclass::superclass::interface rather than just subclass::interface). This patch fixes this as well.
Reported-by: Igor Mammedov <imammedo@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
0ab4c94c |
| 28-Nov-2013 |
Peter Crosthwaite <peter.crosthwaite@xilinx.com> |
qom: Split out object and class caches
The object-cast and class-cast caches cannot be shared because class caching is conditional on the target type not being an interface and object caching is unc
qom: Split out object and class caches
The object-cast and class-cast caches cannot be shared because class caching is conditional on the target type not being an interface and object caching is unconditional. Leads to a bug when a class cast to an interface follows an object cast to the same interface type:
FooObject = FOO(obj); FooClass = FOO_GET_CLASS(obj);
Where TYPE_FOO is an interface. The first (object) cast will be successful and cache the casting result (i.e. TYPE_FOO will be cached). The second (class) cast will then check the shared cast cache and register a hit. The issue is, when a class cast hits in the cache it just returns a pointer cast of the input class (i.e. the concrete class).
When casting to an interface, the cast itself must return the interface class, not the concrete class. The implementation of class cast caching already ensures that the returned cast result is only a pointer cast before caching. The object cast logic however does not have this check.
Resolve by just splitting the object and class caches.
Cc: qemu-stable@nongnu.org Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Tested-by: Nathan Rossi <nathan.rossi@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
a25ebcac |
| 07-Oct-2013 |
Michael S. Tsirkin <mst@redhat.com> |
qom: Fix pointer to int property helpers' documentation
Relocate to alongside the other object_property_add_* helpers while at it.
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
#
e732ea63 |
| 22-Sep-2013 |
Michael S. Tsirkin <mst@redhat.com> |
qom: add pointer to int property helpers
Make it easy to add read-only helpers for simple integer properties in memory.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Gerd Hoffmann <
qom: add pointer to int property helpers
Make it easy to add read-only helpers for simple integer properties in memory.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
e82df248 |
| 22-Sep-2013 |
Michael S. Tsirkin <mst@redhat.com> |
qom: cleanup struct Error references
now that a typedef for struct Error is available, use it in qom/object.h to match coding style rules.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-
qom: cleanup struct Error references
now that a typedef for struct Error is available, use it in qom/object.h to match coding style rules.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
008e0566 |
| 01-Oct-2013 |
Igor Mammedov <imammedo@redhat.com> |
cleanup object.h: include error.h directly
qapi/error.h is simple enough to be included in qom/object.h direcly and prepares qom/object.h to use Error typedef.
Signed-off-by: Igor Mammedov <imammed
cleanup object.h: include error.h directly
qapi/error.h is simple enough to be included in qom/object.h direcly and prepares qom/object.h to use Error typedef.
Signed-off-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
5b9237f6 |
| 30-Aug-2013 |
Andreas Färber <afaerber@suse.de> |
qom: Assert instance size in object_initialize_with_type()
This catches objects initializing beyond allocated memory, e.g., when subtypes get extended with instance state of their own.
Suggested-by
qom: Assert instance size in object_initialize_with_type()
This catches objects initializing beyond allocated memory, e.g., when subtypes get extended with instance state of their own.
Suggested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
213f0c4f |
| 23-Aug-2013 |
Andreas Färber <afaerber@suse.de> |
qom: Pass available size to object_initialize()
To be passed on to object_initialize_with_type().
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> (virtio-ccw) Signed-off-by: Andreas Färber <afae
qom: Pass available size to object_initialize()
To be passed on to object_initialize_with_type().
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> (virtio-ccw) Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
53caad9a |
| 23-Aug-2013 |
Andreas Färber <afaerber@suse.de> |
qom: Fix object_initialize_with_type() argument name in documentation
@obj -> @data.
Reviewed-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
|
#
70392912 |
| 07-Aug-2013 |
Peter Chubb <peter.chubb@nicta.com.au> |
object: Fix typo in qom/object.h
There's been a cut-and-paste error, it looks like, in the documentation in qom/object.h.
Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au> Signed-off-by: Andrea
object: Fix typo in qom/object.h
There's been a cut-and-paste error, it looks like, in the documentation in qom/object.h.
Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au> Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
8231c2dd |
| 10-Jul-2013 |
Eduardo Habkost <ehabkost@redhat.com> |
qom: Introduce instance_post_init hook
This will allow classes to specify a function to be called after all instance_init functions were called.
This will be used by DeviceState to call qdev_prop_s
qom: Introduce instance_post_init hook
This will allow classes to specify a function to be called after all instance_init functions were called.
This will be used by DeviceState to call qdev_prop_set_globals() at the right moment.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
03587328 |
| 13-May-2013 |
Anthony Liguori <aliguori@us.ibm.com> |
qom: aggressively optimize qom casting
This patch adds a small typename cache to ObjectClass. This allows caching positive casts within each ObjectClass. Benchmarking a PPC workload provided by Au
qom: aggressively optimize qom casting
This patch adds a small typename cache to ObjectClass. This allows caching positive casts within each ObjectClass. Benchmarking a PPC workload provided by Aurelien, this patch eliminates every single g_hash_table_lookup() happening during the benchmark (which was about 2 million per-second).
With this patch applied, I get exactly the same performance (within the margin of error) as with --disable-qom-cast-debug.
N.B. it's safe to cache typenames only from the _assert() macros because they are always called with string literals.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
3556c233 |
| 10-May-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
qom: allow turning cast debugging off
Cast debugging can have a substantial cost (20% or more). Instead of adding special-cased "fast casts" in the hot paths, we can just disable it in releases. T
qom: allow turning cast debugging off
Cast debugging can have a substantial cost (20% or more). Instead of adding special-cased "fast casts" in the hot paths, we can just disable it in releases. The tracing facilities we just added make it easier to analyze those problems that cast debugging would reveal.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1368188203-3407-7-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
be17f18b |
| 10-May-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
qom: pass file/line/function to asserting casts
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1368188203-3407-5-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <al
qom: pass file/line/function to asserting casts
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1368188203-3407-5-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
33bc94eb |
| 10-May-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
qom: improve documentation of cast functions
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1368188203-3407-2-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aligu
qom: improve documentation of cast functions
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1368188203-3407-2-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
085d8134 |
| 18-Mar-2013 |
Peter Maydell <peter.maydell@linaro.org> |
Fix typos and misspellings
Fix various typos and misspellings. The bulk of these were found with codespell.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Stefan Weil <sw@weil
Fix typos and misspellings
Fix various typos and misspellings. The bulk of these were found with codespell.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
show more ...
|
#
b76facc3 |
| 25-Jan-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
qom: remove object_delete
This is now unused. Document the initial reference count of an object and when it will be freed/finalized.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-b
qom: remove object_delete
This is now unused. Document the initial reference count of an object and when it will be freed/finalized.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
6c232d2f |
| 25-Jan-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
qom: document reference counting of link properties
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
|
#
17862378 |
| 23-Jan-2013 |
Andreas Färber <afaerber@suse.de> |
qom: Introduce object_class_is_abstract()
This lets a caller check if an ObjectClass as returned by, e.g., object_class_by_name() is instantiatable.
Signed-off-by: Andreas Färber <afaerber@suse.de>
qom: Introduce object_class_is_abstract()
This lets a caller check if an ObjectClass as returned by, e.g., object_class_by_name() is instantiatable.
Signed-off-by: Andreas Färber <afaerber@suse.de> Cc: Anthony Liguori <anthony@codemonkey.ws>
show more ...
|
#
782beb52 |
| 17-Jan-2013 |
Andreas Färber <afaerber@suse.de> |
qom: Extend documentation on QOM method concepts
Add a documentation section "Methods" and discuss among others how to handle overriding virtual methods.
Clarify DeviceClass::realize documentation
qom: Extend documentation on QOM method concepts
Add a documentation section "Methods" and discuss among others how to handle overriding virtual methods.
Clarify DeviceClass::realize documentation and refer to the above.
Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
3e84b483 |
| 15-Jan-2013 |
Andreas Färber <afaerber@suse.de> |
qom: Make object_resolve_path_component() path argument const
A usage with a hardcoded partial path such as
object_resolve_path_component(obj, "foo")
is totally valid but currently leads to a co
qom: Make object_resolve_path_component() path argument const
A usage with a hardcoded partial path such as
object_resolve_path_component(obj, "foo")
is totally valid but currently leads to a compilation error. Fix this.
Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
show more ...
|
#
8c43a6f0 |
| 10-Jan-2013 |
Andreas Färber <afaerber@suse.de> |
Make all static TypeInfos const
Since 39bffca2030950ef6efe57c2fac8327a45ae1015 (qdev: register all types natively through QEMU Object Model), TypeInfo as used in the common, non-iterative pattern is
Make all static TypeInfos const
Since 39bffca2030950ef6efe57c2fac8327a45ae1015 (qdev: register all types natively through QEMU Object Model), TypeInfo as used in the common, non-iterative pattern is no longer amended with information and should therefore be const.
Fix the documented QOM examples:
sed -i 's/static TypeInfo/static const TypeInfo/g' include/qom/object.h
Since frequently the wrong examples are being copied by contributors of new devices, fix all types in the tree:
sed -i 's/^static TypeInfo/static const TypeInfo/g' */*.c sed -i 's/^static TypeInfo/static const TypeInfo/g' */*/*.c
This also avoids to piggy-back these changes onto real functional changes or other refactorings.
Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
1de7afc9 |
| 17-Dec-2012 |
Paolo Bonzini <pbonzini@redhat.com> |
misc: move include files to include/qemu/
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|