Annotation of researchv9/sys/h/netb.h, revision 1.1

1.1     ! root        1: /* new netfs headers, adjusted to 8 byte boundaries */
        !             2: #define NETB 2
        !             3: struct sendb {
        !             4:        char version;   /* 1 mostly */
        !             5:        char cmd;       /* see below */
        !             6:        char flags;     /* see below, for nami mostly */
        !             7:        char rsvd;      /* space */
        !             8:        long trannum;   /* uniq transaction id */
        !             9: 
        !            10:        long len;       /* including this struct and any data */
        !            11:        long tag;       /* who it is about */
        !            12: };
        !            13: 
        !            14: /* additional structures for each message type, adjusted to 8 bytes */
        !            15: /* put         nothing */
        !            16: /* get         nothing, never sent */
        !            17: struct snbstat {               /* get */
        !            18:        time_t  ta;     /* synchronization */
        !            19:        long    rsvd;   /* padding */
        !            20: };
        !            21: /* free                nothing, and no message either */
        !            22: struct snbup {         /* update, rather overloaded */
        !            23:        long rsvd2;     /* the server's handle */
        !            24:        short uid, gid; /* for the inode */
        !            25: 
        !            26:        unsigned short mode;
        !            27:        dev_t rdvdd;
        !            28:        long rsvd;      /* alignment space */
        !            29: 
        !            30:        long ta;
        !            31:        long tm;        /* access and modified times */
        !            32: };
        !            33: struct snbread {
        !            34:        long len;       /* how much */
        !            35:        long offset;    /* starting where */
        !            36: };
        !            37: struct snbwrite {
        !            38:        long len;       /* how much (redundant) */
        !            39:        long offset;
        !            40: };
        !            41: /* trunc doesn't need any */
        !            42: struct snbnami {
        !            43:        long rsvd;      /* of current directory for request */
        !            44:        short uid, gid; /* for permissions and creating */
        !            45: 
        !            46:        short mode;     /* for creating, if any */
        !            47:        dev_t dev;
        !            48:        long ino;       /* ino and dev for linking */
        !            49: };
        !            50: 
        !            51: /* expected responses */
        !            52: struct recvb { /* common header */
        !            53:        long trannum;   /* sanity */
        !            54:        short errno;    /* error messages */
        !            55:        char flags;     /* and comments */
        !            56:        char rsvd;
        !            57: 
        !            58:        long len;       /* total length, including this struct */
        !            59:        long rsvd2;
        !            60: };
        !            61: /* additional responses per command */
        !            62: /* put         nothing */
        !            63: struct rnbget {
        !            64:        short mode;
        !            65:        short uid, gid;
        !            66:        short nlink;
        !            67: 
        !            68:        long tag;
        !            69:        long size;
        !            70: };
        !            71: /* free                nothing */
        !            72: /* updat       server may disagree with changes, but resetting might not
        !            73:                be a good idea, so nothing */
        !            74: struct rnbstat {
        !            75:        long ino;
        !            76:        dev_t dev;
        !            77:        short mode;
        !            78: 
        !            79:        short nlink;
        !            80:        short uid, gid;
        !            81:        dev_t rdev;     /* is this useful? */
        !            82: 
        !            83:        long size;
        !            84:        time_t ta;
        !            85: 
        !            86:        time_t tm;
        !            87:        time_t tc;
        !            88: };
        !            89: /* read                nothing (would a redundant len be useful?) */
        !            90: /* write       ditto */
        !            91: struct rnbnami {       /* include enough so the next stat can be avoided */
        !            92:        long tag;
        !            93:        long ino;
        !            94: 
        !            95:        dev_t dev;
        !            96:        short mode;
        !            97:        long used;      /* chars of name used if recvb.flags == NROOT */
        !            98: 
        !            99:        short nlink;
        !           100:        short uid, gid;
        !           101:        dev_t rdev;     /* is this useful? */
        !           102: 
        !           103:        long size;
        !           104:        time_t ta;
        !           105: 
        !           106:        time_t tm;
        !           107:        time_t tc;
        !           108: };
        !           109: 
        !           110: /* commands */
        !           111: #define NBPUT  1
        !           112: #define NBGET  2
        !           113: #define NBUPD  3
        !           114: #define NBREAD 4
        !           115: #define NBWRT  5
        !           116: #define NBNAMI 6
        !           117: #define NBSTAT 7
        !           118: #define NBIOCTL        8
        !           119: #define NBTRNC 9
        !           120: /* response flags */
        !           121: #define NBROOT 1

unix.superglobalmegacorp.com

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