Blame


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