From 47a7a0b00d5073ec20dd2b0339392d79710651d4 Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Fri, 15 Nov 2002 01:09:44 +0000 Subject: [PATCH] Move data structure initialization and default values to api/slurm.h. --- src/api/Makefile.am | 1 + src/api/init_msg.c | 79 ++++++++++++++++++++++++++++++++ src/api/slurm.h | 47 +++++++++++++++++-- src/common/read_config.c | 1 + src/common/slurm_protocol_defs.c | 54 ++-------------------- src/common/slurm_protocol_defs.h | 32 +------------ 6 files changed, 127 insertions(+), 87 deletions(-) create mode 100644 src/api/init_msg.c diff --git a/src/api/Makefile.am b/src/api/Makefile.am index 62833b9658b..7a791c9dbf4 100644 --- a/src/api/Makefile.am +++ b/src/api/Makefile.am @@ -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 \ diff --git a/src/api/init_msg.c b/src/api/init_msg.c new file mode 100644 index 00000000000..0e05e38a835 --- /dev/null +++ b/src/api/init_msg.c @@ -0,0 +1,79 @@ +/*****************************************************************************\ + * 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; +} + + diff --git a/src/api/slurm.h b/src/api/slurm.h index 65c9adf620c..e360e9801f9 100644 --- a/src/api/slurm.h +++ b/src/api/slurm.h @@ -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, diff --git a/src/common/read_config.c b/src/common/read_config.c index af77b466966..8fbcd97050b 100644 --- a/src/common/read_config.c +++ b/src/common/read_config.c @@ -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> diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c index 8f39b78e95e..85407944634 100644 --- a/src/common/slurm_protocol_defs.c +++ b/src/common/slurm_protocol_defs.c @@ -1,6 +1,7 @@ /*****************************************************************************\ * 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[] = { diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h index 51ab9676535..a285b244087 100644 --- a/src/common/slurm_protocol_defs.h +++ b/src/common/slurm_protocol_defs.h @@ -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 -- GitLab