summaryrefslogtreecommitdiffstats
path: root/crypto/ppccap.c
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2021-01-09 14:17:29 +0000
committerMatt Caswell <matt@openssl.org>2021-01-14 08:31:03 +0000
commitfc4ca443c7b999bb47bec6b8ea828973e3c4c7e1 (patch)
tree172dceda6ba5339fde755f939474232cc5a11443 /crypto/ppccap.c
parent6e3ba20dc49ccbf12ff4c27a4d8b84dcbeb71654 (diff)
OPENSSL_cpuid_setup FreeBSD PowerPC update
Reviewed-by: Ben Kaduk <kaduk@mit.edu> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/13821) (cherry picked from commit b57ec7394aace731c460b509aa84039274337600)
Diffstat (limited to 'crypto/ppccap.c')
-rw-r--r--crypto/ppccap.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/crypto/ppccap.c b/crypto/ppccap.c
index b12cd949cc..1d62226965 100644
--- a/crypto/ppccap.c
+++ b/crypto/ppccap.c
@@ -214,6 +214,24 @@ size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t max)
# endif
#endif
+#if defined(__FreeBSD__)
+# include <sys/param.h>
+# if __FreeBSD_version >= 1200000
+# include <sys/auxv.h>
+# define OSSL_IMPLEMENT_GETAUXVAL
+
+static unsigned long getauxval(unsigned long key)
+{
+ unsigned long val = 0ul;
+
+ if (elf_aux_info((int)key, &val, sizeof(val)) != 0)
+ return 0ul;
+
+ return val;
+}
+# endif
+#endif
+
/* I wish <sys/auxv.h> was universally available */
#define HWCAP 16 /* AT_HWCAP */
#define HWCAP_PPC64 (1U << 30)