From 4e5e352f3b43fed96987a78eae90f144f26ed7a1 Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Tue, 22 Oct 2019 01:54:17 +0200 Subject: ipa: Define serialized controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Define data structures to be used during interaction between IPA modules and pipeline handlers to serialize control lists and control info maps. Signed-off-by: Jacopo Mondi Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Reviewed-by: Niklas Söderlund --- include/ipa/ipa_controls.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++ include/ipa/meson.build | 1 + 2 files changed, 55 insertions(+) create mode 100644 include/ipa/ipa_controls.h (limited to 'include') diff --git a/include/ipa/ipa_controls.h b/include/ipa/ipa_controls.h new file mode 100644 index 00000000..de3a017b --- /dev/null +++ b/include/ipa/ipa_controls.h @@ -0,0 +1,54 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * ipa_controls.h - IPA Control handling + */ +#ifndef __LIBCAMERA_IPA_CONTROLS_H__ +#define __LIBCAMERA_IPA_CONTROLS_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define IPA_CONTROLS_FORMAT_VERSION 1 + +struct ipa_controls_header { + uint32_t version; + uint32_t handle; + uint32_t entries; + uint32_t size; + uint32_t data_offset; + uint32_t reserved[3]; +}; + +struct ipa_control_value_entry { + uint32_t id; + uint32_t type; + uint32_t count; + uint32_t offset; +}; + +struct ipa_control_range_entry { + uint32_t id; + uint32_t type; + uint32_t offset; + uint32_t padding[1]; +}; + +union ipa_control_value_data { + bool b; + int32_t i32; + int64_t i64; +}; + +struct ipa_control_range_data { + union ipa_control_value_data min; + union ipa_control_value_data max; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __LIBCAMERA_IPA_CONTROLS_H__ */ diff --git a/include/ipa/meson.build b/include/ipa/meson.build index a0ce96ba..695a4183 100644 --- a/include/ipa/meson.build +++ b/include/ipa/meson.build @@ -1,4 +1,5 @@ libcamera_ipa_api = files([ + 'ipa_controls.h', 'ipa_interface.h', 'ipa_module_info.h', ]) -- cgit v1.2.1