Lines Matching refs:pmp_state
58 if (env->pmp_state.pmp[pmp_index].cfg_reg & PMP_LOCK) { in pmp_is_locked()
117 return env->pmp_state.num_rules; in pmp_get_num_rules()
126 return env->pmp_state.pmp[pmp_index].cfg_reg; in pmp_read_cfg()
140 if (env->pmp_state.pmp[pmp_index].cfg_reg == val) { in pmp_write_cfg()
152 env->pmp_state.pmp[pmp_index].cfg_reg = val; in pmp_write_cfg()
170 env->pmp_state.pmp[i].cfg_reg &= ~(PMP_LOCK | PMP_AMATCH); in pmp_unlock_entries()
193 uint8_t this_cfg = env->pmp_state.pmp[pmp_index].cfg_reg; in pmp_update_rule_addr()
194 target_ulong this_addr = env->pmp_state.pmp[pmp_index].addr_reg; in pmp_update_rule_addr()
200 prev_addr = env->pmp_state.pmp[pmp_index - 1].addr_reg; in pmp_update_rule_addr()
232 env->pmp_state.addr[pmp_index].sa = sa; in pmp_update_rule_addr()
233 env->pmp_state.addr[pmp_index].ea = ea; in pmp_update_rule_addr()
240 env->pmp_state.num_rules = 0; in pmp_update_rule_nums()
243 pmp_get_a_field(env->pmp_state.pmp[i].cfg_reg); in pmp_update_rule_nums()
245 env->pmp_state.num_rules++; in pmp_update_rule_nums()
254 if ((addr >= env->pmp_state.addr[pmp_index].sa) && in pmp_is_in_range()
255 (addr <= env->pmp_state.addr[pmp_index].ea)) { in pmp_is_in_range()
373 pmp_get_a_field(env->pmp_state.pmp[i].cfg_reg); in pmp_hart_has_privs()
387 *allowed_privs &= env->pmp_state.pmp[i].cfg_reg; in pmp_hart_has_privs()
394 pmp_get_smepmp_operation(env->pmp_state.pmp[i].cfg_reg); in pmp_hart_has_privs()
532 if (env->pmp_state.pmp[addr_index].addr_reg == val) { in pmpaddr_csr_write()
542 uint8_t pmp_cfg = env->pmp_state.pmp[addr_index + 1].cfg_reg; in pmpaddr_csr_write()
553 env->pmp_state.pmp[addr_index].addr_reg = val; in pmpaddr_csr_write()
578 val = env->pmp_state.pmp[addr_index].addr_reg; in pmpaddr_csr_read()
673 if (pmp_get_a_field(env->pmp_state.pmp[i].cfg_reg) == PMP_AMATCH_OFF) { in pmp_get_tlb_size()
677 pmp_sa = env->pmp_state.addr[i].sa; in pmp_get_tlb_size()
678 pmp_ea = env->pmp_state.addr[i].ea; in pmp_get_tlb_size()