added ntagp.h

svn path=/trunk/; revision=12768
This commit is contained in:
Gregor Anich 2005-01-03 23:12:56 +00:00
parent 352d524633
commit 57cef8643d

View file

@ -0,0 +1,111 @@
/*
* ntagp.h
*
* NT AGP bus driver interface
*
* This file is part of the w32api package.
*
* Contributors:
* Created by Gregor Anich <blight@blight.eu.org>
*
* THIS SOFTWARE IS NOT COPYRIGHTED
*
* This source code is offered for use in the public domain. You may
* use, modify or distribute it freely.
*
* This code is distributed in the hope that it will be useful but
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
* DISCLAIMED. This includes but is not limited to warranties of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifndef __NTAGP_H
#define __NTAGP_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#ifdef __cplusplus
extern "C" {
#endif
#include "ntddk.h"
#include "video.h"
#define AGP_BUS_INTERFACE_V1 1L
#define AGP_BUS_INTERFACE_V2 2L
/* Indicates wether the GART supports mapping of physical memory for the CPU */
#define AGP_CAPABILITIES_MAP_PHYSICAL 0x00000001L
typedef NTSTATUS
(DDKAPI *PAGP_BUS_COMMIT_MEMORY)(
IN PVOID AgpContext,
IN PVOID MapHandle,
IN ULONG NumberOfPages,
IN ULONG OffsetInPages,
IN OUT PMDL Mdl OPTIONAL,
OUT PHYSICAL_ADDRESS *MemoryBase);
typedef NTSTATUS
(DDKAPI *PAGP_BUS_FREE_MEMORY)(
IN PVOID AgpContext,
IN PVOID MapHandle,
IN ULONG NumberOfPages,
IN ULONG OffsetInPages);
typedef NTSTATUS
(DDKAPI *PAGP_BUS_RELEASE_MEMORY)(
IN PVOID AgpContext,
IN PVOID MapHandle);
typedef NTSTATUS
(DDKAPI *PAGP_BUS_RESERVE_MEMORY)(
IN PVOID AgpContext,
IN ULONG NumberOfPages,
IN MEMORY_CACHING_TYPE MemoryType,
OUT PVOID *MapHandle,
OUT PHYSICAL_ADDRESS *PhysicalAddress OPTIONAL);
typedef NTSTATUS
(DDKAPI *PAGP_BUS_SET_RATE)(
IN PVOID AgpContext,
IN ULONG AgpRate);
typedef NTSTATUS
(DDKAPI *PAGP_GET_MAPPED_PAGES)(
IN PVOID AgpContext,
IN PVOID MapHandle,
IN ULONG NumberOfPages,
IN ULONG OffsetInPages,
OUT PMDL Mdl);
typedef struct _AGP_BUS_INTERFACE_STANDARD {
USHORT Size;
USHORT Version;
PVOID AgpContext;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
ULONG Capabilities;
PAGP_BUS_RESERVE_MEMORY ReserveMemory;
PAGP_BUS_RELEASE_MEMORY ReleaseMemory;
PAGP_BUS_COMMIT_MEMORY CommitMemory;
PAGP_BUS_FREE_MEMORY FreeMemory;
PAGP_GET_MAPPED_PAGES GetMappedPages;
PAGP_BUS_SET_RATE SetRate;
} AGP_BUS_INTERFACE_STANDARD, *PAGP_BUS_INTERFACE_STANDARD;
#define AGP_BUS_INTERFACE_V2_SIZE sizeof(AGP_BUS_INTERFACE_STANDARD)
#define AGP_BUS_INTERFACE_V1_SIZE \
(AGP_BUS_INTERFACE_V2_SIZE - sizeof(PAGP_BUS_SET_RATE))
#ifdef __cplusplus
}
#endif
#endif /* __NTAGP_H */