The purgatory Reference Manual

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

The purgatory Reference Manual

This is the purgatory Reference Manual, version 0.1.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 05:56:07 2022 GMT+0.

Table of Contents


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* '())
          (*fid*             1)
          (*tag*             8)
          (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!


2 Systems

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


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

2.1 purgatory

A simple implementation of the 9p filesystem protocol.

Maintainer

cage

Author

cage

Bug Tracker

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

License

LLGPL

Version

0.1.2

Dependencies
  • alexandria (system).
  • cl-ppcre (system).
  • usocket (system).
  • babel (system).
  • uiop (system).
Source

purgatory.asd.

Child Components

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   [Contents][Index]

3.1.1 purgatory/purgatory.asd

Source

purgatory.asd.

Parent Component

purgatory (system).

ASDF Systems

purgatory.


3.1.2 purgatory/package.lisp

Source

purgatory.asd.

Parent Component

purgatory (system).

Packages

3.1.3 purgatory/text-utils.lisp

Dependency

package.lisp (file).

Source

purgatory.asd.

Parent Component

purgatory (system).

Public Interface

strcat (function).

Internals

strcat* (function).


3.1.4 purgatory/misc-utils.lisp

Dependency

text-utils.lisp (file).

Source

purgatory.asd.

Parent Component

purgatory (system).

Public Interface

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

Internals

3.1.5 purgatory/filesystem-utils.lisp

Dependency

misc-utils.lisp (file).

Source

purgatory.asd.

Parent Component

purgatory (system).

Public Interface
Internals

3.1.6 purgatory/conditions.lisp

Dependency

filesystem-utils.lisp (file).

Source

purgatory.asd.

Parent Component

purgatory (system).

Public Interface

9p-error (condition).

Internals

3.1.7 purgatory/message-types.lisp

Dependency

conditions.lisp (file).

Source

purgatory.asd.

Parent Component

purgatory (system).

Internals

3.1.8 purgatory/client.lisp

Dependency

message-types.lisp (file).

Source

purgatory.asd.

Parent Component

purgatory (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


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

4.1 purgatory

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

4.2 purgatory.text-utils

Source

package.lisp.

Use List

common-lisp.

Public Interface

strcat (function).

Internals

strcat* (function).


4.3 purgatory.filesystem-utils

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

4.4 purgatory.misc-utils

Source

package.lisp.

Use List

common-lisp.

Public Interface

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

Internals

5 Definitions

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


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

5.1 Public Interface


5.1.1 Constants

Constant: +byte-type+
Package

purgatory.

Source

client.lisp.

Constant: +create-dir+
Package

purgatory.

Source

client.lisp.

Constant: +create-for-exec+
Package

purgatory.

Source

client.lisp.

Constant: +create-for-read+
Package

purgatory.

Source

client.lisp.

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

purgatory.

Source

client.lisp.

Constant: +create-for-write+
Package

purgatory.

Source

client.lisp.

Constant: +nofid+
Package

purgatory.

Source

client.lisp.

Constant: +nwname-clone+
Package

purgatory.

Source

client.lisp.

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

purgatory.

Source

client.lisp.

Constant: +open-truncate+
Package

purgatory.

Source

client.lisp.

Constant: +standard-socket-port+
Package

purgatory.

Source

client.lisp.

Constant: +version+
Package

purgatory.

Source

client.lisp.


Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.2 Special variables

Special Variable: *buffer-size*
Package

purgatory.

Source

client.lisp.

Special Variable: *directory-sep-regexp*
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Special Variable: *fid*
Package

purgatory.

Source

client.lisp.

Special Variable: *messages-sent*
Package

purgatory.

Source

client.lisp.

Special Variable: *tag*
Package

purgatory.

Source

client.lisp.


5.1.3 Macros

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

Useful convenience macro to generate a new fid

Package

purgatory.

Source

client.lisp.

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

purgatory.

Source

client.lisp.


5.1.4 Ordinary functions

Function: 9p-auth (stream authorization-fid username root &key callback)
Package

purgatory.

Source

client.lisp.

Function: 9p-clunk (stream fid &key callback)
Package

purgatory.

Source

client.lisp.

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.

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.

Function: 9p-read (stream fid offset chunk-length &key callback)
Package

purgatory.

Source

client.lisp.

Function: 9p-remove (stream fid &key callback)
Package

purgatory.

Source

client.lisp.

Function: 9p-stat (stream fid &key callback)
Package

purgatory.

Source

client.lisp.

Function: 9p-walk (stream root-fid new-fid new-name &key callback)
Package

purgatory.

Source

client.lisp.

Function: backreference-dir-p (path)
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Function: cat-parent-dir (parent direntry)
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Function: change-access-time (stream root-fid path time &key callback)
Package

purgatory.

Source

client.lisp.

Function: change-mode (stream root-fid path new-mode &key callback)
Package

purgatory.

Source

client.lisp.

Function: change-modify-time (stream root-fid path time &key callback)
Package

purgatory.

Source

client.lisp.

Function: change-permissions (stream root-fid path new-mode &key callback)
Package

purgatory.

Source

client.lisp.

Function: change-time-values (stream root-fid path new-access-time new-modification-time &key callback)
Package

purgatory.

Source

client.lisp.

Function: clone-fid (stream fid)

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

Package

purgatory.

Source

client.lisp.

Function: close-client (socket)
Package

purgatory.

Source

client.lisp.

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.

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.

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.

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.

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.

Function: decode-read-reply (data &optional as-string)
Package

purgatory.

Source

client.lisp.

Function: decode-rstat (data)

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

Package

purgatory.

Source

client.lisp.

Function: dummy-callback (message-type data)

A callback that does nothing

Package

purgatory.

Source

client.lisp.

Function: dump-callback (message-type data)

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

Package

purgatory.

Source

client.lisp.

Function: encode-string (string)
Package

purgatory.

Source

client.lisp.

Function: getenv (name)
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Function: initialize-session (stream)
Package

purgatory.

Source

client.lisp.

Function: loopback-reference-dir-p (path)
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Function: make-permissions (&key user group others user-string group-string others-string original-value)
Package

purgatory.

Source

client.lisp.

Function: make-stat (&key entry-size ktype kdev entry-type version path mode atime mtime size name user-id group-id last-modified-from-id)
Package

purgatory.

Source

client.lisp.

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.

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.

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.

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.

Function: parent-dir-path (path)
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Function: path-exists-p (stream root-fid path)

Returns non nil if ‘path’ exists.

Package

purgatory.

Source

client.lisp.

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.

Function: path-last-element (path)
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Function: path-referencing-dir-p (path)
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Reader: permissions-group (instance)
Writer: (setf permissions-group) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

group.

Reader: permissions-group-string (instance)
Writer: (setf permissions-group-string) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

group-string.

Reader: permissions-original-value (instance)
Writer: (setf permissions-original-value) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

original-value.

Reader: permissions-others (instance)
Writer: (setf permissions-others) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

others.

Reader: permissions-others-string (instance)
Writer: (setf permissions-others-string) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

others-string.

Reader: permissions-user (instance)
Writer: (setf permissions-user) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

user.

Reader: permissions-user-string (instance)
Writer: (setf permissions-user-string) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

user-string.

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.

Function: read-all-pending-messages-ignoring-errors (stream)

Read all the messages from the server and ignore any error

Package

purgatory.

Source

client.lisp.

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.

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.

Function: read-message (stream)
Package

purgatory.

Source

client.lisp.

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.

Function: safe-all-but-last-elt (sequence)
Package

purgatory.misc-utils.

Source

misc-utils.lisp.

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.

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.

Function: split-path-elements (path)
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Reader: stat-atime (instance)
Writer: (setf stat-atime) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

atime.

Reader: stat-entry-size (instance)
Writer: (setf stat-entry-size) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

entry-size.

Reader: stat-entry-type (instance)
Writer: (setf stat-entry-type) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

entry-type.

Reader: stat-group-id (instance)
Writer: (setf stat-group-id) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

group-id.

Reader: stat-kdev (instance)
Writer: (setf stat-kdev) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

kdev.

Reader: stat-ktype (instance)
Writer: (setf stat-ktype) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

ktype.

Reader: stat-last-modified-from-id (instance)
Writer: (setf stat-last-modified-from-id) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

last-modified-from-id.

Reader: stat-mode (instance)
Writer: (setf stat-mode) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

mode.

Reader: stat-mtime (instance)
Writer: (setf stat-mtime) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

mtime.

Reader: stat-name (instance)
Writer: (setf stat-name) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

name.

Reader: stat-path (instance)
Writer: (setf stat-path) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

path.

Reader: stat-size (instance)
Writer: (setf stat-size) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

size.

Reader: stat-user-id (instance)
Writer: (setf stat-user-id) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

user-id.

Reader: stat-version (instance)
Writer: (setf stat-version) (instance)
Package

purgatory.

Source

client.lisp.

Target Slot

version.

Function: strcat ()
Package

purgatory.text-utils.

Source

text-utils.lisp.

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.


5.1.5 Generic functions

Generic Function: 9p-attach (stream root &key username callback afid)
Package

purgatory.

Source

client.lisp.

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.

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.

Generic Function: decode-string (data)
Package

purgatory.

Methods
Method: decode-string (data)
Source

client.lisp.

Generic Function: encode (object)
Package

purgatory.

Source

client.lisp.

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


5.1.6 Conditions

Condition: 9p-error

Error for 9p protocol

Package

purgatory.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: error-value
Initargs

:error-value

Readers

error-value.

Writers

This slot is read-only.

Slot: message-type
Initargs

:message-type

Readers

message-type.

Writers

This slot is read-only.

Slot: tag
Initargs

:tag

Readers

tag.

Writers

This slot is read-only.


5.2 Internals


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

5.2.1 Constants

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

purgatory.

Source

client.lisp.

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

purgatory.

Source

client.lisp.

Constant: +file-path-regex+
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Constant: +file-types+
Package

purgatory.

Source

client.lisp.

Constant: +message-length-size+
Package

purgatory.

Source

client.lisp.

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

purgatory.

Source

client.lisp.

Constant: +message-tag-size+
Package

purgatory.

Source

client.lisp.

Constant: +message-type-size+
Package

purgatory.

Source

client.lisp.

Constant: +stat-type-append+

mode bit for append only files

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-auth+

mode bit for authentication file

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-dir+

mode bit for directories

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-excl+

mode bit for exclusive use files

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-exec+

mode bit for execute permission

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-file+

mode bit for non-backed-up files

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-mount+

mode bit for mounted channel

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-read+

mode bit for read permission

Package

purgatory.

Source

client.lisp.

mode bit for non-backed-up files

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-tmp+

mode bit for non-backed-up files

Package

purgatory.

Source

client.lisp.

Constant: +stat-type-write+

mode bit for write permission

Package

purgatory.

Source

client.lisp.

Constant: +wstat-ignore-1+
Package

purgatory.

Source

client.lisp.

Constant: +wstat-ignore-2+
Package

purgatory.

Source

client.lisp.

Constant: +wstat-ignore-4+
Package

purgatory.

Source

client.lisp.

Constant: +wstat-ignore-8+
Package

purgatory.

Source

client.lisp.


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

5.2.2 Special variables

Special Variable: *directory-sep*
Package

purgatory.filesystem-utils.

Source

filesystem-utils.lisp.

Special Variable: *rattach*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rauth*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rclunk*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rcreate*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rerror*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rflush*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *ropen*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rread*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rremove*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rstat*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rversion*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rwalk*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rwrite*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *rwstat*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tattach*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tauth*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tclunk*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tcreate*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *terror*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tflush*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *topen*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tread*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tremove*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tstat*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *tversion*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *twalk*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *twrite*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *twstat*
Package

purgatory.

Source

message-types.lisp.

Special Variable: *unix-epoch-difference*
Package

purgatory.

Source

client.lisp.


5.2.3 Macros

Macro: defcond (type)
Package

purgatory.misc-utils.

Source

misc-utils.lisp.

Macro: gen-delete@ ((sequence position) &body body)
Package

purgatory.misc-utils.

Source

misc-utils.lisp.

Macro: gen-intn->bytes (bits)
Package

purgatory.

Source

client.lisp.

Macro: with-callback-read-all ((recurse-function-name offset data-reply byte-count) &body body)
Package

purgatory.

Source

client.lisp.


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

5.2.4 Ordinary functions

Function: %9p-walk-self (stream root-fid new-fid &key callback)
Package

purgatory.

Source

client.lisp.

Function: add-size (msg)
Package

purgatory.

Source

client.lisp.

Function: append-tag-callback (tag function)
Package

purgatory.

Source

client.lisp.

Function: big-endian->little-endian (bytes)
Package

purgatory.

Source

client.lisp.

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.

Function: cat-reply-vector (a b)
Package

purgatory.

Source

client.lisp.

Function: change-time (stream root-fid path time slot-function-name &key callback)
Package

purgatory.

Source

client.lisp.

Function: close-ssl-socket (socket)
Package

purgatory.

Source

client.lisp.

Function: compose-message (message-type tag &rest params)
Package

purgatory.

Source

client.lisp.

Function: copy-permissions (instance)
Package

purgatory.

Source

client.lisp.

Function: copy-stat (instance)
Package

purgatory.

Source

client.lisp.

Function: decode-permissions (data)
Package

purgatory.

Source

client.lisp.

Function: decode-quid (data)
Package

purgatory.

Source

client.lisp.

Function: displace-response (response)
Package

purgatory.

Source

client.lisp.

Function: encode-permissions (permissions)
Package

purgatory.

Source

client.lisp.

Function: encoded-string-offset (decoded-string)
Package

purgatory.

Source

client.lisp.

Function: error-response-p (response)
Package

purgatory.

Source

client.lisp.

Function: exhausted-stream-for-read-p (count)
Package

purgatory.

Source

client.lisp.

Function: file-type-number->symbol (key)
Package

purgatory.

Source

client.lisp.

Function: fire-response (tag message-type data)
Package

purgatory.

Source

client.lisp.

Function: ignore-response (tag)
Package

purgatory.

Source

client.lisp.

Function: int16->bytes (val &optional count res)
Package

purgatory.

Source

client.lisp.

Function: int32->bytes (val &optional count res)
Package

purgatory.

Source

client.lisp.

Function: int416->bytes (val &optional count res)
Package

purgatory.

Source

client.lisp.

Function: int512->bytes (val &optional count res)
Package

purgatory.

Source

client.lisp.

Function: int64->bytes (val &optional count res)
Package

purgatory.

Source

client.lisp.

Function: int8->bytes (val &optional count res)
Package

purgatory.

Source

client.lisp.

Function: make-message-buffer (size)
Package

purgatory.

Source

client.lisp.

Function: make-octects (number size)
Package

purgatory.

Source

client.lisp.

Function: make-octects-permissions (mode)
Package

purgatory.

Source

client.lisp.

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

purgatory.

Source

client.lisp.

Function: next-fid ()

Generate a fresh fid

Package

purgatory.

Source

client.lisp.

Function: next-tag ()
Package

purgatory.

Source

client.lisp.

Function: permissions->list (permissions)
Package

purgatory.

Source

client.lisp.

Function: permissions->string (permissions)
Package

purgatory.

Source

client.lisp.

Function: permissions-p (object)
Package

purgatory.

Source

client.lisp.

Function: send-message (stream message)
Package

purgatory.

Source

client.lisp.

Function: send-version (stream tag)
Package

purgatory.

Source

client.lisp.

Function: stat-p (object)
Package

purgatory.

Source

client.lisp.

Function: strcat* ()
Package

purgatory.text-utils.

Source

text-utils.lisp.

Function: symbol->file-type-number (key)
Package

purgatory.

Source

client.lisp.

Function: tags-exists-p-clsr (tag-looking-for)
Package

purgatory.

Source

client.lisp.

Function: universal->unix (universal)
Package

purgatory.

Source

client.lisp.

Function: unix->universal (unix)
Package

purgatory.

Source

client.lisp.

Function: vcat (a b)
Package

purgatory.

Source

client.lisp.


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

5.2.5 Generic functions

Generic Function: 9p-wstat (stream fid stat &key callback)
Package

purgatory.

Source

client.lisp.

Methods
Method: 9p-wstat (stream fid (stat vector) &key callback)
Method: 9p-wstat (stream fid (stat stat) &key callback)
Generic Reader: connection-data (condition)
Package

purgatory.

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

conditions.lisp.

Target Slot

connection-string.

Generic Function: delete@ (sequence position)
Package

purgatory.misc-utils.

Source

misc-utils.lisp.

Methods
Method: delete@ ((sequence vector) position)
Method: delete@ ((sequence list) position)
Generic Reader: error-value (condition)
Package

purgatory.

Methods
Reader Method: error-value ((condition 9p-error))
Source

conditions.lisp.

Target Slot

error-value.

Generic Reader: idx (condition)
Package

purgatory.misc-utils.

Methods
Reader Method: idx ((condition out-of-bounds))
Source

misc-utils.lisp.

Target Slot

idx.

Generic Reader: message-type (condition)
Package

purgatory.

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

conditions.lisp.

Target Slot

message-type.

Generic Function: octects= (a b)
Package

purgatory.

Source

client.lisp.

Methods
Method: octects= ((a number) (b number))
Method: octects= ((a number) (b octects))
Method: octects= ((a octects) b)
Generic Reader: rtag (condition)
Package

purgatory.

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

conditions.lisp.

Target Slot

rtag.

Generic Function: safe-delete@ (sequence position)

Return sequence if position is out of bound

Package

purgatory.misc-utils.

Source

misc-utils.lisp.

Methods
Method: safe-delete@ ((sequence sequence) position)
Generic Reader: seq (condition)
Package

purgatory.misc-utils.

Methods
Reader Method: seq ((condition out-of-bounds))
Source

misc-utils.lisp.

Target Slot

seq.

Generic Reader: size (object)
Package

purgatory.

Methods
Reader Method: size ((octects octects))

automatically generated reader method

Source

client.lisp.

Target Slot

size.

Generic Writer: (setf size) (object)
Package

purgatory.

Methods
Writer Method: (setf size) ((octects octects))

automatically generated writer method

Source

client.lisp.

Target Slot

size.

Generic Reader: tag (condition)
Package

purgatory.

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

conditions.lisp.

Target Slot

tag.

Reader Method: tag ((condition 9p-error))
Source

conditions.lisp.

Target Slot

tag.

Generic Reader: text (condition)
Package

purgatory.misc-utils.

Methods
Reader Method: text ((condition text-error))
Source

misc-utils.lisp.

Target Slot

text.

Generic Reader: value (object)
Package

purgatory.

Methods
Reader Method: value ((octects octects))

automatically generated reader method

Source

client.lisp.

Target Slot

value.

Generic Writer: (setf value) (object)
Package

purgatory.

Methods
Writer Method: (setf value) ((octects octects))

automatically generated writer method

Source

client.lisp.

Target Slot

value.


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

5.2.6 Conditions

Condition: 9p-authorization-error

Error for 9p protocol in the authorization phase.

Package

purgatory.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

connection-data.

Direct slots
Slot: connection-string
Initargs

:connection-data

Readers

connection-data.

Writers

This slot is read-only.

Condition: 9p-initialization-error

Error for 9p protocol in the initialization phase.

Package

purgatory.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: tag
Initargs

:tag

Readers

tag.

Writers

This slot is read-only.

Slot: rtag
Initargs

:rtag

Readers

rtag.

Writers

This slot is read-only.

Condition: out-of-bounds

Error when you go out of bound

Package

purgatory.misc-utils.

Source

misc-utils.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: seq
Initargs

:seq

Readers

seq.

Writers

This slot is read-only.

Slot: idx
Initargs

:idx

Readers

idx.

Writers

This slot is read-only.

Condition: text-error

Error that set text

Package

purgatory.misc-utils.

Source

misc-utils.lisp.

Direct superclasses

error.

Direct methods

text.

Direct slots
Slot: text
Initargs

:text

Readers

text.

Writers

This slot is read-only.


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

5.2.7 Structures

Structure: permissions
Package

purgatory.

Source

client.lisp.

Direct superclasses

structure-object.

Direct methods

encode.

Direct slots
Slot: user
Readers

permissions-user.

Writers

(setf permissions-user).

Slot: group
Readers

permissions-group.

Writers

(setf permissions-group).

Slot: others
Readers

permissions-others.

Writers

(setf permissions-others).

Slot: user-string
Readers

permissions-user-string.

Writers

(setf permissions-user-string).

Slot: group-string
Readers

permissions-group-string.

Writers

(setf permissions-group-string).

Slot: others-string
Readers

permissions-others-string.

Writers

(setf permissions-others-string).

Slot: original-value
Initform

purgatory::+wstat-ignore-4+

Readers

permissions-original-value.

Writers

(setf permissions-original-value).

Structure: stat
Package

purgatory.

Source

client.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: entry-size
Initform

purgatory::+wstat-ignore-2+

Readers

stat-entry-size.

Writers

(setf stat-entry-size).

Slot: ktype
Initform

purgatory::+wstat-ignore-2+

Readers

stat-ktype.

Writers

(setf stat-ktype).

Slot: kdev
Initform

purgatory::+wstat-ignore-4+

Readers

stat-kdev.

Writers

(setf stat-kdev).

Slot: entry-type
Initform

:do-not-care

Readers

stat-entry-type.

Writers

(setf stat-entry-type).

Slot: version
Initform

purgatory::+wstat-ignore-4+

Readers

stat-version.

Writers

(setf stat-version).

Slot: path
Initform

purgatory::+wstat-ignore-8+

Readers

stat-path.

Writers

(setf stat-path).

Slot: mode
Initform

(purgatory:make-permissions)

Readers

stat-mode.

Writers

(setf stat-mode).

Slot: atime
Initform

purgatory::+wstat-ignore-4+

Readers

stat-atime.

Writers

(setf stat-atime).

Slot: mtime
Initform

purgatory::+wstat-ignore-4+

Readers

stat-mtime.

Writers

(setf stat-mtime).

Slot: size
Initform

purgatory::+wstat-ignore-8+

Readers

stat-size.

Writers

(setf stat-size).

Slot: name
Initform

""

Readers

stat-name.

Writers

(setf stat-name).

Slot: user-id
Initform

""

Readers

stat-user-id.

Writers

(setf stat-user-id).

Slot: group-id
Initform

""

Readers

stat-group-id.

Writers

(setf stat-group-id).

Slot: last-modified-from-id
Initform

""

Readers

stat-last-modified-from-id.

Writers

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


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

5.2.8 Classes

Class: octects
Package

purgatory.

Source

client.lisp.

Direct methods
Direct slots
Slot: value
Initform

0

Initargs

:value

Readers

value.

Writers

(setf value).

Slot: size
Initform

0

Initargs

:size

Readers

size.

Writers

(setf size).


Appendix A Indexes


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

A.1 Concepts


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: Private ordinary functions

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

9
9p-attach: Public generic functions
9p-attach: Public generic functions
9p-auth: Public ordinary functions
9p-clunk: Public ordinary functions
9p-create: Public ordinary functions
9p-open: Public ordinary functions
9p-read: Public ordinary functions
9p-remove: Public ordinary functions
9p-stat: Public ordinary functions
9p-walk: Public ordinary functions
9p-write: Public generic functions
9p-write: Public generic functions
9p-write: Public generic functions
9p-wstat: Private generic functions
9p-wstat: Private generic functions
9p-wstat: Private generic functions

A
add-size: Private ordinary functions
append-tag-callback: Private ordinary functions

B
backreference-dir-p: Public ordinary functions
big-endian->little-endian: Private ordinary functions
bytes->int: Private ordinary functions

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

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

E
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode: Public generic functions
encode-permissions: Private ordinary functions
encode-string: Public ordinary functions
encoded-string-offset: Private ordinary functions
error-response-p: Private ordinary functions
error-value: Private generic functions
error-value: Private generic functions
exhausted-stream-for-read-p: Private ordinary functions

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

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

I
idx: Private generic functions
idx: Private generic functions
ignore-response: Private ordinary functions
initialize-session: Public ordinary functions
int16->bytes: Private ordinary functions
int32->bytes: Private ordinary functions
int416->bytes: Private ordinary functions
int512->bytes: Private ordinary functions
int64->bytes: Private ordinary functions
int8->bytes: Private ordinary functions

L
loopback-reference-dir-p: Public ordinary functions

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

N
next-fid: Private ordinary functions
next-tag: Private ordinary functions

O
octects=: Private generic functions
octects=: Private generic functions
octects=: Private generic functions
octects=: Private generic functions
open-directory: Public ordinary functions
open-path: Public ordinary functions

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

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

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

T
tag: Private generic functions
tag: Private generic functions
tag: Private generic functions
tags-exists-p-clsr: Private ordinary functions
text: Private generic functions
text: Private generic functions
truncate-file: Public ordinary functions

U
universal->unix: Private ordinary functions
unix->universal: Private ordinary functions

V
value: Private generic functions
value: Private generic functions
vcat: Private ordinary functions

W
with-callback-read-all: Private macros
with-new-fid: Public macros
with-new-tag: Public 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*: Public special variables
*directory-sep*: Private special variables
*directory-sep-regexp*: Public special variables
*fid*: Public special variables
*messages-sent*: Public special variables
*rattach*: Private special variables
*rauth*: Private special variables
*rclunk*: Private special variables
*rcreate*: Private special variables
*rerror*: Private special variables
*rflush*: Private special variables
*ropen*: Private special variables
*rread*: Private special variables
*rremove*: Private special variables
*rstat*: Private special variables
*rversion*: Private special variables
*rwalk*: Private special variables
*rwrite*: Private special variables
*rwstat*: Private special variables
*tag*: Public special variables
*tattach*: Private special variables
*tauth*: Private special variables
*tclunk*: Private special variables
*tcreate*: Private special variables
*terror*: Private special variables
*tflush*: Private special variables
*topen*: Private special variables
*tread*: Private special variables
*tremove*: Private special variables
*tstat*: Private special variables
*tversion*: Private special variables
*twalk*: Private special variables
*twrite*: Private special variables
*twstat*: Private special variables
*unix-epoch-difference*: Private special variables

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

A
atime: Private structures

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

E
entry-size: Private structures
entry-type: Private structures
error-value: Public conditions

G
group: Private structures
group-id: Private structures
group-string: Private structures

I
idx: Private conditions

K
kdev: Private structures
ktype: Private structures

L
last-modified-from-id: Private structures

M
message-type: Public conditions
mode: Private structures
mtime: Private structures

N
name: Private structures

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

P
path: Private structures

R
rtag: Private conditions

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

T
tag: Public conditions
tag: Private conditions
text: Private conditions

U
user: Private structures
user-id: Private structures
user-string: Private structures

V
value: Private classes
version: Private 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   F   M   O   P   S   T  
Index Entry  Section

9
9p-authorization-error: Private conditions
9p-error: Public conditions
9p-initialization-error: Private conditions

C
Class, octects: Private classes
client.lisp: The purgatory/client․lisp file
Condition, 9p-authorization-error: Private conditions
Condition, 9p-error: Public conditions
Condition, 9p-initialization-error: Private conditions
Condition, out-of-bounds: Private conditions
Condition, text-error: Private conditions
conditions.lisp: The purgatory/conditions․lisp file

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

M
message-types.lisp: The purgatory/message-types․lisp file
misc-utils.lisp: The purgatory/misc-utils․lisp file

O
octects: Private classes
out-of-bounds: Private 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
package.lisp: The purgatory/package․lisp file
permissions: Private structures
purgatory: The purgatory system
purgatory: The purgatory package
purgatory.asd: The purgatory/purgatory․asd file
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: Private structures
Structure, permissions: Private structures
Structure, stat: Private structures
System, purgatory: The purgatory system

T
text-error: Private conditions
text-utils.lisp: The purgatory/text-utils․lisp file

Jump to:   9  
C   F   M   O   P   S   T