xref: /plan9/sys/src/libbio/boffset.c (revision d9306527b4a7229dcf0cf3c58aed36bb9da82854)
17dd7cddfSDavid du Colombier #include	<u.h>
27dd7cddfSDavid du Colombier #include	<libc.h>
37dd7cddfSDavid du Colombier #include	<bio.h>
47dd7cddfSDavid du Colombier 
57dd7cddfSDavid du Colombier vlong
Boffset(Biobufhdr * bp)67dd7cddfSDavid du Colombier Boffset(Biobufhdr *bp)
77dd7cddfSDavid du Colombier {
8*d9306527SDavid du Colombier 	vlong n;
97dd7cddfSDavid du Colombier 
107dd7cddfSDavid du Colombier 	switch(bp->state) {
117dd7cddfSDavid du Colombier 	default:
127dd7cddfSDavid du Colombier 		fprint(2, "Boffset: unknown state %d\n", bp->state);
137dd7cddfSDavid du Colombier 		n = Beof;
147dd7cddfSDavid du Colombier 		break;
157dd7cddfSDavid du Colombier 
167dd7cddfSDavid du Colombier 	case Bracteof:
177dd7cddfSDavid du Colombier 	case Bractive:
187dd7cddfSDavid du Colombier 		n = bp->offset + bp->icount;
197dd7cddfSDavid du Colombier 		break;
207dd7cddfSDavid du Colombier 
217dd7cddfSDavid du Colombier 	case Bwactive:
227dd7cddfSDavid du Colombier 		n = bp->offset + (bp->bsize + bp->ocount);
237dd7cddfSDavid du Colombier 		break;
247dd7cddfSDavid du Colombier 	}
257dd7cddfSDavid du Colombier 	return n;
267dd7cddfSDavid du Colombier }
27