This directory contains an implementation of generic active messages
over GM.  Except for the file 'ucb.c', it was implemented entirely
from the GAM version 1.1 spec.  ucb.c contains some functions that
programs seem to assume are implemented in the library, but are not
mentioned in the spec; it is under the Berkeley license.

The bulk transfer functions do not perform a copy, and must send out
of and into memory allocated by am_dma_calloc() - they will fail
silently otherwise.  On some architectures GM supports the
gm_register_memory() call; the bulk transfer functions should be
modified to take advantage of this.  For efficiency, each node will
have to keep track of which pages are known to be registered on remote
nodes, so that in the common case a round trip is not necessary before
a gm_directed_send() can be performed.

This implementation assumes that all nodes in the GM network want to
participate in GAM.  Once a "process group" library for GM is written,
the GAM layer should be modified to use it.

To build the library and tools, configure in the toplevel
gm source directory, then
	make gam/all
in the toplevel gm source directory.

