OpenSolaris 2009.06 - man page for ct_pr_tmpl_set_svc_fmri (opensolaris section 3CONTRACT)

Linux & Unix Commands - Search Man Pages

Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


ct_pr_tmpl_set_transfer(3CONTRContract Management Library Functct_pr_tmpl_set_transfer(3CONTRACT)

NAME
       ct_pr_tmpl_set_transfer, 	   ct_pr_tmpl_set_fatal,	    ct_pr_tmpl_set_param,
       ct_pr_tmpl_set_svc_fmri, 	ct_pr_tmpl_set_svc_aux, 	 ct_pr_tmpl_get_transfer,
       ct_pr_tmpl_get_fatal,		ct_pr_tmpl_get_param,		 ct_pr_tmpl_get_svc_fmri,
       ct_pr_tmpl_get_svc_aux - process contract template functions

SYNOPSIS
       cc [ flag... ] file... -D_LARGEFILE64_SOURCE  -lcontract  [ library... ]
       #include <libcontract.h>
       #include <sys/contract/process.h>

       int ct_pr_tmpl_set_transfer(int fd, ctid_t ctid);

       int ct_pr_tmpl_set_fatal(int fd, uint_t events);

       int ct_pr_tmpl_set_param(int fd, uint_t params);

       int ct_pr_tmpl_set_svc_fmri(int fd, const char *fmri);

       int ct_pr_tmpl_set_svc_aux(int fd, const char *aux);

       int ct_pr_tmpl_get_transfer(int fd, ctid_t *ctidp);

       int ct_pr_tmpl_get_fatal(int fd, uint_t *eventsp);

       int ct_pr_tmpl_get_param(int fd, uint_t *paramsp);

       int ct_pr_tmpl_get_svc_fmri(int fd, char *fmri, size_t size);

       int ct_pr_tmpl_get_svc_aux(int fd, char *aux, size_t size);

DESCRIPTION
       These functions read and write process contract terms and operate on process contract tem-
       plate file descriptors obtained from the contract(4) file system.

       The  ct_pr_tmpl_set_transfer()  and ct_pr_tmpl_get_transfer() functions write and read the
       transfer contract term. The value is the ID of an empty regent process contract	owned  by
       the caller whose inherited contracts are to be transferred to a newly created contract.

       The  ct_pr_tmpl_set_fatal()  and ct_pr_tmpl_get_fatal() functions write and read the fatal
       event set term. The value is a collection of bits as described in process(4).

       The ct_pr_tmpl_set_param() and ct_pr_tmpl_get_param() functions write and read the parame-
       ter set term. The value is a collection of bits as described in process(4).

       The  ct_pr_tmpl_set_svc_fmri() and  ct_pr_tmpl_get_svc_fmri() functions write and read the
       service FMRI value of a process contract template. The ct_pr_tmpl_set_svc_fmri()  function
       requires the caller to have the {PRIV_CONTRACT_IDENTITY} privilege in its effective set.

       The  ct_pr_tmpl_set_svc_aux()  and  ct_pr_tmpl_get_svc_aux()  functions write and read the
       creator's auxiliary value of a process contract template.

RETURN VALUES
       Upon    successful    completion,    ct_pr_tmpl_set_transfer(),	  ct_pr_tmpl_set_fatal(),
       ct_pr_tmpl_set_param(),	      ct_pr_tmpl_set_svc_fmri(),	ct_pr_tmpl_set_svc_aux(),
       ct_pr_tmpl_get_transfer(), ct_pr_tmpl_get_fatal(), and  ct_pr_tmpl_get_param()  return  0.
       Otherwise, they return a non-zero error value.

       Upon successful completion, ct_pr_tmpl_get_svc_fmri() and  ct_pr_tmpl_get_svc_aux() return
       the size required to store the value, which is the same value return by	strcpy(3C)  +  1.
       Insufficient buffer size can be checked by:

	 if (ct_pr_tmpl_get_svc_fmri(fd, fmri, size) > size)
		 /* buffer is too small */

       Otherwise, ct_pr_tmpl_get_svc_fmri() and  ct_pr_tmpl_get_svc_aux() return -1 and set errno
       to indicate the error.

ERRORS
       The    ct_pr_tmpl_set_param(),	 ct_pr_tmpl_set_svc_fmri(),	ct_pr_tmpl_set_svc_aux(),
       ct_pr_tmpl_get_svc_fmri() and  ct_pr_tmpl_get_svc_aux() functions will fail if:

       EINVAL	 An invalid parameter was specified.

       The ct_pr_tmpl_set_fatal() function will fail if:

       EINVAL	 An invalid event was specified.

       The ct_pr_tmpl_set_transfer() function will fail if:

       ESRCH	    The ID specified by ctid does not correspond to a process contract.

       EACCES	    The  ID  specified by ctid does not correspond to a process contract owned by
		    the calling process.

       ENOTEMPTY    The ID specified by ctid does not correspond to an empty process contract.

       The ct_pr_tmpl_set_svc_fmri() function will fail if:

       EPERM	The calling process does not have {PRIV_CONTRACT_IDENTITY} in its effective set.

EXAMPLES
       Example 1 Create and activate a process contract template.

       The following example opens a new  template,  makes  hardware  errors  and  signals  fatal
       events, makes hardware errors critical events, and activates the template. It then forks a
       process in the new contract using the requested terms.

	 #include <libcontract.h>
	 #include <fcntl.h>
	 #include <unistd.h>

	 ...
	 int fd;

	 fd = open("/system/contract/process/template", O_RDWR);
	 (void) ct_pr_tmpl_set_fatal(fd, CT_PR_EV_HWERR|CT_PR_EV_SIGNAL);
	 (void) ct_tmpl_set_critical(fd, CT_PR_EV_HWERR);
	 (void) ct_tmpl_activate(fd);
	 close(fd);

	 if (fork()) {
		 /* parent - owns new process contract */
		 ...
	 } else {
		 /* child - in new process contract */
		 ...
	 }
	 ...

       Example 2 Clear the process contract template.

       The following example opens the template file and requests that	the  active  template  be
       cleared.

	 #include <libcontract.h>
	 #include <fcntl.h>

	 ...
	 int fd;

	 fd = open("/system/contract/process/template", O_RDWR);
	 (void) ct_tmpl_clear(fd);
	 close(fd);
	 ...

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

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Committed 		   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |Safe			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       libcontract(3LIB), strcpy(3C), contract(4), process(4), attributes(5), lfcompile(5)

SunOS 5.11				   25 Feb 2008	       ct_pr_tmpl_set_transfer(3CONTRACT)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 11:18 PM.

Unix & Linux Forums Content Copyright©1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password





Not a Forum Member?
Forgot Password?