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