aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/sysfatal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/sysfatal.c')
-rw-r--r--src/lib9/sysfatal.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib9/sysfatal.c b/src/lib9/sysfatal.c
new file mode 100644
index 00000000..f9ab6985
--- /dev/null
+++ b/src/lib9/sysfatal.c
@@ -0,0 +1,20 @@
+#include <lib9.h>
+
+void (*_sysfatal)(char*, ...);
+
+void
+sysfatal(char *fmt, ...)
+{
+ char buf[256];
+ va_list arg;
+
+ va_start(arg, fmt);
+ if(_sysfatal)
+ (*_sysfatal)(fmt, arg);
+ vseprint(buf, buf+sizeof buf, fmt, arg);
+ va_end(arg);
+
+ fprint(2, "%s; %s\n", argv0 ? argv0 : "<prog>", buf);
+ exits("fatal");
+}
+