Mario Fleischmann <mario.fleischm...@lauterbach.com> writes:

> The MCD implementation follows a remote procedure call approach:
> Each function from mcd_api.h will correspond to one command in mcd.json.
>
> Signed-off-by: Mario Fleischmann <mario.fleischm...@lauterbach.com>
> ---
>  MAINTAINERS          |  1 +
>  docs/interop/mcd.rst | 13 +++++++++++++
>  mcd/meson.build      | 27 +++++++++++++++++++++++++++
>  qapi/mcd.json        |  6 ++++++
>  4 files changed, 47 insertions(+)
>  create mode 100644 qapi/mcd.json
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 327d3c5..7c085dc 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3125,6 +3125,7 @@ M: Mario Fleischmann <mario.fleischm...@lauterbach.com>
>  S: Maintained
>  F: mcd/*
>  F: docs/interop/mcd.rst
> +F: qapi/mcd.json
>  
>  Memory API
>  M: Paolo Bonzini <pbonz...@redhat.com>
> diff --git a/docs/interop/mcd.rst b/docs/interop/mcd.rst
> index 2b21303..13e81df 100644
> --- a/docs/interop/mcd.rst
> +++ b/docs/interop/mcd.rst
> @@ -44,6 +44,19 @@ To configure the build for MCD support:
>  
>    ./configure --enable-mcd
>  
> +Debugging via QAPI
> +------------------
> +
> +Since the MCD API does not define a communication protocol, a QAPI schema
> +has been added to implement a remote procedure call mechanism.
> +Each function within the API corresponds to one QAPI command, ensuring a
> +one-to-one mapping between the API's functions and the QAPI commands.
> +
> +QAPI Reference
> +--------------
> +
> +.. qapi-doc:: qapi/mcd.json

You also need

      :transmogrify:

because we haven't completed the transition to John Snow's new doc
generator ("transmogrifier"), and

      :namespace: MCD

for a properly separate namespace (see docs/devel/qapi-domain.rst).

I'd expect this to generate its own index, but it doesn't.  John, can
you have a look?

> +
>  API Reference
>  -------------
>  
> diff --git a/mcd/meson.build b/mcd/meson.build
> index 3e4e67a..d62a625 100644
> --- a/mcd/meson.build
> +++ b/mcd/meson.build
> @@ -1,5 +1,32 @@
> +mcd_qapi_outputs = [
> +  'mcd-qapi-commands.c',
> +  'mcd-qapi-commands.h',
> +  'mcd-qapi-emit-events.c',
> +  'mcd-qapi-emit-events.h',
> +  'mcd-qapi-events.c',
> +  'mcd-qapi-events.h',
> +  'mcd-qapi-features.c',
> +  'mcd-qapi-features.h',
> +  'mcd-qapi-init-commands.c',
> +  'mcd-qapi-init-commands.h',
> +  'mcd-qapi-introspect.c',
> +  'mcd-qapi-introspect.h',
> +  'mcd-qapi-types.c',
> +  'mcd-qapi-types.h',
> +  'mcd-qapi-visit.c',
> +  'mcd-qapi-visit.h',
> +]
> +
> +mcd_qapi_files = custom_target('MCD QAPI files',
> +                               output: mcd_qapi_outputs,
> +                               input: '../qapi/mcd.json',
> +                               command: [ qapi_gen, '-p', 'mcd-', '-o', 
> 'mcd',
> +                                          '--suppress-tracing','@INPUT0@'],
> +                               depend_files: qapi_gen_depends)
> +
>  mcd_ss = ss.source_set()
>  
> +mcd_ss.add(mcd_qapi_files.to_list())
>  mcd_ss.add(files(
>    'mcd_server.c'))
>  
> diff --git a/qapi/mcd.json b/qapi/mcd.json
> new file mode 100644
> index 0000000..701fd03
> --- /dev/null
> +++ b/qapi/mcd.json

Let's use mcd/qapi-schema.json, similar to the other independent QAPI
schemas, such as qga/qapi-schema.json.

> @@ -0,0 +1,6 @@
> +# -*- Mode: Python -*-
> +# vim: filetype=python
> +
> +##
> +# = Multi-Core Debug (MCD) API
> +##


Reply via email to