V10/cmd/rarepl/rct.h

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

/*
 * first block of rct: random crap
 * longwords are in VAX order
 */

struct rct {
	long	rc_volser[2];	/* volume serial number */
	short	rc_flags;
	short	rc_res0;
	long	rc_lbn;		/* block being replaced */
	long	rc_rbn;		/* replacement block */
	long	rc_badrbn;	/* bad replacement block */
	short	rc_junk[256-12];	/* reserved */
};

/*
 * flags
 */

#define	RPROT	02		/* volume should be write protected */
#define	RFE	0200		/* force error in replacement block */
#define	RBADRBN	020000		/* bad rbn being replaced */
#define	RPH2	040000		/* in `phase 2' */
#define	RPH1	0100000		/* in `phase 1' */

/*
 * replacement block descriptor
 */

struct rbd {
	unsigned rb_lbn: 28;
	unsigned rb_code: 4;
};

/*
 * codes
 */

#define	RFREE	0
#define	RALT	01	/* alternate */
#define	RALLOC	02	/* allocated */
#define	RBAD	04	/* unusable replacement block */
#define	RNULL	010	/* null entry (no such RBN) */

#define	RBNPB	128	/* RBNs per block */
#define	RBNSEC	512	/* bytes per RBN sector */

/*
 * blocks in the RCT
 */

#define	RCTHDR	0	/* header stuff */
#define	RCTDATA	1	/* saved data from block under replacement */
#define	RCTTAB	2	/* beginning of the table */