|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.