From dceb030fbf9be79efabc35bfb91789fd182d93a2 Mon Sep 17 00:00:00 2001
From: Richard Kistruck
For each type of question, the client must provide a function that gives -the answer. These functions collected together are called a "format" +the answer. These functions are called "format methods", and are +collected together into a "format" (mps_fmt_t). Usually the client developer writes these functions, -collects them into a format, and passes this format to the MPS as an -argument to mps_pool_create().
+calls "mps_fmt_create_..." to
+collect them into a format, and passes this format to the MPS as an
+argument to mps_pool_create().
A client's format code is 'special'. It is called at special times (eg. when handling an interrupt), and is quite restricted in what it is @@ -108,41 +110,61 @@ whether it is a client object, a forwarding object, or a padding object.
To support collectable client objects:
+Indicate the size of a collectable client object:
To support movable client objects:
+List all references from this object to (other) collectable objects:
To support forwarding objects (once a movable client object has been moved):
+Move this client object:
+Create/use a forwarding object (used by an incremental moving collector after moving a client object):
To support padding objects:
+Create a padding object:
There are several different ways to package-up the format methods -- these different ways are called 'variants'. MPS currently supports four format variants. The creation functions for these are:
+ + +It's a bit messy -- sorry.
+2006-06-02 RHSK Created. 2006-06-02 RHSK Introduction to MPS Formats + 2006-06-06 RHSK Formats: clarify explanation of methods, and list variants.