summaryrefslogtreecommitdiffstats
path: root/private/ntos/inc/ppcdef.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/inc/ppcdef.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/ntos/inc/ppcdef.h')
-rw-r--r--private/ntos/inc/ppcdef.h153
1 files changed, 153 insertions, 0 deletions
diff --git a/private/ntos/inc/ppcdef.h b/private/ntos/inc/ppcdef.h
new file mode 100644
index 000000000..ae5e174aa
--- /dev/null
+++ b/private/ntos/inc/ppcdef.h
@@ -0,0 +1,153 @@
+/*++ 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_