|
|
1.1 root 1: # include <ingres.h>
2: # include <access.h>
3: # include <sccs.h>
4:
5: SCCSID(@(#)utility.c 8.2 12/8/85)
6:
7: dumptid(tid)
8: register TID *tid;
9: {
10: long pageid;
11:
12: pluck_page(tid, &pageid);
13: printf("tid: %ld/%d\n", pageid, (tid->line_id & I1MASK));
14: return (0);
15: }
16:
17: /*
18: ** struct for extracting page number from a tid
19: ** and storing in a long
20: **
21: ** We want the line number (lpgx) to be in the low-order part of
22: ** a long. Since SUN's and VAXes have the order of the
23: ** words reversed, this structure must be different.
24: */
25:
26: struct lpage
27: {
28: # ifdef VAX
29: char lpg2, lpg1, lpg0, lpgx;
30: # else
31: char lpgx, lpg0, lpg1, lpg2;
32: # endif
33: };
34: /* PLUCK_PAGE
35: **
36: ** pluck_page extracts the three byte page_id from a TID
37: ** and puts it into a long variable with proper allignment.
38: */
39:
40: pluck_page(t, var)
41: register TID *t;
42: long *var;
43: {
44: register struct lpage *v;
45:
46: v = (struct lpage *) var;
47: v->lpg0 = t->pg0;
48: v->lpg1 = t->pg1;
49: v->lpg2 = t->pg2;
50: v->lpgx = 0;
51: return (0);
52: }
53:
54: /* stuff_page is the reverse of pluck_page */
55: stuff_page(t, var)
56: register TID *t;
57: long *var;
58: {
59: register struct lpage *v;
60:
61: v = (struct lpage *) var;
62: t->pg0 = v->lpg0;
63: t->pg1 = v->lpg1;
64: t->pg2 = v->lpg2;
65: return (0);
66: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.