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*4882a593Smuzhiyunstatic 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*4882a593Smuzhiyunstatic 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*4882a593Smuzhiyunstatic 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*4882a593Smuzhiyunstatic 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*4882a593Smuzhiyunstatic inline int powernv_hwrng_present(void) { return 0; } powernv_get_random_real_mode(unsigned long * v)46*4882a593Smuzhiyunstatic 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