Home | History | Annotate | Download | only in ddk
      1 /*
      2  * videoagp.h
      3  *
      4  * Video miniport AGP interface
      5  *
      6  * This file is part of the w32api package.
      7  *
      8  * Contributors:
      9  *   Created by Casper S. Hornstrup <chorns (at) users.sourceforge.net>
     10  *
     11  * THIS SOFTWARE IS NOT COPYRIGHTED
     12  *
     13  * This source code is offered for use in the public domain. You may
     14  * use, modify or distribute it freely.
     15  *
     16  * This code is distributed in the hope that it will be useful but
     17  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
     18  * DISCLAIMED. This includes but is not limited to warranties of
     19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     20  *
     21  */
     22 
     23 #pragma once
     24 
     25 #define __VIDEOAGP_H__
     26 
     27 #ifdef __cplusplus
     28 extern "C" {
     29 #endif
     30 
     31 #define VIDEO_AGP_RATE_1X                 0x00000001
     32 #define VIDEO_AGP_RATE_2X                 0x00000002
     33 #define VIDEO_AGP_RATE_4X                 0x00000004
     34 #define VIDEO_AGP_RATE_8X                 0x00000008
     35 
     36 typedef enum _VIDEO_PORT_CACHE_TYPE {
     37   VpNonCached = 0,
     38   VpWriteCombined,
     39   VpCached
     40 } VIDEO_PORT_CACHE_TYPE;
     41 
     42 typedef BOOLEAN
     43 (NTAPI *PAGP_COMMIT_PHYSICAL)(
     44   IN PVOID HwDeviceExtension,
     45   IN PVOID PhysicalReserveContext,
     46   IN ULONG Pages,
     47   IN ULONG Offset);
     48 
     49 typedef PVOID
     50 (NTAPI *PAGP_COMMIT_VIRTUAL)(
     51   IN PVOID HwDeviceExtension,
     52   IN PVOID VirtualReserveContext,
     53   IN ULONG Pages,
     54   IN ULONG Offset);
     55 
     56 typedef VOID
     57 (NTAPI *PAGP_FREE_PHYSICAL)(
     58   IN PVOID HwDeviceExtension,
     59   IN PVOID PhysicalReserveContext,
     60   IN ULONG Pages,
     61   IN ULONG Offset);
     62 
     63 typedef VOID
     64 (NTAPI *PAGP_FREE_VIRTUAL)(
     65   IN PVOID HwDeviceExtension,
     66   IN PVOID VirtualReserveContext,
     67   IN ULONG Pages,
     68   IN ULONG Offset);
     69 
     70 typedef VOID
     71 (NTAPI *PAGP_RELEASE_PHYSICAL)(
     72   IN PVOID HwDeviceExtension,
     73   IN PVOID PhysicalReserveContext);
     74 
     75 typedef VOID
     76 (NTAPI *PAGP_RELEASE_VIRTUAL)(
     77   IN PVOID HwDeviceExtension,
     78   IN PVOID VirtualReserveContext);
     79 
     80 typedef PHYSICAL_ADDRESS
     81 (NTAPI *PAGP_RESERVE_PHYSICAL)(
     82   IN PVOID HwDeviceExtension,
     83   IN ULONG Pages,
     84   IN VIDEO_PORT_CACHE_TYPE  Caching,
     85   OUT PVOID *PhysicalReserveContext);
     86 
     87 typedef PVOID
     88 (NTAPI *PAGP_RESERVE_VIRTUAL)(
     89   IN PVOID HwDeviceExtension,
     90   IN HANDLE ProcessHandle,
     91   IN PVOID PhysicalReserveContext,
     92   OUT PVOID *VirtualReserveContext);
     93 
     94 typedef BOOLEAN
     95 (NTAPI *PAGP_SET_RATE)(
     96   IN PVOID HwDeviceExtension,
     97   IN ULONG AgpRate);
     98 
     99 typedef struct _VIDEO_PORT_AGP_SERVICES {
    100   PAGP_RESERVE_PHYSICAL AgpReservePhysical;
    101   PAGP_RELEASE_PHYSICAL AgpReleasePhysical;
    102   PAGP_COMMIT_PHYSICAL AgpCommitPhysical;
    103   PAGP_FREE_PHYSICAL AgpFreePhysical;
    104   PAGP_RESERVE_VIRTUAL AgpReserveVirtual;
    105   PAGP_RELEASE_VIRTUAL AgpReleaseVirtual;
    106   PAGP_COMMIT_VIRTUAL AgpCommitVirtual;
    107   PAGP_FREE_VIRTUAL AgpFreeVirtual;
    108   ULONGLONG AllocationLimit;
    109 } VIDEO_PORT_AGP_SERVICES, *PVIDEO_PORT_AGP_SERVICES;
    110 
    111 BOOLEAN
    112 NTAPI
    113 VideoPortGetAgpServices(
    114   IN PVOID HwDeviceExtension,
    115   IN PVIDEO_PORT_AGP_SERVICES AgpServices);
    116 
    117 #ifdef __cplusplus
    118 }
    119 #endif
    120