Annotation of 43BSD/ingres/source/iutil/formatpg.c, revision 1.1

1.1     ! root        1: # include      <ingres.h>
        !             2: # include      <access.h>
        !             3: # include      <sccs.h>
        !             4: 
        !             5: SCCSID(@(#)formatpg.c  8.2     2/8/85)
        !             6: 
        !             7: /*
        !             8: **     FORMATPG - write n pages to a buffer
        !             9: **
        !            10: **
        !            11: **     Parameters:
        !            12: **             d - descriptor
        !            13: **             n - number of pages
        !            14: **
        !            15: **
        !            16: **     Return Codes:
        !            17: **             0 - successful
        !            18: **             -2 - failure when setting file ptr
        !            19: **             -3, -4 - failure when writing page to buffer
        !            20: **                     -4 is for last page
        !            21: **
        !            22: **     Called by:
        !            23: **             create()
        !            24: **             modify()
        !            25: **             resetrel()
        !            26: **
        !            27: */
        !            28: formatpg(d, n)
        !            29: DESC   *d;
        !            30: long   n;
        !            31: {
        !            32:        struct accbuf   buf;
        !            33:        register char   *p;
        !            34:        extern long     lseek();
        !            35: 
        !            36:        if (Acc_head == 0)
        !            37:                acc_init();
        !            38:        if (lseek(d->relfp, 0l, 0) == -1)
        !            39:                return (-2);
        !            40:        buf.rel_tupid = d->reltid.ltid;
        !            41:        buf.filedesc = d->relfp;
        !            42:        for (p = (char *) &buf; p <= (char *) buf.linetab; p++)
        !            43:                *p = NULL;
        !            44:        buf.nxtlino = 0;
        !            45:        buf.linetab[0] = (int) buf.firstup - (int) &buf;
        !            46:        buf.ovflopg = 0;
        !            47:        for (buf.mainpg = 1; buf.mainpg < n; (buf.mainpg)++)
        !            48:        {
        !            49:                if (write(buf.filedesc, (char *) &buf, PGSIZE) != PGSIZE)
        !            50:                        return (-3);
        !            51:        }
        !            52:        buf.mainpg = 0;
        !            53:        if (write(buf.filedesc, (char *) &buf, PGSIZE) != PGSIZE)
        !            54:                return (-4);
        !            55:        Accuwrite += n;
        !            56:        return (0);
        !            57: }

unix.superglobalmegacorp.com

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