# README
This is go9p done in a way that I can understand.
To install: export GOPATH=~rminnich/go go get -a /k8s.io/minikube/third_party/go9p go get -a /k8s.io/minikube/third_party/go9p/ufs go install -a /k8s.io/minikube/third_party/go9p/ufs
~/go/bin/ufs
# Functions
Establishes a new socket connection to the 9P server and creates a client object for it.
FidFile returns a File that represents the given Fid, initially at the given offset.
Initializes the specified Fcall value to contain Rread message.
Connects to a file server and attaches to it as the specified user.
Creates and initializes a new Clnt object.
Allocates a new Fcall.
Creates a file server with root as root directory.
Converts a Dir value to its on-the-wire representation and writes it to the buf.
Create a Rattach message in the specified Fcall.
Create a Rauth message in the specified Fcall.
Create a Rclunk message in the specified Fcall.
Create a Rcreate message in the specified Fcall.
Create a Rflush message in the specified Fcall.
Create a Ropen message in the specified Fcall.
Create a Rread message in the specified Fcall.
Create a Rremove message in the specified Fcall.
Create a Rstat message in the specified Fcall.
Create a Rversion message in the specified Fcall.
Create a Rwalk message in the specified Fcall.
Create a Rwrite message in the specified Fcall.
Create a Rwstat message in the specified Fcall.
Create a Tattach message in the specified Fcall.
Create a Tauth message in the specified Fcall.
Create a Tclunk message in the specified Fcall.
Create a Tcreate message in the specified Fcall.
Create a Tflush message in the specified Fcall.
Create a Topen message in the specified Fcall.
Create a Tread message in the specified Fcall.
Create a Tremove message in the specified Fcall.
Create a Tstat message in the specified Fcall.
Create a Tversion message in the specified Fcall.
Create a Twalk message in the specified Fcall.
Create a Twrite message in the specified Fcall.
Create a Twstat message in the specified Fcall.
Updates the size of the data returned by Rread.
Sets the tag of a Fcall.
Creates a Fcall value from the on-the-wire representation.
Converts the on-the-wire representation of a stat to Stat value.
# Constants
keep the last N 9P messages (can be accessed over http).
keep the last N 9P messages (can be accessed over http).
print all 9P messages on stderr.
print the raw packets on stderr.
mode bit for append only files.
mode bit for authentication file.
mode bit for device file (Unix, 9P2000.u).
mode bit for directories.
mode bit for exclusive use files.
mode bit for execute permission.
mode bit for hard link (Unix, 9P2000.u).
mode bit for mounted channel.
mode bit for named pipe (Unix, 9P2000.u).
mode bit for read permission.
mode bit for setgid (Unix, 9P2000.u).
mode bit for setuid (Unix, 9P2000.u).
mode bit for socket (Unix, 9P2000.u).
mode bit for symbolic link (Unix, 9P2000.u).
mode bit for non-backed-up file.
mode bit for write permission.
Error values.
Error values.
Error values.
Error values.
Error values.
Error values.
the non-data size of the Twrite messages.
default message size (1048576+IOHdrSz).
no fid specified.
no tag specified.
no uid specified.
or'ed in, close on exec.
execute (== read but check execute permission).
or'ed in, remove on close.
open read-write.
open read-only.
or'ed in (except for exec), truncate file first.
open write-only.
default port for 9P file servers.
append only files.
authentication file.
directories.
exclusive use files.
Qid types.
hard link (Unix, 9P2000.u).
mounted channel.
symbolic link (Unix, 9P2000.u).
non-backed-up file.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
9P2000 message types.
# Variables
(r2d4): We don't want this exposed in minikube right now var Akaros = flag.Bool("akaros", false, "Akaros extensions").
Simple Users implementation that fakes looking up users and groups by uid only.
# Structs
The Clnt type represents a 9P2000 client.
The Conn type represents a connection from a client to the file server.
Dir describes a file.
Error represents a 9P2000 (and 9P2000.u) error.
Fcall represents a 9P2000 message.
A Fid type represents a file on the server.
The file is similar to the Fid, but is used in the high-level client interface.
The Fsrv can be used to create file servers that serve simple trees of synthetic files.
File identifier.
The Srv type contains the basic fields used to control the 9P2000 file server.
The SrvFid type identifies a file on the file server.
The SrvReq type represents a 9P2000 request.
# Interfaces
Authentication operations.
Connection operations.
If the FCreateOp interface is implemented, the Create operation will be called when the client attempts to create a file in the srvFile implementing the interface.
Flush operation.
If the FReadOp interface is implemented, the Read operation will be called to read from the file.
If the FRemoveOp interface is implemented, the Remove operation will be called when the client attempts to create a file in the srvFile implementing the interface.
The FStatOp interface provides a single operation (Stat) that will be called before a file stat is sent back to the client.
If the FWriteOp interface is implemented, the Write operation will be called to write to the file.
The FWstatOp interface provides a single operation (Wstat) that will be called when the client requests the srvFile metadata to be modified.
Represents a group of users.
SrvFid operations.
SrvRequest operations.
Request operations.
Represents a user.
Interface for accessing users and groups.