Windows2000/private/ntos/inc/ppcdef.h
2020-09-30 17:12:32 +02:00

154 lines
4.7 KiB
C

/*++ BUILD Version: 0005 // Increment this if a change has global effects
Copyright (c) 1990 Microsoft Corporation
Module Name:
ppcdef.h
Abstract:
This module is the header file that describes hardware addresses
for a Power PC system.
Author:
David N. Cutler (davec) 26-Nov-1990
Revision History:
Jim Wooldridge (jimw@austin.vnet.ibm.com) PowerPC port
*/
#ifndef _PPCDEF_
#define _PPCDEF_
// Define physical base addresses for system mapping.
#define VIDEO_MEMORY_PHYSICAL_BASE 0x000A0000 // physical base of video memory
#define VIDEO_CONTROL_PHYSICAL_BASE 0x00000000 // physical base of video control
#define CURSOR_CONTROL_PHYSICAL_BASE 0x00000000 // physical base of cursor control
#define SCSI_PHYSICAL_BASE 0x00000000 // physical base os SCSI control
#define FLOPPY_PHYSICAL_BASE 0x000003F0 // physical base of floppy control
#define RTCLOCK_PHYSICAL_BASE 0x00000071 // physical base of realtime clock
#define KEYBOARD_PHYSICAL_BASE 0x00000060 // physical base of keyboard control
#define MOUSE_PHYSICAL_BASE 0x00000060 // physical base of mouse control
#define SERIAL0_PHYSICAL_BASE 0x000003f8 // physical base of serial port 0
#define SERIAL1_PHYSICAL_BASE 0x000002f8 // physical base of serial port 1
#define PARALLEL_PHYSICAL_BASE 0x000003bc // physical base of parallel port
#define NVRAM_PHYSICAL_BASE 0x00000074 // physical base of nonvolatile RAM
#define SOUND_PHYSICAL_BASE 0x00000830 // physical base of sound control
#define PCI_MEMORY_PHYSICAL_BASE 0xC0000000 // physical base of PCI Memory space
// Define the size of the DMA translation table.
#define DMA_TRANSLATION_LIMIT 0x1000 // translation table limit
// DMA channel assignments
#define FLOPPY_CHANNEL 0x2 // Floppy DMA channel
#define CASCADE_CHANNEL 0x4 //
#define AUDIO_PLAYBACK 0x6 // Sound playback data
#define AUDIO_CAPTURE 0x7 // Sound Capture Data
// Define system time increment value.
#define MAXIMUM_INCREMENT 100000 // 10ms.
#define MINIMUM_INCREMENT 10000 // 1ms.
// begin_ntddk begin_nthal
// Interrupt Request Level definitions
#define PASSIVE_LEVEL 0 // Passive release level
#define LOW_LEVEL 0 // Lowest interrupt level
#define APC_LEVEL 1 // APC interrupt level
#define DISPATCH_LEVEL 2 // Dispatcher level
#define PROFILE_LEVEL 27 // timer used for profiling.
#define CLOCK1_LEVEL 28 // Interval clock 1 level - Not used on x86
#define CLOCK2_LEVEL 28 // Interval clock 2 level
#define IPI_LEVEL 29 // Interprocessor interrupt level
#define POWER_LEVEL 30 // Power failure level
#define HIGH_LEVEL 31 // Highest interrupt level
// end_ntddk
// Define PPC interrupt levels IRQL's
#define MAXIMUM_DEVICE_LEVEL 27
#define DECREMENTER_LEVEL CLOCK2_LEVEL
#define MACHINE_CHECK_LEVEL HIGH_LEVEL
// Define kernel dispatch vectors
#define PMI_VECTOR 3
#define MACHINE_CHECK_VECTOR 4
#define EXTERNAL_INTERRUPT_VECTOR 5
#define DECREMENT_VECTOR 7
// Define device interrupt vectors.
#define DEVICE_VECTORS 32
#define PROFILE_VECTOR (0 + DEVICE_VECTORS)
#define TIMER_VECTOR 0
#define KEYBOARD_VECTOR 1 // Keyboard device interrupt vector
#define CASCADE_VECTOR 2 // Cascade interrupt vector
#define SERIAL1_VECTOR 3 // Serial device 2 interrupt vector
#define SERIAL0_VECTOR 4 // Serial device 1 interrupt vector
#define PARALLEL_VECTOR 5 // Parallel device interrupt vector
#define FLOPPY_VECTOR 6 // Floppy device interrupt vector
#define PARALLEL2_VECTOR 7 // Parallel device 2 interrupt vector
#define SHORT_INT_VECTOR 7 // Default for short interrupts
#define RTC_VECTOR 8 // Real time clock interrupt vector
#define ISA_IRQ9_VECTOR 9 // ISA vector
#define SOUND_VECTOR 10 // Sound device interrupt vector
#define ISA_IRQ11_VECTOR 11 // ISA vector
#define MOUSE_VECTOR 12 // Mouse device interrupt vector
#define SCSI_VECTOR 13 // SCSI device interrupt vector
#define ISA_IRQ14_VECTOR 14 // ISA vector
#define PCI_VECTOR 15 // PCI interrupt vector
#define MAXIMUM_DEVICE_VECTOR (15 + DEVICE_VECTORS) // maximum SIO vector
// Define translation table entry structure.
typedef struct _TRANSLATION_ENTRY {
PVOID VirtualAddress;
ULONG PhysicalAddress;
ULONG Index;
} TRANSLATION_ENTRY, *PTRANSLATION_ENTRY;
#endif // _PPCDEF_