return 1;
}
option += 2;
- if (*option == '\0') {
- fprintf(stderr,"Bad format specifier - need fmt %s\n", option);
- return 1;
- }
- /*
- * Set both merges (front and back)
- */
- if (spec == 'M') {
- override_format['B'] = strdup(option);
- override_format['M'] = strdup(option);
- } else
- override_format[spec] = strdup(option);
+ override_format[spec] = strdup(option);
return 0;
}
int b = t->action & BLK_TC_ACT(BLK_TC_BARRIER);
int s = t->action & BLK_TC_ACT(BLK_TC_SYNC);
int m = t->action & BLK_TC_ACT(BLK_TC_META);
+ int d = t->action & BLK_TC_ACT(BLK_TC_DISCARD);
int i = 0;
- if (w)
+ if (d)
+ rwbs[i++] = 'D';
+ else if (w)
rwbs[i++] = 'W';
- else
+ else if (t->bytes)
rwbs[i++] = 'R';
+ else
+ rwbs[i++] = 'N';
if (a)
rwbs[i++] = 'A';
if (b)
fprintf(ofp, "[%d]\n", t->error);
} else {
if (elapsed != -1ULL) {
- fprintf(ofp, "%llu + %u (%8llu) [%d]\n",
- (unsigned long long) t->sector,
- t_sec(t), elapsed, t->error);
+ if (t_sec(t))
+ fprintf(ofp, "%llu + %u (%8llu) [%d]\n",
+ (unsigned long long) t->sector,
+ t_sec(t), elapsed, t->error);
+ else
+ fprintf(ofp, "%llu (%8llu) [%d]\n",
+ (unsigned long long) t->sector,
+ elapsed, t->error);
} else {
- fprintf(ofp, "%llu + %u [%d]\n",
- (unsigned long long) t->sector,
- t_sec(t), t->error);
+ if (t_sec(t))
+ fprintf(ofp, "%llu + %u [%d]\n",
+ (unsigned long long) t->sector,
+ t_sec(t), t->error);
+ else
+ fprintf(ofp, "%llu [%d]\n",
+ (unsigned long long) t->sector,
+ t->error);
}
}
break;
case 'D': /* Issue */
case 'I': /* Insert */
case 'Q': /* Queue */
- case 'W': /* Bounce */
+ case 'B': /* Bounce */
if (t->action & BLK_TC_ACT(BLK_TC_PC)) {
char *p;
fprintf(ofp, "%u ", t->bytes);
fprintf(ofp, "[%s]\n", name);
} else {
if (elapsed != -1ULL) {
- fprintf(ofp, "%llu + %u (%8llu) [%s]\n",
- (unsigned long long) t->sector,
- t_sec(t), elapsed, name);
+ if (t_sec(t))
+ fprintf(ofp, "%llu + %u (%8llu) [%s]\n",
+ (unsigned long long) t->sector,
+ t_sec(t), elapsed, name);
+ else
+ fprintf(ofp, "(%8llu) [%s]\n", elapsed,
+ name);
} else {
- fprintf(ofp, "%llu + %u [%s]\n",
- (unsigned long long) t->sector,
- t_sec(t), name);
+ if (t_sec(t))
+ fprintf(ofp, "%llu + %u [%s]\n",
+ (unsigned long long) t->sector,
+ t_sec(t), name);
+ else
+ fprintf(ofp, "[%s]\n", name);
}
}
break;
- case 'B': /* Back merge */
+ case 'M': /* Back merge */
case 'F': /* Front merge */
- case 'M': /* Front or back merge */
case 'G': /* Get request */
case 'S': /* Sleep request */
- fprintf(ofp, "%llu + %u [%s]\n", (unsigned long long) t->sector,
- t_sec(t), name);
+ if (t_sec(t))
+ fprintf(ofp, "%llu + %u [%s]\n",
+ (unsigned long long) t->sector, t_sec(t), name);
+ else
+ fprintf(ofp, "[%s]\n", name);
break;
case 'P': /* Plug */
MAJOR(r.device), MINOR(r.device),
(unsigned long long) r.sector);
break;
-
+
case 'X': /* Split */
fprintf(ofp, "%llu / %u [%s]\n", (unsigned long long) t->sector,
get_pdu_int(t), name);
break;
+ case 'm': /* Message */
+ fprintf(ofp, "%*s\n", pdu_len, pdu_buf);
+ break;
+
default:
fprintf(stderr, "Unknown action %c\n", act[0]);
break;