1ed108b56SAlexei Fedorov /* 2f8138056SBoyan Karatotev * Copyright (c) 2019-2025, Arm Limited and Contributors. All rights reserved. 3ed108b56SAlexei Fedorov * 4ed108b56SAlexei Fedorov * SPDX-License-Identifier: BSD-3-Clause 5ed108b56SAlexei Fedorov */ 6ed108b56SAlexei Fedorov 7ed108b56SAlexei Fedorov #ifndef PAUTH_H 8ed108b56SAlexei Fedorov #define PAUTH_H 9ed108b56SAlexei Fedorov 10f8138056SBoyan Karatotev #if ENABLE_PAUTH 11f8138056SBoyan Karatotev /* Platform hook to generate the APIAKey */ 12f8138056SBoyan Karatotev uint128_t plat_init_apkey(void); 13ed108b56SAlexei Fedorov 14*d158d425SBoyan Karatotev void pauth_init_enable_el3(void); 15*d158d425SBoyan Karatotev void pauth_init_enable_el1(void); 16f8138056SBoyan Karatotev void pauth_init(void); 17f8138056SBoyan Karatotev void pauth_enable_el1(void); 18f8138056SBoyan Karatotev void pauth_enable_el3(void); 19f8138056SBoyan Karatotev void pauth_enable_el2(void); 20ed108b56SAlexei Fedorov void pauth_disable_el1(void); 21ed108b56SAlexei Fedorov void pauth_disable_el3(void); 22f8138056SBoyan Karatotev #else pauth_init_enable_el3(void)23*d158d425SBoyan Karatotevstatic inline void pauth_init_enable_el3(void) 24*d158d425SBoyan Karatotev { 25*d158d425SBoyan Karatotev } pauth_init_enable_el1(void)26*d158d425SBoyan Karatotevstatic inline void pauth_init_enable_el1(void) 27*d158d425SBoyan Karatotev { 28*d158d425SBoyan Karatotev } pauth_init(void)29f8138056SBoyan Karatotevstatic inline void pauth_init(void) 30f8138056SBoyan Karatotev { 31f8138056SBoyan Karatotev } pauth_enable_el1(void)32f8138056SBoyan Karatotevstatic inline void pauth_enable_el1(void) 33f8138056SBoyan Karatotev { 34f8138056SBoyan Karatotev } pauth_enable_el3(void)35f8138056SBoyan Karatotevstatic inline void pauth_enable_el3(void) 36f8138056SBoyan Karatotev { 37f8138056SBoyan Karatotev } pauth_enable_el2(void)38f8138056SBoyan Karatotevstatic inline void pauth_enable_el2(void) 39f8138056SBoyan Karatotev { 40f8138056SBoyan Karatotev } pauth_disable_el1(void)41f8138056SBoyan Karatotevstatic inline void pauth_disable_el1(void) 42f8138056SBoyan Karatotev { 43f8138056SBoyan Karatotev } pauth_disable_el3(void)44f8138056SBoyan Karatotevstatic inline void pauth_disable_el3(void) 45f8138056SBoyan Karatotev { 46f8138056SBoyan Karatotev } 47f8138056SBoyan Karatotev #endif 48ed108b56SAlexei Fedorov #endif /* PAUTH_H */ 49