- /* Destructor. Releases everything from SELF (but not SELF
- itself). */
- void (*dtor) (struct trace_file_writer *self);
-
- /* Save the data to file or directory NAME of desired format in
- target side. Return true for success, otherwise return
- false. */
- int (*target_save) (struct trace_file_writer *self,
- const char *name);
-
- /* Write the trace buffers to file or directory NAME. */
- void (*start) (struct trace_file_writer *self,
- const char *name);
-
- /* Write the trace header. */
- void (*write_header) (struct trace_file_writer *self);
-
- /* Write the type of block about registers. SIZE is the size of
- all registers on the target. */
- void (*write_regblock_type) (struct trace_file_writer *self,
- int size);
-
- /* Write trace status TS. */
- void (*write_status) (struct trace_file_writer *self,
- struct trace_status *ts);
-
- /* Write the uploaded TSV. */
- void (*write_uploaded_tsv) (struct trace_file_writer *self,
- struct uploaded_tsv *tsv);
-
- /* Write the uploaded tracepoint TP. */
- void (*write_uploaded_tp) (struct trace_file_writer *self,
- struct uploaded_tp *tp);
-
- /* Write to mark the end of the definition part. */
- void (*write_definition_end) (struct trace_file_writer *self);
-
- /* Write the data of trace buffer without parsing. The content is
- in BUF and length is LEN. */
- void (*write_trace_buffer) (struct trace_file_writer *self,
- gdb_byte *buf, LONGEST len);
-
- /* Operations to write trace frames. The user of this field is
- responsible to parse the data of trace buffer. Either field
- 'write_trace_buffer' or field ' frame_ops' is NULL. */
- const struct trace_frame_write_ops *frame_ops;
-
- /* The end of writing trace buffers. */
- void (*end) (struct trace_file_writer *self);
-};