X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Frand%2Frand_nw.c;h=8d5b8d2e3217f438a4030308528112c872a7403c;hb=32cf5baeae21774db04af2ad2d74567a617c6fec;hp=ba57812788757228121d80a7286fa1f38911f41b;hpb=47c1735acd4fe3d26b192e6784069892c37320a2;p=oweals%2Fopenssl.git diff --git a/crypto/rand/rand_nw.c b/crypto/rand/rand_nw.c index ba57812788..8d5b8d2e32 100644 --- a/crypto/rand/rand_nw.c +++ b/crypto/rand/rand_nw.c @@ -117,9 +117,15 @@ #if defined(NETWARE_LIBC) #include +#else +#include #endif -extern long RunningProcess; +extern int GetProcessSwitchCount(void); +#if !defined(NETWARE_LIBC) || (CURRENT_NDK_THRESHOLD < 509220000) +extern void *RunningProcess; /* declare here same as found in newer NDKs */ +extern unsigned long GetSuperHighResolutionTimer(void); +#endif /* the FAQ indicates we need to provide at least 20 bytes (160 bits) of seed */ @@ -142,7 +148,8 @@ int RAND_poll(void) l = GetProcessSwitchCount(); RAND_add(&l,sizeof(l),1); - l=RunningProcess; + /* need to cast the void* to unsigned long here */ + l = (unsigned long)RunningProcess; RAND_add(&l,sizeof(l),1); for( i=2; i=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) + asm volatile("rdtsc":"=a"(tsc)::"edx"); #endif RAND_add(&tsc, sizeof(tsc), 1);