Changeset 4046 for branches/Grace/src


Ignore:
Timestamp:
Aug 19, 2000, 4:37:21 PM (25 years ago)
Author:
bird
Message:

More bugs corrected.
It's working now!

Location:
branches/Grace/src/win32k/ldr
Files:
3 edited

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:25 bird Exp $
     1; $Id: calltab.asm,v 1.12.4.3 2000-08-19 14:37:13 bird Exp $
    22;
    33; callTab - Call back again table - table with entry for each function or
     
    4444    public _LDRClearSem@0
    4545    public _KSEMRequestMutex@8
     46    public _KSEMReleaseMutex@4
    4647
    4748    public pLDRSem
     
    206207
    207208; 21
     209_KSEMReleaseMutex@4 PROC NEAR
     210    db MAXSIZE_PROLOG dup(0cch)
     211_KSEMReleaseMutex@4 ENDP
     212
     213; 22
    208214pLDRSem          dd  0
    209215LDRSem_offObject dd  0
     
    212218    db (MAXSIZE_PROLOG - 14) dup(0cch)
    213219
    214 ; 22
     220; 23
    215221_TKSuBuff@16 PROC NEAR
    216222    db MAXSIZE_PROLOG dup(0cch)
    217223_TKSuBuff@16 ENDP
    218224
    219 ; 23
     225; 24
    220226_TKFuBuff@16 PROC NEAR
    221227    db MAXSIZE_PROLOG dup(0cch)
    222228_TKFuBuff@16 ENDP
    223229
    224 ; 24
     230; 25
    225231_TKFuBufLen@20 PROC NEAR
    226232    db MAXSIZE_PROLOG dup(0cch)
    227233_TKFuBufLen@20 ENDP
    228234
    229 ;25
     235; 26
    230236_ldrValidateMteHandle@4 PROC NEAR
    231237    db MAXSIZE_PROLOG dup(0cch)
    232238_ldrValidateMteHandle@4 ENDP
    233239
    234 ; 26
     240; 27
    235241ppTCBCur           dd  0
    236242pTCBCur_offObject  dd  0
     
    239245    db (MAXSIZE_PROLOG - 14) dup(0cch)
    240246
    241 ; 27
     247; 28
    242248ppPTDACur          dd  0
    243249pPTDACur_offObject dd  0
     
    246252    db (MAXSIZE_PROLOG - 14) dup(0cch)
    247253
    248 ; 28
     254; 29
    249255pptda_start          dd  0
    250256ptda_start_offObject dd  0
     
    253259    db (MAXSIZE_PROLOG - 14) dup(0cch)
    254260
    255 ; 29
     261; 30
    256262pptda_environ          dd  0
    257263ptda_environ_offObject dd  0
     
    260266    db (MAXSIZE_PROLOG - 14) dup(0cch)
    261267
    262 ; 30
     268; 31
    263269pptda_module          dd  0
    264270ptda_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:35 bird Exp $
     1/* $Id: myLDRQAppType.cpp,v 1.3.4.2 2000-08-19 14:37:14 bird Exp $
    22 *
    33 * _myLDRQAppType - _LDRQAppType overload.
     
    4747    kprintf(("myLDRQAppType: entry\n"));
    4848
    49     rc = LDRGetSem();
     49    rc = LDRRequestSem();
    5050    if (rc != NO_ERROR)
    5151    {
  • branches/Grace/src/win32k/ldr/mytkExecPgm.asm

    r4025 r4046  
    1 ; $Id: mytkExecPgm.asm,v 1.10.4.2 2000-08-17 08:23:34 bird Exp $
     1; $Id: mytkExecPgm.asm,v 1.10.4.3 2000-08-19 14:37:16 bird Exp $
    22;
    33; mytkExecPgm - tkExecPgm overload
     
    8484    public tkExecPgmCopyEnv
    8585
     86    public fLdrSemTaken
    8687    public fTkExecPgm
    8788    public achTkExecPgmFilename
     
    100101; (and you'll have to be behind the loader semaphore of course!)
    101102DATA16 SEGMENT
     103fLdrSemTaken            db 0            ; 0 - Loader Semaphore not taken
     104                                        ; 1 - Loader semaphore is taken and will be freed at exit.
    102105fTkExecPgm              db 0            ; 0 - achTkExecPgmFilename and achTkExecPgmArguments is INVALID
    103106                                        ; 1 - achTkExecPgmFilename and achTkExecPgmArguments is VALID.
     
    223226
    224227    push    0ffffffffh                  ; Wait indefinitely.
    225     push    dword ptr eax               ; LDRSem handle.
     228    push    eax                         ; LDRSem handle.
    226229    call    near ptr FLAT:_KSEMRequestMutex@8
    227230    or      eax, eax                    ; Check if failed.
    228231    jnz     tkepgm_backout              ; Backout on failure.
     232    mov     fLdrSemTaken, 1             ; Marks that the loader semaphore is taken
    229233
    230234
     
    313317    push    cs                          ; Problem calling far into the calltab segement.
    314318    call    near ptr FLAT:_g_tkExecPgm
    315     pushfd
    316 
    317     ;
    318     ; Clear loader semaphore.
    319     ;
     319    pushfd                              ; preserve flags
    320320    push    eax                         ; preserve result.
    321321    push    ecx                         ; preserve ecx just in case
     
    324324    mov     ds, ax
    325325    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
    331327
    332328    ;
     
    338334
    339335    ;
     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    ;
    340344    ; Restore ds and es (probably unecessary but...) and Return
    341345    ;
     346tkepgm_callbehindret:
    342347    push    dword ptr [ebp + SegFilename]
    343348    pop     ds
    344349    push    dword ptr [ebp + SegEnv]
    345350    pop     es
    346     popfd
     351    pop     edx                         ; restore edx
     352    pop     ecx                         ; restore ecx
     353    pop     eax                         ; restore result.
     354    popfd                               ; restore flags
    347355    leave
    348356    retf
Note: See TracChangeset for help on using the changeset viewer.