1;------------------------------------------------------------------------------
2;
3; GetInterruptState() function for ARM
4;
5; Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
6; Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
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    EXPORT GetInterruptState
18
19    AREA Interrupt_enable, CODE, READONLY
20
21;/**
22;  Retrieves the current CPU interrupt state.
23;
24;  Returns TRUE is interrupts are currently enabled. Otherwise
25;  returns FALSE.
26;
27;  @retval TRUE  CPU interrupts are enabled.
28;  @retval FALSE CPU interrupts are disabled.
29;
30;**/
31;
32;BOOLEAN
33;EFIAPI
34;GetInterruptState (
35;  VOID
36; );
37;
38GetInterruptState
39    MRS     R0, CPSR
40    TST     R0, #0x80                ;Check if IRQ is enabled.
41    MOVEQ   R0, #1
42    MOVNE   R0, #0
43    BX      LR
44
45    END
46