Windows NT 4.0 source code leak
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

/*++
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]
};