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

  man pages->Tru64 Unix man pages -> cfg_psm_catops (3)              



NAME    [Toc]    [Back]

       cfg_psm_catops,       cfg_psm_catadd,      cfg_psm_catrem,
       cfg_psm_catget  - Perform category operations on the  Process
 Set Manager (PSM) set

SYNOPSIS    [Toc]    [Back]

       Library:   configuration   management  library,  libcfg.a.
       #include <cfg.h>

       cfg_status_t cfg_psm_catadd(
               const char *node,
               const char *catnam ); cfg_status_t cfg_psm_catrem(
               const char *node,
               const char *catnam ); cfg_status_t cfg_psm_catget(
               const char *node,
               const char *catnam,
               psm_catrsp_t **catrsp ); void cfg_psm_catfree(
               psm_catrsp_t **catrsp );

DESCRIPTION    [Toc]    [Back]

       Refer to PSM(4) for a description of the Process Set  Manager,
  which supports the functions described in this reference

   Functions    [Toc]    [Back]
       Use these functions as follows: Adds the category  defined
       by  the  variable  catnam  to  the process set on the host
       defined by the value of host node.  Removes  the  category
       defined by the variable catnam from the process set on the
       host defined by the value of  host  node.   Retrieves  the
       category  information  from  the process set on host node.
       Information on all categories is returned if the value  of
       catnam is _PSM_ALLCAT, otherwise the data returned is limited
 to category catnam. When the  response  is  complete,
       you  must  free memory using cfg_psm_catfree().  Frees the
       memory allocated to the cfg_psm_catget() function.

   Operation and Usage Instructions    [Toc]    [Back]
       Upon successful completion of the  cfg_psm_catget()  function,
  the  catrsp  parameter points to an array of one or
       more struct  psm_catrsp_s  elements.  These  elements  are
       declared  in  the  psm.h  header  file  and are duplicated
       below.  Each element represents a specific category.

       In case of an error, the catrsp parameter is set to NULL:
        typedef struct psm_catrsp_s {
           unsigned int crs_listidx;     /*  category  number  in
       list */
           unsigned  int  crs_listcnt;     /* total categories in
       list */
           unsigned int crs_total;       /* total matching  categories
           unsigned int crs_memcnt;      /* number of members */
             char crs_cat[PSM_CATLEN];  /* category name */
            } psm_catrsp_t;

       These  elements  are defined as follows: crs_listidx holds
       the index (starting at 1)  of  a  category  entry  in  the
       array.  crs_listcnt and crs_total hold the total number of
       categories. Both values will always be the same  when  you
       use  the  cfg_psm_catget()  function.  crs_memcnt contains
       the number of process instances  in  the  category,  where
       each  instance represents a process. Processes included in
       this count might be terminated. Refer to cfg_psm_memops(3)
       for more information.  crs_cat is the NULL-terminated category
 name. In the case of a generic query and no  instantiated
  categories,  an  array  of one element is returned
       with all fields set to 0.

       A catnam name string must not be longer than the number of
       bytes  specified by the value of PSM_CATLEN, including the
       trailing NULL.  The underlying KSM only  supports  a  flat
       namespace.  To  avoid  potential problems between category
       names, developers must use a common string followed by  an
       underscore  preceding  every name. For example, CPQ_kewld,
       where CPQ_ is the string  common  to  all  names.  Systemdefined
 categories never contain an underscore.

       There are no other restrictions on the value of catnam.

       A list of some system-defined categories which are instantiated
 at boot time is available from the  external  array
       const  char *_psm_categories[]. You can determine the number
 of strings in this array by using const int _psm_ncategories.
   Additionally,   you   can  use  the  _PSM_CAT_*
       indexes to locate specific category names  in  const  char
       *_psm_categories[]. These category names are most commonly
       used by processes that  self-register  their  instance(s).
       See the cfg.h header file and cfg_psm_memops(3).

       See  PSM(4)  for  more information on the Process Set Manager.

RESTRICTIONS    [Toc]    [Back]

       The value of node is specified as _PSM_MYNODE when operating
  on  the  process  set of the local host, otherwise it
       contains the name of a target host. Future implementations
       will  permit  _PSM_ALLNODE to gather cluster-wide information,
 or a comma-separated list of host names. A  successful
 response from any node guarantees a CFG_SUCCESS return
       to the caller (errors from the other nodes  are  ignored).
       In  the present implementation, multinode queries return a
       ENOTSUP subsystem error.

RETURN VALUES    [Toc]    [Back]

       Upon   successful   completion,   the    cfg_psm_catadd(),
       cfg_psm_catrem(),  and  cfg_psm_catget()  functions return
       CFG_SUCCESS. Other return values indicate  that  an  error
       has occurred. For information about handling return values
       from routines in  the  configuration  management  library,
       refer to libcfg(3).

ERRORS    [Toc]    [Back]

       The  following  subsystem  errors  might  be merged with a
       CFG_FRAME_SUCCESS response: An existing category  of  this
       name  was  found  when performing an add operation.  There
       was a general KSM failure during an  add  operation.   The
       PSM  process set is not registered with KSM.  The category
       was not found during a remove or get operation.   User  or
       kernel  memory  allocation  failed.  The maximum number of
       categories is exceeded  during  an  add  operation.   This
       operation is not yet implemented.

EXAMPLES    [Toc]    [Back]

       The  following example adds the abcd category to the local

              #include <cfg.h>
                    #include <stdio.h>

                    cfg_status_t retval;

                    if  ((retval  =   cfg_psm_catadd(_PSM_MYNODE,
              "abcd"))  !=  CFG_SUCCESS)         print_error(retval);

              The following example retrieves all categories  and
              prints the names of those with four or more process

                    #include <cfg.h>
                    #include <stdio.h>

                    struct psm_catrsp_s *catrsp, *csp, *csp_e;
                    cfg_status_t retval;

                    retval     =      cfg_psm_catget(_PSM_MYNODE,
              _PSM_ALLCAT, &catrsp;);
                    if    (retval   !=   CFG_SUCCESS)   {
                    } else {        csp = catrsp;        csp_e  =
              catrsp  +  csp->crs_listcnt;          while  (csp <
              csp_e)  {              if  (csp->crs_memcnt  >=  4)
                           puts(csp->crs_cat);             csp++;
                     }        cfg_psm_catfree(catrsp);

SEE ALSO    [Toc]    [Back]

       Functions: fork(2), libcfg(3), cfg_psm_memops(3) wait(2)

       Files: PSM(4)

[ Back ]
 Similar pages
Name OS Title
cfg_psm_memadd Tru64 Perform member operations on the Process Set manager (PSM) set
cfg_psm_memrem Tru64 Perform member operations on the Process Set manager (PSM) set
cfg_psm_memget Tru64 Perform member operations on the Process Set manager (PSM) set
cfg_psm_memops Tru64 Perform member operations on the Process Set manager (PSM) set
volplex Tru64 Perform Logical Storage Manager operations on plexes
volsd Tru64 Perform Logical Storage Manager operations on subdisks
vxrlink HP-UX perform VERITAS Volume Manager operations on RLINKs
vxrvg HP-UX perform VERITAS Volume Manager operations on RVGs
vxsd HP-UX perform VERITAS Volume Manager operations on subdisks
vxvol HP-UX perform VERITAS Volume Manager operations on volumes
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service