Re: [PATCH 05/21] target/arm/kvm: Move kvm_arm_copy_hw_debug_data and unexport

2023-11-26 Thread Gavin Shan

On 11/23/23 15:42, Richard Henderson wrote:

Signed-off-by: Richard Henderson 
---
  target/arm/kvm_arm.h | 10 --
  target/arm/kvm.c | 24 
  target/arm/kvm64.c   | 17 -
  3 files changed, 24 insertions(+), 27 deletions(-)



Reviewed-by: Gavin Shan 




Re: [PATCH 05/21] target/arm/kvm: Move kvm_arm_copy_hw_debug_data and unexport

2023-11-23 Thread Philippe Mathieu-Daudé

On 23/11/23 05:42, Richard Henderson wrote:

Signed-off-by: Richard Henderson 
---
  target/arm/kvm_arm.h | 10 --
  target/arm/kvm.c | 24 
  target/arm/kvm64.c   | 17 -
  3 files changed, 24 insertions(+), 27 deletions(-)


Reviewed-by: Philippe Mathieu-Daudé 




[PATCH 05/21] target/arm/kvm: Move kvm_arm_copy_hw_debug_data and unexport

2023-11-22 Thread Richard Henderson
Signed-off-by: Richard Henderson 
---
 target/arm/kvm_arm.h | 10 --
 target/arm/kvm.c | 24 
 target/arm/kvm64.c   | 17 -
 3 files changed, 24 insertions(+), 27 deletions(-)

diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h
index bb284a47de..207b7f21b0 100644
--- a/target/arm/kvm_arm.h
+++ b/target/arm/kvm_arm.h
@@ -462,14 +462,4 @@ bool kvm_arm_handle_debug(CPUState *cs, struct 
kvm_debug_exit_arch *debug_exit);
  */
 bool kvm_arm_hw_debug_active(CPUState *cs);
 
-/**
- * kvm_arm_copy_hw_debug_data:
- * @ptr: kvm_guest_debug_arch structure
- *
- * Copy the architecture specific debug registers into the
- * kvm_guest_debug ioctl structure.
- */
-struct kvm_guest_debug_arch;
-void kvm_arm_copy_hw_debug_data(struct kvm_guest_debug_arch *ptr);
-
 #endif
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index 696bc63e86..2898e680fc 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -1021,6 +1021,30 @@ int kvm_arch_process_async_events(CPUState *cs)
 return 0;
 }
 
+/**
+ * kvm_arm_copy_hw_debug_data:
+ * @ptr: kvm_guest_debug_arch structure
+ *
+ * Copy the architecture specific debug registers into the
+ * kvm_guest_debug ioctl structure.
+ */
+static void kvm_arm_copy_hw_debug_data(struct kvm_guest_debug_arch *ptr)
+{
+int i;
+memset(ptr, 0, sizeof(struct kvm_guest_debug_arch));
+
+for (i = 0; i < max_hw_wps; i++) {
+HWWatchpoint *wp = get_hw_wp(i);
+ptr->dbg_wcr[i] = wp->wcr;
+ptr->dbg_wvr[i] = wp->wvr;
+}
+for (i = 0; i < max_hw_bps; i++) {
+HWBreakpoint *bp = get_hw_bp(i);
+ptr->dbg_bcr[i] = bp->bcr;
+ptr->dbg_bvr[i] = bp->bvr;
+}
+}
+
 void kvm_arch_update_guest_debug(CPUState *cs, struct kvm_guest_debug *dbg)
 {
 if (kvm_sw_breakpoints_active(cs)) {
diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c
index 7d937e2539..ac3120adaf 100644
--- a/target/arm/kvm64.c
+++ b/target/arm/kvm64.c
@@ -73,23 +73,6 @@ void kvm_arch_remove_all_hw_breakpoints(void)
 }
 }
 
-void kvm_arm_copy_hw_debug_data(struct kvm_guest_debug_arch *ptr)
-{
-int i;
-memset(ptr, 0, sizeof(struct kvm_guest_debug_arch));
-
-for (i = 0; i < max_hw_wps; i++) {
-HWWatchpoint *wp = get_hw_wp(i);
-ptr->dbg_wcr[i] = wp->wcr;
-ptr->dbg_wvr[i] = wp->wvr;
-}
-for (i = 0; i < max_hw_bps; i++) {
-HWBreakpoint *bp = get_hw_bp(i);
-ptr->dbg_bcr[i] = bp->bcr;
-ptr->dbg_bvr[i] = bp->bvr;
-}
-}
-
 bool kvm_arm_hw_debug_active(CPUState *cs)
 {
 return ((cur_hw_wps > 0) || (cur_hw_bps > 0));
-- 
2.34.1