]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseLib/AArch64/GetInterruptsState.S
MdePkg/BaseLib: Added ARM Aarch64 architecture support
[mirror_edk2.git] / MdePkg / Library / BaseLib / AArch64 / GetInterruptsState.S
CommitLineData
807e2604
HL
1#------------------------------------------------------------------------------\r
2#\r
3# GetInterruptState() function for AArch64\r
4#\r
5# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
6# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
7# Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>\r
8# This program and the accompanying materials\r
9# are licensed and made available under the terms and conditions of the BSD License\r
10# which accompanies this distribution. The full text of the license may be found at\r
11# http://opensource.org/licenses/bsd-license.php.\r
12#\r
13# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
14# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
15#\r
16#------------------------------------------------------------------------------\r
17\r
18.text\r
19.p2align 2\r
20ASM_GLOBAL ASM_PFX(GetInterruptState)\r
21\r
22#/**\r
23# Retrieves the current CPU interrupt state.\r
24#\r
25# Returns TRUE is interrupts are currently enabled. Otherwise\r
26# returns FALSE.\r
27#\r
28# @retval TRUE CPU interrupts are enabled.\r
29# @retval FALSE CPU interrupts are disabled.\r
30#\r
31#**/\r
32#\r
33#BOOLEAN\r
34#EFIAPI\r
35#GetInterruptState (\r
36# VOID\r
37# );\r
38#\r
39ASM_PFX(GetInterruptState):\r
40 mrs x0, daif\r
41 tst x0, #2 // Check if IRQ is enabled. Enabled if 0.\r
42 mov w0, #0\r
43 mov w1, #1\r
44 csel w0, w1, w0, ne\r
45 ret\r