|
|
researchv10 Norman
/*
* 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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.