1439 lines
41 KiB
Plaintext
1439 lines
41 KiB
Plaintext
/*++
|
|
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
|
|
|
|
};
|