diff options
author | miod <> | 2015-09-13 10:02:49 +0000 |
---|---|---|
committer | miod <> | 2015-09-13 10:02:49 +0000 |
commit | 12350069f382f5c9604542a187f5f13cdc426704 (patch) | |
tree | 360415740c3bcfc8c18a28a02f9843f406141836 /src/lib/libcrypto/cryptlib.c | |
parent | 86b9c46552e3f57d558ae8570ed33059e9418153 (diff) | |
download | openbsd-12350069f382f5c9604542a187f5f13cdc426704.tar.gz openbsd-12350069f382f5c9604542a187f5f13cdc426704.tar.bz2 openbsd-12350069f382f5c9604542a187f5f13cdc426704.zip |
Add a new interface, OPENSSL_cpu_caps(), to return the currently running
cpu's specific hardware capabilities users of libcrypto might be interested
in, as an integer value. This deprecates the existing OPENSSL_ia32cap()
macro and the OPENSSL_ia32cap_loc() function (which returns the pointer so
that you can mess with stuff you shouldn't mess with).
Interpreting the value returned by OPENSSL_cpu_caps() is, of course,
machine-dependent.
Minor version bump for libcrypto.
ok beck@ jsing@
Diffstat (limited to 'src/lib/libcrypto/cryptlib.c')
-rw-r--r-- | src/lib/libcrypto/cryptlib.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/libcrypto/cryptlib.c b/src/lib/libcrypto/cryptlib.c index 896e3d39cf..fff59f2dfd 100644 --- a/src/lib/libcrypto/cryptlib.c +++ b/src/lib/libcrypto/cryptlib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: cryptlib.c,v 1.35 2015/06/27 22:42:02 doug Exp $ */ | 1 | /* $OpenBSD: cryptlib.c,v 1.36 2015/09/13 10:02:49 miod Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -641,6 +641,12 @@ OPENSSL_ia32cap_loc(void) | |||
641 | return (unsigned long *)OPENSSL_ia32cap_P; | 641 | return (unsigned long *)OPENSSL_ia32cap_P; |
642 | } | 642 | } |
643 | 643 | ||
644 | uint64_t | ||
645 | OPENSSL_cpu_caps(void) | ||
646 | { | ||
647 | return *(uint64_t *)OPENSSL_ia32cap_P; | ||
648 | } | ||
649 | |||
644 | #if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY) | 650 | #if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY) |
645 | #define OPENSSL_CPUID_SETUP | 651 | #define OPENSSL_CPUID_SETUP |
646 | typedef unsigned long long IA32CAP; | 652 | typedef unsigned long long IA32CAP; |
@@ -673,6 +679,12 @@ OPENSSL_ia32cap_loc(void) | |||
673 | { | 679 | { |
674 | return NULL; | 680 | return NULL; |
675 | } | 681 | } |
682 | |||
683 | uint64_t | ||
684 | OPENSSL_cpu_caps(void) | ||
685 | { | ||
686 | return 0; | ||
687 | } | ||
676 | #endif | 688 | #endif |
677 | 689 | ||
678 | #if !defined(OPENSSL_CPUID_SETUP) && !defined(OPENSSL_CPUID_OBJ) | 690 | #if !defined(OPENSSL_CPUID_SETUP) && !defined(OPENSSL_CPUID_OBJ) |