|
|
1.1 root 1: struct ClientData
2: {
3: char err[256];
4: };
5: typedef struct ClientData *ClientData;
6: #define _CLIENTDATA
7:
8: #define ERR_RETURN { it->result = cd->err; return(TCL_ERROR); }
9: #define USAGE_RETURN { it->result = "usage error"; return(TCL_ERROR); }
10:
11: struct Tcl_Interp;
12: typedef int (*Functionfn)(ClientData, struct Tcl_Interp *, int, char **);
13:
14: typedef struct
15: {
16: char *name;
17: char *help;
18: char *param;
19: Functionfn fn;
20: } Function;
21:
22: typedef struct
23: {
24: char *name;
25: char *verbose;
26: void (*extsense)(uchar *, char *, int);
27: Function *fns;
28: } Device;
29: extern void setdevice(Device *);
30:
31: extern void scsi_target(int);
32: extern void fixedstr(uchar *src, int len, char *dest);
33: extern void gen_extsense(uchar *, char *, int);
34: extern int shelfside(char *arg, char *err);
35: extern void xd(uchar *base, int, FILE *fp);
36:
37: /*
38: * argument processing
39: */
40: #define ARGBEGIN for(argv0? 0: (argv0=*argv++,argc--);\
41: argv[0] && argv[0][0]=='-' && argv[0][1];\
42: argc--, argv++) {\
43: char *_args, *_argt, _argc;\
44: _args = &argv[0][1];\
45: if(_args[0]=='-' && _args[1]==0){\
46: argc--; argv++; break;\
47: }\
48: while(*_args) switch(_argc=*_args++)
49: #define ARGEND }
50: #define ARGF() (_argt=_args, _args="",\
51: (*_argt? _argt: argv[1]? (argc--, *++argv): 0))
52: #define ARGC() _argc
53: extern char *argv0;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.