glenda.party
term% ls -F
term% pwd
$home/manuals/9front/3/mnt
term% cat index.txt
MNT(3)                     Library Functions Manual                     MNT(3)



NAME
       mnt - attach to 9P servers

SYNOPSIS
       #M

DESCRIPTION
       The  mount  driver  is used by the mount system call (but not bind; see
       bind(2)) to connect the name space of a process to the service provided
       by  a 9P server over a communications channel.  After the mount, system
       calls involving files in that portion of the name space  will  be  con‐
       verted  by  the  mount  driver  into the appropriate 9P messages to the
       server.

       The mount system call issues session  and  attach(5)  messages  to  the
       server  to identify and validate the user of the connection.  Each dis‐
       tinct user of a connection must mount it separately; the  mount  driver
       multiplexes  the access of the various users and their processes to the
       service.

       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  trans‐
       lates these procedure calls into remote procedure calls to be transmit‐
       ted 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 er‐
       ror returns.

       A read(2) or 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.

       The string is an illegal file name, so this device can only be accessed
       directly by the kernel.

SEE ALSO
       bind(2)

SOURCE
       /sys/src/9/port/devmnt.c

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.



                                                                        MNT(3)