[libcamera-devel] [PATCH v5 0/9] utils: ipc: Add support for enums and Flags

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Oct 11 16:03:25 CEST 2022


Hi Paul,

On Tue, Oct 11, 2022 at 07:58:50PM +0900, Paul Elder via libcamera-devel wrote:
> v5 fixes a mistake in the scopedEnum implementation in v4, and adds
> support for skipHeader to enums defined in core.mojom, so that they can
> be defined in a C++ header and not redefined in mojom.
> 
> 
> This patch series adds support for enums in function parameters, and
> Flags all-around.
> 
> "all-around" does happen to exclude direct function return values,
> though.
> 
> Patches 1~2 touch enums, where the first patch adds a test for current
> enum support that hasn't been tested before, and the second actually
> adds support for enums in function parameters.
> 
> Patches 3~4 add support for Flags, and 5 adds a test for it.
> 
> Patches 6 and 7 extend vimc to have dummy function parameters that are
> enums and Flags to test enums and Flags as function parameters.
> 
> Patch 8 (new in v5) adds support for skipHeader. This was originally
> going to posted on top after the rest of the series was merged, but I
> found an issue with serialization of scoped enums directly, so this
> series is getting a new version :/
> 
> Patch 9 adds a test for scoped enums and flags that are designated as
> skipHeader. It touches core components (it has to, because that's the
> only place that skipHeader enums can be defined), so it's set as RFC.

What prevents using skipHeader enums in other .mojom files ?

> Paul Elder (9):
>   test: generated_serializer: Test enum that is struct member
>   utils: ipc: Add support for enums in function parameters
>   libcamera: ipa_data_serializer: Add serializer for Flags
>   utils: ipc: Add support for Flags
>   test: generated_serializer: Test Flags that is struct member
>   ipa: vimc: Add IPAOperationCode to init() parameter list
>   ipa: vimc: Add Flags to parameters
>   utils: ipc: Allow the skipHeader attribute on enums
>   [RFC] test: generated_serializer: Test skipHeader enums and flags
> 
>  .../libcamera/internal/ipa_data_serializer.h  | 46 +++++++++++++++++++
>  include/libcamera/ipa/core.mojom              | 15 +++++-
>  include/libcamera/ipa/ipa_interface.h         | 12 ++++-
>  include/libcamera/ipa/vimc.mojom              | 14 +++++-
>  src/ipa/vimc/vimc.cpp                         | 22 +++++++--
>  src/libcamera/pipeline/vimc/vimc.cpp          | 15 ++++--
>  test/ipa/ipa_interface_test.cpp               |  6 ++-
>  .../generated_serializer_test.cpp             | 36 +++++++++++++++
>  .../include/libcamera/ipa/test.mojom          | 14 ++++++
>  .../core_ipa_interface.h.tmpl                 |  2 +-
>  .../definition_functions.tmpl                 |  2 +-
>  .../module_ipa_interface.h.tmpl               |  2 +-
>  .../module_ipa_proxy.h.tmpl                   |  2 +-
>  .../libcamera_templates/proxy_functions.tmpl  | 20 +++++++-
>  .../libcamera_templates/serializer.tmpl       |  6 +++
>  .../generators/mojom_libcamera_generator.py   | 39 ++++++++++++++--
>  16 files changed, 231 insertions(+), 22 deletions(-)

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list