/*++ Copyright (c) 1990 Microsoft Corporation Copyright (c) 1992, 1993 Digital Equipment Corporation Module Name: genalpha.c Abstract: This module implements a program which generates ALPHA machine dependent structure offset definitions for kernel structures that are accessed in assembly code. Author: David N. Cutler (davec) 27-Mar-1990 Joe Notarangelo 26-Mar-1992 Revision History: Thomas Van Baak (tvb) 10-Jul-1992 Modified CONTEXT, TRAP, and EXCEPTION frames according to the new Alpha calling standard. Forrest Foltz (forrestf) 24-Jan-1998 Modified format to use new obj-based procedure. --*/ #include "ki.h" #pragma hdrstop #define HEADER_FILE #include "excpt.h" #include "ntdef.h" #include "ntkeapi.h" #include "ntalpha.h" #include "ntimage.h" #include "ntseapi.h" #include "ntobapi.h" #include "ntlpcapi.h" #include "ntioapi.h" #include "ntmmapi.h" #include "ntldr.h" #include "ntpsapi.h" #include "ntpoapi.h" #include "ntexapi.h" #include "ntnls.h" #include "nturtl.h" #include "ntcsrmsg.h" #include "ntcsrsrv.h" #include "ntxcapi.h" #include "arc.h" #include "ntstatus.h" #include "kxalpha.h" #include "stdarg.h" #include "setjmp.h" #include "alphaops.h" #include "fwcallbk.h" include(`..\genxx.h') #define KSALPHA SEF_KERNEL #define HALALPHA SEF_HAL // // Helper macro for call pal functions // #define genPal(CALLPAL) \ genStr("#define "CALLPAL##_STR" 0x%lx\n", CALLPAL) // // Bitmask definitions here // #if defined(_AXP64_) startBitStruc( HARDWARE_PTE, KSALPHA ) genBitField( Valid, PTE_VALID ) genBitField( Reserved1 ) genBitField( FaultOnWrite, PTE_FOW ) genBitField( Reserved2 ) genBitField( Global, PTE_GLOBAL ) genBitField( GranularityHint, PTE_GH ) genBitField( Reserved3 ) genBitField( KernelReadAccess, PTE_KRE ) genBitField( UserReadAccess, PTE_URE ) genBitField( Reserved4 ) genBitField( KernelWriteAccess, PTE_KWE ) genBitField( UserWriteAccess, PTE_UWE ) genBitField( Reserved5 ) genBitField( Write , PTE_WRITE ) genBitField( CopyOnWrite, PTE_COPY_ON_WRITE ) genBitField( Software, PTE_SOFTWARE ) genBitField( PageFrameNumber, PTE_PFN ) #else startBitStruc(HARDWARE_PTE, KSALPHA) genBitField(Valid, PTE_VALID) genBitField(Owner, PTE_OWNER) genBitField(Dirty, PTE_DIRTY) genBitField(reserved) genBitField(Global, PTE_GLOBAL) genBitField(GranularityHint) genBitField(Write, PTE_WRITE) genBitField(CopyOnWrite, PTE_COPYONWRITE) genBitField(PageFrameNumber, PTE_PFN) #endif startBitStruc(PSR, KSALPHA) genBitField(MODE, PSR_MODE) genBitAlias(PSR_USER_MODE) genBitField(INTERRUPT_ENABLE, PSR_IE) genBitField(IRQL, PSR_IRQL) startBitStruc(IE, KSALPHA) genBitField(SoftwareInterruptEnables, IE_SFW) genBitField(HardwareInterruptEnables, IE_HDW) startBitStruc(MCHK_STATUS, KSALPHA | HALALPHA) genBitField(Correctable, MCHK_CORRECTABLE) genBitField(Retryable, MCHK_RETRYABLE) startBitStruc(MCES, KSALPHA | HALALPHA) genBitField(MachineCheck, MCES_MCK) genBitField(SystemCorrectable, MCES_SCE) genBitField(ProcessorCorrectable, MCES_PCE) genBitField(DisableProcessorCorrectable, MCES_DPC) genBitField(DisableSystemCorrectable, MCES_DSC) genBitField(DisableMachineChecks, MCES_DMCK) startBitStruc(EXC_SUM, KSALPHA) genBitField(SoftwareCompletion, EXCSUM_SWC) genBitField(InvalidOperation, EXCSUM_INV) genBitField(DivisionByZero, EXCSUM_DZE) genBitField(Overflow, EXCSUM_OVF) genBitField(Underflow, EXCSUM_UNF) genBitField(InexactResult, EXCSUM_INE) genBitField(IntegerOverflow, EXCSUM_IOV) // // Element description array is here // STRUC_ELEMENT ElementList[] = { START_LIST // // Output include statement for ALPHA architecture static definitions. // EnableInc(KSALPHA | HALALPHA) genTxt("#include \"kxalpha.h\"\n") DisableInc(HALALPHA) // // Include architecture independent definitions. // #include "..\genxx.inc" // // Generate architecture dependent definitions. // // Processor control register structure definitions. // EnableInc(HAL) genCom("Processor Control Registers Structure Offset Definitions") genNam(PCR_MINOR_VERSION) genNam(PCR_MAJOR_VERSION) genDef(Pc, KPCR, MinorVersion) genDef(Pc, KPCR, MajorVersion) genDef(Pc, KPCR, PalBaseAddress) genDef(Pc, KPCR, PalMajorVersion) genDef(Pc, KPCR, PalMinorVersion) genDef(Pc, KPCR, PalSequenceVersion) genDef(Pc, KPCR, PalMajorSpecification) genDef(Pc, KPCR, PalMinorSpecification) genDef(Pc, KPCR, FirmwareRestartAddress) genDef(Pc, KPCR, RestartBlock) genDef(Pc, KPCR, PalReserved) genDef(Pc, KPCR, PalAlignmentFixupCount) genDef(Pc, KPCR, PanicStack) genDef(Pc, KPCR, ProcessorType) genDef(Pc, KPCR, ProcessorRevision) genDef(Pc, KPCR, PhysicalAddressBits) genDef(Pc, KPCR, MaximumAddressSpaceNumber) genDef(Pc, KPCR, PageSize) genDef(Pc, KPCR, FirstLevelDcacheSize) genDef(Pc, KPCR, FirstLevelDcacheFillSize) genDef(Pc, KPCR, FirstLevelIcacheSize) genDef(Pc, KPCR, FirstLevelIcacheFillSize) genDef(Pc, KPCR, FirmwareRevisionId) genDef(Pc, KPCR, SystemType) genDef(Pc, KPCR, SystemVariant) genDef(Pc, KPCR, SystemRevision) genDef(Pc, KPCR, SystemSerialNumber) genDef(Pc, KPCR, CycleClockPeriod) genDef(Pc, KPCR, SecondLevelCacheSize) genDef(Pc, KPCR, SecondLevelCacheFillSize) genDef(Pc, KPCR, ThirdLevelCacheSize) genDef(Pc, KPCR, ThirdLevelCacheFillSize) genDef(Pc, KPCR, FourthLevelCacheSize) genDef(Pc, KPCR, FourthLevelCacheFillSize) genDef(Pc, KPCR, Prcb) genDef(Pc, KPCR, Number) genDef(Pc, KPCR, SetMember) genDef(Pc, KPCR, HalReserved) genDef(Pc, KPCR, IrqlTable) genDef(Pc, KPCR, IrqlMask) genDef(Pc, KPCR, InterruptRoutine) genDef(Pc, KPCR, ReservedVectors) genDef(Pc, KPCR, MachineCheckError) genDef(Pc, KPCR, DpcStack) genDef(Pc, KPCR, NotMember) genDef(Pc, KPCR, CurrentPid) genDef(Pc, KPCR, SystemServiceDispatchStart) genDef(Pc, KPCR, SystemServiceDispatchEnd) genDef(Pc, KPCR, IdleThread) genVal(ProcessorControlRegisterLength, ROUND_UP(sizeof(KPCR), 16)) genNamUint(SharedUserData) genDef(Us, KUSER_SHARED_DATA, TickCountLow) genDef(Us, KUSER_SHARED_DATA, TickCountMultiplier) genDef(Us, KUSER_SHARED_DATA, InterruptTime) genDef(Us, KUSER_SHARED_DATA, SystemTime) // // Processor block structure definitions. // genCom("Processor Block Structure Offset Definitions") genNam(PRCB_MINOR_VERSION) genNam(PRCB_MAJOR_VERSION) genDef(Pb, KPRCB, MinorVersion) genDef(Pb, KPRCB, MajorVersion) genDef(Pb, KPRCB, CurrentThread) genDef(Pb, KPRCB, NextThread) genDef(Pb, KPRCB, IdleThread) genDef(Pb, KPRCB, Number) genDef(Pb, KPRCB, BuildType) genDef(Pb, KPRCB, SetMember) genDef(Pb, KPRCB, RestartBlock) DisableInc(HALALPHA) genDef(Pb, KPRCB, InterruptCount) genDef(Pb, KPRCB, DpcTime) genDef(Pb, KPRCB, InterruptTime) genDef(Pb, KPRCB, KernelTime) genDef(Pb, KPRCB, UserTime) genDef(Pb, KPRCB, QuantumEndDpc) genDef(Pb, KPRCB, IpiFrozen) genDef(Pb, KPRCB, IpiCounts) genDef(Pb, KPRCB, ProcessorState) genAlt(PbAlignmentFixupCount, KPRCB, KeAlignmentFixupCount) genAlt(PbContextSwitches, KPRCB, KeContextSwitches) genAlt(PbDcacheFlushCount, KPRCB, KeDcacheFlushCount) genAlt(PbExceptionDispatchCount, KPRCB, KeExceptionDispatchCount) genAlt(PbFirstLevelTbFills, KPRCB, KeFirstLevelTbFills) genAlt(PbFloatingEmulationCount, KPRCB, KeFloatingEmulationCount) genAlt(PbIcacheFlushCount, KPRCB, KeIcacheFlushCount) genAlt(PbSecondLevelTbFills, KPRCB, KeSecondLevelTbFills) genAlt(PbSystemCalls, KPRCB, KeSystemCalls) genDef(Pb, KPRCB, LockQueue) genDef(Pb, KPRCB, PacketBarrier) genDef(Pb, KPRCB, CurrentPacket) genDef(Pb, KPRCB, TargetSet) genDef(Pb, KPRCB, WorkerRoutine) genDef(Pb, KPRCB, RequestSummary) genDef(Pb, KPRCB, DpcListHead) genDef(Pb, KPRCB, DpcLock) genDef(Pb, KPRCB, DpcCount) genDef(Pb, KPRCB, LastDpcCount) genDef(Pb, KPRCB, QuantumEnd) genDef(Pb, KPRCB, StartCount) genDef(Pb, KPRCB, SoftwareInterrupts) genDef(Pb, KPRCB, InterruptTrapFrame) genDef(Pb, KPRCB, DpcRoutineActive) genDef(Pb, KPRCB, DpcQueueDepth) genDef(Pb, KPRCB, DpcRequestRate) genDef(Pb, KPRCB, DpcBypassCount) genDef(Pb, KPRCB, ApcBypassCount) genDef(Pb, KPRCB, DispatchInterruptCount) genDef(Pb, KPRCB, DebugDpcTime) genDef(Pb, KPRCB, DpcInterruptRequested) genDef(Pb, KPRCB, MaximumDpcQueueDepth) genDef(Pb, KPRCB, MinimumDpcRate) genDef(Pb, KPRCB, AdjustDpcThreshold) EnableInc(HALALPHA) genDef(Pb, KPRCB, PowerState) genVal(ProcessorBlockLength, ROUND_UP(sizeof(KPRCB), 16)) // // Prcb power state // genCom("Processor Power State Offset Definitions") genDef(Pp, PROCESSOR_POWER_STATE, IdleFunction) DisableInc(HALALPHA) // // Immediate interprocessor command definitions. // genCom("Immediate Interprocessor Command Definitions") genNam(IPI_APC) genNam(IPI_DPC) genNam(IPI_FREEZE) genNam(IPI_PACKET_READY) // // Interprocessor interrupt count structure offset definitions. // genCom("Interprocessor Interrupt Count Structure Offset Definitions") genDef(Ic, KIPI_COUNTS, Freeze) genDef(Ic, KIPI_COUNTS, Packet) genDef(Ic, KIPI_COUNTS, DPC) genDef(Ic, KIPI_COUNTS, APC) genDef(Ic, KIPI_COUNTS, FlushSingleTb) genDef(Ic, KIPI_COUNTS, FlushEntireTb) genDef(Ic, KIPI_COUNTS, ChangeColor) genDef(Ic, KIPI_COUNTS, SweepDcache) genDef(Ic, KIPI_COUNTS, SweepIcache) genDef(Ic, KIPI_COUNTS, SweepIcacheRange) genDef(Ic, KIPI_COUNTS, FlushIoBuffers) // // LPC structure offset definitions // genCom("LPC Structure Offset Definitions") genAlt(PmLength, PORT_MESSAGE, u1.Length) genAlt(PmClientId, PORT_MESSAGE, ClientId) genAlt(PmProcess, PORT_MESSAGE, ClientId.UniqueProcess) genAlt(PmThread, PORT_MESSAGE, ClientId.UniqueThread) genAlt(PmMessageId, PORT_MESSAGE, MessageId) genAlt(PmClientViewSize, PORT_MESSAGE, ClientViewSize) genVal(PortMessageLength, sizeof(PORT_MESSAGE)) // // Client ID structure offset definitions // genCom("Client Id Structure Offset Definitions") genDef(Cid, CLIENT_ID, UniqueProcess) genDef(Cid, CLIENT_ID, UniqueThread) // // Context frame offset definitions and flag definitions. // EnableInc(HALALPHA) genCom("Context Frame Offset and Flag Definitions") genNam(CONTEXT_FULL) genNam(CONTEXT_CONTROL) genNam(CONTEXT_FLOATING_POINT) genNam(CONTEXT_INTEGER) genSpc() genDef(Cx, CONTEXT, FltF0) genDef(Cx, CONTEXT, FltF1) genDef(Cx, CONTEXT, FltF2) genDef(Cx, CONTEXT, FltF3) genDef(Cx, CONTEXT, FltF4) genDef(Cx, CONTEXT, FltF5) genDef(Cx, CONTEXT, FltF6) genDef(Cx, CONTEXT, FltF7) genDef(Cx, CONTEXT, FltF8) genDef(Cx, CONTEXT, FltF9) genDef(Cx, CONTEXT, FltF10) genDef(Cx, CONTEXT, FltF11) genDef(Cx, CONTEXT, FltF12) genDef(Cx, CONTEXT, FltF13) genDef(Cx, CONTEXT, FltF14) genDef(Cx, CONTEXT, FltF15) genDef(Cx, CONTEXT, FltF16) genDef(Cx, CONTEXT, FltF17) genDef(Cx, CONTEXT, FltF18) genDef(Cx, CONTEXT, FltF19) genDef(Cx, CONTEXT, FltF20) genDef(Cx, CONTEXT, FltF21) genDef(Cx, CONTEXT, FltF22) genDef(Cx, CONTEXT, FltF23) genDef(Cx, CONTEXT, FltF24) genDef(Cx, CONTEXT, FltF25) genDef(Cx, CONTEXT, FltF26) genDef(Cx, CONTEXT, FltF27) genDef(Cx, CONTEXT, FltF28) genDef(Cx, CONTEXT, FltF29) genDef(Cx, CONTEXT, FltF30) genDef(Cx, CONTEXT, FltF31) genDef(Cx, CONTEXT, IntV0) genDef(Cx, CONTEXT, IntT0) genDef(Cx, CONTEXT, IntT1) genDef(Cx, CONTEXT, IntT2) genDef(Cx, CONTEXT, IntT3) genDef(Cx, CONTEXT, IntT4) genDef(Cx, CONTEXT, IntT5) genDef(Cx, CONTEXT, IntT6) genDef(Cx, CONTEXT, IntT7) genDef(Cx, CONTEXT, IntS0) genDef(Cx, CONTEXT, IntS1) genDef(Cx, CONTEXT, IntS2) genDef(Cx, CONTEXT, IntS3) genDef(Cx, CONTEXT, IntS4) genDef(Cx, CONTEXT, IntS5) genDef(Cx, CONTEXT, IntFp) genDef(Cx, CONTEXT, IntA0) genDef(Cx, CONTEXT, IntA1) genDef(Cx, CONTEXT, IntA2) genDef(Cx, CONTEXT, IntA3) genDef(Cx, CONTEXT, IntA4) genDef(Cx, CONTEXT, IntA5) genDef(Cx, CONTEXT, IntT8) genDef(Cx, CONTEXT, IntT9) genDef(Cx, CONTEXT, IntT10) genDef(Cx, CONTEXT, IntT11) genDef(Cx, CONTEXT, IntRa) genDef(Cx, CONTEXT, IntT12) genDef(Cx, CONTEXT, IntAt) genDef(Cx, CONTEXT, IntGp) genDef(Cx, CONTEXT, IntSp) genDef(Cx, CONTEXT, IntZero) genDef(Cx, CONTEXT, Fpcr) genDef(Cx, CONTEXT, SoftFpcr) genDef(Cx, CONTEXT, Fir) genDef(Cx, CONTEXT, Psr) genDef(Cx, CONTEXT, ContextFlags) genVal(ContextFrameLength, ROUND_UP(sizeof(CONTEXT), 16)) // // Exception frame offset definitions. // genCom("Exception Frame Offset Definitions and Length") genDef(Ex, KEXCEPTION_FRAME, FltF2) genDef(Ex, KEXCEPTION_FRAME, FltF3) genDef(Ex, KEXCEPTION_FRAME, FltF4) genDef(Ex, KEXCEPTION_FRAME, FltF5) genDef(Ex, KEXCEPTION_FRAME, FltF6) genDef(Ex, KEXCEPTION_FRAME, FltF7) genDef(Ex, KEXCEPTION_FRAME, FltF8) genDef(Ex, KEXCEPTION_FRAME, FltF9) genDef(Ex, KEXCEPTION_FRAME, IntS0) genDef(Ex, KEXCEPTION_FRAME, IntS1) genDef(Ex, KEXCEPTION_FRAME, IntS2) genDef(Ex, KEXCEPTION_FRAME, IntS3) genDef(Ex, KEXCEPTION_FRAME, IntS4) genDef(Ex, KEXCEPTION_FRAME, IntS5) genDef(Ex, KEXCEPTION_FRAME, IntFp) genDef(Ex, KEXCEPTION_FRAME, Psr) genDef(Ex, KEXCEPTION_FRAME, SwapReturn) genDef(Ex, KEXCEPTION_FRAME, IntRa) genVal(ExceptionFrameLength, ROUND_UP(sizeof(KEXCEPTION_FRAME), 16)) // // Jump buffer offset definitions. // genCom("Jump Offset Definitions and Length") genDef(Jb, _JUMP_BUFFER, Fp) genDef(Jb, _JUMP_BUFFER, Pc) genDef(Jb, _JUMP_BUFFER, Seb) genDef(Jb, _JUMP_BUFFER, Type) genDef(Jb, _JUMP_BUFFER, FltF2) genDef(Jb, _JUMP_BUFFER, FltF3) genDef(Jb, _JUMP_BUFFER, FltF4) genDef(Jb, _JUMP_BUFFER, FltF5) genDef(Jb, _JUMP_BUFFER, FltF6) genDef(Jb, _JUMP_BUFFER, FltF7) genDef(Jb, _JUMP_BUFFER, FltF8) genDef(Jb, _JUMP_BUFFER, FltF9) genDef(Jb, _JUMP_BUFFER, IntS0) genDef(Jb, _JUMP_BUFFER, IntS1) genDef(Jb, _JUMP_BUFFER, IntS2) genDef(Jb, _JUMP_BUFFER, IntS3) genDef(Jb, _JUMP_BUFFER, IntS4) genDef(Jb, _JUMP_BUFFER, IntS5) genDef(Jb, _JUMP_BUFFER, IntS6) genDef(Jb, _JUMP_BUFFER, IntSp) genDef(Jb, _JUMP_BUFFER, Fir) // // Trap frame offset definitions. // genCom("Trap Frame Offset Definitions and Length") genDef(Tr, KTRAP_FRAME, FltF0) genDef(Tr, KTRAP_FRAME, FltF1) genDef(Tr, KTRAP_FRAME, FltF10) genDef(Tr, KTRAP_FRAME, FltF11) genDef(Tr, KTRAP_FRAME, FltF12) genDef(Tr, KTRAP_FRAME, FltF13) genDef(Tr, KTRAP_FRAME, FltF14) genDef(Tr, KTRAP_FRAME, FltF15) genDef(Tr, KTRAP_FRAME, FltF16) genDef(Tr, KTRAP_FRAME, FltF17) genDef(Tr, KTRAP_FRAME, FltF18) genDef(Tr, KTRAP_FRAME, FltF19) genDef(Tr, KTRAP_FRAME, FltF20) genDef(Tr, KTRAP_FRAME, FltF21) genDef(Tr, KTRAP_FRAME, FltF22) genDef(Tr, KTRAP_FRAME, FltF23) genDef(Tr, KTRAP_FRAME, FltF24) genDef(Tr, KTRAP_FRAME, FltF25) genDef(Tr, KTRAP_FRAME, FltF26) genDef(Tr, KTRAP_FRAME, FltF27) genDef(Tr, KTRAP_FRAME, FltF28) genDef(Tr, KTRAP_FRAME, FltF29) genDef(Tr, KTRAP_FRAME, FltF30) genDef(Tr, KTRAP_FRAME, IntV0) genDef(Tr, KTRAP_FRAME, IntT0) genDef(Tr, KTRAP_FRAME, IntT1) genDef(Tr, KTRAP_FRAME, IntT2) genDef(Tr, KTRAP_FRAME, IntT3) genDef(Tr, KTRAP_FRAME, IntT4) genDef(Tr, KTRAP_FRAME, IntT5) genDef(Tr, KTRAP_FRAME, IntT6) genDef(Tr, KTRAP_FRAME, IntT7) genDef(Tr, KTRAP_FRAME, IntFp) genDef(Tr, KTRAP_FRAME, IntA0) genDef(Tr, KTRAP_FRAME, IntA1) genDef(Tr, KTRAP_FRAME, IntA2) genDef(Tr, KTRAP_FRAME, IntA3) genDef(Tr, KTRAP_FRAME, IntA4) genDef(Tr, KTRAP_FRAME, IntA5) genDef(Tr, KTRAP_FRAME, IntT8) genDef(Tr, KTRAP_FRAME, IntT9) genDef(Tr, KTRAP_FRAME, IntT10) genDef(Tr, KTRAP_FRAME, IntT11) genDef(Tr, KTRAP_FRAME, IntT12) genDef(Tr, KTRAP_FRAME, IntAt) genDef(Tr, KTRAP_FRAME, IntGp) genDef(Tr, KTRAP_FRAME, IntSp) genDef(Tr, KTRAP_FRAME, Fpcr) genDef(Tr, KTRAP_FRAME, Psr) genDef(Tr, KTRAP_FRAME, Fir) genAlt(TrExceptionRecord, KTRAP_FRAME, ExceptionRecord[0]) genDef(Tr, KTRAP_FRAME, OldIrql) genDef(Tr, KTRAP_FRAME, PreviousMode) genDef(Tr, KTRAP_FRAME, IntRa) genDef(Tr, KTRAP_FRAME, TrapFrame) genVal(TrapFrameLength, ROUND_UP(sizeof(KTRAP_FRAME), 16)) // // Firmware frame offset defintions and length. // DisableInc(HALALPHA) genCom("Firmware frame offset defintions and length") genNam(FW_EXC_MCHK) genNam(FW_EXC_ARITH) genNam(FW_EXC_INTERRUPT) genNam(FW_EXC_DFAULT) genNam(FW_EXC_ITBMISS) genNam(FW_EXC_ITBACV) genNam(FW_EXC_NDTBMISS) genNam(FW_EXC_PDTBMISS) genNam(FW_EXC_UNALIGNED) genNam(FW_EXC_OPCDEC) genNam(FW_EXC_FEN) genNam(FW_EXC_HALT) genNam(FW_EXC_BPT) genNam(FW_EXC_GENTRAP) genNam(FW_EXC_HALT_INTERRUPT) genDef(Fw, FIRMWARE_FRAME, Type) genDef(Fw, FIRMWARE_FRAME, Param1) genDef(Fw, FIRMWARE_FRAME, Param2) genDef(Fw, FIRMWARE_FRAME, Param3) genDef(Fw, FIRMWARE_FRAME, Param4) genDef(Fw, FIRMWARE_FRAME, Param5) genDef(Fw, FIRMWARE_FRAME, Psr) genDef(Fw, FIRMWARE_FRAME, Mmcsr) genDef(Fw, FIRMWARE_FRAME, Va) genDef(Fw, FIRMWARE_FRAME, Fir) genDef(Fw, FIRMWARE_FRAME, IntV0) genDef(Fw, FIRMWARE_FRAME, IntT0) genDef(Fw, FIRMWARE_FRAME, IntT1) genDef(Fw, FIRMWARE_FRAME, IntT2) genDef(Fw, FIRMWARE_FRAME, IntT3) genDef(Fw, FIRMWARE_FRAME, IntT4) genDef(Fw, FIRMWARE_FRAME, IntT5) genDef(Fw, FIRMWARE_FRAME, IntT6) genDef(Fw, FIRMWARE_FRAME, IntT7) genDef(Fw, FIRMWARE_FRAME, IntS0) genDef(Fw, FIRMWARE_FRAME, IntS1) genDef(Fw, FIRMWARE_FRAME, IntS2) genDef(Fw, FIRMWARE_FRAME, IntS3) genDef(Fw, FIRMWARE_FRAME, IntS4) genDef(Fw, FIRMWARE_FRAME, IntS5) genDef(Fw, FIRMWARE_FRAME, IntFp) genDef(Fw, FIRMWARE_FRAME, IntA0) genDef(Fw, FIRMWARE_FRAME, IntA1) genDef(Fw, FIRMWARE_FRAME, IntA2) genDef(Fw, FIRMWARE_FRAME, IntA3) genDef(Fw, FIRMWARE_FRAME, IntA4) genDef(Fw, FIRMWARE_FRAME, IntA5) genDef(Fw, FIRMWARE_FRAME, IntT8) genDef(Fw, FIRMWARE_FRAME, IntT9) genDef(Fw, FIRMWARE_FRAME, IntT10) genDef(Fw, FIRMWARE_FRAME, IntT11) genDef(Fw, FIRMWARE_FRAME, IntRa) genDef(Fw, FIRMWARE_FRAME, IntT12) genDef(Fw, FIRMWARE_FRAME, IntAt) genDef(Fw, FIRMWARE_FRAME, IntGp) genDef(Fw, FIRMWARE_FRAME, IntSp) genDef(Fw, FIRMWARE_FRAME, IntZero) genDef(Fw, FIRMWARE_FRAME, FltF0) genDef(Fw, FIRMWARE_FRAME, FltF1) genDef(Fw, FIRMWARE_FRAME, FltF2) genDef(Fw, FIRMWARE_FRAME, FltF3) genDef(Fw, FIRMWARE_FRAME, FltF4) genDef(Fw, FIRMWARE_FRAME, FltF5) genDef(Fw, FIRMWARE_FRAME, FltF6) genDef(Fw, FIRMWARE_FRAME, FltF7) genDef(Fw, FIRMWARE_FRAME, FltF8) genDef(Fw, FIRMWARE_FRAME, FltF9) genDef(Fw, FIRMWARE_FRAME, FltF10) genDef(Fw, FIRMWARE_FRAME, FltF11) genDef(Fw, FIRMWARE_FRAME, FltF12) genDef(Fw, FIRMWARE_FRAME, FltF13) genDef(Fw, FIRMWARE_FRAME, FltF14) genDef(Fw, FIRMWARE_FRAME, FltF15) genDef(Fw, FIRMWARE_FRAME, FltF16) genDef(Fw, FIRMWARE_FRAME, FltF17) genDef(Fw, FIRMWARE_FRAME, FltF18) genDef(Fw, FIRMWARE_FRAME, FltF19) genDef(Fw, FIRMWARE_FRAME, FltF20) genDef(Fw, FIRMWARE_FRAME, FltF21) genDef(Fw, FIRMWARE_FRAME, FltF22) genDef(Fw, FIRMWARE_FRAME, FltF23) genDef(Fw, FIRMWARE_FRAME, FltF24) genDef(Fw, FIRMWARE_FRAME, FltF25) genDef(Fw, FIRMWARE_FRAME, FltF26) genDef(Fw, FIRMWARE_FRAME, FltF27) genDef(Fw, FIRMWARE_FRAME, FltF28) genDef(Fw, FIRMWARE_FRAME, FltF29) genDef(Fw, FIRMWARE_FRAME, FltF30) genDef(Fw, FIRMWARE_FRAME, FltF31) genVal(FirmwareFrameLength, FIRMWARE_FRAME_LENGTH) // // Usermode lout frame definitions // genCom("Usermode callout frame definitions") genDef(Cu, KCALLOUT_FRAME, F2) genDef(Cu, KCALLOUT_FRAME, F3) genDef(Cu, KCALLOUT_FRAME, F4) genDef(Cu, KCALLOUT_FRAME, F5) genDef(Cu, KCALLOUT_FRAME, F6) genDef(Cu, KCALLOUT_FRAME, F7) genDef(Cu, KCALLOUT_FRAME, F8) genDef(Cu, KCALLOUT_FRAME, F9) genDef(Cu, KCALLOUT_FRAME, S0) genDef(Cu, KCALLOUT_FRAME, S1) genDef(Cu, KCALLOUT_FRAME, S2) genDef(Cu, KCALLOUT_FRAME, S3) genDef(Cu, KCALLOUT_FRAME, S4) genDef(Cu, KCALLOUT_FRAME, S5) genDef(Cu, KCALLOUT_FRAME, FP) genDef(Cu, KCALLOUT_FRAME, CbStk) genDef(Cu, KCALLOUT_FRAME, InStk) genDef(Cu, KCALLOUT_FRAME, TrFr) genDef(Cu, KCALLOUT_FRAME, TrFir) genDef(Cu, KCALLOUT_FRAME, Ra) genDef(Cu, KCALLOUT_FRAME, A0) genDef(Cu, KCALLOUT_FRAME, A1) genVal(CuFrameLength, sizeof(KCALLOUT_FRAME)) // // Usermode callout user frame definitions. // genCom("Usermode callout user frame definitions") genDef(Ck, UCALLOUT_FRAME, Buffer) genDef(Ck, UCALLOUT_FRAME, Length) genDef(Ck, UCALLOUT_FRAME, ApiNumber) genDef(Ck, UCALLOUT_FRAME, Sp) genDef(Ck, UCALLOUT_FRAME, Ra) // // KFLOATING_SAVE definition // genCom("KFLOATING_SAVE definitions") genDef(Kfs, KFLOATING_SAVE, Fpcr) genDef(Kfs, KFLOATING_SAVE, SoftFpcr) genDef(Kfs, KFLOATING_SAVE, Reserved1) genDef(Kfs, KFLOATING_SAVE, Reserved2) genDef(Kfs, KFLOATING_SAVE, Reserved3) genDef(Kfs, KFLOATING_SAVE, Reserved4) EnableInc(HALALPHA) // // Loader Paeter Block offset definitions. // genCom("Loader Parameter Block Offset Definitions") genDef(Lpb, LOADER_PARAMETER_BLOCK, LoadOrderListHead) genDef(Lpb, LOADER_PARAMETER_BLOCK, MemoryDescriptorListHead) genDef(Lpb, LOADER_PARAMETER_BLOCK, KernelStack) genDef(Lpb, LOADER_PARAMETER_BLOCK, Prcb) genDef(Lpb, LOADER_PARAMETER_BLOCK, Process) genDef(Lpb, LOADER_PARAMETER_BLOCK, Thread) genDef(Lpb, LOADER_PARAMETER_BLOCK, RegistryLength) genDef(Lpb, LOADER_PARAMETER_BLOCK, RegistryBase) genAlt(LpbDpcStack, LOADER_PARAMETER_BLOCK, u.Alpha.DpcStack) genAlt(LpbFirstLevelDcacheSize, LOADER_PARAMETER_BLOCK, u.Alpha.FirstLevelDcacheSize) genAlt(LpbFirstLevelDcacheFillSize, LOADER_PARAMETER_BLOCK, u.Alpha.FirstLevelDcacheFillSize) genAlt(LpbFirstLevelIcacheSize, LOADER_PARAMETER_BLOCK, u.Alpha.FirstLevelIcacheSize) genAlt(LpbFirstLevelIcacheFillSize, LOADER_PARAMETER_BLOCK, u.Alpha.FirstLevelIcacheFillSize) genAlt(LpbGpBase, LOADER_PARAMETER_BLOCK, u.Alpha.GpBase) genAlt(LpbPanicStack, LOADER_PARAMETER_BLOCK, u.Alpha.PanicStack) genAlt(LpbPcrPage, LOADER_PARAMETER_BLOCK, u.Alpha.PcrPage) genAlt(LpbPdrPage, LOADER_PARAMETER_BLOCK, u.Alpha.PdrPage) genAlt(LpbSecondLevelDcacheSize, LOADER_PARAMETER_BLOCK, u.Alpha.SecondLevelDcacheSize) genAlt(LpbSecondLevelDcacheFillSize, LOADER_PARAMETER_BLOCK, u.Alpha.SecondLevelDcacheFillSize) genAlt(LpbSecondLevelIcacheSize, LOADER_PARAMETER_BLOCK, u.Alpha.SecondLevelIcacheSize) genAlt(LpbSecondLevelIcacheFillSize, LOADER_PARAMETER_BLOCK, u.Alpha.SecondLevelIcacheFillSize) genAlt(LpbPhysicalAddressBits, LOADER_PARAMETER_BLOCK, u.Alpha.PhysicalAddressBits) genAlt(LpbMaximumAddressSpaceNumber, LOADER_PARAMETER_BLOCK, u.Alpha.MaximumAddressSpaceNumber) genAlt(LpbSystemSerialNumber, LOADER_PARAMETER_BLOCK, u.Alpha.SystemSerialNumber[0]) genAlt(LpbSystemType, LOADER_PARAMETER_BLOCK, u.Alpha.SystemType[0]) genAlt(LpbSystemVariant, LOADER_PARAMETER_BLOCK, u.Alpha.SystemVariant) genAlt(LpbSystemRevision, LOADER_PARAMETER_BLOCK, u.Alpha.SystemRevision) genAlt(LpbProcessorType, LOADER_PARAMETER_BLOCK, u.Alpha.ProcessorType) genAlt(LpbProcessorRevision, LOADER_PARAMETER_BLOCK, u.Alpha.ProcessorRevision) genAlt(LpbCycleClockPeriod, LOADER_PARAMETER_BLOCK, u.Alpha.CycleClockPeriod) genAlt(LpbPageSize, LOADER_PARAMETER_BLOCK, u.Alpha.PageSize) genAlt(LpbRestartBlock, LOADER_PARAMETER_BLOCK, u.Alpha.RestartBlock) genAlt(LpbFirmwareRestartAddress, LOADER_PARAMETER_BLOCK, u.Alpha.FirmwareRestartAddress) genAlt(LpbFirmwareRevisionId, LOADER_PARAMETER_BLOCK, u.Alpha.FirmwareRevisionId) genAlt(LpbPalBaseAddress, LOADER_PARAMETER_BLOCK, u.Alpha.PalBaseAddress) DisableInc(HALALPHA) // // Restart Block Structure and Alpha Save Area Structure. // // N.B. - The Alpha Save Area Structure Offsets are written as though // they were offsets from the beginning of the Restart block. // EnableInc(HALALPHA) genCom("Restart Block Structure Definitions") genDef(Rb, RESTART_BLOCK, Signature) genDef(Rb, RESTART_BLOCK, Length) genDef(Rb, RESTART_BLOCK, Version) genDef(Rb, RESTART_BLOCK, Revision) genDef(Rb, RESTART_BLOCK, NextRestartBlock) genDef(Rb, RESTART_BLOCK, RestartAddress) genDef(Rb, RESTART_BLOCK, BootMasterId) genDef(Rb, RESTART_BLOCK, ProcessorId) genDef(Rb, RESTART_BLOCK, BootStatus) genDef(Rb, RESTART_BLOCK, CheckSum) genDef(Rb, RESTART_BLOCK, SaveAreaLength) genAlt(RbSaveArea, RESTART_BLOCK, u.SaveArea) genVal(RbHaltReason, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, HaltReason)) genVal(RbLogoutFrame, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, LogoutFrame)) genVal(RbPalBase, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, PalBase)) genVal(RbIntV0, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntV0)) genVal(RbIntT0, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT0)) genVal(RbIntT1, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT1)) genVal(RbIntT2, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT2)) genVal(RbIntT3, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT3)) genVal(RbIntT4, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT4)) genVal(RbIntT5, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT5)) genVal(RbIntT6, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT6)) genVal(RbIntT7, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT7)) genVal(RbIntS0, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntS0)) genVal(RbIntS1, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntS1)) genVal(RbIntS2, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntS2)) genVal(RbIntS3, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntS3)) genVal(RbIntS4, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntS4)) genVal(RbIntS5, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntS5)) genVal(RbIntFp, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntFp)) genVal(RbIntA0, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntA0)) genVal(RbIntA1, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntA1)) genVal(RbIntA2, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntA2)) genVal(RbIntA3, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntA3)) genVal(RbIntA4, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntA4)) genVal(RbIntA5, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntA5)) genVal(RbIntT8, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT8)) genVal(RbIntT9, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT9)) genVal(RbIntT10, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT10)) genVal(RbIntT11, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT11)) genVal(RbIntRa, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntRa)) genVal(RbIntT12, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntT12)) genVal(RbIntAT, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntAT)) genVal(RbIntGp, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntGp)) genVal(RbIntSp, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntSp)) genVal(RbIntZero, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, IntZero)) genVal(RbFpcr, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Fpcr)) genVal(RbFltF0, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF0)) genVal(RbFltF1, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF1)) genVal(RbFltF2, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF2)) genVal(RbFltF3, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF3)) genVal(RbFltF4, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF4)) genVal(RbFltF5, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF5)) genVal(RbFltF6, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF6)) genVal(RbFltF7, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF7)) genVal(RbFltF8, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF8)) genVal(RbFltF9, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF9)) genVal(RbFltF10, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF10)) genVal(RbFltF11, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF11)) genVal(RbFltF12, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF12)) genVal(RbFltF13, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF13)) genVal(RbFltF14, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF14)) genVal(RbFltF15, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF15)) genVal(RbFltF16, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF16)) genVal(RbFltF17, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF17)) genVal(RbFltF18, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF18)) genVal(RbFltF19, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF19)) genVal(RbFltF20, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF20)) genVal(RbFltF21, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF21)) genVal(RbFltF22, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF22)) genVal(RbFltF23, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF23)) genVal(RbFltF24, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF24)) genVal(RbFltF25, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF25)) genVal(RbFltF26, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF26)) genVal(RbFltF27, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF27)) genVal(RbFltF28, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF28)) genVal(RbFltF29, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF29)) genVal(RbFltF30, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF30)) genVal(RbFltF31, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, FltF31)) genVal(RbAsn, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Asn)) genVal(RbGeneralEntry, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, GeneralEntry)) genVal(RbIksp, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Iksp)) genVal(RbInterruptEntry, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, InterruptEntry)) genVal(RbKgp, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Kgp)) genVal(RbMces, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Mces)) genVal(RbMemMgmtEntry, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, MemMgmtEntry)) genVal(RbPanicEntry, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, PanicEntry)) genVal(RbPcr, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Pcr)) genVal(RbPdr, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Pdr)) genVal(RbPsr, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Psr)) genVal(RbReiRestartAddress, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, ReiRestartAddress)) genVal(RbSirr, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Sirr)) genVal(RbSyscallEntry, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, SyscallEntry)) genVal(RbTeb, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Teb)) genVal(RbThread, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, Thread)) genVal(RbPerProcessorState, OFFSET(RESTART_BLOCK, u.SaveArea) + OFFSET(ALPHA_RESTART_STATE, PerProcessorState)) // // Address space layout definitions // genCom("Address Space Layout Definitions") genNamUint(KSEG0_BASE) genNamUint(KSEG2_BASE) DisableInc(HALALPHA) genNamUint(SYSTEM_BASE) genNamUint(PDE_BASE) genNamUint(PTE_BASE) genNamUint(PDE64_BASE) genNamUint(PTE64_BASE) // // Page table and page directory entry definitions // EnableInc(HALALPHA) genCom("Page Table and Directory Entry Definitions") genNam(PAGE_SIZE) genNam(PAGE_SHIFT) genNam(PDI_SHIFT) genNam(PTI_SHIFT) DisableInc(HALALPHA) // // Breakpoint instruction definitions // EnableInc(HALALPHA) genCom("Breakpoint Definitions") genNam(USER_BREAKPOINT) genNam(KERNEL_BREAKPOINT) genNam(BREAKIN_BREAKPOINT) genNam(DEBUG_PRINT_BREAKPOINT) genNam(DEBUG_PROMPT_BREAKPOINT) genNam(DEBUG_STOP_BREAKPOINT) genNam(DEBUG_LOAD_SYMBOLS_BREAKPOINT) genNam(DEBUG_UNLOAD_SYMBOLS_BREAKPOINT) DisableInc(HALALPHA) // // // Trap code definitions // genCom("Trap Code Definitions") genNam(GENTRAP_INTEGER_OVERFLOW) genNam(GENTRAP_INTEGER_DIVIDE_BY_ZERO) genNam(GENTRAP_FLOATING_OVERFLOW) genNam(GENTRAP_FLOATING_DIVIDE_BY_ZERO) genNam(GENTRAP_FLOATING_UNDERFLOW) genNam(GENTRAP_FLOATING_INVALID_OPERAND) genNam(GENTRAP_FLOATING_INEXACT_RESULT) // // Miscellaneous definitions // EnableInc(HALALPHA) genCom("Miscellaneous Definitions") genNam(Executive) genNam(KernelMode) genNam(FALSE) genNam(TRUE) DisableInc(HALALPHA) genNam(BASE_PRIORITY_THRESHOLD) genNam(EVENT_PAIR_INCREMENT) genNam(LOW_REALTIME_PRIORITY) genNamUint(MM_USER_PROBE_ADDRESS) genNam(KERNEL_STACK_SIZE) genNam(KERNEL_LARGE_STACK_COMMIT) genNam(SET_LOW_WAIT_HIGH) genNam(SET_HIGH_WAIT_LOW) genNam(CLOCK_QUANTUM_DECREMENT) genNam(READY_SKIP_QUANTUM) genNam(THREAD_QUANTUM) genNam(WAIT_QUANTUM_DECREMENT) genNam(ROUND_TRIP_DECREMENT_COUNT) // // Generate processor type definitions. // EnableInc(HALALPHA) genNam(PROCESSOR_ALPHA_21064) genNam(PROCESSOR_ALPHA_21164) genNam(PROCESSOR_ALPHA_21066) genNam(PROCESSOR_ALPHA_21068) genNam(PROCESSOR_ALPHA_21164PC) genNam(PROCESSOR_ALPHA_21264) // // Insert any bitfield definitions that have been generated // DUMP_BITFIELDS // // Generate the call pal mnemonic to opcode definitions. // genCom("Call PAL Mnemonics") genTxt("// begin callpal\n") genSpc() // // N.B. any new call pal functions must be added to both alphaops.h // and to the call pal entry table below. // // Unprivileged Call Pals genPal(BPT_FUNC) genPal(CALLSYS_FUNC) genPal(IMB_FUNC) genPal(GENTRAP_FUNC) genPal(RDTEB_FUNC) genPal(KBPT_FUNC) genPal(CALLKD_FUNC) #if defined(_AXP64_) genPal(RDTEB64_FUNC) #endif // Privileged Call Pals genPal(HALT_FUNC) genPal(RESTART_FUNC) genPal(DRAINA_FUNC) genPal(REBOOT_FUNC) genPal(INITPAL_FUNC) genPal(WRENTRY_FUNC) genPal(SWPIRQL_FUNC) genPal(RDIRQL_FUNC) genPal(DI_FUNC) genPal(EI_FUNC) genPal(SWPPAL_FUNC) genPal(SSIR_FUNC) genPal(CSIR_FUNC) genPal(RFE_FUNC) genPal(RETSYS_FUNC) genPal(SWPCTX_FUNC) genPal(SWPPROCESS_FUNC) genPal(RDMCES_FUNC) genPal(WRMCES_FUNC) genPal(TBIA_FUNC) genPal(TBIS_FUNC) genPal(TBISASN_FUNC) genPal(DTBIS_FUNC) genPal(RDKSP_FUNC) genPal(SWPKSP_FUNC) genPal(RDPSR_FUNC) genPal(RDPCR_FUNC) genPal(RDTHREAD_FUNC) genPal(TBIM_FUNC) genPal(TBIMASN_FUNC) genPal(TBIM64_FUNC) genPal(TBIS64_FUNC) genPal(EALNFIX_FUNC) genPal(DALNFIX_FUNC) genPal(RDCOUNTERS_FUNC) genPal(RDSTATE_FUNC) genPal(WRPERFMON_FUNC) genPal(CP_SLEEP_FUNC) // 21064 (EV4) - specific functions genPal(INITPCR_FUNC) genSpc() genTxt("// end callpal\n") genSpc() // // Define Bios Argument structure definitions. // genCom("Bios Argument Structure Definitions") genDef(Ba, X86_BIOS_ARGUMENTS, Eax) genDef(Ba, X86_BIOS_ARGUMENTS, Ebx) genDef(Ba, X86_BIOS_ARGUMENTS, Ecx) genDef(Ba, X86_BIOS_ARGUMENTS, Edx) genDef(Ba, X86_BIOS_ARGUMENTS, Esi) genDef(Ba, X86_BIOS_ARGUMENTS, Edi) genDef(Ba, X86_BIOS_ARGUMENTS, Ebp) genVal(BiosArgumentLength, sizeof(X86_BIOS_ARGUMENTS)) genCom("Define Vendor Callback Read/Write Error Frame Operation Types") genVal(ReadFrame, ReadFrame) genVal(WriteFrame, WriteFrame) genCom("Define Vendor Callback Vector Base Address") genValUint(SYSTEM_VECTOR_BASE, (ULONG_PTR)SYSTEM_BLOCK + OFFSET(SYSTEM_PARAMETER_BLOCK, VendorVector)) genCom("Define Vendor Callback Offsets") genVal(VnCallBiosRoutine, CallBiosRoutine * 4) genVal(VnReadWriteErrorFrameRoutine, ReadWriteErrorFrameRoutine * 4) genVal(VnVideoDisplayInitializeRoutine, VideoDisplayInitializeRoutine * 4) genCom("Define Firmware Callback Vector Base Address") genValUint(FIRMWARE_VECTOR_BASE, (ULONG_PTR)SYSTEM_BLOCK + OFFSET(SYSTEM_PARAMETER_BLOCK, FirmwareVector)) genCom("Define Firmware Callback Offsets") genVal(FwGetEnvironmentRoutine, GetEnvironmentRoutine * 4) genVal(FwSetEnvironmentRoutine, SetEnvironmentRoutine * 4) // // Close out conditional statement. // EnableInc(KSALPHA | HALALPHA) END_LIST };