summaryrefslogtreecommitdiff
path: root/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2021-03-08 16:48:27 +0900
committerPaul Elder <paul.elder@ideasonboard.com>2021-03-09 11:49:13 +0900
commit0612bef6013e31345dd9181869775fd704026f52 (patch)
tree0dc836df2b92c99fcf25bdeefcb9688450bc2b9e /utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl
parent51e5d67f8e70a316f08c928bc1000a76c163e06c (diff)
utils: ipc: Make first output parameter direct return if int32
To make it more convenient for synchronous IPA calls to return a status, convert the first output into a direct return if it is an int32. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Naushir Patuck <naush@raspberrypi.com>
Diffstat (limited to 'utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl')
-rw-r--r--utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl7
1 files changed, 6 insertions, 1 deletions
diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl
index 3eb3dced..f75b1206 100644
--- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl
+++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl
@@ -209,7 +209,12 @@ void {{proxy_name}}::recvMessage(const IPCMessage &data)
{%- endif %}
}
{% if method|method_return_value != "void" %}
- return IPADataSerializer<{{method.response_parameters|first|name}}>::deserialize(_ipcOutputBuf.data(), 0);
+ {{method|method_return_value}} _retValue = IPADataSerializer<{{method|method_return_value}}>::deserialize(_ipcOutputBuf.data(), 0);
+
+{{proxy_funcs.deserialize_call(method|method_param_outputs, '_ipcOutputBuf.data()', '_ipcOutputBuf.fds()', init_offset = method|method_return_value|byte_width|int)}}
+
+ return _retValue;
+
{% elif method|method_param_outputs|length > 0 %}
{{proxy_funcs.deserialize_call(method|method_param_outputs, '_ipcOutputBuf.data()', '_ipcOutputBuf.fds()')}}
{% endif -%}