Message ID | 20250515120012.3127231-4-barnabas.pocze@ideasonboard.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
Quoting Barnabás Pőcze (2025-05-15 14:00:07) > Add `deserializer()` in `serializer.tmpl` to have a single function > that generates all the necessary functions into the template specialization > like `serializer()`. This also avoids the duplication of some > conditional logic. > > Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > --- > .../libcamera_templates/core_ipa_serializer.h.tmpl | 7 +------ > .../module_ipa_serializer.h.tmpl | 7 +------ > .../generators/libcamera_templates/serializer.tmpl | 14 ++++++++++++++ > 3 files changed, 16 insertions(+), 12 deletions(-) > > diff --git a/utils/codegen/ipc/generators/libcamera_templates/core_ipa_serializer.h.tmpl b/utils/codegen/ipc/generators/libcamera_templates/core_ipa_serializer.h.tmpl > index cbb35ef51..ac84963dc 100644 > --- a/utils/codegen/ipc/generators/libcamera_templates/core_ipa_serializer.h.tmpl > +++ b/utils/codegen/ipc/generators/libcamera_templates/core_ipa_serializer.h.tmpl > @@ -32,12 +32,7 @@ class IPADataSerializer<{{struct|name}}> > { > public: > {{- serializer.serializer(struct)}} > -{%- if struct|has_fd %} > -{{serializer.deserializer_fd(struct)}} > -{%- else %} > -{{serializer.deserializer_no_fd(struct)}} > -{{serializer.deserializer_fd_simple(struct)}} > -{%- endif %} > +{{- serializer.deserializer(struct)}} > }; > {% endfor %} > > diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl > index f3b8e3b15..65a7dd11c 100644 > --- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl > +++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl > @@ -33,12 +33,7 @@ class IPADataSerializer<{{struct|name_full}}> > { > public: > {{- serializer.serializer(struct)}} > -{%- if struct|has_fd %} > -{{serializer.deserializer_fd(struct)}} > -{%- else %} > -{{serializer.deserializer_no_fd(struct)}} > -{{serializer.deserializer_fd_simple(struct)}} > -{%- endif %} > +{{- serializer.deserializer(struct)}} > }; > {% endfor %} > > diff --git a/utils/codegen/ipc/generators/libcamera_templates/serializer.tmpl b/utils/codegen/ipc/generators/libcamera_templates/serializer.tmpl > index 114e349c9..d07836cc1 100644 > --- a/utils/codegen/ipc/generators/libcamera_templates/serializer.tmpl > +++ b/utils/codegen/ipc/generators/libcamera_templates/serializer.tmpl > @@ -317,3 +317,17 @@ > return ret; > } > {%- endmacro %} > + > +{# > + # \brief Deserialize a struct > + # > + # Generate code for IPADataSerializer specialization, for deserializing \a struct. > + #} > +{%- macro deserializer(struct) %} > +{%- if struct|has_fd %} > +{{deserializer_fd(struct)}} > +{%- else %} > +{{deserializer_no_fd(struct)}} > +{{deserializer_fd_simple(struct)}} > +{%- endif %} > +{%- endmacro %} > -- > 2.49.0 >
diff --git a/utils/codegen/ipc/generators/libcamera_templates/core_ipa_serializer.h.tmpl b/utils/codegen/ipc/generators/libcamera_templates/core_ipa_serializer.h.tmpl index cbb35ef51..ac84963dc 100644 --- a/utils/codegen/ipc/generators/libcamera_templates/core_ipa_serializer.h.tmpl +++ b/utils/codegen/ipc/generators/libcamera_templates/core_ipa_serializer.h.tmpl @@ -32,12 +32,7 @@ class IPADataSerializer<{{struct|name}}> { public: {{- serializer.serializer(struct)}} -{%- if struct|has_fd %} -{{serializer.deserializer_fd(struct)}} -{%- else %} -{{serializer.deserializer_no_fd(struct)}} -{{serializer.deserializer_fd_simple(struct)}} -{%- endif %} +{{- serializer.deserializer(struct)}} }; {% endfor %} diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl index f3b8e3b15..65a7dd11c 100644 --- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl +++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_serializer.h.tmpl @@ -33,12 +33,7 @@ class IPADataSerializer<{{struct|name_full}}> { public: {{- serializer.serializer(struct)}} -{%- if struct|has_fd %} -{{serializer.deserializer_fd(struct)}} -{%- else %} -{{serializer.deserializer_no_fd(struct)}} -{{serializer.deserializer_fd_simple(struct)}} -{%- endif %} +{{- serializer.deserializer(struct)}} }; {% endfor %} diff --git a/utils/codegen/ipc/generators/libcamera_templates/serializer.tmpl b/utils/codegen/ipc/generators/libcamera_templates/serializer.tmpl index 114e349c9..d07836cc1 100644 --- a/utils/codegen/ipc/generators/libcamera_templates/serializer.tmpl +++ b/utils/codegen/ipc/generators/libcamera_templates/serializer.tmpl @@ -317,3 +317,17 @@ return ret; } {%- endmacro %} + +{# + # \brief Deserialize a struct + # + # Generate code for IPADataSerializer specialization, for deserializing \a struct. + #} +{%- macro deserializer(struct) %} +{%- if struct|has_fd %} +{{deserializer_fd(struct)}} +{%- else %} +{{deserializer_no_fd(struct)}} +{{deserializer_fd_simple(struct)}} +{%- endif %} +{%- endmacro %}
Add `deserializer()` in `serializer.tmpl` to have a single function that generates all the necessary functions into the template specialization like `serializer()`. This also avoids the duplication of some conditional logic. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- .../libcamera_templates/core_ipa_serializer.h.tmpl | 7 +------ .../module_ipa_serializer.h.tmpl | 7 +------ .../generators/libcamera_templates/serializer.tmpl | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 12 deletions(-)