mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 18:44:58 -06: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']}
|