Annotation of researchv9/libc/fio/fioinit.c, revision 1.1.1.1

1.1       root        1: #define        FIO_IMP
                      2: #include       "fio.h"
                      3: #include       <libc.h>
                      4: 
                      5: void
                      6: Finit(fd, buf)
                      7:        char *buf;
                      8: {
                      9:        register Fbuffer *f;
                     10:        static setfioexit = 1;
                     11:        extern Fexit();
                     12: 
                     13:        if(setfioexit){
                     14:                setfioexit = 0;
                     15:                onexit(Fexit);
                     16:        }
                     17:        fd &= 0x7f;
                     18:        if(buf)
                     19:                Ffb[fd] = (Fbuffer *)buf;
                     20:        else if(!Ffb[fd])
                     21:                Ffb[fd] = (Fbuffer *)FIOMALLOC((COUNT)sizeof(Fbuffer));
                     22:        f = Ffb[fd];
                     23:        FIORESET(f);
                     24:        f->offset = SEEK(fd, 0L, 1);
                     25: }
                     26: 
                     27: #include       <sys/param.h>
                     28: 
                     29: Fbuffer *Ffb[NOFILE];
                     30: 
                     31: Fexit()
                     32: {
                     33:        register n;
                     34: 
                     35:        for(n = 0; n < NOFILE; n++)
                     36:                if(Ffb[n] && (Ffb[n]->end == 0))
                     37:                        F_flush(Ffb[n], n);
                     38: }
                     39: 
                     40: F_flush(f, fd)
                     41:        register Fbuffer *f;
                     42: {
                     43:        register COUNT n;
                     44: 
                     45:        f->end = 0;             /* mark as writing */
                     46:        if(f->next != f->buf){
                     47:                n = f->next - f->buf;
                     48:                if(write(fd, f->buf, n) != n)
                     49:                        return(1);
                     50:                f->next = f->buf;
                     51:        }
                     52:        return(0);
                     53: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.