xv6

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 8b75366ce4ae7ad5f77225b247d097955574ba0b
parent 27ff8f0e6f56e5f84688bcd41a7b4018b4e61173
Author: Russ Cox <rsc@swtch.com>
Date:   Sat, 11 Jul 2009 18:17:32 -0700

s/IRQ_OFFSET/T_IRQ0/: it's a trap number, not an irq number.
move the SYSCALL number up, so does not overlap the IRQ traps.

Diffstat:
Mtrap.c | 14+++++++-------
Mtraps.h | 5+++--
2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/trap.c b/trap.c @@ -45,7 +45,7 @@ trap(struct trapframe *tf) } switch(tf->trapno){ - case IRQ_OFFSET + IRQ_TIMER: + case T_IRQ0 + IRQ_TIMER: if(cpu() == 0){ acquire(&tickslock); ticks++; @@ -54,20 +54,20 @@ trap(struct trapframe *tf) } lapiceoi(); break; - case IRQ_OFFSET + IRQ_IDE: + case T_IRQ0 + IRQ_IDE: ideintr(); lapiceoi(); break; - case IRQ_OFFSET + IRQ_KBD: + case T_IRQ0 + IRQ_KBD: kbdintr(); lapiceoi(); break; - case IRQ_OFFSET + IRQ_COM1: + case T_IRQ0 + IRQ_COM1: uartintr(); lapiceoi(); break; - case IRQ_OFFSET + 7: - case IRQ_OFFSET + IRQ_SPURIOUS: + case T_IRQ0 + 7: + case T_IRQ0 + IRQ_SPURIOUS: cprintf("cpu%d: spurious interrupt at %x:%x\n", cpu(), tf->cs, tf->eip); lapiceoi(); @@ -94,7 +94,7 @@ trap(struct trapframe *tf) // Force process to give up CPU on clock tick. // If interrupts were on while locks held, would need to check nlock. - if(cp && cp->state == RUNNING && tf->trapno == IRQ_OFFSET+IRQ_TIMER) + if(cp && cp->state == RUNNING && tf->trapno == T_IRQ0+IRQ_TIMER) yield(); // Check if the process has been killed since we yielded diff --git a/traps.h b/traps.h @@ -24,10 +24,10 @@ // These are arbitrarily chosen, but with care not to overlap // processor defined exceptions or interrupt vectors. -#define T_SYSCALL 48 // system call +#define T_SYSCALL 64 // system call #define T_DEFAULT 500 // catchall -#define IRQ_OFFSET 32 // IRQ 0 corresponds to int IRQ_OFFSET +#define T_IRQ0 32 // IRQ 0 corresponds to int T_IRQ #define IRQ_TIMER 0 #define IRQ_KBD 1 @@ -35,3 +35,4 @@ #define IRQ_IDE 14 #define IRQ_ERROR 19 #define IRQ_SPURIOUS 31 +