Annotation of researchv10no/cmd/worm/scsi/scsish.h, revision 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.