fail_err
fail_err("bad child state %#x", stat);
fail_err("value %d != SEM_VALUE_MAX");
fail_err("value < 0");
fail_err("kvm_openfiles: %s", errbuf);
fail_err("kvm_getprocs: %s", kvm_geterr(kd));
fail_err("Limit of %d semaphores not enforced", nsems_max);
fail_err("bad child state %#x", stat);
fail_err("ksem_open() didn't fail");
fail_err("Limit of %d semaphores not enforced", nsems_max);
fail_err("bad child state %#x", stat);
fail_err("Limit of %d semaphores not enforced", nsems_max);
fail_err("bad child state %#x", stat);
fail_err("Limit of %d semaphores not enforced", nsems_max);
fail_err("bad child state %#x", stat);
fail_err("ksem_unlink() didn't fail");
fail_err("ksem_close() didn't fail");
fail_err("ksem_init() didn't fail");
fail_err("ksem_destroy() didn't fail");
fail_err("ksem_post() didn't fail");
fail_err("ksem_getvalue() didn't fail");
fail_err("ksem_wait() didn't fail");
fail_err("ksem_trywait() didn't fail");
fail_err("ksem_timedwait() didn't fail");
fail_err("sem value should be %d instead of %d", expected, val);
fail_err("ksem_trywait() didn't fail");
fail_err("ksem_post() already scheduled");
fail_err("ksem_timedwait() didn't fail");
fail_err("ksem_timedwait() of unlocked sem took %ums", elapsed);
fail_err(
fail_err(
fail_err("ksem_wait() of unlocked sem took %ums", elapsed);
fail_err(
void fail_err(const char *fmt, ...);
#define fail_errno(tag) fail_err("%s: %s", (tag), strerror(errno))