|
|
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.