<?xml version="1.0" encoding="utf-8"?>
<data>
    <!--
 * Copyright (C) 1994-2018 Altair Engineering, Inc.
 * For more information, contact Altair at www.altair.com.
 *
 * This file is part of the PBS Professional ("PBS Pro") software.
 *
 * Open Source License Information:
 *
 * PBS Pro is free software. You can redistribute it and/or modify it under the
 * terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, either version 3 of the License, or (at your option) any
 * later version.
 *
 * PBS Pro is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Commercial License Information:
 *
 * For a copy of the commercial license terms and conditions,
 * go to: (http://www.pbspro.com/UserArea/agreement.html)
 * or contact the Altair Legal Department.
 *
 * Altair’s dual-license business model allows companies, individuals, and
 * organizations to create proprietary derivative works of PBS Pro and
 * distribute them - whether embedded or bundled with other software -
 * under a commercial license agreement.
 *
 * Use of Altair’s trademarks, including but not limited to "PBS™",
 * "PBS Professional®", and "PBS Pro™" and Altair’s logos is subject to Altair's
 * trademark licensing policies.

	NOTE (Server File)

	resc_def_all is the array of attribute definitions for resc.
    Each legal job attribute is defined here.
    The entries for each attribute are (see attribute.h):
       name,
       decode function,
       encode function,
       set function,
       compare function,
       free value space function,
       action function,
       access permission flags,
       value type,
	   member_at_entlim,
	   member_at_struct,

	 NOTE (ECL File)

	 The entries for each attribute are (see attribute.h):\n
       name,
       type,
       flag,
       verify datatype function,
       verify value function
    -->
   <head>
      <SVR>
      #include &lt;pbs_config.h&gt;
      #include &lt;sys/types.h&gt;
      #include &lt;stdlib.h&gt;
      #include &lt;stdio.h&gt;
      #include &lt;ctype.h&gt;
      #include "pbs_ifl.h"
      #include "server_limits.h"
      #include &lt;string.h&gt;
      #include "list_link.h"
      #include "attribute.h"
      #include "resource.h"
      #include "pbs_error.h"
      #include "pbs_nodes.h"
      #include "svrfunc.h"
      #include "grunt.h"

      extern int set_node_ct(resource *, attribute *, void *, int, int actmode);
      extern int decode_place(struct attribute *, char *, char *, char *);
      extern int preempt_targets_action(resource *presc, attribute *pattr, void *pobject, int type, int actmode);
      extern int action_soft_walltime(resource *presc, attribute *pattr, void *pobject, int type, int actmode);
      extern int action_walltime(resource *presc, attribute *pattr, void *pobject, int type, int actmode);
      extern int action_min_walltime(resource *presc, attribute *pattr, void *pobject, int type, int actmode);
      extern int action_max_walltime(resource *presc, attribute *pattr, void *pobject, int type, int actmode);
      extern int zero_or_positive_action  (resource *, attribute *, void *, int, int actmode);
      #ifndef PBS_MOM
      extern int host_action(resource *, attribute *, void *, int, int actmode);
      extern int resc_select_action(resource *, attribute *, void *, int, int);
      #endif /* PBS_MOM */
      /* ordered by guess to put ones most often used at front */

      static resource_def svr_resc_defm[] = {
      </SVR>
      <ECL>
      #include &lt;pbs_config.h&gt;
      #include &lt;sys/types.h&gt;
      #include "pbs_ifl.h"
      #include "pbs_ecl.h"

      ecl_attribute_def ecl_svr_resc_def[] = {
      </ECL>
   </head>
   <attributes>
   /*cput*/
	<member_name><both>"cput"</both></member_name>
	<member_at_decode>decode_time</member_at_decode>
	<member_at_encode>encode_time</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_ALTRUN</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_time</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mem*/
	<member_name><both>"mem"</both></member_name>
	<member_at_decode>decode_size</member_at_decode>
	<member_at_encode>encode_size</member_at_encode>
	<member_at_set>set_size</member_at_set>
	<member_at_comp>comp_size</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_RASSN | ATR_DFLAG_ANASSN |ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SIZE</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_size</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*walltime*/
	<member_name><both>"walltime"</both></member_name>			<!-- wall clock time limit for a job  -->
	<member_at_decode>decode_time</member_at_decode>
	<member_at_encode>encode_time</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>action_walltime</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_ALTRUN</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_time</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
  /* soft_walltime */
        <member_name><both>"soft_walltime"</both></member_name>        <!-- soft wall clock time limit for a job  -->
        <member_at_decode>decode_time</member_at_decode>
        <member_at_encode>encode_time</member_at_encode>
        <member_at_set>set_l</member_at_set>
        <member_at_comp>comp_l</member_at_comp>
        <member_at_free>free_null</member_at_free>
        <member_at_action>action_soft_walltime</member_at_action>
        <member_at_flags><both>MGR_ONLY_SET | ATR_DFLAG_ALTRUN</both></member_at_flags>
        <member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
        <member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
        <member_at_struct>NULL</member_at_struct>
        <member_verify_function>
        <ECL>verify_datatype_time</ECL>
        <ECL>NULL_VERIFY_VALUE_FUNC</ECL>
        </member_verify_function>
   </attributes>

   <attributes>
   /*min_walltime*/
	<member_name><both>"min_walltime"</both></member_name>		<!-- min wall clock time limit for a job  -->
	<member_at_decode>decode_time</member_at_decode>
	<member_at_encode>encode_time</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>action_min_walltime</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_ALTRUN</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_time</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*max_walltime*/
	<member_name><both>"max_walltime"</both></member_name>		<!-- max wall clock time limit for a job  -->
	<member_at_decode>decode_time</member_at_decode>
	<member_at_encode>encode_time</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>action_max_walltime</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_ALTRUN</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_time</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*ncpus*/
	<member_name><both>"ncpus"</both></member_name>                        <!-- number of processors for job  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>zero_or_positive_action</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_RASSN | ATR_DFLAG_ANASSN | ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes flag = 'SVR'>
   /*naccelerators*/
	<member_name><SVR>"naccelerators"</SVR></member_name>	<!-- number of accelerators  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_RASSN | ATR_DFLAG_ANASSN | ATR_DFLAG_CVTSLT</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_LONG</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes>
   /*select*/
	<member_name><both>"select"</both></member_name>			<!-- user specification of select  -->
	<member_at_decode>decode_select</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>#ifdef PBS_MOM
							NULL_FUNC
					  #else
							resc_select_action
					  #endif</member_at_action>
	<member_at_flags><both>READ_WRITE</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_select</ECL>
	<ECL>verify_value_select</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*place*/
	<member_name><both>"place"</both></member_name>			<!-- user specification of place  -->
	<member_at_decode>decode_place</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*nodes*/
	<member_name><both>"nodes"</both></member_name>			<!-- user specification of nodes  -->
	<member_at_decode>decode_nodes</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>set_node_ct</member_at_action>
	<member_at_flags><both>READ_WRITE</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_nodes</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*nodect*/
	<member_name><both>"nodect"</both></member_name>		<!-- count of number of nodes requested  -->
	<member_at_decode>decode_l</member_at_decode>			<!-- read-only, set by server whenever   -->
	<member_at_encode>encode_l</member_at_encode>			<!-- "nodes" is set, for use by sched    -->
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_ONLY | ATR_DFLAG_MGWR | ATR_DFLAG_RASSN</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*arch*/
	<member_name><both>"arch"</both></member_name>				<!-- system architecture type  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_CVTSLT | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes flag = 'SVR'>
   /*nchunk*/
	<member_name><SVR>"nchunk"</SVR></member_name>		<!-- number of chunks  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>NO_USER_SET | ATR_DFLAG_CVTSLT</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_LONG</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
   /*vntype*/
	<member_name><SVR>"vntype"</SVR></member_name>
	<member_at_decode>decode_arst</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_CVTSLT</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_ARST</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes>
   /*MPIPROCS*/
	<member_name><both>MPIPROCS</both></member_name>		<!-- "mpiprocs", special resource for mpi  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>zero_or_positive_action</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_RASSN | ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*OMPTHREADS*/
	<member_name><both>OMPTHREADS</both></member_name>		<!-- "ompthreads", special resource for OpenMP  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>zero_or_positive_action</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*cpupercent*/
	<member_name><both>"cpupercent"</both></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*energy*/
	<member_name><both>"energy"</both></member_name>
	<member_at_decode>decode_f</member_at_decode>
	<member_at_encode>encode_f</member_at_encode>
	<member_at_set>set_f</member_at_set>
	<member_at_comp>comp_f</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_FLOAT</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_float</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*file*/
	<member_name><both>"file"</both></member_name>
	<member_at_decode>decode_size</member_at_decode>
	<member_at_encode>encode_size</member_at_encode>
	<member_at_set>set_size</member_at_set>
	<member_at_comp>comp_size</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SIZE</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_size</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
	</attributes>
   <attributes>
   /*pmem*/
	<member_name><both>"pmem"</both></member_name>
	<member_at_decode>decode_size</member_at_decode>
	<member_at_encode>encode_size</member_at_encode>
	<member_at_set>set_size</member_at_set>
	<member_at_comp>comp_size</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SIZE</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_size</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*vmem*/
	<member_name><both>"vmem"</both></member_name>
	<member_at_decode>decode_size</member_at_decode>
	<member_at_encode>encode_size</member_at_encode>
	<member_at_set>set_size</member_at_set>
	<member_at_comp>comp_size</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_RASSN | ATR_DFLAG_ANASSN | ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SIZE</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_size</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*pvmem*/
	<member_name><both>"pvmem"</both></member_name>
	<member_at_decode>decode_size</member_at_decode>
	<member_at_encode>encode_size</member_at_encode>
	<member_at_set>set_size</member_at_set>
	<member_at_comp>comp_size</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SIZE</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_size</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*nice*/
	<member_name><both>"nice"</both></member_name>				<!-- job nice value  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*pcput*/
	<member_name><both>"pcput"</both></member_name>
	<member_at_decode>decode_time</member_at_decode>
	<member_at_encode>encode_time</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_time</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*nodemask*/
	<member_name><both>"nodemask"</both></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
	</attributes>
  <attributes>
  /*hpm*/
	<member_name><both>"hpm"</both></member_name>                          <!-- Job wants Hardware Perf. Monitors  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_RASSN</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*ssinodes*/
	<member_name><both>"ssinodes"</both></member_name>                     <!-- Number of SSI "nodes" requested  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*host*/
	<member_name><both>"host"</both></member_name>				<!-- host to execute on  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>#ifdef PBS_MOM
							NULL_FUNC
					  #else
							host_action
					  #endif</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*vnode*/
	<member_name><both>"vnode"</both></member_name>			<!-- vnode name on which to execute  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*resc*/
	<member_name><both>"resc"</both></member_name>
	<member_at_decode>decode_arst</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_ARST</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*software*/
	<member_name><both>"software"</both></member_name>			<!-- software required for execution  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*site*/
	<member_name><both>"site"</both></member_name>                         <!-- site resource  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes flag = 'SVR'>
   /*exec_vnode*/
	<member_name><SVR>"exec_vnode"</SVR></member_name>		<!-- estimated place where job will run  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>NO_USER_SET</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_STR</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
   /*start_time*/
	<member_name><SVR>"start_time"</SVR></member_name>			<!-- estimated start time  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>NO_USER_SET</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_LONG</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes>
   /*mpphost*/
	<member_name><both>"mpphost"</both></member_name>			<!-- Host assosciated with MPP nodes  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mpparch*/
	<member_name><both>"mpparch"</both></member_name>			<!-- MPP PE architecture type  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mpplabels*/
	<member_name><both>"mpplabels"</both></member_name>			<!-- PE label(s) required for execution  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mppwidth*/
	<member_name><both>"mppwidth"</both></member_name>			<!-- Number of PEs  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>zero_or_positive_action</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mppdepth*/
	<member_name><both>"mppdepth"</both></member_name>			<!-- Number of threads per PE  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>zero_or_positive_action</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mppnppn*/
	<member_name><both>"mppnppn"</both></member_name>			<!-- Number of MPP processes per node  -->
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>zero_or_positive_action</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_long</ECL>
	<ECL>verify_value_zero_or_positive</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mppnodes*/
	<member_name><both>"mppnodes"</both></member_name>			<!-- Specific nodes required by app  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_ALTRUN</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mppmem*/
	<member_name><both>"mppmem"</both></member_name>			<!-- Max memory for all applications  -->
	<member_at_decode>decode_size</member_at_decode>
	<member_at_encode>encode_size</member_at_encode>
	<member_at_set>set_size</member_at_set>
	<member_at_comp>comp_size</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SIZE</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_size</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
   /*mppt*/
	<member_name><both>"mppt"</both></member_name>				<!-- total mpp time for job  -->
	<member_at_decode>decode_time</member_at_decode>
	<member_at_encode>encode_time</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_ALTRUN</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_LONG</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_time</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes macro = '#if PE_MASK != 0'>
	/* PE mask on Cray T3e (similar to nodemask on SGI O2K */
	<member_name><both>"pe_mask"</both></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes>
	/*partition*/
	<member_name><both>"partition"</both></member_name>       <!-- partition (e.g. Blue Gene)  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>NO_USER_SET | ATR_DFLAG_MOM</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_STR</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes macro = '#ifndef PBS_MOM' mflag = 'SVR'>
   /*aoe*/
	<member_name><both>"aoe"</both></member_name>       	<!-- aoe   -->
	<member_at_decode>decode_arst</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_ARST</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes macro = '#ifndef PBS_MOM' mflag = 'SVR'>
   /*eoe*/
	<member_name><both>"eoe"</both></member_name>       	<!-- eoe   -->
	<member_at_decode>decode_arst</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_ARST</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
    <attributes>
   	/*preempt_targets*/
	<member_name><both>"preempt_targets"</both></member_name>
	<member_at_decode>decode_arst</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>preempt_targets_action</member_at_action>
	<member_at_flags><both>READ_WRITE</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_ARST</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
	<member_verify_function>
	<ECL>NULL_VERIFY_DATATYPE_FUNC</ECL>
	<ECL>verify_value_preempt_targets</ECL>
	</member_verify_function>
   </attributes>
   <attributes flag = 'SVR'>
   	/*accelerator*/
	<member_name><SVR>"accelerator"</SVR></member_name> <!-- there is an accelerator in state="UP" on this host  -->
	<member_at_decode>decode_b</member_at_decode>
	<member_at_encode>encode_b</member_at_encode>
	<member_at_set>set_b</member_at_set>
	<member_at_comp>comp_b</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_CVTSLT</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_BOOL</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
   /*accelerator_model*/
	<member_name><SVR>"accelerator_model"</SVR></member_name>		<!-- accelerator model/family  -->
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_CVTSLT</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_STR</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
   /*accelerator_memory*/
	<member_name><SVR>"accelerator_memory"</SVR></member_name>	<!-- memory associated with the accelerator  -->
	<member_at_decode>decode_size</member_at_decode>
	<member_at_encode>encode_size</member_at_encode>
	<member_at_set>set_size</member_at_set>
	<member_at_comp>comp_size</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_RASSN | ATR_DFLAG_ANASSN |ATR_DFLAG_CVTSLT</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_SIZE</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
   /*accelerator_group*/
	<member_name><SVR>"accelerator_group"</SVR></member_name>
	<member_at_decode>decode_arst</member_at_decode>
	<member_at_encode>encode_arst</member_at_encode>
	<member_at_set>set_arst</member_at_set>
	<member_at_comp>comp_arst</member_at_comp>
	<member_at_free>free_arst</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_CVTSLT</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_ARST</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
   /*pstate*/
	<member_name><SVR>"pstate"</SVR></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_MOM</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_STR</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes>
   /*hbmem*/
	<member_name><both>"hbmem"</both></member_name>
	<member_at_decode>decode_size</member_at_decode>
	<member_at_encode>encode_size</member_at_encode>
	<member_at_set>set_size</member_at_set>
	<member_at_comp>comp_size</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><both>READ_WRITE | ATR_DFLAG_MOM | ATR_DFLAG_RASSN | ATR_DFLAG_ANASSN |ATR_DFLAG_CVTSLT</both></member_at_flags>
	<member_at_type><both>ATR_TYPE_SIZE</both></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>(struct resource_def *)0</member_at_struct>
	<member_verify_function>
	<ECL>verify_datatype_size</ECL>
	<ECL>NULL_VERIFY_VALUE_FUNC</ECL>
	</member_verify_function>
   </attributes>
   <attributes flag = 'SVR'>
   /*pgov*/
	<member_name><SVR>"pgov"</SVR></member_name>
	<member_at_decode>decode_str</member_at_decode>
	<member_at_encode>encode_str</member_at_encode>
	<member_at_set>set_str</member_at_set>
	<member_at_comp>comp_str</member_at_comp>
	<member_at_free>free_str</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_MOM</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_STR</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
   /*pcap_node*/
	<member_name><SVR>"pcap_node"</SVR></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>zero_or_positive_action</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_MOM</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_LONG</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
   /*pcap_accelerator*/
	<member_name><SVR>"pcap_accelerator"</SVR></member_name>
	<member_at_decode>decode_l</member_at_decode>
	<member_at_encode>encode_l</member_at_encode>
	<member_at_set>set_l</member_at_set>
	<member_at_comp>comp_l</member_at_comp>
	<member_at_free>free_null</member_at_free>
	<member_at_action>zero_or_positive_action</member_at_action>
	<member_at_flags><SVR>READ_WRITE | ATR_DFLAG_MOM</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_LONG</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <attributes flag = 'SVR'>
    /* the definition for the "unknown" resource MUST be last */
	<member_name><SVR>"|unknown|"</SVR></member_name>
	<member_at_decode>decode_unkn</member_at_decode>
	<member_at_encode>encode_unkn</member_at_encode>
	<member_at_set>set_unkn</member_at_set>
	<member_at_comp>comp_unkn</member_at_comp>
	<member_at_free>free_unkn</member_at_free>
	<member_at_action>NULL_FUNC</member_at_action>
	<member_at_flags><SVR>READ_WRITE</SVR></member_at_flags>
	<member_at_type><SVR>ATR_TYPE_LIST</SVR></member_at_type>
	<member_at_entlim>PBS_ENTLIM_NOLIMIT</member_at_entlim>
	<member_at_struct>NULL</member_at_struct>
   </attributes>
   <tail>
      <SVR>
	};
	int           svr_resc_size = sizeof(svr_resc_defm) / sizeof(resource_def);
	resource_def *svr_resc_def  = svr_resc_defm;
	int	      svr_resc_unk  = sizeof(svr_resc_defm) / sizeof(resource_def)-1;
      </SVR>
      <ECL>
	};
	int ecl_svr_resc_size = sizeof(ecl_svr_resc_def)/sizeof(ecl_attribute_def);
      </ECL>
   </tail>
</data>
