31 lines
479 B
C
31 lines
479 B
C
|
#include <u.h>
|
||
|
#include <libc.h>
|
||
|
|
||
|
static void
|
||
|
_sysfatalimpl(char *fmt, va_list arg)
|
||
|
{
|
||
|
char buf[1024];
|
||
|
|
||
|
vseprint(buf, buf+sizeof(buf), fmt, arg);
|
||
|
if(argv0)
|
||
|
fprint(2, "%s: %s\n", argv0, buf);
|
||
|
else
|
||
|
fprint(2, "%s\n", buf);
|
||
|
#undef write
|
||
|
write(2, buf, strlen(buf));
|
||
|
write(2, "\n", 1);
|
||
|
panic("sysfatal");
|
||
|
}
|
||
|
|
||
|
void (*_sysfatal)(char *fmt, va_list arg) = _sysfatalimpl;
|
||
|
|
||
|
void
|
||
|
sysfatal(char *fmt, ...)
|
||
|
{
|
||
|
va_list arg;
|
||
|
|
||
|
va_start(arg, fmt);
|
||
|
(*_sysfatal)(fmt, arg);
|
||
|
va_end(arg);
|
||
|
}
|