Subversion Repositories Kolibri OS

Rev

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

Rev 147 Rev 171
Line 35... Line 35...
35
 
35
 
36
; IN:
36
; IN:
37
;
37
;
38
; eax = 0  ; read file          /RamDisk/First  6
38
; eax = 0  ; read file          /RamDisk/First  6
39
; eax = 1  ; write file         /RamDisk/First 33   /HardDisk/First 56
-
 
40
; eax = 2  ; delete file        /RamDisk/First 32
39
; eax = 1  ; write file         /RamDisk/First 33   /HardDisk/First 56
41
; eax = 4  ; makedir
40
; eax = 4  ; makedir
42
; eax = 5  ; rename file/directory
41
; eax = 5  ; rename file/directory
43
; eax = 8  ; lba read
42
; eax = 8  ; lba read
44
; eax = 15 ; get_disk_info
43
; eax = 15 ; get_disk_info
Line 90... Line 89...
90
    je    fs_info
89
    je    fs_info
91
    cmp   dword [eax+0],5       ; RENAME - dont care about read&write blocks
90
    cmp   dword [eax+0],5       ; RENAME - dont care about read&write blocks
92
    je    fs_read
91
    je    fs_read
93
    cmp   dword [eax+0],4       ; MAKEDIR - dont care about read&write blocks
92
    cmp   dword [eax+0],4       ; MAKEDIR - dont care about read&write blocks
94
    je    fs_read
93
    je    fs_read
95
    cmp   dword [eax+0],2       ; DELETE - dont care about read&write blocks
-
 
96
    je    fs_read
-
 
Line 97... Line 94...
97
 
94
 
98
    cmp   dword [0x3000],1      ; no memory checks for kernel requests
95
    cmp   dword [0x3000],1      ; no memory checks for kernel requests
99
    jz    no_checks_for_kernel
96
    jz    no_checks_for_kernel
100
    mov   edx,eax
97
    mov   edx,eax
Line 281... Line 278...
281
    ; eax=0 ok - eax=1 not enough free space
278
    ; eax=0 ok - eax=1 not enough free space
Line 282... Line 279...
282
 
279
 
Line 283... Line 280...
283
    jmp   file_system_return
280
    jmp   file_system_return
284
 
-
 
285
  fs_noramdisk_write:
-
 
286
 
-
 
287
    cmp   dword [esp+20],2      ;DELETE
-
 
288
    jne   fs_noramdisk_delete
-
 
289
    mov   eax,[esp+4]           ; fname
-
 
290
    add   eax,2*12+1
-
 
291
    call  filedelete
-
 
292
    jmp   file_system_return
-
 
293
 
281
 
Line 294... Line 282...
294
  fs_noramdisk_delete:
282
  fs_noramdisk_write:
295
  fs_noramdisk:
283
  fs_noramdisk:
296
  
284
  
Line 357... Line 345...
357
 
345
 
Line 358... Line 346...
358
    jmp   file_system_return
346
    jmp   file_system_return
Line 359... Line -...
359
 
-
 
360
  fs_noflpdisk_write:
-
 
361
 
-
 
362
    cmp   dword [esp+20],2      ; DELETE
-
 
363
    jne   fs_noflpdisk_delete
-
 
364
 
-
 
365
    mov   eax,[esp+4]           ; fname
-
 
366
    add   eax,2*12+1
-
 
367
    call  floppy_filedelete
-
 
368
    mov   [flp_status],0
-
 
369
    jmp   file_system_return
-
 
370
 
347
 
371
  fs_noflpdisk_delete:
348
  fs_noflpdisk_write:
Line 372... Line 349...
372
 
349
 
373
  fs_noflpdisk:
350
  fs_noflpdisk:
Line 519... Line 496...
519
    jmp   file_system_return
496
    jmp   file_system_return
Line 520... Line 497...
520
 
497
 
Line 521... Line -...
521
 
-
 
522
  fs_noharddisk_write:
-
 
523
 
-
 
524
    cmp   dword [esp+20],2      ; DELETE
-
 
525
    jne   fs_noharddisk_delete
-
 
526
 
-
 
527
    mov   eax,[esp+0]           ; /dirname or /filename
-
 
528
    mov   byte [eax],0          ; path to asciiz
-
 
529
    inc   eax                   ; filename start
-
 
530
    mov   edx,[esp+4]
-
 
531
    add   edx,12*2              ; path start
-
 
532
 
-
 
533
    call  removedir
-
 
534
 
-
 
535
    mov   edi,[esp+0]
-
 
536
    mov   byte [edi],'/'
-
 
537
 
-
 
538
    jmp   file_system_return
-
 
539
 
498
 
540
  fs_noharddisk_delete:
499
  fs_noharddisk_write:
Line 541... Line 500...
541
 
500
 
542
    cmp   dword [esp+20],4      ; MAKEDIR
501
    cmp   dword [esp+20],4      ; MAKEDIR