]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
GDBserver remote packet support for memory tagging
authorLuis Machado <luis.machado@linaro.org>
Mon, 15 Jun 2020 18:34:06 +0000 (15:34 -0300)
committerLuis Machado <luis.machado@linaro.org>
Thu, 25 Jun 2020 16:23:38 +0000 (13:23 -0300)
commit9ffb8389d39facef2ea2519e322a294b08bd8d16
tree592439c419d76e1aa5e6ff386d81589c86355346
parentebd61ee8b5161ded8653c32da0ec57927e1ba9c1
GDBserver remote packet support for memory tagging

This patch adds the generic remote bits to gdbserver so it can check for memory
tagging support and handle fetch tags and store tags requests.

gdbserver/ChangeLog:

YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

* remote-utils.cc (decode_m_packet_params): Renamed from ...
(decode_m_packet): ... this, which now calls decode_m_packet_params.
(decode_M_packet): Use decode_m_packet_params.
* remote-utils.h (decode_m_packet_params): New prototype.
* server.cc (create_fmemtags_reply, parse_smemtags_request): New
functions.
(handle_general_set): Handle the QMemTags packet.
(parse_fmemtags_request): New function.
(handle_query): Handle the qMemTags packet and advertise memory
tagging support.
(captured_main): Initialize memory tagging flag.
* server.h (struct client_state): Initialize memory tagging flag.
* target.cc (process_stratum_target::supports_memory_tagging)
(process_stratum_target::fetch_memtags)
(process_stratum_target::store_memtags): New methods.
* target.h: Include gdbsupport/byte-vector.h.
(class process_stratum_target) <supports_memory_tagging>
<fetch_memtags, store_memtags>: New class virtual methods.
(target_supports_memory_tagging): Define.
gdbserver/remote-utils.cc
gdbserver/remote-utils.h
gdbserver/server.cc
gdbserver/server.h
gdbserver/target.cc
gdbserver/target.h