source: trunk/src/win32k/include/dev16.h

Last change on this file was 6227, checked in by bird, 24 years ago

Declared Win32k Open/Close thunking procedures.

File size: 5.3 KB
RevLine 
[6227]1/* $Id: dev16.h,v 1.11 2001-07-08 03:05:28 bird Exp $
[847]2 * dev16 - 16-bit specific. Should not be used in 32-bit C/C++.
3 *
4 * Copyright (c) 1999 knut st. osmundsen
5 *
[1678]6 * Project Odin Software License can be found in LICENSE.TXT
7 *
[847]8 */
9#ifndef _d16_h_
10#define _d16_h_
11
12#ifndef VMDHA_USEHIGHMEM /* macro from dhcalls.h where LIN and PLIN normally is declared. */
13typedef ULONG LIN;
14typedef ULONG FAR *PLIN;
15#endif
[2898]16#ifndef MAX_DISKDD_CMD /* macro from reqpkt.h where these normally is declared. */
17typedef void FAR *PRPINITIN;
18typedef void FAR *PRPINITOUT;
19typedef void FAR *PRP_GENIOCTL;
20typedef ULONG DDHDR;
21#endif
[847]22
23/*
24 * Ring 0 init IOCtl (dev1 -> dev0)
25 */
26#define D16_IOCTL_CAT 0xC0
27#define D16_IOCTL_RING0INIT 0x40
28typedef struct _D16R0INITDATA
29{
[4185]30 USHORT usRcInit32;
[847]31} D16R0INITDATA;
32typedef D16R0INITDATA FAR *PD16R0INITDATA;
33
34typedef struct _D16R0INITPARAM
35{
36 PRPINITIN pRpInitIn;
37} D16R0INITPARAM;
38typedef D16R0INITPARAM FAR *PD16R0INITPARAM;
39
40
41/*
42 * Get Kernel OTEs. No params. Data is KRNLOBJTABLE (dev1632.h).
43 */
[2898]44#define D16_IOCTL_GETKRNLINFO 0x41
[847]45
46
47/*
[2898]48 * Verify aImportTab. No params. No data (aImportTab is used).
[847]49 */
[2898]50#define D16_IOCTL_VERIFYIMPORTTAB 0x42
[4185]51typedef struct _D16VERIFYIMPORTTABDATA
52{
53 USHORT usRc;
54} D16VERIFYIMPORTTABDATA;
55typedef D16VERIFYIMPORTTABDATA FAR *PD16VERIFYIMPORTTABDATA;
[847]56
[2898]57
[847]58/**
[1467]59 * Regards goes to Matthieu Willm for (parts of) this!
[847]60 */
[1467]61#ifdef INCL_16
62 typedef void FAR * FPVOID;
63#else
64 typedef ULONG FPVOID;
65#endif
[847]66typedef struct _DosTable /* dt */
67{
68 UCHAR cul; /* count of entries (dwords) in this table.*/
[1467]69 FPVOID fph_HardError;
70 FPVOID fph_UCase;
71 ULONG UnknownOrReserved1;
72 ULONG UnknownOrReserved2;
73 ULONG UnknownOrReserved3;
74 FPVOID fph_MemMapAlias;
75 FPVOID fph_MemUnmapAlias;
76 FPVOID fph_GoProtAll;
77 FPVOID fph_GoRealAll;
78 FPVOID fph_doshlp_RedirDev;
79 ULONG UnknownOrReserved4;
80 ULONG UnknownOrReserved5;
81 FPVOID fph_SFFromSFN;
82 FPVOID fph_SegGetInfo;
83 FPVOID fph_AsgCheckDrive;
84 ULONG UnknownOrReserved6;
85 ULONG UnknownOrReserved7;
[847]86} DOSTABLE, FAR *PDOSTABLE , NEAR *NPDOSTABLE;
87
88typedef struct _DosTable2 /* dt2 */
89{
90 UCHAR cul; /* count of entries (dwords) in this table.*/
[1467]91 FPVOID fpErrMap24;
92 FPVOID fpErrMap24End;
93 FPVOID fpErr_Table_24;
94 FPVOID fpCDSAddr;
95 FPVOID fpGDT_RDR1;
96 FPVOID fpInterrupLevel;
97 FPVOID fp_cInDos;
98 ULONG UnknownOrReserved1;
99 ULONG UnknownOrReserved2;
[847]100 ULONG R0FlatCS;
101 ULONG R0FlatDS;
[1467]102 LIN pTKSSBase;
103 LIN pintSwitchStack;
104 LIN pprivatStack;
105 FPVOID fpPhysDiskTablePtr;
106 LIN pforceEMHandler;
107 LIN pReserveVM;
108 LIN p_pgpPageDir;
109 ULONG UnknownOrReserved3;
[847]110} DOSTABLE2, FAR *PDOSTABLE2 , NEAR *NPDOSTABLE2;
111
112
113/*
114 * init functions
115 */
116USHORT NEAR dev0Init(PRPINITIN pRpIn, PRPINITOUT pRpOut);
117USHORT NEAR dev1Init(PRPINITIN pRpIn, PRPINITOUT pRpOut);
118USHORT NEAR R0Init16(PRP_GENIOCTL pRp);
[2836]119USHORT NEAR initGetDosTableData(void);
[4164]120#if 0 /*ndef CODE16_INIT*/
121#pragma alloc_text(CODE16_INIT, dev0Init, dev1Init, R0Init16, initGetDosTableData)
122#endif
[847]123
124/*
125 * Thunking "functions" prototypes
126 */
127USHORT NEAR CallR0Init32(LIN pRpInit);
[2898]128USHORT NEAR CallGetKernelInfo32(ULONG addressKrnlInfoBuf);
[2832]129USHORT NEAR CallVerifyImportTab32(void);
[2799]130USHORT NEAR CallElfIOCtl(LIN pRpIOCtl);
131USHORT NEAR CallWin32kIOCtl(LIN pRpIOCtl);
[6227]132USHORT NEAR CallWin32kOpen(LIN pRpOpen);
133USHORT NEAR CallWin32kClose(LIN pRpClose);
[4164]134#if 0 /*ndef CODE16_INIT*/
135#pragma alloc_text(CODE16_INIT, CallR0Init32, CallVerifyImportTab32, CallGetKernelInfo32)
136#endif
[847]137
[2799]138
[847]139/*
140 * These are only for use in the 'aDevHdrs'.
141 */
142extern void NEAR strategyAsm0(void);
143extern void NEAR strategyAsm1(void);
144
145/*
146 * Global data.
147 */
148extern DDHDR aDevHdrs[2];
149extern PFN Device_Help;
150extern ULONG TKSSBase16;
151extern USHORT R0FlatCS16;
152extern USHORT R0FlatDS16;
[2898]153extern BOOL fInitTime;
[847]154
155
156/*
157 * Stack to Flat DS - 16-bit version.
158 */
159/*#define SSToDS_16(pStackVar) ((LIN)(getTKSSBaseValue() + (ULONG)(USHORT)(pStackVar)))*/
160#define SSToDS_16(pStackVar) (SSToDS_16a((void NEAR *)pStackVar))
161
[4164]162extern LIN NEAR SSToDS_16a(void NEAR *pStackVar);
[847]163
164/*
165 * START and END labels. NOTE: these are not bytes only assembly labels.
166 */
167extern char PASCAL DATA16START ;
168extern char PASCAL DATA16_BSSSTART ;
169extern char PASCAL DATA16_CONSTSTART;
[4164]170extern char PASCAL DATA16_INITSTART ;
171extern char PASCAL DATA16_INIT_BSSSTART ;
172extern char PASCAL DATA16_INIT_CONSTSTART;
[847]173extern char PASCAL CODE16START ;
[4164]174extern char PASCAL CODE16_INITSTART ;
[847]175extern char PASCAL CODE32START ;
176extern char PASCAL DATA32START ;
177extern char PASCAL BSS32START ;
178extern char PASCAL CONST32_ROSTART ;
[2898]179extern char PASCAL _VFTSTART ;
180extern char PASCAL EH_DATASTART ;
[847]181
182extern char PASCAL CODE16END ;
183extern char PASCAL DATA16END ;
184extern char PASCAL DATA16_BSSEND ;
185extern char PASCAL DATA16_CONSTEND;
[4164]186extern char PASCAL DATA16_INITEND ;
187extern char PASCAL DATA16_INIT_BSSEND ;
188extern char PASCAL DATA16_INIT_CONSTEND;
[847]189extern char PASCAL CODE16END ;
[4164]190extern char PASCAL CODE16_INITEND ;
[847]191extern char PASCAL CODE32END ;
192extern char PASCAL DATA32END ;
193extern char PASCAL BSS32END ;
194extern char PASCAL CONST32_ROEND ;
[2898]195extern char PASCAL _VFTEND ;
196extern char PASCAL EH_DATAEND ;
[847]197
198
199#endif
Note: See TracBrowser for help on using the repository browser.