1 /* 2 * Copyright (c) 2023, MediaTek Inc. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef MT_SPM_RC_API_H 8 #define MT_SPM_RC_API_H 9 10 #include <mt_spm.h> 11 #include <mt_spm_cond.h> 12 #include <mt_spm_constraint.h> 13 #include <mt_spm_internal.h> 14 15 #define SPM_RC_BITS_SET(dest, src) ({ (dest) |= (src); }) 16 #define SPM_RC_BITS_CLR(dest, src) ({ (dest) &= (~src); }) 17 18 int spm_rc_condition_modifier(unsigned int id, unsigned int act, 19 const void *val, 20 enum mt_spm_rm_rc_type dest_rc_id, 21 struct mt_spm_cond_tables * const tlb); 22 23 int spm_rc_constraint_status_get(unsigned int id, unsigned int type, 24 unsigned int act, 25 enum mt_spm_rm_rc_type dest_rc_id, 26 struct constraint_status * const src, 27 struct constraint_status * const dest); 28 29 int spm_rc_constraint_status_set(unsigned int id, unsigned int type, 30 unsigned int act, 31 enum mt_spm_rm_rc_type dest_rc_id, 32 struct constraint_status * const src, 33 struct constraint_status * const dest); 34 35 int spm_rc_constraint_valid_set(enum mt_spm_rm_rc_type id, 36 enum mt_spm_rm_rc_type dest_rc_id, 37 unsigned int valid, 38 struct constraint_status * const dest); 39 40 int spm_rc_constraint_valid_clr(enum mt_spm_rm_rc_type id, 41 enum mt_spm_rm_rc_type dest_rc_id, 42 unsigned int valid, 43 struct constraint_status * const dest); 44 45 #endif 46