The purgatory Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The purgatory Reference Manual

This is the purgatory Reference Manual, version 0.1.0, generated automatically by Declt version 3.0 "Montgomery Scott" on Sun May 15 05:53:05 2022 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

#+OPTIONS: html-postamble:nil html-preamble:nil
#+AUTHOR:
#+TITLE: purgatory

* Introduction

  This library aims to be an implementation of the 9p file protocol as described in:

  https://man.cat-v.org/plan_9/5/intro

* Status

  The  library is  under  development,most of  the  protocol has  been
  implemented except for Twstat (https://man.cat-v.org/plan_9/5/stat);
  bugs, of course, exists, API may changes.

* Prerequisites:
  - alexandria
  - cl-ppcre
  - usocket
  - babel
  - uiop

  To run the tests also
  - cl+ssl
  - clunit2

  needs to be installed (via quicklisp).

  Of course a 9p server is needed.

* Installation:

  The  best  way  to  get  purgatory  working  is  using  the  excellent
  [[http://www.quicklisp.org/][quicklisp]]

  #+BEGIN_SRC common-lisp
  (ql:quickload "9p-client")
  #+END_SRC

* Usage

  A typical usage of the library should starts with a code similar to the one below:

  #+BEGIN_SRC common-lisp
    (let ((*messages-sent* '())
          (root-fid        (mount stream root)))
      ...)
  #+END_SRC

  Note that  `stream` should  be a stream  of ~(unsigned-byte  8)~ and
  likely    is   created    by    a   client    socket.    The    file
  [[./tests/all-tests.lisp]]      contains      a     small      macro
  ~with-open-ssl-stream~ that  will help  creating a TLS  stream using
  usocket.

  The file [[./tests/protocol-tests.lisp]] contains a lot of examples about the usage of the
  library.

  There are quite a few high level functions to use the filesystem that are listed below:

  - mount :: Initialize the  connection to the  server using `root-path'  as the
  root of the remote filesystem
  - read-all-pending-messages-ignoring-errors ::
  Read all the messages from the server and ignore any error
  - clone-fid :: Make a new fid that points to the same resource pointed by `fid'
  - create-directory :: Create  a  new  directory  with  name  `directory-name'  under  the
  directory pointed  by `parent-fid'.  The parameter  `permissions' must
  be provided in octal (default: #o760))
  - path-exists-p
  - create-path :: Create a file or directory as specified by `path'.
  To create a  directory specify a path terminating with  a '/'.  Parent
  directories are created if do  not exist.  The parameter `permissions'
  must be provided in octal (default: #o640))

  Returns the fid to the last element of `path'

  If the last element of `path'  is a directory the directory is created
  with permissions: #o760.

  It `path'  already reference a  valid file it  is opened for  read and
  write.

  Finally if already reference a valid directory is opened for read only.
  - open-path :: Open a full, existing, path relative to `root-fid'.  `Mode' must be
  one         of        ~+create-for-read+~         ~+create-for-write+~
  ~+create-for-read-write+"~
 - slurp-file :: Read in a vector of (unsigned byte 8) the full content of
 'path' relative to `root-fid'

 - remove-path ::   Remove the last element of 'path' relative to `root-fid'.
   If `path' does not exists this function does nothing.

 - open-directory :: Open the directory pointed to `path' relative to `root-fid'.
 Returns the fid of the directory pointed by `path'.

 This  fid  can  be  used  by `read-directory`  to  get  the  directory
 entries (see the struct `stat')

 - read-directory :: Read the next entry of a directory specified by `dir-fid'.

 `Dir-fid' is usually the values returned by `open-directory`.

 This function on success returns tree values:

   - dir-fid to  read the  next entry or  to check if  there are  no more
   entries (see below);
   - the stat struct for the current entry;
   - an offset to the next entry.

 Each call to this function on the same directory fid, except the first, must use the offset returned by the last call, for example

 #+BEGIN_SRC common-lisp
   (let* ((dir-fid (open-directory stream root-fid path)))
     (multiple-value-bind (next-dir-fid stat stat-size)
         (read-directory stream dir-fid)   ; offset 0 on the first call
       (multiple-value-bind (next-dir-fid-2 stat-2 next-stat-size-2)
           (read-directory stream dir-fid stat-size) ; offset equals
                                                     ; to  stat-size
                                                     ; from previous
                                                     ; call
         ...)))
 #+END_SRC

 When  this  function  returns  nil  there no  more  entries  for  this
 directory (see the code of directory children).
 - sort-dir-stats :: Sort a list  of stat struct `data' (by default  sorting entry names
 in lexicographic ascending order

 - collect-directory-children :: Traverse  the  file system   tree  starting  at
   `starting-directory' returning a list of strings representing  the paths of
   all files under `starting-directory'.

 - collect-tree :: Traverse  the file  system  tree  starting at  `starting-directory'
   returning two values
   - a list of strings representing  the paths of all the *files*
     under `starting-directory';
   - a list of all the path to the sub-directories under `starting-directory'.

 The lists are ordered in topological order (depth first strategy).

 - copy-file :: Copy a file pointed by ~path-from~ to a file pointed by ~path-to~.
   ~progress-fn~,  if  defined,  must  be  a  function  with  a  single
   parameter: the  number of  octects wrote  in a  single call  of the
   ~Twrite~ command.

   Note: the destination file is overwritten if does exists."

 Also checking the protocol documentation is useful [[https://man.cat-v.org/plan_9/5/intro]]

* BUGS

  Please send bug reports or patches to the [[https://notabug.org/cage/purgatory/issues][issue tracker]].

* License
  This library is released under Lisp Lesser General Public license (see
  COPYING.LESSER file)

* NO WARRANTY

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

* Acknowledgment

  My deep thanks to op for the  support and redfog for the name of the
  library, Thank you!


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 purgatory

Maintainer

cage

Author

cage

Bug Tracker

https://notabug.org/cage/9p-client/issues

License

LLGPL

Description

A simple implementation of the 9p filesystem protocol.

Version

0.1.0

Dependencies
Source

purgatory.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 purgatory.asd

Location

/home/quickref/quicklisp/dists/quicklisp/software/purgatory-20220220-git/purgatory.asd

Systems

purgatory (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 purgatory/package.lisp

Parent

purgatory (system)

Location

package.lisp

Packages

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 purgatory/text-utils.lisp

Dependency

package.lisp (file)

Parent

purgatory (system)

Location

text-utils.lisp

Exported Definitions

strcat (function)

Internal Definitions

strcat* (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 purgatory/misc-utils.lisp

Dependency

text-utils.lisp (file)

Parent

purgatory (system)

Location

misc-utils.lisp

Exported Definitions

safe-all-but-last-elt (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 purgatory/filesystem-utils.lisp

Dependency

misc-utils.lisp (file)

Parent

purgatory (system)

Location

filesystem-utils.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 purgatory/conditions.lisp

Dependency

filesystem-utils.lisp (file)

Parent

purgatory (system)

Location

conditions.lisp

Exported Definitions

9p-error (condition)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.7 purgatory/message-types.lisp

Dependency

conditions.lisp (file)

Parent

purgatory (system)

Location

message-types.lisp

Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.8 purgatory/client.lisp

Dependency

message-types.lisp (file)

Parent

purgatory (system)

Location

client.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 purgatory.misc-utils

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions

safe-all-but-last-elt (function)

Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

4.2 purgatory.filesystem-utils

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

4.3 purgatory.text-utils

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions

strcat (function)

Internal Definitions

strcat* (function)


Previous: , Up: Packages   [Contents][Index]

4.4 purgatory

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Constants

Constant: +byte-type+
Package

purgatory

Source

client.lisp (file)

Constant: +create-dir+
Package

purgatory

Source

client.lisp (file)

Constant: +create-for-exec+
Package

purgatory

Source

client.lisp (file)

Constant: +create-for-read+
Package

purgatory

Source

client.lisp (file)

Constant: +create-for-read-write+
Package

purgatory

Source

client.lisp (file)

Constant: +create-for-write+
Package

purgatory

Source

client.lisp (file)

Constant: +nofid+
Package

purgatory

Source

client.lisp (file)

Constant: +nwname-clone+
Package

purgatory

Source

client.lisp (file)

Constant: +open-remove-on-clunk+
Package

purgatory

Source

client.lisp (file)

Constant: +open-truncate+
Package

purgatory

Source

client.lisp (file)

Constant: +standard-socket-port+
Package

purgatory

Source

client.lisp (file)

Constant: +version+
Package

purgatory

Source

client.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Special variables

Special Variable: *buffer-size*
Package

purgatory

Source

client.lisp (file)

Special Variable: *directory-sep-regexp*
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Special Variable: *messages-sent*
Package

purgatory

Source

client.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Macros

Macro: with-new-fid (FID) &body BODY

Useful convenience macro to generate a new fid

Package

purgatory

Source

client.lisp (file)

Macro: with-new-tag (TAG) &body BODY
Package

purgatory

Source

client.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Functions

Function: 9p-auth STREAM AUTHORIZATION-FID USERNAME ROOT &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: 9p-clunk STREAM FID &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: 9p-create STREAM PARENT-DIR-FID PATH &key CALLBACK PERMISSIONS MODE

Note: path is relative to root, see attach,
Also note that successfully creating a file will open it.

Package

purgatory

Source

client.lisp (file)

Function: 9p-open STREAM FID &key CALLBACK MODE

Note: before opening you have to ’walk’ the file to get the corresponding fid.

Package

purgatory

Source

client.lisp (file)

Function: 9p-read STREAM FID OFFSET CHUNK-LENGTH &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: 9p-remove STREAM FID &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: 9p-stat STREAM FID &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: 9p-walk STREAM ROOT-FID NEW-FID NEW-NAME &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: backreference-dir-p PATH
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Function: cat-parent-dir PARENT DIRENTRY
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Function: change-access-time STREAM ROOT-FID PATH TIME &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: change-mode STREAM ROOT-FID PATH NEW-MODE &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: change-modify-time STREAM ROOT-FID PATH TIME &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: change-permissions STREAM ROOT-FID PATH NEW-MODE &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: change-time-values STREAM ROOT-FID PATH NEW-ACCESS-TIME NEW-MODIFICATION-TIME &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: clone-fid STREAM FID

Make a new fid that points to the same resource pointed by ‘fid’

Package

purgatory

Source

client.lisp (file)

Function: close-client SOCKET
Package

purgatory

Source

client.lisp (file)

Function: collect-directory-children STREAM ROOT-FID PATH

Collect all the directory entries of ‘path’ relative to ‘root-fid’ as a list of ‘stat‘ structures.

Package

purgatory

Source

client.lisp (file)

Function: collect-tree STREAM ROOT-FID STARTING-DIRECTORY

Traverse the file system tree starting at ‘starting-directory’ returning two values
- a list of strings representing the paths of all the *files*
under ‘starting-directory’
- a list of all the path to the sub-directories under ‘starting-directory’

The lists are ordered in topological order (depth first strategy).

Package

purgatory

Source

client.lisp (file)

Function: copy-file STREAM ROOT-FID PATH-FROM PATH-TO &key BUFFER-SIZE PROGRESS-FN

Copy a file pointed by ‘path-from’ to a file pointed by ‘path-to’. ‘progress-fn’, if defined, must be a function with a single parameter: the number of octects wrote in a single call of the Twrite command.

Note: the destination file is overwritten if does exists.

Package

purgatory

Source

client.lisp (file)

Function: create-directory STREAM PARENT-FID DIRECTORY-NAME &key PERMISSIONS

Create a new directory with name ‘directory-name’ under the directory pointed by ‘parent-fid’. The parameter ‘permissions’ must be provided in octal (default: #o760))

Package

purgatory

Source

client.lisp (file)

Function: create-path STREAM PARENT-FID PATH &key FILE-PERMISSIONS

Create a file or directory as specified by ‘path’.
To create a directory specify a path terminating with a ’/’. Parent directories are created if do not exist. The parameter ‘permissions’ must be provided in octal (default: #o640))

Returns the fid to the last element of ‘path’

If the last element of ‘path’ is a directory the directory is created with permissions: #o760.

It ‘path’ already reference a valid file it is opened for read and write.

Finally if already reference a valid directory is opened for read only.

Package

purgatory

Source

client.lisp (file)

Function: decode-read-reply DATA &optional AS-STRING
Package

purgatory

Source

client.lisp (file)

Function: decode-rstat DATA

Decode a serialized file/directory entry in a structure ‘stat’.

Package

purgatory

Source

client.lisp (file)

Function: dummy-callback MESSAGE-TYPE DATA

A callback that does nothing

Package

purgatory

Source

client.lisp (file)

Function: dump-callback MESSAGE-TYPE DATA

A callback that print the data on the standard output, useful for debugging

Package

purgatory

Source

client.lisp (file)

Function: encode-string STRING
Package

purgatory

Source

client.lisp (file)

Function: getenv NAME
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Function: initialize-session STREAM
Package

purgatory

Source

client.lisp (file)

Function: loopback-reference-dir-p PATH
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Function: make-permissions &key (USER USER) (GROUP GROUP) (OTHERS OTHERS) (USER-STRING USER-STRING) (GROUP-STRING GROUP-STRING) (OTHERS-STRING OTHERS-STRING) (ORIGINAL-VALUE ORIGINAL-VALUE)
Package

purgatory

Source

client.lisp (file)

Function: make-stat &key (ENTRY-SIZE ENTRY-SIZE) (KTYPE KTYPE) (KDEV KDEV) (ENTRY-TYPE ENTRY-TYPE) (VERSION VERSION) (PATH PATH) (MODE MODE) (ATIME ATIME) (MTIME MTIME) (SIZE SIZE) (NAME NAME) (USER-ID USER-ID) (GROUP-ID GROUP-ID) (LAST-MODIFIED-FROM-ID LAST-MODIFIED-FROM-ID)
Package

purgatory

Source

client.lisp (file)

Function: mount STREAM ROOT-PATH &key USERNAME AUTHORIZATION-HANDSHAKE

Initialize the connection to the server using ‘root-path’ as the root of the remote file system

If ‘username’ is not nil ‘authorization-handshake’ must be a function of two parameters

- stream
- authorization-fid

The user can write and read to authorization-fid using ‘9p-write’ or ‘9p-read’ to be authorized. If authorized ‘authorization-handshake’ must returns a non nil value. If returns a nil value this is interpreted as access not granted and ‘mount’ returns nil.

If mount has success two values are returned: the fid of the root file system and the protocol version.

Package

purgatory

Source

client.lisp (file)

Function: move-file STREAM ROOT-FID PATH-FROM PATH-TO &key BUFFER-SIZE PROGRESS-FN

Move the file from ‘path-from‘ ‘path-to‘, this function can be used to rename a file too.

Package

purgatory

Source

client.lisp (file)

Function: open-directory STREAM ROOT-FID PATH

Open the directory pointed to ‘path’ relative to ‘root-fid’. Returns the fid of the directory pointed by ‘path’.

This fid can be used by ‘read-directory‘ to get the directory entries (see the struct ‘stat’)

Package

purgatory

Source

client.lisp (file)

Function: open-path STREAM ROOT-FID PATH &key WALK-CALLBACK OPEN-CALLBACK MODE JUST-WALK

Open a full, existing, path relative to ‘root-fid’. ‘Mode’ must be one of +create-for-read+, +create-for-write+, +create-for-read-write+

Package

purgatory

Source

client.lisp (file)

Function: parent-dir-path PATH
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Function: path-exists-p STREAM ROOT-FID PATH

Returns non nil if ‘path’ exists.

Package

purgatory

Source

client.lisp (file)

Function: path-info STREAM ROOT-FID PATH

If returns non nil values a stat structure representing the element pointed by ‘path’ and a list of stats structures corresponding to the directory of ‘path’.

Package

purgatory

Source

client.lisp (file)

Function: path-last-element PATH
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Function: path-referencing-dir-p PATH
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Function: permissions-group INSTANCE
Function: (setf permissions-group) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: permissions-group-string INSTANCE
Function: (setf permissions-group-string) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: permissions-original-value INSTANCE
Function: (setf permissions-original-value) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: permissions-others INSTANCE
Function: (setf permissions-others) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: permissions-others-string INSTANCE
Function: (setf permissions-others-string) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: permissions-user INSTANCE
Function: (setf permissions-user) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: permissions-user-string INSTANCE
Function: (setf permissions-user-string) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: read-all-pending-messages ()

The responses from the server are not processed immediately, they are collected until this function is called.

Package

purgatory

Source

client.lisp (file)

Function: read-all-pending-messages-ignoring-errors STREAM

Read all the messages from the server and ignore any error

Package

purgatory

Source

client.lisp (file)

Function: read-directory STREAM DIR-FID &optional OFFSET

Read the next entry of a directory specified by ‘dir-fid’.

‘Dir-fid’ is usually the values returned by ‘open-directory‘.

This function on success returns tree values:

- dir-fid to read the next entry or to check if there are no more
entries (see below);
- the stat struct for the current entry;
- an offset to the next entry.

Each call to this function on the same directory fid, except the first, must use the offset returned by the last call, for example

(let* ((dir-fid (open-directory stream root-fid path))
(multiple-value-bind (next-dir-fid stat stat-size)
(read-directory stream dir-fid) ; offset 0 on the first call
(multiple-value-bind (next-dir-fid-2 stat-2 next-stat-size-2)
(read-directory stream dir-fid stat-size) ; offset equals
; to stat-size
; from previous
; call
...))))

When this function returns nil there no more entries for this
directory (see the code of directory children).

Package

purgatory

Source

client.lisp (file)

Function: read-entire-file-apply-function STREAM ROOT-FID PATH READ-FUNCTION &key BUFFER-SIZE

Read an entire file pointed by ‘path’ applying the function ‘read-function’ to three arguments:

- the data chunk as a vector of (unsigned-byte 8);
- the offset to the start of the chunk red;
- the length of the chunk.

Note: ‘path’ is relative to ‘root-fid’

Note also that a failed assertion is signalled if ‘buffer-size’ is bigger than:

*buffer-size* - +9p-read-header-fixed-size+

Package

purgatory

Source

client.lisp (file)

Function: read-message STREAM
Package

purgatory

Source

client.lisp (file)

Function: remove-path STREAM ROOT-FID PATH

Remove the last element of ’path’ relative to ‘root-fid’. If ‘path’ does not exists this function does nothing.

Package

purgatory

Source

client.lisp (file)

Function: safe-all-but-last-elt SEQUENCE
Package

purgatory.misc-utils

Source

misc-utils.lisp (file)

Function: slurp-file STREAM ROOT-FID PATH &key BUFFER-SIZE

Read in a vector of (unsigned-byte 8) the full content of
’path’ relative to ‘root-fid’

Note: a failed assertion is signalled if ‘buffer-size’ is bigger than:

*buffer-size* - +9p-read-header-fixed-size+

Package

purgatory

Source

client.lisp (file)

Function: sort-dir-stats DATA &optional FN

Sort a list of stat struct ‘data’ (by default sorting entry names in lexicographic ascending order

Package

purgatory

Source

client.lisp (file)

Function: split-path-elements PATH
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Function: stat-atime INSTANCE
Function: (setf stat-atime) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-entry-size INSTANCE
Function: (setf stat-entry-size) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-entry-type INSTANCE
Function: (setf stat-entry-type) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-group-id INSTANCE
Function: (setf stat-group-id) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-kdev INSTANCE
Function: (setf stat-kdev) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-ktype INSTANCE
Function: (setf stat-ktype) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-last-modified-from-id INSTANCE
Function: (setf stat-last-modified-from-id) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-mode INSTANCE
Function: (setf stat-mode) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-mtime INSTANCE
Function: (setf stat-mtime) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-name INSTANCE
Function: (setf stat-name) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-path INSTANCE
Function: (setf stat-path) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-size INSTANCE
Function: (setf stat-size) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-user-id INSTANCE
Function: (setf stat-user-id) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: stat-version INSTANCE
Function: (setf stat-version) VALUE INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: strcat ()
Package

purgatory.text-utils

Source

text-utils.lisp (file)

Function: truncate-file STREAM ROOT-FID PATH &key NEW-SIZE CALLBACK

Truncate the size of the element pointed by ‘path’ to the size indicated by the value of ‘new-size’ (default 0). Note that only files could be truncated, not directory.

Package

purgatory

Source

client.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.5 Generic functions

Generic Function: 9p-attach STREAM ROOT &key USERNAME CALLBACK AFID
Package

purgatory

Source

client.lisp (file)

Methods
Method: 9p-attach STREAM (ROOT string) &key USERNAME CALLBACK AFID
Generic Function: 9p-write STREAM FID OFFSET DATA &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Methods
Method: 9p-write STREAM FID OFFSET (DATA string) &key CALLBACK
Method: 9p-write STREAM FID OFFSET (DATA vector) &key CALLBACK
Generic Function: decode OBJECT
Package

purgatory

Source

client.lisp (file)

Generic Function: decode-string DATA
Package

purgatory

Methods
Method: decode-string DATA
Source

client.lisp (file)

Generic Function: encode OBJECT
Package

purgatory

Source

client.lisp (file)

Methods
Method: encode (OBJECT stat)
Method: encode (OBJECT permissions)
Method: encode OBJECT
Method: encode (OBJECT list)
Method: encode (OBJECT string)
Method: encode (OBJECT octects)

Encode an octect to be trasmitted on the stream


Previous: , Up: Exported definitions   [Contents][Index]

5.1.6 Conditions

Condition: 9p-error ()

Error for 9p protocol

Package

purgatory

Source

conditions.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: error-value
Initargs

:error-value

Readers

error-value (generic function)

Slot: message-type
Initargs

:message-type

Readers

message-type (generic function)

Slot: tag
Initargs

:tag

Readers

tag (generic function)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Constants

Constant: +9p-read-header-fixed-size+
Package

purgatory

Source

client.lisp (file)

Constant: +9p-write-header-fixed-size+
Package

purgatory

Source

client.lisp (file)

Constant: +file-path-regex+
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Constant: +file-types+
Package

purgatory

Source

client.lisp (file)

Constant: +message-length-size+
Package

purgatory

Source

client.lisp (file)

Constant: +message-string-length-size+
Package

purgatory

Source

client.lisp (file)

Constant: +message-tag-size+
Package

purgatory

Source

client.lisp (file)

Constant: +message-type-size+
Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-append+

mode bit for append only files

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-auth+

mode bit for authentication file

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-dir+

mode bit for directories

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-excl+

mode bit for exclusive use files

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-exec+

mode bit for execute permission

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-file+

mode bit for non-backed-up files

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-mount+

mode bit for mounted channel

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-read+

mode bit for read permission

Package

purgatory

Source

client.lisp (file)

mode bit for non-backed-up files

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-tmp+

mode bit for non-backed-up files

Package

purgatory

Source

client.lisp (file)

Constant: +stat-type-write+

mode bit for write permission

Package

purgatory

Source

client.lisp (file)

Constant: +wstat-ignore-1+
Package

purgatory

Source

client.lisp (file)

Constant: +wstat-ignore-2+
Package

purgatory

Source

client.lisp (file)

Constant: +wstat-ignore-4+
Package

purgatory

Source

client.lisp (file)

Constant: +wstat-ignore-8+
Package

purgatory

Source

client.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Special variables

Special Variable: *directory-sep*
Package

purgatory.filesystem-utils

Source

filesystem-utils.lisp (file)

Special Variable: *fid*
Package

purgatory

Source

client.lisp (file)

Special Variable: *rattach*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rauth*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rclunk*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rcreate*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rerror*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rflush*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *ropen*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rread*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rremove*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rstat*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rversion*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rwalk*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rwrite*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *rwstat*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tag*
Package

purgatory

Source

client.lisp (file)

Special Variable: *tattach*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tauth*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tclunk*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tcreate*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *terror*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tflush*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *topen*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tread*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tremove*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tstat*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *tversion*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *twalk*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *twrite*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *twstat*
Package

purgatory

Source

message-types.lisp (file)

Special Variable: *unix-epoch-difference*
Package

purgatory

Source

client.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Macros

Macro: defcond TYPE
Package

purgatory.misc-utils

Source

misc-utils.lisp (file)

Macro: gen-delete@ (SEQUENCE POSITION) &body BODY
Package

purgatory.misc-utils

Source

misc-utils.lisp (file)

Macro: gen-intn->bytes BITS
Package

purgatory

Source

client.lisp (file)

Macro: with-callback-read-all (RECURSE-FUNCTION-NAME OFFSET DATA-REPLY BYTE-COUNT) &body BODY
Package

purgatory

Source

client.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Functions

Function: %9p-walk-self STREAM ROOT-FID NEW-FID &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: add-size MSG
Package

purgatory

Source

client.lisp (file)

Function: append-tag-callback TAG FUNCTION
Package

purgatory

Source

client.lisp (file)

Function: big-endian->little-endian BYTES
Package

purgatory

Source

client.lisp (file)

Function: bytes->int BYTES

Convenience function to convert a vector of bytes to a number using the correct bytes order.

Package

purgatory

Source

client.lisp (file)

Function: cat-reply-vector A B
Package

purgatory

Source

client.lisp (file)

Function: change-time STREAM ROOT-FID PATH TIME SLOT-FUNCTION-NAME &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Function: close-ssl-socket SOCKET
Package

purgatory

Source

client.lisp (file)

Function: compose-message MESSAGE-TYPE TAG &rest PARAMS
Package

purgatory

Source

client.lisp (file)

Function: copy-permissions INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: copy-stat INSTANCE
Package

purgatory

Source

client.lisp (file)

Function: decode-permissions DATA
Package

purgatory

Source

client.lisp (file)

Function: decode-quid DATA
Package

purgatory

Source

client.lisp (file)

Function: displace-response RESPONSE
Package

purgatory

Source

client.lisp (file)

Function: encode-permissions PERMISSIONS
Package

purgatory

Source

client.lisp (file)

Function: encoded-string-offset DECODED-STRING
Package

purgatory

Source

client.lisp (file)

Function: error-response-p RESPONSE
Package

purgatory

Source

client.lisp (file)

Function: exhausted-stream-for-read-p COUNT
Package

purgatory

Source

client.lisp (file)

Function: file-type-number->symbol KEY
Package

purgatory

Source

client.lisp (file)

Function: fire-response TAG MESSAGE-TYPE DATA
Package

purgatory

Source

client.lisp (file)

Function: ignore-response TAG
Package

purgatory

Source

client.lisp (file)

Function: int16->bytes VAL &optional COUNT RES
Package

purgatory

Source

client.lisp (file)

Function: int32->bytes VAL &optional COUNT RES
Package

purgatory

Source

client.lisp (file)

Function: int416->bytes VAL &optional COUNT RES
Package

purgatory

Source

client.lisp (file)

Function: int512->bytes VAL &optional COUNT RES
Package

purgatory

Source

client.lisp (file)

Function: int64->bytes VAL &optional COUNT RES
Package

purgatory

Source

client.lisp (file)

Function: int8->bytes VAL &optional COUNT RES
Package

purgatory

Source

client.lisp (file)

Function: make-message-buffer SIZE
Package

purgatory

Source

client.lisp (file)

Function: make-octects NUMBER SIZE
Package

purgatory

Source

client.lisp (file)

Function: make-octects-permissions MODE
Package

purgatory

Source

client.lisp (file)

Function: maximum-read-buffer-size ()
Package

purgatory

Source

client.lisp (file)

Function: next-fid ()

Generate a fresh fid

Package

purgatory

Source

client.lisp (file)

Function: next-tag ()
Package

purgatory

Source

client.lisp (file)

Function: permissions->list PERMISSIONS
Package

purgatory

Source

client.lisp (file)

Function: permissions->string PERMISSIONS
Package

purgatory

Source

client.lisp (file)

Function: permissions-p OBJECT
Package

purgatory

Source

client.lisp (file)

Function: send-message STREAM MESSAGE
Package

purgatory

Source

client.lisp (file)

Function: send-version STREAM TAG
Package

purgatory

Source

client.lisp (file)

Function: stat-p OBJECT
Package

purgatory

Source

client.lisp (file)

Function: strcat* ()
Package

purgatory.text-utils

Source

text-utils.lisp (file)

Function: symbol->file-type-number KEY
Package

purgatory

Source

client.lisp (file)

Function: tags-exists-p-clsr TAG-LOOKING-FOR
Package

purgatory

Source

client.lisp (file)

Function: universal->unix UNIVERSAL
Package

purgatory

Source

client.lisp (file)

Function: unix->universal UNIX
Package

purgatory

Source

client.lisp (file)

Function: vcat A B
Package

purgatory

Source

client.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.5 Generic functions

Generic Function: 9p-wstat STREAM FID STAT &key CALLBACK
Package

purgatory

Source

client.lisp (file)

Methods
Method: 9p-wstat STREAM FID (STAT vector) &key CALLBACK
Method: 9p-wstat STREAM FID (STAT stat) &key CALLBACK
Generic Function: connection-data CONDITION
Package

purgatory

Methods
Method: connection-data (CONDITION 9p-authorization-error)
Source

conditions.lisp (file)

Generic Function: delete@ SEQUENCE POSITION
Package

purgatory.misc-utils

Source

misc-utils.lisp (file)

Methods
Method: delete@ (SEQUENCE vector) POSITION
Method: delete@ (SEQUENCE list) POSITION
Generic Function: error-value CONDITION
Package

purgatory

Methods
Method: error-value (CONDITION 9p-error)
Source

conditions.lisp (file)

Generic Function: idx CONDITION
Package

purgatory.misc-utils

Methods
Method: idx (CONDITION out-of-bounds)
Source

misc-utils.lisp (file)

Generic Function: message-type CONDITION
Package

purgatory

Methods
Method: message-type (CONDITION 9p-error)
Source

conditions.lisp (file)

Generic Function: octects= A B
Package

purgatory

Source

client.lisp (file)

Methods
Method: octects= (A number) (B number)
Method: octects= (A number) (B octects)
Method: octects= (A octects) B
Generic Function: rtag CONDITION
Package

purgatory

Methods
Method: rtag (CONDITION 9p-initialization-error)
Source

conditions.lisp (file)

Generic Function: safe-delete@ SEQUENCE POSITION

Return sequence if position is out of bound

Package

purgatory.misc-utils

Source

misc-utils.lisp (file)

Methods
Method: safe-delete@ (SEQUENCE sequence) POSITION
Generic Function: seq CONDITION
Package

purgatory.misc-utils

Methods
Method: seq (CONDITION out-of-bounds)
Source

misc-utils.lisp (file)

Generic Function: size OBJECT
Generic Function: (setf size) NEW-VALUE OBJECT
Package

purgatory

Methods
Method: size (OCTECTS octects)

automatically generated reader method

Source

client.lisp (file)

Method: (setf size) NEW-VALUE (OCTECTS octects)

automatically generated writer method

Source

client.lisp (file)

Generic Function: tag CONDITION
Package

purgatory

Methods
Method: tag (CONDITION 9p-initialization-error)
Source

conditions.lisp (file)

Method: tag (CONDITION 9p-error)
Source

conditions.lisp (file)

Generic Function: text CONDITION
Package

purgatory.misc-utils

Methods
Method: text (CONDITION text-error)
Source

misc-utils.lisp (file)

Generic Function: value OBJECT
Generic Function: (setf value) NEW-VALUE OBJECT
Package

purgatory

Methods
Method: value (OCTECTS octects)

automatically generated reader method

Source

client.lisp (file)

Method: (setf value) NEW-VALUE (OCTECTS octects)

automatically generated writer method

Source

client.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.6 Conditions

Condition: 9p-authorization-error ()

Error for 9p protocol in the authorization phase.

Package

purgatory

Source

conditions.lisp (file)

Direct superclasses

error (condition)

Direct methods

connection-data (method)

Direct slots
Slot: connection-string
Initargs

:connection-data

Readers

connection-data (generic function)

Condition: 9p-initialization-error ()

Error for 9p protocol in the initialization phase.

Package

purgatory

Source

conditions.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: tag
Initargs

:tag

Readers

tag (generic function)

Slot: rtag
Initargs

:rtag

Readers

rtag (generic function)

Condition: out-of-bounds ()

Error when you go out of bound

Package

purgatory.misc-utils

Source

misc-utils.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: seq
Initargs

:seq

Readers

seq (generic function)

Slot: idx
Initargs

:idx

Readers

idx (generic function)

Condition: text-error ()

Error that set text

Package

purgatory.misc-utils

Source

misc-utils.lisp (file)

Direct superclasses

error (condition)

Direct methods

text (method)

Direct slots
Slot: text
Initargs

:text

Readers

text (generic function)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.7 Structures

Structure: permissions ()
Package

purgatory

Source

client.lisp (file)

Direct superclasses

structure-object (structure)

Direct methods

encode (method)

Direct slots
Slot: user
Readers

permissions-user (function)

Writers

(setf permissions-user) (function)

Slot: group
Readers

permissions-group (function)

Writers

(setf permissions-group) (function)

Slot: others
Readers

permissions-others (function)

Writers

(setf permissions-others) (function)

Slot: user-string
Readers

permissions-user-string (function)

Writers

(setf permissions-user-string) (function)

Slot: group-string
Readers

permissions-group-string (function)

Writers

(setf permissions-group-string) (function)

Slot: others-string
Readers

permissions-others-string (function)

Writers

(setf permissions-others-string) (function)

Slot: original-value
Initform

purgatory::+wstat-ignore-4+

Readers

permissions-original-value (function)

Writers

(setf permissions-original-value) (function)

Structure: stat ()
Package

purgatory

Source

client.lisp (file)

Direct superclasses

structure-object (structure)

Direct methods
Direct slots
Slot: entry-size
Initform

purgatory::+wstat-ignore-2+

Readers

stat-entry-size (function)

Writers

(setf stat-entry-size) (function)

Slot: ktype
Initform

purgatory::+wstat-ignore-2+

Readers

stat-ktype (function)

Writers

(setf stat-ktype) (function)

Slot: kdev
Initform

purgatory::+wstat-ignore-4+

Readers

stat-kdev (function)

Writers

(setf stat-kdev) (function)

Slot: entry-type
Initform

:do-not-care

Readers

stat-entry-type (function)

Writers

(setf stat-entry-type) (function)

Slot: version
Initform

purgatory::+wstat-ignore-4+

Readers

stat-version (function)

Writers

(setf stat-version) (function)

Slot: path
Initform

purgatory::+wstat-ignore-8+

Readers

stat-path (function)

Writers

(setf stat-path) (function)

Slot: mode
Initform

(purgatory:make-permissions)

Readers

stat-mode (function)

Writers

(setf stat-mode) (function)

Slot: atime
Initform

purgatory::+wstat-ignore-4+

Readers

stat-atime (function)

Writers

(setf stat-atime) (function)

Slot: mtime
Initform

purgatory::+wstat-ignore-4+

Readers

stat-mtime (function)

Writers

(setf stat-mtime) (function)

Slot: size
Initform

purgatory::+wstat-ignore-8+

Readers

stat-size (function)

Writers

(setf stat-size) (function)

Slot: name
Initform

""

Readers

stat-name (function)

Writers

(setf stat-name) (function)

Slot: user-id
Initform

""

Readers

stat-user-id (function)

Writers

(setf stat-user-id) (function)

Slot: group-id
Initform

""

Readers

stat-group-id (function)

Writers

(setf stat-group-id) (function)

Slot: last-modified-from-id
Initform

""

Readers

stat-last-modified-from-id (function)

Writers

(setf stat-last-modified-from-id) (function)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.8 Classes

Class: octects ()
Package

purgatory

Source

client.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: value
Initargs

:value

Initform

0

Readers

value (generic function)

Writers

(setf value) (generic function)

Slot: size
Initargs

:size

Initform

0

Readers

size (generic function)

Writers

(setf size) (generic function)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   L   P  
Index Entry  Section

F
File, Lisp, purgatory.asd: The purgatory․asd file
File, Lisp, purgatory/client.lisp: The purgatory/client․lisp file
File, Lisp, purgatory/conditions.lisp: The purgatory/conditions․lisp file
File, Lisp, purgatory/filesystem-utils.lisp: The purgatory/filesystem-utils․lisp file
File, Lisp, purgatory/message-types.lisp: The purgatory/message-types․lisp file
File, Lisp, purgatory/misc-utils.lisp: The purgatory/misc-utils․lisp file
File, Lisp, purgatory/package.lisp: The purgatory/package․lisp file
File, Lisp, purgatory/text-utils.lisp: The purgatory/text-utils․lisp file

L
Lisp File, purgatory.asd: The purgatory․asd file
Lisp File, purgatory/client.lisp: The purgatory/client․lisp file
Lisp File, purgatory/conditions.lisp: The purgatory/conditions․lisp file
Lisp File, purgatory/filesystem-utils.lisp: The purgatory/filesystem-utils․lisp file
Lisp File, purgatory/message-types.lisp: The purgatory/message-types․lisp file
Lisp File, purgatory/misc-utils.lisp: The purgatory/misc-utils․lisp file
Lisp File, purgatory/package.lisp: The purgatory/package․lisp file
Lisp File, purgatory/text-utils.lisp: The purgatory/text-utils․lisp file

P
purgatory.asd: The purgatory․asd file
purgatory/client.lisp: The purgatory/client․lisp file
purgatory/conditions.lisp: The purgatory/conditions․lisp file
purgatory/filesystem-utils.lisp: The purgatory/filesystem-utils․lisp file
purgatory/message-types.lisp: The purgatory/message-types․lisp file
purgatory/misc-utils.lisp: The purgatory/misc-utils․lisp file
purgatory/package.lisp: The purgatory/package․lisp file
purgatory/text-utils.lisp: The purgatory/text-utils․lisp file

Jump to:   F   L   P  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (   9  
A   B   C   D   E   F   G   I   L   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

%
%9p-walk-self: Internal functions

(
(setf permissions-group): Exported functions
(setf permissions-group-string): Exported functions
(setf permissions-original-value): Exported functions
(setf permissions-others): Exported functions
(setf permissions-others-string): Exported functions
(setf permissions-user): Exported functions
(setf permissions-user-string): Exported functions
(setf size): Internal generic functions
(setf size): Internal generic functions
(setf stat-atime): Exported functions
(setf stat-entry-size): Exported functions
(setf stat-entry-type): Exported functions
(setf stat-group-id): Exported functions
(setf stat-kdev): Exported functions
(setf stat-ktype): Exported functions
(setf stat-last-modified-from-id): Exported functions
(setf stat-mode): Exported functions
(setf stat-mtime): Exported functions
(setf stat-name): Exported functions
(setf stat-path): Exported functions
(setf stat-size): Exported functions
(setf stat-user-id): Exported functions
(setf stat-version): Exported functions
(setf value): Internal generic functions
(setf value): Internal generic functions

9
9p-attach: Exported generic functions
9p-attach: Exported generic functions
9p-auth: Exported functions
9p-clunk: Exported functions
9p-create: Exported functions
9p-open: Exported functions
9p-read: Exported functions
9p-remove: Exported functions
9p-stat: Exported functions
9p-walk: Exported functions
9p-write: Exported generic functions
9p-write: Exported generic functions
9p-write: Exported generic functions
9p-wstat: Internal generic functions
9p-wstat: Internal generic functions
9p-wstat: Internal generic functions

A
add-size: Internal functions
append-tag-callback: Internal functions

B
backreference-dir-p: Exported functions
big-endian->little-endian: Internal functions
bytes->int: Internal functions

C
cat-parent-dir: Exported functions
cat-reply-vector: Internal functions
change-access-time: Exported functions
change-mode: Exported functions
change-modify-time: Exported functions
change-permissions: Exported functions
change-time: Internal functions
change-time-values: Exported functions
clone-fid: Exported functions
close-client: Exported functions
close-ssl-socket: Internal functions
collect-directory-children: Exported functions
collect-tree: Exported functions
compose-message: Internal functions
connection-data: Internal generic functions
connection-data: Internal generic functions
copy-file: Exported functions
copy-permissions: Internal functions
copy-stat: Internal functions
create-directory: Exported functions
create-path: Exported functions

D
decode: Exported generic functions
decode-permissions: Internal functions
decode-quid: Internal functions
decode-read-reply: Exported functions
decode-rstat: Exported functions
decode-string: Exported generic functions
decode-string: Exported generic functions
defcond: Internal macros
delete@: Internal generic functions
delete@: Internal generic functions
delete@: Internal generic functions
displace-response: Internal functions
dummy-callback: Exported functions
dump-callback: Exported functions

E
encode: Exported generic functions
encode: Exported generic functions
encode: Exported generic functions
encode: Exported generic functions
encode: Exported generic functions
encode: Exported generic functions
encode: Exported generic functions
encode-permissions: Internal functions
encode-string: Exported functions
encoded-string-offset: Internal functions
error-response-p: Internal functions
error-value: Internal generic functions
error-value: Internal generic functions
exhausted-stream-for-read-p: Internal functions

F
file-type-number->symbol: Internal functions
fire-response: Internal functions
Function, %9p-walk-self: Internal functions
Function, (setf permissions-group): Exported functions
Function, (setf permissions-group-string): Exported functions
Function, (setf permissions-original-value): Exported functions
Function, (setf permissions-others): Exported functions
Function, (setf permissions-others-string): Exported functions
Function, (setf permissions-user): Exported functions
Function, (setf permissions-user-string): Exported functions
Function, (setf stat-atime): Exported functions
Function, (setf stat-entry-size): Exported functions
Function, (setf stat-entry-type): Exported functions
Function, (setf stat-group-id): Exported functions
Function, (setf stat-kdev): Exported functions
Function, (setf stat-ktype): Exported functions
Function, (setf stat-last-modified-from-id): Exported functions
Function, (setf stat-mode): Exported functions
Function, (setf stat-mtime): Exported functions
Function, (setf stat-name): Exported functions
Function, (setf stat-path): Exported functions
Function, (setf stat-size): Exported functions
Function, (setf stat-user-id): Exported functions
Function, (setf stat-version): Exported functions
Function, 9p-auth: Exported functions
Function, 9p-clunk: Exported functions
Function, 9p-create: Exported functions
Function, 9p-open: Exported functions
Function, 9p-read: Exported functions
Function, 9p-remove: Exported functions
Function, 9p-stat: Exported functions
Function, 9p-walk: Exported functions
Function, add-size: Internal functions
Function, append-tag-callback: Internal functions
Function, backreference-dir-p: Exported functions
Function, big-endian->little-endian: Internal functions
Function, bytes->int: Internal functions
Function, cat-parent-dir: Exported functions
Function, cat-reply-vector: Internal functions
Function, change-access-time: Exported functions
Function, change-mode: Exported functions
Function, change-modify-time: Exported functions
Function, change-permissions: Exported functions
Function, change-time: Internal functions
Function, change-time-values: Exported functions
Function, clone-fid: Exported functions
Function, close-client: Exported functions
Function, close-ssl-socket: Internal functions
Function, collect-directory-children: Exported functions
Function, collect-tree: Exported functions
Function, compose-message: Internal functions
Function, copy-file: Exported functions
Function, copy-permissions: Internal functions
Function, copy-stat: Internal functions
Function, create-directory: Exported functions
Function, create-path: Exported functions
Function, decode-permissions: Internal functions
Function, decode-quid: Internal functions
Function, decode-read-reply: Exported functions
Function, decode-rstat: Exported functions
Function, displace-response: Internal functions
Function, dummy-callback: Exported functions
Function, dump-callback: Exported functions
Function, encode-permissions: Internal functions
Function, encode-string: Exported functions
Function, encoded-string-offset: Internal functions
Function, error-response-p: Internal functions
Function, exhausted-stream-for-read-p: Internal functions
Function, file-type-number->symbol: Internal functions
Function, fire-response: Internal functions
Function, getenv: Exported functions
Function, ignore-response: Internal functions
Function, initialize-session: Exported functions
Function, int16->bytes: Internal functions
Function, int32->bytes: Internal functions
Function, int416->bytes: Internal functions
Function, int512->bytes: Internal functions
Function, int64->bytes: Internal functions
Function, int8->bytes: Internal functions
Function, loopback-reference-dir-p: Exported functions
Function, make-message-buffer: Internal functions
Function, make-octects: Internal functions
Function, make-octects-permissions: Internal functions
Function, make-permissions: Exported functions
Function, make-stat: Exported functions
Function, maximum-read-buffer-size: Internal functions
Function, mount: Exported functions
Function, move-file: Exported functions
Function, next-fid: Internal functions
Function, next-tag: Internal functions
Function, open-directory: Exported functions
Function, open-path: Exported functions
Function, parent-dir-path: Exported functions
Function, path-exists-p: Exported functions
Function, path-info: Exported functions
Function, path-last-element: Exported functions
Function, path-referencing-dir-p: Exported functions
Function, permissions->list: Internal functions
Function, permissions->string: Internal functions
Function, permissions-group: Exported functions
Function, permissions-group-string: Exported functions
Function, permissions-original-value: Exported functions
Function, permissions-others: Exported functions
Function, permissions-others-string: Exported functions
Function, permissions-p: Internal functions
Function, permissions-user: Exported functions
Function, permissions-user-string: Exported functions
Function, read-all-pending-messages: Exported functions
Function, read-all-pending-messages-ignoring-errors: Exported functions
Function, read-directory: Exported functions
Function, read-entire-file-apply-function: Exported functions
Function, read-message: Exported functions
Function, remove-path: Exported functions
Function, safe-all-but-last-elt: Exported functions
Function, send-message: Internal functions
Function, send-version: Internal functions
Function, slurp-file: Exported functions
Function, sort-dir-stats: Exported functions
Function, split-path-elements: Exported functions
Function, stat-atime: Exported functions
Function, stat-entry-size: Exported functions
Function, stat-entry-type: Exported functions
Function, stat-group-id: Exported functions
Function, stat-kdev: Exported functions
Function, stat-ktype: Exported functions
Function, stat-last-modified-from-id: Exported functions
Function, stat-mode: Exported functions
Function, stat-mtime: Exported functions
Function, stat-name: Exported functions
Function, stat-p: Internal functions
Function, stat-path: Exported functions
Function, stat-size: Exported functions
Function, stat-user-id: Exported functions
Function, stat-version: Exported functions
Function, strcat: Exported functions
Function, strcat*: Internal functions
Function, symbol->file-type-number: Internal functions
Function, tags-exists-p-clsr: Internal functions
Function, truncate-file: Exported functions
Function, universal->unix: Internal functions
Function, unix->universal: Internal functions
Function, vcat: Internal functions

G
gen-delete@: Internal macros
gen-intn->bytes: Internal macros
Generic Function, (setf size): Internal generic functions
Generic Function, (setf value): Internal generic functions
Generic Function, 9p-attach: Exported generic functions
Generic Function, 9p-write: Exported generic functions
Generic Function, 9p-wstat: Internal generic functions
Generic Function, connection-data: Internal generic functions
Generic Function, decode: Exported generic functions
Generic Function, decode-string: Exported generic functions
Generic Function, delete@: Internal generic functions
Generic Function, encode: Exported generic functions
Generic Function, error-value: Internal generic functions
Generic Function, idx: Internal generic functions
Generic Function, message-type: Internal generic functions
Generic Function, octects=: Internal generic functions
Generic Function, rtag: Internal generic functions
Generic Function, safe-delete@: Internal generic functions
Generic Function, seq: Internal generic functions
Generic Function, size: Internal generic functions
Generic Function, tag: Internal generic functions
Generic Function, text: Internal generic functions
Generic Function, value: Internal generic functions
getenv: Exported functions

I
idx: Internal generic functions
idx: Internal generic functions
ignore-response: Internal functions
initialize-session: Exported functions
int16->bytes: Internal functions
int32->bytes: Internal functions
int416->bytes: Internal functions
int512->bytes: Internal functions
int64->bytes: Internal functions
int8->bytes: Internal functions

L
loopback-reference-dir-p: Exported functions

M
Macro, defcond: Internal macros
Macro, gen-delete@: Internal macros
Macro, gen-intn->bytes: Internal macros
Macro, with-callback-read-all: Internal macros
Macro, with-new-fid: Exported macros
Macro, with-new-tag: Exported macros
make-message-buffer: Internal functions
make-octects: Internal functions
make-octects-permissions: Internal functions
make-permissions: Exported functions
make-stat: Exported functions
maximum-read-buffer-size: Internal functions
message-type: Internal generic functions
message-type: Internal generic functions
Method, (setf size): Internal generic functions
Method, (setf value): Internal generic functions
Method, 9p-attach: Exported generic functions
Method, 9p-write: Exported generic functions
Method, 9p-write: Exported generic functions
Method, 9p-wstat: Internal generic functions
Method, 9p-wstat: Internal generic functions
Method, connection-data: Internal generic functions
Method, decode-string: Exported generic functions
Method, delete@: Internal generic functions
Method, delete@: Internal generic functions
Method, encode: Exported generic functions
Method, encode: Exported generic functions
Method, encode: Exported generic functions
Method, encode: Exported generic functions
Method, encode: Exported generic functions
Method, encode: Exported generic functions
Method, error-value: Internal generic functions
Method, idx: Internal generic functions
Method, message-type: Internal generic functions
Method, octects=: Internal generic functions
Method, octects=: Internal generic functions
Method, octects=: Internal generic functions
Method, rtag: Internal generic functions
Method, safe-delete@: Internal generic functions
Method, seq: Internal generic functions
Method, size: Internal generic functions
Method, tag: Internal generic functions
Method, tag: Internal generic functions
Method, text: Internal generic functions
Method, value: Internal generic functions
mount: Exported functions
move-file: Exported functions

N
next-fid: Internal functions
next-tag: Internal functions

O
octects=: Internal generic functions
octects=: Internal generic functions
octects=: Internal generic functions
octects=: Internal generic functions
open-directory: Exported functions
open-path: Exported functions

P
parent-dir-path: Exported functions
path-exists-p: Exported functions
path-info: Exported functions
path-last-element: Exported functions
path-referencing-dir-p: Exported functions
permissions->list: Internal functions
permissions->string: Internal functions
permissions-group: Exported functions
permissions-group-string: Exported functions
permissions-original-value: Exported functions
permissions-others: Exported functions
permissions-others-string: Exported functions
permissions-p: Internal functions
permissions-user: Exported functions
permissions-user-string: Exported functions

R
read-all-pending-messages: Exported functions
read-all-pending-messages-ignoring-errors: Exported functions
read-directory: Exported functions
read-entire-file-apply-function: Exported functions
read-message: Exported functions
remove-path: Exported functions
rtag: Internal generic functions
rtag: Internal generic functions

S
safe-all-but-last-elt: Exported functions
safe-delete@: Internal generic functions
safe-delete@: Internal generic functions
send-message: Internal functions
send-version: Internal functions
seq: Internal generic functions
seq: Internal generic functions
size: Internal generic functions
size: Internal generic functions
slurp-file: Exported functions
sort-dir-stats: Exported functions
split-path-elements: Exported functions
stat-atime: Exported functions
stat-entry-size: Exported functions
stat-entry-type: Exported functions
stat-group-id: Exported functions
stat-kdev: Exported functions
stat-ktype: Exported functions
stat-last-modified-from-id: Exported functions
stat-mode: Exported functions
stat-mtime: Exported functions
stat-name: Exported functions
stat-p: Internal functions
stat-path: Exported functions
stat-size: Exported functions
stat-user-id: Exported functions
stat-version: Exported functions
strcat: Exported functions
strcat*: Internal functions
symbol->file-type-number: Internal functions

T
tag: Internal generic functions
tag: Internal generic functions
tag: Internal generic functions
tags-exists-p-clsr: Internal functions
text: Internal generic functions
text: Internal generic functions
truncate-file: Exported functions

U
universal->unix: Internal functions
unix->universal: Internal functions

V
value: Internal generic functions
value: Internal generic functions
vcat: Internal functions

W
with-callback-read-all: Internal macros
with-new-fid: Exported macros
with-new-tag: Exported macros

Jump to:   %   (   9  
A   B   C   D   E   F   G   I   L   M   N   O   P   R   S   T   U   V   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
A   C   E   G   I   K   L   M   N   O   P   R   S   T   U   V  
Index Entry  Section

*
*buffer-size*: Exported special variables
*directory-sep*: Internal special variables
*directory-sep-regexp*: Exported special variables
*fid*: Internal special variables
*messages-sent*: Exported special variables
*rattach*: Internal special variables
*rauth*: Internal special variables
*rclunk*: Internal special variables
*rcreate*: Internal special variables
*rerror*: Internal special variables
*rflush*: Internal special variables
*ropen*: Internal special variables
*rread*: Internal special variables
*rremove*: Internal special variables
*rstat*: Internal special variables
*rversion*: Internal special variables
*rwalk*: Internal special variables
*rwrite*: Internal special variables
*rwstat*: Internal special variables
*tag*: Internal special variables
*tattach*: Internal special variables
*tauth*: Internal special variables
*tclunk*: Internal special variables
*tcreate*: Internal special variables
*terror*: Internal special variables
*tflush*: Internal special variables
*topen*: Internal special variables
*tread*: Internal special variables
*tremove*: Internal special variables
*tstat*: Internal special variables
*tversion*: Internal special variables
*twalk*: Internal special variables
*twrite*: Internal special variables
*twstat*: Internal special variables
*unix-epoch-difference*: Internal special variables

+
+9p-read-header-fixed-size+: Internal constants
+9p-write-header-fixed-size+: Internal constants
+byte-type+: Exported constants
+create-dir+: Exported constants
+create-for-exec+: Exported constants
+create-for-read+: Exported constants
+create-for-read-write+: Exported constants
+create-for-write+: Exported constants
+file-path-regex+: Internal constants
+file-types+: Internal constants
+message-length-size+: Internal constants
+message-string-length-size+: Internal constants
+message-tag-size+: Internal constants
+message-type-size+: Internal constants
+nofid+: Exported constants
+nwname-clone+: Exported constants
+open-remove-on-clunk+: Exported constants
+open-truncate+: Exported constants
+standard-socket-port+: Exported constants
+stat-type-append+: Internal constants
+stat-type-auth+: Internal constants
+stat-type-dir+: Internal constants
+stat-type-excl+: Internal constants
+stat-type-exec+: Internal constants
+stat-type-file+: Internal constants
+stat-type-mount+: Internal constants
+stat-type-read+: Internal constants
+stat-type-symlink+: Internal constants
+stat-type-tmp+: Internal constants
+stat-type-write+: Internal constants
+version+: Exported constants
+wstat-ignore-1+: Internal constants
+wstat-ignore-2+: Internal constants
+wstat-ignore-4+: Internal constants
+wstat-ignore-8+: Internal constants

A
atime: Internal structures

C
connection-string: Internal conditions
Constant, +9p-read-header-fixed-size+: Internal constants
Constant, +9p-write-header-fixed-size+: Internal constants
Constant, +byte-type+: Exported constants
Constant, +create-dir+: Exported constants
Constant, +create-for-exec+: Exported constants
Constant, +create-for-read+: Exported constants
Constant, +create-for-read-write+: Exported constants
Constant, +create-for-write+: Exported constants
Constant, +file-path-regex+: Internal constants
Constant, +file-types+: Internal constants
Constant, +message-length-size+: Internal constants
Constant, +message-string-length-size+: Internal constants
Constant, +message-tag-size+: Internal constants
Constant, +message-type-size+: Internal constants
Constant, +nofid+: Exported constants
Constant, +nwname-clone+: Exported constants
Constant, +open-remove-on-clunk+: Exported constants
Constant, +open-truncate+: Exported constants
Constant, +standard-socket-port+: Exported constants
Constant, +stat-type-append+: Internal constants
Constant, +stat-type-auth+: Internal constants
Constant, +stat-type-dir+: Internal constants
Constant, +stat-type-excl+: Internal constants
Constant, +stat-type-exec+: Internal constants
Constant, +stat-type-file+: Internal constants
Constant, +stat-type-mount+: Internal constants
Constant, +stat-type-read+: Internal constants
Constant, +stat-type-symlink+: Internal constants
Constant, +stat-type-tmp+: Internal constants
Constant, +stat-type-write+: Internal constants
Constant, +version+: Exported constants
Constant, +wstat-ignore-1+: Internal constants
Constant, +wstat-ignore-2+: Internal constants
Constant, +wstat-ignore-4+: Internal constants
Constant, +wstat-ignore-8+: Internal constants

E
entry-size: Internal structures
entry-type: Internal structures
error-value: Exported conditions

G
group: Internal structures
group-id: Internal structures
group-string: Internal structures

I
idx: Internal conditions

K
kdev: Internal structures
ktype: Internal structures

L
last-modified-from-id: Internal structures

M
message-type: Exported conditions
mode: Internal structures
mtime: Internal structures

N
name: Internal structures

O
original-value: Internal structures
others: Internal structures
others-string: Internal structures

P
path: Internal structures

R
rtag: Internal conditions

S
seq: Internal conditions
size: Internal structures
size: Internal classes
Slot, atime: Internal structures
Slot, connection-string: Internal conditions
Slot, entry-size: Internal structures
Slot, entry-type: Internal structures
Slot, error-value: Exported conditions
Slot, group: Internal structures
Slot, group-id: Internal structures
Slot, group-string: Internal structures
Slot, idx: Internal conditions
Slot, kdev: Internal structures
Slot, ktype: Internal structures
Slot, last-modified-from-id: Internal structures
Slot, message-type: Exported conditions
Slot, mode: Internal structures
Slot, mtime: Internal structures
Slot, name: Internal structures
Slot, original-value: Internal structures
Slot, others: Internal structures
Slot, others-string: Internal structures
Slot, path: Internal structures
Slot, rtag: Internal conditions
Slot, seq: Internal conditions
Slot, size: Internal structures
Slot, size: Internal classes
Slot, tag: Exported conditions
Slot, tag: Internal conditions
Slot, text: Internal conditions
Slot, user: Internal structures
Slot, user-id: Internal structures
Slot, user-string: Internal structures
Slot, value: Internal classes
Slot, version: Internal structures
Special Variable, *buffer-size*: Exported special variables
Special Variable, *directory-sep*: Internal special variables
Special Variable, *directory-sep-regexp*: Exported special variables
Special Variable, *fid*: Internal special variables
Special Variable, *messages-sent*: Exported special variables
Special Variable, *rattach*: Internal special variables
Special Variable, *rauth*: Internal special variables
Special Variable, *rclunk*: Internal special variables
Special Variable, *rcreate*: Internal special variables
Special Variable, *rerror*: Internal special variables
Special Variable, *rflush*: Internal special variables
Special Variable, *ropen*: Internal special variables
Special Variable, *rread*: Internal special variables
Special Variable, *rremove*: Internal special variables
Special Variable, *rstat*: Internal special variables
Special Variable, *rversion*: Internal special variables
Special Variable, *rwalk*: Internal special variables
Special Variable, *rwrite*: Internal special variables
Special Variable, *rwstat*: Internal special variables
Special Variable, *tag*: Internal special variables
Special Variable, *tattach*: Internal special variables
Special Variable, *tauth*: Internal special variables
Special Variable, *tclunk*: Internal special variables
Special Variable, *tcreate*: Internal special variables
Special Variable, *terror*: Internal special variables
Special Variable, *tflush*: Internal special variables
Special Variable, *topen*: Internal special variables
Special Variable, *tread*: Internal special variables
Special Variable, *tremove*: Internal special variables
Special Variable, *tstat*: Internal special variables
Special Variable, *tversion*: Internal special variables
Special Variable, *twalk*: Internal special variables
Special Variable, *twrite*: Internal special variables
Special Variable, *twstat*: Internal special variables
Special Variable, *unix-epoch-difference*: Internal special variables

T
tag: Exported conditions
tag: Internal conditions
text: Internal conditions

U
user: Internal structures
user-id: Internal structures
user-string: Internal structures

V
value: Internal classes
version: Internal structures

Jump to:   *   +  
A   C   E   G   I   K   L   M   N   O   P   R   S   T   U   V  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   9  
C   O   P   S   T  
Index Entry  Section

9
9p-authorization-error: Internal conditions
9p-error: Exported conditions
9p-initialization-error: Internal conditions

C
Class, octects: Internal classes
Condition, 9p-authorization-error: Internal conditions
Condition, 9p-error: Exported conditions
Condition, 9p-initialization-error: Internal conditions
Condition, out-of-bounds: Internal conditions
Condition, text-error: Internal conditions

O
octects: Internal classes
out-of-bounds: Internal conditions

P
Package, purgatory: The purgatory package
Package, purgatory.filesystem-utils: The purgatory․filesystem-utils package
Package, purgatory.misc-utils: The purgatory․misc-utils package
Package, purgatory.text-utils: The purgatory․text-utils package
permissions: Internal structures
purgatory: The purgatory system
purgatory: The purgatory package
purgatory.filesystem-utils: The purgatory․filesystem-utils package
purgatory.misc-utils: The purgatory․misc-utils package
purgatory.text-utils: The purgatory․text-utils package

S
stat: Internal structures
Structure, permissions: Internal structures
Structure, stat: Internal structures
System, purgatory: The purgatory system

T
text-error: Internal conditions

Jump to:   9  
C   O   P   S   T