Skip to content
Snippets Groups Projects
Commit 47a7a0b0 authored by Moe Jette's avatar Moe Jette
Browse files

Move data structure initialization and default values to api/slurm.h.

parent 860aa5dc
No related branches found
No related tags found
No related merge requests found
......@@ -16,6 +16,7 @@ libslurm_la_SOURCES = \
complete.c \
config_info.c \
free_msg.c \
init_msg.c \
job_info.c \
job_step_info.c \
node_info.c \
......
/*****************************************************************************\
* init_msg.c - initialize RPC messages contents
*****************************************************************************
* Copyright (C) 2002 The Regents of the University of California.
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
* Written by moe jette <jette1@llnl.gov>.
* UCRL-CODE-2002-040.
*
* This file is part of SLURM, a resource management program.
* For details, see <http://www.llnl.gov/linux/slurm/>.
*
* SLURM is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* SLURM 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 General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along
* with SLURM; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
\*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <errno.h>
#include <stdio.h>
#include <src/api/slurm.h>
#include <src/common/slurm_protocol_api.h>
void slurm_init_job_desc_msg(job_desc_msg_t * job_desc_msg)
{
job_desc_msg->contiguous =
(uint16_t) SLURM_JOB_DESC_DEFAULT_CONTIGUOUS;
job_desc_msg->kill_on_node_fail =
(uint16_t) SLURM_JOB_DESC_DEFAULT_KILL_NODE_FAIL;
job_desc_msg->environment = SLURM_JOB_DESC_DEFAULT_ENVIRONMENT;
job_desc_msg->env_size = SLURM_JOB_DESC_DEFAULT_ENV_SIZE;
job_desc_msg->features = SLURM_JOB_DESC_DEFAULT_FEATURES;
job_desc_msg->job_id = SLURM_JOB_DESC_DEFAULT_JOB_ID;
job_desc_msg->name = SLURM_JOB_DESC_DEFAULT_JOB_NAME;
job_desc_msg->min_procs = SLURM_JOB_DESC_DEFAULT_MIN_PROCS;
job_desc_msg->min_memory = SLURM_JOB_DESC_DEFAULT_MIN_MEMORY;
job_desc_msg->min_tmp_disk= SLURM_JOB_DESC_DEFAULT_MIN_TMP_DISK;
job_desc_msg->partition = SLURM_JOB_DESC_DEFAULT_PARTITION;
job_desc_msg->priority = SLURM_JOB_DESC_DEFAULT_PRIORITY;
job_desc_msg->req_nodes = SLURM_JOB_DESC_DEFAULT_REQ_NODES;
job_desc_msg->script = SLURM_JOB_DESC_DEFAULT_JOB_SCRIPT;
job_desc_msg->shared = (uint16_t) SLURM_JOB_DESC_DEFAULT_SHARED;
job_desc_msg->time_limit = SLURM_JOB_DESC_DEFAULT_TIME_LIMIT;
job_desc_msg->num_procs = SLURM_JOB_DESC_DEFAULT_NUM_PROCS;
job_desc_msg->num_nodes = SLURM_JOB_DESC_DEFAULT_NUM_NODES;
job_desc_msg->err = NULL;
job_desc_msg->in = NULL;
job_desc_msg->out = NULL;
job_desc_msg->user_id = SLURM_JOB_DESC_DEFAULT_USER_ID;
job_desc_msg->work_dir = SLURM_JOB_DESC_DEFAULT_WORKING_DIR;
}
void slurm_init_part_desc_msg (update_part_msg_t * update_part_msg)
{
update_part_msg->name = NULL;
update_part_msg->nodes = NULL;
update_part_msg->allow_groups = NULL;
update_part_msg->max_time = (uint32_t) NO_VAL;
update_part_msg->max_nodes = (uint32_t) NO_VAL;
update_part_msg->default_part = (uint16_t) NO_VAL;
update_part_msg->root_only = (uint16_t) NO_VAL;
update_part_msg->shared = (uint16_t) NO_VAL;
update_part_msg->state_up = (uint16_t) NO_VAL;
}
......@@ -29,12 +29,46 @@
#define _SLURM_H
#include <stdio.h> /* for FILE definitions */
#include <src/common/slurm_protocol_defs.h>
/*****************************************************************************\
* DEFINITIONS FOR INPUT VALUES
\*****************************************************************************/
/* INFINITE is used to identify unlimited configurations, */
/* eg. the maximum count of nodes any job may use in some partition */
#define INFINITE (0xffffffff)
#define NO_VAL (0xfffffffe)
#define SLURM_JOB_DESC_DEFAULT_CONTIGUOUS NO_VAL
#define SLURM_JOB_DESC_DEFAULT_KILL_NODE_FAIL NO_VAL
#define SLURM_JOB_DESC_DEFAULT_ENVIRONMENT ((char **) NULL)
#define SLURM_JOB_DESC_DEFAULT_ENV_SIZE 0
#define SLURM_JOB_DESC_DEFAULT_FEATURES NULL
#define SLURM_JOB_DESC_DEFAULT_JOB_ID NO_VAL
#define SLURM_JOB_DESC_DEFAULT_JOB_NAME NULL
#define SLURM_JOB_DESC_DEFAULT_MIN_PROCS NO_VAL
#define SLURM_JOB_DESC_DEFAULT_MIN_MEMORY NO_VAL
#define SLURM_JOB_DESC_DEFAULT_MIN_TMP_DISK NO_VAL
#define SLURM_JOB_DESC_DEFAULT_PARTITION NULL
#define SLURM_JOB_DESC_DEFAULT_PRIORITY NO_VAL
#define SLURM_JOB_DESC_DEFAULT_REQ_NODES NULL
#define SLURM_JOB_DESC_DEFAULT_JOB_SCRIPT NULL
#define SLURM_JOB_DESC_DEFAULT_SHARED NO_VAL
#define SLURM_JOB_DESC_DEFAULT_TIME_LIMIT NO_VAL
#define SLURM_JOB_DESC_DEFAULT_NUM_PROCS NO_VAL
#define SLURM_JOB_DESC_DEFAULT_NUM_NODES NO_VAL
#define SLURM_JOB_DESC_DEFAULT_USER_ID NO_VAL
#define SLURM_JOB_DESC_DEFAULT_WORKING_DIR NULL
/*****************************************************************************\
* RESOURCE ALLOCATION FUNCTIONS
\*****************************************************************************/
/* slurm_init_job_desc_msg - set default job descriptor values */
extern void slurm_init_job_desc_msg (job_desc_msg_t * job_desc_msg);
/*
* slurm_allocate_resources - allocate resources for a job request
* NOTE: free the response using slurm_free_resource_allocation_response_msg
......@@ -182,7 +216,7 @@ extern int slurm_load_jobs (time_t update_time,
job_info_msg_t **job_info_msg_pptr);
/*
* slurm_free_job_info - free the job information response message
* slurm_free_job_info_msg - free the job information response message
* NOTE: buffer is loaded by slurm_load_job.
*/
extern void slurm_free_job_info_msg (job_info_msg_t * job_buffer_ptr);
......@@ -249,8 +283,8 @@ extern void slurm_print_job_step_info ( FILE*, job_step_info_t * step_ptr );
\*****************************************************************************/
/*
* slurm_load_node - issue RPC to get slurm all node configuration information
* if changed since update_time
* slurm_load_node - issue RPC to get slurm all node configuration
* information if changed since update_time
* NOTE: free the response using slurm_free_node_info_msg
*/
extern int slurm_load_node (time_t update_time,
......@@ -286,9 +320,12 @@ extern int slurm_update_node ( update_node_msg_t * node_msg ) ;
* SLURM PARTITION CONFIGURATION READ/PRINT/UPDATE FUNCTIONS
\*****************************************************************************/
/* slurm_init_part_desc_msg - set default partition configuration parameters */
void slurm_init_part_desc_msg (update_part_msg_t * update_part_msg);
/*
* slurm_load_partitions - issue RPC to get slurm all partition configuration
* information if changed since update_time
* slurm_load_partitions - issue RPC to get slurm all partition
* configuration information if changed since update_time
* NOTE: free the response using slurm_free_partition_info_msg
*/
extern int slurm_load_partitions (time_t update_time,
......
......@@ -39,6 +39,7 @@
#include <time.h>
#include <unistd.h>
#include <src/api/slurm.h>
#include <src/common/hostlist.h>
#include <src/common/log.h>
#include <src/common/macros.h>
......
/*****************************************************************************\
* slurm_protocol_defs.c - functions for initializing and releasing
* storage for RPC data structures
* storage for RPC data structures. these are the functions used by
* the slurm daemons directly, not for user client use.
*****************************************************************************
* Copyright (C) 2002 The Regents of the University of California.
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
......@@ -39,7 +40,7 @@
#include <src/common/slurm_protocol_defs.h>
#include <src/common/xmalloc.h>
/* short messages*/
void slurm_free_last_update_msg(last_update_msg_t * msg)
{
xfree(msg);
......@@ -282,55 +283,6 @@ void slurm_free_kill_tasks_msg(kill_tasks_msg_t * msg)
}
}
/**********************
Init functions
**********************/
void slurm_init_job_desc_msg(job_desc_msg_t * job_desc_msg)
{
job_desc_msg->contiguous =
(uint16_t) SLURM_JOB_DESC_DEFAULT_CONTIGUOUS;
job_desc_msg->kill_on_node_fail =
(uint16_t) SLURM_JOB_DESC_DEFAULT_KILL_NODE_FAIL;
job_desc_msg->environment = SLURM_JOB_DESC_DEFAULT_ENVIRONMENT;
job_desc_msg->env_size = SLURM_JOB_DESC_DEFAULT_ENV_SIZE;
job_desc_msg->features = SLURM_JOB_DESC_DEFAULT_FEATURES;
job_desc_msg->job_id = SLURM_JOB_DESC_DEFAULT_JOB_ID;
job_desc_msg->name = SLURM_JOB_DESC_DEFAULT_JOB_NAME;
job_desc_msg->min_procs = SLURM_JOB_DESC_DEFAULT_MIN_PROCS;
job_desc_msg->min_memory = SLURM_JOB_DESC_DEFAULT_MIN_MEMORY;
job_desc_msg->min_tmp_disk= SLURM_JOB_DESC_DEFAULT_MIN_TMP_DISK;
job_desc_msg->partition = SLURM_JOB_DESC_DEFAULT_PARTITION;
job_desc_msg->priority = SLURM_JOB_DESC_DEFAULT_PRIORITY;
job_desc_msg->req_nodes = SLURM_JOB_DESC_DEFAULT_REQ_NODES;
job_desc_msg->script = SLURM_JOB_DESC_DEFAULT_JOB_SCRIPT;
job_desc_msg->shared = (uint16_t) SLURM_JOB_DESC_DEFAULT_SHARED;
job_desc_msg->time_limit = SLURM_JOB_DESC_DEFAULT_TIME_LIMIT;
job_desc_msg->num_procs = SLURM_JOB_DESC_DEFAULT_NUM_PROCS;
job_desc_msg->num_nodes = SLURM_JOB_DESC_DEFAULT_NUM_NODES;
job_desc_msg->err = NULL;
job_desc_msg->in = NULL;
job_desc_msg->out = NULL;
job_desc_msg->user_id = SLURM_JOB_DESC_DEFAULT_USER_ID;
job_desc_msg->work_dir = SLURM_JOB_DESC_DEFAULT_WORKING_DIR;
}
void slurm_init_part_desc_msg(update_part_msg_t * update_part_msg)
{
update_part_msg->name = NULL;
update_part_msg->nodes = NULL;
update_part_msg->allow_groups = NULL;
update_part_msg->max_time = (uint32_t) NO_VAL;
update_part_msg->max_nodes = (uint32_t) NO_VAL;
update_part_msg->default_part = (uint16_t) NO_VAL;
update_part_msg->root_only = (uint16_t) NO_VAL;
update_part_msg->shared = (uint16_t) NO_VAL;
update_part_msg->state_up = (uint16_t) NO_VAL;
}
char *job_state_string(enum job_states inx)
{
static char *job_state_string[] = {
......
......@@ -68,12 +68,6 @@ enum task_flag_vals {
TASK_UNUSED2 = 0x4
};
/* INFINITE is used to identify unlimited configurations, */
/* eg. the maximum count of nodes any job may use in some partition */
#define INFINITE (0xffffffff)
#define NO_VAL (0xfffffffe)
/* last entry must be STATE_END, keep in sync with node_state_string */
/* if a node ceases to respond, its last state is ORed with NODE_STATE_NO_RESPOND */
enum node_states {
......@@ -620,8 +614,7 @@ void inline slurm_free_task_exit_msg(task_exit_msg_t * msg);
void inline slurm_free_kill_tasks_msg(kill_tasks_msg_t * msg);
void inline
slurm_free_reattach_tasks_streams_msg(reattach_tasks_streams_msg_t * msg);
void inline slurm_free_revoke_credential_msg(revoke_credential_msg_t *
msg);
void inline slurm_free_revoke_credential_msg(revoke_credential_msg_t * msg);
extern char *job_dist_string(uint16_t inx);
extern char *job_state_string(enum job_states inx);
......@@ -629,27 +622,4 @@ extern char *job_state_string_compact(enum job_states inx);
extern char *node_state_string(enum node_states inx);
extern char *node_state_string_compact(enum node_states inx);
#define SLURM_JOB_DESC_DEFAULT_CONTIGUOUS NO_VAL
#define SLURM_JOB_DESC_DEFAULT_KILL_NODE_FAIL NO_VAL
#define SLURM_JOB_DESC_DEFAULT_ENVIRONMENT ((char **) NULL)
#define SLURM_JOB_DESC_DEFAULT_ENV_SIZE 0
#define SLURM_JOB_DESC_DEFAULT_FEATURES NULL
#define SLURM_JOB_DESC_DEFAULT_JOB_ID NO_VAL
#define SLURM_JOB_DESC_DEFAULT_JOB_NAME NULL
#define SLURM_JOB_DESC_DEFAULT_MIN_PROCS NO_VAL
#define SLURM_JOB_DESC_DEFAULT_MIN_MEMORY NO_VAL
#define SLURM_JOB_DESC_DEFAULT_MIN_TMP_DISK NO_VAL
#define SLURM_JOB_DESC_DEFAULT_PARTITION NULL
#define SLURM_JOB_DESC_DEFAULT_PRIORITY NO_VAL
#define SLURM_JOB_DESC_DEFAULT_REQ_NODES NULL
#define SLURM_JOB_DESC_DEFAULT_JOB_SCRIPT NULL
#define SLURM_JOB_DESC_DEFAULT_SHARED NO_VAL
#define SLURM_JOB_DESC_DEFAULT_TIME_LIMIT NO_VAL
#define SLURM_JOB_DESC_DEFAULT_NUM_PROCS NO_VAL
#define SLURM_JOB_DESC_DEFAULT_NUM_NODES NO_VAL
#define SLURM_JOB_DESC_DEFAULT_USER_ID NO_VAL
#define SLURM_JOB_DESC_DEFAULT_WORKING_DIR NULL
void slurm_init_job_desc_msg(job_desc_msg_t * job_desc_msg);
void slurm_init_part_desc_msg(update_part_msg_t * update_part_msg);
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment