mirror of
https://github.com/acidanthera/audk.git
synced 2025-08-14 22:28:08 +02:00
RNDR is a standard register defined in the ARM ARM for AARCH64. Move the definition from BaseRngLib to AArch64.h. Furthermore, move the inclusion of this register definition to the ARM specific header file. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
40 lines
882 B
NASM
40 lines
882 B
NASM
;------------------------------------------------------------------------------
|
|
;
|
|
; ArmRndr() for AArch64
|
|
;
|
|
; Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
|
|
;
|
|
; SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
;
|
|
;------------------------------------------------------------------------------
|
|
|
|
#include "ArmRng.h"
|
|
|
|
EXPORT ArmRndr
|
|
AREA BaseLib_LowLevel, CODE, READONLY
|
|
|
|
|
|
;/**
|
|
; Generates a random number using RNDR.
|
|
; Returns TRUE on success; FALSE on failure.
|
|
;
|
|
; @param[out] Rand Buffer pointer to store the 64-bit random value.
|
|
;
|
|
; @retval TRUE Random number generated successfully.
|
|
; @retval FALSE Failed to generate the random number.
|
|
;
|
|
;**/
|
|
;BOOLEAN
|
|
;EFIAPI
|
|
;ArmRndr (
|
|
; OUT UINT64 *Rand
|
|
; );
|
|
;
|
|
ArmRndr
|
|
mrs x1, RNDR
|
|
str x1, [x0]
|
|
cset x0, ne // RNDR sets NZCV to 0b0100 on failure
|
|
ret
|
|
|
|
END
|