blob: 1af6d6cfe8c0c63f5b1e024ace4c795f520817e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <string.h>
#include <sys/cdefs.h>
#include <sys/uio.h>
#include <unistd.h>
__dead void __libc_panic(const char *prefix, const char *f, const char *errmsg)
{
struct iovec iovec[5];
const char *e = "libc panic: ";
iovec[0].iov_base = (char *)e;
iovec[0].iov_len = sizeof("libc panic: ") - 1;
iovec[1].iov_base = (char *)prefix;
iovec[1].iov_len = strlen(prefix);
iovec[2].iov_base = (char *)f;
iovec[2].iov_len = strlen(f);
iovec[3].iov_base = (char *)errmsg;
iovec[3].iov_len = strlen(errmsg);
iovec[4].iov_base = "\n";
iovec[4].iov_len = 1;
writev(STDERR_FILENO, iovec, 5);
__builtin_trap();
}
|