xref: /rk3399_ARM-atf/include/drivers/qti/accesscontrol/accesscontrol.h (revision 5de3e03dbd7c2da6748e294f423c83f9582f459c)
1*6ae8fce3SJorge Ramirez-Ortiz /*
2*6ae8fce3SJorge Ramirez-Ortiz  * Copyright (c) 2026, Qualcomm Technologies, Inc. and/or its subsidiaries.
3*6ae8fce3SJorge Ramirez-Ortiz  *
4*6ae8fce3SJorge Ramirez-Ortiz  * SPDX-License-Identifier: BSD-3-Clause
5*6ae8fce3SJorge Ramirez-Ortiz  */
6*6ae8fce3SJorge Ramirez-Ortiz 
7*6ae8fce3SJorge Ramirez-Ortiz #ifndef ACCESSCONTROL_H
8*6ae8fce3SJorge Ramirez-Ortiz #define ACCESSCONTROL_H
9*6ae8fce3SJorge Ramirez-Ortiz 
10*6ae8fce3SJorge Ramirez-Ortiz #include <stdint.h>
11*6ae8fce3SJorge Ramirez-Ortiz 
12*6ae8fce3SJorge Ramirez-Ortiz typedef struct qti_accesscontrol_mem {
13*6ae8fce3SJorge Ramirez-Ortiz 	uint64_t mem_addr;
14*6ae8fce3SJorge Ramirez-Ortiz 	uint64_t mem_size;
15*6ae8fce3SJorge Ramirez-Ortiz } qti_accesscontrol_mem_t;
16*6ae8fce3SJorge Ramirez-Ortiz 
17*6ae8fce3SJorge Ramirez-Ortiz typedef struct qti_accesscontrol_perm {
18*6ae8fce3SJorge Ramirez-Ortiz 	uint32_t dst_vm;
19*6ae8fce3SJorge Ramirez-Ortiz 	uint32_t dst_vm_perm;
20*6ae8fce3SJorge Ramirez-Ortiz 	uint64_t ctx;
21*6ae8fce3SJorge Ramirez-Ortiz 	uint32_t ctx_size;
22*6ae8fce3SJorge Ramirez-Ortiz } qti_accesscontrol_perm_t;
23*6ae8fce3SJorge Ramirez-Ortiz 
24*6ae8fce3SJorge Ramirez-Ortiz uint64_t qti_accesscontrol_mem_assign(const qti_accesscontrol_mem_t *mem_info,
25*6ae8fce3SJorge Ramirez-Ortiz 				      uint32_t mem_len,
26*6ae8fce3SJorge Ramirez-Ortiz 				      const uint32_t *src, uint32_t src_len,
27*6ae8fce3SJorge Ramirez-Ortiz 				      const qti_accesscontrol_perm_t *dst,
28*6ae8fce3SJorge Ramirez-Ortiz 				      uint32_t dst_len);
29*6ae8fce3SJorge Ramirez-Ortiz void qti_accesscontrol_init(void);
30*6ae8fce3SJorge Ramirez-Ortiz 
31*6ae8fce3SJorge Ramirez-Ortiz #endif /* ACCESSCONTROL_H */
32