|
Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!
File Formats contract(4)
NAME
contract - the contract file system
SYNOPSIS
/system/contract
DESCRIPTION
The /system/contract file system acts as the primary inter-
face to the contract subsystem. There is a subdirectory of
/system/contract for each available contract type.
/system/contract can be mounted on any mount point, in addi-
tion to the standard /system/contract mount point, and can
be mounted several places at once. Such additional mounts
are allowed in order to facilitate the confinement of
processes to subtrees of the file system using chroot(1M)
and yet allow such processes to continue to use contract
commands and interfaces.
A combination of standard system calls (for example,
open(2), close(2), and poll(2)) and calls to
libcontract(3LIB) access /system/contract files.
Consumers of the contract file system must be large file
aware. See largefile(5) and lfcompile64(5).
DIRECTORY STRUCTURE
At the top level, the /system/contract directory contains
subdirectories named with each available contract type, and
one special directory, all. Each of these directories is
world-readable and world-searchable.
STRUCTURE OF /system/contract/type
Each /system/contract/type directory contains a fixed number
of files. It also contains a variable number of subdirec-
tories corresponding to existing contracts of type type and
named with the decimal representation of the contracts' IDs.
The following files are in a /system/contract/type direc-
tory:
template Opening this file returns a file descriptor
for a new type contract template.
You can use the following libcontract(3LIB)
calls on a template file descriptor:
ct_tmpl_activate(3contract)
ct_tmpl_clear(3contract)
ct_tmpl_create(3contract)
SunOS 5.10 Last change: 11 Jul 2005 1
File Formats contract(4)
See TERMS for additional template functions.
latest Opening this file returns a file descriptor
for the status file of the last type con-
tract written by the opening LWP. See STRUC-
TURE OF /system/contract/type/id. If the
opening LWP has not created a type contract,
opening latest fails with ESRCH.
bundle Opening this file returns a file descriptor
for an event endpoint which receives events
from all type contracts on the system. No
privileges are required to open a type bun-
dle event endpoint. Events sent by contracts
owned and written by users other than the
reader's effective user id are invisible,
that is, they are silently skipped, unless
the reader has {PRIV_CONTRACT_OBSERVER} in
its effective set. See EVENTS.
pbundle Opening this file returns a file descriptor
for an event endpoint which receives events
from all type contracts held by the opening
process. See EVENTS.
STRUCTURE OF /system/contract/all
The /system/contract/all directory contains a numerically
named file for each contract in the system. Each file is a
symbolic link to the type-specific directory for that con-
tract, that is /system/contract/all/id points to
/system/contract/type/id.
STRUCTURE OF /system/contract/type/id
Each /system/contract/type/id directory contains the follow-
ing files:
ctl Opening this file returns a file
descriptor for contract id's control
file. The open fails if the opening
process does not hold contract id
and the contract has not been inher-
ited by the process contract of
which the opening process is a
member. See process(4).
SunOS 5.10 Last change: 11 Jul 2005 2
File Formats contract(4)
The following libcontract(3LIB)
calls can be made on a ctl file
descriptor if the contract is owned
by the caller:
ct_ctl_abandon(3contract)
ct_ctl_newct(3contract)
ct_ctl_ack(3contract)
ct_ctl_qack(3contract)
The following libcontract(3LIB) call
can be made on a ctl file descriptor
if the contract doesn't have an
owner:
ct_ctl_adopt(3contract)
status Opening this file returns a file
descriptor for contract id's status
file. The following
libcontract(3LIB) calls can be made
on a status file descriptor:
ct_status_read(3contract)
See STATUS.
events Opening this file returns a file
descriptor for an event endpoint
which receives events from contract
id. See EVENTS.
Only a process which has the same
effective user ID as the process
owning the contract, the same effec-
tive user ID as the contract's
author, or has
{PRIV_CONTRACT_OBSERVER} in its
effective set can open the event
endpoint for a contract.
TERMS
SunOS 5.10 Last change: 11 Jul 2005 3
File Formats contract(4)
The following terms are defined for all contracts:
cookie
Specifies a 64-bit quantity that the contract author can
use to identify the contract. Use
ct_tmpl_set_cookie(3CONTRACT) to set this term.
informative event set
Selects which events are delivered as informative
events. Use ct_tmpl_set_informative(3CONTRACT) to set
this term.
critical event set
Selects which events are delivered as critical events.
Use ct_tmpl_set_critical(3CONTRACT) to set this term.
STATUS
A status object returned by ct_status_read(3CONTRACT) con-
tains the following pieces of information:
contract ID
The numeric ID of the contract. Use
ct_status_get_id(3CONTRACT) to obtain this information.
contract type
The type of the contract, specifed as a string. Obtained
using ct_status_get_type(3CONTRACT). The contract type
is the same as its subdirectory name under
/system/contract.
creator's zone ID
The zone ID of the process which created the contract.
Obtained using ct_status_get_zoneid(3CONTRACT).
SunOS 5.10 Last change: 11 Jul 2005 4
File Formats contract(4)
ownership state
The state of the contract, specified as CTS_OWNED,
CTS_INHERITED, CTS_ORPHAN, or CTS_DEAD. Use
ct_status_get_state(3CONTRACT) to obtain this informa-
tion.
contract holder
If the contract's state is CTS_OWNED, the ID of the pro-
cess which owns the contract. If the contract's state is
CTS_INHERITED, the ID of the contract which is acting as
regent. If the contract's state is CTS_ORPHAN or
CTS_DEAD, this is undefined. Use
ct_status_get_holder(3CONTRACT) to obtain this informa-
tion.
number of critical events
The number of unacknowledged critical events pending on
the contract's event queue. Use
ct_status_get_nevents(3CONTRACT) to obtain this informa-
tion.
negotiation time
The time remaining before the current synchronous nego-
tiation times out. Use ct_status_get_ntime(3CONTRACT) to
obtain this information.
negotiation quantum time
The time remaining before the current negotiation quan-
tum runs out. Use ct_status_get_qtime(3CONTRACT) to
obtain this information.
negotiation event ID
The ID of the event which initiated the negotiation
timeout. Use ct_status_get_nevid(3CONTRACT) to obtain
this information.
SunOS 5.10 Last change: 11 Jul 2005 5
File Formats contract(4)
cookie (term)
The contract's cookie term. Use
ct_status_get_cookie(3CONTRACT) to obtain this informa-
tion.
Informative event set (term)
The contract's informative event set. Use
ct_status_get_informative(3CONTRACT) to obtain this
information.
Critical event set (term)
The contract's critical event set. Use
ct_status_get_critical(3CONTRACT) to obtain this infor-
mation.
EVENTS
All three event endpoints, /system/contract/type/bundle,
/system/contract/type/pbundle, and
/system/contract/type/id/events, are accessed in the same
manner.
The following libcontract(3LIB) interfaces are used with an
event endpoint file descriptor:
ct_event_read(3contract)
ct_event_read_critical(3contract)
ct_event_reset(3contract)
ct_event_next(3contract)
To facilitate processes watching multiple event endpoints,
it is possible to poll(2) on event endpoints. When it is
possible to receive on an endpoint file descriptor, POLLIN
is set for that descriptor.
An event object returned by ct_event_read(3CONTRACT) con-
tains the following information:
contract ID The ID of the contract that gen-
erated the event. Use
ct_event_get_ctid(3CONTRACT) to
obtain this information.
SunOS 5.10 Last change: 11 Jul 2005 6
File Formats contract(4)
event ID The ID of the contract event.Use
ct_event_get_evid(3CONTRACT).
flags A bit vector possibly including
CT_ACK and CTE_INFO. Use
ct_event_get_flags(3CONTRACT) to
obtain this information.
event type The type of event, equal to one of
the constants specified in the con-
tract type's manual page or
CT_EV_NEGEND. Use
ct_event_get_type(3CONTRACT) to
obtain this information.
EVENT TYPES
The following event types are defined:
CT_EV_NEGEND
Some time after an exit negotiation is initiated, the
CT_EV_NEGEND event is sent. This indicates that the
negotiation ended. This might be because the operation
was cancelled, or because the operation was successful.
If successful, and the owner requested that a new con-
tract be written, this contains the ID of that contract.
CT_EV_NEGEND cannot be included in a contract's informa-
tive or critical event set. It is always delivered and
always critical. If CT_EV_NEGEND indicates that the
operation was successful, no further events are sent.
The contract's owner should use
ct_ctl_abandon(3CONTRACT) to abandon the contract.
A CT_EV_NEGEND event contains:
negotiation ID
The ID of the negotiation which ended. Use
ct_event_get_nevid(3CONTRACT) to obain this informa-
tion.
SunOS 5.10 Last change: 11 Jul 2005 7
File Formats contract(4)
new contract ID
The ID of the newly created contract. This value is
0 if no contract was created, or the ID of the
existing contract if the operation was not com-
pleted. Use ct_event_get_newct(3CONTRACT) to obtain
this information.
FILES
/system/contract
List of all contract types
/system/contract/all
Directory of all contract IDs
/system/contract/all/id
Symbolic link to the type-specific directory of contract
id
/system/contract/type
Specific type directory
/system/contract/type/templete
Template for the contract type
/system/contract/type/bundle
Listening point for all contracts of that type
/system/contract/type/pbundle
Listening point for all contracts of that type for the
opening process
SunOS 5.10 Last change: 11 Jul 2005 8
File Formats contract(4)
/system/contract/type /latest
Status of most recent type contract created by the open-
ing LWP
/system/contract/type/ID
Directory for contract id
/system/contract/type/ID/events
Listening point for contract id's events
/system/contract/type/ID/ctl
Control file for contract ID
/system/contract/type/ID/status
Status info for contract ID
SEE ALSO
ctrun(1), ctstat(1), ctwatch(1), chroot(1M), close(2),
ioctl(2), open(2), poll(2), ct_ctl_abandon(3CONTRACT),
ct_event_get_ctid(3CONTRACT), ct_event_get_evid(3CONTRACT),
ct_event_get_flags(3CONTRACT),
ct_event_get_nevid(3CONTRACT),
ct_event_get_newct(3CONTRACT), ct_event_get_type(3CONTRACT),
ct_status_read(3CONTRACT)ct_status_get_cookie(3CONTRACT),
ct_status_get_critical(3CONTRACT),
ct_status_get_holder(3CONTRACT),
ct_status_get_id(3CONTRACT),
ct_status_get_informative(3CONTRACT),
ct_status_get_nevid(3CONTRACT),
ct_status_get_nevents(3CONTRACT),
ct_status_get_ntime(3CONTRACT),
ct_status_get_qtime(3CONTRACT),
ct_status_get_state(3CONTRACT),
ct_status_get_type(3CONTRACT),
ct_tmpl_set_cookie(3CONTRACT),
ct_tmpl_set_critical(3CONTRACT),
ct_tmpl_set_informative(3CONTRACT), libcontract(3LIB),
SunOS 5.10 Last change: 11 Jul 2005 9
File Formats contract(4)
process(4), largefile(5), lfcompile(5), privileges(5)
SunOS 5.10 Last change: 11 Jul 2005 10
Man(1) output converted with
man2html and wrapped by fishsponge
This page was generated on Wed Sep 12 11:27:19 GMT 2007
|
Your favourite pages:
No pages logged yet. Trying to save cookie... Top 10 most popular pages:
sqlite3 man page (5334 hits) (openSUSE 10.2)
svn man page (5208 hits) (FreeBSD 6.2)
adv_cap_autoneg man page (4870 hits) (Solaris 10 11_06)
CPAN man page (4607 hits) (Suse Linux 10.1)
ssh man page (4342 hits) (Suse Linux 10.1)
ssh-socks5-proxy-connect man page (2874 hits) (Solaris 10 11_06)
netcat man page (2717 hits) (Suse Linux 10.1)
pprosetup man page (2487 hits) (Solaris 10 11_06)
startproc man page (2471 hits) (Suse Linux 10.1)
signal man page (2406 hits) (Suse Linux 10.1)
|