diff --git a/include/libcamera/ipa/ipa_interface.h b/include/libcamera/ipa/ipa_interface.h
index cbe325ea..6efe2e99 100644
--- a/include/libcamera/ipa/ipa_interface.h
+++ b/include/libcamera/ipa/ipa_interface.h
@@ -110,8 +110,6 @@ struct ipa_context_ops {
 			      const struct ipa_operation_data *data);
 };
 
-struct ipa_context *ipaCreate();
-
 #ifdef __cplusplus
 }
 
@@ -154,6 +152,11 @@ public:
 };
 
 } /* namespace libcamera */
+
+extern "C" {
+libcamera::IPAInterface *ipaCreate();
+}
+
 #endif
 
 #endif /* __LIBCAMERA_IPA_INTERFACE_H__ */
