|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1993 Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: monopriv.h ! 8: ! 9: Abstract: ! 10: ! 11: This module contains the PRIVATE (driver-only) definitions for the ! 12: code that implements the mono device driver. ! 13: ! 14: Environment: ! 15: ! 16: Kernel mode ! 17: ! 18: Revision History: ! 19: ! 20: 03-22-93 : created ! 21: ! 22: --*/ ! 23: ! 24: ! 25: // ! 26: // Indices into & count of the above array ! 27: // ! 28: ! 29: #define MONO_VIDEO_BUFFER 0 ! 30: #define MONO_CRTC_REG 1 ! 31: #define MONO_MODE_CTL_REG 2 ! 32: ! 33: #define MONO_NUMBER_RESOURCE_ENTRIES 3 ! 34: ! 35: ! 36: ! 37: // ! 38: // The following is the debug print macro- when we are building checked ! 39: // drivers "DBG" will be defined (by the \ddk\setenv.cmd script), and we ! 40: // will see debug messages appearing on the KD screen on the host debug ! 41: // machine. When we build free drivers "DBG" is not defined, and calls ! 42: // to pMonoKdPrint are removed. ! 43: // ! 44: ! 45: #ifdef DBG ! 46: #define pMonoKdPrint(arg) DbgPrint arg ! 47: #else ! 48: #define pMonoKdPrint(arg) ! 49: #endif ! 50: ! 51: ! 52: ! 53: // ! 54: // A structure representing the instance information associated with ! 55: // a particular device ! 56: // ! 57: ! 58: typedef struct _MONO_DEVICE_EXTENSION ! 59: { ! 60: KEVENT SyncEvent; ! 61: INTERFACE_TYPE InterfaceType; ! 62: ULONG BusNumber; ! 63: PUSHORT VideoMemory; ! 64: PUCHAR CRTCRegisters; ! 65: PUCHAR ModeControlRegister; ! 66: ULONG Xpos; ! 67: ULONG Ypos; ! 68: ! 69: } MONO_DEVICE_EXTENSION, *PMONO_DEVICE_EXTENSION; ! 70: ! 71: ! 72: ! 73: // ! 74: // A structure decribing a particular device resource ! 75: // ! 76: ! 77: typedef struct _MONO_RESOURCE ! 78: { ! 79: PHYSICAL_ADDRESS PhysicalAddress; ! 80: ULONG Length; ! 81: ULONG AddressSpace; ! 82: ULONG RangeSharable; ! 83: ! 84: } MONO_RESOURCE, *PMONO_RESOURCE; ! 85: ! 86: ! 87: ! 88: // ! 89: // A global that we keep around for use by the MonoDbgPrint function ! 90: // (when other drivers call MonoDbgPrint we need to be able to access ! 91: // the info stored in the device extension). ! 92: // ! 93: ! 94: PMONO_DEVICE_EXTENSION GlobalDeviceExtension = NULL; ! 95: ! 96: ! 97: ! 98: // ! 99: // A variable which determines the verboseness of the messages printed by ! 100: // MonoDbgPrint. ! 101: // ! 102: ! 103: ULONG MonoDbgLevel = 3; ! 104: ! 105: ! 106: ! 107: // ! 108: // Resources used by the monochrome video adapter ! 109: // ! 110: ! 111: MONO_RESOURCE MonoResources[] = ! 112: { ! 113: { 0x000b0000, 0x00000000, // the video buffer ! 114: 0x00001000, // length ! 115: 0, // in memory space ! 116: 1 }, // shared with other drivers/devices (vga) ! 117: ! 118: { 0x000003b4, 0x00000000, // the 6845 index & data regs ! 119: 0x00000002, // length ! 120: 1, // in I/O space ! 121: 1 }, // shared with other drivers/devices (vga) ! 122: ! 123: { 0x000b03b8, 0x00000000, // mode control register ! 124: 0x00000001, // length ! 125: 1, // in I/O space ! 126: 1 } // shared with other drivers/devices (vga) ! 127: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.