*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> standard/arsop (2)              
Title
Content
Arch
Section
 

Contents


arsop(2)							      arsop(2)


NAME    [Toc]    [Back]

     arsop - perform an	operation on an	array session

SYNOPSIS    [Toc]    [Back]

     #include <sys/arsess.h>

     int arsop(int func, ash_t ash, void *bufptr, int buflen);

DESCRIPTION    [Toc]    [Back]

     The arsop function	performs an operation on the array session identified
     by	the handle ash.	 If ash	is less	than 0,	then the operation is
     performed on the array session that is associated with the	calling
     process.

     Most array	session	operations take	some sort of argument.	A pointer to
     the argument is passed as bufptr, and the length of the argument is
     specified with buflen.

     The particular operation to be performed is identified by the function
     code func,	which is defined in <sys/arsess.h>.  Available array session
     operations	include:

     ARSOP_NOP
	    No operation involving the array session itself will be performed,
	    but	the function will fail if the specified	array session does not
	    exist.  This is a convenient way to	determine if an	array session
	    is active.

     ARSOP_GETSPI
	    Obtains the	Service	Provider Information associated	with the array
	    session and	stores it into the buffer pointed to by	bufptr.	 If
	    the	argument buffer	is too small to	accommodate all	of the Service
	    Provider Information, the data will	be truncated.  If the argument
	    buffer is larger than the Service Provider Information associated
	    with the array session, the	data will be padded on the right with
	    zeroes.

     ARSOP_SETSPI
	    Sets the Service Provider Information associated with the array
	    session to the contents of the buffer pointed to by	bufptr.	 If
	    the	argument buffer	is too small, the Service Provider Information
	    will be padded on the right	with zeroes.  If the argument buffer
	    is too large, an EINVAL error will occur.  If bufptr is NULL, then
	    buflen is ignored and the array session will use the system
	    default service provider information (typically all	zeroes,	though
	    it can be changed with arsctl(2)).	The caller must	be privileged
	    to use this	function.

     ARSOP_GETSPILEN
	    Returns the	number of bytes	of storage that	have been allocated
	    for	the Service Provider Information that is associated with the
	    array session.  The	value is stored	as an int at the location



									Page 1






arsop(2)							      arsop(2)



	    specified by bufptr.  This can be used to determine	the size of
	    the	buffer that is required	for the	ARSOP_GETSPI and ARSOP_SETSPI
	    functions.

     ARSOP_SETSPILEN
	    Sets the length of the Service Provider Information	associated
	    with the array session to value of the int pointed to by bufptr.
	    An EINVAL error will occur if the value is negative	or is greater
	    than the system maximum value (typically 1024), and	the current
	    setting will remain	unchanged.  If the array session currently has
	    non-default	service	provider information associated	with it, then
	    that information will either be truncated or extended with zeroes
	    on the end to accommodate the new length.  The caller must be
	    privileged to use this function.

     ARSOP_FLUSHACCT
	    Flushes any	accounting data	for the	array session.	If array
	    session accounting is active (see extacct(5)), then	a record
	    reporting the resource usage information that has been accumulated
	    by the array session will be written.  As is always	the case with
	    array session accounting, if two or	more members of	the array
	    session have different real	UID's or GID's,	it is unpredictable
	    whose UID/GID will be included in the array	session	accounting
	    record.  If	a flush	operation has already been performed, then the
	    data reported by a subsequent flush	or by the termination of the
	    array session will only include resources that have	been consumed
	    since the last flush operation.  Array session accounting records
	    that are written using this	operation will be marked as "flushed"
	    to indicate	that subsequent	records	for the	same array session may
	    be forthcoming.  Under normal circumstances, the resource usage
	    for	an array session only includes the resources used by processes
	    that have already terminated; the flushed accounting data will not
	    include the	resources used by any members of the array session
	    that are still running.  The caller	must be	privileged to invoke
	    this function.

     ARSOP_GETINFO
	    Obtains information	about the array	session	and stores it in the
	    buffer pointed to by bufptr.  The format of	the data is defined by
	    the	arsess_t structure, which can be found in <sys/arsess.h>.
	    Note that the data in an arsess_t is system-dependent and subject
	    to change without notice from one release of IRIX to another.

     ARSOP_GETCHGD
	    Obtains information	about resources	that have already been charged
	    to the array session in some way.  Typically, this would be	done
	    by invoking	the ARSOP_FLUSHACCT function against the array
	    session.  The format of the	data is	defined	by the shacct_t
	    structure, which can be found in <sys/extacct.h>, and is stored in
	    the	buffer pointed to by bufptr.  Note that	the data in an
	    shacct_t is	system-dependent and subject to	change without notice
	    from one release of	IRIX to	another.



									Page 2






arsop(2)							      arsop(2)



     ARSOP_RESTRICT_NEW
	    Restricts any process in the array session from starting a new
	    array session (for example,	using newarraysess(2)).	 If a
	    privileged process in such an array	session	subsequently decides
	    that it needs to start a new array session,	it must	first clear
	    the	restriction using the ARSOP_ALLOW_NEW function.	 A process can
	    determine if its array session has been restricted by using	the
	    ARSOP_GETINFO function.

     ARSOP_ALLOW_NEW
	    Removes any	restrictions against starting new array	sessions that
	    may	have been placed on the	array session by the
	    ARSOP_RESTRICT_NEW function.  The caller must be privileged	to use
	    this function.

ERRORS    [Toc]    [Back]

     arsop may fail if one or more of these conditions are true:

     EFAULT    bufptr is not a valid address

     EINVAL    func is not a valid function code

     EINVAL    The argument pointed to by bufptr is not	valid

     EPERM     The current process does	not have the appropriate privileges to
	       perform the operation specified by func.

     ESRCH     The array session specified by ash is not currently active.

SEE ALSO    [Toc]    [Back]

      
      
     arsctl(2),	array_sessions(5).

DIAGNOSTICS    [Toc]    [Back]

     Upon successful completion, arsop returns a value of 0.  Otherwise, a
     value of -1 is returned and errno is set to indicate the error.


									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
SSL_callback_ctrl Tru64 Perform an operation (get or set information in SSL) for the SSL structure
cfg_subsys_op Tru64 perform a subsystem-specific operation
csyr IRIX perform the symmetric rank 1 operation A := alpha*x*( x' ) + A,
zsyr IRIX perform the symmetric rank 1 operation A := alpha*x*( x' ) + A,
getash IRIX get array session handle
newsess IRIX start a new array session
newarraysess IRIX start a new array session
setash IRIX set array session handle
akill IRIX terminate a process or array session
sid IRIX print the current array session handle and/or project ID
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service