X-Git-Url: https://git.wirehaze.ovh/BOS.git/blobdiff_plain/0af2320324eedb4577b402e65b1a9df017fac87c..7e1ea736a29f105ce8ff209cd9eddfeccc3b3622:/kernel/vfs/vfs.asm?ds=sidebyside diff --git a/kernel/vfs/vfs.asm b/kernel/vfs/vfs.asm index ab2f0fa..0571327 100644 --- a/kernel/vfs/vfs.asm +++ b/kernel/vfs/vfs.asm @@ -6,6 +6,7 @@ ; ; ;----------------------------------------------------------; + ;---------------------------------------------; ; VFS main structure ; ;---------------------------------------------; @@ -68,20 +69,63 @@ sizeof.VFS_filesystem = $-$$ end virtual + ;---------------------------------------------; + ; VFS structure pointer ; + ;---------------------------------------------; + VFS_structure dd 0 -VFS_structure VFS ;--------------------------------------------------------------; ; init_vfs - detect connected drives ; ;--------------------------------------------------------------; ; ; +; out: cf = set if failed ; +; ; +;--------------------------------------------------------------; +init_vfs: + push eax + push ebx + + mov ebx, sizeof.VFS ; allocate structure size + call allocate_mem + cmp eax, 0 + jne .ok + stc ; if error, set carry + mov ebx, 0 + + .ok: + mov dword [VFS_structure], ebx + + pop ebx + pop eax + ret + +;--------------------------------------------------------------; +; add_media - add media driver ; +;--------------------------------------------------------------; +; ; ; in: reg = pointer to VFS drive info ; ; ; ; out: reg = pointer to struct(s) if FAT12 found ; ; ; ;--------------------------------------------------------------; -init_vfs: +add_media: + push eax + ;... + pop eax + ret + +;--------------------------------------------------------------; +; add_fs - add filesystem driver ; +;--------------------------------------------------------------; +; ; +; in: reg = pointer to VFS drive info ; +; ; +; out: reg = pointer to struct(s) if FAT12 found ; +; ; +;--------------------------------------------------------------; +add_fs: push eax - ; a bit more code here + ;... pop eax ret \ No newline at end of file