This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] sim: add --model-info helper option


On Fri, Apr 16, 2010 at 12:31 AM, Mike Frysinger <vapier@gentoo.org> wrote:
> There is an architecture-info flag for listing possible arch values, but
> there is on equivalent for listing possible model values. ?So add the
> equivalent for models.
>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
>
> 2010-04-16 ?Mike Frysinger ?<vapier@gentoo.org>
>
> ? ? ? ?* sim-model.c (OPTION_MODEL): Convert to enum.
> ? ? ? ?(OPTION_MODEL_INFO): New enum.
> ? ? ? ?(model_options): Add model-info/info-model entries.
> ? ? ? ?(model_option_handler): Handle OPTION_MODEL_INFO.
> ---
> ?sim/common/sim-model.c | ? 29 ++++++++++++++++++++++++++++-
> ?1 files changed, 28 insertions(+), 1 deletions(-)
>
> diff --git a/sim/common/sim-model.c b/sim/common/sim-model.c
> index ddcb2de..5e7284c 100644
> --- a/sim/common/sim-model.c
> +++ b/sim/common/sim-model.c
> @@ -32,12 +32,23 @@ static DECLARE_OPTION_HANDLER (model_option_handler);
>
> ?static MODULE_INIT_FN sim_model_init;
>
> -#define OPTION_MODEL (OPTION_START + 0)
> +enum {
> + ?OPTION_MODEL = OPTION_START,
> + ?OPTION_MODEL_INFO,
> +};
>
> ?static const OPTION model_options[] = {
> ? { {"model", required_argument, NULL, OPTION_MODEL},
> ? ? ? '\0', "MODEL", "Specify model to simulate",
> ? ? ? model_option_handler, NULL },
> +
> + ?{ {"model-info", no_argument, NULL, OPTION_MODEL_INFO},
> + ? ? ?'\0', NULL, "List selectable models",
> + ? ? ?model_option_handler, NULL },
> + ?{ {"info-model", no_argument, NULL, OPTION_MODEL_INFO},
> + ? ? ?'\0', NULL, "List selectable models",
> + ? ? ?model_option_handler, NULL },
> +
> ? { {NULL, no_argument, NULL, 0}, '\0', NULL, NULL, NULL, NULL }
> ?};
>
> @@ -58,6 +69,22 @@ model_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt,
> ? ? ? ?sim_model_set (sd, cpu, model);
> ? ? ? ?break;
> ? ? ? }
> +
> + ? ?case OPTION_MODEL_INFO :
> + ? ? ?{
> + ? ? ? const MACH **machp;
> + ? ? ? const MODEL *model;
> + ? ? ? for (machp = & sim_machs[0]; *machp != NULL; ++machp)
> + ? ? ? ? {
> + ? ? ? ? ? sim_io_printf (sd, "Models for architecture `%s':\n",
> + ? ? ? ? ? ? ? ? ? ? ? ? ?MACH_NAME (*machp));
> + ? ? ? ? ? for (model = MACH_MODELS (*machp); MODEL_NAME (model) != NULL;
> + ? ? ? ? ? ? ? ?++model)
> + ? ? ? ? ? ? sim_io_printf (sd, " %s", MODEL_NAME (model));
> + ? ? ? ? }
> + ? ? ? sim_io_printf (sd, "\n");
> + ? ? ? break;
> + ? ? ?}
> ? ? }
>
> ? return SIM_RC_OK;
> --
> 1.7.0.2
>
>

Hi.

I believe you want NULL for the doc member of "info-model":

 +  { {"info-model", no_argument, NULL, OPTION_MODEL_INFO},
 +      '\0', NULL, "List selectable models",

"List selectable models" should be NULL.
At least according to sim-options.h:

     If DOC is NULL, this option name is listed as a synonym for the
     previous option.

Also, I think you want the last printf of "\n" inside the outer for loop:

 +       sim_io_printf (sd, "\n");

This patch is ok with these changes.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]