Alexei Fedorov | 719714f | 2019-10-03 10:57:53 +0100 | [diff] [blame] | 1 | /* |
Shruti Gupta | 9d0cfe8 | 2023-04-17 10:57:26 +0100 | [diff] [blame^] | 2 | * Copyright (c) 2019-2023, Arm Limited. All rights reserved. |
Alexei Fedorov | 719714f | 2019-10-03 10:57:53 +0100 | [diff] [blame] | 3 | * |
| 4 | * SPDX-License-Identifier: BSD-3-Clause |
| 5 | */ |
| 6 | |
| 7 | #ifndef PAUTH_H |
| 8 | #define PAUTH_H |
| 9 | |
Shruti Gupta | 9d0cfe8 | 2023-04-17 10:57:26 +0100 | [diff] [blame^] | 10 | #include <stdbool.h> |
Alexei Fedorov | 719714f | 2019-10-03 10:57:53 +0100 | [diff] [blame] | 11 | #include <stdint.h> |
| 12 | |
| 13 | #ifdef __aarch64__ |
| 14 | /* Initialize 128-bit ARMv8.3-PAuth key */ |
| 15 | uint128_t init_apkey(void); |
| 16 | |
| 17 | /* Program APIAKey_EL1 key and enable ARMv8.3-PAuth */ |
| 18 | void pauth_init_enable(void); |
Alexei Fedorov | 52fd733 | 2020-01-08 14:02:18 +0000 | [diff] [blame] | 19 | |
| 20 | /* Disable ARMv8.3-PAuth */ |
| 21 | void pauth_disable(void); |
Shruti Gupta | 9d0cfe8 | 2023-04-17 10:57:26 +0100 | [diff] [blame^] | 22 | |
| 23 | /* |
| 24 | * Fill Pauth Keys and template with random values if keys werenot initialized earlier, |
| 25 | * Else Copy PAuth key registers to template. |
| 26 | */ |
| 27 | void pauth_test_lib_fill_regs_and_template(void); |
| 28 | |
| 29 | /* Read and Compare PAuth registers with provided template values. */ |
| 30 | bool pauth_test_lib_compare_template(void); |
| 31 | |
| 32 | /* Read and Store PAuth registers in template. */ |
| 33 | void pauth_test_lib_read_keys(void); |
| 34 | |
| 35 | /* Test PAuth instructions. */ |
| 36 | void pauth_test_lib_test_intrs(void); |
| 37 | |
Alexei Fedorov | 719714f | 2019-10-03 10:57:53 +0100 | [diff] [blame] | 38 | #endif /* __aarch64__ */ |
| 39 | |
| 40 | #endif /* PAUTH_H */ |