diff --git a/gdbserver/linux-aarch64-low.cc b/gdbserver/linux-aarch64-low.cc
index d54dec4b86d..5ebf69048a6 100644
--- a/gdbserver/linux-aarch64-low.cc
+++ b/gdbserver/linux-aarch64-low.cc
@@ -81,6 +81,12 @@ protected:
   void low_set_pc (regcache *regcache, CORE_ADDR newpc) override;
 
   bool low_breakpoint_at (CORE_ADDR pc) override;
+
+  int low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
+
+  int low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
 };
 
 /* The singleton target ops object.  */
@@ -309,14 +315,14 @@ aarch64_target::supports_z_point_type (char z_type)
     }
 }
 
-/* Implementation of linux_target_ops method "insert_point".
+/* Implementation of linux target ops method "low_insert_point".
 
    It actually only records the info of the to-be-inserted bp/wp;
    the actual insertion will happen when threads are resumed.  */
 
-static int
-aarch64_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		      int len, struct raw_breakpoint *bp)
+int
+aarch64_target::low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+				  int len, raw_breakpoint *bp)
 {
   int ret;
   enum target_hw_bp_type targ_type;
@@ -358,14 +364,14 @@ aarch64_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
   return ret;
 }
 
-/* Implementation of linux_target_ops method "remove_point".
+/* Implementation of linux target ops method "low_remove_point".
 
    It actually only records the info of the to-be-removed bp/wp,
    the actual removal will be done when threads are resumed.  */
 
-static int
-aarch64_remove_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		      int len, struct raw_breakpoint *bp)
+int
+aarch64_target::low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+				  int len, raw_breakpoint *bp)
 {
   int ret;
   enum target_hw_bp_type targ_type;
@@ -3107,8 +3113,6 @@ aarch64_supports_hardware_single_step (void)
 
 struct linux_target_ops the_low_target =
 {
-  aarch64_insert_point,
-  aarch64_remove_point,
   aarch64_stopped_by_watchpoint,
   aarch64_stopped_data_address,
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index 454ed5bc9be..4ba65360578 100644
--- a/gdbserver/linux-arm-low.cc
+++ b/gdbserver/linux-arm-low.cc
@@ -91,6 +91,12 @@ protected:
   std::vector<CORE_ADDR> low_get_next_pcs (regcache *regcache) override;
 
   bool low_breakpoint_at (CORE_ADDR pc) override;
+
+  int low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
+
+  int low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
 };
 
 /* The singleton target ops object.  */
@@ -578,9 +584,9 @@ arm_target::supports_z_point_type (char z_type)
 }
 
 /* Insert hardware break-/watchpoint.  */
-static int
-arm_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		  int len, struct raw_breakpoint *bp)
+int
+arm_target::low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			      int len, raw_breakpoint *bp)
 {
   struct process_info *proc = current_process ();
   struct arm_linux_hw_breakpoint p, *pts;
@@ -623,9 +629,9 @@ arm_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
 }
 
 /* Remove hardware break-/watchpoint.  */
-static int
-arm_remove_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		  int len, struct raw_breakpoint *bp)
+int
+arm_target::low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			      int len, raw_breakpoint *bp)
 {
   struct process_info *proc = current_process ();
   struct arm_linux_hw_breakpoint p, *pts;
@@ -1097,8 +1103,6 @@ arm_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  arm_insert_point,
-  arm_remove_point,
   arm_stopped_by_watchpoint,
   arm_stopped_data_address,
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-bfin-low.cc b/gdbserver/linux-bfin-low.cc
index 8887b2f2096..854c90eff5d 100644
--- a/gdbserver/linux-bfin-low.cc
+++ b/gdbserver/linux-bfin-low.cc
@@ -165,8 +165,6 @@ bfin_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  NULL, /* insert_point */
-  NULL, /* remove_point */
   NULL, /* stopped_by_watchpoint */
   NULL, /* stopped_data_address */
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-crisv32-low.cc b/gdbserver/linux-crisv32-low.cc
index 0de90b94f82..2bb60e6e431 100644
--- a/gdbserver/linux-crisv32-low.cc
+++ b/gdbserver/linux-crisv32-low.cc
@@ -49,6 +49,12 @@ protected:
   void low_set_pc (regcache *regcache, CORE_ADDR newpc) override;
 
   bool low_breakpoint_at (CORE_ADDR pc) override;
+
+  int low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
+
+  int low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
 };
 
 /* The singleton target ops object.  */
