1*46d884bbSDavid du Colombier /*
2*46d884bbSDavid du Colombier * This file brings in support functions from Plan 9 libc and others
3*46d884bbSDavid du Colombier * in order to provide a decent wrapper to libsec.
4*46d884bbSDavid du Colombier */
5*46d884bbSDavid du Colombier
6*46d884bbSDavid du Colombier #include "libc.h"
7*46d884bbSDavid du Colombier
8*46d884bbSDavid du Colombier static void
_sysfatalimpl(char * fmt,va_list arg)9*46d884bbSDavid du Colombier _sysfatalimpl(char *fmt, va_list arg)
10*46d884bbSDavid du Colombier {
11*46d884bbSDavid du Colombier char buf[1024];
12*46d884bbSDavid du Colombier
13*46d884bbSDavid du Colombier vseprint(buf, buf+sizeof(buf), fmt, arg);
14*46d884bbSDavid du Colombier if(argv0)
15*46d884bbSDavid du Colombier fprint(2, "%s: %s\n", argv0, buf);
16*46d884bbSDavid du Colombier else
17*46d884bbSDavid du Colombier fprint(2, "%s\n", buf);
18*46d884bbSDavid du Colombier exits(buf);
19*46d884bbSDavid du Colombier }
20*46d884bbSDavid du Colombier
21*46d884bbSDavid du Colombier void (*_sysfatal)(char *fmt, va_list arg) = _sysfatalimpl;
22*46d884bbSDavid du Colombier
23*46d884bbSDavid du Colombier void
sysfatal(char * fmt,...)24*46d884bbSDavid du Colombier sysfatal(char *fmt, ...)
25*46d884bbSDavid du Colombier {
26*46d884bbSDavid du Colombier va_list arg;
27*46d884bbSDavid du Colombier
28*46d884bbSDavid du Colombier va_start(arg, fmt);
29*46d884bbSDavid du Colombier (*_sysfatal)(fmt, arg);
30*46d884bbSDavid du Colombier va_end(arg);
31*46d884bbSDavid du Colombier }
32