Rev 6861 | Rev 6876 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6861 | Rev 6871 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2013-2016. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2013-2016. 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: 6861 $ |
8 | $Revision: 6871 $ |
9 | 9 | ||
10 | ; EXT external functions |
10 | ; EXT external functions |
11 | ; in: |
11 | ; in: |
Line 102... | Line 102... | ||
102 | inodeSize dw ? |
102 | inodeSize dw ? |
103 | thisBlockGroup dw ? |
103 | thisBlockGroup dw ? |
104 | compatibleFlags dd ? |
104 | compatibleFlags dd ? |
105 | incompatibleFlags dd ? |
105 | incompatibleFlags dd ? |
106 | RO_compatibleFlags dd ? |
106 | RO_compatibleFlags dd ? |
- | 107 | UUID rb 16 |
|
- | 108 | volumeLabel rb 16 |
|
107 | ends |
109 | ends |
Line 108... | Line 110... | ||
108 | 110 | ||
109 | ; ext4 extent tree |
111 | ; ext4 extent tree |
110 | struct NODEHEADER ; tree node header |
112 | struct NODEHEADER ; tree node header |
Line 2057... | Line 2059... | ||
2057 | pop eax ebx |
2059 | pop eax ebx |
2058 | ret |
2060 | ret |
Line 2059... | Line 2061... | ||
2059 | 2061 | ||
2060 | ;---------------------------------------------------------------- |
2062 | ;---------------------------------------------------------------- |
2061 | ext_GetFileInfo: |
- | |
2062 | call ext_lock |
2063 | ext_GetFileInfo: |
2063 | cmp byte [esi], 0 |
2064 | cmp byte [esi], 0 |
- | 2065 | jz .volume |
|
2064 | jz .is_root |
2066 | call ext_lock |
- | 2067 | call findInode |
|
2065 | call findInode |
2068 | jc .ret |
2066 | lea esi, [ebp+EXTFS.inodeBuffer] |
- | |
2067 | jnc @f |
- | |
2068 | push eax |
- | |
2069 | call ext_unlock |
- | |
2070 | pop eax |
- | |
2071 | ret |
- | |
2072 | - | ||
2073 | .is_root: |
- | |
2074 | mov edi, esi |
- | |
2075 | lea esi, [ebp+EXTFS.rootInodeBuffer] |
- | |
2076 | @@: |
2069 | lea esi, [ebp+EXTFS.inodeBuffer] |
2077 | mov edx, [ebx+16] |
2070 | mov edx, [ebx+16] |
2078 | mov bl, [edi] |
2071 | mov bl, [edi] |
2079 | xor eax, eax |
2072 | xor eax, eax |
2080 | mov edi, edx |
2073 | mov edi, edx |
Line 2103... | Line 2096... | ||
2103 | call fsTime2bdfe |
2096 | call fsTime2bdfe |
Line 2104... | Line 2097... | ||
2104 | 2097 | ||
2105 | mov eax, [esi+INODE.dataModified] |
2098 | mov eax, [esi+INODE.dataModified] |
2106 | sub eax, 978307200 |
2099 | sub eax, 978307200 |
- | 2100 | call fsTime2bdfe |
|
- | 2101 | xor eax, eax |
|
- | 2102 | .ret: |
|
2107 | call fsTime2bdfe |
2103 | push eax |
- | 2104 | call ext_unlock |
|
- | 2105 | pop eax |
|
- | 2106 | ret |
|
- | 2107 | ||
- | 2108 | .volume: |
|
- | 2109 | mov eax, dword[ebp+EXTFS.Length] |
|
- | 2110 | mov edx, dword[ebp+EXTFS.Length+4] |
|
- | 2111 | mov edi, [ebx+16] |
|
- | 2112 | shld edx, eax, 9 |
|
- | 2113 | shl eax, 9 |
|
- | 2114 | mov [edi+36], edx |
|
- | 2115 | mov [edi+32], eax |
|
- | 2116 | mov eax, [ebx+8] |
|
- | 2117 | mov byte [edi], 8 |
|
- | 2118 | mov [edi+4], eax |
|
- | 2119 | lea esi, [ebp+EXTFS.superblock.volumeLabel] |
|
- | 2120 | mov ecx, 16 |
|
- | 2121 | add edi, 40 |
|
- | 2122 | cmp eax, 3 |
|
- | 2123 | jz .utf8 |
|
- | 2124 | add ecx, esi |
|
- | 2125 | cmp eax, 2 |
|
- | 2126 | jz .utf16 |
|
- | 2127 | @@: |
|
- | 2128 | call utf8to16 |
|
- | 2129 | call uni2ansi_char |
|
- | 2130 | stosb |
|
- | 2131 | cmp esi, ecx |
|
- | 2132 | jc @b |
|
- | 2133 | jmp @f |
|
- | 2134 | ||
- | 2135 | .utf8: |
|
- | 2136 | rep movsb |
|
- | 2137 | jmp @f |
|
- | 2138 | ||
- | 2139 | .utf16: |
|
- | 2140 | call utf8to16 |
|
- | 2141 | stosw |
|
- | 2142 | cmp esi, ecx |
|
- | 2143 | jc .utf16 |
|
2108 | call ext_unlock |
2144 | @@: |
- | 2145 | xor eax, eax |
|
2109 | xor eax, eax |
2146 | mov [edi], ax |
Line 2110... | Line 2147... | ||
2110 | ret |
2147 | ret |
2111 | 2148 | ||
2112 | ;---------------------------------------------------------------- |
2149 | ;---------------------------------------------------------------- |