blob: 0736ca316ed543dd10ef4449eb054683b737070a [file] [log] [blame]
developer451d49d2022-11-16 21:52:21 +08001/*
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
18int 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
23int 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
29int 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
35int 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
40int 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