xref: /inferno-os/libbio/boffset.c (revision 72335078034e3cd7edcb1739556b405a3e1e9bf8)
137da2899SCharles.Forsyth #include	"lib9.h"
237da2899SCharles.Forsyth #include	<bio.h>
337da2899SCharles.Forsyth 
4*72335078SCharles Forsyth vlong
Boffset(Biobuf * bp)537da2899SCharles.Forsyth Boffset(Biobuf *bp)
637da2899SCharles.Forsyth {
7*72335078SCharles Forsyth 	vlong n;
837da2899SCharles.Forsyth 
937da2899SCharles.Forsyth 	switch(bp->state) {
1037da2899SCharles.Forsyth 	default:
1137da2899SCharles.Forsyth 		fprint(2, "Boffset: unknown state %d\n", bp->state);
1237da2899SCharles.Forsyth 		n = Beof;
1337da2899SCharles.Forsyth 		break;
1437da2899SCharles.Forsyth 
1537da2899SCharles.Forsyth 	case Bracteof:
1637da2899SCharles.Forsyth 	case Bractive:
1737da2899SCharles.Forsyth 		n = bp->offset + bp->icount;
1837da2899SCharles.Forsyth 		break;
1937da2899SCharles.Forsyth 
2037da2899SCharles.Forsyth 	case Bwactive:
2137da2899SCharles.Forsyth 		n = bp->offset + (bp->bsize + bp->ocount);
2237da2899SCharles.Forsyth 		break;
2337da2899SCharles.Forsyth 	}
2437da2899SCharles.Forsyth 	return n;
2537da2899SCharles.Forsyth }
26