mirror of https://github.com/proxmox/mirror_qemu
docs/devel/qom: Fix indentation of code blocks
Some code blocks had one extra space, fix that. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20201003025424.199291-4-ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>master
parent
258c732769
commit
671b3db056
|
@ -284,28 +284,28 @@ in the header file:
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
:caption: Declaring a simple type
|
:caption: Declaring a simple type
|
||||||
|
|
||||||
OBJECT_DECLARE_SIMPLE_TYPE(MyDevice, my_device, MY_DEVICE, DEVICE)
|
OBJECT_DECLARE_SIMPLE_TYPE(MyDevice, my_device, MY_DEVICE, DEVICE)
|
||||||
|
|
||||||
This is equivalent to the following:
|
This is equivalent to the following:
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
:caption: Expansion from declaring a simple type
|
:caption: Expansion from declaring a simple type
|
||||||
|
|
||||||
typedef struct MyDevice MyDevice;
|
typedef struct MyDevice MyDevice;
|
||||||
typedef struct MyDeviceClass MyDeviceClass;
|
typedef struct MyDeviceClass MyDeviceClass;
|
||||||
|
|
||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(MyDeviceClass, object_unref)
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(MyDeviceClass, object_unref)
|
||||||
|
|
||||||
#define MY_DEVICE_GET_CLASS(void *obj) \
|
#define MY_DEVICE_GET_CLASS(void *obj) \
|
||||||
OBJECT_GET_CLASS(MyDeviceClass, obj, TYPE_MY_DEVICE)
|
OBJECT_GET_CLASS(MyDeviceClass, obj, TYPE_MY_DEVICE)
|
||||||
#define MY_DEVICE_CLASS(void *klass) \
|
#define MY_DEVICE_CLASS(void *klass) \
|
||||||
OBJECT_CLASS_CHECK(MyDeviceClass, klass, TYPE_MY_DEVICE)
|
OBJECT_CLASS_CHECK(MyDeviceClass, klass, TYPE_MY_DEVICE)
|
||||||
#define MY_DEVICE(void *obj)
|
#define MY_DEVICE(void *obj)
|
||||||
OBJECT_CHECK(MyDevice, obj, TYPE_MY_DEVICE)
|
OBJECT_CHECK(MyDevice, obj, TYPE_MY_DEVICE)
|
||||||
|
|
||||||
struct MyDeviceClass {
|
struct MyDeviceClass {
|
||||||
DeviceClass parent_class;
|
DeviceClass parent_class;
|
||||||
};
|
};
|
||||||
|
|
||||||
The 'struct MyDevice' needs to be declared separately.
|
The 'struct MyDevice' needs to be declared separately.
|
||||||
If the type requires virtual functions to be declared in the class
|
If the type requires virtual functions to be declared in the class
|
||||||
|
@ -319,33 +319,33 @@ In the simple case the OBJECT_DEFINE_TYPE macro is suitable:
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
:caption: Defining a simple type
|
:caption: Defining a simple type
|
||||||
|
|
||||||
OBJECT_DEFINE_TYPE(MyDevice, my_device, MY_DEVICE, DEVICE)
|
OBJECT_DEFINE_TYPE(MyDevice, my_device, MY_DEVICE, DEVICE)
|
||||||
|
|
||||||
This is equivalent to the following:
|
This is equivalent to the following:
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
:caption: Expansion from defining a simple type
|
:caption: Expansion from defining a simple type
|
||||||
|
|
||||||
static void my_device_finalize(Object *obj);
|
static void my_device_finalize(Object *obj);
|
||||||
static void my_device_class_init(ObjectClass *oc, void *data);
|
static void my_device_class_init(ObjectClass *oc, void *data);
|
||||||
static void my_device_init(Object *obj);
|
static void my_device_init(Object *obj);
|
||||||
|
|
||||||
static const TypeInfo my_device_info = {
|
static const TypeInfo my_device_info = {
|
||||||
.parent = TYPE_DEVICE,
|
.parent = TYPE_DEVICE,
|
||||||
.name = TYPE_MY_DEVICE,
|
.name = TYPE_MY_DEVICE,
|
||||||
.instance_size = sizeof(MyDevice),
|
.instance_size = sizeof(MyDevice),
|
||||||
.instance_init = my_device_init,
|
.instance_init = my_device_init,
|
||||||
.instance_finalize = my_device_finalize,
|
.instance_finalize = my_device_finalize,
|
||||||
.class_size = sizeof(MyDeviceClass),
|
.class_size = sizeof(MyDeviceClass),
|
||||||
.class_init = my_device_class_init,
|
.class_init = my_device_class_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
my_device_register_types(void)
|
my_device_register_types(void)
|
||||||
{
|
{
|
||||||
type_register_static(&my_device_info);
|
type_register_static(&my_device_info);
|
||||||
}
|
}
|
||||||
type_init(my_device_register_types);
|
type_init(my_device_register_types);
|
||||||
|
|
||||||
This is sufficient to get the type registered with the type
|
This is sufficient to get the type registered with the type
|
||||||
system, and the three standard methods now need to be implemented
|
system, and the three standard methods now need to be implemented
|
||||||
|
@ -358,9 +358,9 @@ This accepts an array of interface type names.
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
:caption: Defining a simple type implementing interfaces
|
:caption: Defining a simple type implementing interfaces
|
||||||
|
|
||||||
OBJECT_DEFINE_TYPE_WITH_INTERFACES(MyDevice, my_device,
|
OBJECT_DEFINE_TYPE_WITH_INTERFACES(MyDevice, my_device,
|
||||||
MY_DEVICE, DEVICE,
|
MY_DEVICE, DEVICE,
|
||||||
{ TYPE_USER_CREATABLE }, { NULL })
|
{ TYPE_USER_CREATABLE }, { NULL })
|
||||||
|
|
||||||
If the type is not intended to be instantiated, then then
|
If the type is not intended to be instantiated, then then
|
||||||
the OBJECT_DEFINE_ABSTRACT_TYPE() macro can be used instead:
|
the OBJECT_DEFINE_ABSTRACT_TYPE() macro can be used instead:
|
||||||
|
@ -368,7 +368,7 @@ the OBJECT_DEFINE_ABSTRACT_TYPE() macro can be used instead:
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
:caption: Defining a simple abstract type
|
:caption: Defining a simple abstract type
|
||||||
|
|
||||||
OBJECT_DEFINE_ABSTRACT_TYPE(MyDevice, my_device, MY_DEVICE, DEVICE)
|
OBJECT_DEFINE_ABSTRACT_TYPE(MyDevice, my_device, MY_DEVICE, DEVICE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue