From ddd498e9dc3b8e01469736ea80d9583f6d3b978a Mon Sep 17 00:00:00 2001 From: jsing <> Date: Sat, 19 Oct 2024 13:06:11 +0000 Subject: Remove IA32 specific code from cryptlib.c. Move the IA32 specific code to arch/{amd64,i386}/crypto_cpu_caps.c, rather than polluting cryptlib.c with machine dependent code. A stub version of crypto_cpu_caps_ia32() still remains for now. --- src/lib/libcrypto/arch/amd64/crypto_arch.h | 3 ++- src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c | 10 ++++++++-- src/lib/libcrypto/arch/i386/crypto_arch.h | 3 ++- src/lib/libcrypto/arch/i386/crypto_cpu_caps.c | 10 ++++++++-- 4 files changed, 20 insertions(+), 6 deletions(-) (limited to 'src/lib/libcrypto/arch') diff --git a/src/lib/libcrypto/arch/amd64/crypto_arch.h b/src/lib/libcrypto/arch/amd64/crypto_arch.h index 6feeaa209e..64b2da587b 100644 --- a/src/lib/libcrypto/arch/amd64/crypto_arch.h +++ b/src/lib/libcrypto/arch/amd64/crypto_arch.h @@ -1,4 +1,4 @@ -/* $OpenBSD: crypto_arch.h,v 1.2 2024/10/18 13:36:24 jsing Exp $ */ +/* $OpenBSD: crypto_arch.h,v 1.3 2024/10/19 13:06:11 jsing Exp $ */ /* * Copyright (c) 2024 Joel Sing * @@ -19,6 +19,7 @@ #define HEADER_CRYPTO_ARCH_H #define HAVE_CRYPTO_CPU_CAPS_INIT +#define HAVE_CRYPTO_CPU_CAPS_IA32 #ifndef OPENSSL_NO_ASM diff --git a/src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c b/src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c index 8cbf24edbd..b0da0d636c 100644 --- a/src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c +++ b/src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c @@ -1,4 +1,4 @@ -/* $OpenBSD: crypto_cpu_caps.c,v 1.1 2024/10/18 13:36:24 jsing Exp $ */ +/* $OpenBSD: crypto_cpu_caps.c,v 1.2 2024/10/19 13:06:11 jsing Exp $ */ /* * Copyright (c) 2024 Joel Sing * @@ -22,7 +22,7 @@ #include "x86_arch.h" /* Legacy architecture specific capabilities, used by perlasm. */ -extern uint64_t OPENSSL_ia32cap_P; +uint64_t OPENSSL_ia32cap_P; /* Machine independent CPU capabilities. */ extern uint64_t crypto_cpu_caps; @@ -112,3 +112,9 @@ crypto_cpu_caps_init(void) OPENSSL_ia32cap_P = caps; } + +uint64_t +crypto_cpu_caps_ia32(void) +{ + return OPENSSL_ia32cap_P; +} diff --git a/src/lib/libcrypto/arch/i386/crypto_arch.h b/src/lib/libcrypto/arch/i386/crypto_arch.h index d566d8064a..64b2da587b 100644 --- a/src/lib/libcrypto/arch/i386/crypto_arch.h +++ b/src/lib/libcrypto/arch/i386/crypto_arch.h @@ -1,4 +1,4 @@ -/* $OpenBSD: crypto_arch.h,v 1.2 2024/10/18 14:44:02 jsing Exp $ */ +/* $OpenBSD: crypto_arch.h,v 1.3 2024/10/19 13:06:11 jsing Exp $ */ /* * Copyright (c) 2024 Joel Sing * @@ -19,6 +19,7 @@ #define HEADER_CRYPTO_ARCH_H #define HAVE_CRYPTO_CPU_CAPS_INIT +#define HAVE_CRYPTO_CPU_CAPS_IA32 #ifndef OPENSSL_NO_ASM diff --git a/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c b/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c index e5b36a15cc..b0da0d636c 100644 --- a/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c +++ b/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c @@ -1,4 +1,4 @@ -/* $OpenBSD: crypto_cpu_caps.c,v 1.1 2024/10/18 14:44:02 jsing Exp $ */ +/* $OpenBSD: crypto_cpu_caps.c,v 1.2 2024/10/19 13:06:11 jsing Exp $ */ /* * Copyright (c) 2024 Joel Sing * @@ -22,7 +22,7 @@ #include "x86_arch.h" /* Legacy architecture specific capabilities, used by perlasm. */ -extern uint64_t OPENSSL_ia32cap_P; +uint64_t OPENSSL_ia32cap_P; /* Machine independent CPU capabilities. */ extern uint64_t crypto_cpu_caps; @@ -112,3 +112,9 @@ crypto_cpu_caps_init(void) OPENSSL_ia32cap_P = caps; } + +uint64_t +crypto_cpu_caps_ia32(void) +{ + return OPENSSL_ia32cap_P; +} -- cgit v1.2.3-55-g6feb