Annotation of researchv10no/cmd/u9fs/9p.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Plan 9 file protocol definitions for use on Unix with ANSI C
        !             3:  */
        !             4: 
        !             5: typedef        struct  Fcall   Fcall;
        !             6: typedef        struct  Qid     Qid;
        !             7: typedef        struct  Dir     Dir;
        !             8: 
        !             9: #define        NAMELEN 28      /* length of path name element */
        !            10: #define        ERRLEN  64      /* length of error string */
        !            11: #define        DIRLEN  116     /* length of machine-independent Dir structure */
        !            12: #define        CHDIR   0x80000000      /* directory bit in modes and qid.path */
        !            13: 
        !            14: struct Qid
        !            15: {
        !            16:        Ulong   path;
        !            17:        Ulong   vers;
        !            18: };
        !            19: 
        !            20: struct Dir
        !            21: {
        !            22:        char    name[NAMELEN];
        !            23:        char    uid[NAMELEN];
        !            24:        char    gid[NAMELEN];
        !            25:        Qid     qid;
        !            26:        Ulong   mode;
        !            27:        long    atime;
        !            28:        long    mtime;
        !            29:        Length  len;
        !            30:        short   type;
        !            31:        short   dev;
        !            32: };
        !            33: 
        !            34: #define        DOMLEN          48
        !            35: #define        DESKEYLEN       7
        !            36: #define        CHALLEN         8
        !            37: #define        TICKETLEN       (CHALLEN+2*NAMELEN+DESKEYLEN+1)
        !            38: #define        AUTHENTLEN      (CHALLEN+4+1)
        !            39: 
        !            40: struct Fcall
        !            41: {
        !            42:        char    type;
        !            43:        short   fid;
        !            44:        Ushort  tag;
        !            45:        Ushort  oldtag;         /* T-Flush */
        !            46:        Qid     qid;            /* R-Attach, R-Walk, R-Open, R-Create */
        !            47:        char    client[NAMELEN];/* T-auth */
        !            48:        char    chal[CHALLEN];  /* T-session, R-session */
        !            49:        char    uname[NAMELEN]; /* T-Attach */
        !            50:        char    aname[NAMELEN]; /* T-Attach */
        !            51:        char    ticket[TICKETLEN]; /* T-Attach */
        !            52:        char    auth[AUTHENTLEN]; /* T-Attach */
        !            53:        char    rauth[AUTHENTLEN]; /* R-Attach */
        !            54:        char    ename[ERRLEN];  /* R-Error */
        !            55:        char    authid[NAMELEN]; /* R-session */
        !            56:        char    authdom[DOMLEN]; /* R-session */
        !            57:        long    perm;           /* T-Create */ 
        !            58:        short   newfid;         /* T-Clone, T-Clwalk */
        !            59:        char    name[NAMELEN];  /* T-Walk, T-Clwalk, T-Create */
        !            60:        char    mode;           /* T-Create, T-Open */
        !            61:        long    offset;         /* T-Read, T-Write */
        !            62:        long    count;          /* T-Read, T-Write, R-Read */
        !            63:        char    *data;          /* T-Write, R-Read */
        !            64:        char    stat[DIRLEN];   /* T-Wstat, R-Stat */
        !            65: };
        !            66: 
        !            67: #define        MAXFDATA        8192
        !            68: #define        MAXMSG          128     /* max header sans data */
        !            69: #define NOTAG          0xFFFF  /* Dummy tag */
        !            70: 
        !            71: enum
        !            72: {
        !            73:        Tnop =          50,
        !            74:        Rnop,
        !            75:        Terror =        54,     /* illegal */
        !            76:        Rerror,
        !            77:        Tflush =        56,
        !            78:        Rflush,
        !            79:        Tclone =        60,
        !            80:        Rclone,
        !            81:        Twalk =         62,
        !            82:        Rwalk,
        !            83:        Topen =         64,
        !            84:        Ropen,
        !            85:        Tcreate =       66,
        !            86:        Rcreate,
        !            87:        Tread =         68,
        !            88:        Rread,
        !            89:        Twrite =        70,
        !            90:        Rwrite,
        !            91:        Tclunk =        72,
        !            92:        Rclunk,
        !            93:        Tremove =       74,
        !            94:        Rremove,
        !            95:        Tstat =         76,
        !            96:        Rstat,
        !            97:        Twstat =        78,
        !            98:        Rwstat,
        !            99:        Tclwalk =       80,
        !           100:        Rclwalk,
        !           101:        Tsession =      84,
        !           102:        Rsession,
        !           103:        Tattach =       86,
        !           104:        Rattach,
        !           105: };
        !           106: 
        !           107: int    convM2S(char*, Fcall*, int);
        !           108: int    convS2M(Fcall*, char*);
        !           109: 
        !           110: int    convM2D(char*, Dir*);
        !           111: int    convD2M(Dir*, char*);
        !           112: 
        !           113: int    fcallconv(void *, int, int, int, int);
        !           114: int    dirconv(void *, int, int, int, int);
        !           115: int    dirmodeconv(void *, int, int, int, int);
        !           116: 
        !           117: char*  getS(int, char*, Fcall*, long*);

unix.superglobalmegacorp.com

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