From 7bca6ad19e54e2edc4ec9cfa10da20a26e294334 Mon Sep 17 00:00:00 2001 From: Pwn20wnd Date: Sat, 9 Mar 2019 23:30:26 +0300 Subject: Merge pwn's changes to support arm64e via rebase --- kernel_call/log.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 kernel_call/log.c (limited to 'kernel_call/log.c') diff --git a/kernel_call/log.c b/kernel_call/log.c new file mode 100755 index 0000000..0ff5f01 --- /dev/null +++ b/kernel_call/log.c @@ -0,0 +1,37 @@ +/* + * log.c + * Brandon Azad + */ +#include "log.h" + +#include +#include +#include + +void +log_internal(char type, const char *format, ...) { + if (log_implementation != NULL) { + va_list ap; + va_start(ap, format); + log_implementation(type, format, ap); + va_end(ap); + } +} + +// The default logging implementation prints to stderr with a nice hacker prefix. +static void +log_stderr(char type, const char *format, va_list ap) { + char *message = NULL; + vasprintf(&message, format, ap); + assert(message != NULL); + switch (type) { + case 'D': type = 'D'; break; + case 'I': type = '+'; break; + case 'W': type = '!'; break; + case 'E': type = '-'; break; + } + fprintf(stderr, "[%c] %s\n", type, message); + free(message); +} + +void (*log_implementation)(char type, const char *format, va_list ap) = log_stderr; -- cgit v1.2.3