1 /*--------------------------------------------------------------------------*/ 2 /* Copyright 2020-2021 NXP */ 3 /* */ 4 /* NXP Confidential. This software is owned or controlled by NXP and may */ 5 /* only be used strictly in accordance with the applicable license terms. */ 6 /* By expressly accepting such terms or by downloading, installing, */ 7 /* activating and/or otherwise using the software, you are agreeing that */ 8 /* you have read, and that you agree to comply with and are bound by, such */ 9 /* license terms. If you do not agree to be bound by the applicable license */ 10 /* terms, then you may not retain, install, activate or otherwise use the */ 11 /* software. */ 12 /*--------------------------------------------------------------------------*/ 13 14 /** 15 * @file mcuxClCss_Types.h 16 * @brief CSSv2 type header. 17 * 18 * This header defines types that are used by other mcuxClCss headers. 19 */ 20 /** 21 * @defgroup mcuxClCss_Types mcuxClCss_Types 22 * @brief This part of the @ref mcuxClCss driver defines common types 23 * @ingroup mcuxClCss 24 * @{ 25 */ 26 #ifndef MCUXCLCSS_TYPES_H_ 27 #define MCUXCLCSS_TYPES_H_ 28 29 #include <stdint.h> 30 #include <stddef.h> 31 32 /********************************************** 33 * MACROS 34 **********************************************/ 35 /** 36 * @defgroup mcuxClCss_Types_Macros mcuxClCss_Types_Macros 37 * @brief Defines all macros of @ref mcuxClCss_Types 38 * @ingroup mcuxClCss_Types 39 * @{ 40 */ 41 42 #define MCUXCLCSS_KEY_SLOTS (20U) ///< Number of key slots in the CSS key store. 43 44 /** @defgroup MCUXCLCSS_KEYPROPERTY_VALUE_ MCUXCLCSS_KEYPROPERTY_VALUE_ 45 * @brief Constants for initalizing #mcuxClCss_KeyProp_t.word 46 * @ingroup mcuxClCss_Types_Macros 47 * @{ 48 */ 49 #define MCUXCLCSS_KEYPROPERTY_VALUE_KEY_SIZE_128 ((uint32_t) 0u<< 0u) ///< 128-bit key 50 #define MCUXCLCSS_KEYPROPERTY_VALUE_KEY_SIZE_256 ((uint32_t) 1u<< 0u) ///< 256-bit key 51 #define MCUXCLCSS_KEYPROPERTY_VALUE_ACTIVE ((uint32_t) 1u<< 5u) ///< Key is active (loaded) 52 #define MCUXCLCSS_KEYPROPERTY_VALUE_BASE_SLOT ((uint32_t) 1u<< 6u) ///< First part of multi-slot key 53 #define MCUXCLCSS_KEYPROPERTY_VALUE_GENERAL_PURPOSE_SLOT ((uint32_t) 1u<< 7u) ///< General purpose key slot 54 #define MCUXCLCSS_KEYPROPERTY_VALUE_RETENTION_SLOT ((uint32_t) 1u<< 8u) ///< Retention key slot 55 #define MCUXCLCSS_KEYPROPERTY_VALUE_HW_OUT_SLOT ((uint32_t) 1u<< 9u) ///< Hardware output key slot 56 #define MCUXCLCSS_KEYPROPERTY_VALUE_CMAC ((uint32_t) 1u<<13u) ///< CMAC key 57 #define MCUXCLCSS_KEYPROPERTY_VALUE_KSK ((uint32_t) 1u<<14u) ///< Key signing key 58 #define MCUXCLCSS_KEYPROPERTY_VALUE_RTF ((uint32_t) 1u<<15u) ///< RTF signing key 59 #define MCUXCLCSS_KEYPROPERTY_VALUE_CKDF ((uint32_t) 1u<<16u) ///< CKDF signing key 60 #define MCUXCLCSS_KEYPROPERTY_VALUE_HKDF ((uint32_t) 1u<<17u) ///< HKDF signing key 61 #define MCUXCLCSS_KEYPROPERTY_VALUE_ECSGN ((uint32_t) 1u<<18u) ///< ECC signing key 62 #define MCUXCLCSS_KEYPROPERTY_VALUE_ECDH ((uint32_t) 1u<<19u) ///< ECC Diffie Hellman private key 63 #define MCUXCLCSS_KEYPROPERTY_VALUE_AES ((uint32_t) 1u<<20u) ///< AES key 64 #define MCUXCLCSS_KEYPROPERTY_VALUE_HMAC ((uint32_t) 1u<<21u) ///< HMAC key 65 #define MCUXCLCSS_KEYPROPERTY_VALUE_KWK ((uint32_t) 1u<<22u) ///< Key Wrapping Key 66 #define MCUXCLCSS_KEYPROPERTY_VALUE_KUOK ((uint32_t) 1u<<23u) ///< Key Unwrapping Only Key 67 #define MCUXCLCSS_KEYPROPERTY_VALUE_TLS_PREMASTER_SECRET ((uint32_t) 1u<<24u) ///< TLS Premaster Secret 68 #define MCUXCLCSS_KEYPROPERTY_VALUE_TLS_MASTER_SECRET ((uint32_t) 1u<<25u) ///< TLS Master Secret 69 #define MCUXCLCSS_KEYPROPERTY_VALUE_KGSRC ((uint32_t) 1u<<26u) ///< Can provide key material input for ECC key generation 70 #define MCUXCLCSS_KEYPROPERTY_VALUE_HW_OUT ((uint32_t) 1u<<27u) ///< A key to be used in a hardware out key slot 71 #define MCUXCLCSS_KEYPROPERTY_VALUE_WRPOK ((uint32_t) 1u<<28u) ///< The key can be wrapped 72 #define MCUXCLCSS_KEYPROPERTY_VALUE_DUK ((uint32_t) 1u<<29u) ///< Device Unique Key 73 #define MCUXCLCSS_KEYPROPERTY_VALUE_PRIVILEGED ((uint32_t) 1u<<30u) ///< Caller must be in privileged mode to use the key 74 #define MCUXCLCSS_KEYPROPERTY_VALUE_NOTPRIVILEGED ((uint32_t) 0u<<30u) ///< Caller does not have to be in privileged mode to use the key 75 #define MCUXCLCSS_KEYPROPERTY_VALUE_SECURE ((uint32_t) 0u<<31u) ///< Caller must be in secure mode to use the key 76 #define MCUXCLCSS_KEYPROPERTY_VALUE_NOTSECURE ((uint32_t) 1u<<31u) ///< Caller does not have to be in secure mode to use the key 77 /** 78 * @} 79 */ 80 81 /** @defgroup MCUXCLCSS_KEYPROPERTY_ MCUXCLCSS_KEYPROPERTY_ 82 * @brief Constants for initalizing #mcuxClCss_KeyProp_t.bits 83 * @ingroup mcuxClCss_Types_Macros 84 * @{ 85 */ 86 #define MCUXCLCSS_KEYPROPERTY_KEY_SIZE_128 0U ///< This value of #mcuxClCss_KeyProp_t.ksize indicates a 128 bit key 87 #define MCUXCLCSS_KEYPROPERTY_KEY_SIZE_256 1U ///< This value of #mcuxClCss_KeyProp_t.ksize indicates a 256 bit key 88 #define MCUXCLCSS_KEYPROPERTY_ACTIVE_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.kactv indicates that the slot contains an active key 89 #define MCUXCLCSS_KEYPROPERTY_ACTIVE_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.kactv indicates that the slot does not contain active key 90 #define MCUXCLCSS_KEYPROPERTY_BASE_SLOT 1U ///< This value of #mcuxClCss_KeyProp_t.kbase indicates that the slot is the base slot of a 2-slot key 91 #define MCUXCLCSS_KEYPROPERTY_SECOND_SLOT 0U ///< This value of #mcuxClCss_KeyProp_t.kbase indicates that the slot is the second slot of a 2-slot key 92 #define MCUXCLCSS_KEYPROPERTY_GENERAL_PURPOSE_SLOT_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.fgp indicates that the slot is a retention key slot or a hardware out key slot 93 #define MCUXCLCSS_KEYPROPERTY_GENERAL_PURPOSE_SLOT_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.fgp indicates that the slot is a neither retention key slot nor hardware out key slot 94 #define MCUXCLCSS_KEYPROPERTY_RETENTION_SLOT_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.frtn indicates that the slot is a retention key slot 95 #define MCUXCLCSS_KEYPROPERTY_RETENTION_SLOT_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.frtn indicates that the slot is not a retention key slot 96 #define MCUXCLCSS_KEYPROPERTY_HW_OUT_SLOT_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.fhwo indicates that the slot is a hardware out key slot 97 #define MCUXCLCSS_KEYPROPERTY_HW_OUT_SLOT_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.fhwo indicates that the slot is not a hardware out key slot 98 #define MCUXCLCSS_KEYPROPERTY_CMAC_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.ucmac indicates that the key can be used for CMAC 99 #define MCUXCLCSS_KEYPROPERTY_CMAC_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.ucmac indicates that the key cannot be used for CMAC 100 #define MCUXCLCSS_KEYPROPERTY_KSK_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.uksk indicates that the key can be used for key signing 101 #define MCUXCLCSS_KEYPROPERTY_KSK_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.uksk indicates that the key cannot be used for key signing 102 #define MCUXCLCSS_KEYPROPERTY_RTF_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.urtf indicates that the key can be used for RTF signing 103 #define MCUXCLCSS_KEYPROPERTY_RTF_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.urtf indicates that the key cannot be used for RTF signing 104 #define MCUXCLCSS_KEYPROPERTY_CKDF_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.uckdf indicates that the key can be used for CKDF 105 #define MCUXCLCSS_KEYPROPERTY_CKDF_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.uckdf indicates that the key cannot be used for CKDF 106 #define MCUXCLCSS_KEYPROPERTY_HKDF_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.uhkdf indicates that the key can be used for HKDF 107 #define MCUXCLCSS_KEYPROPERTY_HKDF_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.uhkdf indicates that the key cannot be used for HKDF 108 #define MCUXCLCSS_KEYPROPERTY_ECC_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.uecsg indicates that the key can be used for ECC signing 109 #define MCUXCLCSS_KEYPROPERTY_ECC_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.uecsg indicates that the key cannot be used for ECC signing 110 #define MCUXCLCSS_KEYPROPERTY_ECC_DH_PRIVATE_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.uecdh indicates that the key is a ECC Diffie Hellman private key 111 #define MCUXCLCSS_KEYPROPERTY_ECC_DH_PRIVATE_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.uecdh indicates that the key is not an ECC Diffie Hellman private key 112 #define MCUXCLCSS_KEYPROPERTY_AES_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.uaes indicates that the key is an AES key 113 #define MCUXCLCSS_KEYPROPERTY_AES_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.uaes indicates that the key is not an AES key 114 #define MCUXCLCSS_KEYPROPERTY_HMAC_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.uhmac indicates that the key is an HMAC key 115 #define MCUXCLCSS_KEYPROPERTY_HMAC_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.uhmac indicates that the key is not an HMAC key 116 #define MCUXCLCSS_KEYPROPERTY_KWK_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.ukwk indicates that the key is a Key Wrapping Key 117 #define MCUXCLCSS_KEYPROPERTY_KWK_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.ukwk indicates that the key is not a Key Wrapping Key 118 #define MCUXCLCSS_KEYPROPERTY_KUOK_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.ukuok indicates that the key is a Key Unwrapping Only Key 119 #define MCUXCLCSS_KEYPROPERTY_KUOK_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.ukuok indicates that the key is not a Key Unwrapping Only Key 120 #define MCUXCLCSS_KEYPROPERTY_TLS_PREMASTER_SECRET_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.utlspms indicates that the key is a TLS Premaster Secret 121 #define MCUXCLCSS_KEYPROPERTY_TLS_PREMASTER_SECRET_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.utlspms indicates that the key is not a TLS Premaster Secret 122 #define MCUXCLCSS_KEYPROPERTY_TLS_MASTER_SECRET_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.utlsms indicates that the key is a TLS Master Secret 123 #define MCUXCLCSS_KEYPROPERTY_TLS_MASTER_SECRET_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.utlsms indicates that the key is not a TLS Master Secret 124 #define MCUXCLCSS_KEYPROPERTY_INPUT_FOR_ECC_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.ukgsrc indicates that the key can be used as key material input for ECC key generation 125 #define MCUXCLCSS_KEYPROPERTY_INPUT_FOR_ECC_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.ukgsrc indicates that the key cannot be used as key material input for ECC key generation 126 #define MCUXCLCSS_KEYPROPERTY_HW_OUT_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.uhwo indicates that the key can be used in a hardware out key slot 127 #define MCUXCLCSS_KEYPROPERTY_HW_OUT_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.uhwo indicates that the key cannot be used in a hardware out key slot 128 #define MCUXCLCSS_KEYPROPERTY_WRAP_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.wrpok indicates that the key can be wrapped 129 #define MCUXCLCSS_KEYPROPERTY_WRAP_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.wrpok indicates that the key cannot be wrapped 130 #define MCUXCLCSS_KEYPROPERTY_DEVICE_UNIQUE_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.duk indicates that the key is a Device Unique Key 131 #define MCUXCLCSS_KEYPROPERTY_DEVICE_UNIQUE_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.duk indicates that the key is not a Device Unique Key 132 #define MCUXCLCSS_KEYPROPERTY_PRIVILEGED_TRUE 1U ///< This value of #mcuxClCss_KeyProp_t.upprot_priv indicates that the caller must be in privileged mode to use the key 133 #define MCUXCLCSS_KEYPROPERTY_PRIVILEGED_FALSE 0U ///< This value of #mcuxClCss_KeyProp_t.upprot_priv indicates that the caller does not need to be in privileged mode to use the key 134 #define MCUXCLCSS_KEYPROPERTY_SECURE_TRUE 0U ///< This value of #mcuxClCss_KeyProp_t.upprot_sec indicates that the caller must be in secure mode to use the key 135 #define MCUXCLCSS_KEYPROPERTY_SECURE_FALSE 1U ///< This value of #mcuxClCss_KeyProp_t.upprot_sec indicates that the caller does not need to be in secure mode to use the key 136 /** 137 * @} 138 */ 139 140 /** 141 * @defgroup MCUXCLCSS_STATUS_ MCUXCLCSS_STATUS_ 142 * @brief Return code definitions 143 * @ingroup mcuxClCss_Types_Macros 144 * @{ 145 */ 146 #define MCUXCLCSS_STATUS_OK ((mcuxClCss_Status_t) 0xF0F0F0F0U) ///< No error occurred 147 #define MCUXCLCSS_STATUS_OK_WAIT ((mcuxClCss_Status_t) 0xF0F0F0E1U) ///< An <tt>_Async</tt> function successfully started a CSS command. Call #mcuxClCss_WaitForOperation to complete it 148 #define MCUXCLCSS_STATUS_HW_FAULT ((mcuxClCss_Status_t) 0xF0F0E1E1U) ///< CSSv2 hardware detected a fault 149 #define MCUXCLCSS_STATUS_HW_ALGORITHM ((mcuxClCss_Status_t) 0xF0F0E1E2U) ///< An algorithm failed in hardware 150 #define MCUXCLCSS_STATUS_HW_OPERATIONAL ((mcuxClCss_Status_t) 0xF0F0E1E4U) ///< CSSv2 was operated incorrectly 151 #define MCUXCLCSS_STATUS_HW_BUS ((mcuxClCss_Status_t) 0xF0F0E1E8U) ///< A bus access failed 152 #define MCUXCLCSS_STATUS_HW_INTEGRITY ((mcuxClCss_Status_t) 0xF0F0E1D1U) ///< An integrity check failed in hardware 153 #define MCUXCLCSS_STATUS_HW_PRNG ((mcuxClCss_Status_t) 0xF0F0E1D2U) ///< Read access to PRNG output while PRNG is not in ready state 154 #define MCUXCLCSS_STATUS_HW_DTRNG ((mcuxClCss_Status_t) 0xF0F0E1D4U) ///< Unable to get entropy from dTRNG with current configuration 155 #define MCUXCLCSS_STATUS_SW_FAULT ((mcuxClCss_Status_t) 0xF0F0F0E2U) ///< Software detected a fault 156 #define MCUXCLCSS_STATUS_SW_CANNOT_INTERRUPT ((mcuxClCss_Status_t) 0xF0F0F0E4U) ///< A CSS command was started while the CSS was still busy, or a SHA-Direct command was started while the SHA kernel was still busy 157 #define MCUXCLCSS_STATUS_SW_INVALID_PARAM ((mcuxClCss_Status_t) 0xF0F0F0E8U) ///< Incorrect parameters were supplied 158 #define MCUXCLCSS_STATUS_SW_INVALID_STATE ((mcuxClCss_Status_t) 0xF0F0F0D1U) ///< This can happen when CSS is in a wrong state for the requested CSS command 159 #define MCUXCLCSS_STATUS_SW_COUNTER_EXPIRED ((mcuxClCss_Status_t) 0xF0F0F0D2U) ///< A software counter expired while waiting for a CSS operation to finish 160 #define MCUXCLCSS_STATUS_SW_COMPARISON_FAILED ((mcuxClCss_Status_t) 0xF0F0F0D4U) ///< A comparison between a CSS flag and its expected value failed 161 /** @} */ 162 163 #define MCUXCLCSS_STATUS_IS_HW_ERROR(x) ((((mcuxClCss_Status_t) (x)) & 0x0000FF00U) == 0x0000E100U) ///< Checks whether an error code is a hardware error. Indicates that an error was reported by CSSv2 hardware. 164 165 #define MCUXCLCSS_STATUS_IS_SW_ERROR(x) ((((mcuxClCss_Status_t) (x)) & 0x0000FF00U) == 0x0000F000U) ///< Checks whether an error code is a software error. Indicates that the error was detected by the driver software and not by CSSv2 hardware. 166 167 /** 168 * @} 169 */ 170 171 /********************************************** 172 * TYPEDEFS 173 **********************************************/ 174 /** 175 * @defgroup mcuxClCss_Types_Types mcuxClCss_Types_Types 176 * @brief Defines all types of @ref mcuxClCss_Types 177 * @ingroup mcuxClCss_Types 178 * @{ 179 */ 180 /** 181 * @brief Type for CSS driver protected status codes 182 */ 183 typedef uint64_t mcuxClCss_Status_Protected_t; 184 185 /** 186 * @brief Type for CSS driver status codes 187 */ 188 typedef uint32_t mcuxClCss_Status_t; 189 190 /** 191 * @brief Type for CSS keystore indices 192 */ 193 typedef uint8_t mcuxClCss_KeyIndex_t; 194 195 /** Type for CSS key store key properties */ 196 typedef union 197 { 198 struct 199 { 200 uint32_t value; ///< Accesses the bit field as a full word; initialize with a combination of constants from @ref MCUXCLCSS_KEYPROPERTY_VALUE_ 201 } word; ///< Access #mcuxClCss_KeyProp_t word-wise 202 struct 203 { 204 uint32_t ksize :2; ///< Key size 205 uint32_t :3; ///< RFU 206 uint32_t kactv :1; ///< Status flag to indicate whether the key slot contains an active key or not 207 uint32_t kbase :1; ///< Status flag to indicate whether the key slot is a base slot or the second slot of a 256-bit key 208 uint32_t fgp :1; ///< Hardware feature flag: General purpose key slot 209 uint32_t frtn :1; ///< Hardware feature flag: Retention key slot 210 uint32_t fhwo :1; ///< Hardware feature flag: Hardware-out key slot 211 uint32_t :3; ///< RFU 212 uint32_t ucmac :1; ///< Usage permission for CMAC 213 uint32_t uksk :1; ///< Usage permission for key signing 214 uint32_t urtf :1; ///< Usage permission for RTF signing 215 uint32_t uckdf :1; ///< Usage permission for CKDF 216 uint32_t uhkdf :1; ///< Usage permission for HKDF 217 uint32_t uecsg :1; ///< Usage permission for ECDSA signing 218 uint32_t uecdh :1; ///< Usage permission for Elliptic Curve Diffie-Hellman 219 uint32_t uaes :1; ///< Usage permission for AES 220 uint32_t uhmac :1; ///< Usage permission for HMAC 221 uint32_t ukwk :1; ///< Usage permission for key wrapping 222 uint32_t ukuok :1; ///< Usage permission for key unwrapping, but not for key wrapping 223 uint32_t utlspms :1; ///< Usage permission as a TLS premaster secret 224 uint32_t utlsms :1; ///< Usage permission as a TLS master secret 225 uint32_t ukgsrc :1; ///< Usage permission as input for ECC key generation 226 uint32_t uhwo :1; ///< Usage permission in a hardware-out key slot 227 uint32_t wrpok :1; ///< Usage permission to wrap 228 uint32_t duk :1; ///< Device-unique key flag 229 uint32_t upprot_priv :1; ///< Access restriction to privileged mode 230 uint32_t upprot_sec :1; ///< Access restriction to TrustZone secure mode 231 } bits; ///< Access #mcuxClCss_KeyProp_t bit-wise 232 } mcuxClCss_KeyProp_t; 233 234 235 #define utlpsms utlspms ///< Deprecated name for #mcuxClCss_KeyProp_t.utlspms 236 237 /** 238 * @brief Function type for transfer of data to a memory-mapped register 239 * 240 * This function type is used as a callback for handling data transfer from memory to a memory-mapped register. 241 * Such a function shall read data from the @c uint8_t array source, and write data via a sequence of writes to @p destRegister. 242 * Further specification of this function's behavior can be found in the documentation of the function that accepts this function as a callback parameter. 243 * 244 * @param [out] destRegister Memory-mapped register that the output data shall be written to 245 * @param [in] source Array containing the input data 246 * @param [in] size Size of @p source in bytes 247 * @param [in, out] pCallerData Custom pointer that is provided by the caller and forwarded to the callback function by the operation 248 * @return An error code that can be any error code in @ref MCUXCLCSS_STATUS_, see individual documentation for more information 249 */ 250 typedef mcuxClCss_Status_t (*mcuxClCss_TransferToRegisterFunction_t)( 251 uint32_t volatile * destRegister, 252 uint8_t const * source, 253 size_t size, 254 void * pCallerData); 255 256 #endif /* MCUXCLCSS_TYPES_H_ */ 257 258 /** 259 * @} 260 * 261 * @} 262 */ 263