Changeset 4046 for branches/Grace/src
- Timestamp:
- Aug 19, 2000, 4:37:21 PM (25 years ago)
- Location:
- branches/Grace/src/win32k/ldr
- Files:
-
- 3 edited
-
calltab.asm (modified) (8 diffs)
-
myLDRQAppType.cpp (modified) (2 diffs)
-
mytkExecPgm.asm (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/Grace/src/win32k/ldr/calltab.asm
r4018 r4046 1 ; $Id: calltab.asm,v 1.12.4. 2 2000-08-15 07:03:25bird Exp $1 ; $Id: calltab.asm,v 1.12.4.3 2000-08-19 14:37:13 bird Exp $ 2 2 ; 3 3 ; callTab - Call back again table - table with entry for each function or … … 44 44 public _LDRClearSem@0 45 45 public _KSEMRequestMutex@8 46 public _KSEMReleaseMutex@4 46 47 47 48 public pLDRSem … … 206 207 207 208 ; 21 209 _KSEMReleaseMutex@4 PROC NEAR 210 db MAXSIZE_PROLOG dup(0cch) 211 _KSEMReleaseMutex@4 ENDP 212 213 ; 22 208 214 pLDRSem dd 0 209 215 LDRSem_offObject dd 0 … … 212 218 db (MAXSIZE_PROLOG - 14) dup(0cch) 213 219 214 ; 2 2220 ; 23 215 221 _TKSuBuff@16 PROC NEAR 216 222 db MAXSIZE_PROLOG dup(0cch) 217 223 _TKSuBuff@16 ENDP 218 224 219 ; 2 3225 ; 24 220 226 _TKFuBuff@16 PROC NEAR 221 227 db MAXSIZE_PROLOG dup(0cch) 222 228 _TKFuBuff@16 ENDP 223 229 224 ; 2 4230 ; 25 225 231 _TKFuBufLen@20 PROC NEAR 226 232 db MAXSIZE_PROLOG dup(0cch) 227 233 _TKFuBufLen@20 ENDP 228 234 229 ; 25235 ; 26 230 236 _ldrValidateMteHandle@4 PROC NEAR 231 237 db MAXSIZE_PROLOG dup(0cch) 232 238 _ldrValidateMteHandle@4 ENDP 233 239 234 ; 2 6240 ; 27 235 241 ppTCBCur dd 0 236 242 pTCBCur_offObject dd 0 … … 239 245 db (MAXSIZE_PROLOG - 14) dup(0cch) 240 246 241 ; 2 7247 ; 28 242 248 ppPTDACur dd 0 243 249 pPTDACur_offObject dd 0 … … 246 252 db (MAXSIZE_PROLOG - 14) dup(0cch) 247 253 248 ; 2 8254 ; 29 249 255 pptda_start dd 0 250 256 ptda_start_offObject dd 0 … … 253 259 db (MAXSIZE_PROLOG - 14) dup(0cch) 254 260 255 ; 29261 ; 30 256 262 pptda_environ dd 0 257 263 ptda_environ_offObject dd 0 … … 260 266 db (MAXSIZE_PROLOG - 14) dup(0cch) 261 267 262 ; 3 0268 ; 31 263 269 pptda_module dd 0 264 270 ptda_module_offObject dd 0 -
branches/Grace/src/win32k/ldr/myLDRQAppType.cpp
r3834 r4046 1 /* $Id: myLDRQAppType.cpp,v 1.3.4. 1 2000-07-16 22:43:35bird Exp $1 /* $Id: myLDRQAppType.cpp,v 1.3.4.2 2000-08-19 14:37:14 bird Exp $ 2 2 * 3 3 * _myLDRQAppType - _LDRQAppType overload. … … 47 47 kprintf(("myLDRQAppType: entry\n")); 48 48 49 rc = LDR GetSem();49 rc = LDRRequestSem(); 50 50 if (rc != NO_ERROR) 51 51 { -
branches/Grace/src/win32k/ldr/mytkExecPgm.asm
r4025 r4046 1 ; $Id: mytkExecPgm.asm,v 1.10.4. 2 2000-08-17 08:23:34bird Exp $1 ; $Id: mytkExecPgm.asm,v 1.10.4.3 2000-08-19 14:37:16 bird Exp $ 2 2 ; 3 3 ; mytkExecPgm - tkExecPgm overload … … 84 84 public tkExecPgmCopyEnv 85 85 86 public fLdrSemTaken 86 87 public fTkExecPgm 87 88 public achTkExecPgmFilename … … 100 101 ; (and you'll have to be behind the loader semaphore of course!) 101 102 DATA16 SEGMENT 103 fLdrSemTaken db 0 ; 0 - Loader Semaphore not taken 104 ; 1 - Loader semaphore is taken and will be freed at exit. 102 105 fTkExecPgm db 0 ; 0 - achTkExecPgmFilename and achTkExecPgmArguments is INVALID 103 106 ; 1 - achTkExecPgmFilename and achTkExecPgmArguments is VALID. … … 223 226 224 227 push 0ffffffffh ; Wait indefinitely. 225 push dword ptr eax; LDRSem handle.228 push eax ; LDRSem handle. 226 229 call near ptr FLAT:_KSEMRequestMutex@8 227 230 or eax, eax ; Check if failed. 228 231 jnz tkepgm_backout ; Backout on failure. 232 mov fLdrSemTaken, 1 ; Marks that the loader semaphore is taken 229 233 230 234 … … 313 317 push cs ; Problem calling far into the calltab segement. 314 318 call near ptr FLAT:_g_tkExecPgm 315 pushfd 316 317 ; 318 ; Clear loader semaphore. 319 ; 319 pushfd ; preserve flags 320 320 push eax ; preserve result. 321 321 push ecx ; preserve ecx just in case … … 324 324 mov ds, ax 325 325 mov es, ax 326 ASSUME ds:FLAT, es:FLAT 327 call near ptr FLAT:_LDRClearSem@0 328 pop edx ; restore edx 329 pop ecx ; restore ecx 330 pop eax ; restore result. 326 ASSUME ds:FLAT, es:FLAT ; both ds and es are now FLAT 331 327 332 328 ; … … 338 334 339 335 ; 336 ; Clear loader semaphore. 337 ; 338 cmp fLdrSemTaken, 0 ; is the semaphore still taken? 339 je tkepgm_callbehindret ; jmp if not taken. 340 mov fLdrSemTaken, 0 ; Loader semaphore is not taken any longer! 341 call near ptr FLAT:_LDRClearSem@0 342 343 ; 340 344 ; Restore ds and es (probably unecessary but...) and Return 341 345 ; 346 tkepgm_callbehindret: 342 347 push dword ptr [ebp + SegFilename] 343 348 pop ds 344 349 push dword ptr [ebp + SegEnv] 345 350 pop es 346 popfd 351 pop edx ; restore edx 352 pop ecx ; restore ecx 353 pop eax ; restore result. 354 popfd ; restore flags 347 355 leave 348 356 retf
Note:
See TracChangeset
for help on using the changeset viewer.
