| wbuf_move_buf#(LNUM, OFFSET, ROFS, PVOL; BUFLEB, WBUF; ERR) {if ¬ ROFS → BUFLEB = buffered(LNUM) ∨ (BUFLEB = nobuffer ∨ WBUF.nbytes = 0) ∧ LNUM < # PVOL ∧ PVOL[LNUM].mapped? ∧ OFFSET = # PVOL[LNUM].data then if ROFS then ERR := EROFS else {ERR := ESUCCESS; if BUFLEB ≠ buffered(LNUM) then {BUFLEB := buffered(LNUM); WBUF.offset := OFFSET; WBUF.nbytes := 0}} else abort } |