aboutsummaryrefslogtreecommitdiff
path: root/i686
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2023-06-29 21:45:11 +0300
committeraqua <aqua@iserlohn-fortress.net>2023-06-29 21:45:11 +0300
commiteb84566d236df6b0dd4f5ce8fc47d66e55e33654 (patch)
tree7e03ca126781c67336edf9f3ce6888aad23f74e4 /i686
parentRework leaf makefiles to be included from top-level (diff)
downloadkernel-eb84566d236df6b0dd4f5ce8fc47d66e55e33654.tar.xz
Fix compiler warnings
Diffstat (limited to 'i686')
-rw-r--r--i686/lgdt.c2
-rw-r--r--i686/lidt.c6
-rw-r--r--i686/sys/io.h2
3 files changed, 5 insertions, 5 deletions
diff --git a/i686/lgdt.c b/i686/lgdt.c
index d1b24c3..473a91d 100644
--- a/i686/lgdt.c
+++ b/i686/lgdt.c
@@ -10,11 +10,11 @@ static struct SegmentDescriptor_t segments[8] __attribute__((aligned(32)));
void
gdt_install()
{
+ const struct Pointer ptr = {sizeof(segments) - 1, (unsigned)&segments};
SegmentDescriptor(&segments[0], 0, 0, 0); /* null segment */
SegmentDescriptor(&segments[2], 0, 0xffffffff, 0x9a); /* ktext segment */
SegmentDescriptor(&segments[3], 0, 0xffffffff, 0x92); /* kdata segment */
- const struct Pointer ptr = {.limit = sizeof(segments) - 1, .base = (unsigned)&segments};
__asm__("lgdt (%0)" : : "a"(&ptr));
/* load the kernel data segment */
diff --git a/i686/lidt.c b/i686/lidt.c
index 3260eb9..86567f8 100644
--- a/i686/lidt.c
+++ b/i686/lidt.c
@@ -8,7 +8,7 @@ struct __attribute__((packed)) Pointer {
enum Type {
Null = 0,
- Intr = 0x8e, /* 1000 1110 32-bit interrupt */
+ Intr = 0x8e /* 1000 1110 32-bit interrupt */
};
struct __attribute__((packed)) Gate_t {
@@ -25,7 +25,7 @@ Gate(struct Gate_t *entry, void (*f)(struct interrupt_frame *), uint16_t selecto
{
uint32_t f_addr = (uint32_t)f;
entry->offset_15_0 = f_addr & 0xffff;
- entry->offset_31_16 = (f_addr >> 16) & 0xffff;
+ entry->offset_31_16 = (uint16_t)(f_addr >> 16) & 0xffff;
entry->selector = selector;
entry->__unused = 0;
entry->type = Intr;
@@ -37,6 +37,7 @@ void
idt_install()
{
int i;
+ const struct Pointer ptr = {sizeof(interrupt_table) - 1, (unsigned)&interrupt_table};
/* exceptions 0x00~0x13 */
for (i = 0; i <= 0x13; ++i) Gate(&interrupt_table[i], &abort_handler, 0x10);
@@ -50,6 +51,5 @@ idt_install()
/* syscall 0x80 */
Gate(&interrupt_table[0x80], &syscall_handler, 0x10);
- const struct Pointer ptr = {.limit = sizeof(interrupt_table) - 1, .base = (unsigned)&interrupt_table};
__asm__("lidt (%0)" : : "a"(&ptr));
}
diff --git a/i686/sys/io.h b/i686/sys/io.h
index 403dc54..4ff5d85 100644
--- a/i686/sys/io.h
+++ b/i686/sys/io.h
@@ -9,7 +9,7 @@ enum UART {
COM5 = 0x5f8,
COM6 = 0x4f8,
COM7 = 0x5e8,
- COM8 = 0x4e8,
+ COM8 = 0x4e8
};
static __inline__ void