@@ -195,9 +201,9 @@ crisv32_target::supports_z_point_type (char z_type)
     }
 }
 
-static int
-cris_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		   int len, struct raw_breakpoint *bp)
+int
+crisv32_target::low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+				  int len, raw_breakpoint *bp)
 {
   int bp;
   unsigned long bp_ctrl;
@@ -268,9 +274,9 @@ cris_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
   return 0;
 }
 
-static int
-cris_remove_point (enum raw_bkpt_type type, CORE_ADDR addr, int len,
-		   struct raw_breakpoint *bp)
+int
+crisv32_target::low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+				  int len, raw_breakpoint *bp)
 {
   int bp;
   unsigned long bp_ctrl;
@@ -460,8 +466,6 @@ crisv32_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  cris_insert_point,
-  cris_remove_point,
   cris_stopped_by_watchpoint,
   cris_stopped_data_address,
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index e4c38e75a33..8112846aaab 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -5835,11 +5835,16 @@ linux_process_target::insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
 {
   if (type == raw_bkpt_type_sw)
     return insert_memory_breakpoint (bp);
-  else if (the_low_target.insert_point != NULL)
-    return the_low_target.insert_point (type, addr, size, bp);
   else
-    /* Unsupported (see target.h).  */
-    return 1;
+    return low_insert_point (type, addr, size, bp);
+}
+
+int
+linux_process_target::low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+					int size, raw_breakpoint *bp)
+{
+  /* Unsupported (see target.h).  */
+  return 1;
 }
 
 int
@@ -5848,11 +5853,16 @@ linux_process_target::remove_point (enum raw_bkpt_type type, CORE_ADDR addr,
 {
   if (type == raw_bkpt_type_sw)
     return remove_memory_breakpoint (bp);
-  else if (the_low_target.remove_point != NULL)
-    return the_low_target.remove_point (type, addr, size, bp);
   else
-    /* Unsupported (see target.h).  */
-    return 1;
+    return low_remove_point (type, addr, size, bp);
+}
+
+int
+linux_process_target::low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+					int size, raw_breakpoint *bp)
+{
+  /* Unsupported (see target.h).  */
+  return 1;
 }
 
 /* Implement the stopped_by_sw_breakpoint target_ops
diff --git a/gdbserver/linux-low.h b/gdbserver/linux-low.h
index dd6dbbc6ba6..3cbd358bdfc 100644
--- a/gdbserver/linux-low.h
+++ b/gdbserver/linux-low.h
@@ -131,13 +131,6 @@ struct lwp_info;
 
 struct linux_target_ops
 {
-  /* Breakpoint and watchpoint related functions.  See target.h for
-     comments.  */
-  int (*insert_point) (enum raw_bkpt_type type, CORE_ADDR addr,
-		       int size, struct raw_breakpoint *bp);
-  int (*remove_point) (enum raw_bkpt_type type, CORE_ADDR addr,
-		       int size, struct raw_breakpoint *bp);
-
   int (*stopped_by_watchpoint) (void);
   CORE_ADDR (*stopped_data_address) (void);
 
@@ -666,6 +659,14 @@ class linux_process_target : public process_stratum_target
   /* Return true if there is a breakpoint at PC.  */
   virtual bool low_breakpoint_at (CORE_ADDR pc) = 0;
 
+  /* Breakpoint and watchpoint related functions.  See target.h for
+     comments.  */
+  virtual int low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+				int size, raw_breakpoint *bp);
+
+  virtual int low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+				int size, raw_breakpoint *bp);
+
   /* How many bytes the PC should be decremented after a break.  */
   int m_decr_pc_after_break;
 };
