| awbuf_write_buf#(N, BUF, WROOTADR, WMAXINO, WLOG, WLPT, WORPHANS, WBUFLEB; WVOL, AROFS; ERR) {if WBUFLEB ≠ nobuffer ∧ # WVOL[WBUFLEB.leb].data + N ≤ LEB_SIZE ∧ N ≤ # BUF then if AROFS then ERR := EROFS else {fail_or_success#(; ; ERR); let LNUM = WBUFLEB.leb in if ERR = ESUCCESS then WVOL[LNUM] := mapped(WVOL[LNUM].data + subarray(BUF, 0, N)) else { choose N0 with N0 ≠ 0 ∧ N0 < N ∧ is-aligned(# WVOL[LNUM].data + N0, EB_PAGE_SIZE) in WVOL[LNUM] := mapped(WVOL[LNUM].data + subarray(BUF, 0, N0)) ifnone skip or skip; AROFS := true}} else abort } |