source: trunk/src/win32k/kKrnlLib/include/dev32.h

Last change on this file was 9514, checked in by bird, 23 years ago

Cleanup/Backup.

File size: 4.5 KB
Line 
1/* $Id: dev32.h,v 1.9 2002-12-16 02:25:06 bird Exp $
2 *
3 * dev32 - header file for 32-bit part of the driver.
4 *
5 * Copyright (c) 1999 knut st. osmundsen
6 *
7 * Project Odin Software License can be found in LICENSE.TXT
8 *
9 */
10#ifndef _dev32_h_
11#define _dev32_h_
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17/*
18 * Wrapper for declaration from dev1632.h used in this file.
19 */
20#ifndef _dev1632_h_
21 #define RP32INIT void
22 #define PRP32INIT void *
23 #define RP32GENIOCTL void
24 #define PRP32GENIOCTL void *
25 #define RP32GENIOCTL void
26 #define PRP32GENIOCTL void *
27 #define RP32OPENCLOSE void
28 #define PRP32OPENCLOSE void *
29 #define PKRNLINFO void *
30#endif
31
32
33/*
34 * Defines from reqpkt.h.
35 */
36#define MAX_DISKDD_CMD 29
37
38#define STERR 0x8000 /* Bit 15 - Error */
39#define STINTER 0x0400 /* Bit 10 - Interim character */
40#define STBUI 0x0200 /* Bit 9 - Busy */
41#define STDON 0x0100 /* Bit 8 - Done */
42#define STECODE 0x00FF /* Error code */
43#define WRECODE 0x0000
44
45#define STATUS_DONE 0x0100
46#define STATUS_ERR_UNKCMD 0x8003
47
48
49#define RPF_Int13RP 0x01 /* Int 13 Request Packet */
50#define RPF_CallOutDone 0x02 /* Int 13 Callout completed */
51#define RPF_PktDiskIOTchd 0x04 /* Disk_IO has touched this packet */
52#define RPF_CHS_ADDRESSING 0x08 /* CHS Addressing used in RBA field */
53#define RPF_Internal 0x10 /* Internal request packet command */
54#define RPF_TraceComplete 0x20 /* Trace completion flag */
55
56
57/*
58 * Function prototypes.
59 */
60ULONG _System GetKernelInfo32(PKRNLINFO pKrnlInfo);
61ULONG _System VerifyImportTab32(void);
62#ifdef _dev1632_h_
63ULONG _System LookupKrnlEntry32(PLKE32PARAM plke32Param);
64#endif
65#ifdef _OS2KLDR_H_
66PMTE _System GetOS2KrnlMTE(void); /* (devfirst.asm) */
67#endif
68ULONG _Optlink InitCallGate(void);
69ULONG _Optlink x86DisableWriteProtect(void);
70ULONG _Optlink x86RestoreWriteProtect(ULONG flWP);
71int interpretFunctionProlog32(char *pach);
72int interpretFunctionProlog16(char *pach);
73int InitkKrnlLibLog(void);
74int krnlInit(void);
75int krnlInit2(void);
76
77
78
79/*
80 * Global variables
81 */
82#ifdef _OS2KLDR_H_
83extern POTE pKrnlOTE; /* d32init.c */
84extern PSMTE pKrnlSMTE; /* d32init.c */
85#endif
86
87extern ULONG Device_Help;
88#if defined(__IBMC__) || defined(__IBMCPP__)
89 #pragma map( Device_Help , "_Device_Help" )
90#endif
91
92extern PULONG pulTKSSBase32;
93#if defined(__IBMC__) || defined(__IBMCPP__)
94 #pragma map( pulTKSSBase32 , "_pulTKSSBase32" )
95#endif
96extern USHORT CallGateGDT;
97
98#ifndef SSToDS
99/*
100 * SSToDS( stack pointer )
101 *
102 * In RING-0 this translates pointers to stack memory in the
103 * Stack Segment (SS) to pointers to stack memory in the
104 * Data Segment (DS). SS is 16-bit compatible, DS is 32-bit flat.
105 * It is vitally important to use this macro whenever creating
106 * a pointer to stack memory which don't implies that is a pointer
107 * relative to SS. For example when passing the pointer to an stack
108 * variable into an function call; like the addToModule calls.
109 *
110 * Warning - At init-time you have ot make sure that the pulTKSSBase32 pointer is set!
111 *
112 * @returns 32-bit FLAT pointer.
113 */
114#ifdef RING0
115 #define SSToDS(a) ((PVOID)((ULONG)(a) + *pulTKSSBase32))
116#else
117 #define SSToDS(a) ((PVOID)(a))
118#endif
119
120#endif /* SSToDS */
121
122#ifdef __cplusplus
123}
124#endif
125
126
127/*
128 * START and END labels. NOTE: these are not bytes only assembly labels.
129 */
130extern char DATA16START ;
131extern char DATA16_BSSSTART ;
132extern char DATA16_CONSTSTART;
133extern char DATA16_INITSTART ;
134extern char DATA16_INIT_BSSSTART ;
135extern char DATA16_INIT_CONSTSTART;
136extern char CODE16START ;
137extern char CODE16_INITSTART ;
138extern char CODE32START ;
139extern char DATA32START ;
140extern char BSS32START ;
141extern char CONST32_ROSTART ;
142extern char _VFTSTART ;
143extern char EH_DATASTART ;
144
145extern char CODE16END ;
146extern char DATA16END ;
147extern char DATA16_BSSEND ;
148extern char DATA16_CONSTEND;
149extern char DATA16_INITEND ;
150extern char DATA16_INIT_BSSEND ;
151extern char DATA16_INIT_CONSTEND;
152extern char CODE16END ;
153extern char CODE16_INITEND ;
154extern char CODE32END ;
155extern char DATA32END ;
156extern char BSS32END ;
157extern char CONST32_ROEND ;
158extern char _VFTEND ;
159extern char EH_DATAEND ;
160
161#endif
Note: See TracBrowser for help on using the repository browser.