|
|
1.1 root 1: #define snchan 1
2: /* Spider channel to file system - but
3: also change "/dev/tiu/d?" in nfs1.c */
4: #define DSZ 16 /*directory entry size*/
5: #define DEPTH 15
6:
7: int vflag; /* flag for key arguments */
8: int nflg; /* make file temporoary on file store */
9: int iflag;
10: int xflag;
11:
12:
13: int tme[2]; /* modified time of file */
14: char buf[512];
15: char cmdbuf[512];
16: char *cbp;
17: #define NARG 9
18: char rply [128];
19: char nam[DEPTH * 14 + DSZ + 2];
20: /* stack for extracting or deleting directory */
21: struct xstk{
22: char *first; /* pointer to first title for direct. */
23: char *pos;
24: char *lst; /* pter to last \*/
25: }stack[DEPTH];
26: struct stk{
27: int sff;
28: char *pos;
29: int pad;
30: };
31: struct xstk *xsp;
32: int dirbuf[50];
33: int ubuf[50];
34: int statbuf[40];
35:
36:
37:
38: int nchar;
39: int fn; /*Spider network file id*/
40:
41: char *terr ;
42:
43: char op /*op code*/;
44: char pseudoop;
45: char **eargv;
46: char *np; /*pointer into nam[]*/
47: char *bp /*pointer into buf[]*/;
48: char *tp /*pointer into *argv[]*/;
49: char *fsp; /* pointer to arg-modified for the filestore */
50: struct stk *sp; /*pointer into stack[]*/
51: int ff; /*file being processed*/
52: int code; /*dev/tiu parameter*/
53: int wchar;
54: int sum; /*check sum of data bytes*/
55: int length; /*number of bytes transmitted*/
56:
57: char *stat1 ;
58:
59: char *ng ;
60:
61: char *nxt ;
62: char *last ;
63:
64:
65: #define NTYPE 1 /* vtype for name item */
66: #define WTYPE 2 /* vtype for w-store reference */
67: #define ETYPE 4 /* vtype for 2-word error code */
68: #define RTYPE 5 /* vtype for file reference */
69: #define XTYPE 6 /* default operand */
70: #define STYPE 7 /* vtype for status item */
71: #define DTYPE 8 /* vtype for directory entry */
72: #define FTYPE 9 /* vtype for file entry */
73: #define IITYPE 10 /* vtype for 2-word integer entry */
74: #define ITYPE 11 /* vtype of 1-word integer */
75: #define LTYPE 14 /* vtype for skip label */
76: #define ATYPE 15 /* vtype for account */
77: #define MAXTYPE 15 /* maximum value of vtype */
78:
79:
80: /*values of user op codes */
81:
82: #define OK 128
83: #define DEFINE 129
84: #define REDEFINE 130
85: #define DELETE 131
86: #define EOM 133
87: #define XMT 135
88: #define POP 137
89: #define CDIR 138
90: #define OPEN 140
91: #define CLOSE 141
92: #define SEEK 142
93: #define READ 143
94: #define WRITE 144
95: #define TRUNCATE 145
96: #define LOGIN 146
97: #define QUIT 147
98: #define LIST 148
99: #define STATUS 149
100: #define UNIQUE 151
101: #define ASSIGN 154
102: #define FCREATE 155
103: #define IF 156
104: #define FI 157
105: #define SKIP 158
106: #define DCREATE 159
107: #define UNLESS 161
108:
109: # define OPNUM 33 /* number of legal op codes */
110:
111: int diroff;
112: int unix;
113: /*
114: * Current format of File Store I-node
115: */
116: struct spstat {
117: int f_dev;
118: int f_number;
119: int f_mode;
120: char f_nlink;
121: char f_uid;
122: char f_state;
123: char f_size0;
124: char *f_size1;
125: char f_seq;
126: char f_vol;
127: int f_accnt[2];
128: int f_perm[3];
129: int f_addr[8];
130: int f_spare[8];
131: int f_dmp[2];
132: long f_acctime;
133: long f_modtime;
134: };
135: int command,filemode,pmode;
136: #define DELAY 60
137: #define GOOD 1
138: #define BAD 0
139: #define TWLOOP 0
140: #define TREAD 1
141: #define TCHECK 2
142: #define TSTATUS 3
143: #define TSENDC 4
144: struct {
145: char lobyte;
146: char hibyte;
147: };
148: #define IFMT 060000
149: #define IFDIR 040000
150: #define EXPLICIT 2
151: /*
152: * Returns from gstat
153: */
154: #define ORDFILE 0
155: #define DIRECTORY 1
156: #define NOTFOUND -1
157:
158: #define YES 1
159: #define NO 0
160: /*
161: * Spider Network commands
162: */
163: #define SPIDERWRITE 0
164: #define SPIDERREAD 1
165: #define SPIDERCHECK 2
166: #define SPIDERSTATUS 3
167: #define SPIDERCOM 4
168: #define SCOM 3
169: #define SDATA 1
170: #define SEOF 2
171: #define SPART 4
172: #define CHILD 0
173: struct dent{
174: int d_ino;
175: char d_name[14];
176: };
177: int pid;
178: #define TEMPFILE 02000
179: #define BIGFILE 01000
180: #define RONLY 0
181: #define STDOUT 1
182: int updread;
183: #define TRUE 1
184: #define FALSE 0
185: #define UPDATE 1
186: #define NOUPDATE 0
187: int byte;
188: int simulate;
189: char *mach;
190: int debug;
191: #define RPIPE 0
192: #define WPIPE 1
193: #define EBAD 0
194: #define OUTPUT 1
195: /* Compressed version of stat */
196: struct ustat{
197: int mode;
198: int type;
199: int ftype;
200: int uid;
201: int gid;
202: long size;
203: long modtime;
204: long acctime;
205: }us;
206: /* File Access permissions */
207: #define R 04
208: #define W 02
209: #define X 01
210: /* Types of files */
211: #define CHR 1
212: #define DIR 2
213: #define BLK 3
214: #define REC 4
215: char *arg[20];
216: struct{
217: int hiword;
218: int loword;
219: };
220: #define dbg if(debug)fprintf
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.