|
|
1.1 ! root 1: # include <ingres.h> ! 2: # include <access.h> ! 3: # include <sccs.h> ! 4: ! 5: SCCSID(@(#)add_prim.c 8.1 12/31/84) ! 6: ! 7: /* ! 8: ** ADD_PRIM -- Add a primary page to the relation. Assumes it is to ! 9: ** be tacked onto page in current access method buffer. No ! 10: ** disk write is done but the page is marked for writing. ! 11: ** It is assumed that the current page in access method buffer ! 12: ** is the last physical page in the relation. ! 13: ** ! 14: ** Trace Flags: ! 15: ** 26.0,2 ! 16: */ ! 17: ! 18: add_prim(d, tidx) ! 19: DESC *d; ! 20: TID *tidx; ! 21: { ! 22: register struct accbuf *b; ! 23: register int i; ! 24: ! 25: b = Acc_head; ! 26: b->mainpg = b->thispage + 1; ! 27: b->bufstatus |= BUF_DIRTY; ! 28: if (i = pageflush(b)) ! 29: return (i); ! 30: ! 31: /* ! 32: ** Now form the new primary page ! 33: */ ! 34: ! 35: b->thispage = b->mainpg; ! 36: b->mainpg = 0; ! 37: b->ovflopg = 0; ! 38: b->linetab[0] = (int) b->firstup - (int) b; ! 39: b->nxtlino = 0; ! 40: b->bufstatus |= BUF_DIRTY; ! 41: ! 42: /* ! 43: ** Update tid to be new page ! 44: */ ! 45: stuff_page(tidx, &b->thispage); ! 46: return (0); ! 47: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.