File:  [Research Unix] / researchv9 / sys.vax / h / netb.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:59 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv9-SUN3_old, researchv9-SUN3, HEAD
researchv9-SUN3(old)

/* new netfs headers, adjusted to 8 byte boundaries */
#define NETB 2
struct sendb {
	char version;	/* 1 mostly */
	char cmd;	/* see below */
	char flags;	/* see below, for nami mostly */
	char rsvd;	/* space */
	long trannum;	/* uniq transaction id */

	long len;	/* including this struct and any data */
	long tag;	/* who it is about */
};

/* additional structures for each message type, adjusted to 8 bytes */
/* put		nothing */
/* get		nothing, never sent */
struct snbstat {		/* get */
	time_t	ta;	/* synchronization */
	long	rsvd;	/* padding */
};
/* free		nothing, and no message either */
struct snbup {		/* update, rather overloaded */
	long rsvd2;	/* the server's handle */
	short uid, gid;	/* for the inode */

	unsigned short mode;
	dev_t rdvdd;
	long rsvd;	/* alignment space */

	long ta;
	long tm;	/* access and modified times */
};
struct snbread {
	long len;	/* how much */
	long offset;	/* starting where */
};
struct snbwrite {
	long len;	/* how much (redundant) */
	long offset;
};
/* trunc doesn't need any */
struct snbnami {
	long rsvd;	/* of current directory for request */
	short uid, gid;	/* for permissions and creating */

	short mode;	/* for creating, if any */
	dev_t dev;
	long ino;	/* ino and dev for linking */
};

/* expected responses */
struct recvb {	/* common header */
	long trannum;	/* sanity */
	short errno;	/* error messages */
	char flags;	/* and comments */
	char rsvd;

	long len;	/* total length, including this struct */
	long rsvd2;
};
/* additional responses per command */
/* put		nothing */
struct rnbget {
	short mode;
	short uid, gid;
	short nlink;

	long tag;
	long size;
};
/* free		nothing */
/* updat	server may disagree with changes, but resetting might not
		be a good idea, so nothing */
struct rnbstat {
	long ino;
	dev_t dev;
	short mode;

	short nlink;
	short uid, gid;
	dev_t rdev;	/* is this useful? */

	long size;
	time_t ta;

	time_t tm;
	time_t tc;
};
/* read		nothing (would a redundant len be useful?) */
/* write	ditto */
struct rnbnami {	/* include enough so the next stat can be avoided */
	long tag;
	long ino;

	dev_t dev;
	short mode;
	long used;	/* chars of name used if recvb.flags == NROOT */

	short nlink;
	short uid, gid;
	dev_t rdev;	/* is this useful? */

	long size;
	time_t ta;

	time_t tm;
	time_t tc;
};

/* commands */
#define NBPUT	1
#define NBGET	2
#define NBUPD	3
#define NBREAD	4
#define NBWRT	5
#define NBNAMI	6
#define NBSTAT	7
#define NBIOCTL	8
#define NBTRNC	9
/* response flags */
#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.