diff options
-rw-r--r-- | include/libcamera/ipa/ipa_module_info.h | 1 | ||||
-rw-r--r-- | src/ipa/ipa_dummy.cpp | 1 | ||||
-rw-r--r-- | src/libcamera/ipa_module.cpp | 23 | ||||
-rw-r--r-- | test/ipa/ipa_test.cpp | 1 |
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); |