|
|
1.1 root 1: # include <ingres.h>
2: # include <access.h>
3: # include <sccs.h>
4:
5: SCCSID(@(#)utility.c 7.1 2/5/81)
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 PDP's and VAXes have the order of the half-
23: ** words reversed, this structure must be different.
24: */
25:
26: struct lpage
27: {
28: # ifdef PDP11
29: char lpg0, lpgx;
30: char lpg2, lpg1;
31: # else
32: char lpg2, lpg1, lpg0, lpgx;
33: # endif
34: };
35: /* PLUCK_PAGE
36: **
37: ** pluck_page extracts the three byte page_id from a TID
38: ** and puts it into a long variable with proper allignment.
39: */
40:
41: pluck_page(t, var)
42: register TID *t;
43: long *var;
44: {
45: register struct lpage *v;
46:
47: v = (struct lpage *) var;
48: v->lpg0 = t->pg0;
49: v->lpg1 = t->pg1;
50: v->lpg2 = t->pg2;
51: v->lpgx = 0;
52: return (0);
53: }
54:
55: /* stuff_page is the reverse of pluck_page */
56: stuff_page(t, var)
57: register TID *t;
58: long *var;
59: {
60: register struct lpage *v;
61:
62: v = (struct lpage *) var;
63: t->pg0 = v->lpg0;
64: t->pg1 = v->lpg1;
65: t->pg2 = v->lpg2;
66: return (0);
67: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.