QEMU Object Model (QOM) API Reference
This is the complete API documentation for The QEMU Object Model (QOM).
-
ObjectPropertyAccessor
Syntax
void ObjectPropertyAccessor (Object *obj, Visitor *v, const char *name, void *opaque, Error **errp)
Parameters
Object *obj
-
ObjectPropertyResolve
Syntax
Object * ObjectPropertyResolve (Object *obj, void *opaque, const char *part)
Parameters
Object *obj
-
ObjectPropertyRelease
Syntax
void ObjectPropertyRelease (Object *obj, const char *name, void *opaque)
Parameters
Object *obj
-
ObjectPropertyInit
Syntax
void ObjectPropertyInit (Object *obj, ObjectProperty *prop)
Parameters
Object *obj
-
ObjectUnparent
Syntax
void ObjectUnparent (Object *obj)
Parameters
Object *obj
-
ObjectFree
Syntax
void ObjectFree (void *obj)
Parameters
void *obj
-
struct ObjectClass
Definition:
struct ObjectClass {
};
Members
Description
The base for all classes. The only thing that ObjectClass
contains is an
integer type handle.
-
struct Object
Definition:
struct Object {
};
Members
Description
The base for all objects. The first member of this object is a pointer to
a ObjectClass
. Since C guarantees that the first member of a structure
always begins at byte 0 of that structure, as long as any sub-object places
its parent as the first member, we can cast directly to a Object
.
As a result, Object
contains a reference to the objects type as its
first member. This allows identification of the real type of the object at
run time.
-
DECLARE_INSTANCE_CHECKER
DECLARE_INSTANCE_CHECKER (InstanceType, OBJ_NAME, TYPENAME)
Parameters
InstanceType
-
DECLARE_CLASS_CHECKERS
DECLARE_CLASS_CHECKERS (ClassType, OBJ_NAME, TYPENAME)
Parameters
ClassType
-
DECLARE_OBJ_CHECKERS
DECLARE_OBJ_CHECKERS (InstanceType, ClassType, OBJ_NAME, TYPENAME)
Parameters
InstanceType
-
OBJECT_DECLARE_TYPE
OBJECT_DECLARE_TYPE (InstanceType, ClassType, MODULE_OBJ_NAME)
Parameters
InstanceType
-
OBJECT_DECLARE_SIMPLE_TYPE
OBJECT_DECLARE_SIMPLE_TYPE (InstanceType, MODULE_OBJ_NAME)
Parameters
InstanceType
-
DO_OBJECT_DEFINE_TYPE_EXTENDED
DO_OBJECT_DEFINE_TYPE_EXTENDED (ModuleObjName, module_obj_name, MODULE_OBJ_NAME, PARENT_MODULE_OBJ_NAME, ABSTRACT, CLASS_SIZE, ...)
Parameters
ModuleObjName
-
OBJECT_DEFINE_TYPE_EXTENDED
OBJECT_DEFINE_TYPE_EXTENDED (ModuleObjName, module_obj_name, MODULE_OBJ_NAME, PARENT_MODULE_OBJ_NAME, ABSTRACT, ...)
Parameters
ModuleObjName
-
OBJECT_DEFINE_TYPE
OBJECT_DEFINE_TYPE (ModuleObjName, module_obj_name, MODULE_OBJ_NAME, PARENT_MODULE_OBJ_NAME)
Parameters
ModuleObjName
-
OBJECT_DEFINE_TYPE_WITH_INTERFACES
OBJECT_DEFINE_TYPE_WITH_INTERFACES (ModuleObjName, module_obj_name, MODULE_OBJ_NAME, PARENT_MODULE_OBJ_NAME, ...)
Parameters
ModuleObjName
-
OBJECT_DEFINE_ABSTRACT_TYPE
OBJECT_DEFINE_ABSTRACT_TYPE (ModuleObjName, module_obj_name, MODULE_OBJ_NAME, PARENT_MODULE_OBJ_NAME)
Parameters
ModuleObjName
-
OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES
OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES (ModuleObjName, module_obj_name, MODULE_OBJ_NAME, PARENT_MODULE_OBJ_NAME, ...)
Parameters
ModuleObjName
-
OBJECT_DEFINE_SIMPLE_TYPE
OBJECT_DEFINE_SIMPLE_TYPE (ModuleObjName, module_obj_name, MODULE_OBJ_NAME, PARENT_MODULE_OBJ_NAME)
Parameters
ModuleObjName
-
struct TypeInfo
Definition:
struct TypeInfo {
const char *name;
const char *parent;
size_t instance_size;
size_t instance_align;
void (*instance_init)(Object *obj);
void (*instance_post_init)(Object *obj);
void (*instance_finalize)(Object *obj);
bool abstract;
size_t class_size;
void (*class_init)(ObjectClass *klass, void *data);
void (*class_base_init)(ObjectClass *klass, void *data);
void *class_data;
InterfaceInfo *interfaces;
};
Members
-
OBJECT
OBJECT (obj)
Parameters
obj
-
OBJECT_CLASS
OBJECT_CLASS (class)
Parameters
class
-
OBJECT_CHECK
OBJECT_CHECK (type, obj, name)
Parameters
type
-
OBJECT_CLASS_CHECK
OBJECT_CLASS_CHECK (class_type, class, name)
Parameters
class_type
-
OBJECT_GET_CLASS
OBJECT_GET_CLASS (class, obj, name)
Parameters
class
-
struct InterfaceInfo
Definition:
struct InterfaceInfo {
const char *type;
};
Members
Description
The information associated with an interface.
-
struct InterfaceClass
Definition:
struct InterfaceClass {
ObjectClass parent_class;
};
Members
Description
The class for all interfaces. Subclasses of this class should only add virtual methods.
-
INTERFACE_CLASS
INTERFACE_CLASS (klass)
Parameters
klass
-
INTERFACE_CHECK
INTERFACE_CHECK (interface, obj, name)
Parameters
interface
-
Object *object_new_with_class(ObjectClass *klass)
Parameters
ObjectClass *klass
Parameters
const char *typename
-
Object *object_new_with_props(const char *typename, Object *parent, const char *id, Error **errp, ...)
Parameters
const char *typename
-
Object *object_new_with_propv(const char *typename, Object *parent, const char *id, Error **errp, va_list vargs)
Parameters
const char *typename
Parameters
Object *obj
Parameters
Object *obj
-
void object_initialize(void *obj, size_t size, const char *typename)
Parameters
void *obj
-
bool object_initialize_child_with_props(Object *parentobj, const char *propname, void *childobj, size_t size, const char *type, Error **errp, ...)
Parameters
Object *parentobj
-
bool object_initialize_child_with_propsv(Object *parentobj, const char *propname, void *childobj, size_t size, const char *type, Error **errp, va_list vargs)
Parameters
Object *parentobj
-
object_initialize_child
object_initialize_child (parent, propname, child, type)
Parameters
parent
Parameters
Object *obj
-
Object *object_dynamic_cast_assert(Object *obj, const char *typename, const char *file, int line, const char *func)
Parameters
Object *obj
-
ObjectClass *object_get_class(Object *obj)
Parameters
Object *obj
Parameters
const Object *obj
Parameters
const TypeInfo *info
Parameters
const TypeInfo *info
Parameters
const TypeInfo *infos
-
DEFINE_TYPES
DEFINE_TYPES (type_array)
Parameters
type_array
-
bool type_print_class_properties(const char *type)
Parameters
const char *type
-
void object_set_properties_from_keyval(Object *obj, const QDict *qdict, bool from_json, Error **errp)
Parameters
Object *obj
-
ObjectClass *object_class_dynamic_cast_assert(ObjectClass *klass, const char *typename, const char *file, int line, const char *func)
Parameters
ObjectClass *klass
-
ObjectClass *object_class_dynamic_cast(ObjectClass *klass, const char *typename)
Parameters
ObjectClass *klass
-
ObjectClass *object_class_get_parent(ObjectClass *klass)
Parameters
ObjectClass *klass
-
const char *object_class_get_name(ObjectClass *klass)
Parameters
ObjectClass *klass
-
bool object_class_is_abstract(ObjectClass *klass)
Parameters
ObjectClass *klass
-
ObjectClass *object_class_by_name(const char *typename)
Parameters
const char *typename
-
ObjectClass *module_object_class_by_name(const char *typename)
Parameters
const char *typename
-
GSList *object_class_get_list(const char *implements_type, bool include_abstract)
Parameters
const char *implements_type
-
GSList *object_class_get_list_sorted(const char *implements_type, bool include_abstract)
Parameters
const char *implements_type
Parameters
void *obj
-
void object_unref(void *obj)
Parameters
void *obj
-
ObjectProperty *object_property_try_add(Object *obj, const char *name, const char *type, ObjectPropertyAccessor *get, ObjectPropertyAccessor *set, ObjectPropertyRelease *release, void *opaque, Error **errp)
Parameters
Object *obj
-
ObjectProperty *object_property_add(Object *obj, const char *name, const char *type, ObjectPropertyAccessor *get, ObjectPropertyAccessor *set, ObjectPropertyRelease *release, void *opaque)
Parameters
Object *obj
-
void object_property_set_default_bool(ObjectProperty *prop, bool value)
Parameters
ObjectProperty *prop
-
void object_property_set_default_str(ObjectProperty *prop, const char *value)
Parameters
ObjectProperty *prop
-
void object_property_set_default_list(ObjectProperty *prop)
Parameters
ObjectProperty *prop
-
void object_property_set_default_int(ObjectProperty *prop, int64_t value)
Parameters
ObjectProperty *prop
-
void object_property_set_default_uint(ObjectProperty *prop, uint64_t value)
Parameters
ObjectProperty *prop
Parameters
Object *obj
Parameters
Object *obj
-
ObjectProperty *object_class_property_find(ObjectClass *klass, const char *name)
Parameters
ObjectClass *klass
-
ObjectProperty *object_class_property_find_err(ObjectClass *klass, const char *name, Error **errp)
Parameters
ObjectClass *klass
Parameters
ObjectPropertyIterator *iter
-
void object_class_property_iter_init(ObjectPropertyIterator *iter, ObjectClass *klass)
Parameters
ObjectPropertyIterator *iter
-
ObjectProperty *object_property_iter_next(ObjectPropertyIterator *iter)
Parameters
ObjectPropertyIterator *iter
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
void
no arguments
Return
Parameters
void
no arguments
Description
Parameters
void
no arguments
Description
Parameters
const Object *obj
Parameters
const Object *obj
Parameters
const char *path
Parameters
const char *path
Parameters
const char *typename
Parameters
Object *parent
Parameters
Object *parent
-
ObjectProperty *object_property_try_add_child(Object *obj, const char *name, Object *child, Error **errp)
Parameters
Object *obj
Parameters
Object *obj
-
void object_property_allow_set_link(const Object *obj, const char *name, Object *child, Error **errp)
Parameters
const Object *obj
-
ObjectProperty *object_property_add_link(Object *obj, const char *name, const char *type, Object **targetp, void (*check)(const Object *obj, const char *name, Object *val, Error **errp), ObjectPropertyLinkFlags flags)
Parameters
Object *obj
-
ObjectProperty *object_property_add_str(Object *obj, const char *name, char *(*get)(Object*, Error**), void (*set)(Object*, const char*, Error**))
Parameters
Object *obj
-
ObjectProperty *object_property_add_bool(Object *obj, const char *name, bool (*get)(Object*, Error**), void (*set)(Object*, bool, Error**))
Parameters
Object *obj
-
ObjectProperty *object_property_add_enum(Object *obj, const char *name, const char *typename, const QEnumLookup *lookup, int (*get)(Object*, Error**), void (*set)(Object*, int, Error**))
Parameters
Object *obj
-
ObjectProperty *object_property_add_tm(Object *obj, const char *name, void (*get)(Object*, struct tm*, Error**))
Parameters
Object *obj
-
ObjectProperty *object_property_add_uint8_ptr(Object *obj, const char *name, const uint8_t *v, ObjectPropertyFlags flags)
Parameters
Object *obj
-
ObjectProperty *object_property_add_uint16_ptr(Object *obj, const char *name, const uint16_t *v, ObjectPropertyFlags flags)
Parameters
Object *obj
-
ObjectProperty *object_property_add_uint32_ptr(Object *obj, const char *name, const uint32_t *v, ObjectPropertyFlags flags)
Parameters
Object *obj
-
ObjectProperty *object_property_add_uint64_ptr(Object *obj, const char *name, const uint64_t *v, ObjectPropertyFlags flags)
Parameters
Object *obj
-
ObjectProperty *object_property_add_alias(Object *obj, const char *name, Object *target_obj, const char *target_name)
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
Parameters
Object *obj
-
int object_child_foreach_recursive(Object *obj, int (*fn)(Object *child, void *opaque), void *opaque)
Parameters
Object *obj
Parameters
Object *root
-
size_t object_type_get_instance_size(const char *typename)
Parameters
const char *typename
-
char *object_property_help(const char *name, const char *type, QObject *defval, const char *description)
Parameters
const char *name