mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-28 02:00:34 -07:00
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>
95 lines
1.9 KiB
Python
95 lines
1.9 KiB
Python
# -*- Mode: Python -*-
|
|
# vim: filetype=python
|
|
#
|
|
# This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
# See the COPYING file in the top-level directory.
|
|
|
|
##
|
|
# = Cryptography devices
|
|
##
|
|
|
|
##
|
|
# @QCryptodevBackendAlgType:
|
|
#
|
|
# The supported algorithm types of a crypto device.
|
|
#
|
|
# @sym: symmetric encryption
|
|
#
|
|
# @asym: asymmetric Encryption
|
|
#
|
|
# Since: 8.0
|
|
##
|
|
{ 'enum': 'QCryptodevBackendAlgType',
|
|
'prefix': 'QCRYPTODEV_BACKEND_ALG',
|
|
'data': ['sym', 'asym']}
|
|
|
|
##
|
|
# @QCryptodevBackendServiceType:
|
|
#
|
|
# The supported service types of a crypto device.
|
|
#
|
|
# Since: 8.0
|
|
##
|
|
{ 'enum': 'QCryptodevBackendServiceType',
|
|
'prefix': 'QCRYPTODEV_BACKEND_SERVICE',
|
|
'data': ['cipher', 'hash', 'mac', 'aead', 'akcipher']}
|
|
|
|
##
|
|
# @QCryptodevBackendType:
|
|
#
|
|
# The crypto device backend type
|
|
#
|
|
# @builtin: the QEMU builtin support
|
|
#
|
|
# @vhost-user: vhost-user
|
|
#
|
|
# @lkcf: Linux kernel cryptographic framework
|
|
#
|
|
# Since: 8.0
|
|
##
|
|
{ 'enum': 'QCryptodevBackendType',
|
|
'data': ['builtin', 'vhost-user', 'lkcf']}
|
|
|
|
##
|
|
# @QCryptodevBackendClient:
|
|
#
|
|
# Information about a queue of crypto device.
|
|
#
|
|
# @queue: the queue index of the crypto device
|
|
#
|
|
# @type: the type of the crypto device
|
|
#
|
|
# Since: 8.0
|
|
##
|
|
{ 'struct': 'QCryptodevBackendClient',
|
|
'data': { 'queue': 'uint32',
|
|
'type': 'QCryptodevBackendType' } }
|
|
|
|
##
|
|
# @QCryptodevInfo:
|
|
#
|
|
# Information about a crypto device.
|
|
#
|
|
# @id: the id of the crypto device
|
|
#
|
|
# @service: supported service types of a crypto device
|
|
#
|
|
# @client: the additional information of the crypto device
|
|
#
|
|
# Since: 8.0
|
|
##
|
|
{ 'struct': 'QCryptodevInfo',
|
|
'data': { 'id': 'str',
|
|
'service': ['QCryptodevBackendServiceType'],
|
|
'client': ['QCryptodevBackendClient'] } }
|
|
|
|
##
|
|
# @query-cryptodev:
|
|
#
|
|
# Returns information about current crypto devices.
|
|
#
|
|
# Returns: a list of @QCryptodevInfo
|
|
#
|
|
# Since: 8.0
|
|
##
|
|
{ 'command': 'query-cryptodev', 'returns': ['QCryptodevInfo']}
|