Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6844 → Rev 6845

/kernel/trunk/fs/ntfs.inc
1320,47 → 1320,18
 
;----------------------------------------------------------------
ntfs_ReadFile:
cmp byte [esi], 0
jnz @f
or ebx, -1
movi eax, ERROR_ACCESS_DENIED
ret
 
@@:
call ntfs_lock
call ntfs_find_lfn
jnc .found
call ntfs_unlock
or ebx, -1
movi eax, ERROR_FILE_NOT_FOUND
ret
 
.found:
jc ntfsNotFound
mov [ebp+NTFS.cur_attr], 0x80 ; $DATA
and [ebp+NTFS.cur_offs], 0
and [ebp+NTFS.cur_size], 0
call ntfs_read_attr
jnc @f
call ntfs_unlock
or ebx, -1
movi eax, ERROR_ACCESS_DENIED
ret
 
@@:
pushad
and dword [esp+10h], 0
jc ntfsDenied
xor eax, eax
push eax
cmp dword [ebx+8], 0x200
jb @f
.eof0:
popad
xor ebx, ebx
.eof:
call ntfs_unlock
movi eax, ERROR_END_OF_FILE
ret
 
@@:
jnc .eof
mov ecx, [ebx+12]
mov edx, [ebx+16]
mov eax, [ebx+4]
1379,7 → 1350,7
and eax, 0x1FF
lea esi, [ebp+NTFS.bitmap_buf+eax]
sub eax, [ebp+NTFS.cur_read]
jae .eof0
jae .eof
neg eax
push ecx
cmp ecx, eax
1386,26 → 1357,15
jb @f
mov ecx, eax
@@:
mov [esp+10h+4], ecx
mov [esp+4], ecx
mov edi, edx
rep movsb
mov edx, edi
pop ecx
sub ecx, [esp+10h]
jnz @f
.retok:
popad
call ntfs_unlock
xor eax, eax
ret
 
@@:
sub ecx, [esp]
jz .retok
cmp [ebp+NTFS.cur_read], 0x200
jz .alignedstart
.eof_ebx:
popad
jmp .eof
 
jnz .eof
.alignedstart:
mov eax, [ebx+4]
push edx
1424,11 → 1384,11
call ntfs_read_attr.continue
pop [ebp+NTFS.cur_offs]
mov eax, [ebp+NTFS.cur_read]
add [esp+10h], eax
add [esp], eax
mov eax, ecx
and eax, not 0x1FF
cmp [ebp+NTFS.cur_read], eax
jnz .eof_ebx
jnz .eof
and ecx, 0x1FF
jz .retok
add edx, [ebp+NTFS.cur_read]
1444,19 → 1404,22
push ecx
mov edi, edx
lea esi, [ebp+NTFS.bitmap_buf]
add [esp+10h+4], ecx
add [esp+4], ecx
rep movsb
pop ecx
xor eax, eax
cmp ecx, [ebp+NTFS.cur_read]
jz @f
mov al, ERROR_END_OF_FILE
@@:
mov [esp+1Ch], eax
jnz .eof
.retok:
pushd 0
.ret:
call ntfs_unlock
popad
pop eax ebx
ret
 
.eof:
push ERROR_END_OF_FILE
jmp .ret
 
;----------------------------------------------------------------
ntfs_ReadFolder:
call ntfs_lock
1854,13 → 1817,6
 
ntfs_CreateFile:
mov [ebp+NTFS.bFolder], 0
@@:
cmp byte [esi], 0
jnz @f
xor ebx, ebx
movi eax, ERROR_ACCESS_DENIED
ret
 
@@: ; 1. Search file
call ntfs_lock
call ntfs_find_lfn
3483,12 → 3439,6
 
;----------------------------------------------------------------
ntfs_WriteFile:
cmp byte [esi], 0
jnz @f
xor ebx, ebx
movi eax, ERROR_ACCESS_DENIED
ret
@@:
call ntfs_lock
call ntfs_find_lfn
jc ntfsNotFound
3662,13 → 3612,6
 
;----------------------------------------------------------------
ntfs_Delete:
cmp byte [esi], 0
jnz @f
xor ebx, ebx
movi eax, ERROR_ACCESS_DENIED
ret
 
@@:
call ntfs_lock
call ntfs_find_lfn
jc ntfsNotFound
3981,12 → 3924,6
 
;----------------------------------------------------------------
ntfs_SetFileEnd:
cmp byte [esi], 0
jnz @f
xor ebx, ebx
movi eax, ERROR_ACCESS_DENIED
ret
@@:
call ntfs_lock
call ntfs_find_lfn
jc ntfsNotFound
4116,11 → 4053,6
 
;----------------------------------------------------------------
ntfs_SetFileInfo:
cmp byte [esi], 0
jnz @f
movi eax, ERROR_UNSUPPORTED_FS
ret
@@:
call ntfs_lock
call ntfs_find_lfn
jnc @f