mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 14:53:54 -06:00
hw/qdev-properties-system: Introduce EndianMode QAPI enum
Introduce the EndianMode type and the DEFINE_PROP_ENDIAN() macros. Endianness can be BIG, LITTLE or unspecified (default). Reviewed-by: Thomas Huth <thuth@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20250213122217.62654-2-philmd@linaro.org>
This commit is contained in:
parent
788369f477
commit
4ec96630f9
3 changed files with 32 additions and 0 deletions
|
@ -1283,3 +1283,14 @@ const PropertyInfo qdev_prop_iothread_vq_mapping_list = {
|
|||
.set = set_iothread_vq_mapping_list,
|
||||
.release = release_iothread_vq_mapping_list,
|
||||
};
|
||||
|
||||
/* --- Endian modes */
|
||||
|
||||
const PropertyInfo qdev_prop_endian_mode = {
|
||||
.name = "EndianMode",
|
||||
.description = "Endian mode, big/little/unspecified",
|
||||
.enum_table = &EndianMode_lookup,
|
||||
.get = qdev_propinfo_get_enum,
|
||||
.set = qdev_propinfo_set_enum,
|
||||
.set_default_value = qdev_propinfo_set_default_value_enum,
|
||||
};
|
||||
|
|
|
@ -30,6 +30,7 @@ extern const PropertyInfo qdev_prop_pcie_link_speed;
|
|||
extern const PropertyInfo qdev_prop_pcie_link_width;
|
||||
extern const PropertyInfo qdev_prop_cpus390entitlement;
|
||||
extern const PropertyInfo qdev_prop_iothread_vq_mapping_list;
|
||||
extern const PropertyInfo qdev_prop_endian_mode;
|
||||
|
||||
#define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \
|
||||
DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t)
|
||||
|
@ -97,4 +98,10 @@ extern const PropertyInfo qdev_prop_iothread_vq_mapping_list;
|
|||
DEFINE_PROP(_name, _state, _field, qdev_prop_iothread_vq_mapping_list, \
|
||||
IOThreadVirtQueueMappingList *)
|
||||
|
||||
#define DEFINE_PROP_ENDIAN(_name, _state, _field, _default) \
|
||||
DEFINE_PROP_UNSIGNED(_name, _state, _field, _default, \
|
||||
qdev_prop_endian_mode, EndianMode)
|
||||
#define DEFINE_PROP_ENDIAN_NODEFAULT(_name, _state, _field) \
|
||||
DEFINE_PROP_ENDIAN(_name, _state, _field, ENDIAN_MODE_UNSPECIFIED)
|
||||
|
||||
#endif
|
||||
|
|
|
@ -212,3 +212,17 @@
|
|||
##
|
||||
{ 'struct': 'HumanReadableText',
|
||||
'data': { 'human-readable-text': 'str' } }
|
||||
|
||||
##
|
||||
# @EndianMode:
|
||||
#
|
||||
# @unspecified: Endianness not specified
|
||||
#
|
||||
# @little: Little endianness
|
||||
#
|
||||
# @big: Big endianness
|
||||
#
|
||||
# Since: 10.0
|
||||
##
|
||||
{ 'enum': 'EndianMode',
|
||||
'data': [ 'unspecified', 'little', 'big' ] }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue