Lines Matching +full:function +full:- +full:mask
1 /* SPDX-License-Identifier: GPL-2.0 */
40 * Function codes for the KM (CIPHER MESSAGE) instruction
58 * Function codes for the KMC (CIPHER MESSAGE WITH CHAINING)
74 * Function codes for the KMCTR (CIPHER MESSAGE WITH COUNTER)
89 * Function codes for the KIMD (COMPUTE INTERMEDIATE MESSAGE DIGEST)
103 * Function codes for the KLMD (COMPUTE LAST MESSAGE DIGEST)
116 * function codes for the KMAC (COMPUTE MESSAGE AUTHENTICATION CODE)
125 * Function codes for the PCKMO (PERFORM CRYPTOGRAPHIC KEY MANAGEMENT)
142 * Function codes for the PRNO (PERFORM RANDOM NUMBER OPERATION)
152 * Function codes for the KMA (CIPHER MESSAGE WITH AUTHENTICATION)
163 #define CPACF_KMA_LPC 0x100 /* Last-Plaintext/Ciphertext */
164 #define CPACF_KMA_LAAD 0x200 /* Last-AAD */
165 #define CPACF_KMA_HS 0x400 /* Hash-subkey Supplied */
170 * Prototype for a not existing function to produce a link
177 cpacf_mask_t *mask) in __cpacf_query_rre() argument
180 " la %%r1,%[mask]\n" in __cpacf_query_rre()
183 : [mask] "=R" (*mask) in __cpacf_query_rre()
191 cpacf_mask_t *mask) in __cpacf_query_rrf() argument
194 " la %%r1,%[mask]\n" in __cpacf_query_rrf()
197 : [mask] "=R" (*mask) in __cpacf_query_rrf()
204 cpacf_mask_t *mask) in __cpacf_query() argument
208 __cpacf_query_rre(CPACF_KDSA, 0, 2, mask); in __cpacf_query()
211 __cpacf_query_rre(CPACF_KIMD, 0, 2, mask); in __cpacf_query()
214 __cpacf_query_rre(CPACF_KLMD, 0, 2, mask); in __cpacf_query()
217 __cpacf_query_rre(CPACF_KM, 2, 4, mask); in __cpacf_query()
220 __cpacf_query_rrf(CPACF_KMA, 2, 4, 6, 0, mask); in __cpacf_query()
223 __cpacf_query_rre(CPACF_KMAC, 0, 2, mask); in __cpacf_query()
226 __cpacf_query_rre(CPACF_KMC, 2, 4, mask); in __cpacf_query()
229 __cpacf_query_rrf(CPACF_KMCTR, 2, 4, 6, 0, mask); in __cpacf_query()
232 __cpacf_query_rre(CPACF_KMF, 2, 4, mask); in __cpacf_query()
235 __cpacf_query_rre(CPACF_KMO, 2, 4, mask); in __cpacf_query()
238 __cpacf_query_rre(CPACF_PCC, 0, 0, mask); in __cpacf_query()
241 __cpacf_query_rre(CPACF_PCKMO, 0, 0, mask); in __cpacf_query()
244 __cpacf_query_rre(CPACF_PRNO, 2, 4, mask); in __cpacf_query()
278 * cpacf_query() - check if a specific CPACF function is available
280 * @func: the function code to test for
282 * Executes the query function for the given crypto instruction @opcode
287 static __always_inline int cpacf_query(unsigned int opcode, cpacf_mask_t *mask) in cpacf_query() argument
290 __cpacf_query(opcode, mask); in cpacf_query()
293 memset(mask, 0, sizeof(*mask)); in cpacf_query()
297 static inline int cpacf_test_func(cpacf_mask_t *mask, unsigned int func) in cpacf_test_func() argument
299 return (mask->bytes[func >> 3] & (0x80 >> (func & 7))) != 0; in cpacf_test_func()
304 cpacf_mask_t mask; in cpacf_query_func() local
306 if (cpacf_query(opcode, &mask)) in cpacf_query_func()
307 return cpacf_test_func(&mask, func); in cpacf_query_func()
312 * cpacf_km() - executes the KM (CIPHER MESSAGE) instruction
313 * @func: the function code passed to KM; see CPACF_KM_xxx defines
340 return src_len - s.odd; in cpacf_km()
344 * cpacf_kmc() - executes the KMC (CIPHER MESSAGE WITH CHAINING) instruction
345 * @func: the function code passed to KM; see CPACF_KMC_xxx defines
372 return src_len - s.odd; in cpacf_kmc()
376 * cpacf_kimd() - executes the KIMD (COMPUTE INTERMEDIATE MESSAGE DIGEST)
378 * @func: the function code passed to KM; see CPACF_KIMD_xxx defines
402 * cpacf_klmd() - executes the KLMD (COMPUTE LAST MESSAGE DIGEST) instruction
403 * @func: the function code passed to KM; see CPACF_KLMD_xxx defines
427 * cpacf_kmac() - executes the KMAC (COMPUTE MESSAGE AUTHENTICATION CODE)
429 * @func: the function code passed to KM; see CPACF_KMAC_xxx defines
453 return src_len - s.odd; in cpacf_kmac()
457 * cpacf_kmctr() - executes the KMCTR (CIPHER MESSAGE WITH COUNTER) instruction
458 * @func: the function code passed to KMCTR; see CPACF_KMCTR_xxx defines
488 return src_len - s.odd; in cpacf_kmctr()
492 * cpacf_prno() - executes the PRNO (PERFORM RANDOM NUMBER OPERATION)
494 * @func: the function code passed to PRNO; see CPACF_PRNO_xxx defines
523 * cpacf_trng() - executes the TRNG subfunction of the PRNO instruction
548 * cpacf_pcc() - executes the PCC (PERFORM CRYPTOGRAPHIC COMPUTATION)
550 * @func: the function code passed to PCC; see CPACF_KM_xxx defines
567 * cpacf_pckmo() - executes the PCKMO (PERFORM CRYPTOGRAPHIC KEY
569 * @func: the function code passed to PCKMO; see CPACF_PCKMO_xxx defines
587 * cpacf_kma() - executes the KMA (CIPHER MESSAGE WITH AUTHENTICATION)
589 * @func: the function code passed to KMA; see CPACF_KMA_xxx defines