V10/cmd/udemon/ufs.h

#define snchan 1	
/* Spider channel to file system - but
also change "/dev/tiu/d?" in nfs1.c */
#define DSZ 16			/*directory entry size*/
#define DEPTH 15

int	vflag;		/* flag for key arguments */
int	nflg;		/* make file temporoary on file store */
int	iflag;
int	xflag;


int	tme[2];		/*  modified time of file  */
char	buf[512];
char	cmdbuf[512];
char	*cbp;
#define NARG	9
char	rply [128];
char	nam[DEPTH * 14 + DSZ + 2];
			/* stack for extracting or deleting directory */
struct xstk{
	char *first;	/* pointer to first title for direct. */
	char *pos;
	char *lst;	/* pter to last \*/
}stack[DEPTH];
struct stk{
	int	sff;
	char	*pos;
	int	pad;
};
struct xstk *xsp;
int	dirbuf[50];
int	ubuf[50];
int	statbuf[40];



int	nchar;
int	fn;			/*Spider network file id*/

char	*terr ;

char	op			/*op code*/;
char	pseudoop;
char	**eargv;
char	*np;		/*pointer into nam[]*/
char	*bp		/*pointer into buf[]*/;
char	*tp		/*pointer into *argv[]*/;
char	*fsp;		/* pointer to arg-modified for the filestore */
struct stk *sp;		/*pointer into stack[]*/
int	ff;			/*file being processed*/
int	code;		/*dev/tiu  parameter*/
int	wchar;
int	sum;		/*check sum of data bytes*/
int	length;			/*number of bytes transmitted*/

char	*stat1 ;

char	*ng ;

char	*nxt ;
char	*last ;


#define NTYPE	1		/* vtype for name item  */
#define WTYPE	2		/* vtype for w-store reference */
#define ETYPE	4		/* vtype for 2-word error code */
#define RTYPE	5		/* vtype for file reference */
#define XTYPE	6		/* default operand */
#define STYPE	7		/* vtype for status item */
#define DTYPE	8		/* vtype for directory entry */
#define FTYPE	9		/* vtype for file entry */
#define IITYPE	10		/* vtype for 2-word integer entry */
#define ITYPE	11		/* vtype of 1-word integer */
#define LTYPE	14		/* vtype for skip label */
#define ATYPE	15		/* vtype for account */
#define MAXTYPE	15		/* maximum value of vtype */


				/*values of user op codes */

#define OK	128
#define DEFINE	129
#define REDEFINE	130
#define DELETE	131
#define EOM	133
#define XMT	135
#define POP	137
#define CDIR	138
#define OPEN	140
#define CLOSE	141
#define SEEK	142
#define READ	143
#define WRITE	144
#define TRUNCATE	145
#define LOGIN	146
#define QUIT	147
#define LIST	148
#define STATUS	149
#define UNIQUE	151
#define ASSIGN	154
#define FCREATE	155
#define IF	156
#define FI	157
#define SKIP	158
#define DCREATE	159
#define UNLESS	161

# define OPNUM 33		/* number of legal op codes */

int	diroff;
int	unix;
/*
 * Current format of File Store I-node
 */
struct spstat {
	int	f_dev;
	int	f_number;
	int	f_mode;
	char	f_nlink;
	char	f_uid;
	char	f_state;
	char	f_size0;
	char	*f_size1;
	char	f_seq;
	char	f_vol;
	int	f_accnt[2];
	int	f_perm[3];
	int	f_addr[8];
	int	f_spare[8];
	int	f_dmp[2];
	long	f_acctime;
	long	f_modtime;
};
int	command,filemode,pmode;
#define DELAY 60
#define GOOD 1
#define BAD	0
#define TWLOOP	0
#define TREAD	1
#define TCHECK	2
#define TSTATUS	3
#define TSENDC	4
struct {
	char	lobyte;
	char	hibyte;
};
#define IFMT	060000
#define IFDIR	040000
#define EXPLICIT	2
/*
 * Returns from gstat
 */
#define ORDFILE		0
#define DIRECTORY 	1
#define NOTFOUND	-1

#define YES		1
#define NO		0
/*
 * Spider Network commands
 */
#define SPIDERWRITE	0
#define SPIDERREAD	1
#define SPIDERCHECK	2
#define SPIDERSTATUS	3
#define SPIDERCOM	4
#define SCOM	3
#define SDATA	1
#define SEOF	2
#define SPART	4
#define CHILD	0
struct dent{
	int	d_ino;
	char	d_name[14];
};
int	pid;
#define TEMPFILE 	02000
#define BIGFILE	01000
#define RONLY	0
#define STDOUT	1
int	updread;
#define TRUE	1
#define FALSE	0
#define UPDATE	1
#define NOUPDATE 0
int	byte;
int	simulate;
char	*mach;
int	debug;
#define RPIPE	0
#define WPIPE	1
#define EBAD	0
#define OUTPUT	1
			/* Compressed version of stat */
struct ustat{
	int	mode;
	int	type;
	int	ftype;
	int	uid;
	int	gid;
	long	size;
	long	modtime;
	long	acctime;
}us;
			/* File Access permissions */
#define R	04
#define W	02
#define X	01
			/* Types of files */
#define CHR	1
#define DIR	2
#define BLK	3
#define REC	4
char	*arg[20];
struct{
	int	hiword;
	int	loword;
};
#define dbg if(debug)fprintf