/ struct bfdb ;buffered fdb's bfdb=-32. member b.lh,b.lhl[4],b.max[1],b.cur[1] member b.type,b.dirty,b.stat,b.seek[4] member b.stype,b.ssize,b.sracc member b.io,b.prec,b.pos,b.check end-struct b.peek=b.lhl struct l.lru ;Lru lists member l.blk[4],l.dirty,l.data[512.] end-struct program fflush function fflush[fd] r4 := fd if b.type(r4) = 1 lrufsh[r4] movb 1,b.cur(r4) b.dirty(r4) := 1 ;set block clean else fl$ush[r4] fi ret auto p,save function lrufsh[fdb] is local r4 := #b.lh[fdb] r3 := next[r4] if r3 ne r4 l.dirty(r3) := #b.dirty[fdb] fi r3 := r4 do forever r3 := next[r3] break if r3 = r4 wtblk[fdb,r3] l.dirty(r3) := 1 ;its no longer dirty od ret .end