summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libcamera/ipa/ipa_module_info.h1
-rw-r--r--src/ipa/ipa_dummy.cpp1
-rw-r--r--src/libcamera/ipa_module.cpp23
-rw-r--r--test/ipa/ipa_test.cpp1
4 files changed, 26 insertions, 0 deletions
diff --git a/include/libcamera/ipa/ipa_module_info.h b/include/libcamera/ipa/ipa_module_info.h
index 585f753a..d9e33c1d 100644
--- a/include/libcamera/ipa/ipa_module_info.h
+++ b/include/libcamera/ipa/ipa_module_info.h
@@ -18,6 +18,7 @@ struct IPAModuleInfo {
uint32_t pipelineVersion;
char pipelineName[256];
char name[256];
+ char license[64];
} __attribute__((packed));
extern "C" {
diff --git a/src/ipa/ipa_dummy.cpp b/src/ipa/ipa_dummy.cpp
index ee7a3a8a..4c8b6657 100644
--- a/src/ipa/ipa_dummy.cpp
+++ b/src/ipa/ipa_dummy.cpp
@@ -34,6 +34,7 @@ const struct IPAModuleInfo ipaModuleInfo = {
0,
"PipelineHandlerVimc",
"Dummy IPA for Vimc",
+ "LGPL-2.1-or-later",
};
IPAInterface *ipaCreate()
diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp
index d2e3c366..9cead715 100644
--- a/src/libcamera/ipa_module.cpp
+++ b/src/libcamera/ipa_module.cpp
@@ -214,6 +214,29 @@ elfLoadSymbol(void *map, size_t soSize, const char *symbol)
*
* \var IPAModuleInfo::name
* \brief The name of the IPA module
+ *
+ * \var IPAModuleInfo::license
+ * \brief License of the IPA module
+ *
+ * This license is used to determine whether to force isolation of the IPA in
+ * a separate process. If the license is "Proprietary", then the IPA will
+ * be isolated. If the license is open-source, then the IPA will be allowed to
+ * run without isolation if the user enables it. The license should be an
+ * SPDX license string. The following licenses are currently available to
+ * allow the IPA to run unisolated:
+ *
+ * - GPL-2.0-only
+ * - GPL-2.0-or-later
+ * - GPL-3.0-only
+ * - GPL-3.0-or-later
+ * - LGPL-2.1-only
+ * - LGPL-2.1-or-later
+ * - LGPL-3.0-only
+ * - LGPL-3.0-or-later
+ *
+ * Any other license will cause the IPA to be run isolated.
+ *
+ * \todo Allow user to choose to isolate open source IPAs
*/
/**
diff --git a/test/ipa/ipa_test.cpp b/test/ipa/ipa_test.cpp
index bbef069f..b9e1bd61 100644
--- a/test/ipa/ipa_test.cpp
+++ b/test/ipa/ipa_test.cpp
@@ -59,6 +59,7 @@ protected:
0,
"PipelineHandlerVimc",
"Dummy IPA for Vimc",
+ "GPL-2.0-or-later",
};
count += runTest("src/ipa/ipa_dummy.so", testInfo);