From 012948d3453764ee72159fa03e2616d473c48479 Mon Sep 17 00:00:00 2001 From: fslongjin Date: Fri, 28 Jan 2022 13:44:48 +0800 Subject: [PATCH] =?UTF-8?q?:wrench:=20=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E9=9A=90=E5=BC=8F=E7=B1=BB=E5=9E=8B=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/common/printk.c | 2 +- kernel/common/printk.h | 1 - kernel/exception/gate.h | 6 +++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/kernel/common/printk.c b/kernel/common/printk.c index 4accf7c9..ae7370b9 100644 --- a/kernel/common/printk.c +++ b/kernel/common/printk.c @@ -346,7 +346,7 @@ static int vsprintf(char *buf, const char *fmt, va_list args) if (qualifier == 'l') ip = va_arg(args, long long *); else - ip = va_arg(args, int *); + ip = (ll*)va_arg(args, int *); *ip = str - buf; break; diff --git a/kernel/common/printk.h b/kernel/common/printk.h index 0a8818ef..e31aeca9 100644 --- a/kernel/common/printk.h +++ b/kernel/common/printk.h @@ -122,4 +122,3 @@ static void putchar(unsigned int *fb, int Xsize, int x, int y, unsigned int FRco #define printk(...) printk_color( WHITE, BLACK, __VA_ARGS__ ) int printk_color(unsigned int FRcolor, unsigned int BKcolor, const char*fmt, ...); - diff --git a/kernel/exception/gate.h b/kernel/exception/gate.h index a83a9cee..568812d0 100644 --- a/kernel/exception/gate.h +++ b/kernel/exception/gate.h @@ -76,7 +76,7 @@ void set_gate(ul *gate_selector_addr, ul attr, unsigned char ist, ul *code_addr) */ void set_intr_gate(unsigned int n, unsigned char ist, void *addr) { - set_gate(IDT_Table + n, 0x8E, ist, &addr); // p=1,DPL=0, type=E + set_gate((ul*)(IDT_Table + n), 0x8E, ist, (ul*)(&addr)); // p=1,DPL=0, type=E } /** @@ -88,7 +88,7 @@ void set_intr_gate(unsigned int n, unsigned char ist, void *addr) */ void set_trap_gate(unsigned int n, unsigned char ist, void *addr) { - set_gate(IDT_Table + n, 0x8F, ist, &addr); // p=1,DPL=0, type=F + set_gate((ul*)(IDT_Table + n), 0x8F, ist, (ul*)(&addr)); // p=1,DPL=0, type=F } /** @@ -100,7 +100,7 @@ void set_trap_gate(unsigned int n, unsigned char ist, void *addr) */ void set_system_trap_gate(unsigned int n, unsigned char ist, void *addr) { - set_gate(IDT_Table + n, 0xEF, ist, &addr); // p=1,DPL=3, type=F + set_gate((ul*)(IDT_Table + n), 0xEF, ist, (ul*)(&addr)); // p=1,DPL=3, type=F } /**