diff --git a/gdbserver/linux-m32r-low.cc b/gdbserver/linux-m32r-low.cc
index 280c4c49e8f..ce82fc9e186 100644
--- a/gdbserver/linux-m32r-low.cc
+++ b/gdbserver/linux-m32r-low.cc
@@ -163,8 +163,6 @@ m32r_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  NULL, /* insert_point */
-  NULL, /* remove_point */
   NULL, /* stopped_by_watchpoint */
   NULL, /* stopped_data_address */
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-m68k-low.cc b/gdbserver/linux-m68k-low.cc
index 0297b2f4067..43ba1f2559f 100644
--- a/gdbserver/linux-m68k-low.cc
+++ b/gdbserver/linux-m68k-low.cc
@@ -259,8 +259,6 @@ m68k_supports_hardware_single_step (void)
 }
 
 struct linux_target_ops the_low_target = {
-  NULL, /* insert_point */
-  NULL, /* remove_point */
   NULL, /* stopped_by_watchpoint */
   NULL, /* stopped_data_address */
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-mips-low.cc b/gdbserver/linux-mips-low.cc
index 0a5779276af..4823f69ea5d 100644
--- a/gdbserver/linux-mips-low.cc
+++ b/gdbserver/linux-mips-low.cc
@@ -56,6 +56,12 @@ protected:
   void low_set_pc (regcache *regcache, CORE_ADDR newpc) override;
 
   bool low_breakpoint_at (CORE_ADDR pc) override;
+
+  int low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
+
+  int low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
 };
 
 /* The singleton target ops object.  */
@@ -510,12 +516,12 @@ mips_target::supports_z_point_type (char z_type)
     }
 }
 
-/* This is the implementation of linux_target_ops method
-   insert_point.  */
+/* This is the implementation of linux target ops method
+   low_insert_point.  */
 
-static int
-mips_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		   int len, struct raw_breakpoint *bp)
+int
+mips_target::low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			       int len, raw_breakpoint *bp)
 {
   struct process_info *proc = current_process ();
   struct arch_process_info *priv = proc->priv->arch_private;
@@ -555,12 +561,12 @@ mips_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
   return 0;
 }
 
-/* This is the implementation of linux_target_ops method
-   remove_point.  */
+/* This is the implementation of linux target ops method
+   low_remove_point.  */
 
-static int
-mips_remove_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		   int len, struct raw_breakpoint *bp)
+int
+mips_target::low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			       int len, raw_breakpoint *bp)
 {
   struct process_info *proc = current_process ();
   struct arch_process_info *priv = proc->priv->arch_private;
@@ -972,8 +978,6 @@ mips_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  mips_insert_point,
-  mips_remove_point,
   mips_stopped_by_watchpoint,
   mips_stopped_data_address,
   mips_collect_ptrace_register,
diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
index 1b3378fc16d..0fa9de8e72f 100644
--- a/gdbserver/linux-ppc-low.cc
+++ b/gdbserver/linux-ppc-low.cc
@@ -73,6 +73,12 @@ protected:
   void low_set_pc (regcache *regcache, CORE_ADDR newpc) override;
 
   bool low_breakpoint_at (CORE_ADDR pc) override;
+
+  int low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
+
+  int low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
 };
 
 /* The singleton target ops object.  */
@@ -348,12 +354,12 @@ ppc_target::supports_z_point_type (char z_type)
     }
 }
 
-/* Implement insert_point target-ops.
+/* Implement the low_insert_point linux target op.
    Returns 0 on success, -1 on failure and 1 on unsupported.  */
 
-static int
-ppc_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		  int size, struct raw_breakpoint *bp)
+int
+ppc_target::low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			      int size, raw_breakpoint *bp)
 {
   switch (type)
     {
@@ -369,12 +375,12 @@ ppc_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
     }
 }
 
-/* Implement remove_point target-ops.
+/* Implement the low_remove_point linux target op.
    Returns 0 on success, -1 on failure and 1 on unsupported.  */
 
