5 static Biobufhdr* wbufs[20];
15 for(i=0; i<nelem(wbufs); i++) {
26 deinstall(Biobufhdr *bp)
30 for(i=0; i<nelem(wbufs); i++)
37 install(Biobufhdr *bp)
42 for(i=0; i<nelem(wbufs); i++)
54 Binits(Biobufhdr *bp, int f, int mode, uchar *p, int size)
56 p += Bungetsize; /* make room for Bungets */
59 switch(mode&~(OCEXEC|ORCLOSE|OTRUNC)) {
61 fprint(2, "Binits: unknown mode %d\n", mode);
91 Binit(Biobuf *bp, int f, int mode)
93 return Binits(bp, f, mode, bp->b, sizeof(bp->b));
97 Bfdopen(int fd, int mode)
101 bp = malloc(sizeof(Biobuf));
104 if(Binits(bp, fd, mode, bp->b, sizeof(bp->b)) != 0){
108 bp->flag = Bmagic; /* mark bp open & malloced */
109 setmalloctag(bp, getcallerpc(&fd));
114 Bopen(char *name, int mode)
119 switch(mode&~(OCEXEC|ORCLOSE|OTRUNC)) {
121 fprint(2, "Bopen: unknown mode %#x\n", mode);
124 fd = open(name, mode);
127 fd = create(name, mode, 0666);
132 bp = Bfdopen(fd, mode);
137 setmalloctag(bp, getcallerpc(&name));
148 if(bp->flag == Bmagic) {
151 bp->fid = -1; /* prevent accidents */
154 /* otherwise opened with Binit(s) */