man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: July 2014
 
 

ct_tmpl_create(3CONTRACT)

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(4) 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(4)) and {PRIV_CONTRACT_EVENT} was not in the effective set for the calling process.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
Safe

See also

libcontract(3LIB), contract(4) , attributes(5), lfcompile( 5)