Symbol: evtr
lib/libevtr/evtr.c
1000
evtr->errmsg = "fmt + name of subsystem is too large";
lib/libevtr/evtr.c
1001
evtr->err = ERANGE;
lib/libevtr/evtr.c
1005
if (!strhash_find(evtr->fmts, buf, &id)) {
lib/libevtr/evtr.c
1008
if ((err = strhash_insert(evtr->fmts, buf, &id))) {
lib/libevtr/evtr.c
1009
evtr->err = err;
lib/libevtr/evtr.c
1018
if (evtr_dump_avoid_boundary(evtr, sizeof(fmt) + fmt.subsys_len +
lib/libevtr/evtr.c
1021
if (evtr_write(evtr, &fmt, sizeof(fmt)))
lib/libevtr/evtr.c
1023
if (evtr_write(evtr, subsys, fmt.subsys_len))
lib/libevtr/evtr.c
1025
if (evtr_write(evtr, ev->fmt, fmt.fmt_len))
lib/libevtr/evtr.c
1027
if (evtr_dump_pad(evtr))
lib/libevtr/evtr.c
1141
evtr_dump_string(evtr_t evtr, uint64_t ts, const char *str, int ns)
lib/libevtr/evtr.c
1148
if (!strhash_find(evtr->strings[ns], str, &id)) {
lib/libevtr/evtr.c
1151
if ((err = strhash_insert(evtr->strings[ns], str, &id))) {
lib/libevtr/evtr.c
1152
evtr->err = err;
lib/libevtr/evtr.c
1163
if (evtr_dump_avoid_boundary(evtr, sizeof(s) + s.len))
lib/libevtr/evtr.c
1165
if (evtr_write(evtr, &s, sizeof(s)))
lib/libevtr/evtr.c
1167
if (evtr_write(evtr, str, s.len))
lib/libevtr/evtr.c
1169
if (evtr_dump_pad(evtr))
lib/libevtr/evtr.c
1175
evtr_t evtr;
lib/libevtr/evtr.c
1184
return (const char *)(uintptr_t)evtr_dump_string(ctx->evtr, ctx->ts, s,
lib/libevtr/evtr.c
1195
ret = string_map_find(&ctx->evtr->maps[EVTR_NS_DSTR - 1].root,
lib/libevtr/evtr.c
1199
ctx->evtr->errmsg = "unknown id for data string";
lib/libevtr/evtr.c
1200
ctx->evtr->err = !0;
lib/libevtr/evtr.c
1210
evtr_dump_probe(evtr_t evtr, evtr_event_t ev)
lib/libevtr/evtr.c
1221
kev.file = evtr_dump_string(evtr, kev.eh.ts, ev->file,
lib/libevtr/evtr.c
1225
kev.func = evtr_dump_string(evtr, kev.eh.ts, ev->func,
lib/libevtr/evtr.c
1229
kev.fmt = evtr_dump_fmt(evtr, kev.eh.ts, ev);
lib/libevtr/evtr.c
1233
.evtr = evtr,
lib/libevtr/evtr.c
1246
if (evtr->err)
lib/libevtr/evtr.c
1247
return evtr->err;
lib/libevtr/evtr.c
1249
if (evtr_dump_avoid_boundary(evtr, sizeof(kev) + ev->fmtdatalen))
lib/libevtr/evtr.c
1251
if (evtr_write(evtr, &kev, sizeof(kev)))
lib/libevtr/evtr.c
1253
if (evtr_write(evtr, buf, ev->fmtdatalen))
lib/libevtr/evtr.c
1255
if (evtr_dump_pad(evtr))
lib/libevtr/evtr.c
1262
evtr_dump_sysinfo(evtr_t evtr, evtr_event_t ev)
lib/libevtr/evtr.c
1268
evtr->errmsg = "invalid number of cpus";
lib/libevtr/evtr.c
1271
if (evtr_dump_avoid_boundary(evtr, sizeof(type) + sizeof(ncpus)))
lib/libevtr/evtr.c
1273
if (evtr_write(evtr, &type, sizeof(type))) {
lib/libevtr/evtr.c
1276
if (evtr_write(evtr, &ncpus, sizeof(ncpus))) {
lib/libevtr/evtr.c
1279
if (evtr_dump_pad(evtr))
lib/libevtr/evtr.c
1285
evtr_dump_cpuinfo(evtr_t evtr, evtr_event_t ev)
lib/libevtr/evtr.c
1290
if (evtr_dump_avoid_boundary(evtr, sizeof(type) + sizeof(ci)))
lib/libevtr/evtr.c
1293
if (evtr_write(evtr, &type, sizeof(type))) {
lib/libevtr/evtr.c
1298
if (evtr_dump_avoid_boundary(evtr, sizeof(ci)))
lib/libevtr/evtr.c
1300
if (evtr_write(evtr, &ci, sizeof(ci))) {
lib/libevtr/evtr.c
1303
if (evtr_dump_pad(evtr))
lib/libevtr/evtr.c
1309
evtr_rewind(evtr_t evtr)
lib/libevtr/evtr.c
1311
assert((evtr->flags & EVTRF_WR) == 0);
lib/libevtr/evtr.c
1312
evtr->bytes = 0;
lib/libevtr/evtr.c
1313
if (fseek(evtr->f, 0, SEEK_SET)) {
lib/libevtr/evtr.c
1314
evtr->err = errno;
lib/libevtr/evtr.c
1321
evtr_dump_event(evtr_t evtr, evtr_event_t ev)
lib/libevtr/evtr.c
1325
return evtr_dump_probe(evtr, ev);
lib/libevtr/evtr.c
1327
return evtr_dump_sysinfo(evtr, ev);
lib/libevtr/evtr.c
1329
return evtr_dump_cpuinfo(evtr, ev);
lib/libevtr/evtr.c
1331
evtr->errmsg = "unknown event type";
lib/libevtr/evtr.c
1339
evtr_t evtr;
lib/libevtr/evtr.c
1340
if (!(evtr = malloc(sizeof(*evtr)))) {
lib/libevtr/evtr.c
1344
evtr->f = f;
lib/libevtr/evtr.c
1345
evtr->err = 0;
lib/libevtr/evtr.c
1346
evtr->errmsg = NULL;
lib/libevtr/evtr.c
1347
evtr->bytes = 0;
lib/libevtr/evtr.c
1348
return evtr;
lib/libevtr/evtr.c
1356
evtr_t evtr;
lib/libevtr/evtr.c
1360
if (!(evtr = evtr_alloc(f))) {
lib/libevtr/evtr.c
1363
evtr->flags = 0;
lib/libevtr/evtr.c
1365
RB_INIT(&evtr->maps[i].root);
lib/libevtr/evtr.c
1367
RB_INIT(&evtr->fmtmap.root);
lib/libevtr/evtr.c
1368
RB_INIT(&evtr->threads.root);
lib/libevtr/evtr.c
1369
evtr->cpus = NULL;
lib/libevtr/evtr.c
1370
evtr->ncpus = 0;
lib/libevtr/evtr.c
1375
if (evtr_next_event(evtr, &ev)) {
lib/libevtr/evtr.c
1378
if (evtr_rewind(evtr))
lib/libevtr/evtr.c
1380
return evtr;
lib/libevtr/evtr.c
1382
free(evtr);
lib/libevtr/evtr.c
1389
evtr_t evtr;
lib/libevtr/evtr.c
1392
if (!(evtr = evtr_alloc(f))) {
lib/libevtr/evtr.c
1396
evtr->flags = EVTRF_WR;
lib/libevtr/evtr.c
1397
if (!(evtr->fmts = strhash_new()))
lib/libevtr/evtr.c
1400
evtr->strings[i] = strhash_new();
lib/libevtr/evtr.c
1401
if (!evtr->strings[i]) {
lib/libevtr/evtr.c
1403
strhash_destroy(evtr->strings[j]);
lib/libevtr/evtr.c
1409
return evtr;
lib/libevtr/evtr.c
1411
strhash_destroy(evtr->fmts);
lib/libevtr/evtr.c
1413
free(evtr);
lib/libevtr/evtr.c
1433
evtr_close(evtr_t evtr)
lib/libevtr/evtr.c
1437
if (evtr->flags & EVTRF_WR) {
lib/libevtr/evtr.c
1438
hashtab_destroy(&evtr->fmts->tab);
lib/libevtr/evtr.c
1440
hashtab_destroy(&evtr->strings[i]->tab);
lib/libevtr/evtr.c
1442
id_tree_free(&evtr->fmtmap.root);
lib/libevtr/evtr.c
1444
id_tree_free(&evtr->maps[i].root);
lib/libevtr/evtr.c
1447
free(evtr);
lib/libevtr/evtr.c
1452
evtr_read(evtr_t evtr, void *buf, size_t size)
lib/libevtr/evtr.c
1455
assert_foff_in_sync(evtr);
lib/libevtr/evtr.c
1456
printd(IO, "evtr_read at %#jx, %zu bytes\n", evtr->bytes, size);
lib/libevtr/evtr.c
1457
if (fread(buf, size, 1, evtr->f) != 1) {
lib/libevtr/evtr.c
1458
if (feof(evtr->f)) {
lib/libevtr/evtr.c
1459
evtr->errmsg = "incomplete record";
lib/libevtr/evtr.c
1461
evtr->errmsg = strerror(errno);
lib/libevtr/evtr.c
1465
evtr->bytes += size;
lib/libevtr/evtr.c
1466
assert_foff_in_sync(evtr);
lib/libevtr/evtr.c
1474
evtr_t evtr = q->evtr;
lib/libevtr/evtr.c
1480
evtr->err = errno;
lib/libevtr/evtr.c
1483
if (evtr_read(evtr, buf + sizeof(struct trace_event_header),
lib/libevtr/evtr.c
1490
evtr->err = errno;
lib/libevtr/evtr.c
1493
if (evtr_read(evtr, subsys, evh->subsys_len)) {
lib/libevtr/evtr.c
1501
evtr->err = errno;
lib/libevtr/evtr.c
1504
if (evtr_read(evtr, fmtstr, evh->fmt_len)) {
lib/libevtr/evtr.c
1511
evtr->err = fmt_map_insert(&evtr->fmtmap.root, fmt, evh->id);
lib/libevtr/evtr.c
1512
switch (evtr->err) {
lib/libevtr/evtr.c
1514
evtr->errmsg = "out of memory";
lib/libevtr/evtr.c
1517
evtr->errmsg = "redefinition of an id to a "
lib/libevtr/evtr.c
1523
return evtr->err;
lib/libevtr/evtr.c
1537
evtr_load_string(evtr_t evtr, char *buf)
lib/libevtr/evtr.c
1542
if (evtr_read(evtr, buf + sizeof(struct trace_event_header),
lib/libevtr/evtr.c
1547
evtr->errmsg = "string too large (corrupt input)";
lib/libevtr/evtr.c
1550
if (evh->len && evtr_read(evtr, sbuf, evh->len)) {
lib/libevtr/evtr.c
1555
evtr->errmsg = "invalid namespace (corrupt input)";
lib/libevtr/evtr.c
1561
evtr->err = string_map_insert(&evtr->maps[evh->ns - 1].root, sbuf, evh->id);
lib/libevtr/evtr.c
1562
switch (evtr->err) {
lib/libevtr/evtr.c
1564
evtr->errmsg = "out of memory";
lib/libevtr/evtr.c
1567
evtr->errmsg = "redefinition of an id to a "
lib/libevtr/evtr.c
1578
evtr_skip(evtr_t evtr, off_t bytes)
lib/libevtr/evtr.c
1580
if (fseek(evtr->f, bytes, SEEK_CUR)) {
lib/libevtr/evtr.c
1581
evtr->err = errno;
lib/libevtr/evtr.c
1582
evtr->errmsg = strerror(errno);
lib/libevtr/evtr.c
1585
evtr->bytes += bytes;
lib/libevtr/evtr.c
1609
evtr_load_probe(evtr_t evtr, evtr_event_t ev, char *buf, struct evtr_query *q)
lib/libevtr/evtr.c
1614
if (evtr_read(evtr, buf + sizeof(struct trace_event_header),
lib/libevtr/evtr.c
1622
if ((cpu = evtr_cpu(evtr, evh->cpu))) {
lib/libevtr/evtr.c
1629
&evtr->maps[EVTR_NS_PATH - 1].root,
lib/libevtr/evtr.c
1632
evtr->errmsg = "unknown id for file path";
lib/libevtr/evtr.c
1633
evtr->err = !0;
lib/libevtr/evtr.c
1643
if (!(fmt = fmt_map_find(&evtr->fmtmap.root, evh->fmt))) {
lib/libevtr/evtr.c
1644
evtr->errmsg = "unknown id for event fmt";
lib/libevtr/evtr.c
1645
evtr->err = !0;
lib/libevtr/evtr.c
1654
evtr->err = ENOMEM;
lib/libevtr/evtr.c
1655
} else if (!evtr_read(evtr, q->buf, evh->datalen)) {
lib/libevtr/evtr.c
1657
.evtr = evtr,
lib/libevtr/evtr.c
1672
return evtr->err;
lib/libevtr/evtr.c
1673
if (evtr->err)
lib/libevtr/evtr.c
1674
return evtr->err;
lib/libevtr/evtr.c
1680
return evtr->err;
lib/libevtr/evtr.c
1685
evtr_skip_to_record(evtr_t evtr)
lib/libevtr/evtr.c
1689
skip = REC_ALIGN - (evtr->bytes % REC_ALIGN);
lib/libevtr/evtr.c
1691
if (fseek(evtr->f, skip, SEEK_CUR)) {
lib/libevtr/evtr.c
1692
evtr->err = errno;
lib/libevtr/evtr.c
1693
evtr->errmsg = strerror(errno);
lib/libevtr/evtr.c
1696
evtr->bytes += skip;
lib/libevtr/evtr.c
1703
evtr_load_sysinfo(evtr_t evtr)
lib/libevtr/evtr.c
1708
if (evtr_read(evtr, &ncpus, sizeof(ncpus))) {
lib/libevtr/evtr.c
1711
if (evtr->cpus)
lib/libevtr/evtr.c
1713
evtr->cpus = malloc(ncpus * sizeof(struct cpu));
lib/libevtr/evtr.c
1714
if (!evtr->cpus) {
lib/libevtr/evtr.c
1715
evtr->err = ENOMEM;
lib/libevtr/evtr.c
1718
evtr->ncpus = ncpus;
lib/libevtr/evtr.c
1720
evtr->cpus[i].td = NULL;
lib/libevtr/evtr.c
1721
evtr->cpus[i].freq = -1.0;
lib/libevtr/evtr.c
1728
evtr_load_cpuinfo(evtr_t evtr)
lib/libevtr/evtr.c
1733
if (evtr_read(evtr, &cih, sizeof(cih))) {
lib/libevtr/evtr.c
1737
evtr->errmsg = "cpu freq is negative";
lib/libevtr/evtr.c
1738
evtr->err = EINVAL;
lib/libevtr/evtr.c
1746
if (!(cpu = evtr_cpu(evtr, cih.cpu))) {
lib/libevtr/evtr.c
1747
evtr->errmsg = "freq for invalid cpu";
lib/libevtr/evtr.c
1748
evtr->err = EINVAL;
lib/libevtr/evtr.c
1757
_evtr_next_event(evtr_t evtr, evtr_event_t ev, struct evtr_query *q)
lib/libevtr/evtr.c
1765
q->off = evtr->bytes;
lib/libevtr/evtr.c
1770
if (evtr_read(evtr, &evhdr->type, 1)) {
lib/libevtr/evtr.c
1771
if (feof(evtr->f)) {
lib/libevtr/evtr.c
1772
evtr->errmsg = NULL;
lib/libevtr/evtr.c
1773
evtr->err = 0;
lib/libevtr/evtr.c
1783
evtr_skip_to_record(evtr);
lib/libevtr/evtr.c
1787
evtr_load_sysinfo(evtr);
lib/libevtr/evtr.c
1790
evtr_load_cpuinfo(evtr);
lib/libevtr/evtr.c
1793
if (evtr_read(evtr, buf + 1, sizeof(*evhdr) - 1))
lib/libevtr/evtr.c
1794
return feof(evtr->f) ? -1 : !0;
lib/libevtr/evtr.c
1797
if ((err = evtr_load_probe(evtr, ev, buf, q))) {
lib/libevtr/evtr.c
1809
if (evtr_load_string(evtr, buf)) {
lib/libevtr/evtr.c
1819
evtr->err = !0;
lib/libevtr/evtr.c
1820
evtr->errmsg = "unknown event type (corrupt input?)";
lib/libevtr/evtr.c
1823
evtr_skip_to_record(evtr);
lib/libevtr/evtr.c
1829
q->off = evtr->bytes;
lib/libevtr/evtr.c
1839
evtr_next_event(evtr_t evtr, evtr_event_t ev)
lib/libevtr/evtr.c
1844
if (!(q = evtr_query_init(evtr, NULL, 0))) {
lib/libevtr/evtr.c
1845
evtr->err = ENOMEM;
lib/libevtr/evtr.c
1848
ret = _evtr_next_event(evtr, ev, q);
lib/libevtr/evtr.c
1854
evtr_last_event(evtr_t evtr, evtr_event_t ev)
lib/libevtr/evtr.c
1860
if (evtr_error(evtr))
lib/libevtr/evtr.c
1863
fd = fileno(evtr->f);
lib/libevtr/evtr.c
1879
assert(evtr->bytes == 0);
lib/libevtr/evtr.c
1880
evtr_skip(evtr, last_boundary);
lib/libevtr/evtr.c
1889
while (!evtr_next_event(evtr, ev))
lib/libevtr/evtr.c
1891
if (evtr_error(evtr))
lib/libevtr/evtr.c
1893
evtr_rewind(evtr);
lib/libevtr/evtr.c
1898
evtr_query_init(evtr_t evtr, evtr_filter_t filt, int nfilt)
lib/libevtr/evtr.c
1912
q->evtr = evtr;
lib/libevtr/evtr.c
1970
if (q->off != q->evtr->bytes) {
lib/libevtr/evtr.c
1974
return _evtr_next_event(q->evtr, ev, q);
lib/libevtr/evtr.c
1978
evtr_ncpus(evtr_t evtr)
lib/libevtr/evtr.c
1980
return evtr->ncpus;
lib/libevtr/evtr.c
1984
evtr_cpufreqs(evtr_t evtr, double *freqs)
lib/libevtr/evtr.c
1990
for (i = 0; i < evtr->ncpus; ++i) {
lib/libevtr/evtr.c
1991
freqs[i] = evtr->cpus[i].freq;
lib/libevtr/evtr.c
220
evtr_t evtr;
lib/libevtr/evtr.c
331
evtr_cpu(evtr_t evtr, int c)
lib/libevtr/evtr.c
333
if ((c < 0) || (c >= evtr->ncpus))
lib/libevtr/evtr.c
335
return &evtr->cpus[c];
lib/libevtr/evtr.c
413
evtr_error(evtr_t evtr)
lib/libevtr/evtr.c
415
return evtr->err || (evtr->errmsg != NULL);
lib/libevtr/evtr.c
419
evtr_errmsg(evtr_t evtr)
lib/libevtr/evtr.c
421
return evtr->errmsg ? evtr->errmsg : strerror(evtr->err);
lib/libevtr/evtr.c
427
return q->err || (q->errmsg != NULL) || evtr_error(q->evtr);
lib/libevtr/evtr.c
435
(evtr_errmsg(q->evtr)));
lib/libevtr/evtr.c
822
evtr_t evtr = q->evtr;
lib/libevtr/evtr.c
844
thread_map_insert(&evtr->threads, td);
lib/libevtr/evtr.c
851
evtr_t evtr = ((evtr_query_t)d)->evtr;
lib/libevtr/evtr.c
860
cpu = evtr_cpu(evtr, ev->cpu);
lib/libevtr/evtr.c
868
tdp = thread_map_find(&evtr->threads, ktdp);
lib/libevtr/evtr.c
872
tdn = thread_map_find(&evtr->threads, ktdn);
lib/libevtr/evtr.c
893
tdn = thread_map_find(&evtr->threads, ktdn);
lib/libevtr/evtr.c
905
assert_foff_in_sync(evtr_t evtr)
lib/libevtr/evtr.c
913
off = ftello(evtr->f);
lib/libevtr/evtr.c
914
if (evtr->bytes != off) {
lib/libevtr/evtr.c
915
fprintf(stderr, "bytes %jd, off %jd\n", evtr->bytes, off);
lib/libevtr/evtr.c
922
evtr_write(evtr_t evtr, const void *buf, size_t bytes)
lib/libevtr/evtr.c
924
assert_foff_in_sync(evtr);
lib/libevtr/evtr.c
925
if (fwrite(buf, bytes, 1, evtr->f) != 1) {
lib/libevtr/evtr.c
926
evtr->err = errno;
lib/libevtr/evtr.c
927
evtr->errmsg = strerror(errno);
lib/libevtr/evtr.c
930
evtr->bytes += bytes;
lib/libevtr/evtr.c
931
assert_foff_in_sync(evtr);
lib/libevtr/evtr.c
942
evtr_dump_pad(evtr_t evtr)
lib/libevtr/evtr.c
947
pad = REC_ALIGN - (evtr->bytes % REC_ALIGN);
lib/libevtr/evtr.c
949
return evtr_write(evtr, buf, pad);
lib/libevtr/evtr.c
961
evtr_dump_avoid_boundary(evtr_t evtr, size_t bytes)
lib/libevtr/evtr.c
966
pad = REC_BOUNDARY - (evtr->bytes % REC_BOUNDARY);
lib/libevtr/evtr.c
971
if (evtr_write(evtr, buf, sizeof(buf))) {
lib/libevtr/evtr.c
977
if (evtr_write(evtr, buf, i)) {
lib/libevtr/evtr.c
987
evtr_dump_fmt(evtr_t evtr, uint64_t ts, const evtr_event_t ev)
lib/libevtr/evtr.c
995
evtr->errmsg = "name of subsystem is too large";
lib/libevtr/evtr.c
996
evtr->err = ERANGE;
lib/libevtr/evtr.h
175
struct evtr;
lib/libevtr/evtr.h
176
typedef struct evtr *evtr_t;
usr.bin/evtranalyze/evtranalyze.c
1029
q = evtr_query_init(evtr, &filt, 1);
usr.bin/evtranalyze/evtranalyze.c
1407
q = evtr_query_init(evtr, &filt, 1);
usr.bin/evtranalyze/evtranalyze.c
1450
q = evtr_query_init(evtr, &filt, 1);
usr.bin/evtranalyze/evtranalyze.c
1523
if (!(evtr = evtr_open_read(inf))) {
usr.bin/evtranalyze/evtranalyze.c
1538
evtr_close(evtr);
usr.bin/evtranalyze/evtranalyze.c
516
q = evtr_query_init(evtr, filts, nfilts);
usr.bin/evtranalyze/evtranalyze.c
534
if (evtr_rewind(evtr))
usr.bin/evtranalyze/evtranalyze.c
664
(void)evtr;
usr.bin/evtranalyze/evtranalyze.c
816
if ((ct->ncpus = evtr_ncpus(evtr)) <= 0)
usr.bin/evtranalyze/evtranalyze.c
826
if ((i = evtr_cpufreqs(evtr, freqs))) {
usr.bin/evtranalyze/evtranalyze.c
92
evtr_t evtr;
usr.bin/ktrdump/ktrdump.c
356
evtr_t evtr = (evtr_t)arg;
usr.bin/ktrdump/ktrdump.c
376
if (evtr_dump_event(evtr, &ev)) {
usr.bin/ktrdump/ktrdump.c
377
err(1, "%s", evtr_errmsg(evtr));
usr.bin/ktrdump/ktrdump.c
380
return devinfo_foreach_device_child(dev, dump_devinfo, evtr);
usr.bin/ktrdump/ktrdump.c
385
dump_device_info(evtr_t evtr)
usr.bin/ktrdump/ktrdump.c
394
devinfo_foreach_device_child(root, dump_devinfo, evtr);
usr.bin/ktrdump/ktrdump.c
399
dump_machine_info(evtr_t evtr)
usr.bin/ktrdump/ktrdump.c
407
evtr_dump_event(evtr, &ev);
usr.bin/ktrdump/ktrdump.c
408
if (evtr_error(evtr)) {
usr.bin/ktrdump/ktrdump.c
409
err(1, "%s", evtr_errmsg(evtr));
usr.bin/ktrdump/ktrdump.c
417
evtr_dump_event(evtr, &ev);
usr.bin/ktrdump/ktrdump.c
418
if (evtr_error(evtr)) {
usr.bin/ktrdump/ktrdump.c
419
err(1, "%s", evtr_errmsg(evtr));
usr.bin/ktrdump/ktrdump.c
651
evtr_t evtr = (evtr_t)ctx;
usr.bin/ktrdump/ktrdump.c
675
if (evtr_dump_event(evtr, &ev)) {
usr.bin/ktrdump/ktrdump.c
676
err(1, "%s", evtr_errmsg(evtr));