diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2016-03-18 18:01:07 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-03-20 21:30:08 +0100 |
commit | f7f26f65ab61fe39fe57a9ae38029c4d0cd10653 (patch) | |
tree | e45bcb5598120bd6952afca293d51180ef5f064a /newlib | |
parent | 472d0a228c56bd4783ebb0561667cda2de3cd168 (diff) | |
download | cygnal-f7f26f65ab61fe39fe57a9ae38029c4d0cd10653.tar.gz cygnal-f7f26f65ab61fe39fe57a9ae38029c4d0cd10653.tar.bz2 cygnal-f7f26f65ab61fe39fe57a9ae38029c4d0cd10653.zip |
Allow machine-dependent arc4 locking
newlib:
* libc/stdlib/arc4random.h: Remove Cygwin-specific locking code.
Conditionalize arc4 locking. Check for _ARC4_LOCK_INIT being
undefined to fall back to default implementation.
cygwin:
* include/machine/_arc4random.h: New file.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'newlib')
-rw-r--r-- | newlib/libc/stdlib/arc4random.h | 23 |
1 files changed, 5 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 |