diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 647c70213135e41cc96d980f50ee55602b9611ed..0df2e7f2b70233225193677af8aa65a2d5966b84 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -28,7 +28,6 @@ libcommon_la_SOURCES = xmalloc.c \ pack.c \ xerrno.c \ hostlist.c \ - nodelist.c \ slurm_protocol_api.c \ slurm_protocol_pack.c \ slurm_protocol_util.c \ @@ -50,7 +49,6 @@ noinst_HEADERS = xmalloc.h \ pack.h \ xerrno.h \ hostlist.h \ - nodelist.h \ slurm_protocol_api.h \ slurm_protocol_pack.h \ slurm_protocol_util.h \ diff --git a/src/common/bitstring.c b/src/common/bitstring.c index 3a09fead78ef0f17842503e5530c8d54f7a37480..9d84aeaa78bb933521f33c4fd601d637469e972e 100644 --- a/src/common/bitstring.c +++ b/src/common/bitstring.c @@ -13,7 +13,8 @@ #include <stdio.h> #include <string.h> -#include "bitstring.h" +#include <src/common/bitstring.h> +#include <src/common/xmalloc.h> /* * Allocate a bitstring. @@ -551,3 +552,53 @@ bit_fmt(char *str, int len, bitstr_t *b) return str; } + +/* + * bitfmt2int - convert a string describing bitmap (output from bit_fmt, + * e.g. "0-30,45,50-60") into an array of integer (start/end) pairs + * terminated by -1 (e.g. "0, 30, 45, 45, 50, 60, -1") + * input: bitmap string as produced by bitstring.c : bitfmt + * output: an array of integers + * NOTE: the caller must xfree the returned memory + */ +int * +bitfmt2int (char *bit_str_ptr) +{ + int *bit_int_ptr, i, bit_inx, size, sum, start_val; + + if (bit_str_ptr == NULL) + return NULL; + size = strlen (bit_str_ptr) + 1; + bit_int_ptr = xmalloc ( sizeof (int *) * size); + if (bit_int_ptr == NULL) + return NULL; + + bit_inx = sum = 0; + start_val = -1; + for (i = 0; i < size; i++) { + if (bit_str_ptr[i] >= '0' && + bit_str_ptr[i] <= '9'){ + sum = (sum * 10) + (bit_str_ptr[i] - '0'); + } + + else if (bit_str_ptr[i] == '-') { + start_val = sum; + sum = 0; + } + + else if (bit_str_ptr[i] == ',' || + bit_str_ptr[i] == (char) NULL) { + if (i == 0) + break; + if (start_val == -1) + start_val = sum; + bit_int_ptr[bit_inx++] = start_val; + bit_int_ptr[bit_inx++] = sum; + start_val = -1; + sum = 0; + } + } + bit_int_ptr[bit_inx] = -1; + return bit_int_ptr; +} + diff --git a/src/common/bitstring.h b/src/common/bitstring.h index 8c5abeef2547662e9f0631320aa60ccca176e2ca..3d8a6fab84465d92a71efe058e6accc06dec3d6c 100644 --- a/src/common/bitstring.h +++ b/src/common/bitstring.h @@ -128,5 +128,5 @@ void bit_fill_gaps(bitstr_t *b); int bit_super_set(bitstr_t *b1, bitstr_t *b2); bitstr_t *bit_copy(bitstr_t *b); bitstr_t *bit_pick_cnt(bitstr_t *b, bitoff_t nbits); - +int *bitfmt2int (char *bit_str_ptr); #endif /* !_BITSTRING_H_ */ diff --git a/src/common/nodelist.c b/src/common/nodelist.c deleted file mode 100644 index 53c17db60d70c405d329b785b99705a04c61261c..0000000000000000000000000000000000000000 --- a/src/common/nodelist.c +++ /dev/null @@ -1,73 +0,0 @@ -/* $Id$ */ - -/* - * nodelist.c - * - * author: moe jette, jette@llnl.gov - */ - -#define DEBUG_SYSTEM 1 - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <ctype.h> -#include <errno.h> -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> -#include <string.h> -#include <syslog.h> -#include <src/common/nodelist.h> -#include <src/common/xmalloc.h> - -/* - * bitfmt2int - convert a string describing bitmap (e.g. "0-30,45,50-60") - * into an array of integer (start/end) pairs terminated by -1 - * (e.g. "0, 30, 45, 45, 50, 60, -1") - * input: bitmap string as produced by bitstring.c : bitfmt - * output: an array of integers - * NOTE: the caller must xfree the returned memory - */ -int * -bitfmt2int (char *bit_str_ptr) -{ - int *bit_int_ptr, i, bit_inx, size, sum, start_val; - - if (bit_str_ptr == NULL) - return NULL; - size = strlen (bit_str_ptr) + 1; - bit_int_ptr = xmalloc ( sizeof (int *) * size); - if (bit_int_ptr == NULL) - return NULL; - - bit_inx = sum = 0; - start_val = -1; - for (i = 0; i < size; i++) { - if (bit_str_ptr[i] >= '0' && - bit_str_ptr[i] <= '9'){ - sum = (sum * 10) + (bit_str_ptr[i] - '0'); - } - - else if (bit_str_ptr[i] == '-') { - start_val = sum; - sum = 0; - } - - else if (bit_str_ptr[i] == ',' || - bit_str_ptr[i] == (char) NULL) { - if (i == 0) - break; - if (start_val == -1) - start_val = sum; - bit_int_ptr[bit_inx++] = start_val; - bit_int_ptr[bit_inx++] = sum; - start_val = -1; - sum = 0; - } - } - bit_int_ptr[bit_inx] = -1; - return bit_int_ptr; -} - diff --git a/src/common/nodelist.h b/src/common/nodelist.h deleted file mode 100644 index e40db10bfa71e317a2eb4130177465233c137e9a..0000000000000000000000000000000000000000 --- a/src/common/nodelist.h +++ /dev/null @@ -1,14 +0,0 @@ -/* $Id$ */ - -/* nodelist parsing and utility functions - * - * Author: Moe Jette <jette@llnl.gov> - */ - -#ifndef _NODELIST_H -#define _NODELIST_H - -extern int * bitfmt2int (char *bit_str_ptr); -extern int parse_node_names(char *name, char **fmt, int *start, int *end, int *count); - -#endif /* !_NODELIST_H */ diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index 3030b98ca85e6df245d2f9a7bfc0c20c8fb692bb..4c376b6a2074db6b6c00ee66cece88257f644765 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -28,11 +28,11 @@ #include <errno.h> #include <string.h> +#include <src/common/bitstring.h> #include <src/common/slurm_protocol_pack.h> #include <src/common/slurm_protocol_api.h> #include <src/common/pack.h> #include <src/common/log.h> -#include <src/common/nodelist.h> #include <src/common/xmalloc.h>