Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (2) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(5)

version(5)

fauth(2)

FVERSION(2)

NAME

fversion − initialize 9P connection and negotiate version

SYNOPSIS

#include <u.h>
#include <libc.h>

int   fversion(int fd, int bufsize, char ∗version, int nversion)

DESCRIPTION

­Fversion is used to initialize the 9P connection represented by ­fd and to negotiate 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 support.  The ­version will be overwritten with the negotiated, possibly lower, version of the protocol.  The return value of ­fversion is the length of the returned version string; the value of ­nversion is therefore not the length of the version string presented to the system call, but the total length of the buffer to accept the final result, in the manner of a read system call. 

Default values of zero for ­bufsize and the empty string for ­version will negotiate sensible defaults for the connection.  If ­version is the empty string, ­nversion must still be large enough to receive the returned version string. 

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 bind(2)) or even more commonly ­amount (see auth(2)) is sufficient.

SOURCE

­/sys/src/libc/9syscall

SEE ALSO

intro(5), version(5), fauth(2).

DIAGNOSTICS

Sets errstr.

Plan 9  —  March 29, 2002

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026