SYS-FVERSION(2) SYS-FVERSION(2)
NAME
fversion - initialize Styx 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 Styx 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 Styx requests to the server, subject to the con-
straints of the server itself. The version is a text string
that represents the highest version level the protocol will
support.
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/7/25)