| 
									
										
										
										
											1995-03-28 13:35:14 +00:00
										 |  |  | \chapter{Amoeba Specific Services} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{amoeba} --- | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  |          Amoeba system support} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  | \declaremodule{builtin}{amoeba} | 
					
						
							|  |  |  |   \platform{Amoeba} | 
					
						
							| 
									
										
										
										
											1999-01-07 15:45:55 +00:00
										 |  |  | \modulesynopsis{Functions for the Amoeba operating system.} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-02-18 15:10:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | This module provides some object types and operations useful for | 
					
						
							|  |  |  | Amoeba applications.  It is only available on systems that support | 
					
						
							|  |  |  | Amoeba operations.  RPC errors and other Amoeba errors are reported as | 
					
						
							|  |  |  | the exception \code{amoeba.error = 'amoeba.error'}. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  | The module \module{amoeba} defines the following items: | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-17 06:33:25 +00:00
										 |  |  | \begin{funcdesc}{name_append}{path, cap} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | Stores a capability in the Amoeba directory tree. | 
					
						
							|  |  |  | Arguments are the pathname (a string) and the capability (a capability | 
					
						
							|  |  |  | object as returned by | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  | \function{name_lookup()}). | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{name_delete}{path} | 
					
						
							|  |  |  | Deletes a capability from the Amoeba directory tree. | 
					
						
							|  |  |  | Argument is the pathname. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{name_lookup}{path} | 
					
						
							|  |  |  | Looks up a capability. | 
					
						
							|  |  |  | Argument is the pathname. | 
					
						
							|  |  |  | Returns a | 
					
						
							|  |  |  | \dfn{capability} | 
					
						
							|  |  |  | object, to which various interesting operations apply, described below. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-17 06:33:25 +00:00
										 |  |  | \begin{funcdesc}{name_replace}{path, cap} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | Replaces a capability in the Amoeba directory tree. | 
					
						
							|  |  |  | Arguments are the pathname and the new capability. | 
					
						
							|  |  |  | (This differs from | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  | \function{name_append()} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | in the behavior when the pathname already exists: | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  | \function{name_append()} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | finds this an error while | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  | \function{name_replace()} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | allows it, as its name suggests.) | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{datadesc}{capv} | 
					
						
							|  |  |  | A table representing the capability environment at the time the | 
					
						
							|  |  |  | interpreter was started. | 
					
						
							|  |  |  | (Alas, modifying this table does not affect the capability environment | 
					
						
							|  |  |  | of the interpreter.) | 
					
						
							|  |  |  | For example, | 
					
						
							|  |  |  | \code{amoeba.capv['ROOT']} | 
					
						
							|  |  |  | is the capability of your root directory, similar to | 
					
						
							|  |  |  | \code{getcap("ROOT")} | 
					
						
							|  |  |  | in C. | 
					
						
							|  |  |  | \end{datadesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{error} | 
					
						
							|  |  |  | The exception raised when an Amoeba function returns an error. | 
					
						
							|  |  |  | The value accompanying this exception is a pair containing the numeric | 
					
						
							|  |  |  | error code and the corresponding string, as returned by the C function | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  | \cfunction{err_why()}. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{timeout}{msecs} | 
					
						
							|  |  |  | Sets the transaction timeout, in milliseconds. | 
					
						
							|  |  |  | Returns the previous timeout. | 
					
						
							|  |  |  | Initially, the timeout is set to 2 seconds by the Python interpreter. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \subsection{Capability Operations} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-03-17 16:07:09 +00:00
										 |  |  | Capabilities are written in a convenient \ASCII{} format, also used by the | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | Amoeba utilities | 
					
						
							| 
									
										
										
										
											1998-01-19 02:51:02 +00:00
										 |  |  | \emph{c2a}(U) | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | and | 
					
						
							| 
									
										
										
										
											1998-01-19 02:51:02 +00:00
										 |  |  | \emph{a2c}(U). | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | For example: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-02-13 06:58:54 +00:00
										 |  |  | \begin{verbatim} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | >>> amoeba.name_lookup('/profile/cap') | 
					
						
							|  |  |  | aa:1c:95:52:6a:fa/14(ff)/8e:ba:5b:8:11:1a | 
					
						
							|  |  |  | >>>  | 
					
						
							| 
									
										
										
										
											1998-02-13 06:58:54 +00:00
										 |  |  | \end{verbatim} | 
					
						
							| 
									
										
										
										
											1997-07-17 16:34:52 +00:00
										 |  |  | %
 | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | The following methods are defined for capability objects. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-02-13 06:58:54 +00:00
										 |  |  | \setindexsubitem{(capability method)} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \begin{funcdesc}{dir_list}{} | 
					
						
							|  |  |  | Returns a list of the names of the entries in an Amoeba directory. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-17 06:33:25 +00:00
										 |  |  | \begin{funcdesc}{b_read}{offset, maxsize} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | Reads (at most) | 
					
						
							|  |  |  | \var{maxsize} | 
					
						
							|  |  |  | bytes from a bullet file at offset | 
					
						
							|  |  |  | \var{offset.} | 
					
						
							|  |  |  | The data is returned as a string. | 
					
						
							|  |  |  | EOF is reported as an empty string. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{b_size}{} | 
					
						
							|  |  |  | Returns the size of a bullet file. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{dir_append}{} | 
					
						
							| 
									
										
										
										
											1999-01-07 15:45:55 +00:00
										 |  |  | \funcline{dir_delete}{} | 
					
						
							|  |  |  | \funcline{dir_lookup}{} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \funcline{dir_replace}{} | 
					
						
							|  |  |  | Like the corresponding | 
					
						
							|  |  |  | \samp{name_}* | 
					
						
							|  |  |  | functions, but with a path relative to the capability. | 
					
						
							|  |  |  | (For paths beginning with a slash the capability is ignored, since this | 
					
						
							|  |  |  | is the defined semantics for Amoeba.) | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{std_info}{} | 
					
						
							|  |  |  | Returns the standard info string of the object. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{tod_gettime}{} | 
					
						
							| 
									
										
										
										
											2001-11-28 07:26:15 +00:00
										 |  |  | Returns the time (in seconds since the Epoch, in UCT, as for \POSIX) from | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | a time server. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{tod_settime}{t} | 
					
						
							|  |  |  | Sets the time kept by a time server. | 
					
						
							|  |  |  | \end{funcdesc} |