Re: [PATCH 3/9] qapi: Eliminate QCO_NO_OPTIONS for a slight simplification
John Snow writes: > On Mon, Oct 25, 2021 at 1:25 AM Markus Armbruster wrote: > >> Signed-off-by: Markus Armbruster >> --- >> include/qapi/qmp/dispatch.h | 1 - >> monitor/misc.c | 3 +-- >> scripts/qapi/commands.py| 5 + >> 3 files changed, 2 insertions(+), 7 deletions(-) >> >> diff --git a/include/qapi/qmp/dispatch.h b/include/qapi/qmp/dispatch.h >> index 075203dc67..0ce88200b9 100644 >> --- a/include/qapi/qmp/dispatch.h >> +++ b/include/qapi/qmp/dispatch.h >> @@ -21,7 +21,6 @@ typedef void (QmpCommandFunc)(QDict *, QObject **, Error >> **); >> >> typedef enum QmpCommandOptions >> { >> -QCO_NO_OPTIONS= 0x0, >> QCO_NO_SUCCESS_RESP = (1U << 0), >> QCO_ALLOW_OOB = (1U << 1), >> QCO_ALLOW_PRECONFIG = (1U << 2), >> diff --git a/monitor/misc.c b/monitor/misc.c >> index ffe7966870..3556b177f6 100644 >> --- a/monitor/misc.c >> +++ b/monitor/misc.c >> @@ -230,8 +230,7 @@ static void monitor_init_qmp_commands(void) >> >> qmp_init_marshal(_commands); >> >> -qmp_register_command(_commands, "device_add", qmp_device_add, >> - QCO_NO_OPTIONS); >> +qmp_register_command(_commands, "device_add", qmp_device_add, 0); >> >> QTAILQ_INIT(_cap_negotiation_commands); >> qmp_register_command(_cap_negotiation_commands, >> "qmp_capabilities", >> diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py >> index 3654825968..c8a975528f 100644 >> --- a/scripts/qapi/commands.py >> +++ b/scripts/qapi/commands.py >> @@ -229,15 +229,12 @@ def gen_register_command(name: str, >> if coroutine: >> options += ['QCO_COROUTINE'] >> >> -if not options: >> -options = ['QCO_NO_OPTIONS'] >> - >> ret = mcgen(''' >> qmp_register_command(cmds, "%(name)s", >> qmp_marshal_%(c_name)s, %(opts)s); >> ''', >> name=name, c_name=c_name(name), >> -opts=" | ".join(options)) >> +opts=' | '.join(options) or 0) >> return ret >> >> >> > I'm not a big fan of naked constants on the C side, but the generator > simplification is nice. I suppose it's worth the trade-off if you like it > better this way. > > "eh". I think 0 is an okay way to say "no flags, nothing to see here, move on". > Reviewed-by: John Snow Thanks!
Re: [PATCH 3/9] qapi: Eliminate QCO_NO_OPTIONS for a slight simplification
On Mon, Oct 25, 2021 at 1:25 AM Markus Armbruster wrote: > Signed-off-by: Markus Armbruster > --- > include/qapi/qmp/dispatch.h | 1 - > monitor/misc.c | 3 +-- > scripts/qapi/commands.py| 5 + > 3 files changed, 2 insertions(+), 7 deletions(-) > > diff --git a/include/qapi/qmp/dispatch.h b/include/qapi/qmp/dispatch.h > index 075203dc67..0ce88200b9 100644 > --- a/include/qapi/qmp/dispatch.h > +++ b/include/qapi/qmp/dispatch.h > @@ -21,7 +21,6 @@ typedef void (QmpCommandFunc)(QDict *, QObject **, Error > **); > > typedef enum QmpCommandOptions > { > -QCO_NO_OPTIONS= 0x0, > QCO_NO_SUCCESS_RESP = (1U << 0), > QCO_ALLOW_OOB = (1U << 1), > QCO_ALLOW_PRECONFIG = (1U << 2), > diff --git a/monitor/misc.c b/monitor/misc.c > index ffe7966870..3556b177f6 100644 > --- a/monitor/misc.c > +++ b/monitor/misc.c > @@ -230,8 +230,7 @@ static void monitor_init_qmp_commands(void) > > qmp_init_marshal(_commands); > > -qmp_register_command(_commands, "device_add", qmp_device_add, > - QCO_NO_OPTIONS); > +qmp_register_command(_commands, "device_add", qmp_device_add, 0); > > QTAILQ_INIT(_cap_negotiation_commands); > qmp_register_command(_cap_negotiation_commands, > "qmp_capabilities", > diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py > index 3654825968..c8a975528f 100644 > --- a/scripts/qapi/commands.py > +++ b/scripts/qapi/commands.py > @@ -229,15 +229,12 @@ def gen_register_command(name: str, > if coroutine: > options += ['QCO_COROUTINE'] > > -if not options: > -options = ['QCO_NO_OPTIONS'] > - > ret = mcgen(''' > qmp_register_command(cmds, "%(name)s", > qmp_marshal_%(c_name)s, %(opts)s); > ''', > name=name, c_name=c_name(name), > -opts=" | ".join(options)) > +opts=' | '.join(options) or 0) > return ret > > > I'm not a big fan of naked constants on the C side, but the generator simplification is nice. I suppose it's worth the trade-off if you like it better this way. "eh". Reviewed-by: John Snow
Re: [PATCH 3/9] qapi: Eliminate QCO_NO_OPTIONS for a slight simplification
Markus Armbruster wrote: > Signed-off-by: Markus Armbruster Reviewed-by: Juan Quintela
[PATCH 3/9] qapi: Eliminate QCO_NO_OPTIONS for a slight simplification
Signed-off-by: Markus Armbruster --- include/qapi/qmp/dispatch.h | 1 - monitor/misc.c | 3 +-- scripts/qapi/commands.py| 5 + 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/include/qapi/qmp/dispatch.h b/include/qapi/qmp/dispatch.h index 075203dc67..0ce88200b9 100644 --- a/include/qapi/qmp/dispatch.h +++ b/include/qapi/qmp/dispatch.h @@ -21,7 +21,6 @@ typedef void (QmpCommandFunc)(QDict *, QObject **, Error **); typedef enum QmpCommandOptions { -QCO_NO_OPTIONS= 0x0, QCO_NO_SUCCESS_RESP = (1U << 0), QCO_ALLOW_OOB = (1U << 1), QCO_ALLOW_PRECONFIG = (1U << 2), diff --git a/monitor/misc.c b/monitor/misc.c index ffe7966870..3556b177f6 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -230,8 +230,7 @@ static void monitor_init_qmp_commands(void) qmp_init_marshal(_commands); -qmp_register_command(_commands, "device_add", qmp_device_add, - QCO_NO_OPTIONS); +qmp_register_command(_commands, "device_add", qmp_device_add, 0); QTAILQ_INIT(_cap_negotiation_commands); qmp_register_command(_cap_negotiation_commands, "qmp_capabilities", diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py index 3654825968..c8a975528f 100644 --- a/scripts/qapi/commands.py +++ b/scripts/qapi/commands.py @@ -229,15 +229,12 @@ def gen_register_command(name: str, if coroutine: options += ['QCO_COROUTINE'] -if not options: -options = ['QCO_NO_OPTIONS'] - ret = mcgen(''' qmp_register_command(cmds, "%(name)s", qmp_marshal_%(c_name)s, %(opts)s); ''', name=name, c_name=c_name(name), -opts=" | ".join(options)) +opts=' | '.join(options) or 0) return ret -- 2.31.1