#include "gdbsupport/array-view.h"
#include "gdbsupport/btrace-common.h"
#include <vector>
+#include "gdbsupport/byte-vector.h"
struct emit_ops;
struct buffer;
virtual int get_tls_address (thread_info *thread, CORE_ADDR offset,
CORE_ADDR load_module, CORE_ADDR *address);
- /* Fill BUF with an hostio error packet representing the last hostio
- error. */
- virtual void hostio_last_error (char *buf);
-
/* Return true if the qxfer_osdata target op is supported. */
virtual bool supports_qxfer_osdata ();
character string containing the pathname is returned. This
string should be copied into a buffer by the client if the string
will not be immediately used, or if it must persist. */
- virtual char *pid_to_exec_file (int pid);
+ virtual const char *pid_to_exec_file (int pid);
/* Return true if any of the multifs ops is supported. */
virtual bool supports_multifs ();
/* Return tdesc index for IPA. */
virtual int get_ipa_tdesc_idx ();
+
+ /* Returns true if the target supports memory tagging facilities. */
+ virtual bool supports_memory_tagging ();
+
+ /* Return the allocated memory tags of type TYPE associated with
+ [ADDRESS, ADDRESS + LEN) in TAGS.
+
+ Returns true if successful and false otherwise. */
+ virtual bool fetch_memtags (CORE_ADDR address, size_t len,
+ gdb::byte_vector &tags, int type);
+
+ /* Write the allocation tags of type TYPE contained in TAGS to the
+ memory range [ADDRESS, ADDRESS + LEN).
+
+ Returns true if successful and false otherwise. */
+ virtual bool store_memtags (CORE_ADDR address, size_t len,
+ const gdb::byte_vector &tags, int type);
};
extern process_stratum_target *the_target;
#define target_supports_exec_events() \
the_target->supports_exec_events ()
+#define target_supports_memory_tagging() \
+ the_target->supports_memory_tagging ()
+
#define target_handle_new_gdb_connection() \
the_target->handle_new_gdb_connection ()