source: trunk/src/win32k/include/dev32.h@ 5120

Last change on this file since 5120 was 5086, checked in by bird, 25 years ago

Moved ldrCalls.h into the OS2Krnl.h tree as OS2KLDR.h.
Also moved the Ldr definitions from OS2Krnl.h and into OS2KLDR.h.

File size: 3.8 KB
Line 
1/* $Id: dev32.h,v 1.10 2001-02-10 11:11:43 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 PKRNLINFO void *
26#endif
27
28
29/*
30 * Defines from reqpkt.h.
31 */
32#define MAX_DISKDD_CMD 29
33
34#define STERR 0x8000 /* Bit 15 - Error */
35#define STINTER 0x0400 /* Bit 10 - Interim character */
36#define STBUI 0x0200 /* Bit 9 - Busy */
37#define STDON 0x0100 /* Bit 8 - Done */
38#define STECODE 0x00FF /* Error code */
39#define WRECODE 0x0000
40
41#define STATUS_DONE 0x0100
42#define STATUS_ERR_UNKCMD 0x8003
43
44
45#define RPF_Int13RP 0x01 /* Int 13 Request Packet */
46#define RPF_CallOutDone 0x02 /* Int 13 Callout completed */
47#define RPF_PktDiskIOTchd 0x04 /* Disk_IO has touched this packet */
48#define RPF_CHS_ADDRESSING 0x08 /* CHS Addressing used in RBA field */
49#define RPF_Internal 0x10 /* Internal request packet command */
50#define RPF_TraceComplete 0x20 /* Trace completion flag */
51
52
53/*
54 * Function prototypes.
55 */
56#if !defined(__cplusplus) && defined(RING0)
57USHORT _loadds _Far32 _Pascal R0Init32(RP32INIT *pRpInit);
58USHORT _loadds _Far32 _Pascal GetKernelInfo32(PKRNLINFO pKrnlInfo);
59USHORT _loadds _Far32 _Pascal VerifyImportTab32(void);
60USHORT _loadds _Far32 _Pascal ElfIOCtl(PRP32GENIOCTL pRpIOCtl);
61USHORT _loadds _Far32 _Pascal Win32kIOCtl(PRP32GENIOCTL pRpIOCtl);
62#endif
63#ifdef _OS2KLDR_H_
64PMTE _System GetOS2KrnlMTE(void); /* (devfirst.asm) */
65#endif
66
67
68/*
69 * Global variables
70 */
71extern PULONG pulTKSSBase32;
72
73/*
74 * SSToDS( stack pointer )
75 *
76 * In RING-0 this translates pointers to stack memory in the
77 * Stack Segment (SS) to pointers to stack memory in the
78 * Data Segment (DS). SS is 16-bit compatible, DS is 32-bit flat.
79 * It is vitally important to use this macro whenever creating
80 * a pointer to stack memory which don't implies that is a pointer
81 * relative to SS. For example when passing the pointer to an stack
82 * variable into an function call; like the addToModule calls.
83 *
84 * Warning - At init-time you have ot make sure that the pulTKSSBase32 pointer is set!
85 *
86 * @returns 32-bit FLAT pointer.
87 */
88#ifdef RING0
89 #define SSToDS(a) ((PVOID)((ULONG)(a) + *pulTKSSBase32))
90#else
91 #define SSToDS(a) ((PVOID)(a))
92#endif
93
94#ifdef __cplusplus
95}
96#endif
97
98
99/*
100 * START and END labels. NOTE: these are not bytes only assembly labels.
101 */
102extern char DATA16START ;
103extern char DATA16_BSSSTART ;
104extern char DATA16_CONSTSTART;
105extern char DATA16_INITSTART ;
106extern char DATA16_INIT_BSSSTART ;
107extern char DATA16_INIT_CONSTSTART;
108extern char CODE16START ;
109extern char CODE16_INITSTART ;
110extern char CODE32START ;
111extern char DATA32START ;
112extern char BSS32START ;
113extern char CONST32_ROSTART ;
114extern char _VFTSTART ;
115extern char EH_DATASTART ;
116
117extern char CODE16END ;
118extern char DATA16END ;
119extern char DATA16_BSSEND ;
120extern char DATA16_CONSTEND;
121extern char DATA16_INITEND ;
122extern char DATA16_INIT_BSSEND ;
123extern char DATA16_INIT_CONSTEND;
124extern char CODE16END ;
125extern char CODE16_INITEND ;
126extern char CODE32END ;
127extern char DATA32END ;
128extern char BSS32END ;
129extern char CONST32_ROEND ;
130extern char _VFTEND ;
131extern char EH_DATAEND ;
132
133#endif
Note: See TracBrowser for help on using the repository browser.