Annotation of researchv10no/cmd/mk/export/fio/fioinit.c, revision 1.1

1.1     ! root        1: #define        FIO_IMP
        !             2: #include       "fio.h"
        !             3: #include       <libc.h>
        !             4: 
        !             5: static Fdie()
        !             6: {
        !             7:        Fexit(0);
        !             8: }
        !             9: 
        !            10: void
        !            11: Finit(fd, buf)
        !            12:        char *buf;
        !            13: {
        !            14:        register Fbuffer *f;
        !            15:        static setfioexit = 1;
        !            16: 
        !            17:        if(setfioexit){
        !            18:                setfioexit = 0;
        !            19:                atexit(Fdie);
        !            20:        }
        !            21:        fd &= 0x7f;
        !            22:        if(buf){
        !            23:                Ffb[fd] = (Fbuffer *)buf;
        !            24:                Ffb[fd]->flags = 0;
        !            25:        } else if(!Ffb[fd]){
        !            26:                Ffb[fd] = (Fbuffer *)FIOMALLOC((COUNT)sizeof(Fbuffer));
        !            27:                Ffb[fd]->flags = FIO_MALLOCED;
        !            28:        }
        !            29:        f = Ffb[fd];
        !            30:        FIORESET(f);
        !            31:        f->offset = SEEK(fd, 0L, 1);
        !            32:        if(f->offset < 0)
        !            33:                f->offset = 0;          /* file not been written yet */
        !            34: }
        !            35: 
        !            36: #ifdef GNOT
        !            37: #define        NOFILE  128
        !            38: #endif
        !            39: #ifndef        GNOT
        !            40: #include       <sys/param.h>
        !            41: #endif
        !            42: 
        !            43: Fbuffer *Ffb[NOFILE];
        !            44: 
        !            45: Fexit(type)
        !            46: {
        !            47:        register n;
        !            48: 
        !            49:        for(n = 0; n < NOFILE; n++)
        !            50:                if(Ffb[n])
        !            51:                        if(type == 0)
        !            52:                                Fflush(n);
        !            53:                        else
        !            54:                                Fclose(n);
        !            55: }

unix.superglobalmegacorp.com

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