|
|
@ -1,4 +1,4 @@ |
|
|
|
/* $OpenBSD: arc4random_linux.h,v 1.5 2014/07/19 14:34:38 bcook Exp $ */ |
|
|
|
/* $OpenBSD: arc4random_linux.h,v 1.6 2014/07/19 15:29:25 bcook Exp $ */ |
|
|
|
|
|
|
|
/* |
|
|
|
* Copyright (c) 1996, David Mazieres <dm@uun.org> |
|
|
@ -28,6 +28,14 @@ static pthread_mutex_t arc4random_mtx = PTHREAD_MUTEX_INITIALIZER; |
|
|
|
#define _ARC4_LOCK() pthread_mutex_lock(&arc4random_mtx) |
|
|
|
#define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx) |
|
|
|
|
|
|
|
#ifdef __GLIBC__ |
|
|
|
extern void *__dso_handle; |
|
|
|
extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *); |
|
|
|
#define _ARC4_ATFORK(f) __register_atfork(NULL, NULL, (f), __dso_handle) |
|
|
|
#else |
|
|
|
#define _ARC4_ATFORK(f) pthread_atfork(NULL, NULL, (f)) |
|
|
|
#endif |
|
|
|
|
|
|
|
static volatile sig_atomic_t _rs_forked; |
|
|
|
|
|
|
|
static inline void |
|
|
|