+static void Pformat(const char *what) {
+ fprintf(stderr,"adns test harness: format error in raw log input file: %s\n",what);
+ exit(-1);
+}
+
+extern void Tshutdown(void) {
+ int c= fgetc(Tinputfile);
+ if (c!=EOF) Pformat("unwanted additional syscall reply data");
+ if (ferror(Tinputfile)) Tfailed("read test log input (at end)");
+}
+
+static void Pcheckinput(void) {
+ if (ferror(Tinputfile)) Tfailed("read test log input file");
+ if (feof(Tinputfile)) Pformat("eof at syscall reply");
+}
+
+static void P_read_dump(const unsigned char *p0, size_t count, ssize_t d) {
+ fputs(" | ",traceout);
+ while (count) {
+ fprintf(traceout,"%02x", *p0);
+ p0 += d;
+ count--;
+ }
+}
+
+static void P_read(void *p, size_t sz, const char *what) {
+ long pos = ftell(Tinputfile);