Annotation of researchv10no/cmd/worm/scsi/scsish.h, revision 1.1.1.1

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;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.