From bd1397c2e890c82bd58bb2e6eefa223172b3d632 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 1 Sep 2004 06:00:50 +0000 Subject: [PATCH] Make interrupt.h names more regular. --- src/devices/disk.c | 4 +- src/devices/kbd.c | 2 +- src/devices/timer.c | 4 +- src/lib/debug.c | 2 +- src/lib/lib.c | 2 +- src/threads/interrupt.c | 86 ++++++++++++++++++++--------------------- src/threads/interrupt.h | 16 ++++---- src/threads/synch.c | 8 ++-- src/threads/thread.c | 10 ++--- 9 files changed, 67 insertions(+), 67 deletions(-) diff --git a/src/devices/disk.c b/src/devices/disk.c index 7d44569..dc0c181 100644 --- a/src/devices/disk.c +++ b/src/devices/disk.c @@ -133,7 +133,7 @@ disk_init (void) } /* Register interrupt handler. */ - intr_register (c->irq, 0, IF_OFF, interrupt_handler, c->name); + intr_register (c->irq, 0, INTR_OFF, interrupt_handler, c->name); /* Reset hardware. */ reset_channel (c); @@ -406,7 +406,7 @@ issue_pio_command (struct channel *c, uint8_t command) { /* Interrupts must be enabled or our semaphore will never be up'd by the completion handler. */ - ASSERT (intr_get_level () == IF_ON); + ASSERT (intr_get_level () == INTR_ON); c->expecting_interrupt = true; outb (reg_command (c), command); diff --git a/src/devices/kbd.c b/src/devices/kbd.c index ed52cfa..0bd2d99 100644 --- a/src/devices/kbd.c +++ b/src/devices/kbd.c @@ -14,5 +14,5 @@ irq21_keyboard (struct intr_frame *args UNUSED) void kbd_init (void) { - intr_register (0x21, 0, IF_OFF, irq21_keyboard, "8042 Keyboard"); + intr_register (0x21, 0, INTR_OFF, irq21_keyboard, "8042 Keyboard"); } diff --git a/src/devices/timer.c b/src/devices/timer.c index df38736..4271c73 100644 --- a/src/devices/timer.c +++ b/src/devices/timer.c @@ -30,13 +30,13 @@ timer_init (void) outb (0x40, count & 0xff); outb (0x40, count >> 8); - intr_register (0x20, 0, IF_OFF, irq20_timer, "8254 Timer"); + intr_register (0x20, 0, INTR_OFF, irq20_timer, "8254 Timer"); } int64_t timer_ticks (void) { - enum if_level old_level = intr_disable (); + enum intr_level old_level = intr_disable (); int64_t t = ticks; intr_set_level (old_level); return t; diff --git a/src/lib/debug.c b/src/lib/debug.c index 3d9a9b1..9fbf206 100644 --- a/src/lib/debug.c +++ b/src/lib/debug.c @@ -53,7 +53,7 @@ debug_message (const char *file, int line, const char *function, { va_list args; - enum if_level old_level = intr_disable (); + enum intr_level old_level = intr_disable (); printk ("%s:%d: %s(): ", file, line, function); va_start (args, message); vprintk (message, args); diff --git a/src/lib/lib.c b/src/lib/lib.c index 6e676cd..c88c4a6 100644 --- a/src/lib/lib.c +++ b/src/lib/lib.c @@ -245,7 +245,7 @@ vprintk_helper (char ch, void *aux UNUSED) void vprintk (const char *format, va_list args) { - enum if_level old_level = intr_disable (); + enum intr_level old_level = intr_disable (); vprintf_core (format, args, vprintk_helper, NULL); intr_set_level (old_level); } diff --git a/src/threads/interrupt.c b/src/threads/interrupt.c index 9f71b8c..9020b0e 100644 --- a/src/threads/interrupt.c +++ b/src/threads/interrupt.c @@ -9,39 +9,39 @@ #include "thread.h" #include "timer.h" -enum if_level +enum intr_level intr_get_level (void) { uint32_t flags; asm ("pushfl; popl %0" : "=g" (flags)); - return flags & (1 << 9) ? IF_ON : IF_OFF; + return flags & (1 << 9) ? INTR_ON : INTR_OFF; } -enum if_level -intr_set_level (enum if_level level) +enum intr_level +intr_set_level (enum intr_level level) { - enum if_level old_level = intr_get_level (); - if (level == IF_ON) + enum intr_level old_level = intr_get_level (); + if (level == INTR_ON) intr_enable (); else intr_disable (); return old_level; } -enum if_level +enum intr_level intr_enable (void) { - enum if_level old_level = intr_get_level (); + enum intr_level old_level = intr_get_level (); asm volatile ("sti"); return old_level; } -enum if_level +enum intr_level intr_disable (void) { - enum if_level old_level = intr_get_level (); + enum intr_level old_level = intr_get_level (); asm volatile ("cli"); return old_level; } @@ -123,7 +123,7 @@ intr_handler (struct intr_frame *args) bool external = args->vec_no >= 0x20 && args->vec_no < 0x30; if (external) { - ASSERT (intr_get_level () == IF_OFF); + ASSERT (intr_get_level () == INTR_OFF); ASSERT (!intr_context ()); intr_in_progress = true; yield_on_return = false; @@ -133,7 +133,7 @@ intr_handler (struct intr_frame *args) if (external) { - ASSERT (intr_get_level () == IF_OFF); + ASSERT (intr_get_level () == INTR_OFF); ASSERT (intr_context ()); intr_in_progress = false; pic_eoi (args->vec_no); @@ -156,8 +156,8 @@ intr_yield_on_return (void) yield_on_return = true; } -intr_handler_func intr_panic NO_RETURN; -intr_handler_func intr_kill NO_RETURN; +static intr_handler_func panic NO_RETURN; +static intr_handler_func kill NO_RETURN; static uint64_t make_gate (void (*target) (void), int dpl, enum seg_type type) @@ -186,18 +186,18 @@ make_trap_gate (void (*target) (void), int dpl) } void -intr_register (uint8_t vec_no, int dpl, enum if_level level, +intr_register (uint8_t vec_no, int dpl, enum intr_level level, intr_handler_func *handler, const char *name) { /* Interrupts generated by external hardware (0x20 <= VEC_NO <= - 0x2f) should specify IF_OFF for LEVEL. Otherwise a timer + 0x2f) should specify INTR_OFF for LEVEL. Otherwise a timer interrupt could cause a task switch during interrupt handling. Most other interrupts can and should be handled with interrupts enabled. */ - ASSERT (vec_no < 0x20 || vec_no > 0x2f || level == IF_OFF); + ASSERT (vec_no < 0x20 || vec_no > 0x2f || level == INTR_OFF); - if (level == IF_ON) + if (level == INTR_ON) idt[vec_no] = make_trap_gate (intr_stubs[vec_no], dpl); else idt[vec_no] = make_intr_gate (intr_stubs[vec_no], dpl); @@ -215,33 +215,33 @@ intr_init (void) /* Install default handlers. */ for (i = 0; i < 256; i++) - intr_register (i, 0, IF_OFF, intr_panic, NULL); + intr_register (i, 0, INTR_OFF, panic, NULL); /* Most exceptions require ring 0. Exceptions 3, 4, and 5 can be caused by ring 3 directly. */ - intr_register (0, 0, IF_ON, intr_kill, "#DE Divide Error"); - intr_register (1, 0, IF_ON, intr_kill, "#DB Debug Exception"); - intr_register (2, 0, IF_ON, intr_panic, "NMI Interrupt"); - intr_register (3, 3, IF_ON, intr_kill, "#BP Breakpoint Exception"); - intr_register (4, 3, IF_ON, intr_kill, "#OF Overflow Exception"); - intr_register (5, 3, IF_ON, intr_kill, "#BR BOUND Range Exceeded Exception"); - intr_register (6, 0, IF_ON, intr_kill, "#UD Invalid Opcode Exception"); - intr_register (7, 0, IF_ON, intr_kill, "#NM Device Not Available Exception"); - intr_register (8, 0, IF_ON, intr_panic, "#DF Double Fault Exception"); - intr_register (9, 0, IF_ON, intr_panic, "Coprocessor Segment Overrun"); - intr_register (10, 0, IF_ON, intr_panic, "#TS Invalid TSS Exception"); - intr_register (11, 0, IF_ON, intr_kill, "#NP Segment Not Present"); - intr_register (12, 0, IF_ON, intr_kill, "#SS Stack Fault Exception"); - intr_register (13, 0, IF_ON, intr_kill, "#GP General Protection Exception"); - intr_register (16, 0, IF_ON, intr_kill, "#MF x87 FPU Floating-Point Error"); - intr_register (17, 0, IF_ON, intr_panic, "#AC Alignment Check Exception"); - intr_register (18, 0, IF_ON, intr_panic, "#MC Machine-Check Exception"); - intr_register (19, 0, IF_ON, intr_kill, "#XF SIMD Floating-Point Exception"); + intr_register (0, 0, INTR_ON, kill, "#DE Divide Error"); + intr_register (1, 0, INTR_ON, kill, "#DB Debug Exception"); + intr_register (2, 0, INTR_ON, panic, "NMI Interrupt"); + intr_register (3, 3, INTR_ON, kill, "#BP Breakpoint Exception"); + intr_register (4, 3, INTR_ON, kill, "#OF Overflow Exception"); + intr_register (5, 3, INTR_ON, kill, "#BR BOUND Range Exceeded Exception"); + intr_register (6, 0, INTR_ON, kill, "#UD Invalid Opcode Exception"); + intr_register (7, 0, INTR_ON, kill, "#NM Device Not Available Exception"); + intr_register (8, 0, INTR_ON, panic, "#DF Double Fault Exception"); + intr_register (9, 0, INTR_ON, panic, "Coprocessor Segment Overrun"); + intr_register (10, 0, INTR_ON, panic, "#TS Invalid TSS Exception"); + intr_register (11, 0, INTR_ON, kill, "#NP Segment Not Present"); + intr_register (12, 0, INTR_ON, kill, "#SS Stack Fault Exception"); + intr_register (13, 0, INTR_ON, kill, "#GP General Protection Exception"); + intr_register (16, 0, INTR_ON, kill, "#MF x87 FPU Floating-Point Error"); + intr_register (17, 0, INTR_ON, panic, "#AC Alignment Check Exception"); + intr_register (18, 0, INTR_ON, panic, "#MC Machine-Check Exception"); + intr_register (19, 0, INTR_ON, kill, "#XF SIMD Floating-Point Exception"); /* Most exceptions can be handled with interrupts turned on. We need to disable interrupts for page faults because the fault address is stored in CR2 and needs to be preserved. */ - intr_register (14, 0, IF_OFF, intr_kill, "#PF Page-Fault Exception"); + intr_register (14, 0, INTR_OFF, kill, "#PF Page-Fault Exception"); idtr_operand = make_dtr_operand (sizeof idt - 1, idt); asm volatile ("lidt %0" :: "m" (idtr_operand)); @@ -265,15 +265,15 @@ dump_intr_frame (struct intr_frame *f) f->cs, f->ds, f->es, f->cs != SEL_KCSEG ? f->ss : ss); } -void -intr_panic (struct intr_frame *regs) +static void +panic (struct intr_frame *regs) { dump_intr_frame (regs); PANIC ("Panic!"); } -void -intr_kill (struct intr_frame *f) +static void +kill (struct intr_frame *f) { switch (f->cs) { @@ -286,7 +286,7 @@ intr_kill (struct intr_frame *f) case SEL_KCSEG: printk ("Kernel bug - unexpected interrupt in kernel context\n"); - intr_panic (f); + panic (f); default: printk ("Interrupt %#04x (%s) in unknown segment %04x\n", diff --git a/src/threads/interrupt.h b/src/threads/interrupt.h index 5fa67b2..e7cd635 100644 --- a/src/threads/interrupt.h +++ b/src/threads/interrupt.h @@ -4,16 +4,16 @@ #include #include -enum if_level +enum intr_level { - IF_OFF, /* Interrupts disabled. */ - IF_ON /* Interrupts enabled. */ + INTR_OFF, /* Interrupts disabled. */ + INTR_ON /* Interrupts enabled. */ }; -enum if_level intr_get_level (void); -enum if_level intr_set_level (enum if_level); -enum if_level intr_enable (void); -enum if_level intr_disable (void); +enum intr_level intr_get_level (void); +enum intr_level intr_set_level (enum intr_level); +enum intr_level intr_enable (void); +enum intr_level intr_disable (void); struct intr_frame { @@ -44,7 +44,7 @@ struct intr_frame typedef void intr_handler_func (struct intr_frame *); void intr_init (void); -void intr_register (uint8_t vec, int dpl, enum if_level, intr_handler_func *, +void intr_register (uint8_t vec, int dpl, enum intr_level, intr_handler_func *, const char *name); bool intr_context (void); void intr_yield_on_return (void); diff --git a/src/threads/synch.c b/src/threads/synch.c index b304244..ea38068 100644 --- a/src/threads/synch.c +++ b/src/threads/synch.c @@ -40,7 +40,7 @@ sema_init (struct semaphore *sema, unsigned value, const char *name) void sema_down (struct semaphore *sema) { - enum if_level old_level; + enum intr_level old_level; ASSERT (sema != NULL); ASSERT (!intr_context ()); @@ -64,7 +64,7 @@ sema_down (struct semaphore *sema) void sema_up (struct semaphore *sema) { - enum if_level old_level; + enum intr_level old_level; ASSERT (sema != NULL); @@ -154,7 +154,7 @@ lock_init (struct lock *lock, const char *name) void lock_acquire (struct lock *lock) { - enum if_level old_level; + enum intr_level old_level; ASSERT (lock != NULL); ASSERT (!intr_context ()); @@ -174,7 +174,7 @@ lock_acquire (struct lock *lock) void lock_release (struct lock *lock) { - enum if_level old_level; + enum intr_level old_level; ASSERT (lock != NULL); ASSERT (lock_held_by_current_thread (lock)); diff --git a/src/threads/thread.c b/src/threads/thread.c index 540041d..4b84803 100644 --- a/src/threads/thread.c +++ b/src/threads/thread.c @@ -43,7 +43,7 @@ void schedule_tail (struct thread *prev); void thread_init (void) { - ASSERT (intr_get_level () == IF_OFF); + ASSERT (intr_get_level () == INTR_OFF); /* Initialize run queue. */ list_init (&run_queue); @@ -220,7 +220,7 @@ void thread_yield (void) { struct thread *cur = thread_current (); - enum if_level old_level; + enum intr_level old_level; ASSERT (!intr_context ()); @@ -237,7 +237,7 @@ void thread_sleep (void) { ASSERT (!intr_context ()); - ASSERT (intr_get_level () == IF_OFF); + ASSERT (intr_get_level () == INTR_OFF); thread_current ()->status = THREAD_BLOCKED; schedule (); @@ -357,7 +357,7 @@ schedule_tail (struct thread *prev) { struct thread *cur = thread_current (); - ASSERT (intr_get_level () == IF_OFF); + ASSERT (intr_get_level () == INTR_OFF); cur->status = THREAD_RUNNING; if (prev != NULL && prev->status == THREAD_DYING) @@ -378,7 +378,7 @@ schedule (void) struct thread *cur = thread_current (); struct thread *next = next_thread_to_run (); - ASSERT (intr_get_level () == IF_OFF); + ASSERT (intr_get_level () == INTR_OFF); ASSERT (cur->status != THREAD_RUNNING); ASSERT (is_thread (next)); -- 2.30.2