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

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

Initial checkin of Win32k. (not tested & pe2lx not up-to-date!)

File size: 3.4 KB
Line 
1/* $Id: dev16.h,v 1.1 1999-09-06 02:19:57 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/**
46 * Regards goes to Matthieu Willm for this!
47 */
48typedef struct _DosTable /* dt */
49{
50 UCHAR cul; /* count of entries (dwords) in this table.*/
51 ULONG notinterestingAtAll;
52} DOSTABLE, FAR *PDOSTABLE , NEAR *NPDOSTABLE;
53
54typedef struct _DosTable2 /* dt2 */
55{
56 UCHAR cul; /* count of entries (dwords) in this table.*/
57 ULONG notinteresting0;
58 ULONG notinteresting1;
59 ULONG notinteresting2;
60 ULONG notinteresting3;
61 ULONG notinteresting4;
62 ULONG notinteresting5;
63 ULONG notinteresting6;
64 ULONG notinteresting7;
65 ULONG notinteresting8;
66 ULONG R0FlatCS;
67 ULONG R0FlatDS;
68 ULONG TKSSBase;
69 ULONG notinterestingC;
70 ULONG notinterestingD;
71 ULONG notinterestingE;
72 ULONG notinterestingF;
73 ULONG ReserveVM;
74 ULONG notinterestingH;
75 ULONG notinterestingI;
76} DOSTABLE2, FAR *PDOSTABLE2 , NEAR *NPDOSTABLE2;
77
78
79/*
80 * init functions
81 */
82USHORT NEAR dev0Init(PRPINITIN pRpIn, PRPINITOUT pRpOut);
83USHORT NEAR dev1Init(PRPINITIN pRpIn, PRPINITOUT pRpOut);
84USHORT NEAR R0Init16(PRP_GENIOCTL pRp);
85
86
87/*
88 * Thunking "functions" prototypes
89 */
90USHORT NEAR CallR0Init32(LIN pRpInit);
91
92
93/*
94 * These are only for use in the 'aDevHdrs'.
95 */
96extern void NEAR strategyAsm0(void);
97extern void NEAR strategyAsm1(void);
98
99/*
100 * Global data.
101 */
102extern DDHDR aDevHdrs[2];
103extern PFN Device_Help;
104extern ULONG TKSSBase16;
105extern USHORT R0FlatCS16;
106extern USHORT R0FlatDS16;
107
108
109/*
110 * Stack to Flat DS - 16-bit version.
111 */
112/*#define SSToDS_16(pStackVar) ((LIN)(getTKSSBaseValue() + (ULONG)(USHORT)(pStackVar)))*/
113#define SSToDS_16(pStackVar) (SSToDS_16a((void NEAR *)pStackVar))
114
115extern LIN SSToDS_16a(void NEAR *pStackVar);
116
117/*
118 * START and END labels. NOTE: these are not bytes only assembly labels.
119 */
120extern char PASCAL CODE16START ;
121extern char PASCAL DATA16START ;
122extern char PASCAL DATA16START ;
123extern char PASCAL DATA16_BSSSTART ;
124extern char PASCAL DATA16_CONSTSTART;
125extern char PASCAL CODE16START ;
126extern char PASCAL CODE32START ;
127extern char PASCAL DATA32START ;
128extern char PASCAL BSS32START ;
129extern char PASCAL CONST32_ROSTART ;
130
131extern char PASCAL CODE16END ;
132extern char PASCAL DATA16END ;
133extern char PASCAL DATA16END ;
134extern char PASCAL DATA16_BSSEND ;
135extern char PASCAL DATA16_CONSTEND;
136extern char PASCAL CODE16END ;
137extern char PASCAL CODE32END ;
138extern char PASCAL DATA32END ;
139extern char PASCAL BSS32END ;
140extern char PASCAL CONST32_ROEND ;
141
142
143
144
145#endif
Note: See TracBrowser for help on using the repository browser.