From 8c86cb1777c2f75bbef3ec331fa0c110c31cb8b1 Mon Sep 17 00:00:00 2001 From: acevest Date: Tue, 16 May 2023 15:54:14 +0800 Subject: [PATCH] =?utf8?q?=E5=85=B3=E4=B8=AD=E6=96=AD=E6=89=A7=E8=A1=8Cpri?= =?utf8?q?nt*?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- kernel/printk.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/kernel/printk.c b/kernel/printk.c index 77a3a46..08eee39 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -15,34 +15,43 @@ *-------------------------------------------------------------------------- */ +#include #include #include - int vsprintf(char *buf, const char *fmt, char *args); char pkbuf[1024]; extern tty_t default_tty; int printk(const char *fmtstr, ...) { + unsigned long iflags; + irq_save(iflags); char *args = (char *)(((char *)&fmtstr) + 4); int size = vsprintf(pkbuf, fmtstr, args); tty_write(&default_tty, pkbuf, (size_t)size); + irq_restore(iflags); return 0; } extern tty_t debug_tty; char pdbuf[1024]; int printd(const char *fmtstr, ...) { + unsigned long iflags; + irq_save(iflags); char *args = (char *)(((char *)&fmtstr) + 4); int size = vsprintf(pdbuf, fmtstr, args); tty_write(&debug_tty, pdbuf, (size_t)size); + irq_restore(iflags); return 0; } char plobuf[1024]; extern tty_t monitor_tty; int printlo(unsigned int xpos, unsigned int ypos, const char *fmtstr, ...) { + unsigned long iflags; + irq_save(iflags); char *args = (char *)(((char *)&fmtstr) + 4); int size = vsprintf(plobuf, fmtstr, args); tty_write_at(&monitor_tty, xpos, ypos, plobuf, (size_t)size); + irq_restore(iflags); return 0; } -- 2.44.0