StupidOS/kernel/bio.inc

43 lines
588 B
PHP

;; File: bio.inc
;; Buffer cache
;; Struc: Buffer
struc Buffer {
.dev dd ?
.block dd ?
.ulock dd ?
.refcount dd ?
.data db 512 dup(?)
}
DEFN Buffer
;; Function: bio_init
bio_init:
mov ecx, sizeof.Buffer * 30
xor ax, ax
mov edi, aBuffers
rep stosb
ret
;; Function: bio_read
;;
bio_bread:
mov eax, uBIOLock
call lock_acquire
mov eax, uBIOLock
call lock_release
ret
;; Function: bio_brelse
;; Unbusy a buffer and release it to the free lists.
bio_brelse:
mov eax, uBIOLock
call lock_acquire
mov eax, uBIOLock
call lock_release
ret
uBIOLock dd 0