--- process.4.original	Fri Oct 26 14:24:34 2007
+++ process.4	Mon Jan 14 17:42:12 2008
@@ -307,8 +307,41 @@
 
                           The default transfer term  is  0,  that
                           is, no contract.
+                          
+     service FMRI         Specifies the service FMRI associated
+                          with the process contract. Use
+                          ct_pr_tmpl_set_svc_fmri(3CONTRACT) to
+                          set this term. The default is to
+                          inherit the value from the creator's
+                          process contract. When this term is
+                          uninitialized,
+                          ct_pr_tmpl_get_svc_fmri(3CONTRACT) will
+                          return the token string "inherited:" to
+                          indicate the value has not been set and
+                          will be inherited. Setting the service
+                          FMRI to "inherited:" clears the current
+                          value and the term will be inherited
+                          from the creator's process contract. To
+                          set this term a process must have
+                          {PRIV_CONTRACT_IDENTITY} in its
+                          effective set.
 
+     creator's aux        Auxiliary contract description. The
+                          purpose of this field is to provide the
+                          contract creator with a way to
+                          differentiate process contracts it
+                          creates under the same service FMRI.
+                          Use ct_pr_tmpl_set_svc_aux(3CONTRACT)
+                          to set this term. The default value is
+                          an empty string.
 
+
+     The following terms can be read from a process contract using the
+     named libcontract(3LIB) interfaces. These contract terms are in
+     addition to those described in contract(4).
+
+
+     
   STATUS
      In addition to the standard items, the  status  object  read
      from  a  status file descriptor contains the following items
@@ -338,8 +371,34 @@
                                to   obtain   this    information.
                                respectively.
 
+     service contract ID        Specifies the process contract id
+                                which defined the service FMRI
+                                term. Use
+                                ct_pr_status_get_svc_ctid(3CONTRACT)
+                                to read the term's value. It can
+                                be used to determine if the
+                                service FMRI was inherited as in
+                                the example below.
 
+                                
+                ctid_t ctid;           /* our contract id */
+                int fd;       /* fd of ctid's status file */
 
+                ct_stathdl_t status;
+                ctid_t svc_ctid;
+
+                if (ct_status_read(fd, CTD_FIXED, &status) == 0) {
+                        if (ct_pr_status_get_svc_ctid(status, &svc_ctid) == 0) {
+                                if (svc_ctid == ctid)
+                                    /* not inherited */
+                                else
+                                    /* inherited */
+                        }
+                        ct_status_free(status);
+                }
+
+
+
      If CTD_ALL is specified, the following items are also avail-
      able:
 
@@ -356,8 +415,26 @@
                                 ct_pr_status_get_contracts(3CONTRACT)
                                 to obtain this information.
 
+     Service FMRI (term)        Values equal to the terms used
+                                when the contract was written.
+                                The Service FMRI term of the
+                                process contract of a process
+                                entering a zone will have the
+                                value
+                                svc:/system/zone_enter:default
+                                when read from the non-global
+                                zone.
+                                
+     contract creator           Specifies the process that
+                                created the process contract.
+                                Use
+                                ct_pr_status_get_svc_creator(3CONTRACT)
+                                to read the term's value.
 
+     creator's aux (term)       Values equal to the terms used
+                                when the contract was written.
 
+
      The following standard status items have different  meanings
      in some situations:
 
@@ -491,9 +568,17 @@
      ct_pr_event_get_signal(3CONTRACT),
      ct_pr_status_get_contracts(3CONTRACT),
      ct_pr_status_get_members(3CONTRACT),
+     ct_pr_status_get_svc_fmri(3CONTRACT),
+     ct_pr_status_get_svc_aux(3CONTRACT),
+     ct_pr_status_get_svc_ctid(3CONTRACT),
+     ct_pr_status_get_svc_creator(3CONTRACT),
      ct_pr_tmpl_set_fatal(3CONTRACT),
      ct_pr_tmpl_set_param(3CONTRACT),
      ct_pr_tmpl_set_transfer(3CONTRACT),
+     ct_pr_tmpl_set_svc_fmri(3CONTRACT),
+     ct_pr_tmpl_set_svc_aux(3CONTRACT),
+     ct_pr_tmpl_get_svc_fmri(3CONTRACT),
+     ct_pr_tmpl_get_svc_aux(3CONTRACT),
      ct_tmpl_set_cookie(3CONTRACT),
      ct_tmpl_set_critical(3CONTRACT),
      ct_tmpl_set_informative(3CONTRACT),  libcontract(3LIB), con-
