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

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

16-bit imports and import of global variables.
(But there are some problems left)

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