Subversion Repositories Kolibri OS

Rev

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

Rev 4066 Rev 4067
Line 742... Line 742...
742
;               ebx = pointer to paramteres from sysfunc 70.
742
;               ebx = pointer to paramteres from sysfunc 70.
743
;               ebp = pointer to EXTFS structure.
743
;               ebp = pointer to EXTFS structure.
744
; Output:       eax = error code.
744
; Output:       eax = error code.
745
;---------------------------------------------------------------------
745
;---------------------------------------------------------------------
746
ext2_GetFileInfo:
746
ext2_GetFileInfo:
747
        ;DEBUGF  1, "Calling for file info.\n"
747
        ;DEBUGF  1, "Calling for file info, for: %s.\n", esi
748
        call    ext2_lock
748
        call    ext2_lock
749
        mov     edx, [ebx + 16]
749
        mov     edx, [ebx + 16]
750
        cmp     byte [esi], 0
750
        cmp     byte [esi], 0
751
        jz      .is_root
751
        jz      .is_root
Line 760... Line 760...
760
        jz      @F
760
        jz      @F
Line 761... Line 761...
761
 
761
 
762
        push    eax
762
        push    eax
763
        call    ext2_unlock
763
        call    ext2_unlock
764
        pop     eax
-
 
765
 
764
        pop     eax
766
        ;DEBUGF  1, "Returning with: %x.\n", eax
765
        ;DEBUGF  1, "Returning with: %x.\n", eax
Line 767... Line 766...
767
        ret
766
        ret
768
 
767
 
Line 1162... Line 1161...
1162
        call    current_unix_time
1161
        call    current_unix_time
Line 1163... Line 1162...
1163
 
1162
 
Line 1164... Line 1163...
1164
        pop     edi
1163
        pop     edi
1165
 
1164
 
1166
        mov     ebx, [ebp + EXTFS.ext2_temp_inode]
1165
        mov     ebx, [ebp + EXTFS.ext2_temp_inode]
1167
        mov     [ebx + EXT2_INODE_STRUC.i_mode], EXT2_S_IFDIR
1166
        mov     [ebx + EXT2_INODE_STRUC.i_mode], EXT2_S_IFDIR or PERMISSIONS
1168
        mov     eax, edx
1167
        mov     eax, edx
1169
        call    ext2_inode_write
1168
        call    ext2_inode_write
Line 1342... Line 1341...
1342
        call    current_unix_time
1341
        call    current_unix_time
Line 1343... Line 1342...
1343
 
1342
 
Line 1344... Line 1343...
1344
        pop     edi
1343
        pop     edi
1345
 
1344
 
1346
        mov     ebx, [ebp + EXTFS.ext2_temp_inode]
1345
        mov     ebx, [ebp + EXTFS.ext2_temp_inode]
1347
        mov     [ebx + EXT2_INODE_STRUC.i_mode], EXT2_S_IFREG
1346
        mov     [ebx + EXT2_INODE_STRUC.i_mode], EXT2_S_IFREG or PERMISSIONS
1348
        mov     eax, edx
1347
        mov     eax, edx
1349
        call    ext2_inode_write
1348
        call    ext2_inode_write
Line 1449... Line 1448...
1449
        ; Save the inode.
1448
        ; Save the inode.
1450
        push    esi
1449
        push    esi
Line 1451... Line 1450...
1451
 
1450
 
1452
        ; Check if it's a file.
1451
        ; Check if it's a file.
1453
        mov     edx, [ebp + EXTFS.ext2_save_inode]
1452
        mov     edx, [ebp + EXTFS.ext2_save_inode]
1454
        cmp     [edx + EXT2_INODE_STRUC.i_mode], EXT2_S_IFREG
1453
        test    [edx + EXT2_INODE_STRUC.i_mode], EXT2_S_IFREG
Line 1455... Line 1454...
1455
        jne     .error
1454
        jz      .error
1456
 
1455
 
Line 1457... Line 1456...
1457
        mov     eax, esi
1456
        mov     eax, esi