Windows2000/private/ntos/ke/i386/alr.inc
2020-09-30 17:12:32 +02:00

69 lines
2.1 KiB
PHP

; Copyright (c) 1989 Microsoft Corporation
; Module Name:
; alr.inc
; Abstract:
; This inlcude file defines all the equates and macros specifically
; used for ALR Multiprocessor system implementation.
; Author:
; Shie-Lin Tzong (shielint) 29-Oct-1990
; Environment:
; Kernel mode only.
; Virtual address map for ALR CBUS IO and address space
; CBUS memory address space starting from 64MB to (128MB - 1)
; CBUS IO space starting from 128MB to (192MB - 1). We are interested
; in the first 4MB only (at least for now).
CBUS_ADDR_START_PHYS equ 4000000h
CBUS_IO_SPACE_START equ 90000000h
CBUS_IO_SPACE_START_PHYS equ 8000000h
CBUS_IO_SPACE_SIZE equ 400000h
;CPU ID for CBUS PEs and common functions for PEs
ALLCPUID equ 0Fh ; ID to address all the slaves
BASECPUID equ 0Eh ; Base CPU ID
PE_CRESET equ 0 ; Clear Reset
PE_SRESET equ 1 ; Set Reset
PE_CONTEND equ 2 ; Contend (Place slot number on ARB0-3
; lines)
PE_SETIDA equ 3 ; Set ID value on winning processor
PE_CSWI equ 4 ; Clear software interrupt
PE_SSWI equ 5 ; Set software interrupt
PE_CNMI equ 6 ; Clear NMI
PE_SNMI equ 7 ; Set NMI
PE_SLED equ 8 ; Set LED
PE_CLED equ 9 ; Clear LED
; Miscs CBUS definitions
ArbitrateRegister equ 0F1h
ArbitrateMask equ 0Fh ; Lower 4 bits of Arbitrate Register
; Macros to access CBUS I/O space
; CBUS_IO_ACCESS func, cpuid
; func - the function which will be applied to PEs
; cpuid - the desired PE. If not specified, the cpuid is in AL register.
CBUS_IO_ACCESS macro func, cpuid
ifnb <cpuid>
mov eax, (cpuid SHL 18) + CBUS_IO_SPACE_START + (func SHL 4)
else
movzx eax, al
shl eax, 18
add eax, CBUS_IO_SPACE_START + (func SHL 4)
endif
or byte ptr [eax], 0ffh
endm