This source file includes following definitions.
- AUTOLIB
 
#ifndef _BIO_H_
#define _BIO_H_ 1
#if defined(__cplusplus)
extern "C" {
#endif
#ifdef AUTOLIB
AUTOLIB(bio)
#endif
typedef struct  Biobuf  Biobuf;
enum
{
        Bsize           = 8*1024,
        Bungetsize      = 4,            
        Bmagic          = 0x314159,
        Beof            = -1,
        Bbad            = -2,
        Binactive       = 0,            
        Bractive,
        Bwactive,
        Bracteof,
        Bend
};
struct  Biobuf
{
        int     icount;         
        int     ocount;         
        int     rdline;         
        int     runesize;       
        int     state;          
        int     fid;            
        int     flag;           
        vlong   offset;         
        int     bsize;          
        unsigned char*  bbuf;           
        unsigned char*  ebuf;           
        unsigned char*  gbuf;           
        unsigned char   b[Bungetsize+Bsize];
};
#define BGETC(bp)\
        ((bp)->icount?(int)((bp)->ebuf[(bp)->icount++]):Bgetc((bp)))
#define BGETLE2(bp)\
        ((bp)->icount<=-2?((bp)->icount+=2,((bp)->ebuf[(bp)->icount-2])|((bp)->ebuf[(bp)->icount-1]<<8)):Bgetle2((bp)))
#define BGETLE4(bp)\
        (int)((bp)->icount<=-4?((bp)->icount+=4,((bp)->ebuf[(bp)->icount-4])|((bp)->ebuf[(bp)->icount-3]<<8)|((bp)->ebuf[(bp)->icount-2]<<16)|((uint32)(bp)->ebuf[(bp)->icount-1]<<24)):Bgetle4((bp)))
#define BPUTC(bp,c)\
        ((bp)->ocount?(bp)->ebuf[(bp)->ocount++]=(unsigned char)(c),0:Bputc((bp),(c)))
#define BPUTLE2(bp,c)\
        ((bp)->ocount<=-2?(bp)->ocount+=2,(bp)->ebuf[(bp)->ocount-2]=(unsigned char)(c),(bp)->ebuf[(bp)->ocount-1]=(unsigned char)(c>>8),0:Bputle2((bp),(c)))
#define BPUTLE4(bp,c)\
        ((bp)->ocount<=-4?(bp)->ocount+=4,(bp)->ebuf[(bp)->ocount-4]=(unsigned char)(c),(bp)->ebuf[(bp)->ocount-3]=(unsigned char)(c>>8),(bp)->ebuf[(bp)->ocount-2]=(unsigned char)(c>>16),(bp)->ebuf[(bp)->ocount-1]=(unsigned char)(c>>24),0:Bputle4((bp),(c)))
#define BOFFSET(bp)\
        (((bp)->state==Bractive)?\
                (bp)->offset + (bp)->icount:\
        (((bp)->state==Bwactive)?\
                (bp)->offset + ((bp)->bsize + (bp)->ocount):\
                -1))
#define BLINELEN(bp)\
        (bp)->rdline
#define BFILDES(bp)\
        (bp)->fid
int     Bbuffered(Biobuf*);
Biobuf* Bfdopen(int, int);
int     Bfildes(Biobuf*);
int     Bflush(Biobuf*);
int     Bgetc(Biobuf*);
int     Bgetle2(Biobuf*);
int     Bgetle4(Biobuf*);
int     Bgetd(Biobuf*, double*);
long    Bgetrune(Biobuf*);
int     Binit(Biobuf*, int, int);
int     Binits(Biobuf*, int, int, unsigned char*, int);
int     Blinelen(Biobuf*);
vlong   Boffset(Biobuf*);
Biobuf* Bopen(char*, int);
int     Bprint(Biobuf*, char*, ...);
int     Bputc(Biobuf*, int);
int     Bputle2(Biobuf*, int);
int     Bputle4(Biobuf*, int);
int     Bputrune(Biobuf*, long);
void*   Brdline(Biobuf*, int);
char*   Brdstr(Biobuf*, int, int);
long    Bread(Biobuf*, void*, long);
vlong   Bseek(Biobuf*, vlong, int);
int     Bterm(Biobuf*);
int     Bungetc(Biobuf*);
int     Bungetrune(Biobuf*);
long    Bwrite(Biobuf*, void*, long);
int     Bvprint(Biobuf*, char*, va_list);
#if defined(__cplusplus)
}
#endif
#endif