diff options
author | Christopher Zurcher <christopher.zurcher@microsoft.com> | 2021-07-21 06:06:45 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2021-07-26 07:30:11 +0000 |
commit | 878a92a887ef4ca879d336f323e91b13cc767a59 (patch) | |
tree | e04ac8f5d3fd104f39c087a924ec522367e0da28 /CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c | |
parent | 4d28a1c2fdf3673650018cf16f76cfc9796e78af (diff) | |
download | edk2-878a92a887ef4ca879d336f323e91b13cc767a59.tar.gz edk2-878a92a887ef4ca879d336f323e91b13cc767a59.tar.bz2 edk2-878a92a887ef4ca879d336f323e91b13cc767a59.zip |
CryptoPkg/OpensslLib: Add native instruction support for X64
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2507
Adding OpensslLibX64.inf and modifying process_files.pl to process this
file and generate the necessary assembly files.
Adding OpensslLibX64Gcc.inf to allow building with GCC toolchain.
ApiHooks.c contains a stub function for a Windows API call.
uefi-asm.conf contains the limited assembly configurations for OpenSSL.
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com>
Cc: Mike Kinney <michael.d.kinney@intel.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Christopher Zurcher <christopher.zurcher@microsoft.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
Diffstat (limited to 'CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c')
-rw-r--r-- | CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c b/CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c new file mode 100644 index 0000000000..74ae1ac20c --- /dev/null +++ b/CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c @@ -0,0 +1,44 @@ +/** @file
+ Constructor to initialize CPUID data for OpenSSL assembly operations.
+
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Uefi.h>
+
+
+/**
+ An internal OpenSSL function which fetches a local copy of the hardware
+ capability flags.
+
+**/
+extern
+VOID
+OPENSSL_cpuid_setup (
+ VOID
+ );
+
+/**
+ Constructor routine for OpensslLib.
+
+ The constructor calls an internal OpenSSL function which fetches a local copy
+ of the hardware capability flags, used to enable native crypto instructions.
+
+ @param None
+
+ @retval EFI_SUCCESS The construction succeeded.
+
+**/
+EFI_STATUS
+EFIAPI
+OpensslLibConstructor (
+ VOID
+ )
+{
+ OPENSSL_cpuid_setup ();
+
+ return EFI_SUCCESS;
+}
+
|