camel_to_upper() converts its argument from camel case to upper case
with '_' between words. Used for generated enumeration constant
prefixes.
When some of the words are spelled all caps, where exactly to insert
'_' is guesswork. camel_to_upper()'s guesses are bad enough in places
to make people override them with a 'prefix' in the schema.
Rewrite it to guess better:
1. Insert '_' after a non-upper case character followed by an upper
case character:
OneTwo -> ONE_TWO
One2Three -> ONE2_THREE
2. Insert '_' before the last upper case character followed by a
non-upper case character:
ACRONYMWord -> ACRONYM_Word
Except at the beginning (as in OneTwo above), or when there is
already one:
AbCd -> AB_CD
This changes the default enumeration constant prefix for a number of
enums. Generated enumeration constants change only where the default
is not overridden with 'prefix'.
The following enumerations without a 'prefix' change:
enum old camel_to_upper()
new camel_to_upper()
------------------------------------------------------------------
DisplayGLMode DISPLAYGL_MODE
DISPLAY_GL_MODE
EbpfProgramID EBPF_PROGRAMID
EBPF_PROGRAM_ID
HmatLBDataType HMATLB_DATA_TYPE
HMAT_LB_DATA_TYPE
HmatLBMemoryHierarchy HMATLB_MEMORY_HIERARCHY
HMAT_LB_MEMORY_HIERARCHY
MultiFDCompression MULTIFD_COMPRESSION
MULTI_FD_COMPRESSION
OffAutoPCIBAR OFF_AUTOPCIBAR
OFF_AUTO_PCIBAR
QCryptoBlockFormat Q_CRYPTO_BLOCK_FORMAT
QCRYPTO_BLOCK_FORMAT
QCryptoBlockLUKSKeyslotState Q_CRYPTO_BLOCKLUKS_KEYSLOT_STATE
QCRYPTO_BLOCK_LUKS_KEYSLOT_STATE
QKeyCode Q_KEY_CODE
QKEY_CODE
XDbgBlockGraphNodeType X_DBG_BLOCK_GRAPH_NODE_TYPE
XDBG_BLOCK_GRAPH_NODE_TYPE
TestUnionEnumA TEST_UNION_ENUMA
TEST_UNION_ENUM_A
Add a 'prefix' so generated code doesn't change now. Subsequent
commits will remove most of them again. Two will remain:
MULTIFD_COMPRESSION, because migration code generally spells "multifd"
that way, and Q_KEY_CODE, because that one is baked into
subprojects/keycodemapdb/tools/keymap-gen.
The following enumerations with a 'prefix' change so that the prefix
is now superfluous:
enum old camel_to_upper()
new camel_to_upper() [equal to prefix]
------------------------------------------------------------------
BlkdebugIOType BLKDEBUGIO_TYPE
BLKDEBUG_IO_TYPE
QCryptoTLSCredsEndpoint Q_CRYPTOTLS_CREDS_ENDPOINT
QCRYPTO_TLS_CREDS_ENDPOINT
QCryptoSecretFormat Q_CRYPTO_SECRET_FORMAT
QCRYPTO_SECRET_FORMAT
QCryptoCipherMode Q_CRYPTO_CIPHER_MODE
QCRYPTO_CIPHER_MODE
QCryptodevBackendType Q_CRYPTODEV_BACKEND_TYPE
QCRYPTODEV_BACKEND_TYPE
QType [builtin] Q_TYPE
QTYPE
Drop these prefixes.
The following enumerations with a 'prefix' change without making the
'prefix' superfluous:
enum old camel_to_upper()
new camel_to_upper() [equal to prefix]
prefix
------------------------------------------------------------------
CpuS390Entitlement CPUS390_ENTITLEMENT
CPU_S390_ENTITLEMENT
S390_CPU_ENTITLEMENT
CpuS390Polarization CPUS390_POLARIZATION
CPU_S390_POLARIZATION
S390_CPU_POLARIZATION
CpuS390State CPUS390_STATE
CPU_S390_STATE
S390_CPU_STATE
QAuthZListFormat Q_AUTHZ_LIST_FORMAT
QAUTH_Z_LIST_FORMAT
QAUTHZ_LIST_FORMAT
QAuthZListPolicy Q_AUTHZ_LIST_POLICY
QAUTH_Z_LIST_POLICY
QAUTHZ_LIST_POLICY
QCryptoAkCipherAlgorithm Q_CRYPTO_AK_CIPHER_ALGORITHM
QCRYPTO_AK_CIPHER_ALGORITHM
QCRYPTO_AKCIPHER_ALG
QCryptoAkCipherKeyType Q_CRYPTO_AK_CIPHER_KEY_TYPE
QCRYPTO_AK_CIPHER_KEY_TYPE
QCRYPTO_AKCIPHER_KEY_TYPE
QCryptoCipherAlgorithm Q_CRYPTO_CIPHER_ALGORITHM
QCRYPTO_CIPHER_ALGORITHM
QCRYPTO_CIPHER_ALG
QCryptoHashAlgorithm Q_CRYPTO_HASH_ALGORITHM
QCRYPTO_HASH_ALGORITHM
QCRYPTO_HASH_ALG
QCryptoIVGenAlgorithm Q_CRYPTOIV_GEN_ALGORITHM
QCRYPTO_IV_GEN_ALGORITHM
QCRYPTO_IVGEN_ALG
QCryptoRSAPaddingAlgorithm Q_CRYPTORSA_PADDING_ALGORITHM
QCRYPTO_RSA_PADDING_ALGORITHM
QCRYPTO_RSA_PADDING_ALG
QCryptodevBackendAlgType Q_CRYPTODEV_BACKEND_ALG_TYPE
QCRYPTODEV_BACKEND_ALG_TYPE
QCRYPTODEV_BACKEND_ALG
QCryptodevBackendServiceType Q_CRYPTODEV_BACKEND_SERVICE_TYPE
QCRYPTODEV_BACKEND_SERVICE_TYPE
QCRYPTODEV_BACKEND_SERVICE
Subsequent commits will tweak things to remove most of these prefixes.
Only QAUTHZ_LIST_FORMAT and QAUTHZ_LIST_POLICY will remain.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-ID: <20240904111836.3273842-2-armbru@redhat.com>
203 lines
3.6 KiB
Python
203 lines
3.6 KiB
Python
# -*- Mode: Python -*-
|
|
# vim: filetype=python
|
|
|
|
##
|
|
# = Common data types
|
|
##
|
|
|
|
##
|
|
# @IoOperationType:
|
|
#
|
|
# An enumeration of the I/O operation types
|
|
#
|
|
# @read: read operation
|
|
#
|
|
# @write: write operation
|
|
#
|
|
# Since: 2.1
|
|
##
|
|
{ 'enum': 'IoOperationType',
|
|
'data': [ 'read', 'write' ] }
|
|
|
|
##
|
|
# @OnOffAuto:
|
|
#
|
|
# An enumeration of three options: on, off, and auto
|
|
#
|
|
# @auto: QEMU selects the value between on and off
|
|
#
|
|
# @on: Enabled
|
|
#
|
|
# @off: Disabled
|
|
#
|
|
# Since: 2.2
|
|
##
|
|
{ 'enum': 'OnOffAuto',
|
|
'data': [ 'auto', 'on', 'off' ] }
|
|
|
|
##
|
|
# @OnOffSplit:
|
|
#
|
|
# An enumeration of three values: on, off, and split
|
|
#
|
|
# @on: Enabled
|
|
#
|
|
# @off: Disabled
|
|
#
|
|
# @split: Mixed
|
|
#
|
|
# Since: 2.6
|
|
##
|
|
{ 'enum': 'OnOffSplit',
|
|
'data': [ 'on', 'off', 'split' ] }
|
|
|
|
##
|
|
# @StrOrNull:
|
|
#
|
|
# This is a string value or the explicit lack of a string (null
|
|
# pointer in C). Intended for cases when 'optional absent' already
|
|
# has a different meaning.
|
|
#
|
|
# @s: the string value
|
|
#
|
|
# @n: no string value
|
|
#
|
|
# Since: 2.10
|
|
##
|
|
{ 'alternate': 'StrOrNull',
|
|
'data': { 's': 'str',
|
|
'n': 'null' } }
|
|
|
|
##
|
|
# @OffAutoPCIBAR:
|
|
#
|
|
# An enumeration of options for specifying a PCI BAR
|
|
#
|
|
# @off: The specified feature is disabled
|
|
#
|
|
# @auto: The PCI BAR for the feature is automatically selected
|
|
#
|
|
# @bar0: PCI BAR0 is used for the feature
|
|
#
|
|
# @bar1: PCI BAR1 is used for the feature
|
|
#
|
|
# @bar2: PCI BAR2 is used for the feature
|
|
#
|
|
# @bar3: PCI BAR3 is used for the feature
|
|
#
|
|
# @bar4: PCI BAR4 is used for the feature
|
|
#
|
|
# @bar5: PCI BAR5 is used for the feature
|
|
#
|
|
# Since: 2.12
|
|
##
|
|
{ 'enum': 'OffAutoPCIBAR',
|
|
'prefix': 'OFF_AUTOPCIBAR', # TODO drop
|
|
'data': [ 'off', 'auto', 'bar0', 'bar1', 'bar2', 'bar3', 'bar4', 'bar5' ] }
|
|
|
|
##
|
|
# @PCIELinkSpeed:
|
|
#
|
|
# An enumeration of PCIe link speeds in units of GT/s
|
|
#
|
|
# @2_5: 2.5GT/s
|
|
#
|
|
# @5: 5.0GT/s
|
|
#
|
|
# @8: 8.0GT/s
|
|
#
|
|
# @16: 16.0GT/s
|
|
#
|
|
# @32: 32.0GT/s (since 9.0)
|
|
#
|
|
# @64: 64.0GT/s (since 9.0)
|
|
#
|
|
# Since: 4.0
|
|
##
|
|
{ 'enum': 'PCIELinkSpeed',
|
|
'data': [ '2_5', '5', '8', '16', '32', '64' ] }
|
|
|
|
##
|
|
# @PCIELinkWidth:
|
|
#
|
|
# An enumeration of PCIe link width
|
|
#
|
|
# @1: x1
|
|
#
|
|
# @2: x2
|
|
#
|
|
# @4: x4
|
|
#
|
|
# @8: x8
|
|
#
|
|
# @12: x12
|
|
#
|
|
# @16: x16
|
|
#
|
|
# @32: x32
|
|
#
|
|
# Since: 4.0
|
|
##
|
|
{ 'enum': 'PCIELinkWidth',
|
|
'data': [ '1', '2', '4', '8', '12', '16', '32' ] }
|
|
|
|
##
|
|
# @HostMemPolicy:
|
|
#
|
|
# Host memory policy types
|
|
#
|
|
# @default: restore default policy, remove any nondefault policy
|
|
#
|
|
# @preferred: set the preferred host nodes for allocation
|
|
#
|
|
# @bind: a strict policy that restricts memory allocation to the host
|
|
# nodes specified
|
|
#
|
|
# @interleave: memory allocations are interleaved across the set of
|
|
# host nodes specified
|
|
#
|
|
# Since: 2.1
|
|
##
|
|
{ 'enum': 'HostMemPolicy',
|
|
'data': [ 'default', 'preferred', 'bind', 'interleave' ] }
|
|
|
|
##
|
|
# @NetFilterDirection:
|
|
#
|
|
# Indicates whether a netfilter is attached to a netdev's transmit
|
|
# queue or receive queue or both.
|
|
#
|
|
# @all: the filter is attached both to the receive and the transmit
|
|
# queue of the netdev (default).
|
|
#
|
|
# @rx: the filter is attached to the receive queue of the netdev,
|
|
# where it will receive packets sent to the netdev.
|
|
#
|
|
# @tx: the filter is attached to the transmit queue of the netdev,
|
|
# where it will receive packets sent by the netdev.
|
|
#
|
|
# Since: 2.5
|
|
##
|
|
{ 'enum': 'NetFilterDirection',
|
|
'data': [ 'all', 'rx', 'tx' ] }
|
|
|
|
##
|
|
# @GrabToggleKeys:
|
|
#
|
|
# Keys to toggle input-linux between host and guest.
|
|
#
|
|
# Since: 4.0
|
|
##
|
|
{ 'enum': 'GrabToggleKeys',
|
|
'data': [ 'ctrl-ctrl', 'alt-alt', 'shift-shift','meta-meta', 'scrolllock',
|
|
'ctrl-scrolllock' ] }
|
|
|
|
##
|
|
# @HumanReadableText:
|
|
#
|
|
# @human-readable-text: Formatted output intended for humans.
|
|
#
|
|
# Since: 6.2
|
|
##
|
|
{ 'struct': 'HumanReadableText',
|
|
'data': { 'human-readable-text': 'str' } }
|