summaryrefslogtreecommitdiff
path: root/static/plan9-4e/man3/mnt.3
diff options
context:
space:
mode:
Diffstat (limited to 'static/plan9-4e/man3/mnt.3')
-rw-r--r--static/plan9-4e/man3/mnt.372
1 files changed, 72 insertions, 0 deletions
diff --git a/static/plan9-4e/man3/mnt.3 b/static/plan9-4e/man3/mnt.3
new file mode 100644
index 00000000..c92c4370
--- /dev/null
+++ b/static/plan9-4e/man3/mnt.3
@@ -0,0 +1,72 @@
+.TH MNT 3
+.SH NAME
+mnt \- attach to 9P servers
+.SH SYNOPSIS
+.nf
+.B #M
+.fi
+.SH DESCRIPTION
+The
+.I mount driver
+is used by the
+.B mount
+system call
+(but not
+.BR bind ;
+see
+.IR bind (2))
+to connect the name space of a process to
+the service provided by a 9P server over a communications channel.
+After the
+.BR mount ,
+system calls involving files in that portion of the name space will
+be converted by the mount driver into the appropriate
+9P messages to the server.
+.PP
+The
+.I mount
+system call issues
+.I session
+and
+.IR attach (5)
+messages to the server to identify and validate the user of the connection.
+Each distinct user of a connection must mount it separately;
+the mount driver multiplexes the access of the various users and their
+processes to the service.
+.PP
+File-oriented system calls are converted by the kernel into messages in the 9P protocol.
+Within the kernel, 9P is implemented by procedure calls to the
+various kernel device drivers.
+The mount driver translates these procedure calls into remote procedure calls
+to be transmitted as messages over the communication channel to the server.
+Each message is implemented by a write
+of the corresponding protocol message to the server channel
+followed by a read on the server channel to get the reply.
+Errors in the reply message are turned into system call error returns.
+.PP
+A
+.IR read (2)
+or
+.IR write
+system call on a file served by the mount driver
+may be translated
+into more than one
+message,
+since there is a maximum data size for a 9P message.
+The system call
+will return when the specified number of bytes have been transferred
+or a short reply is returned.
+.PP
+The string
+.L #M
+is an illegal file name,
+so this device can only be accessed directly by the kernel.
+.SH "SEE ALSO"
+.IR bind (2)
+.SH SOURCE
+.B /sys/src/9/port/devmnt.c
+.SH BUGS
+When mounting a service through the mount driver,
+that is, when the channel being multiplexed is itself
+a file being served by the mount driver,
+large messages may be broken in two.