Annotation of ntddk/inc/jazzdma.h, revision 1.1

1.1     ! root        1: /*++ BUILD Version: 0001    // Increment this if a change has global effects
        !             2: 
        !             3: Copyright (c) 1990  Microsoft Corporation
        !             4: 
        !             5: Module Name:
        !             6: 
        !             7:     jazzdma.h
        !             8: 
        !             9: Abstract:
        !            10: 
        !            11:     This module is the header file that describes the DMA control register
        !            12:     structure for the Jazz system.
        !            13: 
        !            14: Author:
        !            15: 
        !            16:     David N. Cutler (davec) 13-Nov-1990
        !            17: 
        !            18: Revision History:
        !            19: 
        !            20: --*/
        !            21: 
        !            22: #ifndef _JAZZDMA_
        !            23: #define _JAZZDMA_
        !            24: 
        !            25: //
        !            26: // Define DMA register structure.
        !            27: //
        !            28: 
        !            29: typedef struct _DMA_REGISTER {
        !            30:     ULONG Long;
        !            31:     ULONG Fill;
        !            32: } DMA_REGISTER, *PDMA_REGISTER;
        !            33: 
        !            34: //
        !            35: // Define DMA channel register structure.
        !            36: //
        !            37: 
        !            38: typedef struct _DMA_CHANNEL {
        !            39:     DMA_REGISTER Mode;
        !            40:     DMA_REGISTER Enable;
        !            41:     DMA_REGISTER ByteCount;
        !            42:     DMA_REGISTER Address;
        !            43: } DMA_CHANNEL, *PDMA_CHANNEL;
        !            44: 
        !            45: //
        !            46: // Define DMA control register structure.
        !            47: //
        !            48: 
        !            49: typedef volatile struct _DMA_REGISTERS {
        !            50:     DMA_REGISTER Configuration;
        !            51:     DMA_REGISTER RevisionLevel;
        !            52:     DMA_REGISTER InvalidAddress;
        !            53:     DMA_REGISTER TranslationBase;
        !            54:     DMA_REGISTER TranslationLimit;
        !            55:     DMA_REGISTER TranslationInvalidate;
        !            56:     DMA_REGISTER CacheMaintenance;
        !            57:     DMA_REGISTER RemoteFailedAddress;
        !            58:     DMA_REGISTER MemoryFailedAddress;
        !            59:     DMA_REGISTER PhysicalTag;
        !            60:     DMA_REGISTER LogicalTag;
        !            61:     DMA_REGISTER ByteMask;
        !            62:     DMA_REGISTER BufferWindowLow;
        !            63:     DMA_REGISTER BufferWindowHigh;
        !            64:     DMA_REGISTER RemoteSpeed[16];
        !            65:     DMA_REGISTER ParityDiagnosticLow;
        !            66:     DMA_REGISTER ParityDiagnosticHigh;
        !            67:     DMA_CHANNEL Channel[8];
        !            68:     DMA_REGISTER InterruptSource;
        !            69:     DMA_REGISTER Errortype;
        !            70:     DMA_REGISTER RefreshRate;
        !            71:     DMA_REGISTER RefreshCounter;
        !            72:     DMA_REGISTER SystemSecurity;
        !            73:     DMA_REGISTER InterruptInterval;
        !            74:     DMA_REGISTER IntervalTimer;
        !            75:     DMA_REGISTER InterruptAcknowledge;
        !            76: } DMA_REGISTERS, *PDMA_REGISTERS;
        !            77: 
        !            78: //
        !            79: // Define DMA channel mode register structure.
        !            80: //
        !            81: 
        !            82: typedef struct _DMA_CHANNEL_MODE {
        !            83:     ULONG AccessTime : 3;
        !            84:     ULONG TransferWidth : 2;
        !            85:     ULONG InterruptEnable : 1;
        !            86:     ULONG BurstMode : 1;
        !            87:     ULONG FastDmaCycle : 1;
        !            88:     ULONG Reserved1 : 24;
        !            89: } DMA_CHANNEL_MODE, *PDMA_CHANNEL_MODE;
        !            90: 
        !            91: //
        !            92: // Define access time values.
        !            93: //
        !            94: 
        !            95: #define ACCESS_40NS 0x0                 // 40ns access time
        !            96: #define ACCESS_80NS 0x1                 // 80ns access time
        !            97: #define ACCESS_120NS 0x2                // 120ns access time
        !            98: #define ACCESS_160NS 0x3                // 160ns access time
        !            99: #define ACCESS_200NS 0x4                // 200ns access time
        !           100: #define ACCESS_240NS 0x5                // 240ns access time
        !           101: #define ACCESS_280NS 0x6                // 280ns access time
        !           102: #define ACCESS_320NS 0x7                // 320ns access time
        !           103: 
        !           104: //
        !           105: // Define transfer width values.
        !           106: //
        !           107: 
        !           108: #define WIDTH_8BITS 0x1                 // 8-bit transfer width
        !           109: #define WIDTH_16BITS 0x2                // 16-bit transfer width
        !           110: #define WIDTH_32BITS 0x3                // 32-bit transfer width
        !           111: 
        !           112: //
        !           113: // Define DMA channel enable register structure.
        !           114: //
        !           115: 
        !           116: typedef struct _DMA_CHANNEL_ENABLE {
        !           117:     ULONG ChannelEnable : 1;
        !           118:     ULONG TransferDirection : 1;
        !           119:     ULONG Reserved1 : 6;
        !           120:     ULONG TerminalCount : 1;
        !           121:     ULONG MemoryError : 1;
        !           122:     ULONG TranslationError : 1;
        !           123:     ULONG Reserved2 : 21;
        !           124: } DMA_CHANNEL_ENABLE, *PDMA_CHANNEL_ENABLE;
        !           125: 
        !           126: //
        !           127: // Define transfer direction values.
        !           128: //
        !           129: 
        !           130: #define DMA_READ_OP 0x0                 // read from device
        !           131: #define DMA_WRITE_OP 0x1                // write to device
        !           132: 
        !           133: //
        !           134: // Define interrupt source register structure.
        !           135: //
        !           136: 
        !           137: typedef struct _DMA_INTERRUPT_SOURCE {
        !           138:     ULONG InterruptPending : 8;
        !           139:     ULONG MemoryParityError : 1;
        !           140:     ULONG R4000AddressError : 1;
        !           141:     ULONG IoCacheFlushError : 1;
        !           142:     ULONG reserved1 : 21;
        !           143: } DMA_INTERRUPT_SOURCE, *PDMA_INTERRUPT_SOURCE;
        !           144: 
        !           145: //
        !           146: // Define translation table entry structure.
        !           147: //
        !           148: 
        !           149: typedef volatile struct _TRANSLATION_ENTRY {
        !           150:     ULONG PageFrame;
        !           151:     ULONG Fill;
        !           152: } TRANSLATION_ENTRY, *PTRANSLATION_ENTRY;
        !           153: 
        !           154: #endif // _JAZZDMA_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.