-static int
-ppc_remove_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		  int size, struct raw_breakpoint *bp)
+int
+ppc_target::low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			      int size, raw_breakpoint *bp)
 {
   switch (type)
     {
@@ -3412,8 +3418,6 @@ ppc_get_ipa_tdesc_idx (void)
 }
 
 struct linux_target_ops the_low_target = {
-  ppc_insert_point,
-  ppc_remove_point,
   NULL,
   NULL,
   ppc_collect_ptrace_register,
diff --git a/gdbserver/linux-s390-low.cc b/gdbserver/linux-s390-low.cc
index 94f9182f159..264fbe50475 100644
--- a/gdbserver/linux-s390-low.cc
+++ b/gdbserver/linux-s390-low.cc
@@ -2832,8 +2832,6 @@ s390_emit_ops (void)
 }
 
 struct linux_target_ops the_low_target = {
-  NULL,
-  NULL,
   NULL,
   NULL,
   s390_collect_ptrace_register,
diff --git a/gdbserver/linux-sh-low.cc b/gdbserver/linux-sh-low.cc
index 0c88655bd76..1afd1f61366 100644
--- a/gdbserver/linux-sh-low.cc
+++ b/gdbserver/linux-sh-low.cc
@@ -194,8 +194,6 @@ sh_target::low_arch_setup ()
 }
 
 struct linux_target_ops the_low_target = {
-  NULL, /* insert_point */
-  NULL, /* remove_point */
   NULL, /* stopped_by_watchpoint */
   NULL, /* stopped_data_address */
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-sparc-low.cc b/gdbserver/linux-sparc-low.cc
index 00e6fe028d5..810fcf486b2 100644
--- a/gdbserver/linux-sparc-low.cc
+++ b/gdbserver/linux-sparc-low.cc
@@ -343,7 +343,7 @@ sparc_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  NULL, NULL, NULL, NULL,
+  NULL, NULL,
   NULL, NULL
 };
 
diff --git a/gdbserver/linux-tic6x-low.cc b/gdbserver/linux-tic6x-low.cc
index fcef1174a7c..e6b66d57656 100644
--- a/gdbserver/linux-tic6x-low.cc
+++ b/gdbserver/linux-tic6x-low.cc
@@ -425,8 +425,6 @@ tic6x_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  NULL, /* insert_point */
-  NULL, /* remove_point */
   NULL, /* stopped_by_watchpoint */
   NULL, /* stopped_data_address */
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-tile-low.cc b/gdbserver/linux-tile-low.cc
index f67a15d1e51..534cbf13e9b 100644
--- a/gdbserver/linux-tile-low.cc
+++ b/gdbserver/linux-tile-low.cc
@@ -226,8 +226,6 @@ tile_supports_hardware_single_step (void)
 
 struct linux_target_ops the_low_target =
 {
-  NULL, /* insert_point */
-  NULL, /* remove_point */
   NULL, /* stopped_by_watchpoint */
   NULL, /* stopped_data_address */
   NULL, /* collect_ptrace_register */
diff --git a/gdbserver/linux-x86-low.cc b/gdbserver/linux-x86-low.cc
index a95bd7c2227..f3541d923b9 100644
--- a/gdbserver/linux-x86-low.cc
+++ b/gdbserver/linux-x86-low.cc
@@ -127,6 +127,12 @@ protected:
   void low_set_pc (regcache *regcache, CORE_ADDR newpc) override;
 
   bool low_breakpoint_at (CORE_ADDR pc) override;
+
+  int low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
+
+  int low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			int size, raw_breakpoint *bp) override;
 };
 
 /* The singleton target ops object.  */
@@ -597,9 +603,9 @@ x86_target::supports_z_point_type (char z_type)
     }
 }
 
-static int
-x86_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		  int size, struct raw_breakpoint *bp)
+int
+x86_target::low_insert_point (raw_bkpt_type type, CORE_ADDR addr,
+			      int size, raw_breakpoint *bp)
 {
   struct process_info *proc = current_process ();
 
@@ -623,9 +629,9 @@ x86_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
     }
 }
 
-static int
-x86_remove_point (enum raw_bkpt_type type, CORE_ADDR addr,
-		  int size, struct raw_breakpoint *bp)
+int
+x86_target::low_remove_point (raw_bkpt_type type, CORE_ADDR addr,
+			      int size, raw_breakpoint *bp)
 {
   struct process_info *proc = current_process ();
 
@@ -2905,8 +2911,6 @@ x86_get_ipa_tdesc_idx (void)
 
 struct linux_target_ops the_low_target =
 {
-  x86_insert_point,
-  x86_remove_point,
   x86_stopped_by_watchpoint,
   x86_stopped_data_address,
   /* collect_ptrace_register/supply_ptrace_register are not needed in the
diff --git a/gdbserver/linux-xtensa-low.cc b/gdbserver/linux-xtensa-low.cc
index d580215b476..7755f42e7d2 100644
--- a/gdbserver/linux-xtensa-low.cc
+++ b/gdbserver/linux-xtensa-low.cc
@@ -331,8 +331,6 @@ xtensa_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  NULL, /* insert_point */
-  NULL, /* remove_point */
   NULL, /* stopped_by_watchpoint */
   NULL, /* stopped_data_address */
   NULL, /* collect_ptrace_register */
