[go: up one dir, main page]

File: discon.h

package info (click to toggle)
arla 0.36.2-11
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 13,236 kB
  • ctags: 12,096
  • sloc: ansic: 125,016; sh: 10,590; makefile: 5,533; asm: 1,617; objc: 1,236; yacc: 372; perl: 367; lex: 309; awk: 35; lisp: 14
file content (338 lines) | stat: -rw-r--r-- 11,989 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
OBSOLETE /* COPYRIGHT  (C)  1998
OBSOLETE  * THE REGENTS OF THE UNIVERSITY OF MICHIGAN
OBSOLETE  * ALL RIGHTS RESERVED
OBSOLETE  * 
OBSOLETE  * PERMISSION IS GRANTED TO USE, COPY, CREATE DERIVATIVE WORKS 
OBSOLETE  * AND REDISTRIBUTE THIS SOFTWARE AND SUCH DERIVATIVE WORKS 
OBSOLETE  * FOR ANY PURPOSE, SO LONG AS THE NAME OF THE UNIVERSITY OF 
OBSOLETE  * MICHIGAN IS NOT USED IN ANY ADVERTISING OR PUBLICITY 
OBSOLETE  * PERTAINING TO THE USE OR DISTRIBUTION OF THIS SOFTWARE 
OBSOLETE  * WITHOUT SPECIFIC, WRITTEN PRIOR AUTHORIZATION.  IF THE 
OBSOLETE  * ABOVE COPYRIGHT NOTICE OR ANY OTHER IDENTIFICATION OF THE 
OBSOLETE  * UNIVERSITY OF MICHIGAN IS INCLUDED IN ANY COPY OF ANY 
OBSOLETE  * PORTION OF THIS SOFTWARE, THEN THE DISCLAIMER BELOW MUST 
OBSOLETE  * ALSO BE INCLUDED.
OBSOLETE  * 
OBSOLETE  * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION 
OBSOLETE  * FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY 
OBSOLETE  * PURPOSE, AND WITHOUT WARRANTY BY THE UNIVERSITY OF 
OBSOLETE  * MICHIGAN OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING 
OBSOLETE  * WITHOUT LIMITATION THE IMPLIED WARRANTIES OF 
OBSOLETE  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE 
OBSOLETE  * REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE 
OBSOLETE  * FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR 
OBSOLETE  * CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING 
OBSOLETE  * OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN 
OBSOLETE  * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF 
OBSOLETE  * SUCH DAMAGES.
OBSOLETE  */
OBSOLETE 
OBSOLETE /*
OBSOLETE ** These are defines for the different type of disconnected
OBSOLETE ** operations stored in the log.
OBSOLETE */
OBSOLETE 
OBSOLETE #ifndef  _DISCONNH
OBSOLETE #define _DISCONNH
OBSOLETE 
OBSOLETE 
OBSOLETE /* these are define for integrity checking */
OBSOLETE #define CHECK_SLOTS	(long) 0x1
OBSOLETE #define CHECK_LRUQ	(long) 0x2
OBSOLETE #define CHECK_FREEVS	(long) 0x4
OBSOLETE 
OBSOLETE /* values for the dflags in the vcache */
OBSOLETE #define VC_DIRTY	0x01
OBSOLETE #define KEEP_VC		0x04
OBSOLETE #define DBAD_VC		0x08		/* This is a know bad vcache */
OBSOLETE /* this flags is used by GetVSlot to mark when a vcache was read from
OBSOLETE ** the disk.  
OBSOLETE */
OBSOLETE #define READ_DISK	0x10
OBSOLETE 
OBSOLETE /* Flags for dflags in the fcache */
OBSOLETE #define	KEEP_DC		0x01
OBSOLETE 
OBSOLETE /* Flags in the afs_VindexFlags */
OBSOLETE 
OBSOLETE #define VC_FREE		0x01 
OBSOLETE #define HAS_CCORE	0x02
OBSOLETE /* 0x04 is used by KEEP_VC */
OBSOLETE #define VC_DATAMOD	0x08
OBSOLETE #define VC_FLAG		0x10
OBSOLETE #define VC_CLEARAXS	0x20
OBSOLETE #define VC_HAVECB	0x40
OBSOLETE 
OBSOLETE /* magic number for data files */
OBSOLETE 
OBSOLETE #define AFS_DHMAGIC         0x7635fac1
OBSOLETE 
OBSOLETE /* these are the file name extensions for various errors */
OBSOLETE #define STORE_EXT	".store"
OBSOLETE #define RENAME_EXT	".ren"
OBSOLETE #define CREATE_EXT	".creat"
OBSOLETE #define MKDIR_EXT	".mkdir"
OBSOLETE #define LINK_EXT	".link"
OBSOLETE #define SYMLINK_EXT	".slink"
OBSOLETE #define ORPH_EXT	".orph"
OBSOLETE 
OBSOLETE /* conflicting defs with arla_local.h */
OBSOLETE /*enum discon_modes {
OBSOLETE 	CONNECTED,
OBSOLETE 	DISCONNECTED,
OBSOLETE 	FETCH_ONLY,
OBSOLETE 	PARTIALLY_CONNECTED
OBSOLETE };*/
OBSOLETE 
OBSOLETE #define	IS_DISCONNECTED(state)	(state == DISCONNECTED)
OBSOLETE #define	IS_FETCHONLY(state)	(state == FETCH_ONLY)
OBSOLETE #define	IS_PARTIAL(state)	(state == PARTIALLY_CONNECTED)
OBSOLETE #define	IS_CONNECTED(state)	(state == CONNECTED)
OBSOLETE #define LOG_OPERATIONS(state)	((state == DISCONNECTED) ||  \
OBSOLETE 		(state == FETCH_ONLY) || (state == PARTIALLY_CONNECTED))
OBSOLETE #define USE_OPTIMISTIC(state)	((state == DISCONNECTED) ||  \
OBSOLETE 		(state == FETCH_ONLY))
OBSOLETE 	
OBSOLETE 
OBSOLETE /* These are the different levels of error logging */
OBSOLETE #define	DISCON_ERR	0
OBSOLETE #define	DISCON_NOTICE	1
OBSOLETE #define	DISCON_INFO	2
OBSOLETE #define	DISCON_DEBUG	3
OBSOLETE 
OBSOLETE /* pioctl flags */
OBSOLETE #define AFS_DIS_RECON		0	/* normal reconnect */
OBSOLETE #define AFS_DIS_DISCON		1	/* disconnect */
OBSOLETE #define AFS_DIS_PANIC		2	/* die, monster devil, die */
OBSOLETE #define AFS_DIS_RECONTOSS	3	/* reconnect now! */
OBSOLETE #define AFS_DIS_QUERY		4	/* query disconnected state */
OBSOLETE #define AFS_DIS_FETCHONLY	5	/* disconnect, fetch-only mode */
OBSOLETE #define AFS_DIS_PARTIAL		6	/* partially connected mode */
OBSOLETE #define AFS_DIS_DISCONTOSS	7	/* disconnect without discarding callbacks */
OBSOLETE 
OBSOLETE 
OBSOLETE /* these are items defined to fhe PSetDOps */
OBSOLETE 
OBSOLETE typedef enum { GET_BACKUP_LOG_NAME, 
OBSOLETE 	SET_USERLOG_LEVEL,
OBSOLETE 	SET_FILELOG_LEVEL, 
OBSOLETE 	SET_LOGFILE, 
OBSOLETE 	UPDATE_FLAGS, 
OBSOLETE 	PING_SERVER, 
OBSOLETE 	GET_LOG_NAME, 
OBSOLETE 	GIVEUP_CBS,
OBSOLETE 	PRINT_INFO, 
OBSOLETE 	VERIFY_VCACHE, 
OBSOLETE 	VERIFY_DCACHE } dis_setopt_op_t;
OBSOLETE 
OBSOLETE #if 0
OBSOLETE #define MAX_NAME  255
OBSOLETE #endif
OBSOLETE 
OBSOLETE typedef struct dis_setop_info {
OBSOLETE 	dis_setopt_op_t	op;
OBSOLETE 	char 	data[MAX_NAME];
OBSOLETE } dis_setop_info_t;
OBSOLETE 
OBSOLETE 
OBSOLETE #ifdef KERNEL
OBSOLETE 
OBSOLETE 
OBSOLETE #define CELL_DIRTY   0x01
OBSOLETE #define REALLY_BIG 1024
OBSOLETE 
OBSOLETE struct save_cell {
OBSOLETE     long cell;				/* unique id assigned by venus */
OBSOLETE     char cellName[MAX_NAME];		/* char string name of cell */
OBSOLETE     short cellHosts[MAXHOSTS];		/* volume *location* hosts for this cell */
OBSOLETE     short lcell;			/* Associated linked cell */
OBSOLETE     short states;			/* state flags */
OBSOLETE     long fsport;			/* file server port */
OBSOLETE     long vlport;			/* volume server port */
OBSOLETE     short cellIndex;                    /* relative index number per cell */
OBSOLETE     short dindex;			/* disconnected index */
OBSOLETE };
OBSOLETE 
OBSOLETE #define SERV_DIRTY 0x01
OBSOLETE 
OBSOLETE struct save_server {
OBSOLETE     unsigned int cell; 		/* cell in which this host resides */
OBSOLETE     long host;			/* in network byte order, except subsys */
OBSOLETE     long portal;		/* in network byte order */
OBSOLETE     unsigned int random;	/* server priority, used for randomizing requests */
OBSOLETE     char isDown;		/* result of decision if server is down. */
OBSOLETE     char vcbCount;		/* count of vcbs */
OBSOLETE     short dindex;		/* disconnected index */
OBSOLETE };
OBSOLETE 
OBSOLETE 
OBSOLETE #define VOL_DIRTY 0x01
OBSOLETE 
OBSOLETE struct save_volume {
OBSOLETE     long cell;                  /* the cell in which the volume resides */
OBSOLETE     long volume;                /* This volume's ID number. */
OBSOLETE     char name[MAX_NAME];        /* This volume's name, or 0 if unknown */
OBSOLETE     short serverHost[MAXHOSTS];    /* servers serving this volume */
OBSOLETE     struct VenusFid dotdot;     /* dir to access as .. */
OBSOLETE     struct VenusFid mtpoint;    /* The mount point for this volume. */
OBSOLETE     long rootVnode, rootUnique;	/* Volume's root fid */
OBSOLETE     long roVol;
OBSOLETE     long backVol;
OBSOLETE     long rwVol;                 /* For r/o vols, original read/write volume. */
OBSOLETE     long accessTime;            /* last time we used it */
OBSOLETE     long copyDate;              /* copyDate field, for tracking vol releases */
OBSOLETE     char states;                /* snuck here for alignment reasons */
OBSOLETE     short dindex;
OBSOLETE };
OBSOLETE 
OBSOLETE 
OBSOLETE #define LLIST_SIZE  1024
OBSOLETE 
OBSOLETE 
OBSOLETE #ifndef GET_WRITE
OBSOLETE #define GET_WRITE   0x1
OBSOLETE #define GET_READ    0x2
OBSOLETE #define GET_SHARED  0x4
OBSOLETE 
OBSOLETE #define REL_WRITE   0x10
OBSOLETE #define REL_READ    0x20
OBSOLETE #define REL_SHARED  0x40
OBSOLETE 
OBSOLETE #define S_TO_W	    0x100
OBSOLETE #define W_TO_S	    0x200
OBSOLETE #define W_TO_R	    0x400
OBSOLETE #define S_TO_R      0x800
OBSOLETE #endif /* GET_WRITE */
OBSOLETE 
OBSOLETE struct llist {
OBSOLETE     struct afs_lock *lk;
OBSOLETE     short	operation;
OBSOLETE     short	who;
OBSOLETE     struct llist * next;
OBSOLETE     struct llist *prev;
OBSOLETE };
OBSOLETE 
OBSOLETE /* These are definition for the translation flags fields */
OBSOLETE 
OBSOLETE #define KNOWNBAD	0x20
OBSOLETE #define SYMLINK		0x40
OBSOLETE struct name_trans {
OBSOLETE     struct VenusFid pfid;
OBSOLETE     int ntrans_idx;
OBSOLETE     int oname_idx;
OBSOLETE     int nname_idx;
OBSOLETE     int next_nt_idx;
OBSOLETE     char *old_name;
OBSOLETE     char *new_name;
OBSOLETE     struct name_trans *next;
OBSOLETE };
OBSOLETE 
OBSOLETE struct translations {
OBSOLETE     struct VenusFid oldfid;
OBSOLETE     struct VenusFid newfid;
OBSOLETE     u_long flags;
OBSOLETE     hyper validDV;
OBSOLETE     int	trans_idx;
OBSOLETE     long callback;
OBSOLETE     long cbExpires;
OBSOLETE     int	nl_idx;
OBSOLETE     struct translations *next;
OBSOLETE     struct name_trans *name_list;
OBSOLETE };
OBSOLETE 
OBSOLETE 
OBSOLETE 
OBSOLETE /* 
OBSOLETE  * this struct is used to help speed up finding the number of callbacks for
OBSOLETE  * each server
OBSOLETE  */
OBSOLETE 
OBSOLETE struct serv_cbcount {
OBSOLETE     long  server;
OBSOLETE     long  count;
OBSOLETE     struct serv_cbcount *next;
OBSOLETE };
OBSOLETE 
OBSOLETE /* Stuff for the link name persistence */
OBSOLETE 
OBSOLETE #define MAP_ENTS	100
OBSOLETE #define	NAME_UNIT	255
OBSOLETE #define	NAME_DIRTY	0x1
OBSOLETE 
OBSOLETE /* header for the name backing file */
OBSOLETE typedef struct	map_header {
OBSOLETE     long	magic;		/* magic number */
OBSOLETE     int		num_ents;	/* number of names stored */
OBSOLETE     char	flags;		/* flags for in core copy */
OBSOLETE } map_header_t;
OBSOLETE 
OBSOLETE /* commented out */ 
OBSOLETE /*
OBSOLETE  * this struct holds all the information pertaining to a certain
OBSOLETE  * backing store used to keep persistance information
OBSOLETE  */
OBSOLETE /*typedef struct backing_store {
OBSOLETE 	long		bs_inode;	
OBSOLETE 	struct osi_dev	bs_dev;
OBSOLETE 	char	 	*bs_name;
OBSOLETE 	map_header_t	*bs_header;
OBSOLETE 	char 		*bs_map;
OBSOLETE 	struct afs_lock	bs_lock;
OBSOLETE 	struct osi_file	*tfile;
OBSOLETE } backing_store_t;*/
OBSOLETE 
OBSOLETE #endif /* KERNEL */
OBSOLETE 
OBSOLETE /* CacheItems file has a header of type struct afs_fheader (keep aligned properly) */
OBSOLETE struct afs_dheader {
OBSOLETE     long magic;
OBSOLETE     long firstCSize;
OBSOLETE     long otherCSize;
OBSOLETE     long spare;
OBSOLETE     long current_op;
OBSOLETE     enum connected_mode mode;
OBSOLETE };
OBSOLETE 
OBSOLETE #ifdef KERNEL
OBSOLETE 
OBSOLETE #define have_shared_lock(lock) \
OBSOLETE 	((((lock)->excl_locked==SHARED_LOCK) &&  \
OBSOLETE 	   ((lock)->proc == osi_curpid())) ?  1 :  0)
OBSOLETE 
OBSOLETE #define have_write_lock(lock) \
OBSOLETE 	((((lock)->excl_locked==WRITE_LOCK) &&  \
OBSOLETE 		((lock)->proc == osi_curpid())) ? 1 :  0)
OBSOLETE 
OBSOLETE extern struct llist *llist;
OBSOLETE extern struct llist *cur_llist;
OBSOLETE 
OBSOLETE /* these are function declarations so I can compile with -Wall in gcc,
OBSOLETE  * not really needed, but help make clean compiles.
OBSOLETE  */
OBSOLETE 
OBSOLETE extern int strlen();
OBSOLETE #ifndef AFS_NETBSD_ENV
OBSOLETE extern void strcpy();
OBSOLETE #endif	/* AFS_NETBSD_ENV */
OBSOLETE extern void bcopy();
OBSOLETE extern int dir_Delete();
OBSOLETE extern int dir_FindBlobs();
OBSOLETE extern int dir_Lookup();
OBSOLETE extern int dir_Create();
OBSOLETE extern int find_file_name();
OBSOLETE extern int afs_create();
OBSOLETE extern int afs_PutDCache();
OBSOLETE 
OBSOLETE #endif /* KERNEL */
OBSOLETE 
OBSOLETE #endif /*  _DISCONNH */
OBSOLETE 
OBSOLETE 
OBSOLETE #ifdef DISCONN
OBSOLETE typedef struct _fid_cb {
OBSOLETE VenusFid  fid;
OBSOLETE struct _fid_cb  *next; 
OBSOLETE } fid_cb;
OBSOLETE #endif
OBSOLETE 
OBSOLETE