summaryrefslogtreecommitdiff
path: root/src/libcamera/ipa_module.cpp
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2019-05-27 17:50:19 -0400
committerPaul Elder <paul.elder@ideasonboard.com>2019-06-05 10:44:51 -0400
commit677e8e1dfedbc363cfab0403fd69ce8ecf61841f (patch)
treedb36220ca6f16056ed6bb78ade37b0fcca5cfba5 /src/libcamera/ipa_module.cpp
parent379a0a5dd8eba20fc8bc0bf5e5c4f126eb129dbf (diff)
libcamera: ipa_module_info: update struct to allow IPA matching
We need a way to match pipelines with IPA modules, so add fields in IPAModuleInfo to hold the IPA module API version number, the pipeline name, and the pipeline version. The module API version is used to determine the layout of struct IPAModuleInfo. Also update IPA module tests and Doxygen accordingly. Doxygen needs to be updated to accomodate __attribute__((packed)). Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/libcamera/ipa_module.cpp')
-rw-r--r--src/libcamera/ipa_module.cpp32
1 files changed, 26 insertions, 6 deletions
diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp
index 86cbe716..f79a44e7 100644
--- a/src/libcamera/ipa_module.cpp
+++ b/src/libcamera/ipa_module.cpp
@@ -170,20 +170,40 @@ int elfLoadSymbol(void *dst, size_t size, void *map, size_t soSize,
} /* namespace */
/**
+ * \def IPA_MODULE_API_VERSION
+ * \brief The IPA module API version
+ *
+ * This version number specifies the version for the layout of
+ * struct IPAModuleInfo. The IPA module shall use this macro to
+ * set its moduleAPIVersion field.
+ *
+ * \sa IPAModuleInfo::moduleAPIVersion
+ */
+
+/**
* \struct IPAModuleInfo
* \brief Information of an IPA module
*
* This structure contains the information of an IPA module. It is loaded,
* read, and validated before anything else is loaded from the shared object.
*
- * \var IPAModuleInfo::name
- * \brief The name of the IPA module
+ * \var IPAModuleInfo::moduleAPIVersion
+ * \brief The IPA module API version that the IPA module implements
+ *
+ * This version number specifies the version for the layout of
+ * struct IPAModuleInfo. The IPA module shall report here the version that
+ * it was built for, using the macro IPA_MODULE_API_VERSION.
+ *
+ * \var IPAModuleInfo::pipelineVersion
+ * \brief The pipeline handler version that the IPA module is for
*
- * \var IPAModuleInfo::version
- * \brief The version of the IPA module
+ * \var IPAModuleInfo::pipelineName
+ * \brief The name of the pipeline handler that the IPA module is for
*
- * \todo abi compatability version
- * \todo pipeline compatability matcher
+ * This name is used to match a pipeline handler with the module.
+ *
+ * \var IPAModuleInfo::name
+ * \brief The name of the IPA module
*/
/**