#ifndef TRACEFILE_H
#define TRACEFILE_H 1
-#include "defs.h"
#include "tracepoint.h"
+#include "target.h"
+#include "process-stratum-target.h"
struct trace_file_writer;
void (*write_uploaded_tp) (struct trace_file_writer *self,
struct uploaded_tp *tp);
+ /* Write target description. */
+ void (*write_tdesc) (struct trace_file_writer *self);
+
/* Write to mark the end of the definition part. */
void (*write_definition_end) (struct trace_file_writer *self);
extern struct trace_file_writer *tfile_trace_file_writer_new (void);
-extern void init_tracefile_ops (struct target_ops *ops);
+/* Base class for tracefile related targets. */
+
+class tracefile_target : public process_stratum_target
+{
+public:
+ tracefile_target () = default;
+
+ int get_trace_status (trace_status *ts) override;
+ bool has_all_memory () override;
+ bool has_memory () override;
+ bool has_stack () override;
+ bool has_registers () override;
+ bool has_execution (inferior *inf) override { return false; }
+ bool thread_alive (ptid_t ptid) override;
+};
+
+extern void tracefile_fetch_registers (struct regcache *regcache, int regno);
#endif /* TRACEFILE_H */