Subversion Repositories Kolibri OS

Rev

Rev 4430 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4430 Rev 4433
Line 623... Line 623...
623
.fail:  ;simply return to caller
623
.fail:  ;simply return to caller
624
        mov     esp, ebp
624
        mov     esp, ebp
625
        pop     ebx               ;restore exception number (#PF)
625
        pop     ebx               ;restore exception number (#PF)
626
        ret
626
        ret
Line 627... Line -...
627
 
-
 
628
;        xchg bx, bx
-
 
629
;        add     esp,12 ;clear in stack: locals(.err_addr) + #PF + ret_to_caller
-
 
630
;        restore_ring3_context
-
 
631
;        iretd
-
 
632
 
627
 
633
.user_space:
628
.user_space:
634
        test    eax, PG_MAP
629
        test    eax, PG_MAP
635
        jnz     .err_access       ;Страница присутствует
630
        jnz     .err_access       ;Страница присутствует
Line 667... Line 662...
667
 
662
 
668
.err_access:
663
.err_access:
669
; access denied? this may be a result of copy-on-write protection for DLL
664
; access denied? this may be a result of copy-on-write protection for DLL
670
; check list of HDLLs
665
; check list of HDLLs
671
        and     ebx, not 0xFFF
666
        and     ebx, not 0xFFF
672
        mov     eax, [CURRENT_TASK]
-
 
673
        shl     eax, 8
667
        mov     eax, [current_process]
674
        mov     eax, [SLOT_BASE+eax+APPDATA.dlls_list_ptr]
668
        mov     eax, [eax+PROC.dlls_list_ptr]
675
        test    eax, eax
669
        test    eax, eax
676
        jz      .fail
670
        jz      .fail
677
        mov     esi, [eax+HDLL.fd]
671
        mov     esi, [eax+HDLL.fd]
678
.scan_hdll:
672
.scan_hdll:
Line 902... Line 896...
902
        cli
896
        cli
903
        cld
897
        cld
904
        push    ebx ecx
898
        push    ebx ecx
905
        mov     eax, [slot]
899
        mov     eax, [slot]
906
        shl     eax, 8
900
        shl     eax, 8
907
        mov     eax, [SLOT_BASE+eax+APPDATA.dlls_list_ptr]
901
        mov     eax, [SLOT_BASE+eax+APPDATA.process]
-
 
902
        mov     eax, [eax+PROC.dlls_list_ptr]
908
        test    eax, eax
903
        test    eax, eax
909
        jz      .no_hdll
904
        jz      .no_hdll
910
        mov     ecx, [eax+HDLL.fd]
905
        mov     ecx, [eax+HDLL.fd]
911
.scan_hdll:
906
.scan_hdll:
912
        cmp     ecx, eax
907
        cmp     ecx, eax