|
|
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.