X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/199c2b1bedd78a06dae62d736115273bd0127af1..efea5b4edd5cc94b4ed0917ebca0efb6bb6a2f82:/grubload/output.c?ds=sidebyside diff --git a/grubload/output.c b/grubload/output.c new file mode 100644 index 0000000..6a6ffab --- /dev/null +++ b/grubload/output.c @@ -0,0 +1,31 @@ +#include +#include +#include +#include +#include + +#define OUTBLEN 160 + +static void safeputs(const char *s) +{ + unsigned long old = smram_save_state(); + smram_aseg_set_state(SMRAM_ASEG_SMMONLY); + puts(s); + smram_restore_state(old); +} +void (*output)(const char *s) = safeputs; + +static void miniprintf(const char *fmt, ...) +{ + va_list va; + char b[OUTBLEN+1]; + + va_start(va, fmt); + vsnprintf(b, OUTBLEN, fmt, va); + va_end(va); + + output(b); + putbyte('\n'); +} + +void (*outputf)(const char *s, ...) = miniprintf;