Annotation of 43BSD/ingres/source/iutil/formatpg.c, revision 1.1.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.