source: trunk/src/win32k/include/probkrnl.h@ 2849

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

Nearly there!

File size: 3.6 KB
Line 
1/* $Id: probkrnl.h,v 1.10 2000-02-21 09:24:00 bird Exp $
2 *
3 * Include file for ProbKrnl.
4 *
5 * Copyright (c) 1998-2000 knut st. osmundsen (knut.stange.osmundsen@pmsc.no)
6 *
7 * Project Odin Software License can be found in LICENSE.TXT
8 *
9 */
10
11
12#ifndef _ProbKrnl_h_
13#define _ProbKrnl_h_
14
15/*******************************************************************************
16* Defined Constants And Macros *
17*******************************************************************************/
18#define NBR_OF_KRNLIMPORTS 17 /* When this is changed make sure to */
19 /* update the arrays in d32init.c and */
20 /* probkrnl32.c */
21#define MAX_LENGTH_NAME 32 /* Max length for the function. */
22
23/* Entry-Point Type flag */
24#define EPT_PROC 0x00 /* procedure - overload procedure*/
25#define EPT_PROCIMPORT 0x01 /* procedure 32bit - import only */
26#define EPT_VARIMPORT 0x02 /* variable/non-procedure 32bit - not implemented yet */
27#define EPT_32BIT 0x00 /* 16 bit entry-point */
28#define EPT_16BIT 0x80 /* 32 bit entry-point */
29#define EPT_BIT_MASK 0x80 /* Mask bit entry-point */
30#define EPT16BitEntry(a) (((a).fType & EPT_BIT_MASK) == EPT_16BIT)
31#define EPT32BitEntry(a) (((a).fType & EPT_BIT_MASK) == EPT_32BIT)
32
33/* 32bit types */
34#define EPT_PROC32 (EPT_PROC | EPT_32BIT)
35#define EPT_PROCIMPORT32 (EPT_PROCIMPORT | EPT_32BIT)
36#define EPT_VARIMPORT32 (EPT_VARIMPORT | EPT_32BIT)
37
38/* 16bit types */
39#define EPT_PROC16 (EPT_PROC | EPT_16BIT) /* no implemented yet! */
40#define EPT_PROCIMPORT16 (EPT_PROCIMPORT | EPT_16BIT) /* far proc in calltab with a far jmp. */
41#define EPT_VARIMPORT16 (EPT_VARIMPORT | EPT_16BIT)
42
43
44/*******************************************************************************
45* Structures and Typedefs *
46*******************************************************************************/
47#pragma pack(1)
48typedef struct tagIMPORTKRNLSYM
49{
50 unsigned char fFound; /* This is set when name is found */
51 unsigned char iObject; /* Object number the name was found in*/
52 unsigned short int cchName; /* Length of the name (optmize search) (INPUT) */
53 unsigned char achName[MAX_LENGTH_NAME]; /* Name (INPUT) */
54 unsigned long int offObject; /* Offset into the object */
55 unsigned long int ulAddress; /* 32-bit flat address */
56 unsigned short int usSel; /* Select of the object */
57 unsigned char cbProlog; /* Size of the prolog needing to be exchanged */
58 unsigned char fType; /* Entry-Point Type Flags */
59} IMPORTKRNLSYM;
60#pragma pack()
61
62
63
64/*******************************************************************************
65* Global Variables *
66* NOTE! These are only available at init time! *
67*******************************************************************************/
68extern IMPORTKRNLSYM _aImportTab[NBR_OF_KRNLIMPORTS]; /* 'aImportTab' in PrbKrnl.c */
69extern unsigned long int _ulBuild; /* 'ulBuild' in PrbKrnl.c */
70extern unsigned short int _usVerMajor; /* 'usVerMajor' in PrbKrnl.c */
71extern unsigned short int _usVerMinor; /* 'usVerMinor' in PrbKrnl.c */
72
73#ifdef INCL_16 /* 16-bit only */
74int ProbeKernel(PRPINITIN pReqPack);
75#endif
76
77#endif
78
Note: See TracBrowser for help on using the repository browser.