From 8c1e795168bf0b63252e7ad293324fe5e2c5abe3 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Mon, 2 Sep 2013 09:02:16 +0000 Subject: Add Memory fence for ARM Architecture (32 and 64 bit) Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14615 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseLib/AArch64/MemoryFence.S | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 MdePkg/Library/BaseLib/AArch64/MemoryFence.S (limited to 'MdePkg/Library/BaseLib/AArch64') diff --git a/MdePkg/Library/BaseLib/AArch64/MemoryFence.S b/MdePkg/Library/BaseLib/AArch64/MemoryFence.S new file mode 100644 index 0000000000..5c69e08170 --- /dev/null +++ b/MdePkg/Library/BaseLib/AArch64/MemoryFence.S @@ -0,0 +1,39 @@ +##------------------------------------------------------------------------------ +# +# MemoryFence() for AArch64 +# +# Copyright (c) 2013, ARM Ltd. All rights reserved. +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php. +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +##------------------------------------------------------------------------------ + +.text +.p2align 2 + +GCC_ASM_EXPORT(MemoryFence) + + +#/** +# Used to serialize load and store operations. +# +# All loads and stores that proceed calls to this function are guaranteed to be +# globally visible when this function returns. +# +#**/ +#VOID +#EFIAPI +#MemoryFence ( +# VOID +# ); +# +ASM_PFX(MemoryFence): + // System wide Data Memory Barrier. + dmb sy + ret -- cgit v1.2.3