gdb/linux-tdep.c: Add Perms to the 'info proc mappings' output
[binutils-gdb.git] / gdb / arch / arm-get-next-pcs.h
index 4a0fc16814f6a59474a4e44e33797d0759ad8e33..e9768d905fff76a7e4473a611696a0c1f9f5d502 100644 (file)
@@ -1,6 +1,6 @@
 /* Common code for ARM software single stepping support.
 
-   Copyright (C) 1988-2016 Free Software Foundation, Inc.
+   Copyright (C) 1988-2022 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef ARM_GET_NEXT_PCS_H
-#define ARM_GET_NEXT_PCS_H 1
+#ifndef ARCH_ARM_GET_NEXT_PCS_H
+#define ARCH_ARM_GET_NEXT_PCS_H
+
+#include <vector>
 
 /* Forward declaration.  */
 struct arm_get_next_pcs;
@@ -27,9 +29,12 @@ struct arm_get_next_pcs;
 struct arm_get_next_pcs_ops
 {
   ULONGEST (*read_mem_uint) (CORE_ADDR memaddr, int len, int byte_order);
-  CORE_ADDR (*syscall_next_pc) (struct arm_get_next_pcs *self, CORE_ADDR pc);
+  CORE_ADDR (*syscall_next_pc) (struct arm_get_next_pcs *self);
   CORE_ADDR (*addr_bits_remove) (struct arm_get_next_pcs *self, CORE_ADDR val);
   int (*is_thumb) (struct arm_get_next_pcs *self);
+
+  /* Fix up PC if needed.  */
+  CORE_ADDR (*fixup) (struct arm_get_next_pcs *self, CORE_ADDR pc);
 };
 
 /* Context for a get_next_pcs call on ARM.  */
@@ -57,7 +62,6 @@ void arm_get_next_pcs_ctor (struct arm_get_next_pcs *self,
                            struct regcache *regcache);
 
 /* Find the next possible PCs after the current instruction executes.  */
-VEC (CORE_ADDR) *arm_get_next_pcs (struct arm_get_next_pcs *self,
-                                  CORE_ADDR pc);
+std::vector<CORE_ADDR> arm_get_next_pcs (struct arm_get_next_pcs *self);
 
-#endif /* ARM_GET_NEXT_PCS_H */
+#endif /* ARCH_ARM_GET_NEXT_PCS_H */