| version 1.22, 2012/06/07 04:37:09 |
version 1.23, 2012/08/31 13:12:52 |
| Line 352 intr_typename(int type) |
|
| Line 352 intr_typename(int type) |
|
| static void |
static void |
| intr_calculatemasks(void) |
intr_calculatemasks(void) |
| { |
{ |
| imask_t newmask[NIPL] = { [IPL_NONE...IPL_HIGH] = 0 }; |
imask_t newmask[NIPL]; |
| struct intr_source *is; |
struct intr_source *is; |
| |
struct intrhand *ih; |
| int irq; |
int irq; |
| |
|
| for (u_int ipl = IPL_NONE; ipl < NIPL; ipl++) { |
for (u_int ipl = IPL_NONE; ipl < NIPL; ipl++) { |
| Line 362 intr_calculatemasks(void) |
|
| Line 363 intr_calculatemasks(void) |
|
| |
|
| /* First, figure out which ipl each IRQ uses. */ |
/* First, figure out which ipl each IRQ uses. */ |
| for (irq = 0, is = intrsources; irq < NVIRQ; irq++, is++) { |
for (irq = 0, is = intrsources; irq < NVIRQ; irq++, is++) { |
| newmask[is->is_ipl] |= PIC_VIRQ_TO_MASK(irq); |
for (ih = is->is_hand; ih != NULL; ih = ih->ih_next) { |
| |
newmask[ih->ih_ipl] |= PIC_VIRQ_TO_MASK(irq); |
| |
} |
| } |
} |
| |
|
| /* |
/* |
| Line 379 intr_calculatemasks(void) |
|
| Line 382 intr_calculatemasks(void) |
|
| newmask[ipl] |= newmask[ipl - 1]; |
newmask[ipl] |= newmask[ipl - 1]; |
| } |
} |
| |
|
| #ifdef DEBUG_IPL |
#ifdef PIC_DEBUG |
| for (u_int ipl = 0; ipl < NIPL; ipl++) { |
for (u_int ipl = 0; ipl < NIPL; ipl++) { |
| printf("%u: %08x -> %08x\n", ipl, imask[ipl], newmask[ipl]); |
printf("%u: %08x -> %08x\n", ipl, imask[ipl], newmask[ipl]); |
| } |
} |
| Line 661 spllower(int ncpl) |
|
| Line 664 spllower(int ncpl) |
|
| void |
void |
| genppc_cpu_configure(void) |
genppc_cpu_configure(void) |
| { |
{ |
| aprint_normal("biomask %x netmask %x ttymask %x\n", |
aprint_normal("vmmask %x schedmask %x highmask %x\n", |
| (u_int)imask[IPL_BIO] & 0x1fffffff, |
(u_int)imask[IPL_VM] & 0x7fffffff, |
| (u_int)imask[IPL_NET] & 0x1fffffff, |
(u_int)imask[IPL_SCHED] & 0x7fffffff, |
| (u_int)imask[IPL_TTY] & 0x1fffffff); |
(u_int)imask[IPL_HIGH] & 0x7fffffff); |
| |
|
| spl0(); |
spl0(); |
| } |
} |