typedef struct usr_fileinfo { int usr_version; /* rash version */ bfid_t usr_bfid; /* bfid */ int usr_vvno; /* multiple volume sequence # */ unsigned short usr_rflg; /* record flags */ unsigned short usr_vflg; /* vv flags */ char usr_vvname[VVNAMELEN+1]; /* vv name */ int usr_fno; /* file number in multifile vv */ unsigned int usr_bof; /* byte offset into the vv */ off_t usr_lseek; /* lseek write to disk location */ off_t usr_vvdata; /* amnt of data on vv for fno */ off_t usr_fsize; /* file size */ uid_t usr_uid; /* uid */ gid_t usr_gid; /* gid */ time_t usr_ctime; /* ctime */ time_t usr_mtime; /* mtime */ time_t usr_arctm; /* arctm */ mode_t usr_mode; time_t usr_rectm; /* record timestamp */ time_t usr_deltm; /* record delete time */ int usr_group_no; /* rash archive group number */ char *usr_fname; /* file name pointer */ } USR_FILEINFO;
typedef struct { char hdr[4], b0; /* 'RASH' */ char vvname[MAXVVNAMELEN], b1; /* this vv */ char version[INTLEN], b2; /* rash version */ char dbuid_name[10], b3; /* owner when bfid assigned */ char dbuid[INTLEN], b4; /* dbuid number */ char date[DATELEN], end; /* time label written */ } vv_hdr_lbl_t;
Each file on a VV has a HDR label before the data starts and a label at the end of data. If a file spans multiple VV's, each VV except the last will have an EOV label following the file segment. The last VV will have a EOF label following the file segment. This is also the case if a file does not span multiple VV's.
typedef struct { /* basic info */ char hdr[4], b00; /* 'FILE' */ char label[3], b01; /* 'HDR' 'EOV' or 'EOF' */ char version[INTLEN], b02; /* rash version */ /* file-vv mapping */ /* multi-vv files */ char vv0[VVNAMELEN], b03; /* 1st vv for file */ char vvno[5], b04; /* volume order number */ char othervv[VVNAMELEN], b05; /* prev or next vv for file */ /* multi-file vv */ char fno[5], b06; /* which file on this vv */ /* file info */ char bfid[BFIDLEN], b07; /* bfid in ascii hex */ char uname[10], b08; /* username */ char uid[INTLEN], b09; /* file uid in ascii hex */ char gname[10], b10; /* group name */ char gid[INTLEN], b11; /* file gid in ascii hex */ char mode[4], b12; /* file mode in ascii hex */ char mtime[DATELEN], b13; /* mtime */ char ctime[DATELEN], b14; /* ctime */ char arctm[DATELEN], b15; /* archive time */ char fsize[OFFLEN], b16; /* file size in ascii hex */ char lseek[OFFLEN], b17; /* lseek address hex */ char vvdata[OFFLEN], b18; /* amt of file on this vv */ char flen[4], end; /* length of file name hex */ } file_hdr_lbl_t;
![]() |
![]() |
WebWork: Harry Waddell
NASA Official: John Lekashman |