Annotation of 42BSD/ingres/source/ctlmod/av_files.c, revision 1.1

1.1     ! root        1: # include      <ingres.h>
        !             2: # include      <aux.h>
        !             3: # include      <opsys.h>
        !             4: # include      "ctlmod.h"
        !             5: # include      <sccs.h>
        !             6: 
        !             7: SCCSID(@(#)av_files.c  7.1     2/5/81)
        !             8: 
        !             9: /*
        !            10: **  AV_FILES -- return number of files available for user files.
        !            11: **
        !            12: **     Takes NOFILE and reduces it by the number of files that are
        !            13: **     open or could be open (for the catalog descriptors).
        !            14: **
        !            15: **     Parameters:
        !            16: **             none.
        !            17: **
        !            18: **     Returns:
        !            19: **             the number of available file descriptor to play with.
        !            20: **
        !            21: **     Side Effects:
        !            22: **             none.
        !            23: */
        !            24: 
        !            25: extern struct desxx    Desxx[];
        !            26: 
        !            27: av_files()
        !            28: {
        !            29:        auto long               fopn;
        !            30:        register int            nopn;
        !            31:        register int            i;
        !            32:        register struct desxx   *p;
        !            33: 
        !            34:        markopen(&fopn);
        !            35:        nopn = 0;
        !            36:        for (i = 0; i < 32; i++)
        !            37:        {
        !            38:                if (bitset(1 << i, fopn))
        !            39:                        nopn++;
        !            40:        }
        !            41: 
        !            42:        /* now scan the descriptor cache */
        !            43:        for (p = Desxx; p->cach_relname != NULL; p++)
        !            44:        {
        !            45:                if (p->cach_alias != NULL)
        !            46:                        continue;
        !            47:                if (p->cach_desc->relopn == 0)
        !            48:                        nopn++;
        !            49:        }
        !            50: 
        !            51:        return (NOFILE - nopn);
        !            52: }

unix.superglobalmegacorp.com

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