[libcamera-devel] [PATCH v2 06/32] libcamera: ipa: Test control structure size with static_assert
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Mar 6 16:59:36 CET 2020
The control-related structures ipa_controls_header,
ipa_control_value_entry and ipa_control_range_entry define the IPA
protocol and are thus part of the ABI. To avoid breaking it
inadvertently, use static_assert() to check the size of the structures.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
Changes since v1:
- Improve wording of static_assert() message
---
src/libcamera/ipa_controls.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/libcamera/ipa_controls.cpp b/src/libcamera/ipa_controls.cpp
index dd3ff9a0d467..fc5ccd4210b2 100644
--- a/src/libcamera/ipa_controls.cpp
+++ b/src/libcamera/ipa_controls.cpp
@@ -153,6 +153,9 @@
* Reserved for future extensions
*/
+static_assert(sizeof(ipa_controls_header) == 32,
+ "Invalid ABI size change for struct ipa_control_header");
+
/**
* \struct ipa_control_value_entry
* \brief Description of a serialized ControlValue entry
@@ -167,6 +170,9 @@
* value data (shall be a multiple of 8 bytes).
*/
+static_assert(sizeof(ipa_control_value_entry) == 16,
+ "Invalid ABI size change for struct ipa_control_value_entry");
+
/**
* \struct ipa_control_range_entry
* \brief Description of a serialized ControlRange entry
@@ -180,3 +186,6 @@
* \var ipa_control_range_entry::padding
* Padding bytes (shall be set to 0)
*/
+
+static_assert(sizeof(ipa_control_range_entry) == 16,
+ "Invalid ABI size change for struct ipa_control_range_entry");
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list