2.11BSD/ingres/source/access/utility.c

Compare this file to the similar file:
Show the results in this format:

# include	"../ingres.h"
# include	"../access.h"

dumptid(tid1)
struct tup_id	*tid1;
{
	register struct tup_id	*tid;
	long			pageid;

	tid = tid1;

	pluck_page(tid, &pageid);
	printf("tid: %s/%d\n", locv(pageid), (tid->line_id & I1MASK));
	return (0);
}

/*
**	struct for extracting page number from a tid
**	and storing in a long
*/

struct lpage
{
	char	lpg0, lpgx;
	char	lpg2, lpg1;
};

/* pluck_page extracts the three byte page_id from the tup_id struct
** and puts it into a long variable with proper allignment.
*/

pluck_page(tid, var)
struct tup_id	*tid;
long		*var;
{
	register struct tup_id	*t;
	register struct lpage	*v;

	t = tid;
	v = (struct lpage *) var;
	v->lpg0 = t->pg0;
	v->lpg1 = t->pg1;
	v->lpg2 = t->pg2;
	v->lpgx = 0;
	return (0);
}

/*	stuff_page is the reverse of pluck_page	*/

stuff_page(tid, var)
struct tup_id	*tid;
long		*var;
{
	register struct tup_id	*t;
	register struct lpage	*v;

	v = (struct lpage *) var;
	t = tid;
	t->pg0 = v->lpg0;
	t->pg1 = v->lpg1;
	t->pg2 = v->lpg2;
	return (0);
}