SYS-FVERSION(2) SYS-FVERSION(2) NAME fversion - initialize 9P connection and negotiate version SYNOPSIS include "sys.m"; sys := load Sys Sys->PATH; fversion: fn(fd: ref FD, bufsize: int, version: string): (int, string); DESCRIPTION Fversion initialises the 9P connection represented by fd and negotiates the maximum message size and the version of the protocol to be used. The bufsize determines the size of the I/O buffer used to stage 9P requests to the server, subject to the constraints of the server itself. The version is a text string that represents the highest version level the protocol will sup- port. Fversion returns a tuple (n,useversion) where n is -1 if the request was rejected, and otherwise n is bufsize and useversion is a string representing the negotiated, possibly lower, version of the protocol. Default values of zero for bufsize and the empty string for version will negotiate sensible defaults for the connection. The interpretation of the version strings is defined in version(5). It is rare to use fversion directly; usually the default negotiation performed by the kernel during mount (see sys- bind(2)) is sufficient. SEE ALSO sys-fauth(2), intro(5), version(5). DIAGNOSTICS Fversion returns a value of -1 for n on error, including failure to negotiate acceptable values, and sets the system error string. BUGS The returned value of n when no error occurs should be the negotiated message size but is currently the original bufsize parameter. Page 1 Plan 9 (printed 12/23/24)