rex.h
001:
002:
003:
004:
005:
006: #ifndef _REX_H_RPCGEN
007: #define _REX_H_RPCGEN
008:
009: #include <rpc/rpc.h>
010:
011:
012: #ifdef __cplusplus
013: extern "C" {
014: #endif
015:
016: #define STRINGSIZE 1024
017:
018: typedef char *rexstring;
019: #define SIGINT 2
020: #define REX_INTERACTIVE 1
021:
022: struct rex_start {
023: struct {
024: u_int rst_cmd_len;
025: rexstring *rst_cmd_val;
026: } rst_cmd;
027: rexstring rst_host;
028: rexstring rst_fsname;
029: rexstring rst_dirwithin;
030: struct {
031: u_int rst_env_len;
032: rexstring *rst_env_val;
033: } rst_env;
034: u_int rst_port0;
035: u_int rst_port1;
036: u_int rst_port2;
037: u_int rst_flags;
038: };
039: typedef struct rex_start rex_start;
040:
041: struct rex_result {
042: int rlt_stat;
043: rexstring rlt_message;
044: };
045: typedef struct rex_result rex_result;
046:
047: struct sgttyb {
048: u_int four;
049: char chars[4];
050: u_int flags;
051: };
052: typedef struct sgttyb sgttyb;
053: #define B0 0
054: #define B50 1
055: #define B75 2
056: #define B110 3
057: #define B134 4
058: #define B150 5
059: #define B200 6
060: #define B300 7
061: #define B600 8
062: #define B1200 9
063: #define B1800 10
064: #define B2400 11
065: #define B4800 12
066: #define B9600 13
067: #define B19200 14
068: #define B38400 15
069: #define TANDEM 0x00000001
070: #define CBREAK 0x00000002
071: #define LCASE 0x00000004
072: #define ECHO 0x00000008
073: #define CRMOD 0x00000010
074: #define RAW 0x00000020
075: #define ODDP 0x00000040
076: #define EVENP 0x00000080
077: #define ANYP 0x000000c0
078: #define NLDELAY 0x00000300
079: #define NL0 0x00000000
080: #define NL1 0x00000100
081: #define NL2 0x00000200
082: #define NL3 0x00000300
083: #define TBDELAY 0x00000c00
084: #define TAB0 0x00000000
085: #define TAB1 0x00000400
086: #define TAB2 0x00000800
087: #define XTABS 0x00000c00
088: #define CRDELAY 0x00003000
089: #define CR0 0x00000000
090: #define CR1 0x00001000
091: #define CR2 0x00002000
092: #define CR3 0x00003000
093: #define VTDELAY 0x00004000
094: #define FF0 0x00000000
095: #define FF1 0x00004000
096: #define BSDELAY 0x00008000
097: #define BS0 0x00000000
098: #define BS1 0x00008000
099: #define CRTBS 0x00010000
100: #define PRTERA 0x00020000
101: #define CRTERA 0x00040000
102: #define TILDE 0x00080000
103: #define MDMBUF 0x00100000
104: #define LITOUT 0x00200000
105: #define TOSTOP 0x00400000
106: #define FLUSHO 0x00800000
107: #define NOHANG 0x01000000
108: #define L001000 0x02000000
109: #define CRTKIL 0x04000000
110: #define PASS8 0x08000000
111: #define CTLECH 0x10000000
112: #define PENDIN 0x20000000
113: #define DECCTQ 0x40000000
114: #define NOFLSH 0x80000000
115:
116: struct tchars {
117: u_int six;
118: char chars[6];
119: };
120: typedef struct tchars tchars;
121:
122: struct ltchars {
123: u_int six;
124: char chars[6];
125: u_int mode;
126: };
127: typedef struct ltchars ltchars;
128:
129: struct rex_ttysize {
130: int ts_lines;
131: int ts_cols;
132: };
133: typedef struct rex_ttysize rex_ttysize;
134:
135: struct rex_ttymode {
136: sgttyb basic;
137: tchars more;
138: ltchars yetmore;
139: u_int andmore;
140: };
141: typedef struct rex_ttymode rex_ttymode;
142: #define LCRTBS 0x0001
143: #define LPRTERA 0x0002
144: #define LCRTERA 0x0004
145: #define LTILDE 0x0008
146: #define LMDMBUF 0x0010
147: #define LLITOUT 0x0020
148: #define LTOSTOP 0x0040
149: #define LFLUSHO 0x0080
150: #define LNOHANG 0x0100
151: #define LL001000 0x0200
152: #define LCRTKIL 0x0400
153: #define LPASS8 0x0800
154: #define LCTLECH 0x1000
155: #define LPENDIN 0x2000
156: #define LDECCTQ 0x4000
157: #define LNOFLSH 0x8000
158:
159: #define REXPROG 100017
160: #define REXVERS 1
161:
162: #if defined(__STDC__) || defined(__cplusplus)
163: #define REXPROC_START 1
164: extern rex_result * rexproc_start_1(rex_start *, CLIENT *);
165: extern rex_result * rexproc_start_1_svc(rex_start *, struct svc_req *);
166: #define REXPROC_WAIT 2
167: extern rex_result * rexproc_wait_1(void *, CLIENT *);
168: extern rex_result * rexproc_wait_1_svc(void *, struct svc_req *);
169: #define REXPROC_MODES 3
170: extern void * rexproc_modes_1(rex_ttymode *, CLIENT *);
171: extern void * rexproc_modes_1_svc(rex_ttymode *, struct svc_req *);
172: #define REXPROC_WINCH 4
173: extern void * rexproc_winch_1(rex_ttysize *, CLIENT *);
174: extern void * rexproc_winch_1_svc(rex_ttysize *, struct svc_req *);
175: #define REXPROC_SIGNAL 5
176: extern void * rexproc_signal_1(int *, CLIENT *);
177: extern void * rexproc_signal_1_svc(int *, struct svc_req *);
178: extern int rexprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
179:
180: #else
181: #define REXPROC_START 1
182: extern rex_result * rexproc_start_1();
183: extern rex_result * rexproc_start_1_svc();
184: #define REXPROC_WAIT 2
185: extern rex_result * rexproc_wait_1();
186: extern rex_result * rexproc_wait_1_svc();
187: #define REXPROC_MODES 3
188: extern void * rexproc_modes_1();
189: extern void * rexproc_modes_1_svc();
190: #define REXPROC_WINCH 4
191: extern void * rexproc_winch_1();
192: extern void * rexproc_winch_1_svc();
193: #define REXPROC_SIGNAL 5
194: extern void * rexproc_signal_1();
195: extern void * rexproc_signal_1_svc();
196: extern int rexprog_1_freeresult ();
197: #endif
198:
199:
200:
201: #if defined(__STDC__) || defined(__cplusplus)
202: extern bool_t xdr_rexstring (XDR *, rexstring*);
203: extern bool_t xdr_rex_start (XDR *, rex_start*);
204: extern bool_t xdr_rex_result (XDR *, rex_result*);
205: extern bool_t xdr_sgttyb (XDR *, sgttyb*);
206: extern bool_t xdr_tchars (XDR *, tchars*);
207: extern bool_t xdr_ltchars (XDR *, ltchars*);
208: extern bool_t xdr_rex_ttysize (XDR *, rex_ttysize*);
209: extern bool_t xdr_rex_ttymode (XDR *, rex_ttymode*);
210:
211: #else
212: extern bool_t xdr_rexstring ();
213: extern bool_t xdr_rex_start ();
214: extern bool_t xdr_rex_result ();
215: extern bool_t xdr_sgttyb ();
216: extern bool_t xdr_tchars ();
217: extern bool_t xdr_ltchars ();
218: extern bool_t xdr_rex_ttysize ();
219: extern bool_t xdr_rex_ttymode ();
220:
221: #endif
222:
223: #ifdef __cplusplus
224: }
225: #endif
226:
227: #endif
228:
© Andrew Scott 2006 -
2025,
All Rights Reserved