| 1 | \chapter{Amoeba Specific Services}
|
|---|
| 2 |
|
|---|
| 3 | \section{\module{amoeba} ---
|
|---|
| 4 | Amoeba system support}
|
|---|
| 5 |
|
|---|
| 6 | \declaremodule{builtin}{amoeba}
|
|---|
| 7 | \platform{Amoeba}
|
|---|
| 8 | \modulesynopsis{Functions for the Amoeba operating system.}
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 | This module provides some object types and operations useful for
|
|---|
| 12 | Amoeba applications. It is only available on systems that support
|
|---|
| 13 | Amoeba operations. RPC errors and other Amoeba errors are reported as
|
|---|
| 14 | the exception \code{amoeba.error = 'amoeba.error'}.
|
|---|
| 15 |
|
|---|
| 16 | The module \module{amoeba} defines the following items:
|
|---|
| 17 |
|
|---|
| 18 | \begin{funcdesc}{name_append}{path, cap}
|
|---|
| 19 | Stores a capability in the Amoeba directory tree.
|
|---|
| 20 | Arguments are the pathname (a string) and the capability (a capability
|
|---|
| 21 | object as returned by
|
|---|
| 22 | \function{name_lookup()}).
|
|---|
| 23 | \end{funcdesc}
|
|---|
| 24 |
|
|---|
| 25 | \begin{funcdesc}{name_delete}{path}
|
|---|
| 26 | Deletes a capability from the Amoeba directory tree.
|
|---|
| 27 | Argument is the pathname.
|
|---|
| 28 | \end{funcdesc}
|
|---|
| 29 |
|
|---|
| 30 | \begin{funcdesc}{name_lookup}{path}
|
|---|
| 31 | Looks up a capability.
|
|---|
| 32 | Argument is the pathname.
|
|---|
| 33 | Returns a
|
|---|
| 34 | \dfn{capability}
|
|---|
| 35 | object, to which various interesting operations apply, described below.
|
|---|
| 36 | \end{funcdesc}
|
|---|
| 37 |
|
|---|
| 38 | \begin{funcdesc}{name_replace}{path, cap}
|
|---|
| 39 | Replaces a capability in the Amoeba directory tree.
|
|---|
| 40 | Arguments are the pathname and the new capability.
|
|---|
| 41 | (This differs from
|
|---|
| 42 | \function{name_append()}
|
|---|
| 43 | in the behavior when the pathname already exists:
|
|---|
| 44 | \function{name_append()}
|
|---|
| 45 | finds this an error while
|
|---|
| 46 | \function{name_replace()}
|
|---|
| 47 | allows it, as its name suggests.)
|
|---|
| 48 | \end{funcdesc}
|
|---|
| 49 |
|
|---|
| 50 | \begin{datadesc}{capv}
|
|---|
| 51 | A table representing the capability environment at the time the
|
|---|
| 52 | interpreter was started.
|
|---|
| 53 | (Alas, modifying this table does not affect the capability environment
|
|---|
| 54 | of the interpreter.)
|
|---|
| 55 | For example,
|
|---|
| 56 | \code{amoeba.capv['ROOT']}
|
|---|
| 57 | is the capability of your root directory, similar to
|
|---|
| 58 | \code{getcap("ROOT")}
|
|---|
| 59 | in C.
|
|---|
| 60 | \end{datadesc}
|
|---|
| 61 |
|
|---|
| 62 | \begin{excdesc}{error}
|
|---|
| 63 | The exception raised when an Amoeba function returns an error.
|
|---|
| 64 | The value accompanying this exception is a pair containing the numeric
|
|---|
| 65 | error code and the corresponding string, as returned by the C function
|
|---|
| 66 | \cfunction{err_why()}.
|
|---|
| 67 | \end{excdesc}
|
|---|
| 68 |
|
|---|
| 69 | \begin{funcdesc}{timeout}{msecs}
|
|---|
| 70 | Sets the transaction timeout, in milliseconds.
|
|---|
| 71 | Returns the previous timeout.
|
|---|
| 72 | Initially, the timeout is set to 2 seconds by the Python interpreter.
|
|---|
| 73 | \end{funcdesc}
|
|---|
| 74 |
|
|---|
| 75 | \subsection{Capability Operations}
|
|---|
| 76 |
|
|---|
| 77 | Capabilities are written in a convenient \ASCII{} format, also used by the
|
|---|
| 78 | Amoeba utilities
|
|---|
| 79 | \emph{c2a}(U)
|
|---|
| 80 | and
|
|---|
| 81 | \emph{a2c}(U).
|
|---|
| 82 | For example:
|
|---|
| 83 |
|
|---|
| 84 | \begin{verbatim}
|
|---|
| 85 | >>> amoeba.name_lookup('/profile/cap')
|
|---|
| 86 | aa:1c:95:52:6a:fa/14(ff)/8e:ba:5b:8:11:1a
|
|---|
| 87 | >>>
|
|---|
| 88 | \end{verbatim}
|
|---|
| 89 | %
|
|---|
| 90 | The following methods are defined for capability objects.
|
|---|
| 91 |
|
|---|
| 92 | \setindexsubitem{(capability method)}
|
|---|
| 93 | \begin{funcdesc}{dir_list}{}
|
|---|
| 94 | Returns a list of the names of the entries in an Amoeba directory.
|
|---|
| 95 | \end{funcdesc}
|
|---|
| 96 |
|
|---|
| 97 | \begin{funcdesc}{b_read}{offset, maxsize}
|
|---|
| 98 | Reads (at most)
|
|---|
| 99 | \var{maxsize}
|
|---|
| 100 | bytes from a bullet file at offset
|
|---|
| 101 | \var{offset.}
|
|---|
| 102 | The data is returned as a string.
|
|---|
| 103 | EOF is reported as an empty string.
|
|---|
| 104 | \end{funcdesc}
|
|---|
| 105 |
|
|---|
| 106 | \begin{funcdesc}{b_size}{}
|
|---|
| 107 | Returns the size of a bullet file.
|
|---|
| 108 | \end{funcdesc}
|
|---|
| 109 |
|
|---|
| 110 | \begin{funcdesc}{dir_append}{}
|
|---|
| 111 | \funcline{dir_delete}{}
|
|---|
| 112 | \funcline{dir_lookup}{}
|
|---|
| 113 | \funcline{dir_replace}{}
|
|---|
| 114 | Like the corresponding
|
|---|
| 115 | \samp{name_}*
|
|---|
| 116 | functions, but with a path relative to the capability.
|
|---|
| 117 | (For paths beginning with a slash the capability is ignored, since this
|
|---|
| 118 | is the defined semantics for Amoeba.)
|
|---|
| 119 | \end{funcdesc}
|
|---|
| 120 |
|
|---|
| 121 | \begin{funcdesc}{std_info}{}
|
|---|
| 122 | Returns the standard info string of the object.
|
|---|
| 123 | \end{funcdesc}
|
|---|
| 124 |
|
|---|
| 125 | \begin{funcdesc}{tod_gettime}{}
|
|---|
| 126 | Returns the time (in seconds since the Epoch, in UCT, as for \POSIX) from
|
|---|
| 127 | a time server.
|
|---|
| 128 | \end{funcdesc}
|
|---|
| 129 |
|
|---|
| 130 | \begin{funcdesc}{tod_settime}{t}
|
|---|
| 131 | Sets the time kept by a time server.
|
|---|
| 132 | \end{funcdesc}
|
|---|