1*37da2899SCharles.Forsyth #include "lib9.h" 2*37da2899SCharles.Forsyth #include <bio.h> 3*37da2899SCharles.Forsyth 4*37da2899SCharles.Forsyth int Bflush(Biobuf * bp)5*37da2899SCharles.ForsythBflush(Biobuf *bp) 6*37da2899SCharles.Forsyth { 7*37da2899SCharles.Forsyth int n, c; 8*37da2899SCharles.Forsyth 9*37da2899SCharles.Forsyth switch(bp->state) { 10*37da2899SCharles.Forsyth case Bwactive: 11*37da2899SCharles.Forsyth n = bp->bsize+bp->ocount; 12*37da2899SCharles.Forsyth if(n == 0) 13*37da2899SCharles.Forsyth return 0; 14*37da2899SCharles.Forsyth c = write(bp->fid, bp->bbuf, n); 15*37da2899SCharles.Forsyth if(n == c) { 16*37da2899SCharles.Forsyth bp->offset += n; 17*37da2899SCharles.Forsyth bp->ocount = -bp->bsize; 18*37da2899SCharles.Forsyth return 0; 19*37da2899SCharles.Forsyth } 20*37da2899SCharles.Forsyth bp->state = Binactive; 21*37da2899SCharles.Forsyth bp->ocount = 0; 22*37da2899SCharles.Forsyth break; 23*37da2899SCharles.Forsyth 24*37da2899SCharles.Forsyth case Bracteof: 25*37da2899SCharles.Forsyth bp->state = Bractive; 26*37da2899SCharles.Forsyth 27*37da2899SCharles.Forsyth case Bractive: 28*37da2899SCharles.Forsyth bp->icount = 0; 29*37da2899SCharles.Forsyth bp->gbuf = bp->ebuf; 30*37da2899SCharles.Forsyth return 0; 31*37da2899SCharles.Forsyth } 32*37da2899SCharles.Forsyth return Beof; 33*37da2899SCharles.Forsyth } 34