Changeset 4164 for trunk/src/win32k/include
- Timestamp:
- Sep 2, 2000, 11:08:23 PM (25 years ago)
- Location:
- trunk/src/win32k/include
- Files:
-
- 3 added
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/win32k/include/LdrCalls.h
r2501 r4164 1 /* $Id: LdrCalls.h,v 1. 3 2000-01-22 18:21:00bird Exp $1 /* $Id: LdrCalls.h,v 1.4 2000-09-02 21:08:02 bird Exp $ 2 2 * 3 3 * Prototypes for the loader overrided function. … … 35 35 */ 36 36 extern ULONG LDRCALL ldrOpen( /* retd 0x0c */ 37 PSFN p1,/* ebp + 0x08 */38 PCHAR p2,/* ebp + 0x0c */39 ULONG p3/* ebp + 0x10 */40 ); 41 42 ULONG LDRCALL myldrOpen(PSFN ,PCHAR,ULONG);37 PSFN p1, /* ebp + 0x08 */ 38 PCHAR p2, /* ebp + 0x0c */ 39 PULONG p3 /* ebp + 0x10 */ 40 ); 41 42 ULONG LDRCALL myldrOpen(PSFN phFile, PSZ pszFilename, PULONG pfl); 43 43 44 44 … … 47 47 */ 48 48 extern ULONG LDRCALL ldrRead( /* retd 0x18 */ 49 SFN p1,/* ebp + 0x08 */50 ULONG p2,/* ebp + 0x0c */51 PVOID p3,/* ebp + 0x10 */52 ULONG p4,/* ebp + 0x14 */53 ULONG p5,/* ebp + 0x18 */54 PMTE p6/* ebp + 0x1c */49 SFN hFile, /* ebp + 0x08 */ 50 ULONG ulOffset, /* ebp + 0x0c */ 51 PVOID pvBuffer, /* ebp + 0x10 */ 52 ULONG fpBuffer, /* ebp + 0x14 */ 53 ULONG cbToRead, /* ebp + 0x18 */ 54 PMTE pMTE /* ebp + 0x1c */ 55 55 ); 56 56 57 57 ULONG LDRCALL myldrRead( 58 SFN hFile,59 ULONG ulOffset,60 PVOID pBuffer,61 ULONG ulFlags,62 ULONG ulBytesToRead,63 PMTE pMTE58 SFN hFile, 59 ULONG ulOffset, 60 PVOID pvBuffer, 61 ULONG fpBuffer, 62 ULONG cbToRead, 63 PMTE pMTE 64 64 ); 65 65 … … 99 99 100 100 101 #if 0 102 /****************************************/ 103 /* _LDRLoadExe */ 104 /****************************************/ 105 extern int LDRCALL _LDRLoadExe( /* retd 0x08 */ 106 PCHAR pExeName, /* ebp + 0x08 */ 107 PULONG param2 /* ebp + 0x0c */ 108 ); 109 110 int LDRCALL myLDRLoadExe(PCHAR,PULONG); 111 112 113 114 /****************************************/ 115 /* _ldrGetResource */ 116 /****************************************/ 117 extern int LDRCALL _ldrGetResource( /* retd 0x14 - 20d */ 118 USHORT idType, /* ebp + 0x08 */ 119 ULONG idName, /* ebp + 0x0c */ 120 USHORT hMod, /* ebp + 0x10 */ 121 PPVOID ppRes, /* ebp + 0x14 */ 122 ULONG ulP5 /* ebp + 0x18 */ 123 ); 124 125 int LDRCALL myldrGetResource(USHORT,ULONG,USHORT,PPVOID,ULONG); 126 127 128 129 /****************************************/ 130 /* _ldrOpenNewExe */ 131 /****************************************/ 132 extern int LDRCALL _ldrOpenNewExe( /* retd 0x10 - 16d */ 133 PCHAR pszName, /* ebp + 0x08 */ 134 USHORT lenName, /* ebp + 0x0c */ 135 ULONG ulP3, /* ebp + 0x10 */ 136 ULONG ulP4 /* ebp + 0x14 */ 137 ); 138 139 int LDRCALL myldrOpenNewExe(PCHAR,USHORT,ULONG,ULONG); 140 141 142 143 /****************************************/ 144 /* _ldrCreateMte */ 145 /****************************************/ 146 extern int LDRCALL _ldrCreateMte( /* retd 0x08 */ 147 ULONG p1, /* ebp + 0x08 */ 148 ULONG p2 /* ebp + 0x0c */ 149 ); 150 151 int LDRCALL myldrCreateMte(ULONG,ULONG); 152 153 154 155 /****************************************/ 156 /* _ldrGetMte */ 157 /****************************************/ 158 extern int LDRCALL _ldrGetMte( /* retd 0x14 - 20d */ 159 ULONG p1, /* ebp + 0x08 */ 160 ULONG p2, /* ebp + 0x0c */ 161 ULONG p3, /* ebp + 0x10 */ 162 ULONG p4, /* ebp + 0x14 */ 163 ULONG p5 /* ebp + 0x18 */ 164 ); 165 166 int LDRCALL myldrGetMte(ULONG,ULONG,ULONG,ULONG,ULONG); 167 168 #endif 101 102 /** 103 * Loader local variables from KERNEL.SDF. 104 */ 105 typedef struct ldrlv_s /* #memb 12 size 39 (0x027) */ 106 { 107 PMTE lv_pmte; /* Pointer to mte. (ldrCreateMte/ldrXXX) */ 108 ULONG lv_lbufaddr; 109 ULONG lv_sbufaddr; 110 ULONG lv_lrecbufaddr; 111 ULONG lv_srecbufaddr; 112 ULONG lv_new_exe_off; 113 USHORT lv_sfn; /* Handle to the module being loaded */ 114 USHORT lv_hobmte; 115 ULONG lv_objnum; 116 ULONG lv_csmte; /* size of the swappable mte heap block. (ldrCreateMte) */ 117 USHORT lv_class; /* Object class CLASS_* defines in OS2Krnl (mteflags1) it seems. */ 118 /* CLASS_PROGRAM Program class. */ 119 /* CLASS_GLOBAL Global class. */ 120 /* CLASS_SPECIFIC Specific class, as against global. */ 121 /* CLASS_ALL (0) Nonspecific class all modules. */ 122 /* CLASS_MASK Class mask. */ 123 UCHAR lv_type; /* Type of executable image expected loaded. */ 124 } ldrlv_t; 125 126 127 /* 128 * Values of the lv_type byte. (Qualified guesses.) 129 */ 130 #define LVTYPE_EXE 0 /* Executable program. */ 131 #define LVTYPE_DLL 1 /* Dynamic Link Library. */ 132 #define LVTYPE_DD 2 /* Device Driver. */ 133 #define LVTYPE_IFS 3 /* Installable Filesystem. */ 134 #define LVTYPE_VDD 4 /* Virtual Device Driver (for VDMs). */ 135 136 137 138 /** 139 * ldrOpenPath 140 * @returns OS2 return code. 141 * pLdrLv->lv_sfn is set to filename handle. 142 * @param pachModname Pointer to modulename. Not zero terminated! 143 * @param cchModname Modulename length. 144 * @param pLdrLv Loader local variables? (Struct from KERNEL.SDF) 145 * @param pfl Pointer to flags which are passed on to ldrOpen. 146 * @sketch 147 * if !CLASS_GLOBAL or miniifs then 148 * ldrOpen(pachModName) 149 * else 150 * loop until no more libpath elements 151 * get next libpath element and add it to the modname. 152 * try open the modname 153 * if successfull then break the loop. 154 * endloop 155 * endif 156 */ 157 extern ULONG LDRCALL ldrOpenPath( /* retd 0x10 */ 158 PCHAR pachFilename, /* ebp + 0x08 */ 159 USHORT cchFilename, /* ebp + 0x0c */ 160 ldrlv_t * plv, /* ebp + 0x10 */ 161 PULONG pful /* ebp + 0x14 */ 162 ); 163 164 ULONG LDRCALL myldrOpenPath(PCHAR pachFilename, USHORT cchFilename, ldrlv_t *plv, PULONG pful); 165 166 167 /** 168 * Finds a module if it's loaded. 169 * @returns NO_ERROR on success. 170 * OS/2 errorcode on error. 171 * @param pachFilename Pointer to module filename. 172 * @param cchFilename Length of modulefilename. 173 * @param usClass Module class. (CLASS_*) 174 * @param ppMTE Pointer to pMTE found. 175 * @sketch 176 */ 177 ULONG LDRCALL ldrFindModule(PCHAR pachFilename, USHORT cchFilename, USHORT usClass, PPMTE ppMTE); 178 179 180 /** 181 * LDRClearSem - Clears the loader semaphore. 182 * (It does some garbage collection on release.) 183 * @returns NO_ERROR on success. 184 * OS/2 error on failure. (ERROR_INTERRUPT?) 185 */ 186 extern ULONG LDRCALL LDRClearSem(void); 187 188 189 /** 190 * LDRRequestSem - Requests the loader semaphore.. 191 * @returns NO_ERROR if succesfully. 192 * OS2 errorcode on failure. (ERROR_INTERRUPT?) 193 */ 194 #define LDRRequestSem() KSEMRequestMutex(pLdrSem, (ULONG)-1) 195 196 197 /* 198 * Pointer to the loader semaphore. 199 */ 200 #ifdef _OS2KSEM_h_ 201 extern PKSEMMTX pLdrSem; 202 #endif 203 204 205 /** 206 * Validates an hMTE and gets the MTE pointer. 207 * @returns Pointer to MTE on success. 208 * NULL on error. 209 * @param hMTE MTE handle. 210 * @remark If you wan't to this faster: 211 * Use the hMTE as a HOB and get the HOB address (by using VMGetHandleInfo). 212 */ 213 extern PMTE LDRCALL ldrValidateMteHandle(HMTE hMTE); 214 215 216 /** 217 * Gets the pMTE from a hMTE. No checks. 218 * @returns Pointer to the pMTE for a given hMTE. 219 * @param hMTE Module handle. 220 * @sketch 221 */ 222 extern PMTE KRNLCALL ldrASMpMTEFromHandle(HMTE hMTE); 223 224 225 /** 226 * Pointer to the loader filename buffer. 227 * Upon return from ldrOpen (and ldrOpenPath which calls ldrOpen) this is 228 * set to the fully qualified filename of the file last opened (successfully). 229 */ 230 extern PSZ *pldrpFileNameBuf; 231 #define ldrpFileNameBuf (*pldrpFileNameBuf) 232 169 233 170 234 #ifdef __cplusplus -
trunk/src/win32k/include/ModuleBase.h
r2925 r4164 1 /* $Id: ModuleBase.h,v 1. 3 2000-02-27 02:16:43bird Exp $1 /* $Id: ModuleBase.h,v 1.4 2000-09-02 21:07:59 bird Exp $ 2 2 * 3 3 * ModuleBase - Declaration of the Basic module class. 4 4 * 5 * Copyright (c) 1999 knut st. osmundsen5 * Copyright (c) 1999-2000 knut st. osmundsen 6 6 * 7 7 * Project Odin Software License can be found in LICENSE.TXT 8 8 * 9 9 */ 10 #ifndef _ MODULEBASE_H_11 #define _ MODULEBASE_H_10 #ifndef _modulebase_h_ 11 #define _modulebase_h_ 12 12 13 13 … … 73 73 * RING0: Map this to ldrRead with 0UL as flFlags. 74 74 * RING3: Implementes this function as a static function, ReadAt. 75 * ReadAtF: Same as ReadAt but two extra parameters; an additional f lag and a pointer to an MTE.76 * Used in the read method.75 * ReadAtF: Same as ReadAt but two extra parameters; an additional far pointer to the buffer and 76 * a MTE pointer. Used in the read method. 77 77 * RING0: Map directly to ldrRead. 78 78 * RING3: Map to ReadAt, ignoring the two extra parameters. … … 81 81 #define ReadAt(hFile, ulOffset, pvBuffer, cbToRead) \ 82 82 ldrRead(hFile, ulOffset, pvBuffer, 0UL, cbToRead, NULL) 83 #define ReadAtF(hFile, ulOffset, pvBuffer, cbToRead, flFlags, pMTE) \84 ldrRead(hFile, ulOffset, pvBuffer, f lFlags, cbToRead, pMTE)83 #define ReadAtF(hFile, ulOffset, pvBuffer, fpBuffer, cbToRead, pMTE) \ 84 ldrRead(hFile, ulOffset, pvBuffer, fpBuffer, cbToRead, pMTE) 85 85 #else 86 #define ReadAtF(hFile, ulOffset, pvBuffer, cbToRead, flFlags, pMTE) \86 #define ReadAtF(hFile, ulOffset, pvBuffer, fpBuffer, cbToRead, pMTE) \ 87 87 ReadAt(hFile, ulOffset, pvBuffer, cbToRead) 88 88 #endif … … 96 96 #endif 97 97 98 98 /* 99 * Make sure that pLdrLv is defined. 100 */ 101 #if !defined(RING0) && !defined(_ldrCalls_h_) 102 typedef struct ldrlv_s ldrlv_t; 103 #endif 99 104 100 105 /** … … 111 116 112 117 /** @cat Public Main methods */ 113 virtual ULONG init(PCSZ pszFilename); 114 virtual ULONG read(ULONG offLXFile, PVOID pvBuffer, ULONG cbToRead, ULONG flFlags, PMTE pMTE) = 0; 115 virtual ULONG applyFixups(PMTE pMTE, ULONG iObject, ULONG iPageTable, PVOID pvPage, 116 ULONG ulPageAddress, PVOID pvPTDA); /*(ldrEnum32bitRelRecs)*/ 118 virtual ULONG init(PCSZ pszFilename); 119 virtual ULONG read(ULONG offLXFile, PVOID pvBuffer, ULONG fpBuffer, ULONG cbToRead, PMTE pMTE) = 0; 120 virtual ULONG applyFixups(PMTE pMTE, ULONG iObject, ULONG iPageTable, PVOID pvPage, 121 ULONG ulPageAddress, PVOID pvPTDA); /*(ldrEnum32bitRelRecs)*/ 122 virtual ULONG openPath(PCHAR pachFilename, USHORT cchFilename, ldrlv_t *pLdrLv, PULONG pful); /* (ldrOpenPath) */ 117 123 #ifndef RING0 118 virtual ULONG writeFile(PCSZ pszLXFilename);124 virtual ULONG writeFile(PCSZ pszLXFilename); 119 125 #endif 120 126 121 127 /** @cat public Helper methods */ 122 virtual VOID dumpVirtualLxFile() = 0; 123 BOOL queryIsModuleName(PCSZ pszFilename); 128 virtual VOID dumpVirtualLxFile() = 0; 129 BOOL queryIsModuleName(PCSZ pszFilename); 130 PCSZ getFilename(); 131 PCSZ getModuleName(); 124 132 125 133 /** @cat static print method */ … … 133 141 SFN hFile; /* filehandle */ 134 142 PSZ pszFilename; /* fullpath */ 135 PSZ pszModuleName; /* filename without extention. */143 PSZ pszModuleName; /* filename without path and extention. */ 136 144 137 145 /** @cat public static data. */ -
trunk/src/win32k/include/OS2KPTDA.h
r3829 r4164 1 /* $Id: OS2KPTDA.h,v 1. 1 2000-07-16 22:21:19 bird Exp $1 /* $Id: OS2KPTDA.h,v 1.2 2000-09-02 21:07:59 bird Exp $ 2 2 * 3 3 * PTDA access functions. … … 54 54 55 55 56 USHORT ptdaGet_ptda_environ(PPTDA pPTDA); 57 56 USHORT ptdaGet_ptda_environ(PPTDA pPTDA); 57 USHORT ptdaGet_ptda_module(PPTDA pPTDA); 58 HKSEMMTX ptda_ptda_ptdasem(PPTDA pPTDA); 58 59 59 60 #ifdef __cplusplus -
trunk/src/win32k/include/OS2KSEM.h
r3829 r4164 1 /* $Id: OS2KSEM.h,v 1. 1 2000-07-16 22:21:19 bird Exp $1 /* $Id: OS2KSEM.h,v 1.2 2000-09-02 21:07:59 bird Exp $ 2 2 * 3 3 * OS/2 kernel Semaphore functions. … … 16 16 * Defined Constants And Macros * 17 17 *******************************************************************************/ 18 #define KSEM_INDEFINITE_WAIT -1L 19 #define KSEM_IMMEDIATE_RETURN 0L 18 #define KSEM_INDEFINITE_WAIT -1UL 19 #define KSEM_IMMEDIATE_RETURN 0UL 20 21 /* 22 * Semaphore type. ( Used with the generic KSEM routines. ) 23 */ 24 #define KSEM_EVENT 0 25 #define KSEM_MUTEX 1 26 #define KSEM_SHARED 2 27 28 /* 29 * Sempahore flags. (according to SG24-4640-00) 30 */ 31 #define KSEM_DEFAULT 0 32 #define KSEM_NOINTERRUPT 1 33 #define KSEM_WRITE 2 34 #define KSEM_DISPLAYID 4 35 #define KSEM_NOBLOCKED 8 20 36 21 37 … … 23 39 * Structures and Typedefs * 24 40 *******************************************************************************/ 25 typedef ULONG HKSEM; /* Handle to kernel semaphore. */ 26 typedef HKSEM PHKSEM; /* Pointer to kernel semaphore handle. */ 27 typedef HKSEM HKMTX; /* Handle to kernel mutex semaphore. */ 28 typedef HKSEM HKEV; /* Handle to kernel event semaphore. */ 41 /* (This is according to SG24-4640-00.) */ 42 43 typedef struct _KSEMSHR 44 { 45 /** 46 * Astrict 16 is byte while retail 12 is bytes. 47 * We'll reserve 20 bytes just to be sure!. 48 */ 49 char achDummy[20]; 50 51 struct 52 { 53 char ks_achSignature[4]; 54 char ks_bFlags; 55 char ks_bType; 56 unsigned short ks_Owner; 57 unsigned short ks_cusPendingWriters; 58 unsigned short ks_cusNest; 59 unsigned short ks_cusReaders; 60 unsigned short ks_cusPendingReaders; 61 } debug; 62 63 struct 64 { 65 char ks_bFlags; 66 char ks_bType; 67 unsigned short ks_Owner; 68 unsigned short ks_cusPendingWriters; 69 unsigned short ks_cusNest; 70 unsigned short ks_cusReaders; 71 unsigned short ks_cusPendingReaders; 72 } release; 73 74 } KSEMSHR, 75 *PKSEMSHR, 76 *HKSEMSHR; /* Handle to kernel shared semphore. */ 77 typedef HKSEMSHR * PHKSEMSHR; 78 79 80 typedef union _KSEMMTX 81 { 82 /** 83 * Astrict is 12 byte while retail is 8 bytes. 84 * We'll reserve 20 bytes just to be sure! 85 */ 86 char achDummy[20]; 87 88 struct 89 { 90 char ksem_achSignature[4]; 91 char ksem_bFlags; 92 char ksem_bType; 93 unsigned short ksem_Owner; 94 unsigned short ksem_cusPendingWriters; 95 unsigned short ksem_cusNest; 96 }debug; 97 struct 98 { 99 char ksem_bFlags; 100 char ksem_bType; 101 unsigned short ksem_Owner; 102 unsigned short ksem_cusPendingWriters; 103 unsigned short ksem_cusNest; 104 } release; 105 } KSEMMTX, 106 *PKSEMMTX, 107 *HKSEMMTX; /* Handle to kernel mutex semaphore. */ 108 typedef HKSEMMTX * PHKSEMMTX; 109 110 111 typedef struct _KSEMEVT 112 { 113 /** 114 * Astrict is 16 byte while retail is 12 bytes. 115 * We'll reserve 20 bytes just to be sure! 116 */ 117 char achDummy[20]; 118 119 struct 120 { 121 char kse_achSignature[4]; 122 char kse_bFlags; 123 char kse_bType; 124 unsigned short kse_Owner; 125 unsigned short kse_cusPendingWriters; 126 } debug; 127 128 struct 129 { 130 char kse_bFlags; 131 char kse_bType; 132 unsigned short kse_Owner; 133 unsigned short kse_cusPendingWriters; 134 } release; 135 136 } KSEMEVT, 137 *PKSEMEVT, 138 *HKSEMEVT; /* Handle to kernel event sempahore. */ 139 typedef HKSEMEVT * PHKSEMEVT; 140 141 142 typedef union _KSEM 143 { 144 KSEMSHR shr; 145 KSEMMTX mtx; 146 KSEMEVT evt; 147 } KSEM, *PKSEM, *HKSEM; /* Generic kernel semaphore handle. */ 148 typedef HKSEM * PHKSEM; 29 149 30 150 … … 34 154 /* 35 155 * Mutex semaphores. 36 * NOTE! Only is KSEMRequestMutex currently is imported!37 156 */ 38 extern ULONG KRNLCALL KSEMRequestMutex(HK MTX hkmtx, ULONG ulTimeout);39 extern VOID KRNLCALL KSEMReleaseMutex(HK MTX hkmtx);40 extern ULONG KRNLCALL KSEMQueryMutex(HK MTX hkmtx, PUSHORT pus);157 extern ULONG KRNLCALL KSEMRequestMutex(HKSEMMTX hkmtx, ULONG ulTimeout); 158 extern VOID KRNLCALL KSEMReleaseMutex(HKSEMMTX hkmtx); 159 extern ULONG KRNLCALL KSEMQueryMutex(HKSEMMTX hkmtx, PUSHORT pcusNest); 41 160 42 161 … … 48 167 extern VOID KRNLCALL KSEMPostEvent(HKEV hkevent); 49 168 extern ULONG KRNLCALL KSEMWaitEvent(HKEV hkevent); 169 #endif 50 170 51 171 /* 52 172 * Some other KSEM prefixed functions - parameters's not that obvious... 53 173 */ 174 #if 0 54 175 extern ULONG KRNLCALL KSEMAlloc(PHKSEM phksem, ULONG p1, ULONG p2); 55 176 extern ULONG KRNLCALL KSEMCreate(PHKSEM phksem, ULONG type); … … 57 178 extern ULONG KRNLCALL KSEMRequestShared(HKSEM hksem, ULONG); 58 179 extern VOID KRNLCALL KSEMDestroy(HKSEM hksem); 59 extern VOID KRNLCALL KSEMInit(HKSEM hksem, ULONG p1, ULONG p2); 180 #endif 181 extern VOID KRNLCALL KSEMInit(PKSEM pksem, ULONG fulType, ULONG fulFlags); 182 #if 0 60 183 extern VOID KRNLCALL KSEMQuery(HKSEM hksem, ULONG p2) 61 184 extern VOID KRNLCALL KSEMRelease(HKSEM hksem); -
trunk/src/win32k/include/OS2KTK.h
r3829 r4164 1 /* $Id: OS2KTK.h,v 1. 1 2000-07-16 22:21:18bird Exp $1 /* $Id: OS2KTK.h,v 1.2 2000-09-02 21:08:00 bird Exp $ 2 2 * 3 3 * OS2KTK - OS/2 Kernel Task. … … 21 21 22 22 #define TKFuChar(pch, pchUsr) \ 23 TKFuBuff((PVOID)pch, (PVOID)pchUsr, sizeof(char), TK_FUSU_FATAL) ;23 TKFuBuff((PVOID)pch, (PVOID)pchUsr, sizeof(char), TK_FUSU_FATAL) 24 24 #define TKSuChar(pchUsr, pch) \ 25 TKSuBuff((PVOID)pchUsr, (PVOID)pch, sizeof(char), TK_FUSU_FATAL) ;25 TKSuBuff((PVOID)pchUsr, (PVOID)pch, sizeof(char), TK_FUSU_FATAL) 26 26 27 27 #define TKFuCharNF(pch, pchUsr) \ 28 TKFuBuff((PVOID)pch, (PVOID)pchUsr, sizeof(char), TK_FUSU_NONFATAL) ;28 TKFuBuff((PVOID)pch, (PVOID)pchUsr, sizeof(char), TK_FUSU_NONFATAL) 29 29 #define TKSuCharNF(pchUsr, pch) \ 30 TKSuBuff((PVOID)pchUsr, (PVOID)pch, sizeof(char), TK_FUSU_NONFATAL) ;30 TKSuBuff((PVOID)pchUsr, (PVOID)pch, sizeof(char), TK_FUSU_NONFATAL) 31 31 32 32 33 33 #define TKFuUShort(pus, pusUsr) \ 34 TKFuBuff((PVOID)pus, (PVOID)pusUsr, sizeof(USHORT), TK_FUSU_FATAL) ;34 TKFuBuff((PVOID)pus, (PVOID)pusUsr, sizeof(USHORT), TK_FUSU_FATAL) 35 35 #define TKSuUShort(pusUsr, pus) \ 36 TKSuBuff((PVOID)pusUsr, (PVOID)pus, sizeof(USHORT), TK_FUSU_FATAL) ;36 TKSuBuff((PVOID)pusUsr, (PVOID)pus, sizeof(USHORT), TK_FUSU_FATAL) 37 37 38 38 #define TKFuUShortNF(pus, pusUsr) \ 39 TKFuBuff((PVOID)pus, (PVOID)pusUsr, sizeof(USHORT), TK_FUSU_NONFATAL) ;39 TKFuBuff((PVOID)pus, (PVOID)pusUsr, sizeof(USHORT), TK_FUSU_NONFATAL) 40 40 #define TKSuUShortNF(pusUsr, pus) \ 41 TKSuBuff((PVOID)pusUsr, (PVOID)pus, sizeof(USHORT), TK_FUSU_NONFATAL) ;41 TKSuBuff((PVOID)pusUsr, (PVOID)pus, sizeof(USHORT), TK_FUSU_NONFATAL) 42 42 43 43 44 44 #define TKFuULong(pul, pulUsr) \ 45 TKFuBuff((PVOID)pul, (PVOID)pulUsr, sizeof(ULONG), TK_FUSU_FATAL) ;45 TKFuBuff((PVOID)pul, (PVOID)pulUsr, sizeof(ULONG), TK_FUSU_FATAL) 46 46 #define TKSuULong(pulUsr, pul) \ 47 TKSuBuff((PVOID)pulUsr, (PVOID)pul, sizeof(ULONG), TK_FUSU_FATAL) ;47 TKSuBuff((PVOID)pulUsr, (PVOID)pul, sizeof(ULONG), TK_FUSU_FATAL) 48 48 49 49 #define TKFuULongNF(pul, pulUsr) \ 50 TKFuBuff((PVOID)pul, (PVOID)pulUsr, sizeof(ULONG), TK_FUSU_NONFATAL) ;50 TKFuBuff((PVOID)pul, (PVOID)pulUsr, sizeof(ULONG), TK_FUSU_NONFATAL) 51 51 #define TKSuULongNF(pulUsr, pul) \ 52 TKSuBuff((PVOID)pulUsr, (PVOID)pul, sizeof(ULONG), TK_FUSU_NONFATAL) ;52 TKSuBuff((PVOID)pulUsr, (PVOID)pul, sizeof(ULONG), TK_FUSU_NONFATAL) 53 53 54 54 -
trunk/src/win32k/include/OS2KVM.h
r3411 r4164 1 /* $Id: OS2KVM.h,v 1. 4 2000-04-17 01:56:49bird Exp $1 /* $Id: OS2KVM.h,v 1.5 2000-09-02 21:08:00 bird Exp $ 2 2 * 3 3 * OS/2 kernel VM functions. … … 82 82 83 83 84 typedef USHORT HMTE, *PHMTE;85 typedef USHORT HPTDA, *PHPTDA;86 87 84 /******************************************************************************* 88 85 * Exported Functions * … … 108 105 PUSHORT pushPTDA); 109 106 107 PMTE KRNLCALL VMPseudoHandleMap( 108 HMTE hMTE); 110 109 #endif -
trunk/src/win32k/include/OS2Krnl.h
r2799 r4164 1 /* $Id: OS2Krnl.h,v 1. 7 2000-02-15 23:39:19bird Exp $1 /* $Id: OS2Krnl.h,v 1.8 2000-09-02 21:08:00 bird Exp $ 2 2 * 3 3 * OS/2 kernel structures, typedefs and macros. … … 153 153 } MTE,*PMTE,**PPMTE; 154 154 155 typedef USHORT HMTE, *PHMTE; 156 typedef USHORT HPTDA, *PHPTDA; 155 157 156 158 … … 228 230 229 231 /* 232 * Calling convention for Security Helpers. 233 */ 234 #define SECCALL _System 235 236 /* 230 237 * 231 238 * Other Kernel Parts … … 235 242 #define INCL_OS2KRNL_IO 236 243 #define INCL_OS2KRNL_VM 244 #define INCL_OS2KRNL_SEM 245 #define INCL_OS2KRNL_TK 246 #define INCL_OS2KRNL_PTDA 247 #define INCL_OS2KRNL_TCB 248 #define INCL_OS2KRNL_SEC 249 #endif 250 251 #if defined(INCL_OS2KRNL_PTDA) && !defined(INCL_OS2KRNL_SEM) 252 #define INCL_OS2KRNL_SEM 237 253 #endif 238 254 … … 245 261 #endif 246 262 247 #endif 263 #ifdef INCL_OS2KRNL_SEM 264 #include <OS2KSEM.h> 265 #endif 266 267 #ifdef INCL_OS2KRNL_TK 268 #include <OS2KTK.h> 269 #endif 270 271 #ifdef INCL_OS2KRNL_PTDA 272 #include <OS2KPTDA.h> 273 #endif 274 275 #ifdef INCL_OS2KRNL_TCB 276 #include <OS2KTCB.h> 277 #endif 278 279 #ifdef INCL_OS2KRNL_SEC 280 #include <OS2KSEC.h> 281 #endif 282 283 #endif -
trunk/src/win32k/include/dev16.h
r2898 r4164 1 /* $Id: dev16.h,v 1. 8 2000-02-25 18:15:04bird Exp $1 /* $Id: dev16.h,v 1.9 2000-09-02 21:08:00 bird Exp $ 2 2 * dev16 - 16-bit specific. Should not be used in 32-bit C/C++. 3 3 * … … 113 113 USHORT NEAR R0Init16(PRP_GENIOCTL pRp); 114 114 USHORT NEAR initGetDosTableData(void); 115 115 #if 0 /*ndef CODE16_INIT*/ 116 #pragma alloc_text(CODE16_INIT, dev0Init, dev1Init, R0Init16, initGetDosTableData) 117 #endif 116 118 117 119 /* … … 123 125 USHORT NEAR CallElfIOCtl(LIN pRpIOCtl); 124 126 USHORT NEAR CallWin32kIOCtl(LIN pRpIOCtl); 127 #if 0 /*ndef CODE16_INIT*/ 128 #pragma alloc_text(CODE16_INIT, CallR0Init32, CallVerifyImportTab32, CallGetKernelInfo32) 129 #endif 125 130 126 131 … … 148 153 #define SSToDS_16(pStackVar) (SSToDS_16a((void NEAR *)pStackVar)) 149 154 150 extern LIN 155 extern LIN NEAR SSToDS_16a(void NEAR *pStackVar); 151 156 152 157 /* 153 158 * START and END labels. NOTE: these are not bytes only assembly labels. 154 159 */ 155 extern char PASCAL CODE16START ;156 extern char PASCAL DATA16START ;157 160 extern char PASCAL DATA16START ; 158 161 extern char PASCAL DATA16_BSSSTART ; 159 162 extern char PASCAL DATA16_CONSTSTART; 163 extern char PASCAL DATA16_INITSTART ; 164 extern char PASCAL DATA16_INIT_BSSSTART ; 165 extern char PASCAL DATA16_INIT_CONSTSTART; 160 166 extern char PASCAL CODE16START ; 167 extern char PASCAL CODE16_INITSTART ; 161 168 extern char PASCAL CODE32START ; 162 169 extern char PASCAL DATA32START ; … … 168 175 extern char PASCAL CODE16END ; 169 176 extern char PASCAL DATA16END ; 170 extern char PASCAL DATA16END ;171 177 extern char PASCAL DATA16_BSSEND ; 172 178 extern char PASCAL DATA16_CONSTEND; 179 extern char PASCAL DATA16_INITEND ; 180 extern char PASCAL DATA16_INIT_BSSEND ; 181 extern char PASCAL DATA16_INIT_CONSTEND; 173 182 extern char PASCAL CODE16END ; 183 extern char PASCAL CODE16_INITEND ; 174 184 extern char PASCAL CODE32END ; 175 185 extern char PASCAL DATA32END ; … … 180 190 181 191 182 183 184 192 #endif -
trunk/src/win32k/include/dev1632.h
r3321 r4164 1 /* $Id: dev1632.h,v 1. 5 2000-04-05 18:40:41bird Exp $1 /* $Id: dev1632.h,v 1.6 2000-09-02 21:08:00 bird Exp $ 2 2 * dev1632.h - Common header file for 16-bit and 32-bit C 3 3 * … … 50 50 typedef struct _KRNLINFO 51 51 { 52 unsigned long ulBuild; 53 unsigned short fKernel; 52 54 unsigned char cObjects; 53 unsigned char fDebug; 54 unsigned char fchType; /* TYPE_SMP, TYPE_UNI, TYPE_W4 */ 55 unsigned short usBuild; 55 unsigned char chPadding; 56 56 OTE aObjects[MAXKRNLOBJECTS]; 57 57 } KRNLINFO, FAR * PKRNLINFO; … … 64 64 65 65 #pragma pack() 66 67 68 /* 69 * Global data... 70 */ 71 extern CHAR DATA16_GLOBAL szBuildDate[]; 72 extern CHAR DATA16_GLOBAL szBuildTime[]; 73 #if defined(__IBMC__) || defined(__IBMCPP__) 74 #pragma map( szBuildDate , "_szBuildDate" ) 75 #pragma map( szBuildTime , "_szBuildTime" ) 66 76 #endif 77 78 #endif -
trunk/src/win32k/include/dev32.h
r2898 r4164 1 /* $Id: dev32.h,v 1. 8 2000-02-25 18:15:04bird Exp $1 /* $Id: dev32.h,v 1.9 2000-09-02 21:08:00 bird Exp $ 2 2 * 3 3 * dev32 - header file for 32-bit part of the driver. … … 100 100 * START and END labels. NOTE: these are not bytes only assembly labels. 101 101 */ 102 extern char CODE16START ;103 extern char DATA16START ;104 102 extern char DATA16START ; 105 103 extern char DATA16_BSSSTART ; 106 104 extern char DATA16_CONSTSTART; 105 extern char DATA16_INITSTART ; 106 extern char DATA16_INIT_BSSSTART ; 107 extern char DATA16_INIT_CONSTSTART; 107 108 extern char CODE16START ; 109 extern char CODE16_INITSTART ; 108 110 extern char CODE32START ; 109 111 extern char DATA32START ; … … 115 117 extern char CODE16END ; 116 118 extern char DATA16END ; 117 extern char DATA16END ;118 119 extern char DATA16_BSSEND ; 119 120 extern char DATA16_CONSTEND; 121 extern char DATA16_INITEND ; 122 extern char DATA16_INIT_BSSEND ; 123 extern char DATA16_INIT_CONSTEND; 120 124 extern char CODE16END ; 125 extern char CODE16_INITEND ; 121 126 extern char CODE32END ; 122 127 extern char DATA32END ; … … 126 131 extern char EH_DATAEND ; 127 132 128 129 130 131 133 #endif -
trunk/src/win32k/include/devSegDf.inc
r2838 r4164 1 ; $Id: devSegDf.inc,v 1. 5 2000-02-21 09:24:00bird Exp $1 ; $Id: devSegDf.inc,v 1.6 2000-09-02 21:08:01 bird Exp $ 2 2 ; 3 3 ; Segment definitions for win32k.sys. … … 18 18 DATA16_CONST ends 19 19 20 DATA16_GROUP group DATA16, DATA16_CONST, DATA16_BSS 20 DATA16_GLOBAL segment word public 'FAR_DATA' use16 21 DATA16_GLOBAL ends 22 23 ;DATA16_GROUP group DATA16, DATA16_CONST, DATA16_BSS, DATA16_GLOBAL 24 25 26 DATA16_INIT segment word public 'FAR_DATA' use16 27 DATA16_INIT ends 28 29 DATA16_INIT_CONST segment word public 'FAR_DATA' use16 30 DATA16_INIT_CONST ends 31 32 DATA16_INIT_BSS segment word public 'FAR_DATA' use16 33 DATA16_INIT_BSS ends 34 35 ;DATA16_INIT_GROUP group DATA16_INIT, DATA16_INIT_CONST, DATA16_INIT_BSS 36 ; 37 ;A bad trick to make all the 16-bit data segments one 38 ; 39 DATA16_GROUP group DATA16, DATA16_CONST, DATA16_BSS, DATA16_GLOBAL, DATA16_INIT, DATA16_INIT_CONST, DATA16_INIT_BSS 21 40 22 41 23 42 CODE16 segment word public 'CODE' use16 24 43 CODE16 ends 44 45 CODE16_INIT segment word public 'CODE' use16 46 CODE16_INIT ends 47 48 CODE16_IOSEG segment word public 'CODE' use16 49 CODE16_IOSEG ends 25 50 26 51 … … 33 58 34 59 ;DGROUP group BSS32, DATA32 35 DGROUP group BSS32, DATA32, CONST32_RO, _VFT, EH_DATA60 DGROUP group CALLTAB, BSS32, DATA32, CONST32_RO, _VFT, c_common, DDE4_DATA32, CTOR_DTOR1, CTOR_DTOR2, CTOR_DTOR3, EH_DATA 36 61 37 62 DATA32 segment dword public 'DATA' use32 … … 41 66 c_common ends 42 67 68 DDE4_DATA32 segment dword public 'DATA' use32 69 DDE4_DATA32 ends 70 43 71 BSS32 segment dword public 'BSS' use32 44 72 BSS32 ends 45 73 74 CTOR_DTOR1 segment dword public 'DATA' use32 75 CTOR_DTOR1 ends 76 77 CTOR_DTOR2 segment dword public 'DATA' use32 78 CTOR_DTOR2 ends 79 80 CTOR_DTOR3 segment dword public 'DATA' use32 81 CTOR_DTOR3 ends 46 82 47 83 ;CONSTGROUP group CONST32_RO, _VFT, EH_DATA -
trunk/src/win32k/include/env.h
r3412 r4164 1 /* $Id: env.h,v 1. 2 2000-04-17 02:26:04bird Exp $1 /* $Id: env.h,v 1.3 2000-09-02 21:08:01 bird Exp $ 2 2 * 3 3 * Environment access functions … … 21 21 *******************************************************************************/ 22 22 const char *ScanEnv(const char *paszEnv, const char *pszVar); 23 const char *GetEnv( void);23 const char *GetEnv(BOOL fExecChild); 24 24 25 25 -
trunk/src/win32k/include/k32.h
r2799 r4164 1 /* $Id: k32.h,v 1. 2 2000-02-15 23:39:19bird Exp $1 /* $Id: k32.h,v 1.3 2000-09-02 21:08:02 bird Exp $ 2 2 * 3 3 * k32 - definitions. … … 20 20 *******************************************************************************/ 21 21 APIRET k32AllocMemEx(PPVOID ppb, ULONG cb, ULONG flag, ULONG ulCS, ULONG ulEIP); 22 APIRET k32QueryOTEs(HMTE hMTE, PQOTEBUFFER pQOte, ULONG cbOte); 23 APIRET k32QueryOptionsStatus(PK32OPTIONS pOptions, PK32STATUS pStatus); 24 APIRET k32SetOptions(PK32OPTIONS pOptions); 22 25 23 26 -
trunk/src/win32k/include/ldr.h
r2501 r4164 1 /* $Id: ldr.h,v 1. 5 2000-01-22 18:20:59bird Exp $2 * 3 * ldr - loaderheader file.4 * 5 * Copyright (c) 1999 knut St. osmundsen1 /* $Id: ldr.h,v 1.6 2000-09-02 21:08:02 bird Exp $ 2 * 3 * ldr - Our loader "subsystem" public header file. 4 * 5 * Copyright (c) 2000 knut st. osmundsen (knut.stange.osmundsen@pmsc.no) 6 6 * 7 7 * Project Odin Software License can be found in LICENSE.TXT … … 12 12 #ifndef _ldr_h_ 13 13 #define _ldr_h_ 14 #ifndef LDR_INCL_INITONLY 15 /* state variable */ 16 extern BOOL fQAppType; 17 18 /* 19 * handle state - Array of handle states. Eight state per byte! 20 */ 21 #define MAX_FILE_HANDLES 0x10000 22 23 extern unsigned char achHandleStates[MAX_FILE_HANDLES/8]; 24 25 #define HSTATE_UNUSED 0x00 /* Handle not used (or OS/2). */ 26 #define HSTATE_OS2 0x00 /* OS/2 module filehandle. */ 27 #define HSTATE_OUR 0x01 /* Our module filehandle. */ 28 #define HSTATE_MASK 0xFE 29 #define HSTATE_UMASK 0x01 30 31 #define GetState(a) (HSTATE_UMASK & (achHandleStates[(a)/8] >> ((a)%8))) 32 #define SetState(a,b) (achHandleStates[(a)/8] = (achHandleStates[(a)/8] & (HSTATE_MASK << ((a)%8) | HSTATE_MASK >> 8-((a)%8)) | ((b) & 0x1) << ((a)%8))) 33 34 35 /* 36 * Module struct. 37 */ 38 typedef struct _Module 39 { 40 AVLNODECORE coreKey; /* Key is hFile. */ 41 AVLNODECORE coreMTE; /* Key is pMTE. */ 42 43 SFN hFile; /* System file number or file handle if you prefer that. */ 44 PMTE pMTE; /* Pointer to MTE if we got one - NULL is allowed. */ 45 46 ULONG fFlags; /* Flags. Flags if coreMte is in use and what Data contains. */ 47 union 48 { 49 ModuleBase *pModule; /* Pointer to a Pe2Lx object. (Win32 executables) */ 50 #if defined(_PE2LX_H_) 51 Pe2Lx * pPe2Lx; /* Pointer to a Pe2Lx object. (Win32 executables) */ 52 #endif 53 #if defined(_ELF2LX_H_) 54 Elf2Lx * pElf2Lx; /* Pointer to a Elf2Lx object. (ELF executables) */ 55 #endif 56 #if defined(_SCRIPT_H_) 57 Script * pScript; /* Pointer to a Script object. (Shell scripts) */ 58 #endif 59 #if defined(_PE_H_) 60 Pe * pPe; /* Pointer to a Pe object. (Ring3 loader) */ 61 #endif 62 } Data; /* Pointer to data. Currently it's allways a Pe2Lx object! */ 63 } MODULE, *PMODULE; 64 65 #define MOD_FLAGS_IN_MTETREE 0x00000010UL /* The node is present in the MTE-tree. */ 66 #define MOD_TYPE_MASK 0x0000000FUL /* Type mask. */ 67 #define MOD_TYPE_PE2LX 0x00000001UL /* Pe2Lx module. */ 68 #define MOD_TYPE_ELF2LX 0x00000002UL /* Elf2Lx module. */ 69 #define MOD_TYPE_SCRIPT 0x00000003UL /* Script module. */ 70 #define MOD_TYPE_PE 0x00000004UL /* Pe module. */ 71 72 73 /* 74 * Modules operations. 75 */ 76 PMODULE getModuleBySFN(SFN hFile); 77 PMODULE getModuleByMTE(PMTE pMTE); 78 PMODULE getModuleByFilename(PCSZ pszFilename); 79 80 ULONG addModule(SFN hFile, PMTE pMTE, ULONG fFlags, ModuleBase *pModObj); 81 ULONG removeModule(SFN hFile); 82 83 #endif 84 85 /*************/ 86 /* functions */ 87 /*************/ 88 #ifdef __cplusplus 89 extern "C" { 90 #endif 91 92 ULONG ldrInit(void); 93 94 #ifdef __cplusplus 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 20 #ifndef LDR_INCL_INITONLY 21 22 /* 23 * Fail if dependent header files is missing 24 */ 25 #ifndef _AVL_H_ 26 #error "You'll have to include avl.h before ldr.h!" 27 #endif 28 29 30 /** @design Loader State. 31 * 32 * Used to determin behaviour in different cases. 33 * Use the isLdrState<State> macros to query current state. 34 * IMPORTANT! Don't change this variable if you don't really mean it! 35 * And only change it thru the setLdrState* macros! 36 * 37 * The state is changing as follows: 38 * 1) Load a new program 39 * mytkExecPgm will set the state to LDRSTATE_TKEXECPGM on successful overloading. 40 * myldrOpenPath will set the type part of the loaderbits. (EXE,DLL or UNSUPPORTED) 41 * (NB! myldrOpenPath is called several times. First for the EXE then for imported modules.) 42 * IF executable THEN myLdrOpen might set the LDRSTATE_OUR flag. 43 * myldrOpenPath will reset the type part of the loaderbits upon return. 44 * mytkExecPgm resets the state to LDRSTATE_UNKNOWN upon return. 45 * 46 * 2) Query program type. 47 * myLDRQAppType will set the state to LDRSTATE_LDRQAPPTYPE on entry. 48 * myldrOpenPath will set the type part of the loaderbits. (EXE,DLL or UNSUPPORTED) 49 * (NB! myldrOpenPath may be called several times.) 50 * IF executable THEN myLdrOpen might set the LDRSTATE_OUR flag. 51 * myldrOpenPath will reset the type part of the loaderbits upon return. 52 * myLDRQAppType resets the state to LDRSTATE_UNKNOWN upon return. 53 * 54 * 3) Unknown invocation - probably DosLoadModule. Base state is LDRSTATE_UNKNOWN. 55 * myldrOpenPath will set the type part of the loaderbits. (EXE,DLL or UNSUPPORTED) 56 * (NB! myldrOpenPath is probably called several times. Import modules.) 57 * myldrOpenPath will reset the type part of the loaderbits upon return. 58 * 59 */ 60 extern ULONG ulLdrState; 61 62 #define LDRSTATE_UNKNOWN 0 /* Default state - undertermined. */ 63 #define LDRSTATE_TKEXECPGM 1 /* A program is being loaded. */ 64 #define LDRSTATE_LDRQAPPTYPE 2 /* Loader called from LDRQAPPTYPE */ 65 /*#define LDRSTATE_LOADMODULE 3 */ /* A module is being loaded by DosLoadModule. Not implemented! */ 66 #define LDRSTATE_MASK 0x00FF /* State mask. */ 67 68 /* 69 * The following flags are only valid when myldrOpenPath is on the stack!, ie. in ldrOpen. 70 * These flags is the "loading-bits". 71 */ 72 #define LDRSTATE_EXE 0x0100 /* Flags telling that an executable is being opened. */ 73 #define LDRSTATE_DLL 0x0200 /* Flags telling that an dll is being opened. */ 74 #define LDRSTATE_UNSUPPORTED 0x0300 /* Flags telling to not override this open call. */ 75 #define LDRSTATE_TYPE_MASK 0x0f00 /* Load Type Mask. */ 76 /* The following flag will tell us if the executable which is loading is ours or not. */ 77 #define LDRSTATE_OUREXE 0x1000 78 #define LDRSTATE_LOADERBITS 0xff00 /* Mask */ 79 80 81 /* 82 * Query macros. 83 */ 84 #define isLdrStateUnknown() ((ulLdrState & LDRSTATE_MASK) == LDRSTATE_UNKNOWN) 85 #define isLdrStateExecPgm() ((ulLdrState & LDRSTATE_MASK) == LDRSTATE_TKEXECPGM) 86 #define isLdrStateQAppType() ((ulLdrState & LDRSTATE_MASK) == LDRSTATE_LDRQAPPTYPE) 87 /*#define isLdrStateLoadModule() ((ulLdrState & LDRSTATE_MASK) == LDRSTATE_LOADMODULE)*/ 88 89 #define isLdrStateLoadingEXE() ((ulLdrState & LDRSTATE_TYPE_MASK) == LDRSTATE_EXE) 90 #define isLdrStateLoadingDLL() ((ulLdrState & LDRSTATE_TYPE_MASK) == LDRSTATE_DLL) 91 #define isLdrStateLoadingUnsupported() ((ulLdrState & LDRSTATE_TYPE_MASK) == LDRSTATE_UNSUPPORTED) 92 93 #define isLdrStateLoadingOurEXE() (ulLdrState & LDRSTATE_OUREXE) 94 95 96 /* 97 * Set macros. 98 */ 99 #define setLdrStateQAppType() ulLdrState = LDRSTATE_LDRQAPPTYPE 100 #define setLdrStateUnknown() ulLdrState = LDRSTATE_UNKNOWN 101 /* setLdrStateExecPgm() isn't needed as this is in assembly source! */ 102 /*#define setLdrStateLoadModule() ulLdrState = LDRSTATE_LOADMODULE */ 103 104 #define setLdrStateLoadingEXE() ulLdrState = (ulLdrState & (ULONG)(~LDRSTATE_TYPE_MASK)) | LDRSTATE_EXE 105 #define setLdrStateLoadingDLL() ulLdrState = (ulLdrState & (ULONG)(~LDRSTATE_TYPE_MASK)) | LDRSTATE_DLL 106 #define setLdrStateLoadingUnsupported() ulLdrState = (ulLdrState & (ULONG)(~LDRSTATE_TYPE_MASK)) | LDRSTATE_UNSUPPORTED 107 #define setLdrStateClearLoadingType() ulLdrState &= (ULONG)(~LDRSTATE_TYPE_MASK) 108 109 #define setLdrStateLoadingOurEXE() ulLdrState |= LDRSTATE_OUREXE 110 111 112 /* 113 * Loader State assert macros. 114 */ 115 #define ASSERT_LdrStateUnknown(fn) ASSERT_LdrState(fn, LDRSTATE_UNKNOWN) 116 #define ASSERT_LdrStateExecPgm(fn) ASSERT_LdrState(fn, LDRSTATE_TKEXECPGM) 117 #define ASSERT_LdrStateQAppType(fn) ASSERT_LdrState(fn, LDRSTATE_LDRQAPPTYPE) 118 119 #define ASSERT_LdrState(fn, state) \ 120 { \ 121 if ((ulLdrState & LDRSTATE_MASK) != (state)) \ 122 { \ 123 kprintf((fn ": assertion incorrect loader state. ulLdrState (%d) != " #state "(%d)", \ 124 ulLdrState, state)); \ 125 } \ 95 126 } 96 #endif 97 98 #pragma pack() 99 100 #endif 127 128 129 /* 130 * handle state - Array of handle states. Eight state per byte! 131 */ 132 #define MAX_FILE_HANDLES 0x10000 133 134 extern unsigned char achHandleStates[MAX_FILE_HANDLES/8]; 135 136 #define HSTATE_UNUSED 0x00 /* Handle not used (or OS/2). */ 137 #define HSTATE_OS2 0x00 /* OS/2 module filehandle. */ 138 #define HSTATE_OUR 0x01 /* Our module filehandle. */ 139 #define HSTATE_MASK 0xFE 140 #define HSTATE_UMASK 0x01 141 142 #define GetState(a) (HSTATE_UMASK & (achHandleStates[(a)/8] >> ((a)%8))) 143 #define SetState(a,b) (achHandleStates[(a)/8] = (achHandleStates[(a)/8] & (HSTATE_MASK << ((a)%8) | HSTATE_MASK >> 8-((a)%8)) | ((b) & 0x1) << ((a)%8))) 144 145 146 /* 147 * Declare the module classes used below in case they aren't declared yet. 148 */ 149 #ifdef __cplusplus 150 class ModuleBase; 151 class Pe2Lx; 152 class Elf2Lx; 153 #else 154 typedef char ModuleBase; 155 typedef char Pe2Lx; 156 typedef char Elf2Lx; 157 #endif 158 159 160 /* 161 * Module struct. 162 */ 163 typedef struct _Module 164 { 165 AVLNODECORE coreKey; /* Key is hFile. */ 166 AVLNODECORE coreMTE; /* Key is pMTE. */ 167 168 SFN hFile; /* System file number or file handle if you prefer that. */ 169 PMTE pMTE; /* Pointer to MTE if we got one - NULL is allowed. */ 170 171 ULONG fFlags; /* Flags. Flags if coreMte is in use and what Data contains. */ 172 union 173 { 174 ModuleBase *pModule; /* Pointer to base module. */ 175 Pe2Lx * pPe2Lx; /* Pointer to a Pe2Lx object. (Win32 executables) */ 176 Elf2Lx * pElf2Lx; /* Pointer to a Elf2Lx object. (ELF executables) */ 177 #if 0 178 Script * pScript; /* Pointer to a Script object. (Shell scripts) */ 179 Pe * pPe; /* Pointer to a Pe object. (Ring3 loader) */ 180 #endif 181 } Data; /* Pointer to data. Currently it's allways a Pe2Lx object! */ 182 } MODULE, *PMODULE; 183 184 #define MOD_FLAGS_IN_MTETREE 0x00000010UL /* The node is present in the MTE-tree. */ 185 #define MOD_TYPE_MASK 0x0000000FUL /* Type mask. */ 186 #define MOD_TYPE_PE2LX 0x00000001UL /* Pe2Lx module. */ 187 #define MOD_TYPE_ELF2LX 0x00000002UL /* Elf2Lx module. */ 188 #define MOD_TYPE_SCRIPT 0x00000003UL /* Script module. */ 189 #define MOD_TYPE_PE 0x00000004UL /* Pe module. */ 190 191 192 /* 193 * Pointer to the currently loading executable module. 194 * Available at tkExecPgm time when loading a converted module. 195 */ 196 extern PMODULE pExeModule; 197 198 199 /* 200 * Modules operations. 201 */ 202 PMODULE getModuleBySFN(SFN hFile); 203 PMODULE getModuleByMTE(PMTE pMTE); 204 PMODULE getModuleByhMTE(HMTE hMTE); 205 PMODULE getModuleByFilename(PCSZ pszFilename); 206 207 ULONG addModule(SFN hFile, PMTE pMTE, ULONG fFlags, ModuleBase *pModObj); 208 ULONG removeModule(SFN hFile); 209 210 211 212 /* 213 * mytkExecPgm variables and functions 214 * 215 * (See ldr\mytkExecPgm.asm for further info on these variabels and functions.) 216 */ 217 #define CCHFILENAME 261 /* This is defined in mytkExecPgm.asm too. */ 218 #define CCHARGUMENTS 1536 /* This is defined in mytkExecPgm.asm too. */ 219 extern const char fTkExecPgm; 220 extern char achTkExecPgmFilename[CCHFILENAME]; 221 extern char achTkExecPgmArguments[CCHARGUMENTS]; 222 #endif 223 ULONG _Optlink tkExecPgmEnvLength(void); 224 ULONG _Optlink tkExecPgmCopyEnv(char *pachBuffer, unsigned cchBuffer); 225 226 227 228 /* 229 * functions 230 */ 231 PSZ ldrGetExePath(PSZ pszPath, BOOL fExecChild); 232 ULONG ldrInit(void); 233 234 #ifdef __cplusplus 235 } 236 #endif 237 238 #pragma pack() 239 240 #endif -
trunk/src/win32k/include/log.h
r2898 r4164 1 /* $Id: log.h,v 1. 4 2000-02-25 18:15:04bird Exp $1 /* $Id: log.h,v 1.5 2000-09-02 21:08:02 bird Exp $ 2 2 * 3 3 * log - C-style logging - kprintf. … … 25 25 #define OUTPUT_COM1 0x3f8 26 26 #define OUTPUT_COM2 0x2f8 27 #define OUTPUT_COM3 0x3e8 28 #define OUTPUT_COM4 0x2e8 27 29 28 30 … … 32 34 #define dprintf kprintf 33 35 #if defined(DEBUG) && !defined(NOLOGGING) 34 #ifndef INCL_16 36 #ifdef INCL_16 37 /* 16-bit */ 38 #include "vprntf16.h" 39 #define kprintf(a) printf16 a 40 #define printf this function is not used in 16-bit code! Use printf16! 41 #else 35 42 /* 32-bit */ 36 43 #include <stdarg.h> 37 44 #include "vprintf.h" 38 45 #define kprintf(a) printf a 39 #else40 /* 16-bit */41 #include "vprntf16.h"42 #define kprintf(a) printf16 a43 46 #endif 44 47 #else 45 #define kprintf(a) ( void)048 #define kprintf(a) ((void)0) 46 49 #endif 47 50 -
trunk/src/win32k/include/macros.h
r3485 r4164 1 /* $Id: macros.h,v 1. 2 2000-05-03 10:46:07bird Exp $1 /* $Id: macros.h,v 1.3 2000-09-02 21:08:02 bird Exp $ 2 2 * 3 3 * Common macros for Win32k/Elf. … … 24 24 #define ALIGN(a, alignment) (((a) + (alignment - 1UL)) & ~(alignment - 1UL)) 25 25 26 /* 27 * Not referenced parameter warning fix. 28 */ 29 #define NOREF(a) (a=a) 26 30 27 31 /* -
trunk/src/win32k/include/myExecPgm.h
r2828 r4164 1 /* $Id: myExecPgm.h,v 1. 1 2000-02-19 08:41:10bird Exp $1 /* $Id: myExecPgm.h,v 1.2 2000-09-02 21:08:03 bird Exp $ 2 2 * 3 3 * Desclarations for buffer.asm and mytkExecPgm. … … 12 12 #define _myExecPgm_h_ 13 13 14 /******************************************************************************* 15 * Defined Constants And Macros * 16 *******************************************************************************/ 17 #define CB_BUFFER 1536 /* This is to be updated in the files buffer.asm and tkExecPgm too! */ 18 #define CCH_FILENAME 261 /* This is to be updated in the files buffer.asm and tkExecPgm too! */ 19 20 21 /******************************************************************************* 22 * Structures and Typedefs * 23 *******************************************************************************/ 24 #pragma pack(1) 25 typedef struct _EXECPGMBUFFER 26 { 27 char szFilename[CCH_FILENAME]; /* Executable filename. */ 28 char achArgs[CB_BUFFER - CCH_FILENAME]; /* collection of ASCIIZ which ends with an empty string */ 29 } EXECPGMBUFFER, *PEXECPGMBUFFER; 30 #pragma pack() 31 32 33 /******************************************************************************* 34 * Functions Prototypes * 35 *******************************************************************************/ 36 PEXECPGMBUFFER _Optlink QueryBufferPointerFromFilename(const char *pszFilename); 14 /* obsolete */ 37 15 38 16 #endif -
trunk/src/win32k/include/omf.h
r1678 r4164 1 /* $Id: omf.h,v 1. 2 1999-11-10 01:45:33 bird Exp $ */1 /* $Id: omf.h,v 1.3 2000-09-02 21:08:03 bird Exp $ */ 2 2 /* 3 3 * OMF stuff … … 16 16 #define LIBEND 0xF1 17 17 #define THEADR 0x80 18 19 18 #define MODEND 0x8a 20 19 #define MODEND2 0x8b 21 22 20 #define COMENT 0x88 23 21 #define IMPDEF 0x01 24 22 #define PUBDEF 0x90 25 23 #define LNAMES 0x96 24 #define SEGDEF 0x98 25 #define SEGDEF2 0x99 26 #define GRPDEF 0x9A 27 #define FIXUPP 0x9C 28 #define FIXUPP2 0x9D 29 #define LEDATA 0xA0 30 #define LEDATA2 0xA1 26 31 27 32 #endif -
trunk/src/win32k/include/options.h
r2898 r4164 1 /* $Id: options.h,v 1.1 0 2000-02-25 18:15:06bird Exp $1 /* $Id: options.h,v 1.11 2000-09-02 21:08:03 bird Exp $ 2 2 * 3 3 * Options. … … 16 16 *******************************************************************************/ 17 17 /* fKernel */ 18 #define KF_UNI 0x00000000UL 19 #define KF_SMP 0x00000001UL 18 #define KF_UNI 0x0000 19 #define KF_SMP 0x0001 20 #define KF_W4 0x0002 21 #define KF_DEBUG 0x1000 22 #define KF_HAS_DEBUGTYPE 0x2000 23 #define KF_ALLSTRICT 0x3000 24 #define KF_HALFSTRICT 0x7000 20 25 21 26 /* fPE */ … … 33 38 34 39 /* default heapsizes */ 35 #define CB_SWP_INIT ( 1024*512) /* 512KB */36 #define CB_SWP_MAX ( 1024*1024*16) /* 16MB */37 #define CB_RES_INIT ( 1024*256) /* 256KB */38 #define CB_RES_MAX ( 1024*1024*10) /* 10MB */40 #define CB_SWP_INIT ((unsigned long)1024*512) /* 512KB */ 41 #define CB_SWP_MAX ((unsigned long)1024*1024*16) /* 16MB */ 42 #define CB_RES_INIT ((unsigned long)1024*256) /* 256KB */ 43 #define CB_RES_MAX ((unsigned long)1024*1024*10) /* 10MB */ 39 44 40 45 /* default assignments */ … … 47 52 (unsigned short)~0, /* usVerMajor */ \ 48 53 (unsigned short)~0, /* usVerMinor */ \ 49 FLAGS_PE_ PE2LX, /* fPE */ \54 FLAGS_PE_MIXED, /* fPE */ \ 50 55 INFOLEVEL_QUIET, /* ulInfoLevel */ \ 51 56 FALSE, /* fElf */ \ 52 TRUE, /* fScript */ \ 57 TRUE, /* fUNIXScript */ \ 58 TRUE, /* fREXXScript */ \ 59 TRUE, /* fJava */ \ 53 60 FALSE, /* fNoLoader */ \ 54 61 CB_SWP_INIT, /* cbSwpHeapInit */ \ … … 57 64 CB_RES_MAX} /* cbResHeapMax */ 58 65 66 #define isAnyLoaderEnabled() (!options.fNoLoader && \ 67 (isPELoaderEnabled() || isELFEnabled() || isUNIXScriptEnabled() || isREXXScriptEnabled() || isJAVAEnabled())) 68 #define isPELoaderEnabled() (options.fPE != FLAGS_PE_NOT) 69 #define isPELoaderDisabled() (options.fPE == FLAGS_PE_NOT) 70 #define isPe2LxLoaderEnabled() (options.fPE == FLAGS_PE_PE2LX) 71 #define isMixedPeLoaderEnabled() (options.fPE == FLAGS_PE_MIXED) 72 73 #define isELFDisabled() (!options.fElf) 74 #define isELFEnabled() (options.fElf) 75 #define isUNIXScriptDisabled() (!options.fUNIXScript) 76 #define isUNIXScriptEnabled() (options.fUNIXScript) 77 #define isREXXScriptDisabled() (!options.fREXXScript) 78 #define isREXXScriptEnabled() (options.fREXXScript) 79 #define isJAVADisabled() (!options.fJava) 80 #define isJAVAEnabled() (options.fJava) 81 82 #define isSMPKernel() (options.fKernel & KF_SMP) 83 #define isUNIKernel() !(options.fKernel & KF_SMP) 59 84 60 85 … … 86 111 ULONG fElf; /* Elf flags. */ 87 112 88 /** @cat Options affecting the script executables */89 ULONG f Script; /* Script flags. */113 /** @cat Options affecting the UNIX script executables */ 114 ULONG fUNIXScript; /* UNIX script flags. */ 90 115 91 /** @cat Options affecting the script executables */ 92 ULONG fNoLoader; /* No loader stuff. */ 116 /** @cat Options affecting the REXX script executables */ 117 ULONG fREXXScript; /* REXX script flags. */ 118 119 /** @cat Options affecting the JAVA executables */ 120 ULONG fJava; /* Java flags. */ 121 122 /** @cat Options affecting the executables */ 123 ULONG fNoLoader; /* No loader stuff. !FIXME! We should import / functions even if this flag is set!!! */ 93 124 94 125 /** @cat Options affecting the heap. */ … … 100 131 #pragma pack() 101 132 102 103 133 /******************************************************************************* 104 134 * Global Variables * 105 135 *******************************************************************************/ 106 extern struct options options; /* defined in d32globals.c */136 extern struct options DATA16_GLOBAL options; /* defined in d16globals.c */ 107 137 #if defined(__IBMC__) || defined(__IBMCPP__) 108 138 #pragma map( options , "_options" ) -
trunk/src/win32k/include/pe2lx.h
r2925 r4164 1 /* $Id: pe2lx.h,v 1. 9 2000-02-27 02:16:43 bird Exp $1 /* $Id: pe2lx.h,v 1.10 2000-09-02 21:08:03 bird Exp $ 2 2 * 3 3 * Pe2Lx class declarations. Ring 0 and Ring 3 … … 66 66 ULONG applyFixups(PMTE pMTE, ULONG iObject, ULONG iPageTable, PVOID pvPage, 67 67 ULONG ulPageAddress, PVOID pvPTDA); /*(ldrEnum32bitRelRecs)*/ 68 ULONG openPath(PCHAR pachFilename, USHORT cchFilename, ldrlv_t *pLdrLv, PULONG pful); /* (ldrOpenPath) */ 69 static ULONG openPath2(PCHAR pachFilename, ULONG cchFilename, ldrlv_t *pLdrLv, PULONG pful, BOOL fOdin32PathValid); 68 70 #ifndef RING0 69 71 ULONG testApplyFixups(); 70 72 ULONG writeFile(PCSZ pszLXFilename); 71 73 #endif 74 75 /** @cat public query methods */ 76 BOOL isExe(); 77 BOOL isDll(); 78 static SFN getKernel32SFN() { return sfnKernel32; } 79 static VOID setKernel32SFN(SFN sfn) { sfnKernel32 = sfn; } 80 static VOID invalidateOdin32Path(); 81 static LONG getLoadedModuleCount() { return cLoadedModules;} 72 82 73 83 /** @cat public Helper methods */ … … 120 130 /** @cat static helpers */ 121 131 static PCSZ queryOdin32ModuleName(PCSZ pszWin32ModuleName); 132 static BOOL initOdin32Path(); 133 static BOOL setOdin32Path(const char *psz); 122 134 123 135 /** @cat static dump methods */ … … 195 207 ULONG flFlags; /* equivalent object flags */ 196 208 } paSecChars2Flags[]; 209 210 static LONG cLoadedModules; /* Count of existing objects. Updated by constructor and destructor. */ 211 static const char * pszOdin32Path; /* Odin32 base path (include a slash). */ 212 static ULONG cchOdin32Path; /* Odin32 base path length. */ 213 static SFN sfnKernel32; /* Odin32 Kernel32 filehandle. */ 197 214 }; 198 215 -
trunk/src/win32k/include/probkrnl.h
r3411 r4164 1 /* $Id: probkrnl.h,v 1.1 3 2000-04-17 01:56:49bird Exp $1 /* $Id: probkrnl.h,v 1.14 2000-09-02 21:08:04 bird Exp $ 2 2 * 3 3 * Include file for ProbKrnl. … … 16 16 * Defined Constants And Macros * 17 17 *******************************************************************************/ 18 #define NBR_OF_KRNLIMPORTS 18/* When this is changed make sure to */18 #define NBR_OF_KRNLIMPORTS 42 /* When this is changed make sure to */ 19 19 /* update the arrays in d32init.c and */ 20 /* probkrnl.c */ 20 /* probkrnl.c, make test faker in */ 21 /* test.h and the appropriate fake.c */ 22 /* fakea.asm. */ 21 23 #define MAX_LENGTH_NAME 32 /* Max length for the function. */ 22 24 … … 24 26 #define EPT_PROC 0x00 /* procedure - overload procedure*/ 25 27 #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 */ 28 #define EPT_VARIMPORT 0x02 /* variable/non-procedure 32bit */ 29 #define EPT_NOT_REQ 0x04 /* Not required flag. */ 30 #define EPT_32BIT 0x00 /* 32 bit entry-point */ 31 #define EPT_16BIT 0x80 /* 16 bit entry-point */ 29 32 #define EPT_BIT_MASK 0x80 /* Mask bit entry-point */ 30 33 #define EPT16BitEntry(a) (((a).fType & EPT_BIT_MASK) == EPT_16BIT) … … 34 37 #define EPT_PROC32 (EPT_PROC | EPT_32BIT) 35 38 #define EPT_PROCIMPORT32 (EPT_PROCIMPORT | EPT_32BIT) 39 #define EPT_PROCIMPORTNR32 (EPT_PROCIMPORT | EPT_32BIT | EPT_NOT_REQ) 36 40 #define EPT_VARIMPORT32 (EPT_VARIMPORT | EPT_32BIT) 37 41 … … 41 45 #define EPT_VARIMPORT16 (EPT_VARIMPORT | EPT_16BIT) 42 46 43 /* Kernel type: SMP/UNI/W4 */ 44 #define TYPE_UNI 0 /* Any UNI processor kernel except Warp 4 fp13 and above. */ 45 #define TYPE_SMP 1 /* SMP Warp3 Adv. or Warp 4.5 SMP */ 46 #define TYPE_W4 2 /* Warp4 fp13 and above. */ 47 48 /* Kernel type: SMP/UNI/W4 (flags matches KF_* in options.h) */ 49 #if 0 50 #define TYPE_UNI 0x00 /* Any UNI processor kernel except Warp 4 fp13 and above. */ 51 #define TYPE_SMP 0x01 /* SMP Warp3 Adv. or Warp 4.5 SMP */ 52 #define TYPE_W4 0x02 /* Warp4 fp13 and above. */ 53 #endif 47 54 48 55 … … 73 80 { 74 81 unsigned short usBuild; /* Build number */ 75 unsigned char fchBldType; /* R, H, A */ 76 unsigned char fchType; /* TYPE_SMP, TYPE_UNI, TYPE_W4 */ 82 unsigned short fKernel; /* Kernel flag (KF_* defines in options.h). */ 77 83 unsigned char cObjects; /* Count of objects */ 78 84 struct … … 91 97 * NOTE! These are only available at init time! * 92 98 *******************************************************************************/ 93 extern IMPORTKRNLSYM _aImportTab[NBR_OF_KRNLIMPORTS]; /* 'aImportTab' in PrbKrnl.c */ 94 extern unsigned short int _usBuild; /* 'ulBuild' in PrbKrnl.c */ 95 extern unsigned short int _usVerMajor; /* 'usVerMajor' in PrbKrnl.c */ 96 extern unsigned short int _usVerMinor; /* 'usVerMinor' in PrbKrnl.c */ 97 extern KRNLDBENTRY aKrnlSymDB[]; /* defined in symdb.c (for 16-bit usage) */ 98 extern KRNLDBENTRY _aKrnlSymDB[]; /* defined in symdb.c (for 32-bit usage) */ 99 extern IMPORTKRNLSYM DATA16_GLOBAL aImportTab[NBR_OF_KRNLIMPORTS]; /* Defined in ProbKrnl.c */ 100 extern char DATA16_GLOBAL szUsrSym[50]; /* Defined in ProbKrnl.c */ 101 extern KRNLDBENTRY DATA16_INIT aKrnlSymDB[]; /* Defined in symdb.c (for 16-bit usage) */ 99 102 103 #if defined(__IBMC__) || defined(__IBMCPP__) 104 #pragma map( aImportTab , "_aImportTab" ) 105 #pragma map( szUsrSym , "_szUsrSym" ) 106 #pragma map( aKrnlSymDB , "_aKrnlSymDB" ) 107 #endif 100 108 101 109 #if defined(INCL_16) && defined(MAX_DISKDD_CMD) /* 16-bit only */ 102 110 int ProbeKernel(PRPINITIN pReqPack); 111 112 #if 0 /*ndef CODE16_INIT*/ 113 #pragma alloc_text(CODE16_INIT, ProbeKernel) 103 114 #endif 104 115 105 116 #endif 106 117 118 #endif 119 -
trunk/src/win32k/include/rmalloc.h
r2506 r4164 1 /* $Id: rmalloc.h,v 1. 2 2000-01-24 01:44:08bird Exp $1 /* $Id: rmalloc.h,v 1.3 2000-09-02 21:08:04 bird Exp $ 2 2 * 3 3 * Resident Heap. … … 20 20 #endif 21 21 /* XLATON */ 22 /******************************************************************************* 23 * Structures and Typedefs * 24 *******************************************************************************/ 25 typedef struct HeapState_s /* note: this is used by both swappable and resident heaps */ 26 { 27 ULONG cbHeapSize; /* Amount of memory used by the heap free and used++. */ 28 ULONG cbHeapFree; /* Amount of used space. */ 29 ULONG cbHeapUsed; /* Amount of free space reserved. */ 30 ULONG cBlocksUsed; /* Count of used blocks. */ 31 ULONG cBlocksFree; /* Count of free blocks. */ 32 } HEAPSTATE, *PHEAPSTATE; 33 22 34 23 35 /******************************************************************************* … … 33 45 int _res_validptr2(void *, unsigned); 34 46 unsigned _res_memfree(void); 47 unsigned _res_memused(void); 48 int _res_state(PHEAPSTATE); 35 49 int _res_heap_check(void); 36 50 void _res_heapmin(void); 37 51 void _res_dump_subheaps(void); 38 52 void _res_dump_allocated(unsigned); 53 54 extern unsigned cbResHeapMax; /* Maximum amount of memory used by the heap. */ 55 39 56 40 57 /* XLATOFF */ -
trunk/src/win32k/include/smalloc.h
r2506 r4164 1 /* $Id: smalloc.h,v 1. 1 2000-01-24 01:44:08bird Exp $1 /* $Id: smalloc.h,v 1.2 2000-09-02 21:08:04 bird Exp $ 2 2 * 3 3 * Swappable Heap. … … 21 21 /* XLATON */ 22 22 23 struct HeapState_s; 24 23 25 /******************************************************************************* 24 26 * Exported Functions and Variables * … … 33 35 int _swp_validptr2(void *, unsigned); 34 36 unsigned _swp_memfree(void); 37 unsigned _swp_memused(void); 38 int _swp_state(struct HeapState_s *); 35 39 int _swp_heap_check(void); 36 40 void _swp_heapmin(void); 37 41 void _swp_dump_subheaps(void); 38 42 void _swp_dump_allocated(unsigned); 43 44 extern unsigned cbSwpHeapMax; /* Maximum amount of memory used by the heap. */ 39 45 40 46 /* XLATOFF */ -
trunk/src/win32k/include/test.h
r3829 r4164 1 /* $Id: test.h,v 1. 1 2000-07-16 22:17:13bird Exp $1 /* $Id: test.h,v 1.2 2000-09-02 21:08:04 bird Exp $ 2 2 * 3 3 * Definitions and declarations for test moduls. … … 93 93 PULONG pulAddr, 94 94 PUSHORT pushPTDA); 95 ULONG LDRCALL fakeldrOpenPath(PCHAR pachFilename, USHORT cchFilename, ldrlv_t *plv, PULONG pful); 96 ULONG LDRCALL fakeLDRClearSem(void); 97 ULONG KRNLCALL fakeKSEMRequestMutex(HKMTX hkmtx, ULONG ulTimeout); 98 extern HKMTX fakeLDRSem; 99 ULONG KRNLCALL fakeTKFuBuff(PVOID pv, PVOID pvUsr, ULONG cb, ULONG fl); 100 ULONG KRNLCALL fakeTKSuBuff(PVOID pvUsr, PVOID pv, ULONG cb, ULONG fl); 101 ULONG KRNLCALL fakeTKFuBufLen(PLONG pcch, PVOID pvUsr, ULONG cchMax, ULONG fl, BOOL fDblNULL); 102 PMTE LDRCALL fakeldrValidateMteHandle(HMTE hMTE); 103 void _Optlink fakeg_tkExecPgm(void); /* Not callable! (fakea.asm) */ 104 void _Optlink fakef_FuStrLenZ(void); /* Not callable! (fakea.asm) */ 105 void _Optlink fakef_FuStrLen(void); /* Not callable! (fakea.asm) */ 106 void _Optlink fakef_FuBuff(void); /* Not callable! (fakea.asm) */ 95 PMTE KRNLCALL fakeldrASMpMTEFromHandle( 96 HMTE hMTE); 97 ULONG LDRCALL fakeldrOpenPath(PCHAR pachFilename, USHORT cchFilename, ldrlv_t *plv, PULONG pful); 98 ULONG LDRCALL fakeLDRClearSem(void); 99 ULONG LDRCALL fakeldrFindModule(PCHAR pachFilename, USHORT cchFilename, USHORT usClass, PPMTE ppMTE); 100 ULONG KRNLCALL fakeKSEMRequestMutex(HKSEMMTX hkmtx, ULONG ulTimeout); 101 ULONG KRNLCALL fakeKSEMReleaseMutex(HKSEMMTX hkmtx); 102 BOOL KRNLCALL fakeKSEMQueryMutex(HKSEMMTX hkmtx, PUSHORT pcusNest); 103 VOID KRNLCALL fakeKSEMInit(PKSEM pksem, ULONG fulType, ULONG fulFlags); 104 extern KSEMMTX fakeLDRSem; 105 extern char * fakeLDRLibPath; 106 ULONG KRNLCALL fakeTKFuBuff(PVOID pv, PVOID pvUsr, ULONG cb, ULONG fl); 107 ULONG KRNLCALL fakeTKSuBuff(PVOID pvUsr, PVOID pv, ULONG cb, ULONG fl); 108 ULONG KRNLCALL fakeTKFuBufLen(PLONG pcch, PVOID pvUsr, ULONG cchMax, ULONG fl, BOOL fDblNULL); 109 PMTE LDRCALL fakeldrValidateMteHandle(HMTE hMTE); 110 PSZ SECCALL fakeSecPathFromSFN(SFN hFile); 111 void _Optlink fakeg_tkExecPgm(void); /* Not callable! (fakea.asm) */ 112 void _Optlink fake_tkStartProcess(void);/* Not callable! (fakea.asm) */ 113 void _Optlink fakef_FuStrLenZ(void); /* Not callable! (fakea.asm) */ 114 void _Optlink fakef_FuStrLen(void); /* Not callable! (fakea.asm) */ 115 void _Optlink fakef_FuBuff(void); /* Not callable! (fakea.asm) */ 107 116 extern PTCB fakepTCBCur; 108 117 extern PPTDA fakepPTDACur; 109 118 extern char fakeptda_start; 110 119 extern USHORT fakeptda_environ; 120 extern KSEMMTX fakeptda_ptdasem; 121 extern HMTE fakeptda_module; 122 extern PSZ fakeptda_pBeginLIBPATH; 123 extern PSZ fakeldrpFileNameBuf; 111 124 112 125 #endif /* INCL_NO_FAKE */ 113 126 114 127 #ifdef INCL_16 115 extern USHORT usFakeVerMajor;/* define in probkrnl.c */116 extern USHORT usFakeVerMinor;/* define in probkrnl.c */128 extern USHORT usFakeVerMajor; /* define in probkrnl.c */ 129 extern USHORT usFakeVerMinor; /* define in probkrnl.c */ 117 130 #else 118 extern USHORT _usFakeVerMajor;119 extern USHORT _usFakeVerMinor;131 extern USHORT _usFakeVerMajor; 132 extern USHORT _usFakeVerMinor; 120 133 #endif 121 134 122 extern const char *pszInternalRevision; /* defined in win32ktst.c */ 135 #ifdef _OS2Krnl_h_ 136 extern int cObjectsFake; /* defined in win32ktst.c */ 137 extern OTE aKrnlOTE[24]; /* defined in win32ktst.c */ 138 #endif 123 139 124 140 #ifdef __cplusplus -
trunk/src/win32k/include/vprntf16.h
r2898 r4164 1 /* $Id: vprntf16.h,v 1. 1 2000-02-25 18:15:06bird Exp $1 /* $Id: vprntf16.h,v 1.2 2000-09-02 21:08:04 bird Exp $ 2 2 * 3 3 * printf/vprintf header file - 16bit. … … 30 30 * Function prototypes 31 31 */ 32 int printf16(const char *pszFormat, ...); 33 int vprintf16(const char *pszFormat, va_list args); 32 int FAR printf16(const char *pszFormat, ...); 33 int FAR vprintf16(const char *pszFormat, va_list args); 34 35 /*#pragma alloc_text(CODE16, printf16, vprintf16)*/ 34 36 35 37 -
trunk/src/win32k/include/win32k.h
r2918 r4164 1 /* $Id: win32k.h,v 1. 4 2000-02-26 20:21:42bird Exp $1 /* $Id: win32k.h,v 1.5 2000-09-02 21:08:00 bird Exp $ 2 2 * 3 3 * Top level make file for the Win32k library. … … 25 25 */ 26 26 #define K32_ALLOCMEMEX 0x01 27 27 #define K32_QUERYOTES 0x02 28 #define K32_QUERYOPTIONSSTATUS 0x03 29 #define K32_SETOPTIONS 0x04 28 30 29 31 /* … … 36 38 * Structures and Typedefs * 37 39 *******************************************************************************/ 40 #pragma pack(1) 41 42 /* 43 * Object Table Entry buffer. 44 */ 45 typedef struct _QueryOTE 46 { 47 ULONG ote_size; /* Object virtual size */ 48 ULONG ote_base; /* Object base virtual address */ 49 ULONG ote_flags; /* Attribute flags */ 50 ULONG ote_pagemap; /* Object page map index */ 51 ULONG ote_mapsize; /* Num of entries in obj page map */ 52 /*ULONG ote_reserved;*/ 53 USHORT ote_sel; /* Object Selector */ 54 USHORT ote_hob; /* Object Handle */ 55 } QOTE, *PQOTE; 56 57 typedef struct _QueryOTEBuffer 58 { 59 ULONG cOTEs; /* Number of entries in aOTE. */ 60 QOTE aOTE[1]; /* Array of OTEs. */ 61 } QOTEBUFFER, *PQOTEBUFFER; 62 63 64 /* 65 * Options struct. 66 * 67 * (The function of these members are described in options.h in 68 * the src\win32k\include directory.) 69 * All members of this struct (except cb ofcourse) is changable. 70 */ 71 typedef struct _K32Options 72 { 73 ULONG cb; 74 75 /** @cat logging options */ 76 USHORT usCom; /* Output port no. */ 77 ULONG fLogging; /* Logging. */ 78 79 /** @cat Options affecting the generated LX executables */ 80 ULONG fPE; /* Flags set the type of conversion. */ 81 ULONG ulInfoLevel; /* Pe2Lx InfoLevel. */ 82 83 /** @cat Options affecting the generated ELF executables */ 84 ULONG fElf; /* Elf flags. */ 85 86 /** @cat Options affecting the UNIX script executables */ 87 ULONG fUNIXScript; /* UNIX script flags. */ 88 89 /** @cat Options affecting the REXX script executables */ 90 ULONG fREXXScript; /* REXX script flags. */ 91 92 /** @cat Options affecting the JAVA executables */ 93 ULONG fJava; /* Java flags. */ 94 95 /** @cat Options affecting the executables */ 96 ULONG fNoLoader; /* No loader stuff. !FIXME! We should import / functions even if this flag is set!!! */ 97 98 /** @cat Options affecting the heap. */ 99 ULONG cbSwpHeapMax; /* Maximum heapsize. */ 100 ULONG cbResHeapMax; /* Maxiumem residentheapsize. */ 101 } K32OPTIONS, *PK32OPTIONS; 102 103 104 /* 105 * Status struct. 106 * 107 */ 108 typedef struct _K32Status 109 { 110 ULONG cb; 111 112 /** @cat Options status. */ 113 ULONG fQuiet; /* Quiet initialization. */ 114 115 /** @cat Kernel status. */ 116 ULONG fKernel; /* Smp or uni kernel. */ 117 ULONG ulBuild; /* Kernel build. */ 118 USHORT usVerMajor; /* OS/2 major ver - 20 */ 119 USHORT usVerMinor; /* OS/2 minor ver - 30,40 */ 120 121 /** @cat Heap status. */ 122 ULONG cbSwpHeapInit; /* Initial heapsize. */ 123 ULONG cbSwpHeapFree; /* Amount of used space. */ 124 ULONG cbSwpHeapUsed; /* Amount of free space reserved. */ 125 ULONG cbSwpHeapSize; /* Amount of memory used by the heap free and used++. */ 126 ULONG cSwpBlocksUsed; /* Count of used blocks. */ 127 ULONG cSwpBlocksFree; /* Count of free blocks. */ 128 129 ULONG cbResHeapInit; /* Initial heapsize. */ 130 ULONG cbResHeapFree; /* Amount of free space reserved. */ 131 ULONG cbResHeapUsed; /* Amount of used space. */ 132 ULONG cbResHeapSize; /* Amount of memory used by the heap free and used++. */ 133 ULONG cResBlocksUsed; /* Count of used blocks. */ 134 ULONG cResBlocksFree; /* Count of free blocks. */ 135 136 /** @cat Win32k build, version and init stuff */ 137 CHAR szBuildDate[12]; /* Date of the win32k build. (Sep 02 2000) */ 138 CHAR szBuildTime[9]; /* Time of the win32k build. (11:44:21) */ 139 ULONG ulVersion; /* Win32k version */ 140 CHAR szSymFile[CCHMAXPATH]; /* The name of the symbol file or sym database. */ 141 142 /** @cat Statistics */ 143 ULONG cPe2LxModules; /* Number of Pe2Lx modules currently loaded. */ 144 ULONG cElf2LxModules; /* Number of Elf2Lx modules currently loaded. */ 145 /*...*/ 146 } K32STATUS, *PK32STATUS; 147 148 149 38 150 /* 39 151 * K32 category parameter structs … … 51 163 } K32ALLOCMEMEX, *PK32ALLOCMEMEX; 52 164 53 54 55 56 #ifdef INCL_WIN32K_LIB 165 typedef struct _k32QueryOTEs 166 { 167 HMODULE hMTE; /* Module handle. */ 168 PQOTEBUFFER pQOte; /* Pointer to output buffer. */ 169 ULONG cbQOte; /* Size of the buffer pointed to by pQOte */ 170 ULONG rc; /* Return code. */ 171 } K32QUERYOTES, *PK32QUERYOTES; 172 173 typedef struct _k32QueryOptionsStatus 174 { 175 PK32OPTIONS pOptions; /* Pointer to option struct. (NULL allowed) */ 176 PK32STATUS pStatus; /* Pointer to status struct. (NULL allowed) */ 177 ULONG rc; /* Return code. */ 178 } K32QUERYOPTIONSSTATUS, *PK32QUERYOPTIONSSTATUS; 179 180 typedef struct _k32SetOptions 181 { 182 PK32OPTIONS pOptions; /* Pointer to option struct. (NULL allowed) */ 183 ULONG rc; /* Return code. */ 184 } K32SETOPTIONS, *PK32SETOPTIONS; 185 186 187 #pragma pack() 188 189 #ifndef NO_WIN32K_LIB_FUNCTIONS 57 190 /******************************************************************************* 58 191 * External Functions * 59 192 *******************************************************************************/ 193 /* Win32k APIs */ 60 194 APIRET APIENTRY libWin32kInit(void); 61 195 APIRET APIENTRY libWin32kTerm(void); 196 BOOL APIENTRY libWin32kInstalled(void); 197 APIRET APIENTRY libWin32kQueryOptionsStatus(PK32OPTIONS pOptions, PK32STATUS pStatus); 198 APIRET APIENTRY libWin32kSetOptions(PK32OPTIONS pOptions); 199 200 /* "Extra OS2 APIs" */ 201 APIRET APIENTRY DosAllocMemEx(PPVOID ppv, ULONG cb, ULONG flag); 202 APIRET APIENTRY W32kQueryOTEs(HMODULE hMTE, PQOTEBUFFER pQOte, ULONG cbQOte); 203 204 /* Helper function */ 62 205 USHORT APIENTRY libHelperGetCS(void); 63 APIRET APIENTRY DosAllocMemEx(PPVOID ppv, ULONG cb, ULONG flag);64 206 65 207
Note:
See TracChangeset
for help on using the changeset viewer.