4 * Copyright (C) 2002, 2003, 2004 ReactOS Team
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; see the file COPYING.LIB.
18 * If not, write to the Free Software Foundation,
19 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
34 #include <ndk/ntndk.h>
35 #include <reactos/helper.h>
40 #define TAG_VIDEO_PORT TAG('V', 'I', 'D', 'P')
42 #define DPFLTR_IHVVIDEO_ID 0 /* FIXME */
44 /* ROS Internal. Please deprecate */
48 HalReleaseDisplayOwnership(
52 typedef struct _VIDEO_PORT_ADDRESS_MAPPING
57 PHYSICAL_ADDRESS IoAddress
;
58 ULONG SystemIoBusNumber
;
60 } VIDEO_PORT_ADDRESS_MAPPING
, *PVIDEO_PORT_ADDRESS_MAPPING
;
62 struct _VIDEO_PORT_AGP_VIRTUAL_MAPPING
;
64 typedef struct _VIDEO_PORT_AGP_MAPPING
68 PHYSICAL_ADDRESS PhysicalAddress
;
69 } VIDEO_PORT_AGP_MAPPING
, *PVIDEO_PORT_AGP_MAPPING
;
71 typedef struct _VIDEO_PORT_AGP_VIRTUAL_MAPPING
73 PVIDEO_PORT_AGP_MAPPING AgpMapping
;
76 } VIDEO_PORT_AGP_VIRTUAL_MAPPING
, *PVIDEO_PORT_AGP_VIRTUAL_MAPPING
;
78 typedef struct _VIDEO_PORT_DRIVER_EXTENSION
80 VIDEO_HW_INITIALIZATION_DATA InitializationData
;
82 UNICODE_STRING RegistryPath
;
83 } VIDEO_PORT_DRIVER_EXTENSION
, *PVIDEO_PORT_DRIVER_EXTENSION
;
85 typedef struct _VIDEO_PORT_DEVICE_EXTENSTION
88 PDRIVER_OBJECT DriverObject
;
89 PDEVICE_OBJECT PhysicalDeviceObject
;
90 PDEVICE_OBJECT FunctionalDeviceObject
;
91 PDEVICE_OBJECT NextDeviceObject
;
92 UNICODE_STRING RegistryPath
;
93 PKINTERRUPT InterruptObject
;
94 KSPIN_LOCK InterruptSpinLock
;
95 PCM_RESOURCE_LIST AllocatedResources
;
96 ULONG InterruptVector
;
98 BOOLEAN InterruptShared
;
99 INTERFACE_TYPE AdapterInterfaceType
;
100 ULONG SystemIoBusNumber
;
101 ULONG SystemIoSlotNumber
;
102 LIST_ENTRY AddressMappingListHead
;
104 VIDEO_PORT_DRIVER_EXTENSION
*DriverExtension
;
106 AGP_BUS_INTERFACE_STANDARD AgpInterface
;
108 CHAR MiniPortDeviceExtension
[1];
109 } VIDEO_PORT_DEVICE_EXTENSION
, *PVIDEO_PORT_DEVICE_EXTENSION
;
111 #define VIDEO_PORT_GET_DEVICE_EXTENSION(MiniportExtension) \
114 VIDEO_PORT_DEVICE_EXTENSION, \
115 MiniPortDeviceExtension)
121 PDEVICE_OBJECT DeviceObject
,
122 PIO_STATUS_BLOCK IoStatusBlock
,
124 PIO_STACK_LOCATION Stack OPTIONAL
);
128 IN PVOID HwDeviceExtension
,
129 IN OUT PINTERFACE Interface
);
134 IntVideoPortAddDevice(
135 IN PDRIVER_OBJECT DriverObject
,
136 IN PDEVICE_OBJECT PhysicalDeviceObject
);
139 IntVideoPortDispatchOpen(
140 IN PDEVICE_OBJECT DeviceObject
,
144 IntVideoPortDispatchClose(
145 IN PDEVICE_OBJECT DeviceObject
,
149 IntVideoPortDispatchCleanup(
150 IN PDEVICE_OBJECT DeviceObject
,
154 IntVideoPortDispatchDeviceControl(
155 IN PDEVICE_OBJECT DeviceObject
,
159 IntVideoPortDispatchPnp(
160 IN PDEVICE_OBJECT DeviceObject
,
164 IntVideoPortDispatchPower(
165 IN PDEVICE_OBJECT DeviceObject
,
169 IntVideoPortDispatchWrite(
170 IN PDEVICE_OBJECT DeviceObject
,
174 IntVideoPortUnload(PDRIVER_OBJECT DriverObject
);
179 IntVideoPortSetupTimer(
180 IN PDEVICE_OBJECT DeviceObject
,
181 IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension
);
186 IntVideoPortSetupInterrupt(
187 IN PDEVICE_OBJECT DeviceObject
,
188 IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension
,
189 IN PVIDEO_PORT_CONFIG_INFO ConfigInfo
);
194 IntVideoPortMapPhysicalMemory(
196 IN PHYSICAL_ADDRESS PhysicalAddress
,
197 IN ULONG SizeInBytes
,
199 IN OUT PVOID
*VirtualAddress OPTIONAL
);
203 extern ULONG CsrssInitialized
;
204 extern PKPROCESS Csrss
;
207 IntAttachToCSRSS(PKPROCESS
*CallingProcess
, PKAPC_STATE ApcState
);
210 IntDetachFromCSRSS(PKPROCESS
*CallingProcess
, PKAPC_STATE ApcState
);
213 IntVideoPortCreateAdapterDeviceObject(
214 IN PDRIVER_OBJECT DriverObject
,
215 IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension
,
216 IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL
,
217 OUT PDEVICE_OBJECT
*DeviceObject OPTIONAL
);
220 IntVideoPortFindAdapter(
221 IN PDRIVER_OBJECT DriverObject
,
222 IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension
,
223 IN PDEVICE_OBJECT DeviceObject
);
228 IntInt10AllocateBuffer(
232 IN OUT PULONG Length
);
259 IN OUT PINT10_BIOS_ARGUMENTS BiosArguments
);
261 #endif /* VIDEOPRT_H */