]> jfr.im git - irc/evilnet/x3.git/blob - src/slab-read.c
Couple of srvx updates.
[irc/evilnet/x3.git] / src / slab-read.c
1 #include "compat.h"
2
3 struct slab_log_entry
4 {
5 struct timeval tv;
6 void *slab;
7 ssize_t size;
8 };
9
10 static void
11 read_log_file(const char *name)
12 {
13 struct slab_log_entry sle;
14 FILE *log;
15
16 log = fopen(name, "r");
17 if (!log)
18 {
19 fprintf(stderr, "Unable to open %s: %s\n", name, strerror(errno));
20 return;
21 }
22
23 while (fread(&sle, sizeof(sle), 1, log) == 1)
24 {
25 fprintf(stdout, "%ld.%06ld %p ", (long)sle.tv.tv_sec, (long)sle.tv.tv_usec, sle.slab);
26 if (sle.size > 0)
27 {
28 fprintf(stdout, "-> %zd\n", sle.size);
29 }
30 else if (sle.size < 0)
31 {
32 fprintf(stdout, "<- %zd\n", -sle.size);
33 }
34 else /* slze.size == 0 */
35 {
36 fprintf(stdout, "unmap\n");
37 }
38 }
39 }
40
41 int
42 main(int argc, char *argv[])
43 {
44 int ii;
45
46 if (argc < 2)
47 {
48 fprintf(stderr, "Usage: %s <logfile ...>\n", argv[0]);
49 return 1;
50 }
51
52 for (ii = 1; ii < argc; ++ii)
53 {
54 read_log_file(argv[ii]);
55 }
56 return 0;
57 }