Refactor parsing of /proc/<pid>/smaps
[deliverable/binutils-gdb.git] / gdb / ChangeLog
index 37dc83da67f8d9f90e9e4f94030f3cfa3aa1caa3..9d155b8f5e57adfe90cea1045b5b8733375f68ae 100644 (file)
@@ -1,3 +1,114 @@
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * linux-tdep.c (struct smaps_vmflags) <memory_tagging>: New flag
+       bit.
+       (struct smaps_data): New struct.
+       (decode_vmflags): Handle the 'mt' flag.
+       (parse_smaps_data): New function, refactored from
+       linux_find_memory_regions_full.
+       (linux_address_in_memtag_page): New function.
+       (linux_find_memory_regions_full): Refactor into parse_smaps_data.
+       * linux-tdep.h (linux_address_in_memtag_page): New prototype.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * linux-tdep.c (linux_find_memory_regions_full): Use std::string
+       instead of char arrays.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * Makefile.in (ALL_64_TARGET_OBS): Add arch/aarch64-mte-linux.o.
+       (HFILES_NO_SRCDIR): Add arch/aarch64-mte-linux.h and
+       nat/aarch64-mte-linux-ptrace.h.
+       * aarch64-linux-nat.c: Include nat/aarch64-mte-linux-ptrace.h.
+       (aarch64_linux_nat_target) <supports_memory_tagging>: New method
+       override.
+       <fetch_memtags>: New method override.
+       <store_memtags>: New method override.
+       (aarch64_linux_nat_target::supports_memory_tagging): New method.
+       (aarch64_linux_nat_target::fetch_memtags): New method.
+       (aarch64_linux_nat_target::store_memtags): New method.
+       * arch/aarch64-mte-linux.c: New file.
+       * arch/aarch64-mte-linux.h: Include gdbsupport/common-defs.h.
+       (AARCH64_MTE_GRANULE_SIZE): Define.
+       (aarch64_memtag_type): New enum.
+       (aarch64_mte_get_tag_granules): New prototype.
+       * configure.nat (NATDEPFILES): Add nat/aarch64-mte-linux-ptrace.o.
+       * configure.tgt (aarch64*-*-linux*): Add arch/aarch64-mte-linux.o.
+       * nat/aarch64-mte-linux-ptrace.c: New file.
+       * nat/aarch64-mte-linux-ptrace.h: New file.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * Makefile.in (HFILES_NO_SRCDIR): Add nat/aarch64-mte-linux-ptrace.h.
+       * nat/aarch64-mte-linux-ptrace.h: New file.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * aarch64-linux-nat.c (fetch_mteregs_from_thread): New function.
+       (store_mteregs_to_thread): New function.
+       (aarch64_linux_nat_target::fetch_registers): Update to call
+       fetch_mteregs_from_thread.
+       (aarch64_linux_nat_target::store_registers): Update to call
+       store_mteregs_to_thread.
+       * aarch64-tdep.c (aarch64_mte_register_names): New struct.
+       (aarch64_cannot_store_register): Handle MTE registers.
+       (aarch64_gdbarch_init): Initialize and setup MTE registers.
+       * aarch64-tdep.h (gdbarch_tdep) <mte_reg_base>: New field.
+       <has_mte>: New method.
+       * arch/aarch64-linux.h (AARCH64_LINUX_SIZEOF_MTE): Define.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * aarch64-linux-nat.c
+       (aarch64_linux_nat_target::read_description): Take MTE flag into
+       account.
+       Slight refactor to hwcap flag checking.
+       * aarch64-linux-tdep.c
+       (aarch64_linux_core_read_description): Likewise.
+       * aarch64-tdep.c (tdesc_aarch64_list): Add one more dimension for
+       MTE.
+       (aarch64_read_description): Add mte_p parameter and update to use it.
+       Update the documentation.
+       (aarch64_gdbarch_init): Update call to aarch64_read_description.
+       * aarch64-tdep.h (aarch64_read_description): Add mte_p parameter.
+       * arch/aarch64.c: Include ../features/aarch64-mte.c.
+       (aarch64_create_target_description): Add mte_p parameter and update
+       the code to use it.
+       * arch/aarch64.h (aarch64_create_target_description): Add mte_p
+       parameter.
+       * features/Makefile (FEATURE_XMLFILES): Add aarch64-mte.xml.
+       * features/aarch64-mte.c: New file, generated.
+       * features/aarch64-mte.xml: New file.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * Makefile.in (HFILES_NO_SRCDIR): Add arch/aarch64-mte-linux.h.
+       * aarch64-linux-nat.c: Include arch/aarch64-mte-linux.h.
+       * aarch64-linux-tdep.c: Likewise
+       * arch/aarch64-mte-linux.h: New file.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * remote: Include gdbsupport/selftest.h.
+       (test_memory_tagging_functions): New function.
+       (_initialize_remote): Register test_memory_tagging_functions.
+
+2021-03-24  Luis Machado  <luis.machado@linaro.org>
+
+       * remote.c (PACKET_memory_tagging_feature): New enum.
+       (remote_memory_tagging_p): New function.
+       (remote_protocol_features): New "memory-tagging" entry.
+       (remote_target::remote_query_supported): Handle memory tagging
+       support.
+       (remote_target::supports_memory_tagging): Implement.
+       (create_fetch_memtags_request, parse_fetch_memtags_reply)
+       (create_store_memtags_request): New functions.
+       (remote_target::fetch_memtags): Implement.
+       (remote_target::store_memtags): Implement.
+       (_initialize_remote): Add new "memory-tagging-feature"
+       config command.
+
 2021-03-24  Luis Machado  <luis.machado@linaro.org>
 
        * arch-utils.c (default_memtag_to_string, default_tagged_address_p)
This page took 0.025743 seconds and 4 git commands to generate.