mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.3 KiB
103 lines
3.3 KiB
/*++
|
|
|
|
Copyright (c) 1995 International Business Machines Corporation
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
vectirql.h
|
|
|
|
Abstract:
|
|
|
|
This module implements machine specific interrupt functions
|
|
for IBM's PowerPC Machines.
|
|
|
|
Code in this module was largely gathered from other modules
|
|
in earlier versions of the HAL.
|
|
|
|
Author:
|
|
|
|
Chris Karamatas - Collected VectorToIrql Tables into one file.
|
|
|
|
Environment:
|
|
|
|
Kernel mode.
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
|
|
|
|
//
|
|
// The following table maps Interrupt Vectors to the appropriate
|
|
// IRQL. The MPIC is initialized to assign vectors 16 thru 31
|
|
// to its sources 0 thru 15. The 8259 gives us vectors 0 thru 15.
|
|
//
|
|
// It is possible that we are actually dealing with a Hydra, which
|
|
// is an MPIC with sources 0 through 19, so we have extra entries
|
|
// in the table.
|
|
//
|
|
// The MPIC is also programmed with priority in ascending order by
|
|
// vector (and source).
|
|
//
|
|
// This table should reflect the real mapping of vector to device
|
|
// priority. This implementation assumes that all MPIC sources
|
|
// are at a higher priority than 8259 sources.
|
|
//
|
|
|
|
UCHAR HalpVectorToIrql[40] = {
|
|
|
|
// 8259 Master, Priority 1 - 2
|
|
|
|
18, // 0 Timer 1 Counter 0
|
|
17, // 1 Keyboard
|
|
16, // 2 Cascade (not translated)
|
|
|
|
7, // 3 Com 2
|
|
6, // 4 Com 1
|
|
5, // 5 Audio
|
|
4, // 6 Floppy
|
|
3, // 7 Parallel Port
|
|
|
|
// 8259 Slave, Priority 3-10
|
|
|
|
15, // 8 RTC
|
|
14, // 9 Audio (MIDI), ISA Slots pin B04
|
|
13, // 10 ISA Slots pin D03
|
|
12, // 11 ISA Slots pin D04
|
|
11, // 12 Mouse, ISA Slots pin D05
|
|
10, // 13 Power Management Interrupt
|
|
9, // 14 ISA Slots pin D07
|
|
8, // 15 ISA Slots pin D06
|
|
|
|
// MPIC Sources - The following values are chosen arbitarily. Support
|
|
// should be added to reprogram the MPIC and this table
|
|
// once the device configuration is known.
|
|
|
|
0, // 0 8259 interrupt, will get from above
|
|
19, // 1
|
|
20, // 2
|
|
20, // 3
|
|
21, // 4
|
|
21, // 5
|
|
22, // 6
|
|
22, // 7
|
|
23, // 8
|
|
23, // 9
|
|
24, // 10
|
|
24, // 11
|
|
25, // 12
|
|
25, // 13
|
|
26, // 14
|
|
26, // 15
|
|
26, // 16 Possible Hydra interrupt source
|
|
26, // 17 Hydra
|
|
26, // 18 Hydra
|
|
26, // 19 Hydra
|
|
IPI_LEVEL, // 36 Reserved, PLUS IPI[0]
|
|
IPI_LEVEL, // 37 Reserved, PLUS IPI[1]
|
|
IPI_LEVEL, // 38 Reserved, PLUS IPI[2]
|
|
IPI_LEVEL, // 39 Reserved, PLUS IPI[3]
|
|
};
|
|
|