From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- .../Library/BaseLib/AArch64/GetInterruptsState.asm | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 roms/edk2/MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm (limited to 'roms/edk2/MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm') diff --git a/roms/edk2/MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm b/roms/edk2/MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm new file mode 100644 index 000000000..b169db45d --- /dev/null +++ b/roms/edk2/MdePkg/Library/BaseLib/AArch64/GetInterruptsState.asm @@ -0,0 +1,43 @@ +;------------------------------------------------------------------------------ +; +; GetInterruptState() function for AArch64 +; +; Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR> +; Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> +; Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> +; SPDX-License-Identifier: BSD-2-Clause-Patent +; +;------------------------------------------------------------------------------ + + EXPORT GetInterruptState + AREA BaseLib_LowLevel, CODE, READONLY + +DAIF_RD_IRQ_BIT EQU (1 << 7) + +;/** +; Retrieves the current CPU interrupt state. +; +; Returns TRUE is interrupts are currently enabled. Otherwise +; returns FALSE. +; +; @retval TRUE CPU interrupts are enabled. +; @retval FALSE CPU interrupts are disabled. +; +;**/ +; +;BOOLEAN +;EFIAPI +;GetInterruptState ( +; VOID +; ); +; +GetInterruptState + mrs x0, daif + mov w0, wzr + tst x0, #DAIF_RD_IRQ_BIT // Check IRQ mask; set Z=1 if clear/unmasked + bne exit // if Z=1 (eq) return 1, else 0 + mov w0, #1 +exit + ret + + END -- cgit