Annotation of 43BSD/ingres/source/iutil/last_page.c, revision 1.1.1.1

1.1       root        1: # include      <ingres.h>
                      2: # include      <access.h>
                      3: # include      <opsys.h>
                      4: # include      <sccs.h>
                      5: 
                      6: SCCSID(@(#)last_page.c 8.2     1/17/85)
                      7: 
                      8: /*
                      9: **     LAST_PAGE -- computes a tid for the last page in the relation.
                     10: */
                     11: 
                     12: # ifdef xV6_UNIX
                     13: struct stat
                     14: {
                     15:        char    junk[9], size0;
                     16:        int     size1;
                     17:        char    junk2[25];
                     18: };
                     19: # endif
                     20: 
                     21: last_page(d, tid, buf)
                     22: register DESC          *d;
                     23: register TID           *tid;
                     24: register struct accbuf *buf;
                     25: {
                     26:        long            lpage;
                     27:        struct stat     stats;
                     28: 
                     29:        if ((buf != 0) && (abs(d->reldum.relspec) == M_HEAP) && (buf->mainpg == 0) && (buf->ovflopg == 0))
                     30:                lpage = buf->thispage;
                     31:        else
                     32:        {
                     33:                if (fstat(d->relfp, &stats))
                     34:                        syserr("last_page: fstat err %.14s", d->reldum.relid);
                     35: #              ifdef xV6_UNIX
                     36:                /* number of pages in relation - 1 */
                     37:                lpage = ((stats.size1 >> 9) & 0177) + ((stats.size0 & I1MASK) << 7)- 1;
                     38: #              else
                     39:                lpage = stats.st_size / PGSIZE - 1;
                     40: #              endif
                     41: #              ifdef xATR2
                     42:                if (tTf(26, 8))
                     43:                        printf("fstat-lp %.12s %ld\n", d->reldum.relid, lpage);
                     44: #              endif
                     45:        }
                     46:        stuff_page(tid, &lpage);
                     47:        tid->line_id = 0;
                     48:        return (0);
                     49: }

unix.superglobalmegacorp.com

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