|
|
1.1 root 1: /*
2: * @(#)pupu.h 2.1 DKHOST 85/01/15
3: */
4:
5: #include <stdio.h>
6: #include <sys/types.h>
7: #include "sysexits.h"
8: #include <signal.h>
9: #include "tdefs.h"
10: #include "udefs.h"
11:
12: extern int DEBUG ;
13:
14: #define db if(DEBUG)fprintf
15:
16: #ifdef _NFILE
17: # define TOPFD (_NFILE - 3)
18: #else
19: # define TOPFD 17
20: #endif
21:
22: #define NIL ((TcharP) 0)
23: #define GOOD 0
24: #define BAD 1
25:
26: #define WTIMEOUT 90
27: #define RTIMEOUT 60
28:
29: #define NAMELEN 512 /* maximum path name length */
30: #define BLOCKSIZE 2048 /* write length for file transfers */
31:
32: typedef struct expect {
33: Mchar type;
34: MfnP fn;
35: } Texp, *TexpP;
36:
37: # define Mexp /* mos, mou */ Texp
38: # define Aexp auto Texp
39: # define Eexp extern Texp
40: # define Rexp register Texp
41: # define Sexp static Texp
42: # define Pexp /* parameter, value */ Texp
43: # define Xexp /* extdef */ Texp
44: # define MexpP /* mos, mou */ TexpP
45: # define AexpP auto TexpP
46: # define EexpP extern TexpP
47: # define RexpP register TexpP
48: # define SexpP static TexpP
49: # define PexpP /* parameter, value */ TexpP
50: # define XexpP /* extdef */ TexpP
51:
52: typedef struct linkentry Tlink, *TlinkP;
53:
54: # define Mlink /* mos, mou */ Tlink
55: # define Alink auto Tlink
56: # define Elink extern Tlink
57: # define Rlink register Tlink
58: # define Slink static Tlink
59: # define Plink /* parameter, value */ Tlink
60: # define Xlink /* extdef */ Tlink
61: # define MlinkP /* mos, mou */ TlinkP
62: # define AlinkP auto TlinkP
63: # define ElinkP extern TlinkP
64: # define RlinkP register TlinkP
65: # define SlinkP static TlinkP
66: # define PlinkP /* parameter, value */ TlinkP
67: # define XlinkP /* extdef */ TlinkP
68:
69: struct linkentry {
70: MlinkP next;
71: Mshort count;
72: ino_t ino;
73: dev_t dev;
74: Mchar name[2]; /* really longer */
75: };
76:
77: #define H_MAG1 0
78: #define H_MAG2 1
79: #define H_SEQN 2
80: #define SEQMIN 1
81: #define SEQMAX 4
82: #define H_TYPE 3
83: #define H_NULL 4
84: #define H_DATA 5
85:
86: Eint cfd;
87:
88: Echar mhead[H_DATA];
89: Echar buf[BLOCKSIZE];
90: EcharP mnext;
91: Echar sseq, rseq;
92:
93: Ejmp giveup;
94: EfnP alarmwas;
95:
96: Echar wdir[NAMELEN];
97: Echar basedir[NAMELEN];
98: Echar wholename[NAMELEN];
99:
100: Eint cfd;
101: EfnP errorfunction;
102: Eint lasterror;
103: EcharP remoteorlocal;
104: EcharP currentfile, timeoutmsg;
105:
106: Echar openfiles[];
107:
108: Elink linkhead;
109:
110: Eint sys_nerr;
111: EcharP sys_errlist[];
112:
113: Eexp inittable[];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.