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

Last change on this file since 1467 was 1467, checked in by bird, 26 years ago

Corrections to make win32k work.
(And now it does work, at least at my test machine...)

File size: 4.0 KB
Line 
1/* $Id: dev16.h,v 1.2 1999-10-27 02:02:56 bird Exp $
2 * dev16 - 16-bit specific. Should not be used in 32-bit C/C++.
3 *
4 * Copyright (c) 1999 knut st. osmundsen
5 *
6 */
7#ifndef _d16_h_
8#define _d16_h_
9
10#ifndef VMDHA_USEHIGHMEM /* macro from dhcalls.h where LIN and PLIN normally is declared. */
11typedef ULONG LIN;
12typedef ULONG FAR *PLIN;
13#endif
14
15/*
16 * Ring 0 init IOCtl (dev1 -> dev0)
17 */
18#define D16_IOCTL_CAT 0xC0
19#define D16_IOCTL_RING0INIT 0x40
20typedef struct _D16R0INITDATA
21{
22 USHORT Status;
23} D16R0INITDATA;
24typedef D16R0INITDATA FAR *PD16R0INITDATA;
25
26typedef struct _D16R0INITPARAM
27{
28 PRPINITIN pRpInitIn;
29} D16R0INITPARAM;
30typedef D16R0INITPARAM FAR *PD16R0INITPARAM;
31
32
33/*
34 * Get Kernel OTEs. No params. Data is KRNLOBJTABLE (dev1632.h).
35 */
36#define D16_IOCTL_GETKRNLOTES 0x41
37
38
39/*
40 * Get Kernel OTEs. No params. No data. aProcTab is used.
41 */
42#define D16_IOCTL_VERIFYPROCTAB 0x42
43
44/**
45 * Regards goes to Matthieu Willm for (parts of) this!
46 */
47#ifdef INCL_16
48 typedef void FAR * FPVOID;
49#else
50 typedef ULONG FPVOID;
51#endif
52typedef struct _DosTable /* dt */
53{
54 UCHAR cul; /* count of entries (dwords) in this table.*/
55 FPVOID fph_HardError;
56 FPVOID fph_UCase;
57 ULONG UnknownOrReserved1;
58 ULONG UnknownOrReserved2;
59 ULONG UnknownOrReserved3;
60 FPVOID fph_MemMapAlias;
61 FPVOID fph_MemUnmapAlias;
62 FPVOID fph_GoProtAll;
63 FPVOID fph_GoRealAll;
64 FPVOID fph_doshlp_RedirDev;
65 ULONG UnknownOrReserved4;
66 ULONG UnknownOrReserved5;
67 FPVOID fph_SFFromSFN;
68 FPVOID fph_SegGetInfo;
69 FPVOID fph_AsgCheckDrive;
70 ULONG UnknownOrReserved6;
71 ULONG UnknownOrReserved7;
72} DOSTABLE, FAR *PDOSTABLE , NEAR *NPDOSTABLE;
73
74typedef struct _DosTable2 /* dt2 */
75{
76 UCHAR cul; /* count of entries (dwords) in this table.*/
77 FPVOID fpErrMap24;
78 FPVOID fpErrMap24End;
79 FPVOID fpErr_Table_24;
80 FPVOID fpCDSAddr;
81 FPVOID fpGDT_RDR1;
82 FPVOID fpInterrupLevel;
83 FPVOID fp_cInDos;
84 ULONG UnknownOrReserved1;
85 ULONG UnknownOrReserved2;
86 ULONG R0FlatCS;
87 ULONG R0FlatDS;
88 LIN pTKSSBase;
89 LIN pintSwitchStack;
90 LIN pprivatStack;
91 FPVOID fpPhysDiskTablePtr;
92 LIN pforceEMHandler;
93 LIN pReserveVM;
94 LIN p_pgpPageDir;
95 ULONG UnknownOrReserved3;
96} DOSTABLE2, FAR *PDOSTABLE2 , NEAR *NPDOSTABLE2;
97
98
99/*
100 * init functions
101 */
102USHORT NEAR dev0Init(PRPINITIN pRpIn, PRPINITOUT pRpOut);
103USHORT NEAR dev1Init(PRPINITIN pRpIn, PRPINITOUT pRpOut);
104USHORT NEAR R0Init16(PRP_GENIOCTL pRp);
105
106
107/*
108 * Thunking "functions" prototypes
109 */
110USHORT NEAR CallR0Init32(LIN pRpInit);
111USHORT NEAR CallGetOTEs32(ULONG addressOTEBuf);
112USHORT NEAR CallVerifyProcTab32(void);
113
114/*
115 * These are only for use in the 'aDevHdrs'.
116 */
117extern void NEAR strategyAsm0(void);
118extern void NEAR strategyAsm1(void);
119
120/*
121 * Global data.
122 */
123extern DDHDR aDevHdrs[2];
124extern PFN Device_Help;
125extern ULONG TKSSBase16;
126extern USHORT R0FlatCS16;
127extern USHORT R0FlatDS16;
128
129
130/*
131 * Stack to Flat DS - 16-bit version.
132 */
133/*#define SSToDS_16(pStackVar) ((LIN)(getTKSSBaseValue() + (ULONG)(USHORT)(pStackVar)))*/
134#define SSToDS_16(pStackVar) (SSToDS_16a((void NEAR *)pStackVar))
135
136extern LIN SSToDS_16a(void NEAR *pStackVar);
137
138/*
139 * START and END labels. NOTE: these are not bytes only assembly labels.
140 */
141extern char PASCAL CODE16START ;
142extern char PASCAL DATA16START ;
143extern char PASCAL DATA16START ;
144extern char PASCAL DATA16_BSSSTART ;
145extern char PASCAL DATA16_CONSTSTART;
146extern char PASCAL CODE16START ;
147extern char PASCAL CODE32START ;
148extern char PASCAL DATA32START ;
149extern char PASCAL BSS32START ;
150extern char PASCAL CONST32_ROSTART ;
151
152extern char PASCAL CODE16END ;
153extern char PASCAL DATA16END ;
154extern char PASCAL DATA16END ;
155extern char PASCAL DATA16_BSSEND ;
156extern char PASCAL DATA16_CONSTEND;
157extern char PASCAL CODE16END ;
158extern char PASCAL CODE32END ;
159extern char PASCAL DATA32END ;
160extern char PASCAL BSS32END ;
161extern char PASCAL CONST32_ROEND ;
162
163
164
165
166#endif
Note: See TracBrowser for help on using the repository browser.