xref: /OK3568_Linux_fs/kernel/arch/powerpc/include/asm/archrandom.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef _ASM_POWERPC_ARCHRANDOM_H
3*4882a593Smuzhiyun #define _ASM_POWERPC_ARCHRANDOM_H
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #ifdef CONFIG_ARCH_RANDOM
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #include <asm/machdep.h>
8*4882a593Smuzhiyun 
arch_get_random_long(unsigned long * v)9*4882a593Smuzhiyun static inline bool __must_check arch_get_random_long(unsigned long *v)
10*4882a593Smuzhiyun {
11*4882a593Smuzhiyun 	return false;
12*4882a593Smuzhiyun }
13*4882a593Smuzhiyun 
arch_get_random_int(unsigned int * v)14*4882a593Smuzhiyun static inline bool __must_check arch_get_random_int(unsigned int *v)
15*4882a593Smuzhiyun {
16*4882a593Smuzhiyun 	return false;
17*4882a593Smuzhiyun }
18*4882a593Smuzhiyun 
arch_get_random_seed_long(unsigned long * v)19*4882a593Smuzhiyun static inline bool __must_check arch_get_random_seed_long(unsigned long *v)
20*4882a593Smuzhiyun {
21*4882a593Smuzhiyun 	if (ppc_md.get_random_seed)
22*4882a593Smuzhiyun 		return ppc_md.get_random_seed(v);
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun 	return false;
25*4882a593Smuzhiyun }
26*4882a593Smuzhiyun 
arch_get_random_seed_int(unsigned int * v)27*4882a593Smuzhiyun static inline bool __must_check arch_get_random_seed_int(unsigned int *v)
28*4882a593Smuzhiyun {
29*4882a593Smuzhiyun 	unsigned long val;
30*4882a593Smuzhiyun 	bool rc;
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun 	rc = arch_get_random_seed_long(&val);
33*4882a593Smuzhiyun 	if (rc)
34*4882a593Smuzhiyun 		*v = val;
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun 	return rc;
37*4882a593Smuzhiyun }
38*4882a593Smuzhiyun #endif /* CONFIG_ARCH_RANDOM */
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun #ifdef CONFIG_PPC_POWERNV
41*4882a593Smuzhiyun int powernv_hwrng_present(void);
42*4882a593Smuzhiyun int powernv_get_random_long(unsigned long *v);
43*4882a593Smuzhiyun int powernv_get_random_real_mode(unsigned long *v);
44*4882a593Smuzhiyun #else
powernv_hwrng_present(void)45*4882a593Smuzhiyun static inline int powernv_hwrng_present(void) { return 0; }
powernv_get_random_real_mode(unsigned long * v)46*4882a593Smuzhiyun static inline int powernv_get_random_real_mode(unsigned long *v) { return 0; }
47*4882a593Smuzhiyun #endif
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun #endif /* _ASM_POWERPC_ARCHRANDOM_H */
50