Annotation of researchv10no/cmd/mk/export/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: 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.