From: Randy Dunlap <randy.dunlap@oracle.com>
To: Derek Fults <dfults@sgi.com>
Cc: linux-kernel@vger.kernel.org, Andi Kleen <ak@suse.de>
Subject: Re: [PATCH] Updated, add get_range, allows a hyhpenated range to get_options
Date: Wed, 01 Nov 2006 11:52:28 -0800 [thread overview]
Message-ID: <4548FAFC.5000409@oracle.com> (raw)
In-Reply-To: <1162410596.9524.544.camel@lnx-dfults.americas.sgi.com>
Derek Fults wrote:
> This allows a hyphenated range of positive numbers M-N, in the string
> passed to command line helper function, get_options. This will expand
> the range and insert the values[M, M+1, ..., N] into the ints array in
> get_options.
>
> Currently the command line option "isolcpus=" takes as its argument a
> list of cpus.
> Format: <cpu number>,...,<cpu number>
> This can get extremely long when isolating the majority of cpus on a
> large system. Valid values of <cpu_number> include all cpus, 0 to
> "number of CPUs in system - 1".
>
>
> Signed-off-by: Derek Fults <dfults@sgi.com>
>
> Index: linux/lib/cmdline.c
> ===================================================================
> --- linux.orig/lib/cmdline.c 2006-09-19 22:42:06.000000000 -0500
> +++ linux/lib/cmdline.c 2006-11-01 12:36:20.059166727 -0600
> @@ -16,6 +16,23 @@
> #include <linux/kernel.h>
> #include <linux/string.h>
>
> +/**
> + * If a hyphen was found in get_option, this will handle the
> + * range of numbers, M-N. This will expand the range and insert
> + * the values[M, M+1, ..., N] into the ints array in get_options.
> + */
Derek,
Thanks for persisting thru this. It's all fine for me except the
comment block above. If a comment block begins with "/**", then
it's supposed to be in kernel-doc format (see
Documentation/kernel-doc-nano-HOWTO.txt), with function name &
parameters (if applicable). However, that mostly needs to be done
for non-static functions, so probably just change /** to /*
and leave the rest of the comment block as is.
My other comment-block comment was also about kernel long-comment
style, which is
/*
* begin
* more
* end
*/
so now you have achieved that also, so thanks again.
> +static int get_range(char **str, int *pint)
> +{
> + int x, inc_counter, upper_range;
> +
> + (*str)++;
> + upper_range = simple_strtol((*str), NULL, 0);
> + inc_counter = upper_range - *pint;
> + for (x = *pint; x < upper_range; x++)
> + *pint++ = x;
> + return inc_counter;
> +}
>
> /**
> * get_option - Parse integer from an option string
> @@ -29,6 +46,7 @@
> * 0 : no int in string
> * 1 : int found, no subsequent comma
> * 2 : int found including a subsequent comma
> + * 3 : hyphen found to denote a range
> */
>
> int get_option (char **str, int *pint)
> @@ -44,6 +62,8 @@
> (*str)++;
> return 2;
> }
> + if (**str == '-')
> + return 3;
>
> return 1;
> }
> @@ -55,7 +75,8 @@
> * @ints: integer array
> *
> * This function parses a string containing a comma-separated
> - * list of integers. The parse halts when the array is
> + * list of integers, a hyphen-separated range of _positive_ integers,
> + * or a combination of both. The parse halts when the array is
> * full, or when no more numbers can be retrieved from the
> * string.
> *
> @@ -72,6 +93,16 @@
> res = get_option ((char **)&str, ints + i);
> if (res == 0)
> break;
> + if (res == 3) {
> + int range_nums;
> + range_nums = get_range((char **)&str, ints + i);
> + if (range_nums < 0)
> + break;
> + /* Decrement the result by one to leave out the
> + last number in the range. The next iteration
> + will handle the upper number in the range */
> + i += (range_nums - 1);
> + }
> i++;
> if (res == 1)
> break;
--
~Randy
next prev parent reply other threads:[~2006-11-01 19:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-01 19:49 [PATCH] Updated, add get_range, allows a hyhpenated range to get_options Derek Fults
2006-11-01 19:52 ` Randy Dunlap [this message]
2006-11-01 20:24 ` Derek Fults
2006-11-01 20:25 ` Randy Dunlap
2006-11-01 20:51 ` Derek Fults
2006-11-01 22:47 ` Randy Dunlap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4548FAFC.5000409@oracle.com \
--to=randy.dunlap@oracle.com \
--cc=ak@suse.de \
--cc=dfults@sgi.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.