1##------------------------------------------------------------------------------
2#
3# MemoryFence() for AArch64
4#
5# Copyright (c) 2013, ARM Ltd. All rights reserved.
6#
7# This program and the accompanying materials
8# are licensed and made available under the terms and conditions of the BSD License
9# which accompanies this distribution.  The full text of the license may be found at
10# http://opensource.org/licenses/bsd-license.php.
11#
12# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14#
15##------------------------------------------------------------------------------
16
17.text
18.p2align 2
19
20GCC_ASM_EXPORT(MemoryFence)
21
22
23#/**
24#  Used to serialize load and store operations.
25#
26#  All loads and stores that proceed calls to this function are guaranteed to be
27#  globally visible when this function returns.
28#
29#**/
30#VOID
31#EFIAPI
32#MemoryFence (
33#  VOID
34#  );
35#
36ASM_PFX(MemoryFence):
37    // System wide Data Memory Barrier.
38    dmb sy
39    ret
40