Subversion Repositories Kolibri OS

Rev

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

Rev 1300 Rev 1311
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2004-2009. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2009. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
$Revision: 1300 $
8
$Revision: 1311 $
9
 
9
 
Line 637... Line 637...
637
; access denied? this may be a result of copy-on-write protection for DLL
637
; access denied? this may be a result of copy-on-write protection for DLL
638
; check list of HDLLs
638
; check list of HDLLs
639
        and     ebx, not 0xFFF
639
        and     ebx, not 0xFFF
640
        mov     eax, [CURRENT_TASK]
640
        mov     eax, [CURRENT_TASK]
641
        shl     eax, 8
641
        shl     eax, 8
642
        lea     eax, [SLOT_BASE+eax+APP_OBJ_OFFSET]
642
        mov     eax, [SLOT_BASE+eax+APPDATA.dlls_list_ptr]
-
 
643
        test    eax, eax
-
 
644
        jz      .fail
643
        mov     esi, [eax+APPOBJ.fd]
645
        mov     esi, [eax+HDLL.fd]
644
.scan_hdll:
646
.scan_hdll:
645
        cmp     esi, eax
647
        cmp     esi, eax
646
        jz      .fail
648
        jz      .fail
647
        cmp     [esi+APPOBJ.magic], 'HDLL'
-
 
648
        jnz     .scan_hdll.next
-
 
649
        mov     edx, ebx
649
        mov     edx, ebx
650
        sub     edx, [esi+HDLL.base]
650
        sub     edx, [esi+HDLL.base]
651
        cmp     edx, [esi+HDLL.size]
651
        cmp     edx, [esi+HDLL.size]
652
        jb      .fault_in_hdll
652
        jb      .fault_in_hdll
653
.scan_hdll.next:
653
.scan_hdll.next:
654
        mov     esi, [esi+APPOBJ.fd]
654
        mov     esi, [esi+HDLL.fd]
655
        jmp     .scan_hdll
655
        jmp     .scan_hdll
656
.fault_in_hdll:
656
.fault_in_hdll:
657
; allocate new page, map it as rw and copy data
657
; allocate new page, map it as rw and copy data
658
        call    alloc_page
658
        call    alloc_page
659
        test    eax, eax
659
        test    eax, eax