| persistence_read_gnd#(ADR, WROOTADR, WMAXINO, WLOG, WVOL, WLPT, WORPHANS, WBUFLEB, AROFS; GND; ERR) {if ADR.lnum < # WVOL ∧ WVOL[ADR.lnum].mapped? ∧ ADR.pos + ADR.size ≤ # WVOL[ADR.lnum].data ∧ (∃ gnd. abs-node(subarray(WVOL[ADR.lnum].data, ADR.pos, ADR.size), gnd)) then let BUF = mkbuf(ADR.size) in {awbuf_read_buf#(ADR.lnum, ADR.pos, ADR.size, WROOTADR, WMAXINO, WLOG, WVOL, WLPT, WORPHANS, WBUFLEB, AROFS; BUF; ERR); if ERR = ESUCCESS then decode_group_node#(0, ADR.size, BUF; GND; ERR)} else abort } |