diff options
-rw-r--r-- | newlib/libc/stdlib/arc4random.h | 23 | ||||
-rw-r--r-- | winsup/cygwin/include/machine/_arc4random.h | 30 |
2 files changed, 35 insertions, 18 deletions
diff --git a/newlib/libc/stdlib/arc4random.h b/newlib/libc/stdlib/arc4random.h index 8bb72f40e..54bcbe8ae 100644 --- a/newlib/libc/stdlib/arc4random.h +++ b/newlib/libc/stdlib/arc4random.h @@ -37,30 +37,17 @@ #include <sys/lock.h> #include <signal.h> -__LOCK_INIT(static, _arc4random_mutex); +#ifndef _ARC4_LOCK_INIT -#ifdef __CYGWIN__ - -extern int __isthreaded; - -#define _ARC4_LOCK() \ - do { \ - if (__isthreaded) \ - __lock_acquire (_arc4random_mutex); \ - } while (0) - -#define _ARC4_UNLOCK() \ - do { \ - if (__isthreaded) \ - __lock_release (_arc4random_mutex); \ - } while (0) -#else +#define _ARC4_LOCK_INIT __LOCK_INIT(static, _arc4random_mutex); #define _ARC4_LOCK() __lock_acquire(_arc4random_mutex) #define _ARC4_UNLOCK() __lock_release(_arc4random_mutex) -#endif +#endif /* _ARC4_LOCK_INIT */ + +_ARC4_LOCK_INIT #ifdef _ARC4RANDOM_DATA _ARC4RANDOM_DATA diff --git a/winsup/cygwin/include/machine/_arc4random.h b/winsup/cygwin/include/machine/_arc4random.h new file mode 100644 index 000000000..3ce245809 --- /dev/null +++ b/winsup/cygwin/include/machine/_arc4random.h @@ -0,0 +1,30 @@ +/* machine/_arc4random.h + + Copyright 2016 Red Hat, Inc. + +This file is part of Cygwin. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. */ + +#ifndef _MACHINE_ARC4RANDOM_H +#define _MACHINE_ARC4RANDOM_H + +extern int __isthreaded; + +#define _ARC4_LOCK_INIT __LOCK_INIT(static, _arc4random_mutex); + +#define _ARC4_LOCK() \ + do { \ + if (__isthreaded) \ + __lock_acquire (_arc4random_mutex); \ + } while (0) + +#define _ARC4_UNLOCK() \ + do { \ + if (__isthreaded) \ + __lock_release (_arc4random_mutex); \ + } while (0) + +#endif /* _MACHINE_ARC4RANDOM_H */ |