[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