Contained WithinFind More DocumentationFeatured Support Resources | Download this book in PDF (3087 KB)
contract(4)Name | Synopsis | Description | Files | See Also Name
Synopsis/system/contract Description
The /system/contract file system acts as the primary interface 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 addition 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 STRUCTUREAt 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/typeEach /system/contract/type directory contains a fixed number of files. It also contains a variable number of subdirectories 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 directory: STRUCTURE OF /system/contract/allThe /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 contract, that is /system/contract/all/id points to /system/contract/type/id. STRUCTURE OF /system/contract/type/idEach /system/contract/type/id directory contains the following files: TERMSThe following terms are defined for all contracts: STATUSA status object returned by ct_status_read(3CONTRACT) contains the following pieces of information: EVENTSAll 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:
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) contains the following information: EVENT TYPESThe following event types are defined: Files
See Alsoctrun(1), ctstat(1), ctwatch(1), chroot(1M), close(2), ioctl(2), open(2), poll(2), ct_ctl_abandon(3CONTRACT), ct_event_read(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), process(4), largefile(5), lfcompile(5), privileges(5) Name | Synopsis | Description | Files | See Also |
||||