printf: Remove unused 'bprintf'
[drm/drm-misc.git] / include / crypto / internal / simd.h
blobbe97b97a75dd2d0ab66fad8a6260c18ddf9eda3b
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3 * Shared crypto simd helpers
4 */
6 #ifndef _CRYPTO_INTERNAL_SIMD_H
7 #define _CRYPTO_INTERNAL_SIMD_H
9 #include <linux/percpu.h>
10 #include <linux/types.h>
12 /* skcipher support */
14 struct simd_skcipher_alg;
15 struct skcipher_alg;
17 struct simd_skcipher_alg *simd_skcipher_create_compat(struct skcipher_alg *ialg,
18 const char *algname,
19 const char *drvname,
20 const char *basename);
21 void simd_skcipher_free(struct simd_skcipher_alg *alg);
23 int simd_register_skciphers_compat(struct skcipher_alg *algs, int count,
24 struct simd_skcipher_alg **simd_algs);
26 void simd_unregister_skciphers(struct skcipher_alg *algs, int count,
27 struct simd_skcipher_alg **simd_algs);
29 /* AEAD support */
31 struct simd_aead_alg;
32 struct aead_alg;
34 int simd_register_aeads_compat(struct aead_alg *algs, int count,
35 struct simd_aead_alg **simd_algs);
37 void simd_unregister_aeads(struct aead_alg *algs, int count,
38 struct simd_aead_alg **simd_algs);
41 * crypto_simd_usable() - is it allowed at this time to use SIMD instructions or
42 * access the SIMD register file?
44 * This delegates to may_use_simd(), except that this also returns false if SIMD
45 * in crypto code has been temporarily disabled on this CPU by the crypto
46 * self-tests, in order to test the no-SIMD fallback code. This override is
47 * currently limited to configurations where the extra self-tests are enabled,
48 * because it might be a bit too invasive to be part of the regular self-tests.
50 * This is a macro so that <asm/simd.h>, which some architectures don't have,
51 * doesn't have to be included directly here.
53 #ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS
54 DECLARE_PER_CPU(bool, crypto_simd_disabled_for_test);
55 #define crypto_simd_usable() \
56 (may_use_simd() && !this_cpu_read(crypto_simd_disabled_for_test))
57 #else
58 #define crypto_simd_usable() may_use_simd()
59 #endif
61 #endif /* _CRYPTO_INTERNAL_SIMD_H */