+ return 0;
+}
+
+static void dump_hdr(unsigned long long offset, struct ptldebug_header *hdr)
+{
+ fprintf(stderr, "badly-formed record at offset = %llu\n", offset);
+ fprintf(stderr, " len = %u\n", hdr->ph_len);
+ fprintf(stderr, " flags = %x\n", hdr->ph_flags);
+ fprintf(stderr, " subsystem = %x\n", hdr->ph_subsys);
+ fprintf(stderr, " mask = %x\n", hdr->ph_mask);
+ fprintf(stderr, " cpu_id = %u\n", hdr->ph_cpu_id);
+ fprintf(stderr, " type = %u\n", hdr->ph_type);
+ fprintf(stderr, " seconds = %u\n", hdr->ph_sec);
+ fprintf(stderr, " microseconds = %lu\n", (long)hdr->ph_usec);
+ fprintf(stderr, " stack = %u\n", hdr->ph_stack);
+ fprintf(stderr, " pid = %u\n", hdr->ph_pid);
+ fprintf(stderr, " host pid = %u\n", hdr->ph_extern_pid);
+ fprintf(stderr, " line number = %u\n", hdr->ph_line_num);
+}
+
+#define HDR_SIZE sizeof(*hdr)
+
+static int parse_buffer(int fdin, int fdout)