Naveen Neel / shedskin
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers miniport.h Source File

miniport.h

00001 /*
00002  * miniport.h
00003  *
00004  * Type definitions for miniport drivers
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #ifndef __MINIPORT_H
00024 #define __MINIPORT_H
00025 
00026 #if __GNUC__ >=3
00027 #pragma GCC system_header
00028 #endif
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00034 #include "ntddk.h"
00035 
00036 #define EMULATOR_READ_ACCESS              0x01
00037 #define EMULATOR_WRITE_ACCESS             0x02
00038 
00039 typedef enum _EMULATOR_PORT_ACCESS_TYPE {
00040     Uchar,
00041     Ushort,
00042     Ulong
00043 } EMULATOR_PORT_ACCESS_TYPE, *PEMULATOR_PORT_ACCESS_TYPE;
00044 
00045 
00046 typedef struct _EMULATOR_ACCESS_ENTRY {
00047   ULONG  BasePort;
00048   ULONG  NumConsecutivePorts;
00049   EMULATOR_PORT_ACCESS_TYPE  AccessType;
00050   UCHAR  AccessMode;
00051   UCHAR  StringSupport;
00052   PVOID  Routine;
00053 } EMULATOR_ACCESS_ENTRY, *PEMULATOR_ACCESS_ENTRY;
00054 
00055 #ifndef VIDEO_ACCESS_RANGE_DEFINED /* also in video.h */
00056 #define VIDEO_ACCESS_RANGE_DEFINED
00057 typedef struct _VIDEO_ACCESS_RANGE {
00058   PHYSICAL_ADDRESS  RangeStart;
00059   ULONG  RangeLength;
00060   UCHAR  RangeInIoSpace;
00061   UCHAR  RangeVisible;
00062   UCHAR  RangeShareable;
00063   UCHAR  RangePassive;
00064 } VIDEO_ACCESS_RANGE, *PVIDEO_ACCESS_RANGE;
00065 #endif
00066 
00067 typedef VOID DDKAPI
00068 (*PBANKED_SECTION_ROUTINE)(
00069   /*IN*/ ULONG  ReadBank,
00070   /*IN*/ ULONG  WriteBank,
00071   /*IN*/ PVOID  Context);
00072 
00073 #ifdef __cplusplus
00074 }
00075 #endif
00076 
00077 #endif /* __MINIPORT_H */