CT_TMPL_ACTIVATE(3CONTRACT)            Contract Management Library Functions
NAME
       ct_tmpl_activate, ct_tmpl_clear, ct_tmpl_create, ct_tmpl_set_cookie,
       ct_tmpl_set_critical, ct_tmpl_set_informative, ct_tmpl_get_cookie,
       ct_tmpl_get_critical, ct_tmpl_get_informative - common contract
       template functions
SYNOPSIS
       cc [ 
flag... ] 
file... 
-D_LARGEFILE64_SOURCE  -lcontract  [ 
library... ]
       #include <libcontract.h>       
int ct_tmpl_activate(
int fd);       
int ct_tmpl_clear(
int fd);       
int ct_tmpl_create(
int fd, 
ctid_t *idp);       
int ct_tmpl_set_cookie(
int fd, 
uint64_t cookie);       
int ct_tmpl_set_critical(
int fd, 
uint_t events);       
int ct_tmpl_set_informative(
int fd, 
uint_t events);       
int ct_tmpl_get_cookie(
int fd, 
uint64_t *cookiep);       
int ct_tmpl_get_critical(
int fd, 
uint_t *eventsp);       
int ct_tmpl_get_informative(
int fd, 
uint_t *eventsp);
DESCRIPTION
       These functions operate on contract template file descriptors
       obtained from the 
contract(5) file system.
       The 
ct_tmpl_activate() function makes the template referenced by the
       file descriptor 
fd the active template for the calling thread.
       The 
ct_tmpl_clear() function clears calling thread's active template.
       The 
ct_tmpl_create() function uses the template referenced by the
       file descriptor 
fd to create a new contract. If successful, the ID of
       the newly created contract is placed in *
idp.
       The 
ct_tmpl_set_cookie() and 
ct_tmpl_get_cookie() functions write and
       read the cookie term of a contract template. The cookie term is
       ignored by the system, except to include its value in a resulting
       contract's status object. The default cookie term is 0.
       The 
ct_tmpl_set_critical() and 
ct_tmpl_get_critical() functions write
       and read the critical event set term. The value is a collection of
       bits as described in the contract type's manual page.
       The 
ct_tmpl_set_informative() and 
ct_tmpl_get_informative() functions
       write and read the informative event set term. The value is a
       collection of bits as described in the contract type's manual page.
RETURN VALUES
       Upon successful completion, 
ct_tmpl_activate(), 
ct_tmpl_create(),       
ct_tmpl_set_cookie(), 
ct_tmpl_get_cookie(), 
ct_tmpl_set_critical(),       
ct_tmpl_get_critical(), 
ct_tmpl_set_informative(), and       
ct_tmpl_get_informative() return 0.  Otherwise, they return a non-
       zero error value.
ERRORS
       The 
ct_tmpl_create() function will fail if:       
ERANGE                 The terms specified in the template were unsatisfied at the
                 time of the call.       
EAGAIN                 The 
project.
max-contracts resource control would have been
                 exceeded.
       The 
ct_tmpl_set_critical() and 
ct_tmpl_set_informative() functions
       will fail if:       
EINVAL                 An invalid event was specified.
       The 
ct_tmpl_set_critical() function will fail if:       
EPERM                One of the specified events was disallowed given other
                contract terms (see 
contract(5)) and {
PRIV_CONTRACT_EVENT}
                was not in the effective set for the calling process.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Evolving        |
       +--------------------+-----------------+
       |MT-Level            | Safe            |
       +--------------------+-----------------+
SEE ALSO
       libcontract(3LIB), 
contract(5), 
attributes(7), 
lfcompile(7)                                April 1, 2004    CT_TMPL_ACTIVATE(3CONTRACT)