docs/devel: mention the spacing requirement for QOM
We have a more complete document on QOM but we should at least mention the style requirements in the style guide. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-Id: <20230424092249.58552-18-alex.bennee@linaro.org>
This commit is contained in:
parent
6a0057aa22
commit
067109a11c
@ -1,3 +1,5 @@
|
||||
.. _qom:
|
||||
|
||||
===========================
|
||||
The QEMU Object Model (QOM)
|
||||
===========================
|
||||
|
@ -628,6 +628,43 @@ are still some caveats to beware of
|
||||
QEMU Specific Idioms
|
||||
********************
|
||||
|
||||
QEMU Object Model Declarations
|
||||
==============================
|
||||
|
||||
The QEMU Object Model (QOM) provides a framework for handling objects
|
||||
in the base C language. The first declaration of a storage or class
|
||||
structure should always be the parent and leave a visual space between
|
||||
that declaration and the new code. It is also useful to separate
|
||||
backing for properties (options driven by the user) and internal state
|
||||
to make navigation easier.
|
||||
|
||||
For a storage structure the first declaration should always be called
|
||||
"parent_obj" and for a class structure the first member should always
|
||||
be called "parent_class" as below:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
struct MyDeviceState {
|
||||
DeviceState parent_obj;
|
||||
|
||||
/* Properties */
|
||||
int prop_a;
|
||||
char *prop_b;
|
||||
/* Other stuff */
|
||||
int internal_state;
|
||||
};
|
||||
|
||||
struct MyDeviceClass {
|
||||
DeviceClass parent_class;
|
||||
|
||||
void (*new_fn1)(void);
|
||||
bool (*new_fn2)(CPUState *);
|
||||
};
|
||||
|
||||
Note that there is no need to provide typedefs for QOM structures
|
||||
since these are generated automatically by the QOM declaration macros.
|
||||
See :ref:`qom` for more details.
|
||||
|
||||
Error handling and reporting
|
||||
============================
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user