Lines Matching refs:ctrl

299 	struct arch_hw_breakpoint_ctrl ctrl;  in get_max_wp_len()  local
305 memset(&ctrl, 0, sizeof(ctrl)); in get_max_wp_len()
306 ctrl.len = ARM_BREAKPOINT_LEN_8; in get_max_wp_len()
307 ctrl_reg = encode_ctrl_reg(ctrl); in get_max_wp_len()
331 u32 addr, ctrl; in arch_install_hw_breakpoint() local
334 ctrl = encode_ctrl_reg(info->ctrl) | 0x1; in arch_install_hw_breakpoint()
336 if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) { in arch_install_hw_breakpoint()
367 ctrl = encode_ctrl_reg(info->step_ctrl); in arch_install_hw_breakpoint()
368 if (info->ctrl.type != ARM_BREAKPOINT_EXECUTE) { in arch_install_hw_breakpoint()
379 write_wb_reg(ctrl_base + i, ctrl); in arch_install_hw_breakpoint()
389 if (info->ctrl.type == ARM_BREAKPOINT_EXECUTE) { in arch_uninstall_hw_breakpoint()
417 if (info->ctrl.type != ARM_BREAKPOINT_EXECUTE && in arch_uninstall_hw_breakpoint()
458 len = get_hbp_len(hw->ctrl.len); in arch_check_bp_in_kernelspace()
468 int arch_bp_generic_fields(struct arch_hw_breakpoint_ctrl ctrl, in arch_bp_generic_fields() argument
472 switch (ctrl.type) { in arch_bp_generic_fields()
490 switch (ctrl.len) { in arch_bp_generic_fields()
520 hw->ctrl.type = ARM_BREAKPOINT_EXECUTE; in arch_build_bp_info()
523 hw->ctrl.type = ARM_BREAKPOINT_LOAD; in arch_build_bp_info()
526 hw->ctrl.type = ARM_BREAKPOINT_STORE; in arch_build_bp_info()
529 hw->ctrl.type = ARM_BREAKPOINT_LOAD | ARM_BREAKPOINT_STORE; in arch_build_bp_info()
538 hw->ctrl.len = ARM_BREAKPOINT_LEN_1; in arch_build_bp_info()
541 hw->ctrl.len = ARM_BREAKPOINT_LEN_2; in arch_build_bp_info()
544 hw->ctrl.len = ARM_BREAKPOINT_LEN_4; in arch_build_bp_info()
547 hw->ctrl.len = ARM_BREAKPOINT_LEN_8; in arch_build_bp_info()
548 if ((hw->ctrl.type != ARM_BREAKPOINT_EXECUTE) in arch_build_bp_info()
562 if (hw->ctrl.type == ARM_BREAKPOINT_EXECUTE && in arch_build_bp_info()
563 hw->ctrl.len != ARM_BREAKPOINT_LEN_2 && in arch_build_bp_info()
564 hw->ctrl.len != ARM_BREAKPOINT_LEN_4) in arch_build_bp_info()
571 hw->ctrl.privilege = ARM_BREAKPOINT_USER; in arch_build_bp_info()
573 hw->ctrl.privilege |= ARM_BREAKPOINT_PRIV; in arch_build_bp_info()
576 hw->ctrl.enabled = !attr->disabled; in arch_build_bp_info()
579 hw->ctrl.mismatch = 0; in arch_build_bp_info()
604 if (hw->ctrl.len == ARM_BREAKPOINT_LEN_8) in hw_breakpoint_arch_parse()
614 if (hw->ctrl.len == ARM_BREAKPOINT_LEN_2) in hw_breakpoint_arch_parse()
619 if (hw->ctrl.len == ARM_BREAKPOINT_LEN_1) in hw_breakpoint_arch_parse()
628 hw->ctrl.len <<= offset; in hw_breakpoint_arch_parse()
654 (hw->ctrl.type == ARM_BREAKPOINT_LOAD || in hw_breakpoint_arch_parse()
655 hw->ctrl.type == ARM_BREAKPOINT_STORE)) in hw_breakpoint_arch_parse()
674 info->step_ctrl.privilege = info->ctrl.privilege; in enable_single_step()
703 struct arch_hw_breakpoint_ctrl *ctrl) in get_distance_from_watchpoint() argument
708 lens = __ffs(ctrl->len); in get_distance_from_watchpoint()
709 lene = __fls(ctrl->len); in get_distance_from_watchpoint()
724 return !user_mode(regs) && info->ctrl.privilege == ARM_BREAKPOINT_USER; in watchpoint_fault_on_uaccess()
735 struct arch_hw_breakpoint_ctrl ctrl; in watchpoint_handler() local
770 decode_ctrl_reg(ctrl_reg, &ctrl); in watchpoint_handler()
771 dist = get_distance_from_watchpoint(addr, val, &ctrl); in watchpoint_handler()
860 struct arch_hw_breakpoint_ctrl ctrl; in breakpoint_handler() local
885 decode_ctrl_reg(ctrl_reg, &ctrl); in breakpoint_handler()
886 if ((1 << (addr & 0x3)) & ctrl.len) { in breakpoint_handler()