| /** @file | |
| LoongArch CSR operation functions. | |
| Copyright (c) 2024, Loongson Technology Corporation Limited. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| UINTN | |
| AsmCsrRead ( | |
| IN UINT16 Select | |
| ); | |
| UINTN | |
| AsmCsrWrite ( | |
| IN UINT16 Select, | |
| IN UINTN Value | |
| ); | |
| UINTN | |
| AsmCsrXChg ( | |
| IN UINT16 Select, | |
| IN UINTN Value, | |
| IN UINTN Mask | |
| ); | |
| /** | |
| CSR read operation. | |
| @param[in] Select CSR read instruction select values. | |
| @return The return value of csrrd instruction, | |
| if a break exception is triggered, the Select is out of support. | |
| **/ | |
| UINTN | |
| EFIAPI | |
| CsrRead ( | |
| IN UINT16 Select | |
| ) | |
| { | |
| return AsmCsrRead (Select); | |
| } | |
| /** | |
| CSR write operation. | |
| @param[in] Select CSR write instruction select values. | |
| @param[in, out] Value The csrwr will write the value. | |
| @return The return value of csrwr instruction, that is, store the old value of | |
| the register, if a break exception is triggered, the Select is out of support. | |
| **/ | |
| UINTN | |
| EFIAPI | |
| CsrWrite ( | |
| IN UINT16 Select, | |
| IN OUT UINTN Value | |
| ) | |
| { | |
| return AsmCsrWrite (Select, Value); | |
| } | |
| /** | |
| CSR exchange operation. | |
| @param[in] Select CSR exchange instruction select values. | |
| @param[in, out] Value The csrxchg will write the value. | |
| @param[in] Mask The csrxchg mask value. | |
| @return The return value of csrxchg instruction, that is, store the old value of | |
| the register, if a break exception is triggered, the Select is out of support. | |
| **/ | |
| UINTN | |
| EFIAPI | |
| CsrXChg ( | |
| IN UINT16 Select, | |
| IN OUT UINTN Value, | |
| IN UINTN Mask | |
| ) | |
| { | |
| return AsmCsrXChg (Select, Value, Mask); | |
| } |