diff --git a/build/BUILD.gn b/build/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..2a5bf2c45b85c8c9f22bb7cb98b26f1dec446f9b --- /dev/null +++ b/build/BUILD.gn @@ -0,0 +1,25 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") +group("products_group") { + if (device_name == "rk3568") { + deps = [ + "//device/rockchip/rk3568:rk3568_group", + ] + } + + deps += [ + "//device/rockchip/common:common_group", + ] +} diff --git a/build/LICENSE b/build/LICENSE new file mode 100755 index 0000000000000000000000000000000000000000..21254fc75dcad77bffde10dcab0ad5464a1f0963 --- /dev/null +++ b/build/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/build/README.en.md b/build/README.en.md new file mode 100644 index 0000000000000000000000000000000000000000..96aaad074780176444bdb7bc151d4c1a60d1a374 --- /dev/null +++ b/build/README.en.md @@ -0,0 +1,36 @@ +# device_rockchip_build + +#### Description +{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} + +#### Software Architecture +Software architecture description + +#### Installation + +1. xxxx +2. xxxx +3. xxxx + +#### Instructions + +1. xxxx +2. xxxx +3. xxxx + +#### Contribution + +1. Fork the repository +2. Create Feat_xxx branch +3. Commit your code +4. Create Pull Request + + +#### Gitee Feature + +1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md +2. Gitee blog [blog.gitee.com](https://blog.gitee.com) +3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) +4. The most valuable open source project [GVP](https://gitee.com/gvp) +5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) +6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/build/README.md b/build/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6c9d903c5a2e4785fa37b7fcf5278cd22628eb3f --- /dev/null +++ b/build/README.md @@ -0,0 +1,39 @@ +# device_rockchip_build + +#### 介绍 +{**以下是 Gitee 平台说明,您可以替换此简介** +Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 +无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} + +#### 软件架构 +软件架构说明 + + +#### 安装教程 + +1. xxxx +2. xxxx +3. xxxx + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request + + +#### 特技 + +1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md +2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) +3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 +4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 +5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) +6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/build/ohos.build b/build/ohos.build new file mode 100755 index 0000000000000000000000000000000000000000..c163b9a1f34839051760c09ab10b32c88bc9c48a --- /dev/null +++ b/build/ohos.build @@ -0,0 +1,10 @@ +{ + "subsystem": "rockchip_products", + "parts": { + "rockchip_products": { + "module_list": [ + "//device/rockchip/build:products_group" + ] + } + } +} diff --git a/common/BUILD.gn b/common/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..0288373acc824dfe52e774a3f4877779b081f310 --- /dev/null +++ b/common/BUILD.gn @@ -0,0 +1,23 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") + +print("common_group in") +group("common_group") { + deps = [ + "//device/rockchip/hardware/wifi:ap6xxx", + "//device/rockchip/hardware/isp:isp", + "//device/rockchip/hardware/mpp:mpp", + ] +} diff --git a/common/README.en.md b/common/README.en.md new file mode 100644 index 0000000000000000000000000000000000000000..d90f9f3c7b2a6e8e4bb28f4a0989d3ecaebe5105 --- /dev/null +++ b/common/README.en.md @@ -0,0 +1,36 @@ +# device_rockchip_common + +#### Description +{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} + +#### Software Architecture +Software architecture description + +#### Installation + +1. xxxx +2. xxxx +3. xxxx + +#### Instructions + +1. xxxx +2. xxxx +3. xxxx + +#### Contribution + +1. Fork the repository +2. Create Feat_xxx branch +3. Commit your code +4. Create Pull Request + + +#### Gitee Feature + +1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md +2. Gitee blog [blog.gitee.com](https://blog.gitee.com) +3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) +4. The most valuable open source project [GVP](https://gitee.com/gvp) +5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) +6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/common/README.md b/common/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3705f0460739a3e28b5e44f2ee449fc3abc5b486 --- /dev/null +++ b/common/README.md @@ -0,0 +1,39 @@ +# device_rockchip_common + +#### 介绍 +{**以下是 Gitee 平台说明,您可以替换此简介** +Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 +无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} + +#### 软件架构 +软件架构说明 + + +#### 安装教程 + +1. xxxx +2. xxxx +3. xxxx + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request + + +#### 特技 + +1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md +2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) +3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 +4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 +5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) +6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/hardware/display/BUILD.gn b/hardware/display/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..43b0494a0313c39977bd4daefe2e8c16b2f3fbee --- /dev/null +++ b/hardware/display/BUILD.gn @@ -0,0 +1,55 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") +import("//build/ohos/ndk/ndk.gni") + +ohos_prebuilt_shared_library("display_gralloc") { + if (target_cpu == "arm") { + source = "lib/libdisplay_gralloc.z.so" + } + subsystem_name = "hdf" + part_name = "hdf" + install_enable = true + # output_name = "display_gralloc.z" +} + +ohos_prebuilt_shared_library("display_gfx") { + if (target_cpu == "arm") { + source = "lib/libdisplay_gfx.z.so" + } + subsystem_name = "hdf" + part_name = "hdf" + install_enable = true + # output_name = "display_gfx.z" +} + +ohos_prebuilt_shared_library("display_device") { + if (target_cpu == "arm") { + source = "lib/libdisplay_device_drm.z.so" + } + subsystem_name = "hdf" + part_name = "hdf" + install_enable = true + # output_name = "display_device_drm.z" +} + +ohos_prebuilt_shared_library("display_layer") { + if (target_cpu == "arm") { + source = "lib/libdisplay_layer.z.so" + } + subsystem_name = "hdf" + part_name = "hdf" + install_enable = true + # output_name = "display_device_drm.z" +} diff --git a/hardware/display/lib/libdisplay_device_drm.z.so b/hardware/display/lib/libdisplay_device_drm.z.so new file mode 100755 index 0000000000000000000000000000000000000000..7117ec45608dc6d1a882646a256b05f392d2327c Binary files /dev/null and b/hardware/display/lib/libdisplay_device_drm.z.so differ diff --git a/hardware/display/lib/libdisplay_gfx.z.so b/hardware/display/lib/libdisplay_gfx.z.so new file mode 100755 index 0000000000000000000000000000000000000000..a2592cc833255581232f5640124c9a8be7ddf60a Binary files /dev/null and b/hardware/display/lib/libdisplay_gfx.z.so differ diff --git a/hardware/display/lib/libdisplay_gralloc.z.so b/hardware/display/lib/libdisplay_gralloc.z.so new file mode 100755 index 0000000000000000000000000000000000000000..d62741cae41e7c53b5b4719c890803f4711fabe8 Binary files /dev/null and b/hardware/display/lib/libdisplay_gralloc.z.so differ diff --git a/hardware/display/lib/libdisplay_layer.z.so b/hardware/display/lib/libdisplay_layer.z.so new file mode 100755 index 0000000000000000000000000000000000000000..53705e692dbf28533165d7d9ba61eb29863bca58 Binary files /dev/null and b/hardware/display/lib/libdisplay_layer.z.so differ diff --git a/hardware/gpu/BUILD.gn b/hardware/gpu/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..fc0ebb1e110f895dfec5c6cbc10548d2b7d7c1a5 --- /dev/null +++ b/hardware/gpu/BUILD.gn @@ -0,0 +1,44 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") +import("//build/ohos/ndk/ndk.gni") + +config("libmali-bifrost-g52-g2p0-wayland") { + include_dirs = [ "include" ] + cflags = [ + "-Wno-incompatible-pointer-types", + "-Werror", + "-Wimplicit-function-declaration", + "-Wno-error=unused-variable", + ] + cflags = [] +} + +ohos_prebuilt_shared_library("mali-bifrost-g52-g2p0-wayland") { + if (target_cpu == "arm") { + source = "lib/libmali-bifrost-g52-g2p0-wayland.so" + } + subsystem_name = "hdf" + part_name = "hdf" + install_enable = true + symlink_target_name = [ + "libEGL.so", + "libGLESv1.so", + "libGLESv2.so", + "libGLESv3.so", + "libgbm.so", + "libmali.so.1", + ] +} + diff --git a/hardware/gpu/include/gbm.h b/hardware/gpu/include/gbm.h new file mode 100755 index 0000000000000000000000000000000000000000..e95f9e34960bd23083a03e2e3fdeca2b3d24a35e --- /dev/null +++ b/hardware/gpu/include/gbm.h @@ -0,0 +1,406 @@ +/* + * Copyright © 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Authors: + * Benjamin Franzke + */ + +#ifndef _GBM_H_ +#define _GBM_H_ + +#define __GBM__ 1 + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * \file gbm.h + * \brief Generic Buffer Manager + */ + +struct gbm_device; +struct gbm_bo; +struct gbm_surface; + +/** + * \mainpage The Generic Buffer Manager + * + * This module provides an abstraction that the caller can use to request a + * buffer from the underlying memory management system for the platform. + * + * This allows the creation of portable code whilst still allowing access to + * the underlying memory manager. + */ + +/** + * Abstraction representing the handle to a buffer allocated by the + * manager + */ +union gbm_bo_handle { + void *ptr; + int32_t s32; + uint32_t u32; + int64_t s64; + uint64_t u64; +}; + +/** Format of the allocated buffer */ +enum gbm_bo_format { + /** RGB with 8 bits per channel in a 32 bit value */ + GBM_BO_FORMAT_XRGB8888, + /** ARGB with 8 bits per channel in a 32 bit value */ + GBM_BO_FORMAT_ARGB8888 +}; + + +/** + * The FourCC format codes are taken from the drm_fourcc.h definition, and + * re-namespaced. New GBM formats must not be added, unless they are + * identical ports from drm_fourcc. + */ +#define __gbm_fourcc_code(a,b,c,d) ((uint32_t)(a) | ((uint32_t)(b) << 8) | \ + ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) + +#define GBM_FORMAT_BIG_ENDIAN (1<<31) /* format is big endian instead of little endian */ + +/* color index */ +#define GBM_FORMAT_C8 __gbm_fourcc_code('C', '8', ' ', ' ') /* [7:0] C */ + +/* 8 bpp Red */ +#define GBM_FORMAT_R8 __gbm_fourcc_code('R', '8', ' ', ' ') /* [7:0] R */ + +/* 16 bpp RG */ +#define GBM_FORMAT_GR88 __gbm_fourcc_code('G', 'R', '8', '8') /* [15:0] G:R 8:8 little endian */ + +/* 8 bpp RGB */ +#define GBM_FORMAT_RGB332 __gbm_fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */ +#define GBM_FORMAT_BGR233 __gbm_fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */ + +/* 16 bpp RGB */ +#define GBM_FORMAT_XRGB4444 __gbm_fourcc_code('X', 'R', '1', '2') /* [15:0] x:R:G:B 4:4:4:4 little endian */ +#define GBM_FORMAT_XBGR4444 __gbm_fourcc_code('X', 'B', '1', '2') /* [15:0] x:B:G:R 4:4:4:4 little endian */ +#define GBM_FORMAT_RGBX4444 __gbm_fourcc_code('R', 'X', '1', '2') /* [15:0] R:G:B:x 4:4:4:4 little endian */ +#define GBM_FORMAT_BGRX4444 __gbm_fourcc_code('B', 'X', '1', '2') /* [15:0] B:G:R:x 4:4:4:4 little endian */ + +#define GBM_FORMAT_ARGB4444 __gbm_fourcc_code('A', 'R', '1', '2') /* [15:0] A:R:G:B 4:4:4:4 little endian */ +#define GBM_FORMAT_ABGR4444 __gbm_fourcc_code('A', 'B', '1', '2') /* [15:0] A:B:G:R 4:4:4:4 little endian */ +#define GBM_FORMAT_RGBA4444 __gbm_fourcc_code('R', 'A', '1', '2') /* [15:0] R:G:B:A 4:4:4:4 little endian */ +#define GBM_FORMAT_BGRA4444 __gbm_fourcc_code('B', 'A', '1', '2') /* [15:0] B:G:R:A 4:4:4:4 little endian */ + +#define GBM_FORMAT_XRGB1555 __gbm_fourcc_code('X', 'R', '1', '5') /* [15:0] x:R:G:B 1:5:5:5 little endian */ +#define GBM_FORMAT_XBGR1555 __gbm_fourcc_code('X', 'B', '1', '5') /* [15:0] x:B:G:R 1:5:5:5 little endian */ +#define GBM_FORMAT_RGBX5551 __gbm_fourcc_code('R', 'X', '1', '5') /* [15:0] R:G:B:x 5:5:5:1 little endian */ +#define GBM_FORMAT_BGRX5551 __gbm_fourcc_code('B', 'X', '1', '5') /* [15:0] B:G:R:x 5:5:5:1 little endian */ + +#define GBM_FORMAT_ARGB1555 __gbm_fourcc_code('A', 'R', '1', '5') /* [15:0] A:R:G:B 1:5:5:5 little endian */ +#define GBM_FORMAT_ABGR1555 __gbm_fourcc_code('A', 'B', '1', '5') /* [15:0] A:B:G:R 1:5:5:5 little endian */ +#define GBM_FORMAT_RGBA5551 __gbm_fourcc_code('R', 'A', '1', '5') /* [15:0] R:G:B:A 5:5:5:1 little endian */ +#define GBM_FORMAT_BGRA5551 __gbm_fourcc_code('B', 'A', '1', '5') /* [15:0] B:G:R:A 5:5:5:1 little endian */ + +#define GBM_FORMAT_RGB565 __gbm_fourcc_code('R', 'G', '1', '6') /* [15:0] R:G:B 5:6:5 little endian */ +#define GBM_FORMAT_BGR565 __gbm_fourcc_code('B', 'G', '1', '6') /* [15:0] B:G:R 5:6:5 little endian */ + +/* 24 bpp RGB */ +#define GBM_FORMAT_RGB888 __gbm_fourcc_code('R', 'G', '2', '4') /* [23:0] R:G:B little endian */ +#define GBM_FORMAT_BGR888 __gbm_fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */ + +/* 32 bpp RGB */ +#define GBM_FORMAT_XRGB8888 __gbm_fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */ +#define GBM_FORMAT_XBGR8888 __gbm_fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */ +#define GBM_FORMAT_RGBX8888 __gbm_fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */ +#define GBM_FORMAT_BGRX8888 __gbm_fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */ + +#define GBM_FORMAT_ARGB8888 __gbm_fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */ +#define GBM_FORMAT_ABGR8888 __gbm_fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */ +#define GBM_FORMAT_RGBA8888 __gbm_fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */ +#define GBM_FORMAT_BGRA8888 __gbm_fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */ + +#define GBM_FORMAT_XRGB2101010 __gbm_fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */ +#define GBM_FORMAT_XBGR2101010 __gbm_fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */ +#define GBM_FORMAT_RGBX1010102 __gbm_fourcc_code('R', 'X', '3', '0') /* [31:0] R:G:B:x 10:10:10:2 little endian */ +#define GBM_FORMAT_BGRX1010102 __gbm_fourcc_code('B', 'X', '3', '0') /* [31:0] B:G:R:x 10:10:10:2 little endian */ + +#define GBM_FORMAT_ARGB2101010 __gbm_fourcc_code('A', 'R', '3', '0') /* [31:0] A:R:G:B 2:10:10:10 little endian */ +#define GBM_FORMAT_ABGR2101010 __gbm_fourcc_code('A', 'B', '3', '0') /* [31:0] A:B:G:R 2:10:10:10 little endian */ +#define GBM_FORMAT_RGBA1010102 __gbm_fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */ +#define GBM_FORMAT_BGRA1010102 __gbm_fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */ + +/* packed YCbCr */ +#define GBM_FORMAT_YUYV __gbm_fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */ +#define GBM_FORMAT_YVYU __gbm_fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */ +#define GBM_FORMAT_UYVY __gbm_fourcc_code('U', 'Y', 'V', 'Y') /* [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian */ +#define GBM_FORMAT_VYUY __gbm_fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */ + +#define GBM_FORMAT_AYUV __gbm_fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */ + +/* + * 2 plane YCbCr + * index 0 = Y plane, [7:0] Y + * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian + * or + * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian + */ +#define GBM_FORMAT_NV12 __gbm_fourcc_code('N', 'V', '1', '2') /* 2x2 subsampled Cr:Cb plane */ +#define GBM_FORMAT_NV21 __gbm_fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */ +#define GBM_FORMAT_NV16 __gbm_fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */ +#define GBM_FORMAT_NV61 __gbm_fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */ + +/* + * 3 plane YCbCr + * index 0: Y plane, [7:0] Y + * index 1: Cb plane, [7:0] Cb + * index 2: Cr plane, [7:0] Cr + * or + * index 1: Cr plane, [7:0] Cr + * index 2: Cb plane, [7:0] Cb + */ +#define GBM_FORMAT_YUV410 __gbm_fourcc_code('Y', 'U', 'V', '9') /* 4x4 subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU410 __gbm_fourcc_code('Y', 'V', 'U', '9') /* 4x4 subsampled Cr (1) and Cb (2) planes */ +#define GBM_FORMAT_YUV411 __gbm_fourcc_code('Y', 'U', '1', '1') /* 4x1 subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU411 __gbm_fourcc_code('Y', 'V', '1', '1') /* 4x1 subsampled Cr (1) and Cb (2) planes */ +#define GBM_FORMAT_YUV420 __gbm_fourcc_code('Y', 'U', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU420 __gbm_fourcc_code('Y', 'V', '1', '2') /* 2x2 subsampled Cr (1) and Cb (2) planes */ +#define GBM_FORMAT_YUV422 __gbm_fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU422 __gbm_fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */ +#define GBM_FORMAT_YUV444 __gbm_fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */ +#define GBM_FORMAT_YVU444 __gbm_fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */ + + +/** + * Flags to indicate the intended use for the buffer - these are passed into + * gbm_bo_create(). The caller must set the union of all the flags that are + * appropriate + * + * \sa Use gbm_device_is_format_supported() to check if the combination of format + * and use flags are supported + */ +enum gbm_bo_flags { + /** + * Buffer is going to be presented to the screen using an API such as KMS + */ + GBM_BO_USE_SCANOUT = (1 << 0), + /** + * Buffer is going to be used as cursor + */ + GBM_BO_USE_CURSOR = (1 << 1), + /** + * Deprecated + */ + GBM_BO_USE_CURSOR_64X64 = GBM_BO_USE_CURSOR, + /** + * Buffer is to be used for rendering - for example it is going to be used + * as the storage for a color buffer + */ + GBM_BO_USE_RENDERING = (1 << 2), + /** + * Buffer can be used for gbm_bo_write. This is guaranteed to work + * with GBM_BO_USE_CURSOR, but may not work for other combinations. + */ + GBM_BO_USE_WRITE = (1 << 3), + /** + * Buffer is linear, i.e. not tiled. + */ + GBM_BO_USE_LINEAR = (1 << 4), +}; + +int +gbm_device_get_fd(struct gbm_device *gbm); + +const char * +gbm_device_get_backend_name(struct gbm_device *gbm); + +int +gbm_device_is_format_supported(struct gbm_device *gbm, + uint32_t format, uint32_t usage); + +int +gbm_device_get_format_modifier_plane_count(struct gbm_device *gbm, + uint32_t format, + uint64_t modifier); + +void +gbm_device_destroy(struct gbm_device *gbm); + +struct gbm_device * +gbm_create_device(int fd); + +struct gbm_bo * +gbm_bo_create(struct gbm_device *gbm, + uint32_t width, uint32_t height, + uint32_t format, uint32_t flags); + +struct gbm_bo * +gbm_bo_create_with_modifiers(struct gbm_device *gbm, + uint32_t width, uint32_t height, + uint32_t format, + const uint64_t *modifiers, + const unsigned int count); +#define GBM_BO_IMPORT_WL_BUFFER 0x5501 +#define GBM_BO_IMPORT_EGL_IMAGE 0x5502 +#define GBM_BO_IMPORT_FD 0x5503 +#define GBM_BO_IMPORT_FD_MODIFIER 0x5504 + +struct gbm_import_fd_data { + int fd; + uint32_t width; + uint32_t height; + uint32_t stride; + uint32_t format; +}; + +struct gbm_import_fd_modifier_data { + uint32_t width; + uint32_t height; + uint32_t format; + uint32_t num_fds; + int fds[4]; + int strides[4]; + int offsets[4]; + uint64_t modifier; +}; + +struct gbm_bo * +gbm_bo_import(struct gbm_device *gbm, uint32_t type, + void *buffer, uint32_t usage); + +/** + * Flags to indicate the type of mapping for the buffer - these are + * passed into gbm_bo_map(). The caller must set the union of all the + * flags that are appropriate. + * + * These flags are independent of the GBM_BO_USE_* creation flags. However, + * mapping the buffer may require copying to/from a staging buffer. + * + * See also: pipe_transfer_usage + */ +enum gbm_bo_transfer_flags { + /** + * Buffer contents read back (or accessed directly) at transfer + * create time. + */ + GBM_BO_TRANSFER_READ = (1 << 0), + /** + * Buffer contents will be written back at unmap time + * (or modified as a result of being accessed directly). + */ + GBM_BO_TRANSFER_WRITE = (1 << 1), + /** + * Read/modify/write + */ + GBM_BO_TRANSFER_READ_WRITE = (GBM_BO_TRANSFER_READ | GBM_BO_TRANSFER_WRITE), +}; + +void * +gbm_bo_map(struct gbm_bo *bo, + uint32_t x, uint32_t y, uint32_t width, uint32_t height, + uint32_t flags, uint32_t *stride, void **map_data); + +void +gbm_bo_unmap(struct gbm_bo *bo, void *map_data); + +uint32_t +gbm_bo_get_width(struct gbm_bo *bo); + +uint32_t +gbm_bo_get_height(struct gbm_bo *bo); + +uint32_t +gbm_bo_get_stride(struct gbm_bo *bo); + +uint32_t +gbm_bo_get_stride_for_plane(struct gbm_bo *bo, int plane); + +uint32_t +gbm_bo_get_format(struct gbm_bo *bo); + +uint32_t +gbm_bo_get_bpp(struct gbm_bo *bo); + +uint32_t +gbm_bo_get_offset(struct gbm_bo *bo, int plane); + +struct gbm_device * +gbm_bo_get_device(struct gbm_bo *bo); + +union gbm_bo_handle +gbm_bo_get_handle(struct gbm_bo *bo); + +int +gbm_bo_get_fd(struct gbm_bo *bo); + +uint64_t +gbm_bo_get_modifier(struct gbm_bo *bo); + +int +gbm_bo_get_plane_count(struct gbm_bo *bo); + +union gbm_bo_handle +gbm_bo_get_handle_for_plane(struct gbm_bo *bo, int plane); + +int +gbm_bo_write(struct gbm_bo *bo, const void *buf, size_t count); + +void +gbm_bo_set_user_data(struct gbm_bo *bo, void *data, + void (*destroy_user_data)(struct gbm_bo *, void *)); + +void * +gbm_bo_get_user_data(struct gbm_bo *bo); + +void +gbm_bo_destroy(struct gbm_bo *bo); + +struct gbm_surface * +gbm_surface_create(struct gbm_device *gbm, + uint32_t width, uint32_t height, + uint32_t format, uint32_t flags); + +struct gbm_surface * +gbm_surface_create_with_modifiers(struct gbm_device *gbm, + uint32_t width, uint32_t height, + uint32_t format, + const uint64_t *modifiers, + const unsigned int count); + +struct gbm_bo * +gbm_surface_lock_front_buffer(struct gbm_surface *surface); + +void +gbm_surface_release_buffer(struct gbm_surface *surface, struct gbm_bo *bo); + +int +gbm_surface_has_free_buffers(struct gbm_surface *surface); + +void +gbm_surface_destroy(struct gbm_surface *surface); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/gpu/lib/libmali-bifrost-g52-g2p0-wayland.so b/hardware/gpu/lib/libmali-bifrost-g52-g2p0-wayland.so new file mode 100755 index 0000000000000000000000000000000000000000..bd83bcb97887ccd26db45d85cd35583ae64b3391 Binary files /dev/null and b/hardware/gpu/lib/libmali-bifrost-g52-g2p0-wayland.so differ diff --git a/hardware/gpu/lib64/libmali-bifrost-g52-g2p0-wayland.so b/hardware/gpu/lib64/libmali-bifrost-g52-g2p0-wayland.so new file mode 100755 index 0000000000000000000000000000000000000000..7e6534ef964e4bd94c8d1f18bdd336f007ffb450 Binary files /dev/null and b/hardware/gpu/lib64/libmali-bifrost-g52-g2p0-wayland.so differ diff --git a/hardware/isp/BUILD.gn b/hardware/isp/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..800a9887765eb6f3f74d1ffa49a792c436b3c1ac --- /dev/null +++ b/hardware/isp/BUILD.gn @@ -0,0 +1,46 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") + +ISP_LIB_DIR = "//device/rockchip/hardware/isp/lib" +ISP_ETC_DIR = "//device/rockchip/hardware/isp/etc" +ISP_BIN_DIR = "//device/rockchip/hardware/isp/bin" + +ohos_prebuilt_shared_library("librkaiq") { + source = "$ISP_LIB_DIR/librkaiq.z.so" + subsystem_name = "rockchip_products" + install_enable = true +} + +ohos_prebuilt_etc("gc8034_RK-CMK-8M-2-v1_CK8401") { + source = "$ISP_ETC_DIR/iqfiles/gc8034_RK-CMK-8M-2-v1_CK8401.json" + install_images = [ "system" ] + relative_install_dir = "iqfiles" + part_name = "rockchip_products" + install_enable = true +} + +ohos_prebuilt_executable("ispserver") { + source = "$ISP_BIN_DIR/ispserver" + part_name = "rockchip_products" + install_enable = true +} + +group("isp") { + deps = [ + ":librkaiq", + ":gc8034_RK-CMK-8M-2-v1_CK8401", + ":ispserver", + ] +} diff --git a/hardware/isp/bin/ispserver b/hardware/isp/bin/ispserver new file mode 100755 index 0000000000000000000000000000000000000000..1ac2bc881358fa7400bb51a3c804e62265170d87 Binary files /dev/null and b/hardware/isp/bin/ispserver differ diff --git a/hardware/isp/etc/iqfiles/gc8034_RK-CMK-8M-2-v1_CK8401.json b/hardware/isp/etc/iqfiles/gc8034_RK-CMK-8M-2-v1_CK8401.json new file mode 100644 index 0000000000000000000000000000000000000000..6d892a2b54a877e2676802749c9c4b79dc80e57e --- /dev/null +++ b/hardware/isp/etc/iqfiles/gc8034_RK-CMK-8M-2-v1_CK8401.json @@ -0,0 +1,4650 @@ +{ + "sensor_calib": { + "resolution": { + "width": 3264, + "height": 2448 + }, + "Gain2Reg": { + "GainMode": "EXPGAIN_MODE_LINEAR", + "GainRange": [1, 16, 64, 0, 1, 64, 1024], + "GainRange_len": 7 + }, + "Time2Reg": { + "fCoeff": [0, 0, 1, 0.5] + }, + "CISGainSet": { + "CISAgainRange": { + "Min": 1, + "Max": 16 + }, + "CISExtraAgainRange": { + "Min": 1, + "Max": 1 + }, + "CISDgainRange": { + "Min": 1, + "Max": 1 + }, + "CISIspDgainRange": { + "Min": 1, + "Max": 1 + }, + "CISHdrGainIndSetEn": 1 + }, + "CISTimeSet": { + "Linear": { + "CISTimeRegMin": 4, + "CISLinTimeRegMaxFac": { + "fCoeff": [1, 4] + }, + "CISTimeRegOdevity": { + "fCoeff": [1, 0] + } + }, + "Hdr": [{ + "name": "HDR_TWO_FRAME", + "CISTimeRegUnEqualEn": 1, + "CISTimeRegMin": 4, + "CISHdrTimeRegSumFac": { + "fCoeff": [1, 4] + }, + "CISTimeRegMax": { + "Coeff": [0, 0, 0] + }, + "CISTimeRegOdevity": { + "fCoeff": [1, 0] + } + }, { + "name": "HDR_THREE_FRAME", + "CISTimeRegUnEqualEn": 1, + "CISTimeRegMin": 4, + "CISHdrTimeRegSumFac": { + "fCoeff": [1, 4] + }, + "CISTimeRegMax": { + "Coeff": [0, 0, 0] + }, + "CISTimeRegOdevity": { + "fCoeff": [1, 0] + } + }] + }, + "CISHdrSet": { + "hdr_en": 0, + "hdr_mode": "RK_AIQ_ISP_HDR_MODE_2_LINE_HDR", + "line_mode": "RK_AIQ_SENSOR_HDR_LINE_MODE_STAGGER" + }, + "CISDcgSet": { + "Linear": { + "support_en": 0, + "dcg_optype": "RK_AIQ_OP_MODE_AUTO", + "dcg_mode": { + "Coeff": [0, 0, 0] + }, + "dcg_ratio": 1, + "sync_switch": 0, + "lcg2hcg_gain_th": 32, + "hcg2lcg_gain_th": 16 + }, + "Hdr": { + "support_en": 0, + "dcg_optype": "RK_AIQ_OP_MODE_AUTO", + "dcg_mode": { + "Coeff": [0, 0, 0] + }, + "dcg_ratio": 3.5, + "sync_switch": 1, + "lcg2hcg_gain_th": 32, + "hcg2lcg_gain_th": 16 + } + }, + "CISExpUpdate": { + "Linear": { + "time_update": 2, + "gain_update": 2, + "dcg_update": 2 + }, + "Hdr": { + "time_update": 2, + "gain_update": 2, + "dcg_update": 1 + } + }, + "CISMinFps": 10, + "CISFlip": 3 + }, + "module_calib": { + "sensor_module": { + "FNumber": 1.6, + "EFL": 5.2, + "LensT": 90, + "IRCutT": 90 + } + }, + "main_scene": [{ + "name": "normal", + "sub_scene": [{ + "name": "day", + "scene_isp21": { + "ae_calib": { + "CommCtrl": { + "Enable": 1, + "AecRunInterval": 0, + "AecOpType": "RK_AIQ_OP_MODE_AUTO", + "HistStatsMode": "CAM_HISTV2_MODE_Y", + "RawStatsMode": "CAM_RAWSTATSV2_MODE_Y", + "YRangeMode": "CAM_YRANGEV2_MODE_FULL", + "AecGridWeight": [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 1, 1, 2, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 2, 1, 1, 2, 5, 8, 10, 10, 10, 10, 10, 10, 10, 8, 5, 2, 1, 1, 2, 5, 8, 10, 13, 13, 13, 13, 13, 10, 8, 5, 2, 1, 1, 2, 5, 8, 10, 13, 15, 15, 15, 13, 10, 8, 5, 2, 1, 1, 2, 5, 8, 10, 13, 15, 15, 15, 13, 10, 8, 5, 2, 1, 1, 2, 5, 8, 10, 13, 15, 15, 15, 13, 10, 8, 5, 2, 1, 1, 2, 5, 8, 10, 13, 13, 13, 13, 13, 10, 8, 5, 2, 1, 1, 2, 5, 8, 10, 10, 10, 10, 10, 10, 10, 8, 5, 2, 1, 1, 2, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 2, 1, 1, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], + "AecManualCtrl": { + "LinearAE": { + "ManualTimeEn": 1, + "ManualGainEn": 1, + "ManualIspDgainEn": 1, + "TimeValue": 0.02, + "GainValue": 6, + "IspDGainValue": 1 + }, + "HdrAE": { + "ManualTimeEn": 1, + "ManualGainEn": 1, + "ManualIspDgainEn": 1, + "TimeValue": [0.01, 0.02, 0.03], + "GainValue": [1, 1, 1], + "IspDGainValue": [1, 1, 1] + } + }, + "AecSpeed": { + "DampOver": 0.15, + "DampUnder": 0.45, + "DampDark2Bright": 0.15, + "DampBright2Dark": 0.45 + }, + "AecDelayFrmNum": { + "BlackDelay": 2, + "WhiteDelay": 2 + }, + "AecFrameRateMode": { + "isFpsFix": 1, + "FpsValue": 25 + }, + "AecAntiFlicker": { + "enable": 1, + "Frequency": "AECV2_FLICKER_FREQUENCY_50HZ", + "Mode": "AECV2_ANTIFLICKER_AUTO_MODE" + }, + "AecEnvLvCalib": { + "CalibFNumber": 1.6, + "CurveCoeff": [0.02859, 0.5972] + }, + "AecWinScale": { + "InRawWinScale": { + "h_offs": 0, + "v_offs": 0, + "h_size": 1, + "v_size": 1 + }, + "TmoRawWinScale": { + "h_offs": 0.1, + "v_offs": 0.1, + "h_size": 0.9, + "v_size": 0.9 + }, + "YuvWinScale": { + "h_offs": 0, + "v_offs": 0, + "h_size": 1, + "v_size": 1 + } + } + }, + "LinearAeCtrl": { + "RawStatsEn": 1, + "ToleranceIn": 10, + "ToleranceOut": 15, + "Evbias": 0, + "StrategyMode": "AECV2_STRATEGY_MODE_LOWLIGHT_PRIOR", + "InitExp": { + "InitTimeValue": 0.003, + "InitGainValue": 1, + "InitIspDGainValue": 1, + "InitPIrisGainValue": 512, + "InitDCIrisDutyValue": 100 + }, + "Route": { + "TimeDot": [0, 0.04, 0.04, 0.04, 0.04, 0.04], + "TimeDot_len": 6, + "GainDot": [1, 1, 4, 8, 15.5, 16], + "GainDot_len": 6, + "IspDGainDot": [1, 1, 1, 1, 1, 2], + "IspDGainDot_len": 6, + "PIrisDot": [512, 512, 512, 512, 512, 512], + "PIrisDot_len": 6 + }, + "DySetpoint": { + "ExpLevel": [0, 0.032, 0.064, 0.192, 0.32, 0.448], + "ExpLevel_len": 6, + "DySetpoint": [45, 45, 40, 38, 33, 30], + "DySetpoint_len": 6 + }, + "BackLightCtrl": { + "Enable": 0, + "StrBias": 0, + "MeasArea": "AECV2_MEASURE_AREA_AUTO", + "OEROILowTh": 150, + "LumaDistTh": 10, + "LvLowTh": 0.3125, + "LvHighTh": 7.5, + "BacklitSetPoint": { + "ExpLevel": [0.032, 0.064, 0.128, 0.192, 0.32, 0.448], + "ExpLevel_len": 6, + "NonOEPdfTh": [0.4, 0.45, 0.55, 0.65, 0.75, 1], + "NonOEPdfTh_len": 6, + "LowLightPdfTh": [0.2, 0.2, 0.22, 0.25, 0.3, 0.35], + "LowLightPdfTh_len": 6, + "TargetLLLuma": [25, 22, 20, 18, 15, 12], + "TargetLLLuma_len": 6 + } + }, + "OverExpCtrl": { + "Enable": 0, + "StrBias": 0, + "MaxWeight": 8, + "HighLightTh": 150, + "LowLightTh": 30, + "OverExpSetPoint": { + "OEpdf": [0.01, 0.02, 0.03, 0.04, 0.05, 0.07], + "OEpdf_len": 6, + "LowLightWeight": [1, 1, 1, 1, 1, 1], + "LowLightWeight_len": 6, + "HighLightWeight": [4, 3, 3, 3, 2, 2], + "HighLightWeight_len": 6 + } + } + }, + "HdrAeCtrl": { + "ToleranceIn": 10, + "ToleranceOut": 15, + "Evbias": 0, + "StrategyMode": "AECV2_STRATEGY_MODE_LOWLIGHT_PRIOR", + "LumaDistTh": 10, + "InitExp": { + "InitTimeValue": [0.0005, 0.003, 0.003], + "InitGainValue": [1, 1, 1], + "InitIspDGainValue": [1, 1, 1], + "InitPIrisGainValue": 512, + "InitDCIrisDutyValue": 100 + }, + "Route": { + "Frm0TimeDot": [0, 0.003, 0.003, 0.003, 0.003, 0.003], + "Frm0TimeDot_len": 6, + "Frm0GainDot": [1, 1, 4, 8, 15.5, 32], + "Frm0GainDot_len": 6, + "Frm0IspDGainDot": [1, 1, 1, 1, 1, 1], + "Frm0IspDGainDot_len": 6, + "Frm1TimeDot": [0, 0.03, 0.03, 0.03, 0.03, 0.03], + "Frm1TimeDot_len": 6, + "Frm1GainDot": [1, 1, 4, 8, 15.5, 64], + "Frm1GainDot_len": 6, + "Frm1IspDGainDot": [1, 1, 1, 1, 1, 1], + "Frm1IspDGainDot_len": 6, + "Frm2TimeDot": [0, 0.03, 0.03, 0.03, 0.03, 0.03], + "Frm2TimeDot_len": 6, + "Frm2GainDot": [1, 1, 4, 8, 15.5, 64], + "Frm2GainDot_len": 6, + "Frm2IspDGainDot": [1, 1, 1, 1, 1, 1], + "Frm2IspDGainDot_len": 6, + "PIrisDot": [512, 512, 512, 512, 512, 512], + "PIrisDot_len": 6 + }, + "ExpRatioCtrl": { + "ExpRatioType": "AECV2_HDR_RATIOTYPE_MODE_AUTO", + "ExpRatio": { + "RatioExpDot": [0, 0.1, 0.3, 0.5, 0.7, 1], + "RatioExpDot_len": 6, + "M2SRatioFix": [4, 4, 4, 4, 4, 4], + "M2SRatioFix_len": 6, + "L2MRatioFix": [4, 4, 4, 4, 4, 4], + "L2MRatioFix_len": 6, + "M2SRatioMax": [64, 64, 64, 64, 64, 64], + "M2SRatioMax_len": 6, + "L2MRatioMax": [32, 32, 30, 28, 26, 24], + "L2MRatioMax_len": 6 + } + }, + "LongFrmMode": { + "mode": "AECV2_HDR_LONGFRMMODE_NORMAL", + "SfrmMinLine": 2, + "LfrmModeExpTh": 0.62 + }, + "LframeCtrl": { + "OEROILowTh": 150, + "LvLowTh": 0.3125, + "LvHighTh": 7.5, + "LfrmSetPoint": { + "LExpLevel": [0, 0.0192, 0.0576, 0.096, 0.192, 0.384], + "LExpLevel_len": 6, + "NonOEPdfTh": [0.4, 0.45, 0.55, 0.65, 0.75, 1], + "NonOEPdfTh_len": 6, + "LowLightPdfTh": [0.2, 0.22, 0.25, 0.3, 0.35, 0.4], + "LowLightPdfTh_len": 6, + "LSetPoint": [75, 70, 65, 60, 45, 40], + "LSetPoint_len": 6, + "TargetLLLuma": [35, 32, 30, 28, 25, 20], + "TargetLLLuma_len": 6 + } + }, + "MframeCtrl": { + "MExpLevel": [0.096, 0.192, 0.384, 0.96, 1.344, 1.92], + "MExpLevel_len": 6, + "MSetPoint": [60, 60, 55, 50, 45, 40], + "MSetPoint_len": 6 + }, + "SframeCtrl": { + "HLROIExpandEn": 0, + "HLLumaTolerance": 12, + "SfrmSetPoint": { + "SExpLevel": [0, 0.0048, 0.0144, 0.024, 0.0384, 0.0576], + "SExpLevel_len": 6, + "SSetPoint": [18, 18, 15, 12, 12, 12], + "SSetPoint_len": 6, + "TargetHLLuma": [100, 100, 100, 90, 80, 70], + "TargetHLLuma_len": 6 + } + } + }, + "IrisCtrl": { + "Enable": 0, + "IrisType": "IRISV2_DC_TYPE", + "ManualEn": 0, + "ManualAttr": { + "PIrisGainValue": 1, + "DCIrisHoldValue": 30 + }, + "InitAttr": { + "PIrisGainValue": 512, + "DCIrisHoldValue": 100 + }, + "PIrisAttr": { + "TotalStep": 81, + "EffcStep": 44, + "ZeroIsMax": 1, + "StepTable": [512, 511, 506, 499, 491, 483, 474, 465, 456, 446, 437, 427, 417, 408, 398, 388, 378, 368, 359, 349, 339, 329, 319, 309, 300, 290, 280, 271, 261, 252, 242, 233, 224, 214, 205, 196, 187, 178, 170, 161, 153, 144, 136, 128, 120, 112, 105, 98, 90, 83, 77, 70, 64, 58, 52, 46, 41, 36, 31, 27, 23, 19, 16, 13, 10, 8, 6, 4, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "DCIrisAttr": { + "Kp": 0.5, + "Ki": 0.2, + "Kd": 0.3, + "MinPwmDuty": 0, + "MaxPwmDuty": 100, + "OpenPwmDuty": 40, + "ClosePwmDuty": 22 + } + }, + "SyncTest": { + "Enable": 0, + "IntervalFrm": 60, + "AlterExp": { + "LinearAE": [{ + "TimeValue": 0.02, + "GainValue": 1, + "IspDGainValue": 1, + "PIrisGainValue": 1, + "DcgMode": 0 + }, { + "TimeValue": 0.02, + "GainValue": 6, + "IspDGainValue": 1, + "PIrisGainValue": 29, + "DcgMode": 0 + }], + "LinearAE_len": 2, + "HdrAE": [{ + "TimeValue": [0.01, 0.02, 0.03], + "GainValue": [1, 1, 1], + "IspDGainValue": [1, 1, 1], + "PIrisGainValue": 1, + "DcgMode": [0, 0, 0] + }, { + "TimeValue": [0.01, 0.02, 0.03], + "GainValue": [6, 6, 1], + "IspDGainValue": [1, 1, 1], + "PIrisGainValue": 29, + "DcgMode": [0, 0, 0] + }], + "HdrAE_len": 2 + } + } + }, + "wb_v21": { + "control": { + "byPass": 0, + "mode": "CALIB_WB_MODE_AUTO" + }, + "manualPara": { + "mode": "CALIB_MWB_MODE_SCENE", + "cfg": { + "mwbGain": [1.31933, 1, 1, 2.50981], + "scene": "CALIB_WB_SCENE_CLOUDY_DAYLIGHT", + "cct": { + "CCT": 5000, + "CCRI": 0 + } + } + }, + "autoPara": { + "hdrPara": { + "frameChooseMode": "CALIB_AWB_HDR_FRAME_CHOOSE_MODE_MANUAL", + "frameChoose": 1 + }, + "lscBypassEnable": 0, + "uvDetectionEnable": 1, + "xyDetectionEnable": 1, + "yuvDetectionEnable": 1, + "lsUsedForYuvDet": ["A", "CWF", "D65", "TL84", "D50", "HZ", "D75"], + "lsUsedForYuvDet_len": 7, + "blkStatisticsEnable": 1, + "downScaleMode": "CALIB_AWB_DS_8X8", + "blkMeasureMode": "CALIB_AWB_BLK_STAT_MODE_ALL_V201", + "mainWindow": { + "mode": "CALIB_AWB_WINDOW_CFG_FIXED", + "window": [0, 0, 1, 1] + }, + "limitRange": { + "lumaValue": [0], + "lumaValue_len": 1, + "maxR": [230], + "maxR_len": 1, + "minR": [6], + "minR_len": 1, + "maxG": [230], + "maxG_len": 1, + "minG": [9], + "minG_len": 1, + "maxB": [230], + "maxB_len": 1, + "minB": [6], + "minB_len": 1, + "maxY": [210], + "maxY_len": 1, + "minY": [9], + "minY_len": 1 + }, + "rgb2TcsPara": { + "pseudoLuminanceWeight": [0.372935, 0.37602, 0.251045], + "rotationMat": [-0.589702, 0.807621, -0.326631, 0.807621, 0.589702, 0.560524, 0, 0, 1] + }, + "rgb2RotationYuvMat": [0.0351562, 0.136719, 0.0136719, 34.875, -0.0839844, 0.00195312, 0.0703125, 134.875, 0.046875, -0.0566406, 0.0507812, 109.812, 0, 0, 0, 1], + "extraWpRange": [{ + "domain": "CALIB_AWB_EXTRA_RANGE_DOMAIN_UV", + "mode": "CALIB_AWB_EXCLUDE_WP_MODE", + "region": [244, 249, 228, 211] + }, { + "domain": "CALIB_AWB_EXTRA_RANGE_DOMAIN_XY", + "mode": "CALIB_AWB_EXCLUDE_WP_MODE", + "region": [-1096, -985, 140, 65] + }, { + "domain": "CALIB_AWB_EXTRA_RANGE_DOMAIN_XY", + "mode": "CALIB_AWB_EXCLUDE_WP_MODE", + "region": [-40, 158, 121, 16] + }, { + "domain": "CALIB_AWB_EXTRA_RANGE_DOMAIN_XY", + "mode": "CALIB_AWB_EXCLUDE_WP_MODE", + "region": [-235, -40, 237, 80] + }, { + "domain": "CALIB_AWB_EXTRA_RANGE_DOMAIN_UV", + "mode": "CALIB_AWB_EXCLUDE_WP_MODE", + "region": [0, 0, 0, 0] + }, { + "domain": "CALIB_AWB_EXTRA_RANGE_DOMAIN_UV", + "mode": "CALIB_AWB_EXCLUDE_WP_MODE", + "region": [0, 0, 0, 0] + }, { + "domain": "CALIB_AWB_EXTRA_RANGE_DOMAIN_UV", + "mode": "CALIB_AWB_EXCLUDE_WP_MODE", + "region": [0, 0, 0, 0] + }], + "wpDiffLumaWeight": { + "enable": 1, + "wpDiffWeiEnableTh": { + "wpDiffWeiNoTh": 0.004, + "wpDiffWeiLvValueTh": 64 + }, + "wpDiffwei_y": [0, 16, 32, 64, 96, 128, 192, 224, 240], + "perfectBin": [0, 0, 0, 1, 1, 1, 1, 0], + "wpDiffWeightLvSet": [{ + "LvValue": 256, + "ratioSet": [{ + "ratioValue": 0, + "weight": [1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "ratioValue": 0.01, + "weight": [1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "ratioValue": 0.1, + "weight": [1, 1, 1, 1, 1, 1, 1, 1, 1] + }], + "ratioSet_len": 3 + }, { + "LvValue": 8192, + "ratioSet": [{ + "ratioValue": 0, + "weight": [1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "ratioValue": 0.01, + "weight": [1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "ratioValue": 0.1, + "weight": [0, 0, 0.2, 0.5, 1, 1, 1, 0.5, 0] + }], + "ratioSet_len": 3 + }], + "wpDiffWeightLvSet_len": 2 + }, + "wpDiffBlkWeiEnable": 1, + "wpDiffBlkWeight": [6, 6, 6, 8, 8, 8, 8, 10, 8, 8, 8, 8, 6, 6, 6, 6, 6, 8, 8, 10, 10, 12, 12, 12, 10, 10, 8, 8, 6, 6, 6, 8, 10, 12, 14, 16, 18, 20, 18, 16, 14, 12, 10, 8, 6, 8, 8, 12, 16, 22, 26, 30, 32, 30, 26, 22, 16, 12, 8, 8, 8, 10, 14, 22, 28, 36, 42, 46, 42, 36, 28, 22, 14, 10, 8, 8, 10, 16, 26, 36, 46, 54, 58, 54, 46, 36, 26, 16, 10, 8, 8, 12, 18, 30, 42, 54, 63, 63, 63, 54, 42, 30, 18, 12, 8, 10, 12, 20, 32, 46, 58, 63, 63, 63, 58, 46, 32, 20, 12, 10, 8, 12, 18, 30, 42, 54, 63, 63, 63, 54, 42, 30, 18, 12, 8, 8, 10, 16, 26, 36, 46, 54, 58, 54, 46, 36, 26, 16, 10, 8, 8, 10, 14, 22, 28, 36, 42, 46, 42, 36, 28, 22, 14, 10, 8, 8, 8, 12, 16, 22, 26, 30, 32, 30, 26, 22, 16, 12, 8, 8, 6, 8, 10, 12, 14, 16, 18, 20, 18, 16, 14, 12, 10, 8, 6, 6, 6, 8, 8, 10, 10, 12, 12, 12, 10, 10, 8, 8, 6, 6, 6, 6, 6, 8, 8, 8, 8, 10, 8, 8, 8, 8, 6, 6, 6], + "lightSources": [{ + "name": "A", + "doorType": "CALIB_AWB_DOOR_TYPE_INDOOR", + "standardGainValue": [1.31933, 1, 1, 2.50981], + "uvRegion": { + "u": [124.5, 54.5, 58.5, 125], + "v": [128, 114.5, 90.5, 127] + }, + "xyRegion": { + "normal": [-1.225, -0.73125, 0.0729253, -0.0435484], + "big": [-1.22875, -0.745, 0.092997, -0.0761649] + }, + "rtYuvRegion": { + "thcurve_u": [50, 54, 70, 78, 110, 142], + "thcure_th": [1.1875, 1.1875, 1.1875, 1.75, 2, 4], + "lineVector": [10, 140.875, 109.375, 186.688, 101.625, 110.5], + "disP1P2": 15 + }, + "staWeight": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 75], + "dayGainLvThSet": [1024, 8192], + "defaultDayGainLow": [1.76901, 1, 1, 2.15255], + "defaultDayGainHigh": [1.9499, 1, 1, 1.66695], + "xyType2Enable": 1 + }, { + "name": "CWF", + "doorType": "CALIB_AWB_DOOR_TYPE_INDOOR", + "standardGainValue": [1.76901, 1, 1, 2.15255], + "uvRegion": { + "u": [68.5, 74.5, 124, 123], + "v": [73.5, 60.5, 125, 125.5] + }, + "xyRegion": { + "normal": [-0.732778, -0.438333, 0.000487089, -0.0845602], + "big": [-0.737593, -0.43537, 0.0435897, -0.1] + }, + "rtYuvRegion": { + "thcurve_u": [50, 54, 70, 78, 110, 142], + "thcure_th": [1.125, 1.1875, 1.1875, 1.75, 2, 4], + "lineVector": [10, 137.812, 110.75, 190, 119.812, 103.938], + "disP1P2": 15 + }, + "staWeight": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 70, 60, 50, 40], + "dayGainLvThSet": [1024, 8192], + "defaultDayGainLow": [1.76901, 1, 1, 2.15255], + "defaultDayGainHigh": [1.9499, 1, 1, 1.66695], + "xyType2Enable": 1 + }, { + "name": "D50", + "doorType": "CALIB_AWB_DOOR_TYPE_AMBIGUITY", + "standardGainValue": [1.9499, 1, 1, 1.66695], + "uvRegion": { + "u": [74, 94, 126, 124.5], + "v": [59.5, 53.5, 124.5, 125.5] + }, + "xyRegion": { + "normal": [-0.426481, -0.171667, 0.0682934, -0.0644886], + "big": [-0.427963, -0.179074, 0.088365, -0.0845602] + }, + "rtYuvRegion": { + "thcurve_u": [50, 54, 70, 78, 110, 142], + "thcure_th": [1.1875, 1.3125, 1.375, 1.75, 2, 4], + "lineVector": [10, 135.75, 110, 191, 132.938, 108.5], + "disP1P2": 15 + }, + "staWeight": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100], + "dayGainLvThSet": [1024, 8192], + "defaultDayGainLow": [1.76901, 1, 1, 2.15255], + "defaultDayGainHigh": [1.9499, 1, 1, 1.66695], + "xyType2Enable": 1 + }, { + "name": "D65", + "doorType": "CALIB_AWB_DOOR_TYPE_OUTDOOR", + "standardGainValue": [2.18207, 1, 1, 1.45549], + "uvRegion": { + "u": [94, 112.5, 127.5, 126], + "v": [53.5, 48.5, 121, 124] + }, + "xyRegion": { + "normal": [-0.176111, 0.0712963, 0.0875931, -0.104632], + "big": [-0.186481, 0.0801852, 0.136228, -0.171023] + }, + "rtYuvRegion": { + "thcurve_u": [50, 54, 70, 78, 110, 142], + "thcure_th": [1.1875, 1.5, 1.5, 1.8125, 2, 4], + "lineVector": [10, 133.812, 109.625, 190.75, 143.812, 109.625], + "disP1P2": 15 + }, + "staWeight": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 80, 70], + "dayGainLvThSet": [1024, 8192], + "defaultDayGainLow": [1.76901, 1, 1, 2.15255], + "defaultDayGainHigh": [1.9499, 1, 1, 1.66695], + "xyType2Enable": 1 + }, { + "name": "D75", + "doorType": "CALIB_AWB_DOOR_TYPE_OUTDOOR", + "standardGainValue": [2.32318, 1, 1, 1.35032], + "uvRegion": { + "u": [131.5, 127, 112.5, 129.5], + "v": [121, 122.5, 48.5, 43.5] + }, + "xyRegion": { + "normal": [0.0835185, 0.369074, 0.0962136, -0.0938241], + "big": [0.0787037, 0.375, 0.142404, -0.181831] + }, + "rtYuvRegion": { + "thcurve_u": [50, 54, 70, 78, 110, 142], + "thcure_th": [1.1875, 1.3125, 1.5, 1.75, 2, 4], + "lineVector": [10, 132.688, 109.875, 190.25, 149.625, 110.688], + "disP1P2": 15 + }, + "staWeight": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 80, 70, 50], + "dayGainLvThSet": [1024, 8192], + "defaultDayGainLow": [1.76901, 1, 1, 2.15255], + "defaultDayGainHigh": [1.9499, 1, 1, 1.66695], + "xyType2Enable": 1 + }, { + "name": "HZ", + "doorType": "CALIB_AWB_DOOR_TYPE_INDOOR", + "standardGainValue": [1.05376, 1, 1, 2.97437], + "uvRegion": { + "u": [123.5, 57.5, 55.5, 124.5], + "v": [130.5, 140, 113.5, 128] + }, + "xyRegion": { + "normal": [-1.96056, -1.23625, 0.089909, -0.0310036], + "big": [-1.96278, -1.22944, 0.100717, -0.0837883] + }, + "rtYuvRegion": { + "thcurve_u": [50, 54, 70, 78, 110, 142], + "thcure_th": [1.1875, 1.3125, 1.3125, 1.75, 2, 4], + "lineVector": [10, 143.625, 108.562, 181.688, 86.5625, 115.438], + "disP1P2": 15 + }, + "staWeight": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 75, 50], + "dayGainLvThSet": [1024, 8192], + "defaultDayGainLow": [1.76901, 1, 1, 2.15255], + "defaultDayGainHigh": [1.9499, 1, 1, 1.66695], + "xyType2Enable": 1 + }, { + "name": "TL84", + "doorType": "CALIB_AWB_DOOR_TYPE_INDOOR", + "standardGainValue": [1.71132, 1, 1, 2.14938], + "uvRegion": { + "u": [124, 58, 68.5, 124.5], + "v": [126.5, 90, 73.5, 125.5] + }, + "xyRegion": { + "normal": [-0.728333, -0.433889, 0.0529823, -0.038241], + "big": [-0.73875, -0.433889, 0.088365, -0.066129] + }, + "rtYuvRegion": { + "thcurve_u": [50, 54, 70, 78, 110, 142], + "thcure_th": [1.1875, 1.1875, 1.3125, 1.75, 2, 4], + "lineVector": [10, 138.062, 110.062, 189.875, 118.312, 106.188], + "disP1P2": 15 + }, + "staWeight": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 80, 70, 60, 60], + "dayGainLvThSet": [1024, 8192], + "defaultDayGainLow": [1.76901, 1, 1, 2.15255], + "defaultDayGainHigh": [1.9499, 1, 1, 1.66695], + "xyType2Enable": 1 + }], + "lightSources_len": 7 + }, + "autoExtPara": { + "lightSourceForFirstFrame": "D50", + "tolerance": { + "lumaValue": [256, 512, 32768, 131072], + "lumaValue_len": 4, + "toleranceValue": [0, 0, 0, 0], + "toleranceValue_len": 4 + }, + "runInterval": { + "lumaValue": [256, 512, 32768, 131072], + "lumaValue_len": 4, + "intervalValue": [0, 0, 0, 0], + "intervalValue_len": 4 + }, + "dampFactor": { + "dFStep": 0.05, + "dFMin": 0.7, + "dFMax": 0.9, + "lvIIRsize": 4, + "lvVarTh": 0.04 + }, + "wbGainAdjust": { + "enable": 0, + "lutAll": [{ + "lumaValue": 128, + "ct_grid_num": 7, + "cri_grid_num": 9, + "ct_in_range": [2000, 8000], + "cri_in_range": [-1, 1], + "ct_lut_out": [2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000], + "ct_lut_out_len": 63, + "cri_lut_out": [-1, -1, -1, -1, -1, -1, -1, -0.75, -0.75, -0.75, -0.75, -0.75, -0.75, -0.75, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 1, 1, 1, 1, 1, 1, 1], + "cri_lut_out_len": 63 + }, { + "lumaValue": 8192, + "ct_grid_num": 7, + "cri_grid_num": 9, + "ct_in_range": [2000, 8000], + "cri_in_range": [-1, 1], + "ct_lut_out": [2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000], + "ct_lut_out_len": 63, + "cri_lut_out": [-1, -1, -1, -1, -1, -1, -1, -0.75, -0.75, -0.75, -0.75, -0.75, -0.75, -0.75, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 1, 1, 1, 1, 1, 1, 1], + "cri_lut_out_len": 63 + }, { + "lumaValue": 65536, + "ct_grid_num": 7, + "cri_grid_num": 9, + "ct_in_range": [2000, 8000], + "cri_in_range": [-1, 1], + "ct_lut_out": [2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 2000, 3000, 4000, 5000, 6000, 7000, 8000], + "ct_lut_out_len": 63, + "cri_lut_out": [-1, -1, -1, -1, -1, -1, -1, -0.75, -0.75, -0.75, -0.75, -0.75, -0.75, -0.75, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 1, 1, 1, 1, 1, 1, 1], + "cri_lut_out_len": 63 + }], + "lutAll_len": 3 + }, + "wbGainDaylightClip": { + "enable": 0, + "outdoor_cct_min": 5000 + }, + "wbGainClip": { + "enable": 0, + "cct": [1000, 2856, 4100, 6500, 7500], + "cct_len": 5, + "cri_bound_up": [0.091, 0.091, 0.18, 0.12, 0.12], + "cri_bound_up_len": 5, + "cri_bound_low": [0.07, 0.07, 0.16, 0.16, 0.16], + "cri_bound_low_len": 5 + }, + "division": { + "lumaValThLow": 110, + "lumaValThLow2": 200, + "lumaValThHigh": 65536, + "lumaValThHigh2": 65600, + "wpNumTh": { + "lumaValue": [0], + "lumaValue_len": 1, + "low": [50], + "low_len": 1, + "high": [80], + "high_len": 1 + } + }, + "defaultNightGain": [1.31933, 1, 1, 2.50981], + "lumaValueMatrix": [0, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144], + "defaultNightGainWeight": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "probCalcDis": { + "proDis_THH": 4.6124, + "proDis_THL": 0.0269 + }, + "probCalcLv": { + "outdoorLumaValThLow": 30000, + "outdoorLumaValThHigh": 45745 + }, + "probCalcWp": { + "wpNumPercTh": 0.031, + "wpNumPercTh2": 0.2 + }, + "converged": { + "varThforUnDamp": 0.005, + "varThforDamp": 0.005 + }, + "xyRegionStableSelection": { + "enable": 1, + "wpNumTh": { + "lumaValue": [0], + "lumaValue_len": 1, + "forBigType": [80], + "forBigType_len": 1, + "forExtraType": [80], + "forExtraType_len": 1 + }, + "xyTypeListSize": 50, + "varianceLumaTh": 0.06 + }, + "weightForNightGainCalc": [25, 25, 25, 25], + "weightForNightGainCalc_len": 4, + "singleColorProces": { + "enable": 1, + "colorBlock": [{ + "index": 15, + "meanC": 26.1455, + "meanH": 30.4796 + }, { + "index": 13, + "meanC": 24.607, + "meanH": -75.964 + }, { + "index": 5, + "meanC": 10.9565, + "meanH": -67.7098 + }, { + "index": 10, + "meanC": 11.9595, + "meanH": -41.2431 + }, { + "index": 14, + "meanC": 19.0206, + "meanH": 144.275 + }, { + "index": 16, + "meanC": 30.264, + "meanH": 88.699 + }], + "colorBlock_len": 6, + "lsUsedForEstimation": [{ + "name": "A", + "RGain": 1.31933, + "BGain": 2.50981 + }, { + "name": "TL84", + "RGain": 1.9499, + "BGain": 1.66695 + }, { + "name": "D50", + "RGain": 1.71132, + "BGain": 2.14938 + }], + "lsUsedForEstimation_len": 3, + "alpha": 0.9 + }, + "lineRgBg": [-0.8395, -0.5434, -2.741], + "lineRgProjCCT": [1, -0.0003, 0.4559], + "chrAdpttAdj": { + "enable": 0, + "targetGain": [2.2099, 1, 1, 1.6302], + "laCalcFactor": 40 + }, + "remosaicCfg": { + "enable": 0, + "applyInvWbGainEnable": 1, + "sensorWbGain": [1, 1, 1, 1] + }, + "wbGainOffset": { + "enable": 0, + "offset": [0, 0, 0, 0] + } + } + }, + "agamma_calib": { + "GammaTuningPara": { + "Gamma_en": 1, + "Gamma_out_segnum": "GAMMATYPE_LOG", + "Gamma_out_offset": 0, + "Gamma_curve": [0, 6, 11, 17, 22, 28, 33, 39, 44, 55, 66, 77, 88, 109, 130, 150, 170, 210, 248, 286, 323, 393, 460, 525, 586, 702, 809, 909, 1002, 1172, 1325, 1462, 1588, 1811, 2004, 2174, 2327, 2590, 2813, 3006, 3177, 3467, 3708, 3915, 4095] + } + }, + "ablc_calib": { + "BlcTuningPara": { + "enable": 1, + "BLC_Data": { + "ISO": [50, 100, 200, 400, 800, 1600, 3200, 10000, 12800, 25600, 51200, 102400, 204800], + "ISO_len": 13, + "R_Channel": [255, 253, 255, 255, 254, 256, 256, 256, 256, 256, 256, 256, 256], + "R_Channel_len": 13, + "Gr_Channel": [256, 254, 256, 256, 257, 256, 256, 256, 256, 256, 256, 256, 256], + "Gr_Channel_len": 13, + "Gb_Channel": [256, 254, 256, 256, 257, 256, 256, 256, 256, 256, 256, 256, 256], + "Gb_Channel_len": 13, + "B_Channel": [255, 253, 255, 254, 254, 256, 256, 256, 256, 256, 256, 256, 256], + "B_Channel_len": 13 + } + } + }, + "adegamma_calib": { + "DegammaTuningPara": { + "degamma_en": 0, + "X_axis": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "curve_R": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "curve_G": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "curve_B": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + } + }, + "agic_calib_v21": { + "GicTuningPara": { + "enable": 0, + "gr_ration": 0, + "GicData": { + "ISO": [50, 100, 200, 400, 800, 1600, 3200, 6400, 12800], + "ISO_len": 9, + "min_busy_thre": [40, 40, 40, 40, 40, 40, 40, 40, 40], + "min_busy_thre_len": 9, + "min_grad_thr1": [16, 16, 16, 16, 16, 16, 16, 16, 16], + "min_grad_thr1_len": 9, + "min_grad_thr2": [8, 8, 8, 8, 8, 8, 8, 8, 8], + "min_grad_thr2_len": 9, + "k_grad1": [64, 64, 64, 64, 64, 64, 64, 64, 64], + "k_grad1_len": 9, + "k_grad2": [2, 2, 2, 2, 2, 2, 2, 2, 2], + "k_grad2_len": 9, + "gb_thre": [32, 32, 32, 32, 32, 32, 32, 32, 32], + "gb_thre_len": 9, + "maxCorV": [10, 10, 10, 10, 10, 10, 10, 10, 10], + "maxCorV_len": 9, + "maxCorVboth": [20, 20, 20, 20, 20, 20, 20, 20, 20], + "maxCorVboth_len": 9, + "dark_thre": [120, 120, 120, 120, 120, 120, 120, 120, 120], + "dark_thre_len": 9, + "dark_threHi": [240, 240, 240, 240, 240, 240, 240, 240, 240], + "dark_threHi_len": 9, + "k_grad1_dark": [64, 64, 64, 64, 64, 64, 64, 64, 64], + "k_grad1_dark_len": 9, + "k_grad2_dark": [2, 2, 2, 2, 2, 2, 2, 2, 2], + "k_grad2_dark_len": 9, + "min_grad_thr_dark1": [16, 16, 16, 16, 16, 16, 16, 16, 16], + "min_grad_thr_dark1_len": 9, + "min_grad_thr_dark2": [8, 8, 8, 8, 8, 8, 8, 8, 8], + "min_grad_thr_dark2_len": 9, + "noiseCurve_0": [0, 0, 0, 0, 0, 0, 0, 0, 0], + "noiseCurve_0_len": 9, + "noiseCurve_1": [0, 0, 0, 0, 0, 0, 0, 0, 0], + "noiseCurve_1_len": 9, + "NoiseScale": [0, 0, 0, 0, 0, 0, 0, 0, 0], + "NoiseScale_len": 9, + "NoiseBase": [0, 0, 0, 0, 0, 0, 0, 0, 0], + "NoiseBase_len": 9, + "globalStrength": [1, 1, 1, 1, 1, 1, 1, 1, 1], + "globalStrength_len": 9, + "diff_clip": [32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767], + "diff_clip_len": 9 + } + } + }, + "adehaze_calib_v21": { + "DehazeTuningPara": { + "Enable": 1, + "cfg_alpha": 0, + "ByPassThr": 0, + "dehaze_setting": { + "en": 0, + "air_lc_en": 1, + "stab_fnum": 8, + "sigma": 6, + "wt_sigma": 8, + "air_sigma": 120, + "tmax_sigma": 0.01, + "pre_wet": 0.01, + "DehazeData": { + "EnvLv": [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9, 1], + "EnvLv_len": 9, + "dc_min_th": [64, 64, 64, 64, 64, 64, 64, 64, 64], + "dc_min_th_len": 9, + "dc_max_th": [192, 192, 192, 192, 192, 192, 192, 192, 192], + "dc_max_th_len": 9, + "yhist_th": [249, 249, 249, 249, 249, 249, 249, 249, 249], + "yhist_th_len": 9, + "yblk_th": [0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002, 0.002], + "yblk_th_len": 9, + "dark_th": [250, 250, 250, 250, 250, 250, 250, 250, 250], + "dark_th_len": 9, + "bright_min": [180, 180, 180, 180, 180, 180, 180, 180, 180], + "bright_min_len": 9, + "bright_max": [240, 240, 240, 240, 240, 240, 240, 240, 240], + "bright_max_len": 9, + "wt_max": [0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9], + "wt_max_len": 9, + "air_min": [200, 200, 200, 200, 200, 200, 200, 200, 200], + "air_min_len": 9, + "air_max": [250, 250, 250, 250, 250, 250, 250, 250, 250], + "air_max_len": 9, + "tmax_base": [125, 125, 125, 125, 125, 125, 125, 125, 125], + "tmax_base_len": 9, + "tmax_off": [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], + "tmax_off_len": 9, + "tmax_max": [0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8], + "tmax_max_len": 9, + "cfg_wt": [0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8], + "cfg_wt_len": 9, + "cfg_air": [210, 210, 210, 210, 210, 210, 210, 210, 210], + "cfg_air_len": 9, + "cfg_tmax": [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + "cfg_tmax_len": 9, + "dc_weitcur": [1, 1, 1, 1, 1, 1, 1, 1, 1], + "dc_weitcur_len": 9, + "bf_weight": [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], + "bf_weight_len": 9, + "range_sigma": [0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14], + "range_sigma_len": 9, + "space_sigma_pre": [0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14], + "space_sigma_pre_len": 9, + "space_sigma_cur": [0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14, 0.14], + "space_sigma_cur_len": 9 + } + }, + "enhance_setting": { + "en": 1, + "enhance_curve": [0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1023], + "EnhanceData": { + "EnvLv": [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9, 1], + "EnvLv_len": 9, + "enhance_value": [1.15, 1.15, 1.15, 1.12, 1.12, 1.12, 1.1, 1.1, 1], + "enhance_value_len": 9, + "enhance_chroma": [1.5, 1.4, 1.3, 1.2, 1.2, 1.2, 1.1, 1.1, 1], + "enhance_chroma_len": 9 + } + }, + "hist_setting": { + "en": 0, + "hist_para_en": 1, + "HistData": { + "EnvLv": [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9, 1], + "EnvLv_len": 9, + "hist_gratio": [2, 2, 2, 2, 2, 2, 2, 2, 2], + "hist_gratio_len": 9, + "hist_th_off": [64, 64, 64, 64, 64, 64, 64, 64, 64], + "hist_th_off_len": 9, + "hist_k": [2, 2, 2, 2, 2, 2, 2, 2, 2], + "hist_k_len": 9, + "hist_min": [0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015], + "hist_min_len": 9, + "hist_scale": [0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09, 0.09], + "hist_scale_len": 9, + "cfg_gratio": [2, 2, 2, 2, 2, 2, 2, 2, 2], + "cfg_gratio_len": 9 + } + } + } + }, + "adpcc_calib": { + "DpccTuningPara": { + "Enable": 1, + "Fast_Mode": { + "Fast_mode_en": 0, + "Single_enable": 0, + "Double_enable": 0, + "Triple_enable": 0, + "Fast_Data": { + "ISO": [50, 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200, 102400, 204800], + "ISO_len": 13, + "Single_level": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "Single_level_len": 13, + "Double_level": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "Double_level_len": 13, + "Triple_level": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "Triple_level_len": 13 + } + }, + "Expert_Mode": { + "stage1_Enable": 1, + "grayscale_mode": 0, + "dpcc_out_sel": 1, + "stage1_g_3x3": 0, + "stage1_rb_3x3": 0, + "stage1_inc_rb_center": 1, + "stage1_inc_g_center": 1, + "rk_out_sel": 1, + "SetEnable": { + "ISO": [50, 100, 200, 400, 800, 1500, 1507, 1510, 3200, 6400, 12800, 102400, 204800], + "fix_set": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "set1": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "set2": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "set3": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "set1": { + "RK": { + "RK_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_sw_mindis": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "g_sw_mindis": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "sw_dis_scale_min": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "sw_dis_scale_max": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "LC": { + "LC_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_line_thr": [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8], + "g_line_thr": [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8], + "rb_line_mad_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], + "g_line_mad_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] + }, + "PG": { + "PG_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_pg_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], + "g_pg_fac": [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3] + }, + "RND": { + "RND_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_rnd_thr": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10], + "g_rnd_thr": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10], + "rb_rnd_offs": [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3], + "g_rnd_offs": [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3] + }, + "RG": { + "RG_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_rg_fac": [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32], + "g_rg_fac": [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32] + }, + "RO": { + "RO_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_ro_lim": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], + "g_ro_lim": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] + } + }, + "set2": { + "RK": { + "RK_enable": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "rb_sw_mindis": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "g_sw_mindis": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "sw_dis_scale_min": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "sw_dis_scale_max": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "LC": { + "LC_enable": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "rb_line_thr": [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16], + "g_line_thr": [24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24], + "rb_line_mad_fac": [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16], + "g_line_mad_fac": [12, 12, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, + "PG": { + "PG_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_pg_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], + "g_pg_fac": [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3] + }, + "RND": { + "RND_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_rnd_thr": [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8], + "g_rnd_thr": [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8], + "rb_rnd_offs": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "g_rnd_offs": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "RG": { + "RG_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_rg_fac": [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8], + "g_rg_fac": [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8] + }, + "RO": { + "RO_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_ro_lim": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "g_ro_lim": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + } + }, + "set3": { + "RK": { + "RK_enable": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "rb_sw_mindis": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "g_sw_mindis": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "sw_dis_scale_min": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "sw_dis_scale_max": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + "LC": { + "LC_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_line_thr": [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32], + "g_line_thr": [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32], + "rb_line_mad_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], + "g_line_mad_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] + }, + "PG": { + "PG_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_pg_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], + "g_pg_fac": [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3] + }, + "RND": { + "RND_enable": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "rb_rnd_thr": [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8], + "g_rnd_thr": [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6], + "rb_rnd_offs": [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3], + "g_rnd_offs": [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3] + }, + "RG": { + "RG_enable": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "rb_rg_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], + "g_rg_fac": [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] + }, + "RO": { + "RO_enable": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "rb_ro_lim": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], + "g_ro_lim": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] + } + } + }, + "Dpcc_pdaf": { + "en": 0, + "point_en": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "offsetx": 0, + "offsety": 0, + "wrapx": 0, + "wrapy": 0, + "wrapx_num": 0, + "wrapy_num": 0, + "point_x": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "point_y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "forward_med": 0 + }, + "Sensor_dpcc": { + "sensor_dpcc_auto_en": 0, + "max_level": 20, + "SensorDpcc_Data": { + "ISO": [50, 100, 200, 400, 800, 1500, 1507, 1510, 3200, 6400, 12800, 102400, 204800], + "ISO_len": 13, + "level_single": [19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19], + "level_single_len": 13, + "level_multiple": [19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19], + "level_multiple_len": 13 + } + } + } + }, + "amerge_calib": { + "MergeTuningPara": { + "OECurve": { + "EnvLv": [0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1], + "EnvLv_len": 13, + "Smooth": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4], + "Smooth_len": 13, + "Offset": [210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210], + "Offset_len": 13 + }, + "MDCurve": { + "MoveCoef": [0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1], + "MoveCoef_len": 13, + "LM_smooth": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4], + "LM_smooth_len": 13, + "LM_offset": [0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38], + "LM_offset_len": 13, + "MS_smooth": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4], + "MS_smooth_len": 13, + "MS_offset": [0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38, 0.38], + "MS_offset_len": 13 + }, + "ByPassThr": 0, + "OECurve_damp": 0.3, + "MDCurveLM_damp": 0.3, + "MDCurveMS_damp": 0.3 + } + }, + "adrc_calib": { + "DrcTuningPara": { + "Enable": 0, + "DrcGain": { + "EnvLv": [0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1], + "EnvLv_len": 13, + "DrcGain": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "DrcGain_len": 13, + "Alpha": [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], + "Alpha_len": 13, + "Clip": [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16], + "Clip_len": 13 + }, + "HiLight": { + "EnvLv": [0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1], + "EnvLv_len": 13, + "Strength": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "Strength_len": 13 + }, + "LocalTMOSetting": { + "LocalTMOData": { + "EnvLv": [0, 0.005, 0.01, 0.05, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 1], + "EnvLv_len": 13, + "LocalWeit": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "LocalWeit_len": 13, + "GlobalContrast": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "GlobalContrast_len": 13, + "LoLitContrast": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "LoLitContrast_len": 13 + }, + "curPixWeit": 0.376471, + "preFrameWeit": 1, + "Range_force_sgm": 0, + "Range_sgm_cur": 0.125015, + "Range_sgm_pre": 0.125015, + "Space_sgm_cur": 4068, + "Space_sgm_pre": 3968 + }, + "CompressSetting": { + "Mode": "COMPRESS_AUTO", + "Manual_curve": [0, 558, 1087, 1588, 2063, 2515, 2944, 3353, 3744, 4473, 5139, 5751, 6316, 6838, 7322, 7772, 8192] + }, + "Scale_y": [0, 2, 20, 76, 193, 381, 631, 772, 919, 1066, 1211, 1479, 1700, 1863, 1968, 2024, 2048], + "ByPassThr": 0, + "Edge_Weit": 0.0627451, + "OutPutLongFrame": 0, + "IIR_frame": 16, + "Tolerance": 0, + "damp": 0.9 + } + }, + "cpsl": { + "param": { + "enable": 1, + "mode": "RK_AIQ_OP_MODE_AUTO", + "force_gray": 1, + "light_src": "LED", + "auto_adjust_sens": 50, + "auto_on2off_th": 3000, + "auto_off2on_th": 100, + "auto_sw_interval": 0, + "manual_on": 0, + "manual_strength": 100 + } + }, + "orb": { + "param": { + "orb_en": 0 + } + }, + "debayer": { + "param": { + "debayer_en": 1, + "debayer_filter1": [2, -6, 0, 6, -2], + "debayer_filter2": [2, -4, 4, -4, 2], + "debayer_gain_offset": 4, + "debayer_offset": 1, + "debayer_clip_en": 1, + "debayer_filter_g_en": 1, + "debayer_filter_c_en": 1, + "debayer_thed0": 3, + "debayer_thed1": 6, + "debayer_dist_scale": 8, + "debayer_cnr_strength": 5, + "debayer_shift_num": 2, + "array": { + "ISO": [50, 100, 200, 400, 800, 1600, 3200, 6400, 12800], + "sharp_strength": [4, 4, 4, 4, 4, 4, 4, 4, 4], + "debayer_hf_offset": [1, 1, 1, 1, 1, 1, 1, 1, 1] + } + } + }, + "cproc": { + "param": { + "enable": 1, + "brightness": 128, + "contrast": 128, + "saturation": 128, + "hue": 128 + } + }, + "ie": { + "param": { + "enable": 0, + "mode": 0 + } + }, + "lsc_v2": { + "common": { + "enable": 1, + "resolutionAll": [{ + "name": "3264x2448", + "lsc_sect_size_x": [204, 204, 204, 204, 204, 204, 204, 204], + "lsc_sect_size_y": [153, 153, 153, 153, 153, 153, 153, 153] + }], + "resolutionAll_len": 1 + }, + "alscCoef": { + "damp_enable": 1, + "illAll": [{ + "usedForCase": 0, + "name": "A", + "wbGain": [1.2422, 2.5859], + "tableUsed": [{ + "name": "A_100" + }, { + "name": "A_70" + }], + "tableUsed_len": 2, + "gains": [1, 4, 6, 8], + "gains_len": 4, + "vig": [100, 100, 90, 70], + "vig_len": 4 + }, { + "usedForCase": 0, + "name": "CWF", + "wbGain": [1.7163, 2.2709], + "tableUsed": [{ + "name": "CWF_100" + }, { + "name": "CWF_70" + }], + "tableUsed_len": 2, + "gains": [1, 4, 6, 8], + "gains_len": 4, + "vig": [100, 100, 90, 70], + "vig_len": 4 + }, { + "usedForCase": 0, + "name": "D50", + "wbGain": [2.0413, 1.565], + "tableUsed": [{ + "name": "D50_100" + }, { + "name": "D50_70" + }], + "tableUsed_len": 2, + "gains": [1, 4, 6, 8], + "gains_len": 4, + "vig": [100, 100, 80, 70], + "vig_len": 4 + }, { + "usedForCase": 0, + "name": "D65", + "wbGain": [2.1927, 1.4514], + "tableUsed": [{ + "name": "D65_100" + }, { + "name": "D65_70" + }], + "tableUsed_len": 2, + "gains": [1, 4, 6, 8], + "gains_len": 4, + "vig": [90, 85, 80, 70], + "vig_len": 4 + }, { + "usedForCase": 0, + "name": "D75", + "wbGain": [2.3467, 1.323], + "tableUsed": [{ + "name": "D75_100" + }, { + "name": "D75_70" + }], + "tableUsed_len": 2, + "gains": [1, 4, 6, 8], + "gains_len": 4, + "vig": [90, 85, 80, 70], + "vig_len": 4 + }, { + "usedForCase": 0, + "name": "HZ", + "wbGain": [0.9985, 3.0212], + "tableUsed": [{ + "name": "HZ_100" + }, { + "name": "HZ_70" + }], + "tableUsed_len": 2, + "gains": [1, 4, 6, 8], + "gains_len": 4, + "vig": [100, 100, 90, 70], + "vig_len": 4 + }, { + "usedForCase": 0, + "name": "TL84", + "wbGain": [1.622, 2.3057], + "tableUsed": [{ + "name": "TL84_100" + }, { + "name": "TL84_70" + }], + "tableUsed_len": 2, + "gains": [1, 4, 6, 8], + "gains_len": 4, + "vig": [100, 100, 90, 70], + "vig_len": 4 + }, { + "usedForCase": 2, + "name": "GRAY", + "wbGain": [1, 1], + "tableUsed": [{ + "name": "GRAY_0" + }], + "tableUsed_len": 1, + "gains": [1, 10, 31, 64], + "gains_len": 4, + "vig": [90, 60, 25, 0], + "vig_len": 4 + }], + "illAll_len": 8 + }, + "tbl": { + "tableAll": [{ + "name": "3264x2448_A_100", + "resolution": "3264x2448", + "illumination": "A", + "vignetting": 100, + "lsc_samples_red": { + "uCoeff": [4126, 3298, 2812, 2502, 2280, 2072, 1924, 1846, 1834, 1846, 1936, 2044, 2254, 2420, 2746, 3157, 4070, 3621, 3012, 2601, 2334, 2080, 1887, 1737, 1645, 1614, 1645, 1732, 1869, 2037, 2263, 2534, 2880, 3513, 3316, 2785, 2430, 2147, 1881, 1688, 1567, 1473, 1448, 1470, 1559, 1678, 1869, 2072, 2353, 2696, 3191, 3140, 2613, 2280, 1975, 1748, 1550, 1403, 1322, 1298, 1319, 1407, 1542, 1717, 1943, 2195, 2545, 3012, 3027, 2471, 2179, 1869, 1627, 1430, 1298, 1223, 1189, 1216, 1293, 1427, 1597, 1846, 2117, 2410, 2894, 2894, 2410, 2058, 1785, 1526, 1337, 1201, 1130, 1108, 1119, 1211, 1337, 1526, 1748, 2009, 2316, 2825, 2812, 2334, 2002, 1712, 1451, 1271, 1149, 1076, 1057, 1074, 1141, 1284, 1455, 1673, 1949, 2271, 2672, 2812, 2289, 1969, 1678, 1434, 1249, 1115, 1055, 1031, 1049, 1128, 1231, 1427, 1650, 1918, 2271, 2672, 2825, 2325, 1982, 1683, 1437, 1236, 1117, 1044, 1024, 1044, 1119, 1236, 1427, 1650, 1956, 2254, 2660, 2825, 2334, 2002, 1712, 1462, 1273, 1147, 1080, 1049, 1074, 1132, 1265, 1459, 1693, 1949, 2271, 2708, 2866, 2381, 2065, 1774, 1530, 1334, 1211, 1125, 1100, 1113, 1191, 1316, 1499, 1748, 2002, 2334, 2785, 3027, 2471, 2163, 1875, 1627, 1434, 1279, 1194, 1186, 1198, 1282, 1403, 1588, 1840, 2102, 2430, 2937, 3226, 2601, 2298, 1956, 1742, 1530, 1397, 1313, 1284, 1313, 1400, 1538, 1702, 1943, 2237, 2567, 3075, 3432, 2825, 2430, 2109, 1875, 1688, 1542, 1459, 1430, 1462, 1538, 1669, 1834, 2094, 2362, 2672, 3261, 3666, 2982, 2590, 2325, 2051, 1875, 1737, 1645, 1610, 1645, 1722, 1863, 2016, 2280, 2545, 2894, 3452, 4070, 3279, 2825, 2523, 2280, 2065, 1930, 1869, 1817, 1840, 1924, 2065, 2212, 2460, 2759, 3174, 4042, 5511, 3712, 3174, 2838, 2590, 2353, 2220, 2163, 2124, 2132, 2179, 2325, 2513, 2772, 3140, 3534, 5313] + }, + "lsc_samples_greenR": { + "uCoeff": [3693, 2996, 2530, 2306, 2054, 1929, 1805, 1724, 1696, 1708, 1801, 1879, 2025, 2196, 2421, 2834, 3566, 3264, 2749, 2366, 2107, 1899, 1753, 1654, 1576, 1559, 1569, 1636, 1737, 1865, 2031, 2271, 2611, 3059, 3021, 2530, 2202, 1976, 1770, 1618, 1507, 1434, 1401, 1417, 1486, 1593, 1720, 1889, 2089, 2405, 2890, 2812, 2351, 2071, 1837, 1650, 1486, 1385, 1315, 1278, 1303, 1359, 1459, 1618, 1779, 2003, 2264, 2649, 2649, 2257, 1976, 1733, 1542, 1398, 1274, 1203, 1183, 1201, 1256, 1369, 1504, 1681, 1904, 2157, 2556, 2593, 2163, 1889, 1654, 1451, 1289, 1191, 1128, 1099, 1118, 1189, 1292, 1434, 1614, 1837, 2071, 2437, 2521, 2150, 1856, 1600, 1398, 1254, 1141, 1080, 1054, 1072, 1120, 1231, 1385, 1556, 1770, 2042, 2437, 2462, 2132, 1814, 1576, 1380, 1229, 1120, 1050, 1024, 1046, 1109, 1217, 1354, 1542, 1762, 2020, 2328, 2495, 2125, 1823, 1572, 1374, 1217, 1109, 1052, 1027, 1037, 1104, 1219, 1354, 1542, 1766, 2025, 2336, 2574, 2138, 1837, 1614, 1403, 1256, 1139, 1075, 1054, 1075, 1120, 1231, 1382, 1569, 1796, 2083, 2389, 2630, 2189, 1904, 1669, 1462, 1292, 1181, 1116, 1101, 1116, 1177, 1296, 1431, 1632, 1860, 2132, 2478, 2749, 2271, 2003, 1724, 1552, 1385, 1263, 1206, 1168, 1185, 1263, 1364, 1504, 1704, 1934, 2202, 2574, 2913, 2397, 2083, 1837, 1654, 1495, 1377, 1306, 1272, 1306, 1359, 1480, 1621, 1801, 2014, 2285, 2749, 3034, 2556, 2250, 1965, 1779, 1618, 1498, 1425, 1409, 1442, 1504, 1603, 1745, 1939, 2157, 2454, 2867, 3339, 2834, 2374, 2157, 1945, 1779, 1650, 1589, 1569, 1593, 1636, 1762, 1904, 2089, 2314, 2639, 3138, 3730, 3046, 2649, 2314, 2101, 1950, 1832, 1762, 1733, 1766, 1823, 1929, 2071, 2271, 2521, 2924, 3602, 5113, 3401, 2913, 2556, 2314, 2132, 2025, 1976, 1934, 1987, 2065, 2157, 2314, 2512, 2823, 3264, 4974] + }, + "lsc_samples_greenB": { + "uCoeff": [3964, 3072, 2671, 2333, 2095, 1945, 1834, 1751, 1743, 1760, 1811, 1935, 2095, 2276, 2499, 2926, 3781, 3367, 2814, 2425, 2162, 1982, 1777, 1679, 1606, 1579, 1610, 1664, 1760, 1920, 2107, 2326, 2681, 3192, 3111, 2587, 2255, 2020, 1820, 1642, 1514, 1446, 1423, 1437, 1514, 1613, 1781, 1956, 2168, 2482, 2973, 2926, 2441, 2143, 1876, 1679, 1520, 1407, 1326, 1300, 1326, 1388, 1514, 1635, 1839, 2065, 2348, 2731, 2772, 2341, 2037, 1777, 1582, 1412, 1287, 1221, 1205, 1225, 1284, 1410, 1565, 1739, 1966, 2234, 2652, 2681, 2241, 1961, 1699, 1489, 1331, 1221, 1143, 1122, 1141, 1201, 1326, 1466, 1672, 1895, 2162, 2542, 2551, 2201, 1910, 1646, 1446, 1280, 1148, 1095, 1065, 1081, 1152, 1267, 1418, 1603, 1834, 2089, 2482, 2569, 2168, 1871, 1610, 1399, 1245, 1129, 1061, 1040, 1052, 1122, 1241, 1396, 1589, 1807, 2083, 2417, 2534, 2137, 1867, 1613, 1407, 1237, 1127, 1065, 1024, 1061, 1112, 1231, 1376, 1572, 1811, 2071, 2402, 2569, 2168, 1895, 1638, 1423, 1265, 1145, 1079, 1061, 1081, 1133, 1254, 1391, 1599, 1830, 2107, 2482, 2633, 2221, 1971, 1687, 1486, 1310, 1183, 1114, 1104, 1117, 1183, 1296, 1460, 1661, 1890, 2168, 2499, 2761, 2297, 2014, 1760, 1542, 1383, 1262, 1189, 1172, 1189, 1260, 1365, 1511, 1719, 1950, 2227, 2643, 2914, 2433, 2107, 1857, 1642, 1486, 1363, 1280, 1265, 1280, 1360, 1469, 1631, 1820, 2042, 2333, 2731, 3151, 2569, 2214, 1982, 1777, 1603, 1480, 1407, 1381, 1410, 1480, 1599, 1731, 1940, 2201, 2482, 2949, 3321, 2772, 2402, 2119, 1910, 1747, 1631, 1575, 1536, 1555, 1631, 1735, 1895, 2089, 2326, 2643, 3151, 3742, 3009, 2560, 2290, 2065, 1900, 1785, 1723, 1687, 1723, 1777, 1910, 2037, 2241, 2508, 2914, 3579, 5016, 3367, 2937, 2560, 2326, 2150, 2020, 1935, 1935, 1966, 2009, 2125, 2318, 2474, 2836, 3248, 5016] + }, + "lsc_samples_blue": { + "uCoeff": [3507, 2733, 2331, 2107, 1884, 1823, 1704, 1617, 1654, 1654, 1704, 1767, 1896, 2138, 2331, 2707, 3422, 2930, 2516, 2154, 1948, 1778, 1654, 1538, 1506, 1514, 1522, 1572, 1635, 1767, 1896, 2138, 2472, 2930, 2787, 2293, 2017, 1847, 1654, 1530, 1437, 1388, 1362, 1388, 1430, 1514, 1635, 1789, 1989, 2275, 2682, 2494, 2204, 1909, 1704, 1538, 1444, 1324, 1276, 1265, 1265, 1336, 1437, 1538, 1683, 1884, 2138, 2584, 2451, 2076, 1835, 1617, 1459, 1324, 1248, 1181, 1162, 1201, 1254, 1324, 1459, 1635, 1801, 2032, 2369, 2331, 1989, 1735, 1563, 1395, 1254, 1171, 1121, 1121, 1130, 1167, 1259, 1395, 1555, 1735, 1948, 2204, 2239, 1935, 1724, 1514, 1330, 1216, 1125, 1086, 1058, 1095, 1130, 1222, 1355, 1506, 1693, 1909, 2222, 2204, 1909, 1674, 1498, 1312, 1191, 1099, 1062, 1024, 1062, 1116, 1191, 1324, 1482, 1664, 1884, 2138, 2204, 1909, 1664, 1467, 1306, 1176, 1091, 1047, 1024, 1043, 1108, 1186, 1324, 1444, 1664, 1884, 2222, 2204, 1909, 1683, 1498, 1324, 1181, 1108, 1078, 1028, 1050, 1108, 1211, 1330, 1467, 1664, 1884, 2154, 2257, 1989, 1745, 1530, 1355, 1254, 1134, 1082, 1082, 1078, 1143, 1227, 1336, 1506, 1683, 1935, 2171, 2389, 2003, 1801, 1581, 1423, 1300, 1201, 1130, 1108, 1162, 1181, 1276, 1430, 1589, 1778, 2032, 2331, 2516, 2122, 1859, 1674, 1506, 1381, 1265, 1216, 1191, 1222, 1271, 1375, 1498, 1664, 1847, 2076, 2430, 2707, 2293, 1975, 1745, 1589, 1459, 1381, 1312, 1300, 1330, 1375, 1452, 1572, 1724, 1909, 2154, 2584, 2787, 2430, 2107, 1871, 1693, 1589, 1506, 1452, 1416, 1437, 1482, 1581, 1683, 1835, 2017, 2331, 2871, 3382, 2632, 2312, 2003, 1823, 1724, 1617, 1563, 1522, 1563, 1607, 1704, 1801, 1975, 2222, 2516, 3157, 4435, 2930, 2584, 2138, 1962, 1884, 1778, 1704, 1704, 1704, 1724, 1859, 1935, 2154, 2472, 2842, 4301] + } + }, { + "name": "3264x2448_A_70", + "resolution": "3264x2448", + "illumination": "A", + "vignetting": 70, + "lsc_samples_red": { + "uCoeff": [3195, 2722, 2425, 2228, 2080, 1926, 1812, 1751, 1743, 1751, 1822, 1902, 2058, 2161, 2373, 2617, 3156, 2914, 2556, 2297, 2123, 1937, 1788, 1666, 1589, 1563, 1589, 1662, 1772, 1900, 2063, 2243, 2454, 2835, 2740, 2417, 2188, 1990, 1784, 1627, 1525, 1443, 1421, 1440, 1518, 1618, 1773, 1925, 2125, 2347, 2647, 2646, 2309, 2087, 1859, 1679, 1511, 1381, 1308, 1286, 1305, 1385, 1504, 1651, 1831, 2015, 2254, 2548, 2588, 2215, 2018, 1779, 1579, 1407, 1287, 1217, 1184, 1210, 1282, 1404, 1552, 1758, 1965, 2165, 2484, 2505, 2181, 1926, 1713, 1492, 1323, 1196, 1128, 1107, 1117, 1206, 1323, 1492, 1679, 1883, 2102, 2450, 2454, 2128, 1885, 1653, 1426, 1262, 1146, 1075, 1057, 1073, 1139, 1275, 1430, 1617, 1839, 2075, 2342, 2462, 2096, 1861, 1625, 1412, 1242, 1114, 1055, 1031, 1049, 1126, 1225, 1406, 1599, 1816, 2081, 2350, 2476, 2129, 1874, 1631, 1416, 1230, 1116, 1044, 1024, 1044, 1118, 1230, 1406, 1600, 1851, 2068, 2343, 2473, 2134, 1890, 1656, 1439, 1265, 1145, 1080, 1049, 1074, 1130, 1258, 1436, 1639, 1843, 2081, 2379, 2497, 2167, 1941, 1709, 1500, 1323, 1207, 1124, 1099, 1112, 1188, 1305, 1471, 1686, 1885, 2128, 2432, 2610, 2232, 2018, 1794, 1587, 1415, 1272, 1191, 1183, 1195, 1274, 1386, 1550, 1763, 1964, 2197, 2539, 2743, 2322, 2121, 1857, 1685, 1501, 1381, 1304, 1276, 1304, 1384, 1508, 1648, 1845, 2068, 2294, 2625, 2869, 2481, 2214, 1977, 1794, 1639, 1512, 1438, 1412, 1441, 1508, 1622, 1757, 1964, 2156, 2357, 2738, 3002, 2573, 2321, 2143, 1935, 1797, 1682, 1603, 1572, 1603, 1668, 1786, 1904, 2104, 2284, 2504, 2842, 3240, 2762, 2478, 2281, 2110, 1946, 1840, 1793, 1748, 1766, 1835, 1946, 2052, 2229, 2425, 2681, 3220, 4165, 3031, 2709, 2502, 2340, 2168, 2071, 2031, 2000, 2004, 2035, 2144, 2275, 2448, 2682, 2898, 4026] + }, + "lsc_samples_greenR": { + "uCoeff": [2892, 2497, 2204, 2068, 1890, 1803, 1708, 1643, 1620, 1629, 1704, 1760, 1865, 1979, 2119, 2376, 2803, 2654, 2353, 2107, 1932, 1781, 1670, 1591, 1526, 1512, 1520, 1575, 1656, 1751, 1869, 2031, 2247, 2505, 2519, 2216, 2000, 1843, 1685, 1563, 1470, 1406, 1377, 1390, 1450, 1541, 1641, 1768, 1906, 2117, 2421, 2394, 2097, 1910, 1738, 1591, 1452, 1364, 1301, 1267, 1290, 1340, 1427, 1562, 1687, 1852, 2027, 2269, 2293, 2039, 1843, 1657, 1501, 1376, 1264, 1197, 1178, 1195, 1246, 1349, 1466, 1611, 1782, 1957, 2220, 2266, 1974, 1779, 1594, 1422, 1277, 1186, 1126, 1098, 1116, 1184, 1280, 1406, 1558, 1733, 1898, 2143, 2221, 1973, 1757, 1550, 1376, 1246, 1139, 1079, 1054, 1071, 1118, 1223, 1364, 1510, 1681, 1882, 2154, 2181, 1963, 1724, 1531, 1361, 1223, 1119, 1050, 1024, 1046, 1108, 1211, 1336, 1500, 1678, 1868, 2073, 2210, 1959, 1733, 1529, 1356, 1211, 1108, 1052, 1027, 1037, 1103, 1213, 1337, 1501, 1682, 1874, 2082, 2271, 1968, 1744, 1566, 1383, 1249, 1137, 1075, 1054, 1075, 1119, 1225, 1363, 1525, 1708, 1922, 2122, 2308, 2006, 1799, 1613, 1436, 1282, 1178, 1115, 1100, 1115, 1174, 1286, 1407, 1580, 1760, 1958, 2187, 2390, 2065, 1878, 1658, 1517, 1369, 1256, 1202, 1166, 1182, 1256, 1349, 1472, 1640, 1818, 2007, 2251, 2499, 2154, 1936, 1750, 1604, 1468, 1362, 1297, 1265, 1297, 1345, 1454, 1574, 1718, 1876, 2062, 2371, 2564, 2263, 2061, 1851, 1708, 1574, 1471, 1406, 1392, 1422, 1476, 1561, 1677, 1828, 1983, 2181, 2436, 2758, 2456, 2142, 1998, 1841, 1709, 1602, 1551, 1534, 1554, 1589, 1694, 1804, 1940, 2092, 2302, 2607, 2993, 2582, 2336, 2106, 1956, 1844, 1752, 1695, 1671, 1699, 1744, 1826, 1930, 2070, 2233, 2488, 2900, 3886, 2799, 2504, 2272, 2108, 1978, 1900, 1866, 1832, 1876, 1935, 1999, 2108, 2236, 2434, 2697, 3789] + }, + "lsc_samples_greenB": { + "uCoeff": [3082, 2553, 2314, 2090, 1924, 1817, 1733, 1667, 1662, 1675, 1713, 1808, 1924, 2044, 2180, 2444, 2954, 2729, 2403, 2155, 1979, 1853, 1691, 1614, 1554, 1531, 1557, 1600, 1676, 1799, 1932, 2075, 2301, 2602, 2587, 2261, 2044, 1881, 1730, 1585, 1476, 1417, 1397, 1409, 1476, 1559, 1695, 1826, 1971, 2178, 2484, 2482, 2170, 1971, 1772, 1617, 1484, 1385, 1311, 1288, 1311, 1367, 1478, 1577, 1740, 1905, 2095, 2332, 2389, 2108, 1896, 1697, 1538, 1390, 1276, 1215, 1200, 1219, 1273, 1388, 1522, 1663, 1835, 2020, 2295, 2336, 2040, 1841, 1635, 1458, 1317, 1215, 1141, 1120, 1139, 1196, 1312, 1436, 1611, 1784, 1974, 2226, 2245, 2016, 1804, 1592, 1421, 1271, 1145, 1094, 1065, 1080, 1149, 1258, 1395, 1553, 1737, 1921, 2190, 2267, 1994, 1774, 1563, 1379, 1238, 1127, 1061, 1040, 1052, 1121, 1234, 1376, 1543, 1718, 1922, 2145, 2241, 1969, 1772, 1566, 1387, 1231, 1126, 1065, 1024, 1061, 1111, 1225, 1358, 1529, 1722, 1913, 2135, 2267, 1994, 1796, 1588, 1402, 1258, 1143, 1079, 1061, 1081, 1131, 1247, 1372, 1552, 1738, 1942, 2197, 2311, 2033, 1858, 1630, 1459, 1300, 1180, 1113, 1103, 1116, 1180, 1286, 1435, 1606, 1787, 1988, 2204, 2399, 2086, 1888, 1690, 1507, 1367, 1255, 1186, 1170, 1186, 1253, 1350, 1478, 1653, 1832, 2028, 2306, 2499, 2184, 1956, 1768, 1593, 1459, 1349, 1272, 1258, 1272, 1346, 1443, 1583, 1735, 1900, 2102, 2357, 2654, 2274, 2031, 1865, 1706, 1561, 1454, 1388, 1365, 1391, 1454, 1557, 1664, 1829, 2020, 2203, 2499, 2744, 2407, 2165, 1966, 1810, 1680, 1584, 1538, 1503, 1519, 1584, 1669, 1796, 1940, 2102, 2305, 2617, 3002, 2554, 2264, 2086, 1925, 1800, 1709, 1660, 1629, 1660, 1702, 1809, 1900, 2045, 2222, 2480, 2883, 3818, 2774, 2523, 2275, 2118, 1993, 1896, 1830, 1832, 1857, 1886, 1972, 2112, 2205, 2444, 2685, 3818] + }, + "lsc_samples_blue": { + "uCoeff": [2762, 2300, 2048, 1906, 1747, 1712, 1619, 1548, 1583, 1581, 1619, 1664, 1757, 1932, 2048, 2281, 2703, 2411, 2174, 1936, 1799, 1676, 1582, 1487, 1463, 1471, 1477, 1518, 1565, 1667, 1755, 1923, 2140, 2411, 2344, 2028, 1846, 1732, 1583, 1483, 1405, 1363, 1340, 1363, 1399, 1469, 1566, 1682, 1823, 2014, 2266, 2151, 1978, 1773, 1621, 1489, 1413, 1307, 1264, 1254, 1253, 1318, 1407, 1489, 1603, 1752, 1925, 2220, 2138, 1890, 1722, 1554, 1425, 1307, 1239, 1176, 1158, 1195, 1244, 1307, 1425, 1570, 1693, 1854, 2074, 2059, 1829, 1644, 1512, 1370, 1244, 1167, 1119, 1119, 1128, 1163, 1248, 1370, 1505, 1644, 1795, 1958, 1996, 1792, 1641, 1472, 1312, 1209, 1123, 1085, 1058, 1094, 1128, 1215, 1336, 1464, 1613, 1770, 1982, 1973, 1774, 1600, 1460, 1297, 1186, 1098, 1062, 1024, 1062, 1115, 1186, 1308, 1445, 1591, 1753, 1920, 1975, 1775, 1592, 1432, 1292, 1172, 1090, 1047, 1024, 1043, 1107, 1181, 1309, 1411, 1592, 1754, 1990, 1973, 1774, 1608, 1460, 1308, 1176, 1107, 1078, 1028, 1050, 1107, 1205, 1314, 1431, 1591, 1753, 1933, 2010, 1837, 1659, 1486, 1336, 1246, 1132, 1081, 1082, 1077, 1141, 1220, 1318, 1464, 1604, 1792, 1941, 2105, 1841, 1702, 1528, 1396, 1288, 1196, 1128, 1107, 1159, 1176, 1265, 1403, 1536, 1682, 1865, 2059, 2189, 1928, 1743, 1605, 1468, 1360, 1255, 1210, 1186, 1216, 1261, 1355, 1460, 1596, 1732, 1890, 2122, 2314, 2050, 1829, 1657, 1536, 1427, 1360, 1298, 1288, 1315, 1355, 1421, 1520, 1639, 1773, 1938, 2220, 2344, 2137, 1921, 1752, 1617, 1537, 1469, 1423, 1391, 1409, 1447, 1530, 1608, 1722, 1846, 2058, 2407, 2740, 2263, 2064, 1845, 1715, 1644, 1558, 1514, 1479, 1514, 1549, 1626, 1696, 1822, 1991, 2174, 2576, 3412, 2447, 2246, 1932, 1812, 1764, 1684, 1625, 1627, 1625, 1637, 1743, 1790, 1945, 2158, 2382, 3318] + } + }, { + "name": "3264x2448_CWF_100", + "resolution": "3264x2448", + "illumination": "CWF", + "vignetting": 100, + "lsc_samples_red": { + "uCoeff": [3843, 2836, 2410, 2174, 2021, 1861, 1718, 1682, 1654, 1740, 1740, 1861, 1961, 2163, 2469, 2739, 3569, 3224, 2721, 2273, 2021, 1853, 1696, 1595, 1545, 1499, 1499, 1614, 1696, 1803, 1961, 2210, 2532, 3076, 2877, 2410, 2106, 1879, 1740, 1576, 1466, 1390, 1376, 1405, 1450, 1545, 1682, 1853, 2021, 2367, 2836, 2739, 2286, 1991, 1763, 1614, 1435, 1348, 1291, 1255, 1275, 1339, 1450, 1557, 1755, 1952, 2248, 2667, 2667, 2174, 1906, 1696, 1493, 1362, 1263, 1188, 1171, 1181, 1243, 1348, 1477, 1661, 1861, 2084, 2485, 2516, 2106, 1853, 1601, 1435, 1300, 1177, 1106, 1088, 1121, 1181, 1287, 1435, 1563, 1811, 2052, 2395, 2485, 2041, 1779, 1557, 1395, 1239, 1125, 1076, 1065, 1076, 1134, 1243, 1395, 1516, 1763, 2021, 2312, 2410, 2041, 1779, 1563, 1362, 1209, 1094, 1032, 1024, 1040, 1097, 1199, 1348, 1510, 1718, 1961, 2367, 2469, 2021, 1787, 1576, 1366, 1202, 1103, 1048, 1037, 1040, 1112, 1199, 1362, 1534, 1718, 1991, 2326, 2395, 2052, 1827, 1576, 1390, 1251, 1125, 1076, 1054, 1062, 1134, 1220, 1380, 1545, 1740, 1991, 2395, 2532, 2106, 1853, 1614, 1419, 1279, 1160, 1112, 1097, 1112, 1177, 1287, 1419, 1582, 1803, 2052, 2410, 2631, 2210, 1906, 1696, 1516, 1376, 1251, 1171, 1167, 1167, 1239, 1352, 1466, 1661, 1879, 2140, 2469, 2836, 2312, 2021, 1779, 1640, 1466, 1362, 1255, 1243, 1300, 1348, 1445, 1563, 1763, 1952, 2235, 2667, 2962, 2367, 2084, 1879, 1732, 1595, 1450, 1376, 1390, 1380, 1450, 1545, 1682, 1861, 2073, 2367, 2962, 3224, 2667, 2235, 2041, 1853, 1682, 1601, 1534, 1516, 1510, 1582, 1710, 1827, 1981, 2198, 2532, 3007, 3569, 2877, 2469, 2210, 2011, 1906, 1732, 1674, 1682, 1710, 1755, 1827, 1933, 2140, 2410, 2739, 3476, 4992, 3224, 2721, 2439, 2286, 2073, 1952, 1933, 1879, 1879, 1981, 2073, 2198, 2395, 2580, 3148, 4931] + }, + "lsc_samples_greenR": { + "uCoeff": [3573, 2847, 2513, 2213, 2018, 1875, 1764, 1665, 1626, 1653, 1750, 1810, 1983, 2124, 2407, 2778, 3555, 3104, 2619, 2264, 2036, 1864, 1715, 1603, 1528, 1491, 1528, 1570, 1653, 1796, 1983, 2213, 2532, 2983, 2847, 2459, 2092, 1906, 1737, 1559, 1444, 1386, 1364, 1386, 1444, 1531, 1669, 1820, 2036, 2334, 2733, 2800, 2295, 2018, 1764, 1581, 1444, 1335, 1295, 1264, 1271, 1324, 1426, 1549, 1707, 1955, 2213, 2532, 2570, 2164, 1922, 1682, 1501, 1353, 1254, 1187, 1165, 1165, 1247, 1327, 1466, 1626, 1834, 2105, 2513, 2504, 2092, 1834, 1614, 1409, 1290, 1175, 1127, 1108, 1116, 1159, 1257, 1397, 1570, 1791, 2024, 2366, 2459, 2054, 1782, 1592, 1378, 1230, 1132, 1079, 1047, 1059, 1114, 1206, 1353, 1518, 1737, 1983, 2287, 2416, 2060, 1764, 1528, 1353, 1206, 1105, 1056, 1036, 1043, 1100, 1199, 1324, 1501, 1715, 1983, 2310, 2407, 2079, 1764, 1549, 1353, 1204, 1103, 1052, 1024, 1047, 1105, 1193, 1324, 1508, 1715, 1983, 2295, 2477, 2079, 1806, 1577, 1378, 1230, 1132, 1075, 1056, 1079, 1116, 1216, 1361, 1528, 1750, 1989, 2366, 2486, 2164, 1880, 1626, 1418, 1275, 1171, 1100, 1086, 1119, 1165, 1261, 1403, 1599, 1806, 2042, 2416, 2629, 2213, 1955, 1702, 1488, 1356, 1247, 1169, 1159, 1171, 1236, 1353, 1472, 1653, 1875, 2144, 2532, 2766, 2318, 2054, 1791, 1622, 1454, 1353, 1268, 1261, 1268, 1335, 1435, 1570, 1750, 1966, 2264, 2570, 2945, 2504, 2171, 1922, 1728, 1581, 1447, 1397, 1348, 1378, 1457, 1570, 1677, 1875, 2073, 2390, 2744, 3104, 2701, 2318, 2092, 1849, 1728, 1622, 1549, 1511, 1549, 1603, 1707, 1810, 2036, 2264, 2570, 2932, 3573, 2970, 2541, 2228, 2018, 1859, 1782, 1702, 1694, 1694, 1741, 1864, 1983, 2192, 2450, 2800, 3465, 4699, 3299, 2847, 2513, 2287, 2105, 2006, 1927, 1864, 1955, 1983, 2036, 2206, 2450, 2733, 3191, 4866] + }, + "lsc_samples_greenB": { + "uCoeff": [3658, 2936, 2478, 2207, 2012, 1874, 1763, 1660, 1636, 1697, 1758, 1854, 1994, 2178, 2383, 2826, 3437, 3167, 2725, 2335, 2048, 1884, 1714, 1610, 1537, 1507, 1534, 1594, 1689, 1844, 2030, 2243, 2562, 3040, 2923, 2469, 2158, 1949, 1745, 1562, 1458, 1393, 1365, 1374, 1449, 1551, 1685, 1844, 2098, 2359, 2838, 2792, 2288, 2012, 1791, 1621, 1443, 1349, 1283, 1267, 1279, 1341, 1425, 1555, 1723, 1977, 2228, 2611, 2611, 2280, 1949, 1710, 1523, 1365, 1253, 1188, 1165, 1188, 1251, 1336, 1474, 1664, 1874, 2138, 2552, 2533, 2165, 1874, 1617, 1434, 1283, 1188, 1118, 1116, 1116, 1161, 1267, 1413, 1583, 1791, 2018, 2400, 2443, 2098, 1829, 1555, 1390, 1239, 1148, 1077, 1070, 1065, 1121, 1209, 1368, 1534, 1736, 2012, 2335, 2409, 2054, 1791, 1555, 1349, 1196, 1101, 1057, 1030, 1040, 1105, 1200, 1341, 1513, 1702, 1960, 2303, 2409, 2054, 1772, 1565, 1341, 1200, 1105, 1048, 1024, 1044, 1105, 1188, 1331, 1494, 1723, 1977, 2288, 2478, 2073, 1814, 1576, 1376, 1230, 1118, 1056, 1040, 1062, 1116, 1219, 1360, 1534, 1723, 2048, 2383, 2524, 2124, 1869, 1617, 1422, 1253, 1150, 1094, 1081, 1086, 1159, 1257, 1393, 1565, 1786, 2054, 2400, 2641, 2185, 1905, 1685, 1487, 1341, 1232, 1165, 1133, 1154, 1215, 1336, 1477, 1621, 1859, 2124, 2478, 2662, 2288, 2018, 1772, 1606, 1416, 1331, 1246, 1237, 1253, 1298, 1407, 1572, 1736, 1977, 2228, 2621, 2936, 2443, 2138, 1874, 1689, 1534, 1431, 1352, 1323, 1352, 1422, 1534, 1664, 1859, 2105, 2351, 2704, 3167, 2641, 2280, 2000, 1814, 1697, 1565, 1497, 1462, 1487, 1565, 1664, 1805, 2018, 2228, 2552, 2974, 3508, 2874, 2496, 2165, 2000, 1859, 1723, 1652, 1636, 1652, 1697, 1805, 1994, 2118, 2409, 2769, 3403, 4921, 3167, 2736, 2533, 2199, 2048, 1960, 1900, 1829, 1854, 1977, 2030, 2138, 2383, 2693, 3000, 4750] + }, + "lsc_samples_blue": { + "uCoeff": [3130, 2548, 2211, 1953, 1739, 1609, 1627, 1551, 1512, 1528, 1609, 1672, 1700, 1916, 2118, 2465, 3036, 2783, 2313, 1966, 1801, 1609, 1535, 1454, 1387, 1406, 1413, 1468, 1528, 1627, 1791, 1928, 2261, 2733, 2592, 2164, 1892, 1681, 1528, 1433, 1350, 1309, 1275, 1275, 1350, 1413, 1551, 1653, 1823, 2046, 2406, 2349, 1992, 1759, 1601, 1426, 1338, 1244, 1199, 1190, 1214, 1254, 1309, 1433, 1584, 1759, 1953, 2313, 2244, 1892, 1681, 1535, 1393, 1259, 1171, 1162, 1132, 1149, 1176, 1254, 1387, 1482, 1635, 1869, 2133, 2133, 1834, 1627, 1482, 1332, 1190, 1136, 1099, 1075, 1079, 1132, 1209, 1309, 1433, 1601, 1801, 2089, 2074, 1801, 1609, 1447, 1275, 1171, 1099, 1045, 1024, 1064, 1087, 1162, 1270, 1374, 1535, 1770, 2074, 1992, 1759, 1575, 1406, 1270, 1145, 1068, 1035, 1024, 1031, 1068, 1149, 1239, 1387, 1551, 1729, 2005, 2032, 1770, 1551, 1393, 1254, 1149, 1064, 1042, 1031, 1024, 1056, 1132, 1244, 1393, 1551, 1739, 2074, 2089, 1801, 1575, 1406, 1254, 1149, 1068, 1042, 1031, 1031, 1068, 1149, 1259, 1387, 1535, 1791, 2032, 2089, 1834, 1584, 1433, 1292, 1209, 1111, 1064, 1053, 1068, 1107, 1176, 1275, 1406, 1601, 1770, 2089, 2261, 1869, 1653, 1454, 1332, 1239, 1149, 1111, 1079, 1087, 1158, 1224, 1309, 1454, 1627, 1857, 2180, 2313, 1966, 1729, 1559, 1406, 1303, 1224, 1190, 1158, 1171, 1209, 1309, 1393, 1528, 1700, 1916, 2244, 2406, 2089, 1834, 1627, 1505, 1393, 1303, 1254, 1254, 1244, 1303, 1368, 1505, 1609, 1770, 1992, 2406, 2592, 2261, 1953, 1770, 1584, 1490, 1393, 1368, 1332, 1356, 1393, 1433, 1584, 1700, 1916, 2164, 2548, 2890, 2425, 2133, 1869, 1681, 1601, 1512, 1468, 1454, 1454, 1490, 1584, 1681, 1834, 2032, 2406, 2890, 3952, 2708, 2368, 2005, 1892, 1729, 1653, 1584, 1627, 1575, 1601, 1759, 1823, 2005, 2180, 2592, 4004] + } + }, { + "name": "3264x2448_CWF_70", + "resolution": "3264x2448", + "illumination": "CWF", + "vignetting": 70, + "lsc_samples_red": { + "uCoeff": [2997, 2377, 2110, 1961, 1862, 1745, 1632, 1606, 1583, 1657, 1651, 1745, 1812, 1952, 2156, 2305, 2806, 2625, 2332, 2032, 1860, 1741, 1619, 1538, 1498, 1458, 1456, 1555, 1619, 1698, 1810, 1982, 2186, 2517, 2412, 2121, 1920, 1759, 1659, 1525, 1432, 1365, 1353, 1379, 1417, 1497, 1607, 1737, 1850, 2087, 2381, 2338, 2045, 1842, 1673, 1558, 1405, 1329, 1278, 1245, 1263, 1321, 1419, 1507, 1666, 1809, 2014, 2283, 2307, 1971, 1783, 1624, 1456, 1343, 1253, 1183, 1167, 1176, 1234, 1329, 1441, 1593, 1745, 1897, 2165, 2205, 1927, 1747, 1546, 1407, 1288, 1173, 1104, 1087, 1119, 1176, 1275, 1407, 1512, 1711, 1882, 2110, 2192, 1881, 1689, 1511, 1373, 1231, 1123, 1075, 1065, 1075, 1132, 1235, 1373, 1474, 1675, 1864, 2054, 2139, 1886, 1693, 1519, 1344, 1203, 1093, 1032, 1024, 1040, 1096, 1194, 1331, 1471, 1639, 1818, 2104, 2189, 1871, 1701, 1532, 1348, 1197, 1102, 1048, 1037, 1040, 1111, 1194, 1345, 1494, 1640, 1845, 2074, 2127, 1895, 1735, 1531, 1371, 1244, 1123, 1076, 1054, 1062, 1132, 1214, 1361, 1503, 1658, 1844, 2127, 2230, 1936, 1754, 1563, 1396, 1270, 1157, 1111, 1096, 1111, 1174, 1277, 1396, 1534, 1710, 1890, 2132, 2296, 2014, 1793, 1632, 1483, 1360, 1244, 1168, 1165, 1164, 1233, 1337, 1436, 1601, 1770, 1955, 2168, 2439, 2084, 1882, 1699, 1591, 1441, 1348, 1248, 1237, 1291, 1334, 1421, 1520, 1684, 1823, 2021, 2307, 2509, 2110, 1921, 1775, 1665, 1553, 1425, 1359, 1373, 1363, 1425, 1507, 1620, 1759, 1912, 2110, 2509, 2671, 2324, 2027, 1899, 1759, 1621, 1557, 1499, 1484, 1477, 1539, 1647, 1736, 1847, 1996, 2217, 2509, 2876, 2452, 2191, 2019, 1878, 1805, 1662, 1615, 1625, 1648, 1682, 1735, 1810, 1960, 2143, 2346, 2808, 3802, 2667, 2354, 2177, 2085, 1927, 1837, 1828, 1783, 1780, 1862, 1927, 2011, 2141, 2243, 2610, 3759] + }, + "lsc_samples_greenR": { + "uCoeff": [2808, 2385, 2191, 1993, 1859, 1757, 1672, 1591, 1558, 1580, 1660, 1701, 1830, 1920, 2108, 2334, 2796, 2538, 2253, 2025, 1873, 1751, 1636, 1546, 1483, 1450, 1483, 1516, 1581, 1692, 1828, 1984, 2186, 2450, 2389, 2159, 1909, 1783, 1656, 1510, 1412, 1361, 1342, 1361, 1412, 1484, 1596, 1709, 1862, 2061, 2304, 2385, 2052, 1865, 1674, 1528, 1413, 1317, 1282, 1253, 1259, 1307, 1397, 1499, 1624, 1812, 1986, 2180, 2231, 1962, 1797, 1612, 1463, 1334, 1244, 1182, 1161, 1160, 1238, 1310, 1431, 1562, 1721, 1914, 2186, 2196, 1915, 1731, 1558, 1383, 1278, 1171, 1125, 1107, 1114, 1155, 1246, 1372, 1518, 1693, 1859, 2087, 2172, 1892, 1692, 1543, 1357, 1223, 1130, 1078, 1047, 1059, 1112, 1199, 1334, 1475, 1652, 1832, 2034, 2144, 1902, 1679, 1487, 1336, 1200, 1104, 1056, 1036, 1043, 1099, 1194, 1308, 1462, 1636, 1837, 2059, 2139, 1920, 1681, 1507, 1336, 1199, 1102, 1052, 1024, 1047, 1104, 1188, 1309, 1470, 1637, 1838, 2049, 2193, 1918, 1717, 1532, 1359, 1224, 1130, 1075, 1056, 1079, 1115, 1210, 1343, 1487, 1667, 1842, 2104, 2193, 1985, 1778, 1574, 1395, 1266, 1168, 1099, 1086, 1118, 1162, 1252, 1381, 1549, 1713, 1882, 2137, 2295, 2016, 1836, 1638, 1457, 1341, 1240, 1166, 1157, 1168, 1230, 1338, 1442, 1593, 1766, 1959, 2218, 2384, 2089, 1911, 1709, 1575, 1429, 1339, 1260, 1254, 1260, 1322, 1411, 1527, 1673, 1835, 2045, 2231, 2496, 2221, 1994, 1813, 1661, 1540, 1423, 1379, 1333, 1361, 1432, 1530, 1615, 1771, 1912, 2129, 2342, 2582, 2351, 2096, 1943, 1756, 1663, 1576, 1513, 1480, 1513, 1558, 1644, 1721, 1894, 2051, 2247, 2453, 2879, 2524, 2249, 2034, 1884, 1764, 1707, 1641, 1636, 1634, 1670, 1768, 1854, 2004, 2175, 2393, 2800, 3597, 2723, 2452, 2237, 2085, 1955, 1884, 1823, 1769, 1847, 1864, 1895, 2017, 2186, 2363, 2642, 3713] + }, + "lsc_samples_greenB": { + "uCoeff": [2868, 2452, 2163, 1988, 1854, 1756, 1671, 1587, 1567, 1619, 1667, 1738, 1839, 1964, 2089, 2370, 2713, 2583, 2335, 2082, 1883, 1768, 1635, 1552, 1491, 1465, 1488, 1537, 1613, 1733, 1868, 2008, 2209, 2491, 2446, 2167, 1963, 1820, 1663, 1512, 1425, 1368, 1343, 1350, 1416, 1502, 1610, 1729, 1914, 2080, 2382, 2379, 2046, 1860, 1698, 1564, 1412, 1330, 1270, 1256, 1267, 1323, 1396, 1505, 1638, 1830, 1998, 2240, 2263, 2058, 1820, 1637, 1483, 1345, 1243, 1183, 1161, 1183, 1241, 1318, 1438, 1596, 1756, 1941, 2217, 2219, 1976, 1766, 1561, 1406, 1271, 1183, 1116, 1114, 1114, 1157, 1256, 1387, 1530, 1693, 1853, 2113, 2159, 1929, 1733, 1509, 1369, 1231, 1145, 1076, 1070, 1065, 1119, 1202, 1348, 1490, 1651, 1857, 2072, 2138, 1897, 1703, 1512, 1332, 1191, 1100, 1057, 1030, 1040, 1104, 1195, 1324, 1473, 1625, 1817, 2053, 2140, 1899, 1688, 1522, 1325, 1195, 1104, 1048, 1024, 1044, 1104, 1183, 1315, 1457, 1644, 1833, 2043, 2194, 1913, 1724, 1531, 1357, 1224, 1117, 1056, 1040, 1062, 1115, 1213, 1342, 1493, 1643, 1892, 2117, 2224, 1951, 1768, 1566, 1399, 1245, 1147, 1093, 1081, 1085, 1156, 1249, 1371, 1518, 1695, 1892, 2124, 2304, 1993, 1793, 1622, 1456, 1327, 1226, 1162, 1131, 1151, 1209, 1322, 1447, 1564, 1752, 1942, 2175, 2303, 2065, 1880, 1692, 1560, 1393, 1318, 1239, 1231, 1246, 1287, 1385, 1529, 1660, 1844, 2015, 2271, 2489, 2172, 1967, 1771, 1626, 1497, 1407, 1336, 1309, 1336, 1399, 1497, 1603, 1757, 1939, 2097, 2312, 2629, 2303, 2064, 1863, 1724, 1635, 1523, 1465, 1434, 1456, 1523, 1605, 1717, 1879, 2021, 2233, 2484, 2832, 2450, 2212, 1981, 1868, 1764, 1654, 1595, 1583, 1595, 1630, 1716, 1863, 1942, 2142, 2369, 2755, 3752, 2624, 2365, 2253, 2012, 1905, 1844, 1799, 1738, 1758, 1858, 1890, 1960, 2131, 2332, 2500, 3632] + }, + "lsc_samples_blue": { + "uCoeff": [2498, 2162, 1954, 1781, 1625, 1528, 1552, 1490, 1457, 1470, 1536, 1582, 1592, 1751, 1881, 2100, 2432, 2304, 2017, 1785, 1676, 1530, 1477, 1411, 1354, 1373, 1378, 1424, 1470, 1546, 1667, 1754, 1977, 2268, 2198, 1926, 1743, 1589, 1471, 1395, 1325, 1290, 1259, 1258, 1325, 1377, 1491, 1565, 1686, 1833, 2059, 2039, 1807, 1646, 1531, 1388, 1315, 1231, 1191, 1182, 1205, 1241, 1288, 1394, 1516, 1646, 1775, 2012, 1976, 1739, 1590, 1481, 1364, 1245, 1165, 1158, 1129, 1145, 1170, 1241, 1358, 1433, 1550, 1720, 1890, 1902, 1700, 1550, 1439, 1311, 1182, 1133, 1098, 1074, 1078, 1129, 1201, 1290, 1394, 1527, 1672, 1867, 1864, 1679, 1539, 1411, 1260, 1166, 1097, 1045, 1024, 1064, 1086, 1157, 1256, 1344, 1474, 1653, 1864, 1803, 1647, 1512, 1375, 1257, 1141, 1067, 1035, 1024, 1031, 1067, 1145, 1228, 1358, 1491, 1621, 1813, 1837, 1657, 1492, 1364, 1242, 1145, 1063, 1042, 1031, 1024, 1056, 1129, 1233, 1364, 1492, 1631, 1870, 1881, 1683, 1512, 1375, 1242, 1145, 1067, 1042, 1031, 1031, 1067, 1145, 1247, 1358, 1477, 1674, 1835, 1876, 1707, 1517, 1398, 1276, 1202, 1109, 1064, 1053, 1068, 1105, 1170, 1260, 1373, 1532, 1653, 1876, 2003, 1729, 1573, 1413, 1311, 1229, 1145, 1109, 1078, 1086, 1154, 1215, 1290, 1413, 1550, 1719, 1939, 2030, 1799, 1631, 1502, 1376, 1287, 1216, 1185, 1154, 1166, 1201, 1293, 1364, 1474, 1606, 1758, 1976, 2083, 1885, 1709, 1554, 1459, 1366, 1287, 1243, 1244, 1233, 1287, 1343, 1459, 1538, 1655, 1807, 2083, 2198, 2003, 1793, 1666, 1521, 1447, 1365, 1345, 1312, 1334, 1365, 1395, 1521, 1605, 1763, 1926, 2165, 2382, 2104, 1919, 1733, 1592, 1535, 1464, 1428, 1417, 1415, 1444, 1520, 1592, 1703, 1838, 2089, 2382, 3074, 2281, 2077, 1823, 1754, 1631, 1575, 1519, 1559, 1511, 1529, 1657, 1696, 1823, 1930, 2195, 3110] + } + }, { + "name": "3264x2448_D50_100", + "resolution": "3264x2448", + "illumination": "D50", + "vignetting": 100, + "lsc_samples_red": { + "uCoeff": [3563, 2927, 2529, 2174, 2017, 1868, 1729, 1687, 1638, 1647, 1751, 1868, 1974, 2157, 2462, 2896, 4026, 3309, 2700, 2299, 2017, 1819, 1708, 1609, 1555, 1505, 1555, 1600, 1687, 1819, 2017, 2244, 2575, 3055, 3055, 2462, 2092, 1881, 1708, 1538, 1428, 1392, 1352, 1413, 1489, 1530, 1677, 1819, 2017, 2318, 2896, 2927, 2262, 2017, 1751, 1609, 1458, 1313, 1283, 1260, 1266, 1332, 1428, 1564, 1740, 1946, 2244, 2754, 2674, 2208, 1906, 1697, 1513, 1365, 1232, 1175, 1180, 1180, 1243, 1385, 1513, 1628, 1856, 2124, 2624, 2754, 2046, 1843, 1657, 1465, 1266, 1165, 1105, 1110, 1114, 1165, 1295, 1392, 1582, 1796, 2124, 2462, 2506, 2061, 1807, 1582, 1413, 1232, 1132, 1063, 1075, 1088, 1141, 1211, 1358, 1538, 1751, 2002, 2358, 2462, 2017, 1751, 1530, 1345, 1190, 1114, 1047, 1024, 1051, 1088, 1211, 1358, 1538, 1740, 1974, 2318, 2419, 2061, 1762, 1547, 1385, 1185, 1105, 1071, 1028, 1063, 1119, 1211, 1378, 1489, 1708, 1974, 2440, 2624, 2124, 1784, 1600, 1378, 1232, 1110, 1055, 1071, 1075, 1114, 1243, 1385, 1547, 1784, 2017, 2398, 2506, 2157, 1856, 1647, 1428, 1313, 1175, 1105, 1092, 1092, 1165, 1283, 1413, 1600, 1856, 2061, 2506, 2700, 2157, 1906, 1729, 1538, 1332, 1254, 1190, 1160, 1165, 1227, 1326, 1497, 1657, 1881, 2124, 2529, 2958, 2318, 2017, 1762, 1628, 1458, 1358, 1266, 1238, 1272, 1326, 1435, 1591, 1751, 1988, 2157, 2700, 3055, 2462, 2174, 1868, 1708, 1582, 1465, 1385, 1365, 1385, 1465, 1538, 1708, 1881, 2124, 2358, 2838, 3474, 2700, 2262, 2046, 1906, 1677, 1600, 1538, 1473, 1538, 1591, 1697, 1807, 2002, 2226, 2552, 3124, 3913, 2838, 2506, 2262, 2061, 1919, 1708, 1740, 1638, 1708, 1751, 1856, 2002, 2141, 2462, 2896, 3518, 4705, 3349, 2838, 2529, 2299, 2124, 1988, 1974, 1946, 1933, 2017, 2124, 2244, 2506, 2674, 3159, 4956] + }, + "lsc_samples_greenR": { + "uCoeff": [3825, 3056, 2647, 2246, 2066, 1876, 1719, 1670, 1638, 1689, 1744, 1775, 1944, 2148, 2420, 2864, 3638, 3276, 2732, 2307, 2073, 1859, 1689, 1611, 1532, 1475, 1512, 1594, 1656, 1813, 1983, 2246, 2647, 3171, 2979, 2502, 2188, 1876, 1709, 1552, 1446, 1388, 1347, 1369, 1425, 1536, 1689, 1882, 2088, 2325, 2878, 2797, 2325, 2010, 1786, 1615, 1453, 1354, 1267, 1246, 1240, 1323, 1436, 1540, 1729, 1950, 2237, 2567, 2758, 2221, 1983, 1670, 1509, 1354, 1243, 1176, 1160, 1169, 1230, 1338, 1475, 1647, 1870, 2117, 2502, 2534, 2148, 1841, 1620, 1412, 1272, 1167, 1112, 1090, 1096, 1156, 1267, 1412, 1577, 1797, 2080, 2381, 2470, 2102, 1813, 1573, 1376, 1240, 1112, 1076, 1057, 1066, 1114, 1203, 1344, 1528, 1744, 1996, 2353, 2502, 2088, 1775, 1552, 1347, 1210, 1080, 1048, 1033, 1042, 1090, 1205, 1347, 1497, 1729, 2003, 2289, 2481, 2110, 1791, 1577, 1338, 1193, 1100, 1038, 1024, 1038, 1096, 1181, 1329, 1528, 1709, 2010, 2362, 2534, 2110, 1797, 1573, 1385, 1220, 1136, 1070, 1055, 1057, 1123, 1203, 1326, 1509, 1739, 2003, 2450, 2578, 2196, 1870, 1615, 1408, 1275, 1149, 1092, 1094, 1094, 1149, 1256, 1388, 1548, 1819, 2073, 2372, 2612, 2280, 1983, 1689, 1501, 1357, 1220, 1172, 1153, 1167, 1228, 1329, 1460, 1661, 1847, 2204, 2512, 2878, 2325, 2088, 1819, 1611, 1475, 1318, 1261, 1228, 1283, 1318, 1429, 1594, 1744, 1963, 2307, 2732, 2979, 2556, 2221, 1919, 1714, 1552, 1460, 1376, 1329, 1372, 1453, 1552, 1709, 1888, 2140, 2450, 2950, 3331, 2758, 2353, 2030, 1876, 1714, 1573, 1520, 1501, 1497, 1624, 1709, 1847, 2052, 2325, 2623, 3137, 3705, 3025, 2567, 2316, 2052, 1853, 1734, 1744, 1661, 1714, 1786, 1859, 2066, 2280, 2523, 2823, 3638, 5201, 3331, 2878, 2556, 2325, 2110, 2044, 1906, 1853, 1870, 2003, 2088, 2188, 2420, 2758, 3331, 4705] + }, + "lsc_samples_greenB": { + "uCoeff": [3656, 3056, 2536, 2328, 2076, 1886, 1784, 1717, 1703, 1679, 1784, 1801, 1973, 2257, 2442, 2825, 3845, 3405, 2772, 2365, 2128, 1868, 1743, 1655, 1548, 1524, 1548, 1624, 1713, 1823, 2062, 2301, 2685, 3120, 3025, 2569, 2167, 1948, 1727, 1606, 1483, 1402, 1376, 1409, 1468, 1544, 1698, 1892, 2175, 2442, 2893, 2825, 2328, 2098, 1779, 1628, 1497, 1351, 1287, 1273, 1265, 1333, 1433, 1619, 1768, 2020, 2337, 2637, 2721, 2283, 1993, 1693, 1536, 1367, 1265, 1199, 1173, 1185, 1247, 1348, 1472, 1651, 1910, 2191, 2602, 2547, 2215, 1898, 1655, 1450, 1316, 1175, 1112, 1100, 1116, 1171, 1268, 1412, 1589, 1828, 2113, 2494, 2494, 2136, 1784, 1589, 1383, 1221, 1131, 1080, 1057, 1078, 1131, 1226, 1380, 1540, 1774, 2091, 2384, 2463, 2151, 1795, 1564, 1348, 1197, 1106, 1047, 1033, 1057, 1120, 1199, 1339, 1528, 1738, 1980, 2384, 2473, 2076, 1784, 1548, 1348, 1209, 1110, 1047, 1024, 1038, 1110, 1194, 1304, 1509, 1743, 2013, 2328, 2547, 2113, 1834, 1581, 1383, 1221, 1127, 1076, 1053, 1072, 1120, 1204, 1348, 1540, 1774, 2027, 2365, 2525, 2159, 1851, 1624, 1450, 1249, 1162, 1096, 1090, 1100, 1175, 1255, 1412, 1581, 1801, 2136, 2433, 2649, 2249, 1910, 1722, 1486, 1348, 1216, 1164, 1164, 1159, 1226, 1324, 1450, 1642, 1868, 2207, 2515, 2893, 2365, 2084, 1779, 1602, 1443, 1336, 1242, 1221, 1252, 1321, 1402, 1577, 1753, 1987, 2301, 2602, 2965, 2494, 2199, 1910, 1688, 1577, 1433, 1367, 1318, 1339, 1426, 1516, 1679, 1851, 2113, 2423, 2907, 3348, 2746, 2365, 2048, 1834, 1693, 1577, 1528, 1490, 1520, 1564, 1679, 1806, 2055, 2301, 2625, 3072, 3656, 2965, 2547, 2257, 2027, 1851, 1722, 1717, 1655, 1669, 1743, 1828, 1993, 2207, 2494, 2851, 3526, 4845, 3293, 2965, 2463, 2257, 2013, 1980, 1857, 1898, 1880, 1973, 2020, 2199, 2483, 2772, 3222, 5008] + }, + "lsc_samples_blue": { + "uCoeff": [3493, 2791, 2385, 2082, 1979, 1766, 1684, 1594, 1623, 1645, 1684, 1792, 1886, 2070, 2354, 2791, 3493, 2975, 2518, 2196, 1990, 1757, 1638, 1573, 1508, 1489, 1501, 1553, 1660, 1749, 1896, 2119, 2417, 2769, 2769, 2339, 2058, 1792, 1630, 1560, 1430, 1350, 1360, 1355, 1402, 1508, 1638, 1792, 2024, 2279, 2609, 2609, 2196, 1906, 1684, 1501, 1430, 1310, 1243, 1238, 1256, 1310, 1419, 1533, 1676, 1886, 2119, 2466, 2466, 2119, 1876, 1601, 1495, 1335, 1205, 1174, 1137, 1137, 1226, 1310, 1430, 1623, 1829, 2058, 2433, 2354, 2012, 1766, 1560, 1386, 1247, 1148, 1089, 1092, 1112, 1163, 1243, 1386, 1527, 1716, 2001, 2279, 2265, 1990, 1716, 1520, 1365, 1193, 1096, 1063, 1039, 1060, 1126, 1193, 1360, 1508, 1699, 1906, 2119, 2209, 1926, 1676, 1471, 1350, 1166, 1086, 1039, 1042, 1045, 1076, 1155, 1306, 1495, 1699, 1906, 2082, 2237, 1979, 1684, 1471, 1306, 1201, 1051, 1042, 1024, 1036, 1086, 1166, 1335, 1441, 1699, 1906, 2309, 2170, 1979, 1766, 1465, 1360, 1193, 1076, 1042, 1024, 1042, 1076, 1205, 1335, 1477, 1699, 1906, 2251, 2323, 1979, 1740, 1540, 1381, 1238, 1126, 1070, 1051, 1073, 1112, 1226, 1355, 1495, 1724, 1990, 2209, 2385, 2012, 1838, 1608, 1430, 1301, 1182, 1148, 1102, 1123, 1213, 1283, 1413, 1560, 1749, 2001, 2385, 2501, 2196, 1958, 1676, 1527, 1391, 1310, 1201, 1193, 1201, 1292, 1365, 1465, 1676, 1838, 2106, 2401, 2667, 2309, 2001, 1766, 1594, 1489, 1386, 1310, 1310, 1325, 1381, 1477, 1587, 1792, 1947, 2251, 2687, 2927, 2483, 2170, 1937, 1749, 1594, 1508, 1465, 1402, 1447, 1471, 1630, 1749, 1857, 2144, 2401, 2707, 3427, 2647, 2339, 2024, 1876, 1757, 1660, 1601, 1623, 1560, 1623, 1707, 1801, 2024, 2196, 2647, 3272, 4610, 2903, 2518, 2183, 2106, 1896, 1792, 1716, 1676, 1660, 1810, 1886, 1979, 2183, 2483, 2903, 4440] + } + }, { + "name": "3264x2448_D50_70", + "resolution": "3264x2448", + "illumination": "D50", + "vignetting": 70, + "lsc_samples_red": { + "uCoeff": [2801, 2445, 2203, 1961, 1859, 1751, 1641, 1610, 1569, 1575, 1661, 1751, 1822, 1947, 2151, 2422, 3125, 2687, 2316, 2053, 1857, 1712, 1630, 1551, 1507, 1463, 1507, 1543, 1611, 1712, 1857, 2009, 2219, 2502, 2545, 2162, 1909, 1761, 1631, 1491, 1397, 1367, 1331, 1387, 1453, 1483, 1603, 1708, 1846, 2048, 2426, 2482, 2025, 1864, 1663, 1554, 1426, 1296, 1270, 1249, 1254, 1314, 1398, 1513, 1653, 1804, 2011, 2350, 2312, 1999, 1783, 1625, 1474, 1345, 1223, 1170, 1175, 1175, 1234, 1364, 1474, 1564, 1740, 1930, 2273, 2394, 1877, 1738, 1597, 1435, 1255, 1161, 1103, 1109, 1112, 1161, 1283, 1367, 1529, 1697, 1942, 2163, 2209, 1898, 1714, 1534, 1390, 1224, 1130, 1063, 1075, 1087, 1139, 1204, 1339, 1494, 1664, 1848, 2091, 2181, 1866, 1668, 1489, 1328, 1185, 1113, 1047, 1024, 1051, 1087, 1205, 1340, 1496, 1658, 1829, 2065, 2149, 1905, 1679, 1506, 1366, 1180, 1104, 1071, 1028, 1063, 1118, 1206, 1360, 1452, 1631, 1831, 2165, 2311, 1956, 1697, 1553, 1359, 1226, 1109, 1055, 1071, 1075, 1113, 1236, 1366, 1505, 1697, 1866, 2129, 2209, 1979, 1757, 1593, 1404, 1303, 1172, 1104, 1092, 1091, 1162, 1274, 1390, 1550, 1757, 1898, 2209, 2351, 1969, 1793, 1662, 1504, 1318, 1247, 1187, 1158, 1162, 1221, 1312, 1465, 1597, 1772, 1942, 2216, 2534, 2089, 1879, 1683, 1580, 1433, 1344, 1258, 1232, 1264, 1313, 1411, 1546, 1674, 1854, 1957, 2332, 2581, 2187, 1997, 1765, 1643, 1541, 1440, 1368, 1350, 1368, 1440, 1500, 1643, 1777, 1955, 2103, 2414, 2859, 2350, 2049, 1903, 1806, 1617, 1556, 1503, 1444, 1503, 1547, 1635, 1718, 1865, 2020, 2233, 2597, 3126, 2422, 2220, 2062, 1921, 1817, 1640, 1675, 1585, 1646, 1679, 1761, 1870, 1961, 2185, 2467, 2839, 3601, 2760, 2445, 2250, 2096, 1971, 1868, 1864, 1842, 1828, 1893, 1971, 2049, 2231, 2317, 2618, 3776] + }, + "lsc_samples_greenR": { + "uCoeff": [2985, 2541, 2296, 2019, 1900, 1757, 1633, 1595, 1569, 1612, 1654, 1670, 1797, 1940, 2118, 2398, 2854, 2663, 2340, 2060, 1904, 1746, 1613, 1553, 1486, 1436, 1468, 1537, 1584, 1707, 1828, 2011, 2275, 2586, 2488, 2193, 1988, 1757, 1631, 1503, 1414, 1363, 1326, 1346, 1394, 1489, 1614, 1762, 1905, 2053, 2412, 2383, 2076, 1858, 1693, 1559, 1422, 1335, 1255, 1236, 1230, 1306, 1406, 1491, 1643, 1807, 2005, 2207, 2378, 2009, 1850, 1601, 1471, 1335, 1234, 1171, 1156, 1164, 1221, 1320, 1439, 1581, 1752, 1924, 2178, 2220, 1962, 1737, 1564, 1386, 1261, 1163, 1110, 1089, 1095, 1152, 1256, 1386, 1525, 1698, 1905, 2098, 2180, 1932, 1719, 1526, 1355, 1232, 1110, 1075, 1057, 1066, 1112, 1197, 1325, 1485, 1658, 1843, 2087, 2213, 1926, 1689, 1509, 1330, 1204, 1079, 1048, 1033, 1042, 1089, 1199, 1330, 1459, 1648, 1854, 2042, 2199, 1946, 1705, 1533, 1322, 1188, 1099, 1038, 1024, 1038, 1095, 1176, 1313, 1488, 1632, 1861, 2103, 2239, 1944, 1709, 1529, 1366, 1214, 1134, 1070, 1055, 1057, 1122, 1197, 1310, 1470, 1657, 1854, 2171, 2267, 2012, 1769, 1564, 1386, 1266, 1146, 1091, 1093, 1093, 1146, 1248, 1367, 1503, 1724, 1908, 2102, 2281, 2072, 1861, 1626, 1469, 1342, 1214, 1169, 1151, 1164, 1222, 1315, 1431, 1601, 1742, 2009, 2202, 2471, 2095, 1940, 1734, 1564, 1449, 1306, 1253, 1222, 1275, 1306, 1406, 1549, 1667, 1832, 2080, 2357, 2522, 2263, 2037, 1810, 1649, 1513, 1435, 1359, 1315, 1355, 1428, 1513, 1644, 1783, 1968, 2177, 2500, 2752, 2396, 2125, 1889, 1779, 1650, 1531, 1486, 1470, 1465, 1578, 1646, 1754, 1908, 2102, 2289, 2606, 2975, 2566, 2270, 2108, 1913, 1758, 1664, 1679, 1606, 1652, 1710, 1764, 1925, 2078, 2234, 2410, 2926, 3948, 2747, 2477, 2272, 2117, 1959, 1917, 1804, 1760, 1772, 1881, 1940, 2002, 2161, 2383, 2747, 3601] + }, + "lsc_samples_greenB": { + "uCoeff": [2866, 2541, 2209, 2086, 1908, 1766, 1689, 1637, 1627, 1603, 1689, 1693, 1822, 2028, 2135, 2369, 2999, 2757, 2371, 2107, 1950, 1754, 1661, 1592, 1501, 1480, 1501, 1564, 1634, 1715, 1895, 2055, 2304, 2549, 2522, 2246, 1971, 1819, 1647, 1552, 1448, 1376, 1353, 1383, 1434, 1496, 1622, 1771, 1977, 2146, 2424, 2404, 2079, 1933, 1687, 1571, 1462, 1332, 1274, 1262, 1253, 1315, 1403, 1563, 1677, 1867, 2086, 2260, 2349, 2060, 1858, 1622, 1495, 1347, 1255, 1193, 1169, 1180, 1238, 1329, 1436, 1584, 1787, 1985, 2256, 2230, 2018, 1786, 1595, 1421, 1303, 1171, 1110, 1099, 1114, 1167, 1257, 1386, 1536, 1725, 1933, 2188, 2200, 1961, 1693, 1540, 1362, 1214, 1129, 1079, 1057, 1077, 1129, 1219, 1359, 1496, 1685, 1923, 2112, 2182, 1979, 1707, 1520, 1331, 1192, 1105, 1047, 1033, 1057, 1119, 1194, 1322, 1487, 1656, 1834, 2118, 2192, 1917, 1698, 1506, 1331, 1204, 1109, 1047, 1024, 1038, 1109, 1189, 1290, 1471, 1662, 1864, 2075, 2249, 1947, 1741, 1536, 1364, 1215, 1125, 1076, 1053, 1072, 1119, 1198, 1331, 1498, 1688, 1874, 2103, 2224, 1980, 1752, 1572, 1425, 1241, 1159, 1095, 1090, 1099, 1172, 1247, 1389, 1533, 1708, 1961, 2151, 2311, 2046, 1797, 1656, 1455, 1333, 1210, 1161, 1162, 1156, 1220, 1310, 1421, 1583, 1760, 2011, 2205, 2483, 2128, 1936, 1699, 1556, 1419, 1323, 1235, 1215, 1245, 1309, 1380, 1533, 1675, 1853, 2075, 2256, 2512, 2213, 2018, 1802, 1625, 1536, 1409, 1350, 1305, 1324, 1403, 1480, 1617, 1750, 1945, 2155, 2467, 2764, 2387, 2135, 1905, 1742, 1631, 1534, 1494, 1460, 1486, 1522, 1619, 1717, 1911, 2082, 2291, 2558, 2939, 2520, 2254, 2058, 1892, 1757, 1653, 1655, 1600, 1611, 1672, 1736, 1862, 2016, 2211, 2432, 2845, 3699, 2718, 2545, 2196, 2060, 1875, 1861, 1761, 1800, 1781, 1855, 1881, 2012, 2213, 2394, 2665, 3813] + }, + "lsc_samples_blue": { + "uCoeff": [2752, 2343, 2090, 1886, 1827, 1663, 1602, 1528, 1556, 1573, 1602, 1685, 1748, 1876, 2066, 2343, 2752, 2444, 2175, 1970, 1834, 1658, 1568, 1519, 1464, 1449, 1458, 1501, 1587, 1651, 1755, 1908, 2097, 2294, 2331, 2064, 1880, 1685, 1561, 1511, 1399, 1328, 1338, 1333, 1373, 1463, 1568, 1685, 1852, 2017, 2211, 2239, 1972, 1770, 1604, 1456, 1400, 1293, 1232, 1228, 1245, 1293, 1390, 1485, 1597, 1753, 1910, 2129, 2150, 1925, 1757, 1540, 1458, 1317, 1197, 1169, 1134, 1133, 1218, 1294, 1398, 1559, 1717, 1875, 2124, 2077, 1848, 1671, 1509, 1362, 1237, 1144, 1088, 1091, 1110, 1159, 1233, 1362, 1479, 1628, 1839, 2018, 2016, 1838, 1633, 1477, 1345, 1187, 1095, 1063, 1039, 1060, 1124, 1187, 1340, 1466, 1618, 1767, 1900, 1977, 1788, 1602, 1435, 1333, 1162, 1085, 1039, 1042, 1045, 1075, 1151, 1291, 1457, 1622, 1772, 1875, 2002, 1835, 1610, 1436, 1292, 1196, 1051, 1042, 1024, 1036, 1085, 1162, 1319, 1408, 1623, 1773, 2060, 1946, 1833, 1681, 1429, 1342, 1188, 1075, 1042, 1024, 1042, 1075, 1199, 1318, 1440, 1622, 1772, 2011, 2063, 1829, 1655, 1496, 1360, 1230, 1124, 1070, 1051, 1072, 1110, 1219, 1336, 1454, 1641, 1838, 1972, 2102, 1848, 1734, 1553, 1403, 1288, 1177, 1146, 1101, 1121, 1207, 1271, 1387, 1509, 1656, 1839, 2102, 2177, 1989, 1828, 1607, 1487, 1370, 1298, 1195, 1188, 1195, 1281, 1345, 1430, 1607, 1725, 1915, 2099, 2283, 2063, 1851, 1676, 1540, 1455, 1365, 1296, 1297, 1310, 1360, 1444, 1534, 1699, 1805, 2016, 2299, 2449, 2178, 1973, 1809, 1667, 1541, 1471, 1435, 1378, 1418, 1437, 1574, 1667, 1740, 1952, 2114, 2284, 2773, 2275, 2086, 1863, 1761, 1673, 1597, 1549, 1571, 1512, 1564, 1629, 1696, 1863, 1970, 2275, 2660, 3534, 2427, 2195, 1968, 1933, 1775, 1696, 1636, 1603, 1587, 1712, 1766, 1827, 1968, 2167, 2427, 3415] + } + }, { + "name": "3264x2448_D65_100", + "resolution": "3264x2448", + "illumination": "D65", + "vignetting": 100, + "lsc_samples_red": { + "uCoeff": [3961, 3057, 2569, 2328, 2059, 1924, 1785, 1700, 1674, 1700, 1785, 1868, 2059, 2231, 2471, 2919, 3775, 3210, 2745, 2328, 2100, 1868, 1728, 1623, 1560, 1545, 1560, 1623, 1700, 1868, 2046, 2246, 2611, 3210, 3087, 2529, 2200, 1936, 1737, 1607, 1454, 1410, 1368, 1404, 1488, 1568, 1728, 1924, 2156, 2415, 3057, 2867, 2345, 2086, 1815, 1623, 1468, 1328, 1276, 1251, 1291, 1351, 1448, 1607, 1815, 2021, 2294, 2745, 2654, 2200, 1959, 1718, 1516, 1351, 1246, 1182, 1173, 1173, 1251, 1351, 1495, 1691, 1924, 2231, 2611, 2654, 2200, 1868, 1615, 1422, 1266, 1186, 1116, 1079, 1116, 1173, 1281, 1441, 1623, 1826, 2100, 2509, 2590, 2100, 1847, 1583, 1391, 1232, 1120, 1061, 1051, 1072, 1136, 1232, 1422, 1560, 1815, 2059, 2452, 2509, 2059, 1826, 1591, 1368, 1191, 1105, 1058, 1027, 1047, 1120, 1218, 1374, 1538, 1766, 2046, 2397, 2529, 2086, 1815, 1568, 1368, 1218, 1097, 1037, 1024, 1037, 1094, 1213, 1374, 1545, 1785, 2059, 2415, 2590, 2100, 1826, 1591, 1391, 1232, 1132, 1068, 1037, 1058, 1109, 1200, 1404, 1583, 1815, 2046, 2452, 2590, 2142, 1868, 1648, 1441, 1281, 1173, 1105, 1083, 1094, 1173, 1291, 1441, 1607, 1847, 2127, 2471, 2792, 2246, 1924, 1700, 1523, 1362, 1236, 1156, 1148, 1191, 1236, 1351, 1509, 1674, 1959, 2185, 2611, 2817, 2345, 2046, 1826, 1615, 1441, 1334, 1266, 1251, 1276, 1345, 1448, 1607, 1785, 2059, 2294, 2745, 2973, 2509, 2200, 1936, 1737, 1607, 1448, 1404, 1374, 1391, 1488, 1583, 1728, 1901, 2142, 2415, 2919, 3275, 2721, 2345, 2086, 1868, 1737, 1640, 1560, 1523, 1523, 1607, 1718, 1857, 2086, 2294, 2590, 3147, 3775, 2973, 2529, 2246, 2021, 1924, 1756, 1700, 1718, 1718, 1785, 1924, 1983, 2231, 2471, 2867, 3606, 5087, 3378, 2892, 2529, 2362, 2142, 2059, 1971, 1901, 1983, 2008, 2156, 2278, 2471, 2745, 3210, 5087] + }, + "lsc_samples_greenR": { + "uCoeff": [3795, 2895, 2488, 2210, 2042, 1887, 1754, 1684, 1671, 1663, 1763, 1820, 2023, 2139, 2443, 2787, 3499, 3214, 2666, 2316, 2061, 1856, 1701, 1599, 1544, 1510, 1513, 1573, 1675, 1801, 2011, 2217, 2545, 3012, 2871, 2470, 2126, 1908, 1714, 1573, 1457, 1399, 1363, 1374, 1448, 1527, 1684, 1851, 2073, 2365, 2776, 2753, 2308, 2023, 1806, 1607, 1448, 1352, 1287, 1253, 1277, 1352, 1442, 1555, 1740, 1947, 2254, 2604, 2676, 2232, 1947, 1705, 1513, 1365, 1253, 1176, 1170, 1176, 1239, 1346, 1470, 1650, 1866, 2126, 2545, 2545, 2146, 1866, 1630, 1420, 1280, 1170, 1114, 1094, 1105, 1168, 1270, 1408, 1584, 1791, 2099, 2399, 2470, 2106, 1820, 1573, 1371, 1233, 1131, 1068, 1055, 1066, 1114, 1224, 1363, 1527, 1754, 1999, 2357, 2416, 2061, 1791, 1562, 1360, 1204, 1101, 1056, 1024, 1043, 1099, 1195, 1328, 1523, 1731, 2011, 2374, 2507, 2073, 1806, 1559, 1374, 1217, 1105, 1051, 1027, 1038, 1112, 1197, 1328, 1503, 1745, 2017, 2308, 2507, 2119, 1835, 1584, 1388, 1226, 1135, 1078, 1045, 1071, 1114, 1217, 1360, 1548, 1763, 2054, 2365, 2574, 2188, 1871, 1634, 1442, 1277, 1164, 1107, 1087, 1099, 1168, 1277, 1417, 1581, 1801, 2080, 2416, 2666, 2217, 1964, 1696, 1513, 1354, 1242, 1176, 1150, 1181, 1233, 1338, 1483, 1671, 1887, 2167, 2479, 2787, 2341, 2054, 1806, 1607, 1451, 1328, 1265, 1242, 1263, 1335, 1457, 1581, 1763, 1976, 2262, 2676, 2972, 2479, 2188, 1903, 1731, 1581, 1470, 1397, 1365, 1391, 1451, 1570, 1688, 1871, 2106, 2399, 2787, 3214, 2698, 2332, 2080, 1866, 1718, 1599, 1523, 1499, 1527, 1596, 1696, 1840, 2042, 2285, 2584, 3026, 3611, 2972, 2564, 2239, 2042, 1887, 1772, 1705, 1684, 1705, 1758, 1887, 2036, 2217, 2507, 2846, 3445, 4903, 3325, 2846, 2516, 2239, 2106, 1947, 1925, 1840, 1919, 1964, 2042, 2269, 2425, 2709, 3124, 4698] + }, + "lsc_samples_greenB": { + "uCoeff": [3674, 2933, 2477, 2244, 2014, 1863, 1755, 1719, 1693, 1693, 1750, 1857, 2032, 2207, 2477, 2845, 3483, 3199, 2685, 2306, 2083, 1868, 1723, 1627, 1562, 1548, 1548, 1592, 1693, 1832, 2032, 2229, 2572, 2999, 2858, 2477, 2129, 1933, 1750, 1585, 1476, 1411, 1384, 1396, 1460, 1562, 1676, 1868, 2090, 2414, 2833, 2810, 2306, 2032, 1798, 1627, 1483, 1345, 1286, 1264, 1288, 1348, 1444, 1566, 1755, 1973, 2259, 2685, 2633, 2207, 1933, 1710, 1527, 1373, 1274, 1175, 1177, 1175, 1243, 1340, 1476, 1676, 1868, 2150, 2504, 2533, 2136, 1857, 1627, 1432, 1271, 1179, 1120, 1100, 1118, 1169, 1274, 1402, 1585, 1812, 2070, 2458, 2414, 2090, 1802, 1573, 1367, 1236, 1130, 1073, 1045, 1066, 1120, 1231, 1367, 1551, 1750, 2014, 2346, 2414, 2064, 1783, 1541, 1359, 1211, 1107, 1045, 1024, 1046, 1094, 1198, 1332, 1509, 1723, 1984, 2330, 2414, 2045, 1764, 1527, 1348, 1211, 1102, 1051, 1024, 1045, 1094, 1196, 1332, 1506, 1723, 1990, 2306, 2405, 2064, 1812, 1555, 1365, 1225, 1120, 1060, 1040, 1056, 1113, 1218, 1348, 1520, 1737, 2014, 2330, 2495, 2109, 1857, 1611, 1423, 1266, 1159, 1089, 1084, 1094, 1151, 1257, 1393, 1577, 1798, 2064, 2346, 2633, 2164, 1938, 1693, 1473, 1324, 1225, 1151, 1133, 1153, 1207, 1324, 1466, 1655, 1842, 2116, 2504, 2707, 2298, 2014, 1769, 1600, 1411, 1324, 1248, 1227, 1255, 1311, 1420, 1555, 1732, 1938, 2222, 2685, 2933, 2458, 2116, 1894, 1710, 1541, 1432, 1367, 1337, 1359, 1426, 1520, 1680, 1857, 2083, 2388, 2775, 3067, 2653, 2274, 2026, 1832, 1680, 1577, 1527, 1483, 1506, 1577, 1680, 1812, 2002, 2244, 2552, 3053, 3576, 2895, 2477, 2222, 2026, 1832, 1723, 1668, 1655, 1676, 1723, 1847, 1984, 2157, 2432, 2810, 3412, 4845, 3215, 2775, 2414, 2185, 2045, 1911, 1900, 1847, 1878, 1916, 2070, 2185, 2405, 2696, 3096, 4580] + }, + "lsc_samples_blue": { + "uCoeff": [3195, 2638, 2235, 2000, 1856, 1738, 1653, 1576, 1559, 1576, 1617, 1698, 1810, 1921, 2246, 2531, 3291, 2843, 2474, 2106, 1864, 1725, 1593, 1511, 1456, 1427, 1456, 1495, 1576, 1685, 1818, 2028, 2355, 2754, 2576, 2235, 1947, 1788, 1593, 1475, 1400, 1340, 1316, 1332, 1382, 1456, 1576, 1718, 1896, 2158, 2591, 2474, 2076, 1833, 1653, 1506, 1369, 1289, 1231, 1221, 1241, 1270, 1365, 1495, 1623, 1795, 2056, 2406, 2317, 2000, 1766, 1565, 1418, 1293, 1207, 1150, 1135, 1150, 1188, 1278, 1400, 1559, 1725, 1964, 2235, 2212, 1947, 1705, 1511, 1369, 1221, 1147, 1090, 1082, 1098, 1138, 1241, 1332, 1470, 1653, 1896, 2168, 2168, 1872, 1660, 1446, 1300, 1178, 1093, 1059, 1041, 1051, 1101, 1188, 1312, 1432, 1623, 1818, 2126, 2158, 1872, 1635, 1432, 1304, 1159, 1085, 1041, 1024, 1056, 1074, 1150, 1263, 1427, 1593, 1833, 2126, 2106, 1864, 1641, 1418, 1281, 1144, 1077, 1043, 1039, 1041, 1074, 1150, 1289, 1418, 1599, 1810, 2066, 2190, 1864, 1623, 1475, 1304, 1178, 1085, 1039, 1034, 1041, 1090, 1166, 1281, 1441, 1617, 1841, 2096, 2190, 1921, 1698, 1506, 1332, 1201, 1112, 1085, 1051, 1074, 1118, 1197, 1328, 1470, 1641, 1864, 2158, 2269, 1973, 1738, 1548, 1396, 1252, 1169, 1121, 1101, 1121, 1178, 1263, 1365, 1537, 1705, 1947, 2269, 2433, 2037, 1788, 1617, 1461, 1340, 1241, 1178, 1169, 1175, 1252, 1340, 1456, 1582, 1795, 2028, 2367, 2531, 2190, 1938, 1718, 1576, 1441, 1340, 1278, 1252, 1281, 1352, 1409, 1543, 1698, 1872, 2106, 2474, 2862, 2393, 2037, 1818, 1653, 1543, 1446, 1387, 1374, 1369, 1470, 1543, 1672, 1818, 2009, 2246, 2686, 3195, 2591, 2201, 1921, 1788, 1679, 1559, 1506, 1506, 1543, 1565, 1660, 1759, 1913, 2137, 2488, 2999, 4089, 2807, 2446, 2168, 1938, 1833, 1705, 1653, 1635, 1641, 1685, 1810, 1921, 2076, 2317, 2737, 4331] + } + }, { + "name": "3264x2448_D65_70", + "resolution": "3264x2448", + "illumination": "D65", + "vignetting": 70, + "lsc_samples_red": { + "uCoeff": [3080, 2542, 2234, 2086, 1894, 1799, 1690, 1622, 1601, 1622, 1690, 1751, 1894, 2007, 2158, 2439, 2950, 2615, 2350, 2077, 1927, 1754, 1648, 1564, 1512, 1500, 1512, 1564, 1623, 1754, 1881, 2011, 2247, 2615, 2569, 2215, 1998, 1808, 1656, 1553, 1421, 1384, 1346, 1378, 1452, 1518, 1648, 1798, 1962, 2125, 2546, 2436, 2092, 1923, 1719, 1566, 1435, 1310, 1264, 1241, 1278, 1332, 1417, 1552, 1719, 1868, 2051, 2343, 2296, 1992, 1829, 1644, 1477, 1332, 1237, 1177, 1169, 1168, 1241, 1332, 1458, 1620, 1799, 2018, 2263, 2315, 2005, 1760, 1559, 1395, 1255, 1181, 1114, 1078, 1114, 1169, 1269, 1413, 1566, 1724, 1922, 2200, 2276, 1931, 1749, 1535, 1370, 1224, 1118, 1061, 1051, 1071, 1134, 1224, 1399, 1514, 1721, 1896, 2166, 2219, 1901, 1734, 1545, 1350, 1186, 1104, 1058, 1027, 1047, 1119, 1212, 1355, 1496, 1681, 1890, 2129, 2237, 1926, 1726, 1525, 1350, 1212, 1096, 1037, 1024, 1037, 1093, 1207, 1356, 1504, 1699, 1903, 2145, 2284, 1936, 1734, 1545, 1372, 1226, 1130, 1068, 1037, 1058, 1108, 1195, 1384, 1538, 1725, 1890, 2173, 2276, 1966, 1767, 1594, 1417, 1272, 1170, 1104, 1083, 1093, 1170, 1281, 1417, 1557, 1749, 1953, 2181, 2424, 2044, 1809, 1636, 1490, 1347, 1230, 1153, 1146, 1188, 1230, 1336, 1476, 1612, 1840, 1993, 2281, 2424, 2111, 1904, 1741, 1568, 1417, 1321, 1258, 1244, 1268, 1332, 1424, 1561, 1704, 1915, 2069, 2368, 2518, 2225, 2019, 1825, 1669, 1564, 1424, 1386, 1358, 1373, 1461, 1542, 1661, 1794, 1970, 2149, 2476, 2710, 2367, 2118, 1937, 1772, 1671, 1593, 1524, 1491, 1489, 1562, 1654, 1763, 1937, 2076, 2263, 2614, 3026, 2526, 2239, 2049, 1886, 1821, 1683, 1639, 1658, 1655, 1709, 1821, 1854, 2036, 2192, 2444, 2903, 3868, 2782, 2488, 2250, 2149, 1986, 1930, 1862, 1802, 1872, 1886, 1998, 2078, 2203, 2372, 2656, 3868] + }, + "lsc_samples_greenR": { + "uCoeff": [2964, 2421, 2171, 1990, 1880, 1767, 1663, 1608, 1598, 1589, 1671, 1709, 1864, 1932, 2136, 2340, 2757, 2618, 2289, 2067, 1894, 1744, 1624, 1542, 1497, 1468, 1469, 1519, 1601, 1696, 1852, 1987, 2196, 2471, 2407, 2168, 1937, 1784, 1636, 1522, 1424, 1374, 1341, 1350, 1415, 1481, 1609, 1735, 1893, 2085, 2336, 2349, 2062, 1869, 1711, 1552, 1417, 1333, 1274, 1243, 1265, 1333, 1411, 1505, 1653, 1805, 2019, 2235, 2314, 2018, 1819, 1632, 1474, 1345, 1243, 1171, 1166, 1171, 1230, 1327, 1435, 1583, 1749, 1931, 2211, 2228, 1960, 1759, 1573, 1393, 1268, 1166, 1112, 1093, 1103, 1164, 1259, 1382, 1531, 1693, 1921, 2113, 2180, 1936, 1725, 1526, 1351, 1225, 1129, 1068, 1055, 1066, 1112, 1217, 1343, 1484, 1667, 1846, 2090, 2144, 1903, 1703, 1518, 1342, 1198, 1100, 1056, 1024, 1043, 1098, 1190, 1312, 1483, 1650, 1860, 2110, 2219, 1915, 1718, 1517, 1356, 1211, 1104, 1051, 1027, 1038, 1111, 1192, 1312, 1465, 1664, 1867, 2059, 2217, 1952, 1742, 1539, 1369, 1220, 1133, 1078, 1045, 1071, 1113, 1211, 1342, 1506, 1679, 1897, 2103, 2264, 2005, 1770, 1581, 1418, 1268, 1161, 1106, 1087, 1098, 1165, 1268, 1394, 1533, 1708, 1914, 2137, 2324, 2020, 1844, 1632, 1480, 1339, 1236, 1173, 1148, 1178, 1227, 1324, 1452, 1610, 1777, 1978, 2176, 2400, 2108, 1911, 1723, 1561, 1426, 1315, 1257, 1236, 1255, 1322, 1432, 1537, 1684, 1843, 2043, 2314, 2517, 2201, 2009, 1796, 1664, 1540, 1444, 1379, 1350, 1373, 1426, 1530, 1625, 1768, 1939, 2136, 2375, 2664, 2349, 2107, 1932, 1771, 1654, 1555, 1489, 1468, 1493, 1552, 1634, 1748, 1900, 2068, 2258, 2523, 2906, 2525, 2267, 2043, 1905, 1788, 1698, 1644, 1627, 1644, 1685, 1788, 1899, 2025, 2221, 2428, 2786, 3739, 2742, 2452, 2239, 2045, 1955, 1832, 1821, 1748, 1816, 1847, 1900, 2070, 2165, 2344, 2592, 3596] + }, + "lsc_samples_greenB": { + "uCoeff": [2879, 2449, 2162, 2018, 1856, 1746, 1664, 1639, 1618, 1616, 1660, 1741, 1871, 1988, 2162, 2384, 2745, 2607, 2304, 2059, 1912, 1754, 1643, 1567, 1514, 1502, 1501, 1536, 1617, 1723, 1870, 1997, 2217, 2461, 2397, 2174, 1939, 1806, 1668, 1533, 1441, 1385, 1361, 1371, 1426, 1512, 1602, 1750, 1907, 2124, 2379, 2393, 2061, 1877, 1704, 1570, 1449, 1326, 1273, 1253, 1275, 1329, 1413, 1515, 1666, 1827, 2023, 2297, 2280, 1998, 1806, 1637, 1487, 1353, 1264, 1170, 1173, 1170, 1234, 1322, 1440, 1607, 1751, 1951, 2179, 2219, 1952, 1751, 1570, 1405, 1260, 1174, 1118, 1099, 1116, 1165, 1263, 1377, 1532, 1711, 1897, 2159, 2136, 1922, 1709, 1526, 1347, 1228, 1128, 1072, 1045, 1066, 1118, 1223, 1347, 1506, 1663, 1858, 2081, 2142, 1905, 1696, 1499, 1341, 1205, 1106, 1045, 1024, 1046, 1093, 1193, 1316, 1470, 1643, 1838, 2075, 2144, 1891, 1681, 1487, 1331, 1206, 1101, 1051, 1024, 1045, 1093, 1191, 1316, 1468, 1644, 1844, 2057, 2135, 1905, 1722, 1512, 1347, 1219, 1119, 1060, 1040, 1056, 1112, 1212, 1331, 1480, 1656, 1863, 2075, 2200, 1938, 1758, 1560, 1400, 1257, 1156, 1088, 1084, 1093, 1148, 1249, 1371, 1529, 1706, 1900, 2081, 2298, 1975, 1821, 1630, 1443, 1310, 1219, 1148, 1131, 1150, 1202, 1310, 1436, 1595, 1738, 1935, 2196, 2338, 2073, 1876, 1690, 1554, 1389, 1311, 1241, 1221, 1248, 1299, 1397, 1513, 1657, 1811, 2010, 2321, 2487, 2184, 1948, 1788, 1645, 1503, 1408, 1350, 1323, 1343, 1403, 1484, 1618, 1756, 1920, 2127, 2366, 2554, 2313, 2059, 1886, 1740, 1620, 1534, 1493, 1453, 1473, 1534, 1620, 1723, 1865, 2034, 2233, 2543, 2881, 2466, 2197, 2029, 1891, 1740, 1654, 1610, 1600, 1617, 1654, 1753, 1854, 1974, 2161, 2400, 2762, 3699, 2660, 2396, 2156, 2000, 1903, 1801, 1799, 1754, 1779, 1805, 1924, 2000, 2149, 2334, 2571, 3513] + }, + "lsc_samples_blue": { + "uCoeff": [2544, 2229, 1973, 1819, 1723, 1639, 1575, 1512, 1499, 1512, 1543, 1604, 1685, 1755, 1981, 2149, 2611, 2348, 2141, 1898, 1729, 1630, 1528, 1463, 1417, 1392, 1417, 1448, 1513, 1596, 1690, 1835, 2050, 2283, 2186, 1982, 1788, 1681, 1529, 1433, 1371, 1319, 1297, 1311, 1354, 1416, 1513, 1621, 1746, 1921, 2197, 2135, 1875, 1708, 1576, 1460, 1344, 1274, 1221, 1212, 1231, 1256, 1340, 1450, 1550, 1676, 1859, 2083, 2033, 1827, 1663, 1507, 1387, 1278, 1199, 1146, 1132, 1146, 1181, 1263, 1370, 1502, 1627, 1798, 1969, 1965, 1794, 1618, 1465, 1346, 1212, 1143, 1089, 1081, 1097, 1135, 1231, 1311, 1428, 1573, 1752, 1930, 1939, 1739, 1584, 1410, 1284, 1172, 1092, 1059, 1041, 1051, 1099, 1182, 1295, 1397, 1552, 1693, 1905, 1936, 1743, 1565, 1399, 1289, 1155, 1084, 1041, 1024, 1056, 1073, 1146, 1250, 1394, 1528, 1710, 1911, 1896, 1737, 1572, 1387, 1268, 1141, 1076, 1043, 1039, 1041, 1073, 1146, 1275, 1387, 1534, 1691, 1864, 1962, 1736, 1555, 1438, 1289, 1173, 1084, 1039, 1034, 1041, 1089, 1162, 1267, 1407, 1549, 1716, 1886, 1956, 1780, 1618, 1464, 1314, 1195, 1110, 1084, 1051, 1073, 1116, 1191, 1310, 1432, 1567, 1732, 1931, 2010, 1816, 1647, 1498, 1371, 1242, 1165, 1119, 1100, 1119, 1173, 1252, 1342, 1488, 1618, 1794, 2010, 2124, 1858, 1682, 1554, 1426, 1322, 1232, 1173, 1165, 1170, 1242, 1322, 1422, 1523, 1688, 1850, 2072, 2179, 1967, 1797, 1634, 1524, 1410, 1322, 1266, 1242, 1269, 1333, 1381, 1494, 1616, 1741, 1899, 2135, 2400, 2107, 1863, 1707, 1582, 1495, 1414, 1362, 1351, 1346, 1436, 1495, 1599, 1707, 1840, 1991, 2269, 2604, 2232, 1974, 1776, 1685, 1604, 1506, 1463, 1464, 1496, 1511, 1587, 1660, 1770, 1923, 2152, 2461, 3170, 2355, 2138, 1956, 1792, 1720, 1620, 1580, 1566, 1570, 1603, 1701, 1778, 1881, 2037, 2303, 3339] + } + }, { + "name": "3264x2448_D75_100", + "resolution": "3264x2448", + "illumination": "D75", + "vignetting": 100, + "lsc_samples_red": { + "uCoeff": [4057, 3248, 2635, 2340, 2136, 1951, 1795, 1753, 1763, 1785, 1852, 1964, 2105, 2322, 2521, 2953, 3895, 3321, 2895, 2418, 2167, 1900, 1785, 1654, 1617, 1574, 1626, 1635, 1795, 1888, 2090, 2359, 2708, 3248, 3248, 2500, 2216, 1964, 1785, 1608, 1509, 1456, 1381, 1435, 1509, 1608, 1774, 1951, 2183, 2458, 3110, 2953, 2398, 2075, 1841, 1635, 1525, 1387, 1290, 1279, 1301, 1387, 1479, 1617, 1829, 2075, 2340, 2683, 2839, 2233, 1991, 1712, 1582, 1381, 1262, 1225, 1171, 1205, 1279, 1375, 1525, 1722, 1964, 2216, 2659, 2708, 2216, 1951, 1682, 1501, 1301, 1215, 1131, 1113, 1109, 1200, 1325, 1501, 1692, 1888, 2183, 2500, 2635, 2167, 1876, 1644, 1435, 1251, 1148, 1057, 1053, 1085, 1167, 1290, 1442, 1654, 1829, 2136, 2588, 2566, 2090, 1852, 1574, 1394, 1220, 1101, 1050, 1042, 1046, 1105, 1241, 1387, 1582, 1795, 2105, 2458, 2588, 2075, 1852, 1608, 1375, 1225, 1097, 1046, 1024, 1039, 1089, 1225, 1381, 1541, 1829, 2090, 2521, 2635, 2167, 1864, 1608, 1435, 1257, 1113, 1053, 1057, 1057, 1135, 1246, 1428, 1617, 1864, 2105, 2418, 2839, 2200, 1964, 1692, 1486, 1337, 1200, 1139, 1085, 1153, 1210, 1331, 1456, 1673, 1876, 2200, 2635, 2839, 2359, 2046, 1785, 1557, 1375, 1296, 1205, 1185, 1215, 1279, 1381, 1549, 1732, 1964, 2268, 2683, 3014, 2418, 2090, 1841, 1644, 1449, 1343, 1290, 1296, 1290, 1375, 1494, 1626, 1852, 2061, 2340, 2812, 3077, 2521, 2233, 1938, 1785, 1599, 1509, 1421, 1421, 1435, 1494, 1574, 1795, 1938, 2167, 2500, 3045, 3321, 2759, 2340, 2090, 1938, 1763, 1635, 1565, 1541, 1541, 1654, 1774, 1876, 2075, 2303, 2683, 3143, 3844, 3077, 2635, 2285, 2136, 1964, 1841, 1785, 1732, 1774, 1807, 1925, 2061, 2268, 2588, 2953, 3844, 5211, 3359, 3014, 2611, 2418, 2183, 2090, 2046, 2046, 2075, 2105, 2167, 2303, 2635, 2953, 3399, 5120] + }, + "lsc_samples_greenR": { + "uCoeff": [3711, 3002, 2580, 2209, 2064, 1882, 1738, 1689, 1655, 1734, 1716, 1850, 1977, 2166, 2428, 2923, 3908, 3286, 2741, 2301, 2083, 1892, 1707, 1615, 1550, 1525, 1540, 1588, 1698, 1855, 1983, 2231, 2663, 3270, 2989, 2437, 2124, 1898, 1720, 1561, 1468, 1390, 1367, 1405, 1448, 1558, 1672, 1860, 2064, 2376, 2823, 2823, 2301, 2014, 1810, 1584, 1458, 1353, 1278, 1263, 1273, 1326, 1417, 1565, 1747, 1954, 2209, 2685, 2663, 2231, 1954, 1707, 1518, 1353, 1265, 1184, 1175, 1190, 1235, 1359, 1471, 1635, 1830, 2138, 2560, 2580, 2151, 1898, 1655, 1452, 1293, 1192, 1135, 1125, 1127, 1175, 1280, 1433, 1591, 1815, 2097, 2455, 2455, 2110, 1824, 1584, 1423, 1253, 1141, 1092, 1074, 1092, 1149, 1244, 1376, 1550, 1780, 2045, 2376, 2455, 2090, 1805, 1558, 1367, 1221, 1123, 1060, 1035, 1064, 1103, 1201, 1353, 1518, 1752, 1995, 2359, 2455, 2077, 1785, 1554, 1353, 1207, 1123, 1050, 1024, 1043, 1114, 1219, 1324, 1508, 1698, 1995, 2301, 2642, 2097, 1845, 1561, 1388, 1244, 1145, 1085, 1064, 1081, 1133, 1239, 1359, 1558, 1752, 2014, 2350, 2707, 2187, 1882, 1655, 1452, 1313, 1184, 1135, 1104, 1133, 1194, 1298, 1445, 1615, 1805, 2083, 2419, 2685, 2247, 1977, 1738, 1525, 1373, 1256, 1197, 1159, 1197, 1265, 1345, 1478, 1672, 1903, 2180, 2590, 2859, 2384, 2051, 1815, 1603, 1452, 1337, 1268, 1246, 1278, 1345, 1433, 1584, 1766, 1972, 2239, 2707, 3072, 2560, 2138, 1914, 1707, 1558, 1455, 1376, 1373, 1385, 1455, 1536, 1698, 1866, 2070, 2428, 2884, 3286, 2763, 2342, 2090, 1887, 1729, 1611, 1529, 1511, 1536, 1588, 1689, 1830, 2026, 2262, 2663, 3044, 3711, 3030, 2653, 2262, 2064, 1898, 1752, 1711, 1689, 1720, 1752, 1898, 2020, 2187, 2580, 2897, 3629, 5160, 3422, 2923, 2492, 2301, 2077, 1954, 1926, 1882, 1903, 1972, 2051, 2254, 2419, 2823, 3238, 4752] + }, + "lsc_samples_greenB": { + "uCoeff": [3822, 3058, 2578, 2267, 2035, 1917, 1763, 1739, 1699, 1681, 1748, 1889, 2029, 2163, 2500, 2896, 3652, 3337, 2728, 2331, 2080, 1900, 1748, 1635, 1554, 1547, 1543, 1611, 1712, 1862, 2010, 2275, 2662, 3101, 3002, 2490, 2121, 1900, 1744, 1565, 1471, 1405, 1417, 1414, 1442, 1543, 1708, 1889, 2067, 2417, 2883, 2762, 2267, 2029, 1777, 1603, 1454, 1367, 1289, 1267, 1284, 1333, 1429, 1580, 1721, 1962, 2251, 2662, 2662, 2177, 1917, 1703, 1525, 1367, 1259, 1195, 1172, 1195, 1255, 1361, 1487, 1656, 1841, 2128, 2558, 2568, 2134, 1873, 1635, 1451, 1312, 1200, 1137, 1124, 1149, 1191, 1294, 1429, 1611, 1852, 2080, 2500, 2538, 2074, 1821, 1600, 1414, 1250, 1164, 1105, 1081, 1094, 1149, 1236, 1378, 1532, 1772, 2023, 2348, 2462, 2035, 1777, 1532, 1367, 1202, 1122, 1047, 1034, 1059, 1110, 1204, 1331, 1498, 1730, 1986, 2315, 2408, 1986, 1777, 1532, 1358, 1202, 1114, 1047, 1024, 1054, 1107, 1189, 1331, 1498, 1725, 1957, 2340, 2481, 2080, 1801, 1550, 1378, 1240, 1122, 1076, 1045, 1079, 1126, 1231, 1370, 1543, 1758, 2023, 2382, 2558, 2155, 1878, 1631, 1435, 1279, 1182, 1110, 1107, 1110, 1180, 1294, 1429, 1588, 1821, 2074, 2471, 2662, 2236, 1906, 1681, 1504, 1339, 1231, 1180, 1155, 1178, 1236, 1358, 1474, 1639, 1889, 2134, 2578, 2797, 2275, 1986, 1777, 1584, 1423, 1328, 1247, 1220, 1247, 1317, 1411, 1565, 1730, 1939, 2221, 2672, 2935, 2426, 2080, 1857, 1694, 1540, 1405, 1361, 1347, 1355, 1417, 1532, 1664, 1821, 2054, 2399, 2809, 3254, 2728, 2291, 2023, 1816, 1677, 1588, 1515, 1491, 1518, 1588, 1664, 1816, 1962, 2191, 2609, 3207, 3673, 2988, 2578, 2214, 2017, 1857, 1748, 1694, 1703, 1677, 1767, 1836, 1974, 2170, 2500, 2871, 3612, 5388, 3354, 2822, 2490, 2221, 2042, 1974, 1945, 1873, 1934, 1889, 2054, 2214, 2408, 2797, 3238, 4906] + }, + "lsc_samples_blue": { + "uCoeff": [3326, 2769, 2360, 2056, 1881, 1701, 1641, 1624, 1527, 1568, 1601, 1689, 1920, 1985, 2224, 2673, 3374, 2964, 2541, 2172, 1920, 1759, 1568, 1507, 1437, 1446, 1446, 1488, 1585, 1689, 1881, 2065, 2434, 2837, 2704, 2278, 1985, 1786, 1596, 1464, 1369, 1330, 1282, 1300, 1369, 1437, 1537, 1707, 1912, 2203, 2613, 2473, 2112, 1858, 1647, 1460, 1341, 1254, 1202, 1196, 1228, 1251, 1369, 1437, 1579, 1800, 2029, 2447, 2313, 2020, 1766, 1558, 1415, 1289, 1215, 1154, 1129, 1157, 1199, 1275, 1394, 1522, 1720, 1969, 2267, 2384, 1977, 1707, 1517, 1357, 1247, 1151, 1105, 1092, 1105, 1146, 1228, 1341, 1478, 1695, 1912, 2278, 2256, 1920, 1670, 1469, 1307, 1193, 1126, 1076, 1066, 1084, 1115, 1193, 1322, 1420, 1647, 1904, 2151, 2192, 1904, 1618, 1433, 1282, 1166, 1066, 1047, 1045, 1057, 1094, 1157, 1268, 1390, 1579, 1822, 2112, 2182, 1881, 1612, 1424, 1278, 1148, 1079, 1031, 1024, 1035, 1076, 1146, 1264, 1377, 1585, 1836, 2142, 2224, 1912, 1664, 1437, 1282, 1178, 1092, 1057, 1054, 1054, 1086, 1178, 1275, 1415, 1601, 1873, 2122, 2245, 1969, 1707, 1478, 1334, 1218, 1126, 1094, 1084, 1084, 1113, 1224, 1334, 1478, 1676, 1881, 2192, 2348, 2029, 1773, 1532, 1402, 1251, 1199, 1143, 1126, 1129, 1178, 1254, 1369, 1537, 1707, 1969, 2372, 2447, 2093, 1836, 1612, 1428, 1322, 1231, 1181, 1169, 1178, 1228, 1338, 1433, 1579, 1807, 2029, 2384, 2584, 2224, 1944, 1701, 1483, 1394, 1318, 1258, 1241, 1268, 1334, 1402, 1527, 1652, 1912, 2074, 2555, 2890, 2447, 2093, 1881, 1652, 1537, 1451, 1386, 1386, 1398, 1433, 1532, 1624, 1793, 2020, 2313, 2769, 3279, 2673, 2336, 2003, 1807, 1695, 1574, 1517, 1527, 1517, 1596, 1658, 1807, 1960, 2213, 2598, 3302, 4359, 2803, 2500, 2172, 1985, 1836, 1746, 1664, 1624, 1652, 1676, 1904, 1960, 2103, 2384, 2803, 4400] + } + }, { + "name": "3264x2448_D75_70", + "resolution": "3264x2448", + "illumination": "D75", + "vignetting": 70, + "lsc_samples_red": { + "uCoeff": [3147, 2685, 2286, 2096, 1959, 1822, 1699, 1669, 1680, 1697, 1749, 1833, 1933, 2081, 2197, 2464, 3034, 2695, 2466, 2149, 1983, 1782, 1698, 1591, 1564, 1526, 1572, 1574, 1707, 1771, 1918, 2102, 2322, 2642, 2689, 2192, 2011, 1832, 1699, 1554, 1472, 1427, 1358, 1407, 1472, 1554, 1689, 1821, 1984, 2159, 2586, 2502, 2135, 1913, 1742, 1577, 1488, 1366, 1277, 1267, 1288, 1366, 1446, 1561, 1731, 1913, 2088, 2295, 2441, 2019, 1856, 1639, 1538, 1360, 1252, 1219, 1167, 1199, 1268, 1355, 1485, 1648, 1833, 2005, 2300, 2357, 2019, 1833, 1620, 1469, 1288, 1209, 1129, 1112, 1107, 1195, 1311, 1469, 1629, 1778, 1991, 2193, 2312, 1987, 1774, 1591, 1411, 1243, 1145, 1057, 1053, 1084, 1164, 1280, 1418, 1600, 1733, 1961, 2275, 2265, 1927, 1757, 1529, 1374, 1214, 1100, 1050, 1042, 1046, 1104, 1234, 1368, 1537, 1707, 1940, 2178, 2285, 1916, 1759, 1562, 1357, 1219, 1096, 1046, 1024, 1039, 1088, 1219, 1363, 1500, 1738, 1929, 2231, 2320, 1993, 1768, 1561, 1413, 1250, 1112, 1053, 1057, 1057, 1133, 1239, 1407, 1569, 1768, 1940, 2145, 2476, 2015, 1852, 1634, 1459, 1326, 1196, 1138, 1085, 1152, 1206, 1320, 1431, 1617, 1774, 2015, 2312, 2461, 2138, 1916, 1713, 1521, 1359, 1288, 1201, 1182, 1211, 1272, 1365, 1514, 1665, 1844, 2062, 2338, 2578, 2172, 1942, 1754, 1595, 1425, 1330, 1281, 1288, 1281, 1360, 1467, 1578, 1764, 1917, 2107, 2420, 2597, 2235, 2047, 1827, 1713, 1557, 1481, 1402, 1403, 1415, 1467, 1534, 1722, 1827, 1991, 2218, 2573, 2744, 2397, 2114, 1941, 1834, 1695, 1588, 1528, 1508, 1506, 1606, 1705, 1779, 1928, 2083, 2337, 2611, 3076, 2606, 2325, 2082, 1986, 1857, 1760, 1716, 1670, 1706, 1729, 1822, 1921, 2067, 2287, 2511, 3076, 3955, 2768, 2583, 2317, 2196, 2022, 1957, 1928, 1931, 1954, 1970, 2008, 2099, 2336, 2535, 2797, 3891] + }, + "lsc_samples_greenR": { + "uCoeff": [2905, 2501, 2243, 1989, 1898, 1763, 1649, 1612, 1584, 1652, 1630, 1735, 1825, 1954, 2124, 2442, 3043, 2670, 2347, 2055, 1912, 1775, 1629, 1556, 1503, 1481, 1493, 1532, 1621, 1743, 1828, 1998, 2287, 2658, 2496, 2142, 1935, 1776, 1641, 1511, 1434, 1365, 1345, 1379, 1415, 1509, 1599, 1743, 1885, 2094, 2371, 2403, 2057, 1862, 1714, 1531, 1426, 1334, 1266, 1252, 1261, 1309, 1388, 1514, 1659, 1811, 1982, 2297, 2304, 2018, 1825, 1634, 1479, 1334, 1255, 1179, 1171, 1185, 1226, 1340, 1436, 1570, 1718, 1941, 2223, 2256, 1964, 1786, 1595, 1423, 1281, 1187, 1133, 1123, 1125, 1171, 1268, 1406, 1537, 1714, 1919, 2157, 2168, 1939, 1729, 1536, 1400, 1245, 1139, 1091, 1074, 1091, 1146, 1236, 1355, 1505, 1690, 1884, 2105, 2175, 1927, 1716, 1515, 1349, 1215, 1122, 1060, 1035, 1064, 1102, 1196, 1336, 1478, 1669, 1847, 2098, 2178, 1918, 1699, 1512, 1336, 1202, 1122, 1050, 1024, 1043, 1113, 1213, 1309, 1470, 1622, 1849, 2053, 2326, 1933, 1751, 1518, 1369, 1237, 1143, 1085, 1064, 1081, 1131, 1232, 1341, 1515, 1669, 1863, 2091, 2370, 2004, 1780, 1601, 1427, 1303, 1181, 1134, 1103, 1132, 1191, 1288, 1420, 1564, 1712, 1916, 2140, 2339, 2045, 1855, 1670, 1491, 1357, 1249, 1194, 1157, 1194, 1258, 1330, 1448, 1611, 1791, 1989, 2264, 2457, 2144, 1908, 1731, 1557, 1427, 1324, 1260, 1240, 1270, 1332, 1409, 1540, 1687, 1840, 2024, 2338, 2594, 2266, 1967, 1806, 1642, 1519, 1430, 1359, 1357, 1368, 1430, 1498, 1634, 1764, 1909, 2160, 2449, 2718, 2400, 2116, 1941, 1789, 1664, 1566, 1495, 1480, 1501, 1545, 1628, 1739, 1886, 2049, 2321, 2537, 2979, 2570, 2339, 2062, 1924, 1798, 1680, 1649, 1631, 1657, 1680, 1798, 1886, 2000, 2280, 2467, 2920, 3919, 2815, 2512, 2220, 2097, 1930, 1838, 1822, 1785, 1801, 1854, 1908, 2058, 2160, 2434, 2677, 3634] + }, + "lsc_samples_greenB": { + "uCoeff": [2983, 2543, 2242, 2037, 1874, 1793, 1671, 1656, 1623, 1605, 1658, 1769, 1869, 1952, 2180, 2422, 2864, 2707, 2337, 2079, 1910, 1782, 1665, 1574, 1506, 1501, 1496, 1553, 1633, 1749, 1851, 2034, 2286, 2535, 2505, 2184, 1933, 1777, 1662, 1515, 1437, 1379, 1392, 1388, 1410, 1495, 1631, 1768, 1888, 2126, 2416, 2356, 2029, 1874, 1685, 1548, 1422, 1347, 1276, 1256, 1271, 1315, 1399, 1527, 1636, 1818, 2016, 2279, 2303, 1973, 1793, 1631, 1485, 1347, 1249, 1189, 1168, 1189, 1245, 1342, 1450, 1589, 1727, 1933, 2222, 2247, 1950, 1765, 1577, 1422, 1299, 1195, 1135, 1122, 1147, 1186, 1282, 1402, 1555, 1746, 1905, 2193, 2235, 1909, 1726, 1550, 1391, 1242, 1161, 1104, 1081, 1093, 1146, 1228, 1357, 1488, 1683, 1866, 2083, 2181, 1881, 1691, 1491, 1349, 1196, 1121, 1047, 1034, 1059, 1109, 1198, 1315, 1460, 1649, 1839, 2063, 2140, 1841, 1692, 1492, 1341, 1197, 1113, 1047, 1024, 1054, 1106, 1184, 1315, 1460, 1646, 1816, 2085, 2196, 1919, 1712, 1507, 1359, 1233, 1121, 1076, 1045, 1079, 1124, 1225, 1352, 1501, 1674, 1871, 2117, 2251, 1977, 1776, 1579, 1411, 1270, 1179, 1109, 1106, 1109, 1177, 1284, 1405, 1539, 1726, 1909, 2181, 2321, 2035, 1793, 1619, 1472, 1325, 1225, 1177, 1153, 1175, 1230, 1343, 1444, 1581, 1779, 1950, 2254, 2408, 2054, 1852, 1697, 1540, 1400, 1315, 1240, 1214, 1240, 1305, 1389, 1522, 1655, 1812, 2009, 2311, 2489, 2158, 1917, 1756, 1631, 1502, 1383, 1345, 1332, 1339, 1394, 1495, 1603, 1724, 1895, 2136, 2392, 2694, 2372, 2073, 1883, 1726, 1617, 1545, 1482, 1461, 1485, 1545, 1605, 1726, 1831, 1991, 2278, 2659, 2952, 2538, 2279, 2022, 1883, 1762, 1676, 1634, 1644, 1618, 1693, 1743, 1846, 1985, 2216, 2447, 2907, 4079, 2764, 2433, 2218, 2030, 1900, 1856, 1839, 1777, 1829, 1781, 1911, 2024, 2151, 2413, 2677, 3741] + }, + "lsc_samples_blue": { + "uCoeff": [2635, 2327, 2071, 1865, 1744, 1607, 1564, 1555, 1470, 1505, 1529, 1596, 1777, 1807, 1964, 2255, 2669, 2436, 2193, 1951, 1776, 1660, 1506, 1459, 1400, 1409, 1408, 1442, 1521, 1599, 1743, 1864, 2111, 2343, 2282, 2016, 1820, 1679, 1531, 1423, 1342, 1309, 1265, 1281, 1342, 1399, 1479, 1611, 1759, 1957, 2214, 2135, 1904, 1730, 1571, 1419, 1318, 1241, 1193, 1188, 1218, 1238, 1344, 1398, 1511, 1681, 1837, 2115, 2030, 1844, 1663, 1501, 1384, 1274, 1207, 1150, 1126, 1153, 1192, 1261, 1365, 1469, 1623, 1802, 1994, 2101, 1819, 1620, 1470, 1335, 1237, 1147, 1103, 1091, 1103, 1142, 1219, 1320, 1435, 1609, 1765, 2017, 2009, 1779, 1593, 1431, 1290, 1187, 1124, 1075, 1066, 1083, 1113, 1187, 1305, 1386, 1573, 1766, 1925, 1964, 1770, 1550, 1400, 1268, 1162, 1065, 1047, 1045, 1057, 1093, 1153, 1255, 1360, 1516, 1700, 1899, 1957, 1752, 1546, 1392, 1265, 1144, 1078, 1031, 1024, 1035, 1075, 1142, 1252, 1349, 1522, 1714, 1925, 1989, 1777, 1591, 1404, 1268, 1173, 1091, 1057, 1054, 1054, 1085, 1173, 1262, 1383, 1535, 1744, 1907, 2000, 1820, 1626, 1439, 1316, 1211, 1124, 1093, 1084, 1083, 1111, 1217, 1316, 1439, 1598, 1746, 1958, 2072, 1863, 1677, 1484, 1377, 1241, 1194, 1141, 1124, 1127, 1173, 1244, 1346, 1488, 1620, 1813, 2091, 2135, 1904, 1723, 1549, 1396, 1305, 1222, 1176, 1165, 1173, 1219, 1320, 1401, 1520, 1698, 1851, 2086, 2220, 1995, 1802, 1619, 1440, 1367, 1301, 1247, 1231, 1256, 1316, 1374, 1479, 1576, 1775, 1873, 2197, 2421, 2150, 1909, 1761, 1581, 1490, 1418, 1361, 1363, 1373, 1402, 1485, 1556, 1685, 1849, 2044, 2331, 2665, 2295, 2083, 1845, 1701, 1618, 1519, 1473, 1483, 1473, 1539, 1586, 1701, 1809, 1984, 2237, 2682, 3359, 2352, 2180, 1959, 1832, 1723, 1656, 1590, 1556, 1579, 1595, 1782, 1811, 1903, 2090, 2352, 3387] + } + }, { + "name": "3264x2448_HZ_100", + "resolution": "3264x2448", + "illumination": "HZ", + "vignetting": 100, + "lsc_samples_red": { + "uCoeff": [4417, 3517, 2971, 2590, 2357, 2197, 1998, 1901, 1833, 1901, 1965, 2130, 2304, 2553, 2946, 3399, 4283, 3721, 3129, 2720, 2397, 2156, 1943, 1777, 1705, 1661, 1688, 1782, 1901, 2111, 2365, 2639, 3009, 3535, 3535, 2922, 2544, 2217, 1959, 1742, 1597, 1496, 1471, 1508, 1597, 1734, 1922, 2150, 2473, 2773, 3415, 3335, 2730, 2373, 2062, 1809, 1586, 1435, 1337, 1318, 1361, 1435, 1565, 1755, 2009, 2296, 2639, 3199, 3156, 2600, 2231, 1901, 1665, 1462, 1315, 1228, 1201, 1228, 1308, 1459, 1634, 1871, 2183, 2517, 2984, 3088, 2481, 2183, 1814, 1565, 1343, 1226, 1128, 1102, 1125, 1214, 1343, 1538, 1791, 2093, 2447, 2946, 2910, 2439, 2093, 1742, 1489, 1284, 1152, 1075, 1069, 1082, 1160, 1289, 1474, 1717, 2021, 2342, 2817, 2984, 2422, 2044, 1721, 1462, 1254, 1120, 1053, 1024, 1059, 1127, 1248, 1429, 1684, 1987, 2357, 2806, 2922, 2422, 2062, 1721, 1462, 1257, 1120, 1053, 1028, 1047, 1127, 1259, 1438, 1680, 2009, 2365, 2806, 2946, 2422, 2074, 1760, 1489, 1284, 1158, 1082, 1047, 1069, 1136, 1279, 1471, 1713, 1998, 2373, 2829, 3009, 2508, 2124, 1800, 1551, 1348, 1193, 1138, 1113, 1127, 1199, 1332, 1538, 1809, 2111, 2397, 2922, 3074, 2581, 2238, 1927, 1653, 1450, 1298, 1201, 1177, 1214, 1296, 1421, 1623, 1881, 2183, 2581, 3061, 3335, 2752, 2406, 2044, 1777, 1569, 1421, 1325, 1305, 1348, 1407, 1531, 1738, 2009, 2326, 2639, 3199, 3625, 2922, 2517, 2203, 1970, 1738, 1572, 1462, 1456, 1474, 1565, 1713, 1943, 2170, 2481, 2829, 3319, 3884, 3129, 2709, 2422, 2143, 1943, 1791, 1668, 1661, 1668, 1768, 1891, 2093, 2342, 2669, 3009, 3644, 4258, 3449, 2971, 2639, 2373, 2176, 1987, 1927, 1881, 1907, 1993, 2130, 2326, 2553, 2898, 3304, 4086, 5936, 3884, 3415, 3009, 2679, 2447, 2304, 2267, 2197, 2197, 2326, 2447, 2669, 2875, 3243, 3644, 5477] + }, + "lsc_samples_greenR": { + "uCoeff": [3773, 3054, 2584, 2368, 2081, 1922, 1814, 1746, 1708, 1768, 1809, 1876, 2033, 2191, 2441, 2915, 3713, 3328, 2724, 2392, 2119, 1902, 1746, 1656, 1578, 1561, 1582, 1614, 1712, 1892, 2027, 2254, 2623, 3122, 3002, 2529, 2205, 1971, 1768, 1607, 1495, 1425, 1389, 1417, 1482, 1582, 1733, 1912, 2125, 2400, 2952, 2903, 2368, 2081, 1814, 1648, 1482, 1367, 1297, 1283, 1295, 1354, 1458, 1593, 1768, 1993, 2283, 2703, 2683, 2240, 1971, 1717, 1534, 1378, 1267, 1184, 1178, 1180, 1251, 1381, 1498, 1668, 1902, 2171, 2584, 2633, 2178, 1902, 1629, 1443, 1283, 1184, 1129, 1092, 1118, 1174, 1262, 1434, 1600, 1837, 2094, 2476, 2511, 2119, 1833, 1607, 1392, 1247, 1122, 1067, 1045, 1061, 1125, 1225, 1381, 1547, 1786, 2039, 2424, 2511, 2106, 1837, 1554, 1362, 1223, 1108, 1047, 1024, 1045, 1102, 1198, 1339, 1534, 1768, 2039, 2400, 2476, 2106, 1814, 1571, 1378, 1210, 1101, 1045, 1024, 1039, 1109, 1196, 1354, 1547, 1773, 2033, 2392, 2556, 2112, 1828, 1582, 1383, 1247, 1134, 1079, 1041, 1067, 1131, 1236, 1381, 1554, 1804, 2081, 2424, 2623, 2164, 1902, 1660, 1434, 1292, 1184, 1111, 1106, 1115, 1159, 1274, 1431, 1600, 1866, 2081, 2476, 2745, 2298, 2010, 1751, 1527, 1383, 1247, 1184, 1159, 1184, 1255, 1378, 1521, 1668, 1933, 2205, 2556, 2892, 2400, 2112, 1837, 1641, 1485, 1354, 1285, 1264, 1280, 1349, 1473, 1614, 1795, 2016, 2352, 2724, 3108, 2575, 2212, 1965, 1768, 1614, 1504, 1440, 1397, 1403, 1485, 1600, 1738, 1960, 2144, 2502, 2940, 3312, 2800, 2416, 2119, 1954, 1773, 1645, 1585, 1568, 1582, 1656, 1733, 1902, 2081, 2352, 2714, 3122, 3753, 3028, 2683, 2336, 2119, 1982, 1823, 1755, 1751, 1764, 1833, 1960, 2094, 2283, 2594, 2915, 3694, 4832, 3408, 3002, 2652, 2384, 2191, 2069, 2004, 1954, 1982, 2045, 2144, 2321, 2584, 2811, 3266, 5113] + }, + "lsc_samples_greenB": { + "uCoeff": [3789, 3068, 2586, 2339, 2090, 1974, 1836, 1716, 1720, 1758, 1831, 1963, 2103, 2278, 2605, 2965, 3769, 3327, 2823, 2452, 2174, 1941, 1758, 1656, 1578, 1568, 1578, 1633, 1745, 1920, 2103, 2346, 2736, 3281, 3136, 2586, 2293, 2013, 1799, 1622, 1504, 1423, 1403, 1432, 1489, 1585, 1776, 1952, 2160, 2522, 2990, 2928, 2452, 2154, 1895, 1637, 1501, 1389, 1317, 1288, 1310, 1373, 1486, 1648, 1831, 2066, 2402, 2834, 2779, 2362, 2042, 1763, 1557, 1409, 1281, 1209, 1177, 1213, 1272, 1387, 1527, 1737, 1990, 2264, 2694, 2715, 2271, 1968, 1691, 1473, 1317, 1197, 1137, 1112, 1143, 1201, 1303, 1464, 1633, 1885, 2180, 2549, 2625, 2221, 1905, 1648, 1426, 1265, 1147, 1079, 1056, 1070, 1143, 1252, 1423, 1600, 1817, 2115, 2605, 2605, 2180, 1895, 1614, 1395, 1228, 1128, 1051, 1034, 1061, 1119, 1230, 1387, 1578, 1803, 2078, 2452, 2596, 2180, 1900, 1589, 1400, 1230, 1112, 1050, 1024, 1045, 1121, 1220, 1373, 1568, 1812, 2115, 2452, 2674, 2221, 1905, 1622, 1432, 1259, 1134, 1072, 1048, 1069, 1121, 1239, 1395, 1592, 1831, 2122, 2452, 2674, 2264, 1947, 1675, 1464, 1307, 1169, 1107, 1090, 1111, 1169, 1288, 1440, 1637, 1855, 2174, 2540, 2801, 2331, 2042, 1737, 1534, 1379, 1241, 1167, 1154, 1167, 1241, 1352, 1504, 1707, 1963, 2250, 2715, 2904, 2469, 2128, 1855, 1640, 1470, 1355, 1268, 1237, 1265, 1334, 1458, 1607, 1831, 2048, 2394, 2801, 3136, 2596, 2221, 1968, 1754, 1589, 1470, 1389, 1373, 1389, 1440, 1589, 1716, 1947, 2201, 2478, 2916, 3407, 2812, 2444, 2122, 1910, 1741, 1603, 1534, 1514, 1534, 1607, 1720, 1880, 2066, 2331, 2664, 3149, 3729, 3068, 2634, 2293, 2072, 1920, 1776, 1687, 1671, 1683, 1763, 1895, 2019, 2242, 2558, 2916, 3634, 5098, 3457, 2965, 2634, 2362, 2115, 1979, 1968, 1920, 1974, 1996, 2122, 2278, 2549, 2823, 3342, 4821] + }, + "lsc_samples_blue": { + "uCoeff": [3491, 2854, 2439, 2091, 1920, 1816, 1736, 1723, 1639, 1686, 1723, 1845, 1985, 2002, 2365, 2722, 3598, 3000, 2545, 2252, 1985, 1816, 1698, 1552, 1542, 1512, 1532, 1583, 1686, 1802, 2002, 2169, 2545, 3039, 2854, 2365, 2073, 1874, 1650, 1542, 1456, 1412, 1395, 1387, 1465, 1552, 1698, 1845, 2055, 2342, 2786, 2660, 2230, 1968, 1723, 1573, 1429, 1339, 1281, 1288, 1310, 1363, 1456, 1605, 1723, 1920, 2274, 2660, 2464, 2129, 1874, 1639, 1474, 1355, 1254, 1196, 1178, 1202, 1267, 1387, 1474, 1605, 1860, 2129, 2464, 2319, 2002, 1789, 1583, 1387, 1288, 1184, 1133, 1111, 1149, 1196, 1295, 1395, 1583, 1775, 2055, 2365, 2319, 1968, 1723, 1532, 1339, 1221, 1111, 1086, 1056, 1101, 1149, 1234, 1363, 1542, 1736, 1985, 2274, 2210, 1968, 1736, 1502, 1317, 1184, 1111, 1056, 1042, 1061, 1106, 1227, 1355, 1502, 1674, 1920, 2230, 2210, 1936, 1698, 1493, 1317, 1184, 1101, 1042, 1024, 1056, 1106, 1221, 1347, 1532, 1674, 1985, 2252, 2319, 1936, 1723, 1493, 1339, 1184, 1106, 1061, 1033, 1081, 1111, 1209, 1339, 1512, 1698, 1985, 2230, 2252, 1936, 1749, 1552, 1355, 1247, 1149, 1076, 1066, 1076, 1149, 1227, 1395, 1532, 1698, 1920, 2252, 2365, 2055, 1802, 1627, 1421, 1281, 1184, 1144, 1127, 1155, 1202, 1267, 1395, 1583, 1802, 2019, 2365, 2545, 2129, 1920, 1686, 1512, 1387, 1288, 1227, 1202, 1221, 1281, 1379, 1502, 1650, 1874, 2091, 2545, 2820, 2274, 2002, 1775, 1594, 1474, 1379, 1310, 1317, 1324, 1387, 1465, 1605, 1749, 1985, 2252, 2660, 2925, 2439, 2129, 1874, 1723, 1605, 1542, 1447, 1421, 1456, 1474, 1594, 1698, 1920, 2073, 2439, 2854, 3295, 2690, 2274, 2002, 1860, 1749, 1639, 1583, 1583, 1583, 1605, 1736, 1845, 2002, 2210, 2660, 3342, 4327, 3039, 2572, 2210, 1985, 1816, 1789, 1749, 1686, 1749, 1749, 1874, 2055, 2129, 2464, 2925, 4409] + } + }, { + "name": "3264x2448_HZ_70", + "resolution": "3264x2448", + "illumination": "HZ", + "vignetting": 70, + "lsc_samples_red": { + "uCoeff": [3399, 2886, 2549, 2300, 2144, 2034, 1877, 1800, 1742, 1800, 1848, 1976, 2100, 2270, 2530, 2797, 3305, 2987, 2646, 2393, 2176, 2003, 1838, 1702, 1644, 1606, 1628, 1707, 1801, 1964, 2149, 2328, 2554, 2851, 2904, 2526, 2283, 2050, 1853, 1676, 1553, 1464, 1442, 1475, 1553, 1669, 1820, 1992, 2224, 2408, 2815, 2795, 2404, 2165, 1936, 1735, 1545, 1411, 1322, 1305, 1345, 1411, 1525, 1686, 1889, 2100, 2330, 2691, 2688, 2321, 2063, 1808, 1614, 1437, 1303, 1221, 1196, 1221, 1296, 1434, 1586, 1781, 2022, 2253, 2554, 2658, 2240, 2035, 1739, 1529, 1329, 1220, 1126, 1101, 1123, 1208, 1329, 1504, 1718, 1957, 2211, 2546, 2532, 2216, 1966, 1680, 1462, 1275, 1149, 1074, 1069, 1081, 1157, 1279, 1448, 1657, 1902, 2135, 2458, 2601, 2209, 1927, 1665, 1439, 1247, 1119, 1053, 1024, 1059, 1125, 1241, 1408, 1631, 1877, 2154, 2458, 2554, 2211, 1945, 1666, 1440, 1250, 1119, 1053, 1028, 1047, 1126, 1252, 1417, 1628, 1898, 2163, 2460, 2570, 2209, 1954, 1700, 1464, 1276, 1156, 1082, 1047, 1069, 1134, 1271, 1447, 1657, 1887, 2167, 2476, 2611, 2274, 1993, 1733, 1520, 1336, 1190, 1137, 1112, 1126, 1195, 1321, 1508, 1741, 1981, 2181, 2542, 2647, 2323, 2083, 1842, 1611, 1431, 1290, 1198, 1174, 1210, 1288, 1403, 1583, 1800, 2035, 2323, 2637, 2828, 2446, 2214, 1935, 1717, 1538, 1404, 1315, 1297, 1338, 1391, 1502, 1681, 1904, 2145, 2353, 2722, 3017, 2559, 2287, 2060, 1880, 1686, 1540, 1441, 1436, 1452, 1534, 1663, 1856, 2031, 2257, 2484, 2783, 3166, 2690, 2420, 2226, 2016, 1858, 1732, 1624, 1620, 1624, 1711, 1811, 1972, 2158, 2386, 2595, 2986, 3377, 2893, 2596, 2379, 2191, 2044, 1891, 1846, 1806, 1827, 1897, 2004, 2150, 2307, 2537, 2781, 3252, 4462, 3160, 2897, 2641, 2415, 2249, 2145, 2123, 2065, 2061, 2164, 2249, 2407, 2532, 2763, 2980, 4141] + }, + "lsc_samples_greenR": { + "uCoeff": [2948, 2540, 2246, 2119, 1912, 1797, 1716, 1663, 1631, 1682, 1711, 1757, 1872, 1975, 2134, 2436, 2906, 2701, 2334, 2128, 1943, 1784, 1664, 1593, 1528, 1514, 1532, 1555, 1633, 1775, 1865, 2017, 2256, 2551, 2505, 2215, 2002, 1839, 1684, 1553, 1459, 1398, 1365, 1390, 1447, 1531, 1653, 1788, 1936, 2113, 2468, 2464, 2111, 1918, 1718, 1589, 1448, 1347, 1284, 1271, 1282, 1335, 1426, 1539, 1677, 1844, 2042, 2311, 2319, 2025, 1839, 1643, 1494, 1358, 1257, 1179, 1174, 1175, 1241, 1360, 1460, 1599, 1780, 1968, 2242, 2298, 1987, 1790, 1572, 1415, 1271, 1179, 1127, 1091, 1116, 1170, 1251, 1406, 1545, 1733, 1917, 2174, 2213, 1947, 1737, 1557, 1371, 1239, 1120, 1067, 1045, 1061, 1123, 1218, 1360, 1502, 1695, 1879, 2144, 2220, 1941, 1744, 1511, 1344, 1217, 1107, 1047, 1024, 1045, 1101, 1193, 1322, 1493, 1683, 1884, 2131, 2194, 1943, 1725, 1528, 1360, 1205, 1100, 1045, 1024, 1039, 1108, 1191, 1337, 1506, 1689, 1881, 2127, 2257, 1946, 1736, 1537, 1364, 1240, 1132, 1079, 1041, 1067, 1129, 1229, 1362, 1511, 1715, 1920, 2150, 2303, 1985, 1797, 1605, 1410, 1282, 1181, 1110, 1105, 1114, 1156, 1265, 1407, 1550, 1766, 1915, 2185, 2387, 2087, 1884, 1682, 1493, 1367, 1240, 1181, 1157, 1181, 1248, 1362, 1488, 1607, 1817, 2010, 2237, 2482, 2157, 1961, 1750, 1592, 1458, 1340, 1277, 1257, 1272, 1335, 1447, 1567, 1713, 1878, 2117, 2351, 2621, 2278, 2029, 1851, 1698, 1571, 1476, 1420, 1380, 1385, 1458, 1558, 1670, 1846, 1972, 2219, 2492, 2737, 2429, 2177, 1966, 1849, 1704, 1597, 1547, 1533, 1544, 1607, 1668, 1803, 1933, 2124, 2361, 2595, 3010, 2568, 2363, 2125, 1971, 1873, 1744, 1689, 1688, 1697, 1753, 1853, 1950, 2080, 2292, 2481, 2967, 3690, 2804, 2574, 2350, 2167, 2029, 1939, 1891, 1849, 1871, 1918, 1988, 2114, 2295, 2424, 2698, 3886] + }, + "lsc_samples_greenB": { + "uCoeff": [2960, 2550, 2248, 2095, 1920, 1842, 1735, 1636, 1642, 1673, 1731, 1832, 1931, 2046, 2263, 2473, 2946, 2700, 2410, 2177, 1989, 1817, 1674, 1593, 1528, 1521, 1528, 1573, 1663, 1799, 1929, 2091, 2343, 2666, 2606, 2260, 2075, 1875, 1711, 1567, 1467, 1396, 1379, 1404, 1453, 1533, 1691, 1822, 1965, 2209, 2496, 2483, 2179, 1980, 1789, 1579, 1466, 1368, 1303, 1276, 1296, 1353, 1452, 1589, 1733, 1906, 2138, 2411, 2394, 2125, 1900, 1684, 1515, 1387, 1270, 1203, 1173, 1207, 1262, 1366, 1487, 1661, 1856, 2045, 2328, 2363, 2065, 1848, 1628, 1443, 1304, 1192, 1135, 1111, 1141, 1196, 1290, 1434, 1575, 1775, 1989, 2231, 2304, 2033, 1800, 1594, 1403, 1256, 1145, 1078, 1056, 1070, 1141, 1244, 1400, 1550, 1722, 1943, 2288, 2296, 2004, 1796, 1566, 1375, 1222, 1126, 1051, 1034, 1061, 1118, 1224, 1368, 1533, 1714, 1917, 2173, 2291, 2006, 1801, 1544, 1381, 1224, 1111, 1050, 1024, 1045, 1120, 1214, 1355, 1525, 1723, 1950, 2175, 2351, 2038, 1804, 1574, 1410, 1252, 1132, 1072, 1048, 1069, 1120, 1232, 1375, 1546, 1739, 1955, 2173, 2344, 2069, 1837, 1619, 1438, 1297, 1166, 1106, 1090, 1110, 1166, 1278, 1416, 1584, 1756, 1993, 2236, 2431, 2115, 1912, 1669, 1500, 1363, 1235, 1164, 1152, 1164, 1235, 1337, 1472, 1642, 1843, 2047, 2363, 2492, 2214, 1974, 1766, 1591, 1444, 1341, 1260, 1231, 1257, 1321, 1433, 1561, 1745, 1905, 2152, 2411, 2643, 2295, 2037, 1853, 1685, 1548, 1444, 1371, 1357, 1371, 1416, 1548, 1650, 1835, 2020, 2200, 2474, 2809, 2439, 2200, 1968, 1810, 1675, 1558, 1499, 1482, 1499, 1562, 1656, 1783, 1920, 2106, 2322, 2615, 2992, 2599, 2324, 2088, 1931, 1818, 1701, 1627, 1615, 1624, 1690, 1796, 1885, 2046, 2262, 2482, 2923, 3876, 2841, 2545, 2336, 2149, 1963, 1860, 1859, 1819, 1864, 1875, 1969, 2078, 2266, 2434, 2755, 3682] + }, + "lsc_samples_blue": { + "uCoeff": [2751, 2390, 2133, 1893, 1777, 1706, 1647, 1642, 1570, 1610, 1636, 1731, 1832, 1821, 2075, 2292, 2826, 2462, 2196, 2015, 1830, 1709, 1621, 1500, 1495, 1470, 1486, 1528, 1610, 1697, 1844, 1948, 2196, 2490, 2394, 2085, 1893, 1755, 1579, 1494, 1423, 1386, 1371, 1362, 1431, 1503, 1622, 1730, 1878, 2067, 2343, 2278, 1999, 1823, 1638, 1521, 1399, 1321, 1269, 1276, 1296, 1343, 1424, 1550, 1638, 1782, 2035, 2278, 2148, 1934, 1756, 1573, 1438, 1336, 1244, 1190, 1174, 1196, 1257, 1366, 1438, 1543, 1744, 1934, 2148, 2049, 1840, 1691, 1530, 1363, 1276, 1179, 1131, 1110, 1147, 1191, 1283, 1370, 1530, 1679, 1884, 2086, 2060, 1819, 1640, 1488, 1321, 1214, 1109, 1085, 1056, 1100, 1146, 1226, 1343, 1497, 1651, 1834, 2024, 1978, 1824, 1655, 1463, 1301, 1179, 1110, 1056, 1042, 1061, 1105, 1221, 1337, 1463, 1600, 1783, 1994, 1980, 1798, 1622, 1456, 1302, 1179, 1100, 1042, 1024, 1056, 1105, 1215, 1330, 1492, 1601, 1840, 2014, 2066, 1797, 1643, 1455, 1322, 1179, 1105, 1061, 1033, 1081, 1110, 1203, 1322, 1472, 1621, 1838, 1994, 2006, 1792, 1663, 1507, 1336, 1239, 1146, 1075, 1066, 1075, 1146, 1220, 1373, 1488, 1618, 1779, 2006, 2086, 1884, 1703, 1570, 1394, 1269, 1179, 1142, 1125, 1152, 1197, 1256, 1370, 1530, 1703, 1854, 2086, 2211, 1934, 1795, 1615, 1473, 1366, 1277, 1220, 1197, 1215, 1270, 1359, 1464, 1583, 1756, 1902, 2211, 2400, 2035, 1851, 1684, 1540, 1441, 1358, 1296, 1304, 1309, 1366, 1433, 1550, 1661, 1837, 2017, 2278, 2448, 2144, 1939, 1755, 1644, 1551, 1502, 1418, 1395, 1427, 1439, 1541, 1622, 1795, 1893, 2144, 2394, 2677, 2308, 2033, 1844, 1747, 1666, 1578, 1533, 1534, 1533, 1547, 1655, 1734, 1844, 1982, 2285, 2711, 3336, 2529, 2237, 1990, 1832, 1706, 1694, 1665, 1611, 1665, 1659, 1756, 1891, 1924, 2152, 2444, 3394] + } + }, { + "name": "3264x2448_TL84_100", + "resolution": "3264x2448", + "illumination": "TL84", + "vignetting": 100, + "lsc_samples_red": { + "uCoeff": [3642, 2815, 2401, 2160, 1963, 1865, 1745, 1660, 1608, 1702, 1753, 1848, 1935, 2160, 2346, 2739, 3517, 3188, 2567, 2231, 2011, 1815, 1695, 1589, 1553, 1502, 1536, 1602, 1681, 1807, 1973, 2160, 2535, 3023, 2957, 2459, 2105, 1873, 1702, 1565, 1464, 1389, 1357, 1399, 1459, 1559, 1702, 1865, 2052, 2346, 2796, 2668, 2231, 1963, 1760, 1602, 1459, 1339, 1293, 1249, 1281, 1348, 1454, 1589, 1776, 1963, 2207, 2616, 2600, 2127, 1908, 1681, 1502, 1366, 1234, 1181, 1154, 1181, 1249, 1339, 1496, 1653, 1831, 2073, 2504, 2504, 2105, 1831, 1608, 1433, 1293, 1191, 1110, 1092, 1098, 1167, 1277, 1454, 1589, 1783, 2031, 2444, 2430, 2002, 1783, 1565, 1385, 1249, 1125, 1070, 1058, 1067, 1138, 1209, 1385, 1536, 1730, 1963, 2333, 2401, 2002, 1745, 1541, 1366, 1209, 1101, 1050, 1029, 1048, 1098, 1191, 1353, 1524, 1730, 1963, 2243, 2430, 2002, 1753, 1541, 1357, 1209, 1101, 1050, 1024, 1024, 1092, 1198, 1339, 1496, 1709, 1973, 2294, 2430, 2042, 1783, 1577, 1385, 1257, 1135, 1072, 1053, 1053, 1101, 1234, 1357, 1541, 1745, 2002, 2373, 2444, 2052, 1831, 1602, 1409, 1293, 1198, 1122, 1084, 1113, 1161, 1265, 1438, 1608, 1791, 2031, 2401, 2685, 2149, 1908, 1702, 1513, 1371, 1245, 1167, 1138, 1171, 1219, 1339, 1464, 1647, 1882, 2116, 2567, 2739, 2243, 2002, 1776, 1589, 1464, 1353, 1273, 1249, 1265, 1326, 1409, 1565, 1776, 1945, 2207, 2633, 2854, 2444, 2105, 1908, 1723, 1565, 1454, 1389, 1357, 1389, 1454, 1553, 1674, 1882, 2073, 2333, 2854, 3213, 2567, 2256, 2011, 1848, 1681, 1608, 1541, 1518, 1518, 1589, 1660, 1815, 1963, 2207, 2600, 2979, 3547, 2874, 2459, 2207, 2031, 1873, 1730, 1702, 1660, 1674, 1753, 1848, 1963, 2127, 2387, 2685, 3547, 4633, 3238, 2758, 2444, 2256, 2083, 1982, 1882, 1873, 1882, 1973, 2002, 2243, 2430, 2739, 3091, 4740] + }, + "lsc_samples_greenR": { + "uCoeff": [3620, 2844, 2491, 2216, 1966, 1835, 1739, 1699, 1636, 1716, 1721, 1815, 1920, 2110, 2418, 2693, 3506, 3140, 2608, 2269, 2020, 1825, 1699, 1581, 1544, 1516, 1527, 1581, 1652, 1781, 1943, 2172, 2500, 2932, 2945, 2436, 2117, 1893, 1699, 1566, 1459, 1401, 1369, 1404, 1437, 1534, 1656, 1815, 2039, 2325, 2726, 2682, 2254, 1996, 1781, 1593, 1459, 1358, 1291, 1245, 1289, 1338, 1416, 1541, 1708, 1898, 2187, 2578, 2538, 2151, 1882, 1686, 1496, 1369, 1250, 1181, 1162, 1177, 1238, 1330, 1447, 1616, 1820, 2070, 2454, 2519, 2110, 1815, 1612, 1431, 1291, 1177, 1117, 1104, 1110, 1175, 1281, 1410, 1559, 1786, 2002, 2341, 2427, 2045, 1786, 1559, 1383, 1236, 1131, 1060, 1058, 1072, 1129, 1220, 1366, 1530, 1730, 1960, 2223, 2392, 2039, 1767, 1548, 1358, 1216, 1104, 1058, 1024, 1053, 1106, 1196, 1336, 1496, 1699, 1932, 2269, 2392, 2026, 1781, 1534, 1372, 1216, 1099, 1048, 1029, 1048, 1102, 1200, 1336, 1506, 1716, 1932, 2341, 2436, 2051, 1791, 1566, 1398, 1245, 1133, 1072, 1053, 1067, 1119, 1231, 1352, 1534, 1757, 1966, 2308, 2472, 2117, 1877, 1669, 1443, 1302, 1183, 1106, 1091, 1106, 1158, 1274, 1401, 1570, 1771, 2045, 2400, 2578, 2194, 1904, 1699, 1506, 1358, 1241, 1185, 1168, 1168, 1250, 1347, 1459, 1644, 1856, 2117, 2519, 2796, 2308, 2008, 1791, 1596, 1459, 1352, 1284, 1255, 1289, 1341, 1447, 1585, 1739, 1937, 2231, 2578, 2893, 2472, 2144, 1898, 1748, 1574, 1459, 1392, 1360, 1392, 1443, 1548, 1703, 1845, 2077, 2366, 2726, 3201, 2682, 2285, 2064, 1856, 1708, 1608, 1534, 1516, 1544, 1581, 1682, 1800, 2039, 2246, 2538, 2984, 3581, 2971, 2519, 2231, 2045, 1877, 1757, 1690, 1686, 1708, 1771, 1882, 2020, 2172, 2427, 2807, 3506, 4633, 3216, 2844, 2436, 2254, 2097, 1943, 1882, 1856, 1877, 1882, 2039, 2201, 2418, 2682, 3096, 4666] + }, + "lsc_samples_greenB": { + "uCoeff": [3604, 2880, 2479, 2235, 1986, 1868, 1740, 1691, 1682, 1695, 1745, 1812, 1992, 2134, 2416, 2759, 3604, 3140, 2681, 2274, 2061, 1863, 1722, 1616, 1541, 1523, 1527, 1578, 1674, 1817, 2011, 2213, 2527, 3011, 2867, 2442, 2162, 1911, 1731, 1585, 1472, 1403, 1385, 1385, 1453, 1559, 1695, 1868, 2087, 2381, 2867, 2714, 2314, 2017, 1792, 1593, 1462, 1371, 1283, 1268, 1293, 1343, 1449, 1574, 1749, 1951, 2220, 2617, 2566, 2176, 1934, 1700, 1502, 1374, 1256, 1186, 1169, 1180, 1235, 1354, 1485, 1649, 1852, 2114, 2517, 2517, 2127, 1868, 1608, 1446, 1283, 1184, 1112, 1094, 1114, 1178, 1266, 1418, 1601, 1782, 2067, 2364, 2451, 2061, 1797, 1585, 1383, 1235, 1139, 1067, 1043, 1078, 1120, 1240, 1371, 1534, 1745, 1992, 2347, 2389, 2061, 1792, 1541, 1351, 1210, 1110, 1034, 1035, 1052, 1097, 1190, 1346, 1523, 1713, 1969, 2364, 2364, 2061, 1759, 1559, 1351, 1206, 1101, 1043, 1024, 1043, 1099, 1184, 1346, 1499, 1726, 1992, 2290, 2461, 2061, 1817, 1566, 1385, 1235, 1125, 1072, 1043, 1052, 1110, 1217, 1354, 1527, 1726, 1945, 2314, 2488, 2127, 1832, 1605, 1430, 1259, 1155, 1086, 1074, 1086, 1157, 1266, 1403, 1589, 1792, 2035, 2364, 2586, 2184, 1911, 1695, 1482, 1340, 1223, 1163, 1155, 1163, 1219, 1335, 1475, 1620, 1827, 2114, 2507, 2783, 2274, 2035, 1759, 1585, 1430, 1306, 1259, 1226, 1249, 1324, 1424, 1574, 1726, 1945, 2258, 2596, 2867, 2461, 2127, 1873, 1682, 1537, 1437, 1346, 1332, 1377, 1424, 1513, 1678, 1863, 2100, 2322, 2703, 3186, 2627, 2290, 2035, 1812, 1674, 1552, 1495, 1462, 1502, 1563, 1649, 1797, 1986, 2184, 2527, 3011, 3508, 2892, 2461, 2176, 1969, 1817, 1731, 1661, 1645, 1653, 1700, 1827, 1928, 2127, 2416, 2714, 3399, 4813, 3140, 2748, 2442, 2213, 1998, 1884, 1873, 1832, 1827, 1906, 2017, 2155, 2416, 2596, 3111, 4779] + }, + "lsc_samples_blue": { + "uCoeff": [3252, 2701, 2238, 2018, 1758, 1647, 1575, 1575, 1566, 1549, 1637, 1619, 1758, 2003, 2255, 2490, 3045, 2727, 2387, 2091, 1837, 1706, 1566, 1485, 1455, 1412, 1455, 1477, 1575, 1647, 1791, 1976, 2273, 2701, 2627, 2186, 1873, 1716, 1575, 1477, 1365, 1339, 1315, 1333, 1385, 1440, 1524, 1647, 1848, 2122, 2469, 2448, 2061, 1780, 1610, 1493, 1333, 1291, 1246, 1210, 1236, 1274, 1352, 1433, 1610, 1780, 2003, 2367, 2238, 1923, 1706, 1541, 1391, 1321, 1210, 1175, 1142, 1175, 1215, 1291, 1391, 1516, 1706, 1923, 2255, 2186, 1873, 1666, 1485, 1352, 1230, 1161, 1090, 1098, 1098, 1138, 1230, 1333, 1477, 1619, 1848, 2186, 2186, 1837, 1637, 1433, 1285, 1215, 1111, 1078, 1062, 1066, 1138, 1161, 1291, 1405, 1583, 1825, 2138, 2122, 1825, 1575, 1426, 1291, 1161, 1082, 1062, 1024, 1062, 1090, 1165, 1274, 1412, 1575, 1802, 2076, 2138, 1802, 1583, 1426, 1285, 1156, 1098, 1035, 1028, 1054, 1078, 1161, 1285, 1405, 1601, 1802, 2061, 2122, 1802, 1637, 1412, 1291, 1190, 1107, 1062, 1046, 1046, 1111, 1180, 1268, 1405, 1610, 1837, 2061, 2122, 1837, 1637, 1485, 1339, 1199, 1124, 1066, 1078, 1062, 1111, 1210, 1333, 1440, 1619, 1825, 2203, 2273, 1936, 1676, 1516, 1385, 1246, 1190, 1111, 1111, 1124, 1175, 1252, 1358, 1508, 1676, 1885, 2238, 2273, 2018, 1780, 1566, 1426, 1309, 1230, 1180, 1180, 1190, 1252, 1339, 1433, 1549, 1726, 1936, 2255, 2490, 2122, 1837, 1666, 1508, 1405, 1333, 1274, 1246, 1297, 1321, 1412, 1508, 1666, 1837, 2076, 2406, 2627, 2255, 1962, 1780, 1619, 1516, 1426, 1391, 1365, 1385, 1412, 1508, 1601, 1758, 1923, 2255, 2603, 3045, 2534, 2186, 1910, 1758, 1647, 1524, 1508, 1493, 1485, 1541, 1610, 1716, 1885, 2122, 2367, 3145, 4144, 2701, 2367, 2091, 1837, 1716, 1686, 1575, 1619, 1619, 1666, 1758, 1848, 2018, 2238, 2651, 3972] + } + }, { + "name": "3264x2448_TL84_70", + "resolution": "3264x2448", + "illumination": "TL84", + "vignetting": 70, + "lsc_samples_red": { + "uCoeff": [2857, 2361, 2103, 1949, 1813, 1748, 1655, 1587, 1542, 1624, 1662, 1733, 1790, 1949, 2060, 2305, 2769, 2599, 2213, 1998, 1852, 1708, 1618, 1533, 1505, 1460, 1490, 1545, 1606, 1701, 1820, 1941, 2188, 2479, 2472, 2159, 1919, 1754, 1625, 1515, 1430, 1364, 1335, 1374, 1426, 1510, 1625, 1747, 1875, 2070, 2351, 2284, 2000, 1818, 1670, 1547, 1427, 1321, 1280, 1239, 1269, 1329, 1422, 1536, 1685, 1818, 1981, 2244, 2254, 1932, 1785, 1611, 1464, 1346, 1225, 1176, 1150, 1176, 1240, 1321, 1459, 1586, 1719, 1888, 2179, 2196, 1926, 1728, 1553, 1406, 1281, 1186, 1108, 1091, 1097, 1163, 1266, 1425, 1536, 1686, 1864, 2148, 2148, 1848, 1692, 1518, 1364, 1241, 1123, 1070, 1058, 1067, 1136, 1202, 1364, 1492, 1646, 1815, 2071, 2132, 1853, 1663, 1499, 1348, 1203, 1100, 1050, 1029, 1048, 1097, 1186, 1336, 1484, 1649, 1820, 2005, 2157, 1854, 1671, 1500, 1340, 1204, 1100, 1050, 1024, 1024, 1091, 1193, 1323, 1459, 1632, 1830, 2048, 2155, 1887, 1696, 1532, 1366, 1250, 1133, 1072, 1053, 1053, 1100, 1228, 1339, 1499, 1663, 1853, 2109, 2160, 1890, 1735, 1552, 1387, 1283, 1194, 1121, 1084, 1112, 1158, 1256, 1414, 1558, 1700, 1873, 2125, 2339, 1963, 1795, 1638, 1480, 1355, 1239, 1164, 1136, 1168, 1213, 1325, 1434, 1588, 1773, 1935, 2246, 2363, 2027, 1866, 1696, 1544, 1439, 1339, 1265, 1242, 1257, 1313, 1387, 1522, 1696, 1817, 1998, 2280, 2427, 2172, 1939, 1800, 1657, 1525, 1429, 1371, 1342, 1371, 1429, 1514, 1612, 1778, 1912, 2083, 2427, 2663, 2245, 2044, 1873, 1755, 1620, 1563, 1506, 1486, 1485, 1546, 1601, 1725, 1832, 2004, 2271, 2488, 2860, 2450, 2183, 2016, 1895, 1776, 1660, 1641, 1605, 1615, 1681, 1754, 1836, 1949, 2124, 2304, 2860, 3550, 2677, 2383, 2181, 2059, 1936, 1863, 1783, 1777, 1783, 1855, 1866, 2049, 2169, 2368, 2567, 3625] + }, + "lsc_samples_greenR": { + "uCoeff": [2841, 2383, 2173, 1995, 1816, 1722, 1650, 1621, 1567, 1636, 1634, 1705, 1777, 1909, 2116, 2270, 2761, 2564, 2245, 2029, 1859, 1717, 1622, 1526, 1497, 1473, 1482, 1526, 1580, 1679, 1795, 1951, 2161, 2412, 2463, 2141, 1929, 1771, 1623, 1516, 1426, 1375, 1347, 1378, 1405, 1487, 1584, 1704, 1865, 2053, 2299, 2295, 2019, 1846, 1689, 1539, 1427, 1339, 1278, 1235, 1276, 1320, 1387, 1492, 1625, 1763, 1965, 2215, 2206, 1952, 1763, 1615, 1459, 1349, 1241, 1176, 1158, 1172, 1229, 1312, 1413, 1553, 1709, 1885, 2140, 2208, 1930, 1714, 1556, 1404, 1279, 1173, 1115, 1103, 1108, 1171, 1269, 1384, 1508, 1689, 1840, 2067, 2146, 1884, 1695, 1513, 1362, 1228, 1129, 1060, 1058, 1071, 1127, 1213, 1346, 1486, 1646, 1813, 1983, 2125, 1884, 1682, 1506, 1340, 1210, 1103, 1058, 1024, 1053, 1105, 1191, 1319, 1458, 1622, 1794, 2026, 2127, 1875, 1696, 1494, 1354, 1210, 1098, 1048, 1029, 1048, 1101, 1195, 1320, 1468, 1638, 1795, 2086, 2160, 1894, 1703, 1522, 1378, 1238, 1131, 1072, 1053, 1067, 1118, 1225, 1335, 1493, 1673, 1822, 2057, 2182, 1945, 1775, 1613, 1419, 1292, 1180, 1105, 1091, 1105, 1155, 1265, 1379, 1523, 1682, 1884, 2124, 2254, 2000, 1792, 1635, 1474, 1343, 1235, 1182, 1166, 1165, 1243, 1332, 1430, 1585, 1750, 1936, 2208, 2407, 2081, 1871, 1709, 1551, 1434, 1338, 1276, 1248, 1280, 1328, 1423, 1541, 1663, 1810, 2018, 2237, 2456, 2195, 1972, 1792, 1679, 1534, 1434, 1374, 1345, 1374, 1419, 1510, 1639, 1745, 1915, 2109, 2328, 2654, 2336, 2068, 1918, 1762, 1645, 1563, 1499, 1484, 1509, 1538, 1621, 1712, 1897, 2036, 2222, 2492, 2885, 2524, 2231, 2036, 1907, 1780, 1684, 1630, 1628, 1646, 1697, 1784, 1886, 1987, 2157, 2398, 2830, 3550, 2661, 2450, 2174, 2058, 1948, 1829, 1783, 1762, 1778, 1775, 1898, 2013, 2160, 2323, 2571, 3573] + }, + "lsc_samples_greenB": { + "uCoeff": [2830, 2410, 2164, 2011, 1833, 1751, 1651, 1614, 1608, 1617, 1655, 1702, 1838, 1928, 2115, 2320, 2830, 2564, 2301, 2033, 1894, 1750, 1642, 1557, 1494, 1480, 1482, 1523, 1600, 1710, 1852, 1984, 2182, 2470, 2404, 2146, 1967, 1787, 1651, 1533, 1438, 1377, 1362, 1361, 1420, 1510, 1619, 1750, 1904, 2098, 2404, 2319, 2067, 1864, 1699, 1539, 1430, 1351, 1270, 1257, 1280, 1325, 1418, 1522, 1661, 1808, 1991, 2245, 2228, 1972, 1807, 1628, 1464, 1354, 1246, 1181, 1165, 1175, 1226, 1335, 1448, 1582, 1737, 1921, 2190, 2206, 1944, 1760, 1553, 1418, 1271, 1179, 1110, 1093, 1112, 1173, 1255, 1392, 1546, 1685, 1894, 2085, 2165, 1898, 1705, 1537, 1362, 1227, 1137, 1067, 1043, 1077, 1118, 1232, 1351, 1490, 1659, 1840, 2082, 2122, 1903, 1704, 1499, 1334, 1204, 1109, 1034, 1035, 1052, 1096, 1185, 1329, 1483, 1634, 1825, 2102, 2104, 1905, 1676, 1517, 1334, 1201, 1100, 1043, 1024, 1043, 1098, 1179, 1329, 1461, 1647, 1846, 2045, 2180, 1903, 1726, 1522, 1366, 1228, 1123, 1072, 1043, 1052, 1109, 1211, 1336, 1486, 1646, 1805, 2062, 2195, 1953, 1736, 1555, 1406, 1250, 1152, 1085, 1074, 1085, 1154, 1257, 1381, 1540, 1700, 1876, 2096, 2261, 1992, 1798, 1631, 1451, 1326, 1217, 1160, 1153, 1160, 1213, 1321, 1445, 1564, 1725, 1934, 2198, 2397, 2053, 1894, 1681, 1541, 1407, 1294, 1251, 1220, 1242, 1311, 1401, 1530, 1651, 1817, 2040, 2251, 2436, 2186, 1957, 1770, 1620, 1499, 1413, 1330, 1318, 1360, 1401, 1477, 1616, 1761, 1934, 2074, 2311, 2643, 2292, 2073, 1894, 1723, 1614, 1511, 1463, 1434, 1470, 1522, 1591, 1709, 1851, 1985, 2213, 2512, 2832, 2464, 2184, 1990, 1841, 1726, 1661, 1604, 1591, 1596, 1633, 1735, 1806, 1949, 2148, 2326, 2752, 3676, 2604, 2375, 2179, 2023, 1862, 1777, 1775, 1741, 1734, 1796, 1879, 1975, 2158, 2256, 2582, 3653] + }, + "lsc_samples_blue": { + "uCoeff": [2584, 2276, 1975, 1834, 1641, 1560, 1506, 1511, 1505, 1488, 1561, 1536, 1641, 1822, 1988, 2119, 2439, 2263, 2074, 1885, 1706, 1614, 1504, 1439, 1416, 1378, 1416, 1432, 1512, 1563, 1667, 1793, 1987, 2244, 2224, 1943, 1727, 1619, 1513, 1435, 1339, 1318, 1296, 1312, 1357, 1402, 1467, 1560, 1706, 1893, 2106, 2115, 1863, 1664, 1539, 1449, 1310, 1276, 1235, 1202, 1226, 1260, 1328, 1394, 1539, 1664, 1816, 2053, 1972, 1764, 1611, 1486, 1362, 1304, 1202, 1170, 1139, 1170, 1207, 1276, 1362, 1464, 1611, 1764, 1985, 1944, 1732, 1584, 1441, 1330, 1221, 1157, 1089, 1097, 1097, 1135, 1221, 1312, 1434, 1543, 1712, 1944, 1953, 1709, 1564, 1398, 1270, 1208, 1109, 1077, 1062, 1066, 1136, 1156, 1275, 1372, 1516, 1699, 1915, 1907, 1703, 1512, 1393, 1277, 1157, 1081, 1062, 1024, 1062, 1089, 1161, 1261, 1381, 1512, 1683, 1870, 1922, 1685, 1520, 1394, 1272, 1152, 1097, 1035, 1028, 1054, 1077, 1157, 1272, 1375, 1536, 1685, 1860, 1907, 1683, 1567, 1381, 1277, 1185, 1106, 1062, 1046, 1046, 1110, 1175, 1255, 1374, 1543, 1713, 1858, 1902, 1709, 1564, 1445, 1321, 1193, 1122, 1066, 1078, 1062, 1109, 1203, 1315, 1404, 1548, 1699, 1967, 2013, 1785, 1593, 1469, 1361, 1236, 1185, 1109, 1110, 1122, 1171, 1242, 1336, 1462, 1593, 1743, 1985, 1999, 1842, 1675, 1508, 1394, 1293, 1221, 1175, 1175, 1185, 1242, 1321, 1401, 1493, 1628, 1775, 1985, 2148, 1912, 1712, 1588, 1462, 1377, 1315, 1262, 1236, 1284, 1304, 1384, 1462, 1588, 1712, 1875, 2083, 2224, 1998, 1801, 1674, 1552, 1471, 1395, 1366, 1343, 1361, 1382, 1463, 1536, 1655, 1769, 1998, 2206, 2495, 2188, 1962, 1767, 1659, 1576, 1474, 1464, 1452, 1443, 1490, 1543, 1623, 1746, 1910, 2059, 2567, 3208, 2276, 2076, 1893, 1707, 1620, 1604, 1511, 1552, 1550, 1586, 1656, 1717, 1834, 1975, 2239, 3088] + } + }, { + "name": "3264x2448_GRAY_0", + "resolution": "3264x2448", + "illumination": "GRAY", + "vignetting": 0, + "lsc_samples_red": { + "uCoeff": [1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024] + }, + "lsc_samples_greenR": { + "uCoeff": [1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024] + }, + "lsc_samples_greenB": { + "uCoeff": [1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024] + }, + "lsc_samples_blue": { + "uCoeff": [1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024] + } + }], + "tableAll_len": 15 + } + }, + "colorAsGrey": { + "param": { + "enable": 0 + } + }, + "lumaDetect": { + "luma_detect_en": 1, + "fixed_times": 0, + "mutation_threshold": 0.0002, + "mutation_threshold_level2": 1000 + }, + "aldch": { + "param": { + "ldch_en": 0, + "meshfile": "LDCH_mesh_2688_1520_os04a10_4IR", + "correct_level": 255, + "correct_level_max": 255, + "light_center": [1351.12, 739.486], + "coefficient": [-1830.26, 0.000423795, -2.50767e-07, 1.27247e-10] + } + }, + "ccm_calib": { + "control": { + "enable": 1, + "mode": "CALIB_CCM_MODE_AUTO", + "wbgain_tolerance": 0.1, + "gain_tolerance": 0.2 + }, + "lumaCCM": { + "rgb2y_para": [38, 75, 15], + "low_bound_pos_bit": 8, + "y_alpha_curve": [0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1024], + "gain_alphaScale_curve": { + "gain": [1, 2, 4, 8, 16, 32, 64, 128, 256], + "scale": [1, 0.8, 0.8, 0.9, 1, 1, 1, 1, 1] + } + }, + "manualPara": { + "ccMatrix": [1, 0, 0, 0, 1, 0, 0, 0, 1], + "ccOffsets": [0, 0, 0] + }, + "TuningPara": { + "damp_enable": 1, + "illu_estim": { + "interp_enable": 0, + "default_illu": "A", + "weightRB": [1, 1], + "prob_limit": 0.2, + "frame_no": 8 + }, + "aCcmCof": [{ + "name": "A", + "awbGain": [1.3452, 2.4161], + "minDist": 0.05, + "matrixUsed": ["A_100", "A_74"], + "matrixUsed_len": 2, + "gain_sat_curve": { + "gains": [1, 4, 6, 16], + "sat": [90, 88, 80, 50] + } + }, { + "name": "CWF", + "awbGain": [1.8123, 2.0694], + "minDist": 0.05, + "matrixUsed": ["CWF_100", "CWF_74"], + "matrixUsed_len": 2, + "gain_sat_curve": { + "gains": [1, 4, 6, 16], + "sat": [90, 88, 80, 50] + } + }, { + "name": "D50", + "awbGain": [2.0413, 1.565], + "minDist": 0.05, + "matrixUsed": ["D50_100", "D50_74"], + "matrixUsed_len": 2, + "gain_sat_curve": { + "gains": [1, 4, 6, 16], + "sat": [90, 88, 80, 50] + } + }, { + "name": "D65", + "awbGain": [2.204, 1.4498], + "minDist": 0.05, + "matrixUsed": ["D65_100", "D65_74"], + "matrixUsed_len": 2, + "gain_sat_curve": { + "gains": [1, 4, 6, 16], + "sat": [90, 88, 80, 50] + } + }, { + "name": "D75", + "awbGain": [2.3379, 1.3483], + "minDist": 0.05, + "matrixUsed": ["D75_100", "D75_74"], + "matrixUsed_len": 2, + "gain_sat_curve": { + "gains": [1, 4, 6, 16], + "sat": [90, 88, 80, 50] + } + }, { + "name": "HZ", + "awbGain": [1.1019, 2.9858], + "minDist": 0.05, + "matrixUsed": ["HZ_100", "HZ_74"], + "matrixUsed_len": 2, + "gain_sat_curve": { + "gains": [1, 4, 6, 16], + "sat": [90, 88, 80, 50] + } + }, { + "name": "TL84", + "awbGain": [1.7523, 2.1252], + "minDist": 0.05, + "matrixUsed": ["TL84_100", "TL84_74"], + "matrixUsed_len": 2, + "gain_sat_curve": { + "gains": [1, 4, 6, 16], + "sat": [90, 88, 80, 50] + } + }], + "aCcmCof_len": 7, + "matrixAll": [{ + "name": "A_100", + "illumination": "A", + "saturation": 100, + "ccMatrix": [1.6891, -0.5521, -0.137, -0.3788, 1.5903, -0.2116, -0.1644, -0.948, 2.1124], + "ccOffsets": [0, 0, 0] + }, { + "name": "A_74", + "illumination": "A", + "saturation": 74, + "ccMatrix": [1.3186, -0.2377, -0.081, -0.2115, 1.3487, -0.1372, -0.0538, -0.529, 1.5828], + "ccOffsets": [0, 0, 0] + }, { + "name": "CWF_100", + "illumination": "CWF", + "saturation": 100, + "ccMatrix": [2.2712, -1.2488, -0.0224, -0.4072, 1.5721, -0.1649, -0.107, -0.5879, 1.6949], + "ccOffsets": [0, 0, 0] + }, { + "name": "CWF_74", + "illumination": "CWF", + "saturation": 74, + "ccMatrix": [1.792, -0.7994, 0.0074, -0.1898, 1.2888, -0.0989, 0.0311, -0.3086, 1.2775], + "ccOffsets": [0, 0, 0] + }, { + "name": "D50_100", + "illumination": "D50", + "saturation": 100, + "ccMatrix": [1.655, -0.9098, 0.2548, -0.2647, 1.2982, -0.0335, 0.16, -0.7713, 1.6113], + "ccOffsets": [0, 0, 0] + }, { + "name": "D50_74", + "illumination": "D50", + "saturation": 74, + "ccMatrix": [1.5565, -0.5177, -0.0389, -0.0858, 1.3389, -0.2531, 0.0647, -0.2656, 1.201], + "ccOffsets": [0, 0, 0] + }, { + "name": "D65_100", + "illumination": "D65", + "saturation": 100, + "ccMatrix": [2.0667, -1.0499, -0.0168, -0.2201, 1.594, -0.3739, -0.0537, -0.4778, 1.5315], + "ccOffsets": [0, 0, 0] + }, { + "name": "D65_74", + "illumination": "D65", + "saturation": 74, + "ccMatrix": [1.6549, -0.6301, -0.0248, -0.0372, 1.327, -0.2899, 0.0849, -0.2052, 1.1202], + "ccOffsets": [0, 0, 0] + }, { + "name": "D75_100", + "illumination": "D75", + "saturation": 100, + "ccMatrix": [2.155, -1.122, -0.033, -0.2227, 1.6076, -0.3849, -0.0495, -0.4337, 1.4832], + "ccOffsets": [0, 0, 0] + }, { + "name": "D75_74", + "illumination": "D75", + "saturation": 74, + "ccMatrix": [1.7269, -0.6857, -0.0411, -0.0325, 1.3349, -0.3024, 0.0946, -0.1747, 1.0801], + "ccOffsets": [0, 0, 0] + }, { + "name": "HZ_100", + "illumination": "HZ", + "saturation": 100, + "ccMatrix": [1.5916, -0.3465, -0.2451, -0.4361, 1.5559, -0.1198, -0.4226, -1.2969, 2.7195], + "ccOffsets": [0, 0, 0] + }, { + "name": "HZ_74", + "illumination": "HZ", + "saturation": 74, + "ccMatrix": [1.2224, -0.0853, -0.1371, -0.2778, 1.3236, -0.0457, -0.2688, -0.787, 2.0558], + "ccOffsets": [0, 0, 0] + }, { + "name": "TL84_100", + "illumination": "TL84", + "saturation": 100, + "ccMatrix": [1.935, -0.8598, -0.0752, -0.3278, 1.5314, -0.2036, -0.1164, -0.5772, 1.6936], + "ccOffsets": [0, 0, 0] + }, { + "name": "TL84_74", + "illumination": "TL84", + "saturation": 74, + "ccMatrix": [1.5289, -0.4872, -0.0417, -0.1454, 1.283, -0.1376, 0.01, -0.2765, 1.2665], + "ccOffsets": [0, 0, 0] + }], + "matrixAll_len": 14 + } + }, + "lut3d_calib": { + "common": { + "enable": 0, + "mode": "CALIB_Lut3D_MODE_AUTO", + "gain_tolerance": 0.1, + "wbgain_tolerance": 1 + }, + "MLut3D": { + "Table": { + "look_up_table_r": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "look_up_table_g": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "look_up_table_b": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + } + }, + "ALut3D": { + "damp_en": 1, + "lutAll": [{ + "name": "Normal", + "awbGain": [1, 1], + "gain_alpha": { + "gain": [1, 2, 4, 8, 16, 32, 64, 128, 256], + "alpha": [1, 1, 1, 1, 1, 1, 1, 1, 1] + }, + "Table": { + "look_up_table_r": [0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 0, 20, 205, 416, 626, 829, 1023, 1023, 1023, 0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 0, 20, 205, 416, 626, 829, 1023, 1023, 1023, 0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 509, 511, 541, 616, 724, 850, 971, 1023, 1023, 677, 678, 687, 714, 759, 821, 897, 983, 1023, 0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 509, 510, 541, 616, 724, 850, 970, 1023, 1023, 677, 678, 687, 714, 759, 821, 897, 983, 1023, 0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 511, 512, 539, 614, 723, 849, 969, 1023, 1023, 677, 678, 686, 713, 758, 820, 896, 982, 1023, 0, 20, 205, 416, 626, 829, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 0, 17, 178, 357, 567, 773, 971, 1023, 1023, 0, 17, 178, 357, 567, 773, 971, 1023, 1023, 0, 17, 178, 357, 567, 773, 971, 1023, 1023, 1, 17, 178, 357, 567, 773, 971, 1023, 1023, 516, 518, 544, 610, 718, 845, 965, 1023, 1023, 678, 679, 687, 710, 755, 817, 893, 979, 1023, 0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 0, 17, 178, 357, 567, 773, 971, 1023, 1023, 0, 17, 178, 357, 537, 745, 944, 1023, 1023, 0, 17, 178, 357, 537, 745, 944, 1023, 1023, 0, 17, 178, 357, 537, 745, 944, 1023, 1023, 526, 528, 554, 618, 713, 841, 957, 1023, 1023, 680, 680, 688, 711, 750, 811, 888, 974, 1023, 0, 20, 205, 416, 626, 829, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 0, 17, 178, 357, 567, 773, 971, 1023, 1023, 0, 17, 178, 357, 537, 745, 944, 1023, 1023, 0, 17, 178, 357, 537, 715, 916, 1023, 1023, 0, 17, 178, 357, 537, 715, 916, 1023, 1023, 543, 544, 569, 632, 725, 838, 947, 1023, 1023, 682, 682, 691, 713, 751, 804, 880, 967, 1023, 0, 20, 205, 415, 626, 829, 1023, 1023, 1023, 0, 17, 202, 413, 623, 826, 1023, 1023, 1023, 0, 17, 178, 386, 596, 800, 997, 1023, 1023, 1, 17, 178, 357, 567, 773, 971, 1023, 1023, 0, 17, 178, 357, 537, 745, 944, 1023, 1023, 0, 17, 178, 357, 537, 715, 916, 1023, 1023, 1, 17, 178, 357, 537, 715, 886, 1023, 1023, 569, 570, 594, 654, 745, 853, 935, 1023, 1023, 685, 686, 694, 716, 754, 806, 871, 957, 1023, 71, 83, 214, 402, 599, 791, 976, 1023, 1023, 72, 82, 212, 401, 597, 790, 975, 1023, 1023, 84, 93, 201, 386, 582, 776, 963, 1023, 1023, 114, 121, 215, 368, 561, 755, 942, 1023, 1023, 161, 166, 243, 384, 544, 735, 920, 1023, 1023, 230, 234, 293, 415, 563, 719, 900, 1023, 1023, 344, 347, 388, 482, 608, 747, 889, 1023, 1023, 608, 610, 632, 689, 776, 855, 936, 1023, 1023, 689, 690, 698, 720, 757, 808, 872, 945, 1023, 247, 250, 299, 407, 545, 693, 840, 978, 1023, 248, 251, 299, 407, 545, 693, 840, 978, 1023, 268, 271, 311, 413, 547, 693, 837, 975, 1023, 321, 323, 356, 435, 558, 695, 833, 968, 1023, 402, 403, 428, 489, 578, 700, 830, 960, 1023, 478, 479, 498, 546, 620, 711, 829, 951, 1023, 556, 557, 571, 608, 667, 743, 832, 943, 1023, 630, 630, 641, 669, 715, 777, 853, 936, 1023, 695, 695, 703, 725, 761, 811, 874, 946, 1023], + "look_up_table_g": [0, 0, 0, 1, 0, 1, 1, 637, 1771, 78, 78, 78, 78, 78, 78, 78, 663, 1778, 821, 820, 821, 821, 821, 821, 821, 1036, 1899, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1703, 2192, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2442, 2596, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3170, 3049, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3837, 3501, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3923, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 0, 0, 1, 1, 1, 0, 0, 637, 1771, 78, 69, 69, 69, 69, 69, 69, 660, 1778, 820, 810, 810, 810, 810, 810, 810, 1033, 1898, 1662, 1650, 1650, 1650, 1650, 1650, 1650, 1700, 2191, 2503, 2491, 2491, 2491, 2491, 2491, 2491, 2439, 2595, 3317, 3305, 3305, 3305, 3305, 3305, 3305, 3168, 3049, 4095, 4091, 4091, 4091, 4091, 4091, 4091, 3836, 3501, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3923, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 0, 1, 0, 1, 1, 1, 0, 640, 1775, 78, 69, 69, 69, 69, 69, 69, 663, 1781, 821, 810, 713, 713, 713, 713, 713, 990, 1890, 1662, 1650, 1543, 1543, 1543, 1543, 1543, 1658, 2183, 2503, 2491, 2383, 2383, 2383, 2383, 2383, 2404, 2587, 3317, 3305, 3202, 3202, 3202, 3202, 3202, 3143, 3042, 4095, 4091, 3990, 3990, 3990, 3990, 3990, 3821, 3495, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3918, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 1, 1, 1, 0, 1, 0, 2, 650, 1786, 78, 69, 69, 69, 69, 69, 69, 673, 1792, 821, 810, 713, 713, 713, 713, 713, 996, 1899, 1662, 1650, 1543, 1428, 1428, 1428, 1428, 1579, 2161, 2503, 2491, 2383, 2267, 2267, 2267, 2267, 2331, 2567, 3317, 3305, 3202, 3091, 3091, 3091, 3091, 3085, 3023, 4095, 4091, 3990, 3882, 3882, 3882, 3882, 3783, 3479, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3904, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 0, 1, 1, 1, 0, 1, 0, 668, 1805, 78, 69, 69, 69, 69, 69, 69, 690, 1811, 821, 810, 713, 713, 713, 713, 713, 1008, 1916, 1662, 1650, 1543, 1428, 1428, 1428, 1428, 1587, 2174, 2503, 2491, 2383, 2267, 2149, 2149, 2149, 2242, 2534, 3317, 3305, 3202, 3091, 2978, 2978, 2978, 3008, 2993, 4095, 4091, 3990, 3882, 3775, 3775, 3775, 3727, 3452, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3881, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 1, 0, 1, 0, 1, 1, 0, 697, 1834, 78, 69, 69, 69, 69, 69, 69, 718, 1840, 821, 810, 713, 713, 713, 713, 713, 1028, 1942, 1662, 1650, 1543, 1428, 1428, 1428, 1428, 1599, 2194, 2503, 2491, 2383, 2267, 2149, 2149, 2149, 2251, 2548, 3317, 3305, 3202, 3091, 2978, 2860, 2860, 2920, 2952, 4095, 4091, 3990, 3882, 3775, 3663, 3663, 3660, 3415, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3848, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 1, 0, 0, 2, 0, 0, 3, 737, 1874, 78, 69, 69, 69, 69, 69, 69, 758, 1880, 821, 810, 713, 713, 713, 713, 713, 1056, 1979, 1662, 1650, 1543, 1428, 1428, 1428, 1428, 1618, 2223, 2503, 2491, 2383, 2267, 2149, 2149, 2149, 2264, 2567, 3317, 3305, 3202, 3091, 2978, 2860, 2860, 2931, 2964, 4095, 4091, 3990, 3882, 3775, 3663, 3545, 3586, 3368, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3805, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 283, 284, 299, 339, 405, 501, 628, 793, 1927, 334, 328, 342, 378, 439, 529, 651, 812, 1932, 866, 861, 802, 820, 852, 903, 981, 1096, 2026, 1624, 1619, 1561, 1474, 1492, 1522, 1570, 1645, 2260, 2403, 2400, 2351, 2268, 2177, 2197, 2230, 2284, 2593, 3155, 3152, 3117, 3047, 2964, 2877, 2903, 2948, 2980, 3847, 3846, 3823, 3771, 3702, 3627, 3557, 3606, 3377, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3754, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 988, 989, 1014, 1082, 1198, 1367, 1588, 1785, 1992, 1003, 1003, 1027, 1094, 1209, 1377, 1596, 1791, 1997, 1245, 1244, 1243, 1299, 1396, 1543, 1724, 1899, 2086, 1751, 1750, 1745, 1741, 1813, 1918, 2029, 2161, 2307, 2354, 2354, 2347, 2330, 2313, 2366, 2437, 2525, 2626, 2923, 2923, 2916, 2898, 2873, 2846, 2887, 2939, 3000, 3449, 3449, 3442, 3425, 3399, 3365, 3328, 3355, 3387, 3916, 3915, 3910, 3894, 3869, 3834, 3792, 3745, 3758, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095], + "look_up_table_b": [0, 0, 0, 0, 0, 0, 0, 159, 443, 0, 0, 0, 0, 0, 0, 0, 160, 443, 0, 0, 0, 0, 0, 0, 0, 168, 452, 0, 0, 0, 0, 0, 0, 1, 193, 476, 0, 0, 0, 0, 0, 0, 0, 237, 514, 0, 0, 0, 0, 0, 0, 0, 313, 563, 0, 0, 0, 1, 0, 0, 1, 461, 617, 509, 509, 515, 531, 563, 623, 709, 724, 673, 677, 677, 678, 680, 684, 691, 700, 711, 725, 20, 20, 20, 20, 20, 20, 20, 165, 444, 20, 17, 17, 17, 17, 17, 17, 165, 444, 20, 17, 17, 17, 17, 17, 17, 173, 453, 20, 17, 17, 17, 17, 17, 17, 197, 477, 20, 17, 17, 17, 17, 17, 17, 240, 515, 20, 17, 17, 17, 17, 17, 17, 316, 564, 20, 17, 17, 17, 17, 17, 17, 462, 618, 510, 510, 516, 532, 565, 623, 709, 725, 673, 678, 678, 678, 681, 685, 691, 700, 711, 725, 205, 205, 205, 205, 205, 205, 205, 254, 467, 205, 202, 202, 202, 202, 202, 202, 253, 467, 205, 202, 178, 178, 178, 178, 178, 247, 472, 205, 202, 178, 178, 178, 178, 178, 264, 495, 205, 202, 178, 178, 178, 178, 178, 297, 530, 205, 202, 178, 178, 178, 178, 178, 359, 576, 205, 202, 178, 178, 178, 178, 178, 490, 628, 537, 537, 539, 554, 584, 640, 720, 734, 681, 687, 687, 686, 689, 693, 699, 707, 718, 731, 415, 415, 415, 416, 415, 416, 415, 417, 525, 415, 413, 413, 413, 413, 413, 413, 416, 525, 415, 413, 386, 386, 386, 386, 386, 407, 529, 416, 413, 386, 357, 357, 357, 357, 395, 540, 415, 413, 386, 357, 357, 357, 357, 415, 570, 416, 413, 386, 357, 357, 357, 357, 458, 610, 415, 413, 386, 357, 357, 357, 357, 557, 656, 606, 606, 606, 610, 636, 684, 747, 760, 704, 712, 712, 712, 710, 714, 719, 727, 737, 749, 626, 626, 626, 626, 626, 626, 626, 601, 614, 626, 623, 623, 623, 623, 623, 623, 600, 614, 626, 623, 596, 596, 596, 596, 596, 590, 616, 626, 623, 596, 567, 567, 567, 567, 573, 622, 626, 623, 596, 567, 537, 537, 537, 560, 634, 626, 623, 596, 567, 537, 537, 537, 587, 665, 626, 623, 596, 567, 537, 537, 537, 654, 702, 706, 706, 706, 707, 713, 752, 793, 803, 741, 755, 755, 755, 753, 750, 754, 761, 769, 780, 829, 829, 829, 829, 829, 829, 829, 789, 724, 829, 826, 826, 826, 826, 826, 826, 788, 724, 829, 826, 800, 800, 800, 800, 800, 777, 724, 829, 826, 800, 773, 773, 773, 773, 759, 726, 829, 826, 800, 773, 745, 745, 745, 741, 730, 829, 826, 800, 773, 745, 715, 715, 730, 738, 829, 826, 800, 773, 745, 715, 715, 771, 765, 829, 829, 827, 825, 825, 838, 856, 863, 794, 816, 816, 815, 813, 809, 804, 809, 816, 823, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 973, 848, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 972, 848, 1023, 1023, 997, 997, 997, 997, 997, 961, 846, 1023, 1023, 997, 971, 971, 971, 971, 942, 843, 1023, 1023, 997, 971, 944, 944, 944, 921, 841, 1023, 1023, 997, 971, 944, 916, 916, 902, 840, 1023, 1023, 997, 971, 944, 916, 886, 897, 842, 961, 961, 959, 953, 947, 946, 935, 938, 861, 893, 893, 892, 889, 884, 878, 871, 875, 880, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 977, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 977, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 975, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 969, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 961, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 952, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 945, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 938, 982, 982, 980, 977, 972, 965, 956, 945, 948, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023] + } + }], + "lutAll_len": 1 + } + }, + "af": { + "TuningPara": { + "af_mode": "CalibDbV2_AF_MODE_NOT_SET", + "win_h_offs": 0, + "win_v_offs": 0, + "win_h_size": 0, + "win_v_size": 0, + "fixed_mode": { + "code": 8 + }, + "macro_mode": { + "code": 32 + }, + "infinity_mode": { + "code": 32 + }, + "contrast_af": { + "enable": 1, + "Afss": "CalibDbV2_CAM_AFM_FSS_ADAPTIVE_RANGE", + "FullDir": "CalibDbV2_CAM_AFM_ADAPTIVE_SEARCH", + "FullSteps": 9, + "FullRangeTbl": [0, 8, 16, 24, 32, 40, 48, 56, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "AdaptiveDir": "CalibDbV2_CAM_AFM_ADAPTIVE_SEARCH", + "AdaptiveSteps": 9, + "AdaptRangeTbl": [0, 8, 16, 24, 32, 40, 48, 56, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "TrigThers": 0.075, + "LumaTrigThers": 0, + "StableThers": 0.02, + "StableFrames": 3, + "StableTime": 200, + "SceneDiffEnable": 0, + "SceneDiffThers": 0, + "SceneDiffBlkThers": 0, + "CenterSceneDiffThers": 0, + "ValidMaxMinRatio": 0, + "ValidValueThers": 0, + "OutFocusValue": 50, + "OutFocusPos": 30, + "WeightEnable": 0, + "Weight": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "SearchPauseLumaEnable": 0, + "SearchPauseLumaThers": 0, + "SearchLumaStableFrames": 0, + "SearchLumaStableThers": 0, + "FlatValue": 0 + }, + "laser_af": { + "enable": 0, + "vcmDot": [0, 16, 32, 40, 48, 56, 64], + "distanceDot": [0.2, 0.24, 0.34, 0.4, 0.66, 1, 3] + }, + "pdaf": { + "enable": 0 + }, + "vcmcfg": { + "start_current": -1, + "rated_current": -1, + "step_mode": -1, + "extra_delay": 0 + }, + "measiso_cfg": [{ + "iso": 50, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 100, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 200, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 400, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 800, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 1600, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 3200, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 6400, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 12800, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 25600, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 51200, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 102400, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }, { + "iso": 204800, + "afmThres": 4, + "gammaY": [0, 45, 108, 179, 245, 344, 409, 459, 500, 567, 622, 676, 759, 833, 896, 962, 1023], + "gaussWeight": [32, 16, 8] + }], + "zoomfocus_tbl": { + "tbl_len": 0, + "focal_length": [], + "focal_length_len": 0, + "zoom_pos": [], + "zoom_pos_len": 0, + "focus_infpos": [], + "focus_infpos_len": 0, + "focus_macropos": [], + "focus_macropos_len": 0 + } + } + }, + "thumbnails": { + "param": { + "thumbnail_configs": [{ + "owner_cookies": 0, + "stream_type": 0, + "after_nodes": 0, + "before_node": 0, + "format": "NV12\u0002", + "width_intfactor": 2, + "height_intfactor": 2, + "buffer_count": 0 + }, { + "owner_cookies": 1, + "stream_type": 0, + "after_nodes": 0, + "before_node": 0, + "format": "NV12\u0004", + "width_intfactor": 4, + "height_intfactor": 4, + "buffer_count": 0 + }, { + "owner_cookies": 2, + "stream_type": 0, + "after_nodes": 0, + "before_node": 0, + "format": "NV12\b", + "width_intfactor": 8, + "height_intfactor": 8, + "buffer_count": 0 + }], + "thumbnail_configs_len": 3 + } + }, + "bayernr_v2": { + "Version": "", + "CalibPara": { + "Setting": [{ + "SNR_Mode": "LSNR", + "Sensor_Mode": "lcg", + "Calib_ISO": [{ + "iso": 50, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [440, 385, 336, 292, 226, 191, 187, 202, 220, 235, 241, 238, 224, 203, 176, 155] + }, { + "iso": 100, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [747, 638, 535, 436, 251, 141, 120, 135, 114, 187, 226, 237, 222, 181, 112, 100] + }, { + "iso": 200, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [1233, 1094, 966, 850, 657, 526, 459, 448, 464, 483, 490, 477, 440, 383, 313, 262] + }, { + "iso": 400, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [1076, 1002, 936, 877, 783, 717, 674, 647, 628, 612, 593, 567, 534, 494, 452, 416] + }, { + "iso": 800, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [2708, 2445, 2204, 1986, 1624, 1366, 1209, 1136, 1113, 1104, 1082, 1031, 942, 813, 655, 512] + }, { + "iso": 1600, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 3200, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 6400, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 12800, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 25600, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 51200, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 102400, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 204800, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }], + "Calib_ISO_len": 13 + }, { + "SNR_Mode": "HSNR", + "Sensor_Mode": "hcg", + "Calib_ISO": [{ + "iso": 50, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [329, 292, 258, 227, 176, 141, 124, 121, 127, 133, 137, 135, 127, 113, 94, 75] + }, { + "iso": 100, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [747, 638, 535, 436, 251, 141, 120, 135, 114, 187, 226, 237, 222, 181, 112, 100] + }, { + "iso": 200, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [835, 721, 614, 514, 336, 194, 120, 147, 207, 256, 284, 288, 267, 221, 148, 120] + }, { + "iso": 400, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [789, 703, 625, 553, 435, 354, 311, 301, 308, 318, 321, 312, 288, 249, 198, 147] + }, { + "iso": 800, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [761, 707, 658, 614, 542, 490, 454, 430, 414, 401, 386, 366, 341, 309, 273, 238] + }, { + "iso": 1600, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 3200, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 6400, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 12800, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 25600, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 51200, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 102400, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }, { + "iso": 204800, + "lumapoint": [512, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336], + "sigma": [768, 768, 768, 768, 640, 640, 640, 640, 512, 512, 512, 512, 512, 512, 512, 384] + }], + "Calib_ISO_len": 13 + }], + "Setting_len": 2 + }, + "Bayernr2D": { + "enable": 1, + "Setting": [{ + "SNR_Mode": "LSNR", + "Sensor_Mode": "lcg", + "Tuning_ISO": [{ + "iso": 50, + "gauss_guide": 1, + "filter_strength": 15, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 100, + "gauss_guide": 1, + "filter_strength": 15, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 200, + "gauss_guide": 1, + "filter_strength": 15, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 400, + "gauss_guide": 1, + "filter_strength": 15, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 800, + "gauss_guide": 1, + "filter_strength": 15, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 1600, + "gauss_guide": 1, + "filter_strength": 0.8, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 3200, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 6400, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 12800, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 25600, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 51200, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 102400, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 204800, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }], + "Tuning_ISO_len": 13 + }, { + "SNR_Mode": "HSNR", + "Sensor_Mode": "hcg", + "Tuning_ISO": [{ + "iso": 50, + "gauss_guide": 0, + "filter_strength": 4, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 100, + "gauss_guide": 0, + "filter_strength": 4, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 200, + "gauss_guide": 0, + "filter_strength": 4, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 400, + "gauss_guide": 0, + "filter_strength": 4, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 800, + "gauss_guide": 0, + "filter_strength": 4, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 1600, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 3200, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 6400, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 12800, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 25600, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 51200, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 102400, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }, { + "iso": 204800, + "gauss_guide": 1, + "filter_strength": 0.7, + "edgesofts": 2, + "ratio": 0.01, + "weight": 1 + }], + "Tuning_ISO_len": 13 + }], + "Setting_len": 2 + }, + "Bayernr3D": { + "enable": 0, + "Setting": [{ + "SNR_Mode": "LSNR", + "Sensor_Mode": "lcg", + "Tuning_ISO": [{ + "iso": 50, + "filter_strength": 0.5, + "sp_filter_strength": 0.55, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.88, + "softwgt": 0 + }, { + "iso": 100, + "filter_strength": 0.5, + "sp_filter_strength": 0.55, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.88, + "softwgt": 0 + }, { + "iso": 200, + "filter_strength": 0.5, + "sp_filter_strength": 0.6, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.88, + "softwgt": 0 + }, { + "iso": 400, + "filter_strength": 0.5, + "sp_filter_strength": 0.6, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.88, + "softwgt": 0 + }, { + "iso": 800, + "filter_strength": 0.5, + "sp_filter_strength": 0.65, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.88, + "softwgt": 0 + }, { + "iso": 1600, + "filter_strength": 0.1, + "sp_filter_strength": 0.65, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.9, + "softwgt": 0 + }, { + "iso": 3200, + "filter_strength": 0.1, + "sp_filter_strength": 0.65, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 6400, + "filter_strength": 0.5, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 12800, + "filter_strength": 0.5, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 25600, + "filter_strength": 0.6, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 51200, + "filter_strength": 0.6, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 102400, + "filter_strength": 0.7, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 204800, + "filter_strength": 0.7, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }], + "Tuning_ISO_len": 13 + }, { + "SNR_Mode": "HSNR", + "Sensor_Mode": "hcg", + "Tuning_ISO": [{ + "iso": 50, + "filter_strength": 0.1, + "sp_filter_strength": 0.55, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.9, + "softwgt": 0 + }, { + "iso": 100, + "filter_strength": 0.1, + "sp_filter_strength": 0.55, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.9, + "softwgt": 0 + }, { + "iso": 200, + "filter_strength": 0.1, + "sp_filter_strength": 0.6, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.9, + "softwgt": 0 + }, { + "iso": 400, + "filter_strength": 0.1, + "sp_filter_strength": 0.6, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.9, + "softwgt": 0 + }, { + "iso": 800, + "filter_strength": 0.1, + "sp_filter_strength": 0.65, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.9, + "softwgt": 0 + }, { + "iso": 1600, + "filter_strength": 0.1, + "sp_filter_strength": 0.65, + "lo_clipwgt": 0.9, + "hi_clipwgt": 0.9, + "softwgt": 0 + }, { + "iso": 3200, + "filter_strength": 0.1, + "sp_filter_strength": 0.65, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 6400, + "filter_strength": 0.5, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 12800, + "filter_strength": 0.5, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 25600, + "filter_strength": 0.6, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 51200, + "filter_strength": 0.6, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 102400, + "filter_strength": 0.7, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }, { + "iso": 204800, + "filter_strength": 0.7, + "sp_filter_strength": 0.7, + "lo_clipwgt": 0.5, + "hi_clipwgt": 0.5, + "softwgt": 0 + }], + "Tuning_ISO_len": 13 + }], + "Setting_len": 2 + } + }, + "cnr_v1": { + "Version": "", + "TuningPara": { + "enable": 1, + "Kernel_Coeff": { + "kernel_5x5": [1, 0.8825, 0.7788, 0.6065, 0.3679] + }, + "Setting": [{ + "SNR_Mode": "LSNR", + "Sensor_Mode": "lcg", + "Tuning_ISO": [{ + "iso": 50, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 30, + "color_sat_adj_alpha": 0.4, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 50, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 30, + "thumb_color_sat": 4, + "lf_denoise_strength": 40, + "lf_color_sat": 4, + "lf_denoise_alpha": 0.5 + }, { + "iso": 100, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 30, + "color_sat_adj_alpha": 0.4, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 50, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 30, + "thumb_color_sat": 4, + "lf_denoise_strength": 40, + "lf_color_sat": 4, + "lf_denoise_alpha": 0.5 + }, { + "iso": 200, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 30, + "color_sat_adj_alpha": 0.4, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 50, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 30, + "thumb_color_sat": 4, + "lf_denoise_strength": 40, + "lf_color_sat": 4, + "lf_denoise_alpha": 0.5 + }, { + "iso": 400, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 30, + "color_sat_adj_alpha": 0.4, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 50, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 30, + "thumb_color_sat": 4, + "lf_denoise_strength": 40, + "lf_color_sat": 4, + "lf_denoise_alpha": 0.5 + }, { + "iso": 800, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 30, + "color_sat_adj_alpha": 0.4, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 50, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 30, + "thumb_color_sat": 4, + "lf_denoise_strength": 40, + "lf_color_sat": 4, + "lf_denoise_alpha": 0.5 + }, { + "iso": 1600, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 3200, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 6400, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 12800, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 25600, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 51200, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 102400, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 204800, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }], + "Tuning_ISO_len": 13 + }, { + "SNR_Mode": "HSNR", + "Sensor_Mode": "hcg", + "Tuning_ISO": [{ + "iso": 50, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 100, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 200, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 400, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 800, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 1600, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 3200, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 6400, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 12800, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 25600, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 51200, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 102400, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }, { + "iso": 204800, + "hf_bypass": 0, + "lf_bypass": 0, + "cnr_exgain": 1, + "cnr_g_gain": 1, + "color_sat_adj": 40, + "color_sat_adj_alpha": 0.8, + "hf_spikes_reducion_strength": 0.5, + "hf_denoise_strength": 10.2, + "hf_color_sat": 1.5, + "hf_denoise_alpha": 0, + "hf_bf_wgt_clip": 0, + "thumb_spikes_reducion_strength": 0.2, + "thumb_denoise_strength": 4, + "thumb_color_sat": 4, + "lf_denoise_strength": 4, + "lf_color_sat": 4, + "lf_denoise_alpha": 1 + }], + "Tuning_ISO_len": 13 + }], + "Setting_len": 2 + } + }, + "ynr_v2": { + "Version": "", + "CalibPara": { + "Setting": [{ + "SNR_Mode": "LSNR", + "Sensor_Mode": "lcg", + "Calib_ISO": [{ + "iso": 50, + "sigma_curve": [5.26063e-13, -4.31051e-09, 6.01295e-06, 0.00733553, 30.2968], + "ynr_ci_l": 0.35887, + "ynr_ci_h": 0.218965 + }, { + "iso": 100, + "sigma_curve": [-8.51864e-13, 8.4477e-09, -3.1173e-05, 0.0431732, 20.4729], + "ynr_ci_l": 0.266861, + "ynr_ci_h": 0.176977 + }, { + "iso": 200, + "sigma_curve": [-1.91013e-12, 1.68572e-08, -5.42127e-05, 0.0644649, 50.8293], + "ynr_ci_l": 0.264338, + "ynr_ci_h": 0.176603 + }, { + "iso": 400, + "sigma_curve": [-1.39053e-12, 1.37088e-08, -5.30971e-05, 0.0730568, 77.3162], + "ynr_ci_l": 0.260614, + "ynr_ci_h": 0.169545 + }, { + "iso": 800, + "sigma_curve": [-7.56352e-13, 8.08215e-09, -4.17244e-05, 0.0722224, 122.519], + "ynr_ci_l": 0.292136, + "ynr_ci_h": 0.186536 + }, { + "iso": 1600, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 3200, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 6400, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 12800, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 25600, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 51200, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 102400, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 204800, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }], + "Calib_ISO_len": 13 + }, { + "SNR_Mode": "HSNR", + "Sensor_Mode": "hcg", + "Calib_ISO": [{ + "iso": 50, + "sigma_curve": [-3.79338e-13, 4.20139e-09, -1.65728e-05, 0.0227778, 17.7731], + "ynr_ci_l": 0.264599, + "ynr_ci_h": 0.186359 + }, { + "iso": 100, + "sigma_curve": [-8.51864e-13, 8.4477e-09, -3.1173e-05, 0.0431732, 20.4729], + "ynr_ci_l": 0.266861, + "ynr_ci_h": 0.176977 + }, { + "iso": 200, + "sigma_curve": [-1.01774e-12, 1.07758e-08, -4.22101e-05, 0.0597135, 28.7999], + "ynr_ci_l": 0.259483, + "ynr_ci_h": 0.166846 + }, { + "iso": 400, + "sigma_curve": [-1.32816e-12, 1.29829e-08, -4.53493e-05, 0.0511179, 55.0177], + "ynr_ci_l": 0.254945, + "ynr_ci_h": 0.156095 + }, { + "iso": 800, + "sigma_curve": [-1.76225e-12, 1.64389e-08, -5.4805e-05, 0.0586055, 72.3208], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 1600, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 3200, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 6400, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 12800, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 25600, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 51200, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 102400, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }, { + "iso": 204800, + "sigma_curve": [-7.80229e-13, 6.77367e-09, -2.20431e-05, 0.0298751, 10.9382], + "ynr_ci_l": 0.267207, + "ynr_ci_h": 0.157733 + }], + "Calib_ISO_len": 13 + }], + "Setting_len": 2 + }, + "TuningPara": { + "enable": 1, + "Setting": [{ + "SNR_Mode": "LSNR", + "Sensor_Mode": "lcg", + "Tuning_ISO": [{ + "iso": 50, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 20, + "low_bf_1": 20, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.1, + "low_dist_adj": 8, + "low_weight": 1, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.9, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 20, + "high_weight": 1, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1.05, 1.1, 1.1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.8, 3, 3.5, 4] + }, { + "iso": 100, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 20, + "low_bf_1": 20, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.1, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.9, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 20, + "high_weight": 1, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1.05, 1.1, 1.1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.8, 3, 3.5, 4] + }, { + "iso": 200, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 20, + "low_bf_1": 20, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.1, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.9, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 20, + "high_weight": 1, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1.05, 1.1, 1.1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.8, 3, 3.5, 4] + }, { + "iso": 400, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 20, + "low_bf_1": 20, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.1, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.9, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 20, + "high_weight": 1, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1.05, 1.1, 1.1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.8, 3, 3.5, 4] + }, { + "iso": 800, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 20, + "low_bf_1": 20, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.1, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.9, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 20, + "high_weight": 1, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1.05, 1.1, 1.1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.8, 3, 3.5, 4] + }, { + "iso": 1600, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 5, + "low_bf_1": 5, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.5, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1.05, 1.1, 1.1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.8, 3.5] + }, { + "iso": 3200, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.95, + "low_bf_1": 0.5, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 6400, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 1, + "low_bf_1": 0.5, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 12800, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 1.1, + "low_bf_1": 0.5, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 25600, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 1.1, + "low_bf_1": 0.5, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 51200, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 1.1, + "low_bf_1": 0.5, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 102400, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 1.1, + "low_bf_1": 0.5, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 204800, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 1.1, + "low_bf_1": 0.5, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }], + "Tuning_ISO_len": 13 + }, { + "SNR_Mode": "HSNR", + "Sensor_Mode": "hcg", + "Tuning_ISO": [{ + "iso": 50, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0.5, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 100, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 200, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 400, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 800, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 1600, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 3200, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 6400, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 12800, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 25600, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 51200, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 102400, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }, { + "iso": 204800, + "ynr_bft3x3_bypass": 0, + "ynr_lbft5x5_bypass": 0, + "ynr_lgft3x3_bypass": 0, + "ynr_flt1x1_bypass": 0, + "ynr_sft5x5_bypass": 0, + "low_bf_0": 0.5, + "low_bf_1": 0.6, + "low_thred_adj": 0.25, + "low_peak_supress": 0.5, + "low_edge_adj_thresh": 7, + "low_center_weight": 0.4, + "low_dist_adj": 8, + "low_weight": 0, + "low_filt_strength_0": 0.7, + "low_filt_strength_1": 0.85, + "low_bi_weight": 0.2, + "base_filter_weight_0": 0.28, + "base_filter_weight_1": 0.46, + "base_filter_weight_2": 0.26, + "high_thred_adj": 1, + "high_weight": 0.78, + "hi_min_adj": 0.9, + "hi_edge_thed": 100, + "high_direction_weight": [1, 1, 1, 1, 0.5, 0.5, 0.5, 0.5], + "rnr_strength": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + }], + "Tuning_ISO_len": 13 + }], + "Setting_len": 2 + } + }, + "sharp_v3": { + "Version": "", + "TuningPara": { + "enable": 1, + "Setting": [{ + "SNR_Mode": "LSNR", + "Sensor_Mode": "lcg", + "Tuning_ISO": [{ + "iso": 50, + "pbf_gain": 0.8, + "pbf_ratio": 0.5, + "pbf_add": 1, + "gaus_ratio": 0.5, + "sharp_ratio": 10, + "bf_gain": 2, + "bf_ratio": 5, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [12, 16, 20, 24, 28, 24, 20, 20], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [512, 512, 512, 512, 512, 512, 512, 512] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 100, + "pbf_gain": 0.8, + "pbf_ratio": 0.5, + "pbf_add": 1, + "gaus_ratio": 0.5, + "sharp_ratio": 10, + "bf_gain": 3, + "bf_ratio": 5, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [24, 32, 40, 48, 56, 48, 48, 40], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [512, 512, 512, 512, 512, 512, 512, 512] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 200, + "pbf_gain": 0.8, + "pbf_ratio": 0.5, + "pbf_add": 1, + "gaus_ratio": 0.5, + "sharp_ratio": 10, + "bf_gain": 3, + "bf_ratio": 5, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [24, 32, 40, 48, 56, 48, 48, 40], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [512, 512, 512, 512, 512, 512, 512, 512] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 400, + "pbf_gain": 0.8, + "pbf_ratio": 0.5, + "pbf_add": 1, + "gaus_ratio": 0.5, + "sharp_ratio": 10, + "bf_gain": 4, + "bf_ratio": 5, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [32, 40, 48, 56, 64, 56, 48, 40], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [512, 512, 512, 512, 512, 512, 512, 512] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 800, + "pbf_gain": 0.8, + "pbf_ratio": 0.5, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 10, + "bf_gain": 4, + "bf_ratio": 5, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [40, 48, 56, 64, 80, 64, 56, 48], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [512, 512, 512, 512, 512, 512, 512, 512] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 1600, + "pbf_gain": 0.8, + "pbf_ratio": 0.2, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [256, 256, 256, 256, 256, 256, 256, 256] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 3200, + "pbf_gain": 0.8, + "pbf_ratio": 0.2, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 6400, + "pbf_gain": 0.8, + "pbf_ratio": 0.3, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 12800, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 25600, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 51200, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 102400, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 204800, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 128, 160, 192, 160, 128, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }], + "Tuning_ISO_len": 13 + }, { + "SNR_Mode": "HSNR", + "Sensor_Mode": "hcg", + "Tuning_ISO": [{ + "iso": 50, + "pbf_gain": 0.8, + "pbf_ratio": 0, + "pbf_add": 1, + "gaus_ratio": 0, + "sharp_ratio": 6, + "bf_gain": 2, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [8, 12, 16, 16, 24, 20, 16, 16], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 100, + "pbf_gain": 0.8, + "pbf_ratio": 0, + "pbf_add": 1, + "gaus_ratio": 0, + "sharp_ratio": 6, + "bf_gain": 3, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [12, 16, 20, 24, 28, 24, 20, 20], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 200, + "pbf_gain": 0.8, + "pbf_ratio": 0, + "pbf_add": 1, + "gaus_ratio": 0, + "sharp_ratio": 6, + "bf_gain": 3, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [24, 32, 40, 48, 56, 48, 48, 40], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [512, 512, 512, 512, 512, 512, 512, 512] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 400, + "pbf_gain": 0.8, + "pbf_ratio": 0, + "pbf_add": 1, + "gaus_ratio": 0, + "sharp_ratio": 7, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [32, 40, 48, 56, 64, 56, 48, 40], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [512, 512, 512, 512, 512, 512, 512, 512] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 800, + "pbf_gain": 0.8, + "pbf_ratio": 0.2, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 7, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [40, 48, 56, 64, 80, 64, 56, 48], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [512, 512, 512, 512, 512, 512, 512, 512] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 1600, + "pbf_gain": 0.8, + "pbf_ratio": 0.2, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [256, 256, 256, 256, 256, 256, 256, 256] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 3200, + "pbf_gain": 0.8, + "pbf_ratio": 0.2, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 6400, + "pbf_gain": 0.8, + "pbf_ratio": 0.3, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 12800, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 25600, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 51200, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 102400, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }, { + "iso": 204800, + "pbf_gain": 0.8, + "pbf_ratio": 0.4, + "pbf_add": 1, + "gaus_ratio": 1, + "sharp_ratio": 8, + "bf_gain": 4, + "bf_ratio": 1, + "bf_add": 32, + "luma_para": { + "luma_point": [0, 64, 128, 256, 384, 640, 896, 1024], + "luma_sigma": [48, 56, 64, 80, 96, 80, 64, 56], + "hf_clip": [64, 96, 12, 16, 19, 16, 12, 0], + "local_sharp_strength": [128, 128, 128, 128, 128, 128, 128, 128] + }, + "kernel_para": { + "prefilter_coeff": [0.2042, 0.1238, 0.0751], + "GaussianFilter_coeff": [0.2042, 0.1238, 0.0751], + "hfBilateralFilter_coeff": [0.2042, 0.1238, 0.0751] + } + }], + "Tuning_ISO_len": 13 + }], + "Setting_len": 2 + } + } + } + }], + "sub_scene_len": 1 + }], + "main_scene_len": 1, + "uapi": [], + "uapi_len": 0, + "sys_static_cfg": { + "algoSwitch": { + "enable": 0, + "enable_algos": [], + "enable_algos_len": 0 + } + } +} \ No newline at end of file diff --git a/hardware/isp/lib/librkaiq.z.so b/hardware/isp/lib/librkaiq.z.so new file mode 100644 index 0000000000000000000000000000000000000000..162b5ab7879d297faf6d8985910d11c9a6b74aa3 Binary files /dev/null and b/hardware/isp/lib/librkaiq.z.so differ diff --git a/hardware/mpp/BUILD.gn b/hardware/mpp/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..3a6e68bb203a04b6b8b4e949a6e3ea222154f8a6 --- /dev/null +++ b/hardware/mpp/BUILD.gn @@ -0,0 +1,31 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") +import("//build/ohos/ndk/ndk.gni") + +ohos_prebuilt_shared_library("libmpp") { + if (target_cpu == "arm") { + source = "lib/librockchip_mpp.so" + } else { + source = "lib64/librockchip_mpp.so" + } + part_name = "rockchip_products" + install_enable = true +} + +group("mpp") { + deps = [ + ":libmpp", + ] +} diff --git a/hardware/mpp/lib/librockchip_mpp.so b/hardware/mpp/lib/librockchip_mpp.so new file mode 100644 index 0000000000000000000000000000000000000000..37528a83aa5366dcae64c344868b92e0fb53b0ac Binary files /dev/null and b/hardware/mpp/lib/librockchip_mpp.so differ diff --git a/hardware/mpp/lib64/librockchip_mpp.so b/hardware/mpp/lib64/librockchip_mpp.so new file mode 100644 index 0000000000000000000000000000000000000000..97ba171d4c725c36ce692077e8c93645ab3f592e Binary files /dev/null and b/hardware/mpp/lib64/librockchip_mpp.so differ diff --git a/hardware/rga/BUILD.gn b/hardware/rga/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..904625460aa5928fb04e3ecc980b646994fb6939 --- /dev/null +++ b/hardware/rga/BUILD.gn @@ -0,0 +1,24 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") +import("//build/ohos/ndk/ndk.gni") + +ohos_prebuilt_shared_library("librga") { + if (target_cpu == "arm") { + source = "lib/librga.z.so" + } + subsystem_name = "hdf" + part_name = "hdf" + install_enable = true +} diff --git a/hardware/rga/lib/librga.z.so b/hardware/rga/lib/librga.z.so new file mode 100755 index 0000000000000000000000000000000000000000..105dea363c24d100a0b45e00e782a5d0a6235675 Binary files /dev/null and b/hardware/rga/lib/librga.z.so differ diff --git a/hardware/rga/lib64/librga.z.so b/hardware/rga/lib64/librga.z.so new file mode 100755 index 0000000000000000000000000000000000000000..aabdcca575804349c72e6ccb0b6b85fb52ca8825 Binary files /dev/null and b/hardware/rga/lib64/librga.z.so differ diff --git a/hardware/wifi/BUILD.gn b/hardware/wifi/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..733e5124f6a08920e3e40f77380c5bbab44719d9 --- /dev/null +++ b/hardware/wifi/BUILD.gn @@ -0,0 +1,57 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") + +AP6XXX_ETC_DIR = "//device/rockchip/hardware/wifi/ap6xxx" + +ohos_prebuilt_etc("clm_bcm43752a2_ag.blob") { + source = "$AP6XXX_ETC_DIR/clm_bcm43752a2_ag.blob" + install_images = [ "vendor" ] + relative_install_dir = "firmware" + part_name = "rockchip_products" + install_enable = true +} + +ohos_prebuilt_etc("fw_bcm43752a2_ag_apsta.bin") { + source = "$AP6XXX_ETC_DIR/fw_bcm43752a2_ag_apsta.bin" + install_images = [ "vendor" ] + relative_install_dir = "firmware" + part_name = "rockchip_products" + install_enable = true +} + +ohos_prebuilt_etc("fw_bcm43752a2_ag.bin") { + source = "$AP6XXX_ETC_DIR/fw_bcm43752a2_ag.bin" + install_images = [ "vendor" ] + relative_install_dir = "firmware" + part_name = "rockchip_products" + install_enable = true +} + +ohos_prebuilt_etc("nvram_ap6275s.txt") { + source = "$AP6XXX_ETC_DIR/nvram_ap6275s.txt" + install_images = [ "vendor" ] + relative_install_dir = "firmware" + part_name = "rockchip_products" + install_enable = true +} + +group("ap6xxx") { + deps = [ + ":clm_bcm43752a2_ag.blob", + ":fw_bcm43752a2_ag_apsta.bin", + ":fw_bcm43752a2_ag.bin", + ":nvram_ap6275s.txt", + ] +} diff --git a/hardware/wifi/ap6xxx/clm_bcm43752a2_ag.blob b/hardware/wifi/ap6xxx/clm_bcm43752a2_ag.blob new file mode 100644 index 0000000000000000000000000000000000000000..9fabd6346c5231ac9e2e76827d018defb9b37a3e Binary files /dev/null and b/hardware/wifi/ap6xxx/clm_bcm43752a2_ag.blob differ diff --git a/hardware/wifi/ap6xxx/fw_bcm43752a2_ag.bin b/hardware/wifi/ap6xxx/fw_bcm43752a2_ag.bin new file mode 100644 index 0000000000000000000000000000000000000000..41fb330a5a93f6a842c53d55e220e895d7301811 Binary files /dev/null and b/hardware/wifi/ap6xxx/fw_bcm43752a2_ag.bin differ diff --git a/hardware/wifi/ap6xxx/fw_bcm43752a2_ag_apsta.bin b/hardware/wifi/ap6xxx/fw_bcm43752a2_ag_apsta.bin new file mode 100644 index 0000000000000000000000000000000000000000..41fb330a5a93f6a842c53d55e220e895d7301811 Binary files /dev/null and b/hardware/wifi/ap6xxx/fw_bcm43752a2_ag_apsta.bin differ diff --git a/hardware/wifi/ap6xxx/nvram_ap6275s.txt b/hardware/wifi/ap6xxx/nvram_ap6275s.txt new file mode 100644 index 0000000000000000000000000000000000000000..757b436bda59f2f2f797d16d0079d8a2df6be3d4 --- /dev/null +++ b/hardware/wifi/ap6xxx/nvram_ap6275s.txt @@ -0,0 +1,356 @@ +# AP6275S_NVRAM_V1.4_20201116 +# AP6275S v00 WLBGA reference board, iPA version. + +# SSID generated using Alberto's boardssid.py script: +# ********************SUMMARY******************** +# Board Name: AP6275S_V00 +#SSID: 0x086d +#macmid: 0x02df +# Successfully made SSID entry in sromdefs.tcl. +# Successfully made macmid entry in sromdefs.tcl. +# Successfully made SSID entry in tblssid.py. +# ************************************************* +# $ Copyright Broadcom $ +# +# +# <> +NVRAMRev=$Rev: 844050 $ +sromrev=11 +boardrev=0x1213 +boardtype=0x08ed +boardflags=0x00400201 +boardflags2=0xc0800000 +boardflags3=0x40002180 +#boardnum=57410 +macaddr=00:90:4c:12:d0:01 +jtag_irw=38 + +#Regulatory specific +ccode=0 +regrev=0 + +# Board specific +vendid=0x14e4 +devid=0x449d +manfid=0x2d0 +antswitch=0 +pdgain5g=0 +pdgain2g=0 +aa2g=3 +aa5g=3 +agbg0=2 +agbg1=2 +aga0=2 +aga1=2 +extpagain2g=2 +extpagain5g=2 +rxgains2gelnagaina0=0 +rxgains2gtrisoa0=0 +rxgains2gtrelnabypa0=0 +rxgains5gelnagaina0=0 +rxgains5gtrisoa0=0 +rxgains5gtrelnabypa0=0 +rxgains5gmelnagaina0=0 +rxgains5gmtrisoa0=0 +rxgains5gmtrelnabypa0=0 +rxgains5ghelnagaina0=0 +rxgains5ghtrisoa0=0 +rxgains5ghtrelnabypa0=0 +rxgains2gelnagaina1=0 +rxgains2gtrisoa1=0 +rxgains2gtrelnabypa1=0 +rxgains5gelnagaina1=0 +rxgains5gtrisoa1=0 +rxgains5gtrelnabypa1=0 +rxgains5gmelnagaina1=0 +rxgains5gmtrisoa1=0 +rxgains5gmtrelnabypa1=0 +rxgains5ghelnagaina1=0 +rxgains5ghtrisoa1=0 +rxgains5ghtrelnabypa1=0 + +#RSSI related +# 2G +rssicorrnorm_c0=4,4 +rssicorrnorm_c1=4,4 +# 5G +rssicorrnorm5g_c0=5,5,5,5,5,5,5,5,5,5,5,5 +rssicorrnorm5g_c1=4,4,4,4,4,4,4,4,4,4,4,4 + + +#Two range TSSI +tworangetssi2g=0 +tworangetssi5g=0 +lowpowerrange2g=0 +lowpowerrange5g=0 +low_adc_rate_en=1 +# NOTE :================================================================================ +# To run TPC with Two Range TSSI ,set tworangetssi2g = 1 and lowpowerrange2g = 0 +# To run TPC with Single Range TSSI, set tworangetssi2g = 0 +# To run TPC please READ instructions near pa2ga0 and pa2ga1 as well +# To generate PA params for Low Range set tworangetssi2g = 0 and lowpowerrange2g to 1 +# To generate PA params for High Range set tworangetssi2g = 1 and lowpowerrange2g to 1 +# ====================================================================================== + +#Related to FW Download. Host may use this +nocrc=1 + +otpimagesize=502 + +xtalfreq=37400 + +txchain=3 +rxchain=3 + +cckdigfilttype=2 + +#bit mask for slice capability bit 0:2G bit 1:5G +bandcap=3 + +#TXBF Related +rpcal2g=0 +rpcal5gb0=0 +rpcal5gb1=0 +rpcal5gb2=0 +rpcal5gb3=0 + + +#FDSS Related +fdss_level_2g=4,4 +fdss_interp_en=1 +fdss_level_5g=4,4 +fdss_level_11ax_2g=3,3 +fdss_level_11ax_2g_ch1=3,3 +fdss_level_11ax_2g_ch11=3,3 +fdss_level_11ax_5g=3,3 + +#Tempsense Related +tempthresh=110 +tempoffset=40 +rawtempsense=0x1ff +phycal_tempdelta=15 +temps_period=15 +temps_hysteresis=15 + +#------------- TSSI Related ------------- + +tssipos2g=1 +tssipos5g=1 +AvVmid_c0=2,127,4,92,4,91,4,91,4,94 +AvVmid_c1=2,127,4,93,4,93,4,95,3,110 +# CCK in case of multi mode 2 +pa2gccka0=-71,9683,-1064 +pa2gccka1=-59,9596,-1046 +# OFDM in case of multi_mode 2 +pa2ga0=-131,6980,-771 +pa2ga1=-119,7130,-776 +pa5ga0=-150,6098,-730,-141,6312,-729,-127,6151,-723,-136,5935,-702 +#pa5ga0=-150,6098,-730,-141,6312,-729,-136,6050,-713,-179,5504,-688 +#pa5ga1=-143,5954,-705,-136,6243,-722,-100,6496,-727,-89,7190,-798 +pa5ga1=-148,6016,-719,-136,6243,-722,-123,6019,-711,-89,7190,-798 + +# Max power and offsets +maxp2ga0=86 +maxp2ga1=91 +maxp5ga0=75,76,68,68 +maxp5ga1=73,76,70,76 +subband5gver=0x4 +paparambwver=3 +cckpwroffset0=-5 +cckpwroffset1=-3 +pdoffset40ma0=0x4433 +pdoffset80ma0=0x3232 +pdoffset40ma1=0x2333 +pdoffset80ma1=0x1222 +cckbw202gpo=0x1111 +cckbw20ul2gpo=0x0000 +mcsbw202gpo=0x65544332 +mcsbw402gpo=0xEC444332 +dot11agofdmhrbw202gpo=0x4433 +ofdmlrbw202gpo=0x0022 +mcsbw205glpo=0x87544441 +mcsbw405glpo=0xB6443332 +mcsbw805glpo=0xCC553332 +mcsbw1605glpo=0 +mcsbw205gmpo=0x98544440 +mcsbw405gmpo=0xB6443332 +mcsbw805gmpo=0xBB553332 +mcsbw1605gmpo=0 +mcsbw205ghpo=0x98422230 +mcsbw405ghpo=0xB7554442 +mcsbw805ghpo=0xCC442221 +powoffs2gtna0=-3,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,0 +powoffs2gtna1=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0 +mcs1024qam2gpo=0xCCAA +mcs1024qam5glpo=0xFFFFCB +mcs1024qam5gmpo=0xFFEECB +mcs1024qam5ghpo=0xFFFFED +mcs1024qam5gx1po=0xEECCCC +mcs1024qam5gx2po=0xEECCCC +mcs8poexp=0 +mcs9poexp=0 +mcs10poexp=0 + +# 5G power offset per channel for band edge channel +powoffs5g20mtna0=0,0,0,0,0,0,0 +powoffs5g20mtna1=0,0,0,0,0,0,0 +powoffs5g40mtna0=0,0,0,0,0 +powoffs5g40mtna1=0,0,0,0,0 +powoffs5g80mtna0=0,0,0,0,0 +powoffs5g80mtna1=0,0,0,0,0 +mcs11poexp=0 + +#LTE Coex Related +ltecxmux=0 +ltecxpadnum=0x0504 +ltecxfnsel=0x44 +ltecxgcigpio=0x04 +#OOB params +#device_wake_opt=1 +host_wake_opt=0 + +# SWCTRL Related + +swctrlmap_2g=0x10101010,0x06030401,0x04011010,0x000000,0x3FF +swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +swctrlmap_5g=0x80408040,0x21240120,0x01208040,0x000000,0x3FF +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000 +clb2gslice0core0=0x01b +clb2gslice1core0=0x000 +clb5gslice0core0=0x064 +clb5gslice1core0=0x000 +clb2gslice0core1=0x056 +clb2gslice1core1=0x000 +clb5gslice0core1=0x0a1 +clb5gslice1core1=0x000 +btc_prisel_ant_mask=0x2 +clb_swctrl_smask_ant0=0x27f +clb_swctrl_smask_ant1=0x2f7 + + +#BT Coex 1:TDM +btc_mode=1 + +# --- PAPD Cal related params ---- +txwbpapden=0 # 0:NBPAPD 1:WBPAPD +# NB PAPD Cal params +nb_eps_offset=470,470 +nb_bbmult=66,66 +nb_papdcalidx=6,6 +nb_txattn=2,2 +nb_rxattn=1,1 +nb_eps_stopidx=63 +epsilonoff_5g20_c0=0,1,1,-1 +epsilonoff_5g40_c0=0,1,1,1 +epsilonoff_5g80_c0=1,0,1,1 +epsilonoff_5g20_c1=1,0,0,-1 +epsilonoff_5g40_c1=0,0,0,0 +epsilonoff_5g80_c1=1,0,1,1 +epsilonoff_2g20_c0=0 +epsilonoff_2g20_c1=0 + +# energy detect threshold +ed_thresh2g=-67 +ed_thresh5g=-67 +# energy detect threshold for EU +eu_edthresh2g=-67 +eu_edthresh5g=-67 + +#rpcal coef for imptxbf +rpcal5gb0=238 +rpcal5gb1=228 +rpcal5gb2=222 +rpcal5gb3=229 +rpcal2g=15 +ocl=0 +bt_coex_chdep_div=1 + +# OLPC Related +disable_olpc=0 +olpc_thresh5g=32 +olpc_anchor5g=40 +olpc_thresh2g=32 +olpc_anchor2g=40 + +#PAPR related +paprdis=0 +paprrmcsgamma2g=500,550,550,-1,-1,-1,-1,-1,-1,-1,-1,-1 +paprrmcsgain2g=128,128,128,0,0,0,0,0,0,0,0,0 +paprrmcsgamma2g_ch13=500,550,550,-1,-1,-1,-1,-1,-1,-1,-1,-1 +paprrmcsgain2g_ch13=128,128,128,0,0,0,0,0,0,0,0,0 +paprrmcsgamma2g_ch1=500,550,550,-1,-1,-1,-1,-1,-1,-1,-1,-1 +paprrmcsgain2g_ch1=128,128,128,0,0,0,0,0,0,0,0,0 +paprrmcsgamma5g20=500,500,500,-1,-1,-1,-1,-1,-1,-1,-1,-1 +paprrmcsgain5g20=128,128,128,0,0,0,0,0,0,0,0,0 +paprrmcsgamma5g40=600,600,600,-1,-1,-1,-1,-1,-1,-1,-1,-1 +paprrmcsgain5g40=128,128,128,0,0,0,0,0,0,0,0,0 +paprrmcsgamma5g80=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 +paprrmcsgain5g80=0,0,0,0,0,0,0,0,0,0,0,0 + +# Enable papd for cck when target pwr ge 16dBm +cckpapd_pwrthresh=64 + +## ULOFDMA Board limit PPRs for 2G20 ## +ruppr2g20bpska0=0x8421 +ruppr2g20bpska1=0x8421 +ruppr2g20qpska0=0x8421 +ruppr2g20qpska1=0x8421 +ruppr2g20qam16a0=0x10842 +ruppr2g20qam16a1=0x10842 +ruppr2g20qam64a0=0x18C63 +ruppr2g20qam64a1=0x18C63 +ruppr2g20qam256a0=0x318C6 +ruppr2g20qam256a1=0x318C6 +ruppr2g20qam1024a0=0x5AD6B +ruppr2g20qam1024a1=0x5AD6B +## ULOFDMA Board limit PPRs for 5G20 ## +ruppr5g20bpska0=0x30421 +ruppr5g20bpska1=0x30421 +ruppr5g20qpska0=0x30421 +ruppr5g20qpska1=0x30421 +ruppr5g20qam16a0=0x30842 +ruppr5g20qam16a1=0x30842 +ruppr5g20qam64a0=0x314A5 +ruppr5g20qam64a1=0x314A5 +ruppr5g20qam256a0=0x4A529 +ruppr5g20qam256a1=0x4A529 +ruppr5g20qam1024a0=0x7294A +ruppr5g20qam1024a1=0x7294A +## ULOFDMA Board limit PPRs for 5G40 ## +ruppr5g40bpska0=0x508421 +ruppr5g40bpska1=0x508421 +ruppr5g40qpska0=0x508421 +ruppr5g40qpska1=0x508421 +ruppr5g40qam16a0=0x508421 +ruppr5g40qam16a1=0x508421 +ruppr5g40qam64a0=0x518C63 +ruppr5g40qam64a1=0x518C63 +ruppr5g40qam256a0=0xA42108 +ruppr5g40qam256a1=0xA42108 +ruppr5g40qam1024a0=0xE68421 +ruppr5g40qam1024a1=0xE68421 +## ULOFDMA Board limit PPRs for 5G80 ## +ruppr5g80bpska0=0xC108421 +ruppr5g80bpska1=0xC108421 +ruppr5g80qpska0=0xC108421 +ruppr5g80qpska1=0xC108421 +ruppr5g80qam16a0=0xC108421 +ruppr5g80qam16a1=0xC108421 +ruppr5g80qam64a0=0x14418C63 +ruppr5g80qam64a1=0x14418C63 +ruppr5g80qam256a0=0x2C94A529 +ruppr5g80qam256a1=0x2C94A529 +ruppr5g80qam1024a0=0x3CD60000 +ruppr5g80qam1024a1=0x3CD60000 + +muxenab=0x10 + +# ########### BTC Dynctl profile params ############ +# flags:bit0 - dynctl enabled, bit1 dynamic desense, bit2 dynamic mode, bit 3 TX power control +#btcdyn_flags=1 + +#btcdyn_default_btc_mode=5 +#btcdyn_msw_rows=0 +#btcdyn_dsns_rows=0 +#btc_params1007=100 +#btc_params1017=4 \ No newline at end of file diff --git a/hardware/wifi/libnl/include/libnl3/netlink/addr.h b/hardware/wifi/libnl/include/libnl3/netlink/addr.h new file mode 100644 index 0000000000000000000000000000000000000000..db3e4c200c1415bbc7a98aa9070f19c904743564 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/addr.h @@ -0,0 +1,66 @@ +/* + * netlink/addr.h Abstract Address + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2013 Thomas Graf + */ + +#ifndef NETLINK_ADDR_H_ +#define NETLINK_ADDR_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_addr; + +/* Creation */ +extern struct nl_addr * nl_addr_alloc(size_t); +extern struct nl_addr * nl_addr_alloc_attr(struct nlattr *, int); +extern struct nl_addr * nl_addr_build(int, void *, size_t); +extern int nl_addr_parse(const char *, int, struct nl_addr **); +extern struct nl_addr * nl_addr_clone(struct nl_addr *); + +/* Usage Management */ +extern struct nl_addr * nl_addr_get(struct nl_addr *); +extern void nl_addr_put(struct nl_addr *); +extern int nl_addr_shared(struct nl_addr *); + +extern int nl_addr_cmp(struct nl_addr *, struct nl_addr *); +extern int nl_addr_cmp_prefix(struct nl_addr *, struct nl_addr *); +extern int nl_addr_iszero(struct nl_addr *); +extern int nl_addr_valid(char *, int); +extern int nl_addr_guess_family(struct nl_addr *); +extern int nl_addr_fill_sockaddr(struct nl_addr *, + struct sockaddr *, socklen_t *); +extern int nl_addr_info(struct nl_addr *, struct addrinfo **); +extern int nl_addr_resolve(struct nl_addr *, char *, size_t); + +/* Access Functions */ +extern void nl_addr_set_family(struct nl_addr *, int); +extern int nl_addr_get_family(struct nl_addr *); +extern int nl_addr_set_binary_addr(struct nl_addr *, void *, + size_t); +extern void * nl_addr_get_binary_addr(struct nl_addr *); +extern unsigned int nl_addr_get_len(struct nl_addr *); +extern void nl_addr_set_prefixlen(struct nl_addr *, int); +extern unsigned int nl_addr_get_prefixlen(struct nl_addr *); + +/* Address Family Translations */ +extern char * nl_af2str(int, char *, size_t); +extern int nl_str2af(const char *); + +/* Translations to Strings */ +extern char * nl_addr2str(struct nl_addr *, char *, size_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/attr.h b/hardware/wifi/libnl/include/libnl3/netlink/attr.h new file mode 100644 index 0000000000000000000000000000000000000000..82e4c3835aebaf95ca447d1f4ac589753202b14d --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/attr.h @@ -0,0 +1,285 @@ +/* + * netlink/attr.h Netlink Attributes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2013 Thomas Graf + */ + +#ifndef NETLINK_ATTR_H_ +#define NETLINK_ATTR_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_msg; + +/** + * @name Basic Attribute Data Types + * @{ + */ + +/** + * @ingroup attr + * Basic attribute data types + * + * See section @core_doc{core_attr_parse,Attribute Parsing} for more details. + */ +enum { + NLA_UNSPEC, /**< Unspecified type, binary data chunk */ + NLA_U8, /**< 8 bit integer */ + NLA_U16, /**< 16 bit integer */ + NLA_U32, /**< 32 bit integer */ + NLA_U64, /**< 64 bit integer */ + NLA_STRING, /**< NUL terminated character string */ + NLA_FLAG, /**< Flag */ + NLA_MSECS, /**< Micro seconds (64bit) */ + NLA_NESTED, /**< Nested attributes */ + __NLA_TYPE_MAX, +}; + +#define NLA_TYPE_MAX (__NLA_TYPE_MAX - 1) + +/** @} */ + +/** + * @ingroup attr + * Attribute validation policy. + * + * See section @core_doc{core_attr_parse,Attribute Parsing} for more details. + */ +struct nla_policy { + /** Type of attribute or NLA_UNSPEC */ + uint16_t type; + + /** Minimal length of payload required */ + uint16_t minlen; + + /** Maximal length of payload allowed */ + uint16_t maxlen; +}; + +/* Size calculations */ +extern int nla_attr_size(int payload); +extern int nla_total_size(int payload); +extern int nla_padlen(int payload); + +/* Attribute parsing */ +extern int nla_type(const struct nlattr *); +extern void * nla_data(const struct nlattr *); +extern int nla_len(const struct nlattr *); +extern int nla_ok(const struct nlattr *, int); +extern struct nlattr * nla_next(const struct nlattr *, int *); +extern int nla_parse(struct nlattr **, int, struct nlattr *, + int, struct nla_policy *); +extern int nla_validate(struct nlattr *, int, int, + struct nla_policy *); +extern struct nlattr * nla_find(struct nlattr *, int, int); + +/* Helper Functions */ +extern int nla_memcpy(void *, struct nlattr *, int); +extern size_t nla_strlcpy(char *, const struct nlattr *, size_t); +extern int nla_memcmp(const struct nlattr *, const void *, size_t); +extern int nla_strcmp(const struct nlattr *, const char *); + +/* Unspecific attribute */ +extern struct nlattr * nla_reserve(struct nl_msg *, int, int); +extern int nla_put(struct nl_msg *, int, int, const void *); +extern int nla_put_data(struct nl_msg *, int, struct nl_data *); +extern int nla_put_addr(struct nl_msg *, int, struct nl_addr *); + +/* Integer attribute */ +extern uint8_t nla_get_u8(struct nlattr *); +extern int nla_put_u8(struct nl_msg *, int, uint8_t); +extern uint16_t nla_get_u16(struct nlattr *); +extern int nla_put_u16(struct nl_msg *, int, uint16_t); +extern uint32_t nla_get_u32(struct nlattr *); +extern int nla_put_u32(struct nl_msg *, int, uint32_t); +extern uint64_t nla_get_u64(struct nlattr *); +extern int nla_put_u64(struct nl_msg *, int, uint64_t); + +/* String attribute */ +extern char * nla_get_string(struct nlattr *); +extern char * nla_strdup(struct nlattr *); +extern int nla_put_string(struct nl_msg *, int, const char *); + +/* Flag attribute */ +extern int nla_get_flag(struct nlattr *); +extern int nla_put_flag(struct nl_msg *, int); + +/* Msec attribute */ +extern unsigned long nla_get_msecs(struct nlattr *); +extern int nla_put_msecs(struct nl_msg *, int, unsigned long); + +/* Attribute nesting */ +extern int nla_put_nested(struct nl_msg *, int, struct nl_msg *); +extern struct nlattr * nla_nest_start(struct nl_msg *, int); +extern int nla_nest_end(struct nl_msg *, struct nlattr *); +extern void nla_nest_cancel(struct nl_msg *, struct nlattr *); +extern int nla_parse_nested(struct nlattr **, int, struct nlattr *, + struct nla_policy *); +extern int nla_is_nested(struct nlattr *); + +/** + * @name Attribute Construction (Exception Based) + * @{ + */ + +/** + * @ingroup attr + * Add unspecific attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg attrlen Length of attribute payload. + * @arg data Head of attribute payload. + */ +#define NLA_PUT(msg, attrtype, attrlen, data) \ + do { \ + if (nla_put(msg, attrtype, attrlen, data) < 0) \ + goto nla_put_failure; \ + } while(0) + +/** + * @ingroup attr + * Add atomic type attribute to netlink message. + * @arg msg Netlink message. + * @arg type Atomic type. + * @arg attrtype Attribute type. + * @arg value Head of attribute payload. + */ +#define NLA_PUT_TYPE(msg, type, attrtype, value) \ + do { \ + type __tmp = value; \ + NLA_PUT(msg, attrtype, sizeof(type), &__tmp); \ + } while(0) + +/** + * Add 8 bit integer attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg value Numeric value. + */ +#define NLA_PUT_U8(msg, attrtype, value) \ + NLA_PUT_TYPE(msg, uint8_t, attrtype, value) + +/** + * Add 16 bit integer attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg value Numeric value. + */ +#define NLA_PUT_U16(msg, attrtype, value) \ + NLA_PUT_TYPE(msg, uint16_t, attrtype, value) + +/** + * Add 32 bit integer attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg value Numeric value. + */ +#define NLA_PUT_U32(msg, attrtype, value) \ + NLA_PUT_TYPE(msg, uint32_t, attrtype, value) + +/** + * Add 64 bit integer attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg value Numeric value. + */ +#define NLA_PUT_U64(msg, attrtype, value) \ + NLA_PUT_TYPE(msg, uint64_t, attrtype, value) + +/** + * Add string attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg value NUL terminated character string. + */ +#define NLA_PUT_STRING(msg, attrtype, value) \ + NLA_PUT(msg, attrtype, (int) strlen(value) + 1, value) + +/** + * Add flag attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + */ +#define NLA_PUT_FLAG(msg, attrtype) \ + NLA_PUT(msg, attrtype, 0, NULL) + +/** + * Add msecs attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg msecs Numeric value in micro seconds. + */ +#define NLA_PUT_MSECS(msg, attrtype, msecs) \ + NLA_PUT_U64(msg, attrtype, msecs) + +/** + * Add address attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg addr Abstract address object. + */ +#define NLA_PUT_ADDR(msg, attrtype, addr) \ + NLA_PUT(msg, attrtype, nl_addr_get_len(addr), \ + nl_addr_get_binary_addr(addr)) + +/** + * Add abstract data attribute to netlink message. + * @arg msg Netlink message. + * @arg attrtype Attribute type. + * @arg data Abstract data object. + */ +#define NLA_PUT_DATA(msg, attrtype, data) \ + NLA_PUT(msg, attrtype, nl_data_get_size(data), \ + nl_data_get(data)) + +/** @} */ + +/** + * @name Iterators + * @{ + */ + +/** + * @ingroup attr + * Iterate over a stream of attributes + * @arg pos loop counter, set to current attribute + * @arg head head of attribute stream + * @arg len length of attribute stream + * @arg rem initialized to len, holds bytes currently remaining in stream + */ +#define nla_for_each_attr(pos, head, len, rem) \ + for (pos = head, rem = len; \ + nla_ok(pos, rem); \ + pos = nla_next(pos, &(rem))) + +/** + * @ingroup attr + * Iterate over a stream of nested attributes + * @arg pos loop counter, set to current attribute + * @arg nla attribute containing the nested attributes + * @arg rem initialized to len, holds bytes currently remaining in stream + */ +#define nla_for_each_nested(pos, nla, rem) \ + for (pos = nla_data(nla), rem = nla_len(nla); \ + nla_ok(pos, rem); \ + pos = nla_next(pos, &(rem))) + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cache-api.h b/hardware/wifi/libnl/include/libnl3/netlink/cache-api.h new file mode 100644 index 0000000000000000000000000000000000000000..e43c7ca0177f8094eaac18849d924f74672d64c4 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cache-api.h @@ -0,0 +1,20 @@ +/* + * netlink/cache-api.h Caching API + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Thomas Graf + */ + +#ifndef NETLINK_DUMMY_CACHE_API_H_ +#define NETLINK_DUMMY_CACHE_API_H_ + +#include +#include + +#warning "You are including a deprecated header file, include ." + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cache.h b/hardware/wifi/libnl/include/libnl3/netlink/cache.h new file mode 100644 index 0000000000000000000000000000000000000000..e21aa1c6b36cf91ff60526843d38f2802d523a35 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cache.h @@ -0,0 +1,170 @@ +/* + * netlink/cache.h Caching Module + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_CACHE_H_ +#define NETLINK_CACHE_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + NL_ACT_UNSPEC, + NL_ACT_NEW, + NL_ACT_DEL, + NL_ACT_GET, + NL_ACT_SET, + NL_ACT_CHANGE, + __NL_ACT_MAX, +}; + +#define NL_ACT_MAX (__NL_ACT_MAX - 1) + +struct nl_cache; +typedef void (*change_func_t)(struct nl_cache *, struct nl_object *, int, void *); + +/** + * @ingroup cache + * Explicitely iterate over all address families when updating the cache + */ +#define NL_CACHE_AF_ITER 0x0001 + +/* Access Functions */ +extern int nl_cache_nitems(struct nl_cache *); +extern int nl_cache_nitems_filter(struct nl_cache *, + struct nl_object *); +extern struct nl_cache_ops * nl_cache_get_ops(struct nl_cache *); +extern struct nl_object * nl_cache_get_first(struct nl_cache *); +extern struct nl_object * nl_cache_get_last(struct nl_cache *); +extern struct nl_object * nl_cache_get_next(struct nl_object *); +extern struct nl_object * nl_cache_get_prev(struct nl_object *); + +extern struct nl_cache * nl_cache_alloc(struct nl_cache_ops *); +extern int nl_cache_alloc_and_fill(struct nl_cache_ops *, + struct nl_sock *, + struct nl_cache **); +extern int nl_cache_alloc_name(const char *, + struct nl_cache **); +extern struct nl_cache * nl_cache_subset(struct nl_cache *, + struct nl_object *); +extern struct nl_cache * nl_cache_clone(struct nl_cache *); +extern void nl_cache_clear(struct nl_cache *); +extern void nl_cache_get(struct nl_cache *); +extern void nl_cache_free(struct nl_cache *); +extern void nl_cache_put(struct nl_cache *cache); + +/* Cache modification */ +extern int nl_cache_add(struct nl_cache *, + struct nl_object *); +extern int nl_cache_parse_and_add(struct nl_cache *, + struct nl_msg *); +extern int nl_cache_move(struct nl_cache *, + struct nl_object *); +extern void nl_cache_remove(struct nl_object *); +extern int nl_cache_refill(struct nl_sock *, + struct nl_cache *); +extern int nl_cache_pickup(struct nl_sock *, + struct nl_cache *); +extern int nl_cache_resync(struct nl_sock *, + struct nl_cache *, + change_func_t, + void *); +extern int nl_cache_include(struct nl_cache *, + struct nl_object *, + change_func_t, + void *); +extern void nl_cache_set_arg1(struct nl_cache *, int); +extern void nl_cache_set_arg2(struct nl_cache *, int); +extern void nl_cache_set_flags(struct nl_cache *, unsigned int); + +/* General */ +extern int nl_cache_is_empty(struct nl_cache *); +extern struct nl_object * nl_cache_search(struct nl_cache *, + struct nl_object *); +extern struct nl_object *nl_cache_find(struct nl_cache *, + struct nl_object *); +extern void nl_cache_mark_all(struct nl_cache *); + +/* Dumping */ +extern void nl_cache_dump(struct nl_cache *, + struct nl_dump_params *); +extern void nl_cache_dump_filter(struct nl_cache *, + struct nl_dump_params *, + struct nl_object *); + +/* Iterators */ +extern void nl_cache_foreach(struct nl_cache *, + void (*cb)(struct nl_object *, + void *), + void *arg); +extern void nl_cache_foreach_filter(struct nl_cache *, + struct nl_object *, + void (*cb)(struct + nl_object *, + void *), + void *arg); + +/* --- cache management --- */ + +/* Cache type management */ +extern struct nl_cache_ops * nl_cache_ops_lookup(const char *); +extern struct nl_cache_ops * nl_cache_ops_lookup_safe(const char *); +extern struct nl_cache_ops * nl_cache_ops_associate(int, int); +extern struct nl_cache_ops * nl_cache_ops_associate_safe(int, int); +extern struct nl_msgtype * nl_msgtype_lookup(struct nl_cache_ops *, int); +extern void nl_cache_ops_foreach(void (*cb)(struct nl_cache_ops *, void *), void *); +extern int nl_cache_mngt_register(struct nl_cache_ops *); +extern int nl_cache_mngt_unregister(struct nl_cache_ops *); + +/* Global cache provisioning/requiring */ +extern void nl_cache_mngt_provide(struct nl_cache *); +extern void nl_cache_mngt_unprovide(struct nl_cache *); +extern struct nl_cache * nl_cache_mngt_require(const char *); +extern struct nl_cache * nl_cache_mngt_require_safe(const char *); +extern struct nl_cache * __nl_cache_mngt_require(const char *); + +struct nl_cache_mngr; + +#define NL_AUTO_PROVIDE 1 +#define NL_ALLOCATED_SOCK 2 /* For internal use only, do not use */ + +extern int nl_cache_mngr_alloc(struct nl_sock *, + int, int, + struct nl_cache_mngr **); +extern int nl_cache_mngr_add(struct nl_cache_mngr *, + const char *, + change_func_t, + void *, + struct nl_cache **); +extern int nl_cache_mngr_add_cache(struct nl_cache_mngr *mngr, + struct nl_cache *cache, + change_func_t cb, void *data); +extern int nl_cache_mngr_get_fd(struct nl_cache_mngr *); +extern int nl_cache_mngr_poll(struct nl_cache_mngr *, + int); +extern int nl_cache_mngr_data_ready(struct nl_cache_mngr *); +extern void nl_cache_mngr_info(struct nl_cache_mngr *, + struct nl_dump_params *); +extern void nl_cache_mngr_free(struct nl_cache_mngr *); + +extern void nl_cache_ops_get(struct nl_cache_ops *); +extern void nl_cache_ops_put(struct nl_cache_ops *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/addr.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/addr.h new file mode 100644 index 0000000000000000000000000000000000000000..d0fd0551fb69af05283c968d27fa10d905690731 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/addr.h @@ -0,0 +1,32 @@ +/* + * netlink/cli/addr.h CLI Address Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2009 Thomas Graf + */ + +#ifndef __NETLINK_CLI_ADDR_H_ +#define __NETLINK_CLI_ADDR_H_ + +#include + +#define nl_cli_addr_alloc_cache(sk) \ + nl_cli_alloc_cache((sk), "address", rtnl_addr_alloc_cache) + +extern struct rtnl_addr *nl_cli_addr_alloc(void); + +extern void nl_cli_addr_parse_family(struct rtnl_addr *, char *); +extern void nl_cli_addr_parse_local(struct rtnl_addr *, char *); +extern void nl_cli_addr_parse_dev(struct rtnl_addr *, struct nl_cache *,char *); +extern void nl_cli_addr_parse_label(struct rtnl_addr *, char *); +extern void nl_cli_addr_parse_peer(struct rtnl_addr *, char *); +extern void nl_cli_addr_parse_scope(struct rtnl_addr *, char *); +extern void nl_cli_addr_parse_broadcast(struct rtnl_addr *, char *); +extern void nl_cli_addr_parse_preferred(struct rtnl_addr *, char *); +extern void nl_cli_addr_parse_valid(struct rtnl_addr *, char *); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/class.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/class.h new file mode 100644 index 0000000000000000000000000000000000000000..5001e4284686ce84aaa4a9789ded7969b52c7046 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/class.h @@ -0,0 +1,21 @@ +/* + * netlink/cli/class.h CLI Class Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2010 Thomas Graf + */ + +#ifndef __NETLINK_CLI_CLASS_H_ +#define __NETLINK_CLI_CLASS_H_ + +#include +#include + +extern struct rtnl_class *nl_cli_class_alloc(void); +extern struct nl_cache *nl_cli_class_alloc_cache(struct nl_sock *, int); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/cls.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/cls.h new file mode 100644 index 0000000000000000000000000000000000000000..a2707b8ed86f814247723d059e973c3ca053ddf4 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/cls.h @@ -0,0 +1,24 @@ +/* + * netlink/cli/cls.h CLI Classifier Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2010 Thomas Graf + */ + +#ifndef __NETLINK_CLI_CLS_H_ +#define __NETLINK_CLI_CLS_H_ + +#include +#include + +extern struct rtnl_cls * nl_cli_cls_alloc(void); +extern struct nl_cache * nl_cli_cls_alloc_cache(struct nl_sock *, + int, uint32_t); +extern void nl_cli_cls_parse_proto(struct rtnl_cls *, char *); +extern struct rtnl_ematch_tree *nl_cli_cls_parse_ematch(struct rtnl_cls *, char *); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/ct.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/ct.h new file mode 100644 index 0000000000000000000000000000000000000000..ebe7c9dc879c640db55fefae7b0956be5cbd931d --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/ct.h @@ -0,0 +1,35 @@ +/* + * netlink/cli/ct.h CLI Conntrack Helper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2009 Thomas Graf + */ + +#ifndef __NETLINK_CLI_CT_H_ +#define __NETLINK_CLI_CT_H_ + +#include +#include + +extern struct nfnl_ct *nl_cli_ct_alloc(void); +extern struct nl_cache *nl_cli_ct_alloc_cache(struct nl_sock *); + +extern void nl_cli_ct_parse_family(struct nfnl_ct *, char *); +extern void nl_cli_ct_parse_protocol(struct nfnl_ct *, char *); +extern void nl_cli_ct_parse_mark(struct nfnl_ct *, char *); +extern void nl_cli_ct_parse_timeout(struct nfnl_ct *, char *); +extern void nl_cli_ct_parse_id(struct nfnl_ct *, char *); +extern void nl_cli_ct_parse_use(struct nfnl_ct *, char *); +extern void nl_cli_ct_parse_src(struct nfnl_ct *, int, char *); +extern void nl_cli_ct_parse_dst(struct nfnl_ct *, int, char *); +extern void nl_cli_ct_parse_src_port(struct nfnl_ct *, int, char *); +extern void nl_cli_ct_parse_dst_port(struct nfnl_ct *, int, char *); +extern void nl_cli_ct_parse_tcp_state(struct nfnl_ct *, char *); +extern void nl_cli_ct_parse_status(struct nfnl_ct *, char *); +extern void nl_cli_ct_parse_zone(struct nfnl_ct *, char *); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/exp.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/exp.h new file mode 100644 index 0000000000000000000000000000000000000000..b2418f8d31a7d94e1a23a45cdcc3638af43c54ce --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/exp.h @@ -0,0 +1,42 @@ +/* + * netlink/cli/exp.h CLI Expectation Helper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2012 Rich Fought + * Copyright (c) 2008-2009 Thomas Graf + */ + +#ifndef __NETLINK_CLI_EXP_H_ +#define __NETLINK_CLI_EXP_H_ + +#include +#include + +extern struct nfnl_exp *nl_cli_exp_alloc(void); +extern struct nl_cache *nl_cli_exp_alloc_cache(struct nl_sock *); + +extern void nl_cli_exp_parse_family(struct nfnl_exp *, char *); +extern void nl_cli_exp_parse_timeout(struct nfnl_exp *, char *); +extern void nl_cli_exp_parse_id(struct nfnl_exp *, char *); +extern void nl_cli_exp_parse_helper_name(struct nfnl_exp *, char *); +extern void nl_cli_exp_parse_zone(struct nfnl_exp *, char *); +extern void nl_cli_exp_parse_flags(struct nfnl_exp *, char *); +extern void nl_cli_exp_parse_class(struct nfnl_exp *, char *); +extern void nl_cli_exp_parse_nat_dir(struct nfnl_exp *, char *); +extern void nl_cli_exp_parse_fn(struct nfnl_exp *, char *); + +extern void nl_cli_exp_parse_src(struct nfnl_exp *, int, char *); +extern void nl_cli_exp_parse_dst(struct nfnl_exp *, int, char *); +extern void nl_cli_exp_parse_l4protonum(struct nfnl_exp *, int, char *); +extern void nl_cli_exp_parse_src_port(struct nfnl_exp *, int, char *); +extern void nl_cli_exp_parse_dst_port(struct nfnl_exp *, int, char *); +extern void nl_cli_exp_parse_icmp_id(struct nfnl_exp *, int, char *); +extern void nl_cli_exp_parse_icmp_type(struct nfnl_exp *, int, char *); +extern void nl_cli_exp_parse_icmp_code(struct nfnl_exp *, int, char *); + + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/link.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/link.h new file mode 100644 index 0000000000000000000000000000000000000000..3f37948d9713ca9a2339320ba1b9330c3071c549 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/link.h @@ -0,0 +1,30 @@ +/* + * netlink/cli/link.h CLI Link Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2010 Thomas Graf + */ + +#ifndef __NETLINK_CLI_LINK_H_ +#define __NETLINK_CLI_LINK_H_ + +#include +#include + +extern struct rtnl_link *nl_cli_link_alloc(void); +extern struct nl_cache *nl_cli_link_alloc_cache_family(struct nl_sock *, int); +extern struct nl_cache *nl_cli_link_alloc_cache(struct nl_sock *); + +extern void nl_cli_link_parse_family(struct rtnl_link *, char *); +extern void nl_cli_link_parse_name(struct rtnl_link *, char *); +extern void nl_cli_link_parse_mtu(struct rtnl_link *, char *); +extern void nl_cli_link_parse_ifindex(struct rtnl_link *, char *); +extern void nl_cli_link_parse_txqlen(struct rtnl_link *, char *); +extern void nl_cli_link_parse_weight(struct rtnl_link *, char *); +extern void nl_cli_link_parse_ifalias(struct rtnl_link *, char *); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/neigh.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/neigh.h new file mode 100644 index 0000000000000000000000000000000000000000..5440012884c8eedba5594e8437d15f31774a145d --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/neigh.h @@ -0,0 +1,27 @@ +/* + * netlink/cli/neighbour.h CLI Neighbour Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2009 Thomas Graf + */ + +#ifndef __NETLINK_CLI_NEIGH_H_ +#define __NETLINK_CLI_NEIGH_H_ + +#include + +#define nl_cli_neigh_alloc_cache(sk) \ + nl_cli_alloc_cache((sk), "neighbour", rtnl_neigh_alloc_cache) + +extern struct rtnl_neigh *nl_cli_neigh_alloc(void); +extern void nl_cli_neigh_parse_dst(struct rtnl_neigh *, char *); +extern void nl_cli_neigh_parse_lladdr(struct rtnl_neigh *, char *); +extern void nl_cli_neigh_parse_dev(struct rtnl_neigh *, struct nl_cache *, char *); +extern void nl_cli_neigh_parse_family(struct rtnl_neigh *, char *); +extern void nl_cli_neigh_parse_state(struct rtnl_neigh *, char *); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/qdisc.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/qdisc.h new file mode 100644 index 0000000000000000000000000000000000000000..b102da4f875de12e31ccf0130b1f4d5becdaeaa5 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/qdisc.h @@ -0,0 +1,23 @@ +/* + * netlink/cli/qdisc.h CLI QDisc Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2011 Thomas Graf + */ + +#ifndef __NETLINK_CLI_QDISC_H_ +#define __NETLINK_CLI_QDISC_H_ + +#include + +#define nl_cli_qdisc_alloc_cache(sk) \ + nl_cli_alloc_cache((sk), "queueing disciplines", \ + rtnl_qdisc_alloc_cache) + +extern struct rtnl_qdisc *nl_cli_qdisc_alloc(void); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/route.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/route.h new file mode 100644 index 0000000000000000000000000000000000000000..089c6582fd2481a554a05bd0bc9f21c02086f768 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/route.h @@ -0,0 +1,34 @@ +/* + * netlink/cli//route.h CLI Route Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2009 Thomas Graf + */ + +#ifndef __NETLINK_CLI_ROUTE_H_ +#define __NETLINK_CLI_ROUTE_H_ + +#include + +extern struct rtnl_route *nl_cli_route_alloc(void); + +extern struct nl_cache *nl_cli_route_alloc_cache(struct nl_sock *, int); + +extern void nl_cli_route_parse_family(struct rtnl_route *, char *); +extern void nl_cli_route_parse_dst(struct rtnl_route *, char *); +extern void nl_cli_route_parse_src(struct rtnl_route *, char *); +extern void nl_cli_route_parse_pref_src(struct rtnl_route *, char *); +extern void nl_cli_route_parse_metric(struct rtnl_route *, char *); +extern void nl_cli_route_parse_nexthop(struct rtnl_route *, char *, struct nl_cache *); +extern void nl_cli_route_parse_table(struct rtnl_route *, char *); +extern void nl_cli_route_parse_prio(struct rtnl_route *, char *); +extern void nl_cli_route_parse_scope(struct rtnl_route *, char *); +extern void nl_cli_route_parse_protocol(struct rtnl_route *, char *); +extern void nl_cli_route_parse_type(struct rtnl_route *, char *); +extern void nl_cli_route_parse_iif(struct rtnl_route *, char *, struct nl_cache *); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/rule.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/rule.h new file mode 100644 index 0000000000000000000000000000000000000000..61cd63e3414a5c3fc319236ca905a3f574e1978d --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/rule.h @@ -0,0 +1,21 @@ +/* + * netlink/cli/rule.h CLI Routing Rule Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2009 Thomas Graf + */ + +#ifndef __NETLINK_CLI_RULE_H_ +#define __NETLINK_CLI_RULE_H_ + +#include + +extern struct rtnl_rule *nl_cli_rule_alloc(void); +extern struct nl_cache *nl_cli_rule_alloc_cache(struct nl_sock *); +extern void nl_cli_rule_parse_family(struct rtnl_rule *, char *); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/tc.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/tc.h new file mode 100644 index 0000000000000000000000000000000000000000..77042c71d91aa92579f0a66b31e68408f30a4bf3 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/tc.h @@ -0,0 +1,41 @@ +/* + * netlink/cli/tc.h CLI Traffic Control Helpers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2010-2011 Thomas Graf + */ + +#ifndef __NETLINK_CLI_TC_H_ +#define __NETLINK_CLI_TC_H_ + +#include + +struct rtnl_tc_ops; + +extern void nl_cli_tc_parse_dev(struct rtnl_tc *, struct nl_cache *, char *); +extern void nl_cli_tc_parse_parent(struct rtnl_tc *, char *); +extern void nl_cli_tc_parse_handle(struct rtnl_tc *, char *, int); +extern void nl_cli_tc_parse_mtu(struct rtnl_tc *, char *); +extern void nl_cli_tc_parse_mpu(struct rtnl_tc *, char *); +extern void nl_cli_tc_parse_overhead(struct rtnl_tc *, char *); +extern void nl_cli_tc_parse_linktype(struct rtnl_tc *, char *); +extern void nl_cli_tc_parse_kind(struct rtnl_tc *, char *); + +struct nl_cli_tc_module +{ + const char * tm_name; + enum rtnl_tc_type tm_type; + struct rtnl_tc_ops * tm_ops; + void (*tm_parse_argv)(struct rtnl_tc *, int, char **); + struct nl_list_head tm_list; +}; + +extern struct nl_cli_tc_module *nl_cli_tc_lookup(struct rtnl_tc_ops *); +extern void nl_cli_tc_register(struct nl_cli_tc_module *); +extern void nl_cli_tc_unregister(struct nl_cli_tc_module *); + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/cli/utils.h b/hardware/wifi/libnl/include/libnl3/netlink/cli/utils.h new file mode 100644 index 0000000000000000000000000000000000000000..da41c10ef8eab092244bc709c84c28338c7dc229 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/cli/utils.h @@ -0,0 +1,82 @@ +/* + * src/utils.h Utilities + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2009 Thomas Graf + */ + +#ifndef __NETLINK_CLI_UTILS_H_ +#define __NETLINK_CLI_UTILS_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __init +#define __init __attribute__((constructor)) +#endif + +#ifndef __exit +#define __exit __attribute__((destructor)) +#endif + +extern uint32_t nl_cli_parse_u32(const char *); +extern void nl_cli_print_version(void); +extern void nl_cli_fatal(int, const char *, ...); +extern struct nl_addr * nl_cli_addr_parse(const char *, int); +extern int nl_cli_connect(struct nl_sock *, int); +extern struct nl_sock * nl_cli_alloc_socket(void); +extern int nl_cli_parse_dumptype(const char *); +extern int nl_cli_confirm(struct nl_object *, + struct nl_dump_params *, int); + +extern struct nl_cache *nl_cli_alloc_cache(struct nl_sock *, const char *, + int (*ac)(struct nl_sock *, struct nl_cache **)); + +extern void nl_cli_load_module(const char *, const char *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/data.h b/hardware/wifi/libnl/include/libnl3/netlink/data.h new file mode 100644 index 0000000000000000000000000000000000000000..071159ee5b30fdcbfc9adfaa98745244d4cd87d6 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/data.h @@ -0,0 +1,41 @@ +/* + * netlink/data.h Abstract Data + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + */ + +#ifndef NETLINK_DATA_H_ +#define NETLINK_DATA_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_data; + +/* General */ +extern struct nl_data * nl_data_alloc(void *, size_t); +extern struct nl_data * nl_data_alloc_attr(struct nlattr *); +extern struct nl_data * nl_data_clone(struct nl_data *); +extern int nl_data_append(struct nl_data *, void *, size_t); +extern void nl_data_free(struct nl_data *); + +/* Access Functions */ +extern void * nl_data_get(struct nl_data *); +extern size_t nl_data_get_size(struct nl_data *); + +/* Misc */ +extern int nl_data_cmp(struct nl_data *, struct nl_data *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/errno.h b/hardware/wifi/libnl/include/libnl3/netlink/errno.h new file mode 100644 index 0000000000000000000000000000000000000000..f8b5130c22e1142b9cceab49440c96db319c01ee --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/errno.h @@ -0,0 +1,64 @@ +/* + * netlink/errno.h Error Numbers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008 Thomas Graf + */ + +#ifndef NETLINK_ERRNO_H_ +#define NETLINK_ERRNO_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#define NLE_SUCCESS 0 +#define NLE_FAILURE 1 +#define NLE_INTR 2 +#define NLE_BAD_SOCK 3 +#define NLE_AGAIN 4 +#define NLE_NOMEM 5 +#define NLE_EXIST 6 +#define NLE_INVAL 7 +#define NLE_RANGE 8 +#define NLE_MSGSIZE 9 +#define NLE_OPNOTSUPP 10 +#define NLE_AF_NOSUPPORT 11 +#define NLE_OBJ_NOTFOUND 12 +#define NLE_NOATTR 13 +#define NLE_MISSING_ATTR 14 +#define NLE_AF_MISMATCH 15 +#define NLE_SEQ_MISMATCH 16 +#define NLE_MSG_OVERFLOW 17 +#define NLE_MSG_TRUNC 18 +#define NLE_NOADDR 19 +#define NLE_SRCRT_NOSUPPORT 20 +#define NLE_MSG_TOOSHORT 21 +#define NLE_MSGTYPE_NOSUPPORT 22 +#define NLE_OBJ_MISMATCH 23 +#define NLE_NOCACHE 24 +#define NLE_BUSY 25 +#define NLE_PROTO_MISMATCH 26 +#define NLE_NOACCESS 27 +#define NLE_PERM 28 +#define NLE_PKTLOC_FILE 29 +#define NLE_PARSE_ERR 30 +#define NLE_NODEV 31 +#define NLE_IMMUTABLE 32 +#define NLE_DUMP_INTR 33 + +#define NLE_MAX NLE_DUMP_INTR + +extern const char * nl_geterror(int); +extern void nl_perror(int, const char *); +extern int nl_syserr2nlerr(int); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/fib_lookup/lookup.h b/hardware/wifi/libnl/include/libnl3/netlink/fib_lookup/lookup.h new file mode 100644 index 0000000000000000000000000000000000000000..8bf27b8d95495784fac2863aa4ccf29d5ef1a611 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/fib_lookup/lookup.h @@ -0,0 +1,42 @@ +/* + * netlink/fib_lookup/fib_lookup.h FIB Lookup + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + */ + +#ifndef NETLINK_FIB_LOOKUP_H_ +#define NETLINK_FIB_LOOKUP_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct flnl_result; + +extern struct flnl_result * flnl_result_alloc(void); +extern void flnl_result_put(struct flnl_result *); + +extern struct nl_cache * flnl_result_alloc_cache(void); + +extern int flnl_lookup_build_request(struct flnl_request *, + int, + struct nl_msg **); +extern int flnl_lookup(struct nl_sock *, + struct flnl_request *, + struct nl_cache *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/fib_lookup/request.h b/hardware/wifi/libnl/include/libnl3/netlink/fib_lookup/request.h new file mode 100644 index 0000000000000000000000000000000000000000..60e8820fae93fe50cd115732c0f0b129ffeaf774 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/fib_lookup/request.h @@ -0,0 +1,51 @@ +/* + * netlink/fib_lookup/request.h FIB Lookup Request + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_FIB_LOOKUP_REQUEST_H_ +#define NETLINK_FIB_LOOKUP_REQUEST_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct flnl_request; + +#define REQUEST_CAST(ptr) ((struct flnl_request *) (ptr)) + +extern struct flnl_request * flnl_request_alloc(void); + +extern void flnl_request_set_fwmark(struct flnl_request *, + uint64_t); +extern uint64_t flnl_request_get_fwmark(struct flnl_request *); +extern void flnl_request_set_tos(struct flnl_request *, + int); +extern int flnl_request_get_tos(struct flnl_request *); +extern void flnl_request_set_scope(struct flnl_request *, + int); +extern int flnl_request_get_scope(struct flnl_request *); +extern void flnl_request_set_table(struct flnl_request *, + int); +extern int flnl_request_get_table(struct flnl_request *); +extern int flnl_request_set_addr(struct flnl_request *, + struct nl_addr *); +extern struct nl_addr * flnl_request_get_addr(struct flnl_request *); + +extern int flnl_request_cmp(struct flnl_request *, + struct flnl_request *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/genl/ctrl.h b/hardware/wifi/libnl/include/libnl3/netlink/genl/ctrl.h new file mode 100644 index 0000000000000000000000000000000000000000..017b8fdfc5b0011a60fcb9b891ccd5c7d1ebeb69 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/genl/ctrl.h @@ -0,0 +1,40 @@ +/* + * netlink/genl/ctrl.h Generic Netlink Controller + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_GENL_CTRL_H_ +#define NETLINK_GENL_CTRL_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct genl_family; + +extern int genl_ctrl_alloc_cache(struct nl_sock *, + struct nl_cache **); +extern struct genl_family * genl_ctrl_search(struct nl_cache *, int); +extern struct genl_family * genl_ctrl_search_by_name(struct nl_cache *, + const char *); +extern int genl_ctrl_resolve(struct nl_sock *, + const char *); +extern int genl_ctrl_resolve_grp(struct nl_sock *sk, + const char *family, + const char *grp); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/genl/family.h b/hardware/wifi/libnl/include/libnl3/netlink/genl/family.h new file mode 100644 index 0000000000000000000000000000000000000000..5432b5945681b449fe096cd7586dcfb7dc0e3d5c --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/genl/family.h @@ -0,0 +1,47 @@ +/* + * netlink/genl/family.h Generic Netlink Family + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_GENL_FAMILY_H_ +#define NETLINK_GENL_FAMILY_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct genl_family; + +extern struct genl_family * genl_family_alloc(void); +extern void genl_family_put(struct genl_family *); + +extern unsigned int genl_family_get_id(struct genl_family *); +extern void genl_family_set_id(struct genl_family *, unsigned int); +extern char * genl_family_get_name(struct genl_family *); +extern void genl_family_set_name(struct genl_family *, const char *); +extern uint8_t genl_family_get_version(struct genl_family *); +extern void genl_family_set_version(struct genl_family *, uint8_t); +extern uint32_t genl_family_get_hdrsize(struct genl_family *); +extern void genl_family_set_hdrsize(struct genl_family *, uint32_t); +extern uint32_t genl_family_get_maxattr(struct genl_family *); +extern void genl_family_set_maxattr(struct genl_family *, uint32_t); + +extern int genl_family_add_op(struct genl_family *, int, int); +extern int genl_family_add_grp(struct genl_family *, uint32_t , + const char *); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/genl/genl.h b/hardware/wifi/libnl/include/libnl3/netlink/genl/genl.h new file mode 100644 index 0000000000000000000000000000000000000000..e455581b40a71938d8a0a1693dc35c24b8c84af6 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/genl/genl.h @@ -0,0 +1,52 @@ +/* + * netlink/genl/genl.h Generic Netlink + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_GENL_H_ +#define NETLINK_GENL_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern int genl_connect(struct nl_sock *); +extern int genl_send_simple(struct nl_sock *, int, int, + int, int); + +extern void * genlmsg_put(struct nl_msg *, uint32_t, uint32_t, + int, int, int, uint8_t, uint8_t); + +extern int genlmsg_valid_hdr(struct nlmsghdr *, int); +extern int genlmsg_validate(struct nlmsghdr *, int, int, + struct nla_policy *); +extern int genlmsg_parse(struct nlmsghdr *, int, struct nlattr **, + int, struct nla_policy *); +extern struct genlmsghdr * + genlmsg_hdr(struct nlmsghdr *); +extern void * genlmsg_data(const struct genlmsghdr *); +extern void * genlmsg_user_hdr(const struct genlmsghdr *); +extern void * genlmsg_user_data(const struct genlmsghdr *, const int); +extern int genlmsg_user_datalen(const struct genlmsghdr *, + const int); +extern int genlmsg_len(const struct genlmsghdr *); +extern struct nlattr * genlmsg_attrdata(const struct genlmsghdr *, int); +extern int genlmsg_attrlen(const struct genlmsghdr *, int); + +extern char * genl_op2name(int, int, char *, size_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/genl/mngt.h b/hardware/wifi/libnl/include/libnl3/netlink/genl/mngt.h new file mode 100644 index 0000000000000000000000000000000000000000..8a51ccdd0f05d60a38b0c7fc88357602624af042 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/genl/mngt.h @@ -0,0 +1,176 @@ +/* + * netlink/genl/mngt.h Generic Netlink Management + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_GENL_MNGT_H_ +#define NETLINK_GENL_MNGT_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_cache_ops; + +/** + * @ingroup genl_mngt + * @struct genl_info netlink/genl/mngt.h + * + * Informative structure passed on to message parser callbacks + * + * This structure is passed on to all message parser callbacks and contains + * information about the sender of the message as well as pointers to all + * relevant sections of the parsed message. + * + * @see genl_cmd::c_msg_parser + */ +struct genl_info +{ + /** Socket address of sender */ + struct sockaddr_nl * who; + + /** Pointer to Netlink message header */ + struct nlmsghdr * nlh; + + /** Pointer to Generic Netlink message header */ + struct genlmsghdr * genlhdr; + + /** Pointer to user header */ + void * userhdr; + + /** Pointer to array of parsed attributes */ + struct nlattr ** attrs; +}; + +/** + * @ingroup genl_mngt + * @struct genl_cmd netlink/genl/mngt.h + * + * Definition of a Generic Netlink command. + * + * This structure is used to define the list of available commands on the + * receiving side. + * + * @par Example: + * @code + * static struct genl_cmd foo_cmds[] = { + * { + * .c_id = FOO_CMD_NEW, + * .c_name = "NEWFOO" , + * .c_maxattr = FOO_ATTR_MAX, + * .c_attr_policy = foo_policy, + * .c_msg_parser = foo_msg_parser, + * }, + * { + * .c_id = FOO_CMD_DEL, + * .c_name = "DELFOO" , + * }, + * }; + * + * static struct genl_ops my_genl_ops = { + * [...] + * .o_cmds = foo_cmds, + * .o_ncmds = ARRAY_SIZE(foo_cmds), + * }; + * @endcode + */ +struct genl_cmd +{ + /** Numeric command identifier (required) */ + int c_id; + + /** Human readable name (required) */ + char * c_name; + + /** Maximum attribute identifier that the command is prepared to handle. */ + int c_maxattr; + + /** Called whenever a message for this command is received */ + int (*c_msg_parser)(struct nl_cache_ops *, + struct genl_cmd *, + struct genl_info *, void *); + + /** Attribute validation policy, enforced before the callback is called */ + struct nla_policy * c_attr_policy; +}; + +/** + * @ingroup genl_mngt + * @struct genl_ops netlink/genl/mngt.h + * + * Definition of a Generic Netlink family + * + * @par Example: + * @code + * static struct genl_cmd foo_cmds[] = { + * [...] + * }; + * + * static struct genl_ops my_genl_ops = { + * .o_name = "foo", + * .o_hdrsize = sizeof(struct my_hdr), + * .o_cmds = foo_cmds, + * .o_ncmds = ARRAY_SIZE(foo_cmds), + * }; + * + * if ((err = genl_register_family(&my_genl_ops)) < 0) + * // ERROR + * @endcode + * + * @see genl_cmd + */ +struct genl_ops +{ + /** Length of user header */ + unsigned int o_hdrsize; + + /** Numeric identifier, automatically filled in by genl_ops_resolve() */ + int o_id; + + /** Human readable name, used by genl_ops_resolve() to resolve numeric id */ + char * o_name; + + /** + * If registered via genl_register(), will point to the related + * cache operations. + */ + struct nl_cache_ops * o_cache_ops; + + /** Optional array defining the available Generic Netlink commands */ + struct genl_cmd * o_cmds; + + /** Number of elements in \c o_cmds array */ + int o_ncmds; + + /** + * @private + * Used internally to link together all registered operations. + */ + struct nl_list_head o_list; +}; + +extern int genl_register_family(struct genl_ops *); +extern int genl_unregister_family(struct genl_ops *); +extern int genl_handle_msg(struct nl_msg *, void *); + +extern int genl_register(struct nl_cache_ops *); +extern void genl_unregister(struct nl_cache_ops *); + +extern int genl_ops_resolve(struct nl_sock *, struct genl_ops *); +extern int genl_mngt_resolve(struct nl_sock *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/handlers.h b/hardware/wifi/libnl/include/libnl3/netlink/handlers.h new file mode 100644 index 0000000000000000000000000000000000000000..e94cd348e264c187d0569ad85f92508c3add5bcd --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/handlers.h @@ -0,0 +1,148 @@ +/* + * netlink/handlers.c default netlink message handlers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_HANDLERS_H_ +#define NETLINK_HANDLERS_H_ + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_cb; +struct nl_sock; +struct nl_msg; +struct ucred; + +/** + * @name Callback Typedefs + * @{ + */ + +/** + * nl_recvmsgs() callback for message processing customization + * @ingroup cb + * @arg msg netlink message being processed + * @arg arg argument passwd on through caller + */ +typedef int (*nl_recvmsg_msg_cb_t)(struct nl_msg *msg, void *arg); + +/** + * nl_recvmsgs() callback for error message processing customization + * @ingroup cb + * @arg nla netlink address of the peer + * @arg nlerr netlink error message being processed + * @arg arg argument passed on through caller + */ +typedef int (*nl_recvmsg_err_cb_t)(struct sockaddr_nl *nla, + struct nlmsgerr *nlerr, void *arg); + +/** @} */ + +/** + * Callback actions + * @ingroup cb + */ +enum nl_cb_action { + /** Proceed with wathever would come next */ + NL_OK, + /** Skip this message */ + NL_SKIP, + /** Stop parsing altogether and discard remaining messages */ + NL_STOP, +}; + +/** + * Callback kinds + * @ingroup cb + */ +enum nl_cb_kind { + /** Default handlers (quiet) */ + NL_CB_DEFAULT, + /** Verbose default handlers (error messages printed) */ + NL_CB_VERBOSE, + /** Debug handlers for debugging */ + NL_CB_DEBUG, + /** Customized handler specified by the user */ + NL_CB_CUSTOM, + __NL_CB_KIND_MAX, +}; + +#define NL_CB_KIND_MAX (__NL_CB_KIND_MAX - 1) + +/** + * Callback types + * @ingroup cb + */ +enum nl_cb_type { + /** Message is valid */ + NL_CB_VALID, + /** Last message in a series of multi part messages received */ + NL_CB_FINISH, + /** Report received that data was lost */ + NL_CB_OVERRUN, + /** Message wants to be skipped */ + NL_CB_SKIPPED, + /** Message is an acknowledge */ + NL_CB_ACK, + /** Called for every message received */ + NL_CB_MSG_IN, + /** Called for every message sent out except for nl_sendto() */ + NL_CB_MSG_OUT, + /** Message is malformed and invalid */ + NL_CB_INVALID, + /** Called instead of internal sequence number checking */ + NL_CB_SEQ_CHECK, + /** Sending of an acknowledge message has been requested */ + NL_CB_SEND_ACK, + /** Flag NLM_F_DUMP_INTR is set in message */ + NL_CB_DUMP_INTR, + __NL_CB_TYPE_MAX, +}; + +#define NL_CB_TYPE_MAX (__NL_CB_TYPE_MAX - 1) + +extern struct nl_cb * nl_cb_alloc(enum nl_cb_kind); +extern struct nl_cb * nl_cb_clone(struct nl_cb *); +extern struct nl_cb * nl_cb_get(struct nl_cb *); +extern void nl_cb_put(struct nl_cb *); + +extern int nl_cb_set(struct nl_cb *, enum nl_cb_type, enum nl_cb_kind, + nl_recvmsg_msg_cb_t, void *); +extern int nl_cb_set_all(struct nl_cb *, enum nl_cb_kind, + nl_recvmsg_msg_cb_t, void *); +extern int nl_cb_err(struct nl_cb *, enum nl_cb_kind, nl_recvmsg_err_cb_t, + void *); + +extern void nl_cb_overwrite_recvmsgs(struct nl_cb *, + int (*func)(struct nl_sock *, + struct nl_cb *)); +extern void nl_cb_overwrite_recv(struct nl_cb *, + int (*func)(struct nl_sock *, + struct sockaddr_nl *, + unsigned char **, + struct ucred **)); +extern void nl_cb_overwrite_send(struct nl_cb *, + int (*func)(struct nl_sock *, + struct nl_msg *)); + +extern enum nl_cb_type nl_cb_active_type(struct nl_cb *cb); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/hash.h b/hardware/wifi/libnl/include/libnl3/netlink/hash.h new file mode 100644 index 0000000000000000000000000000000000000000..0bda74ea50395f5568af690fe64f40de9289f918 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/hash.h @@ -0,0 +1,69 @@ +/* + * This file was taken from http://ccodearchive.net/info/hash.html + * Changes to the original file include cleanups and removal of unwanted code + * and also code that depended on build_asert + */ +#ifndef CCAN_HASH_H +#define CCAN_HASH_H +#include +#include +#include + +/* Stolen mostly from: lookup3.c, by Bob Jenkins, May 2006, Public Domain. + * + * http://burtleburtle.net/bob/c/lookup3.c + */ + +#ifdef __LITTLE_ENDIAN +# define HAVE_LITTLE_ENDIAN 1 +#elif __BIG_ENDIAN +# define HAVE_BIG_ENDIAN 1 +#else +#error Unknown endianness. Failure in endian.h +#endif + +/** + * hash - fast hash of an array for internal use + * @p: the array or pointer to first element + * @num: the number of elements to hash + * @base: the base number to roll into the hash (usually 0) + * + * The memory region pointed to by p is combined with the base to form + * a 32-bit hash. + * + * This hash will have different results on different machines, so is + * only useful for internal hashes (ie. not hashes sent across the + * network or saved to disk). + * + * It may also change with future versions: it could even detect at runtime + * what the fastest hash to use is. + * + * See also: hash64, hash_stable. + * + * Example: + * #include + * #include + * #include + * #include + * + * // Simple demonstration: idential strings will have the same hash, but + * // two different strings will probably not. + * int main(int argc, char *argv[]) + * { + * uint32_t hash1, hash2; + * + * if (argc != 3) + * err(1, "Usage: %s ", argv[0]); + * + * hash1 = __nl_hash(argv[1], strlen(argv[1]), 0); + * hash2 = __nl_hash(argv[2], strlen(argv[2]), 0); + * printf("Hash is %s\n", hash1 == hash2 ? "same" : "different"); + * return 0; + * } + */ +#define __nl_hash(p, num, base) nl_hash_any((p), (num)*sizeof(*(p)), (base)) + +/* Our underlying operations. */ +uint32_t nl_hash_any(const void *key, size_t length, uint32_t base); + +#endif /* HASH_H */ diff --git a/hardware/wifi/libnl/include/libnl3/netlink/hashtable.h b/hardware/wifi/libnl/include/libnl3/netlink/hashtable.h new file mode 100644 index 0000000000000000000000000000000000000000..d9e6ee45d809c5258722bfe1ed539831192c0276 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/hashtable.h @@ -0,0 +1,52 @@ +/* + * netlink/hashtable.h Netlink hashtable Utilities + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2012 Cumulus Networks, Inc + */ + +#ifndef NETLINK_HASHTABLE_H_ +#define NETLINK_HASHTABLE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct nl_hash_node { + uint32_t key; + uint32_t key_size; + struct nl_object * obj; + struct nl_hash_node * next; +} nl_hash_node_t; + +typedef struct nl_hash_table { + int size; + nl_hash_node_t ** nodes; +} nl_hash_table_t; + +/* Default hash table size */ +#define NL_MAX_HASH_ENTRIES 1024 + +/* Access Functions */ +extern nl_hash_table_t * nl_hash_table_alloc(int size); +extern void nl_hash_table_free(nl_hash_table_t *ht); + +extern int nl_hash_table_add(nl_hash_table_t *ht, + struct nl_object *obj); +extern int nl_hash_table_del(nl_hash_table_t *ht, + struct nl_object *obj); + +extern struct nl_object * nl_hash_table_lookup(nl_hash_table_t *ht, + struct nl_object *obj); +extern uint32_t nl_hash(void *k, size_t length, + uint32_t initval); + +#ifdef __cplusplus +} +#endif + +#endif /* NETLINK_HASHTABLE_H_ */ diff --git a/hardware/wifi/libnl/include/libnl3/netlink/idiag/idiagnl.h b/hardware/wifi/libnl/include/libnl3/netlink/idiag/idiagnl.h new file mode 100644 index 0000000000000000000000000000000000000000..d7434cd78283e389e256ac5fca3f7ec0638cd33c --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/idiag/idiagnl.h @@ -0,0 +1,126 @@ +/* + * netlink/idiag/idiagnl.h Inetdiag Netlink + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Sassano Systems LLC + */ + +#ifndef NETLINK_IDIAGNL_H_ +#define NETLINK_IDIAGNL_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Inet Diag message types + */ +#define IDIAG_TCPDIAG_GETSOCK 18 +#define IDIAG_DCCPDIAG_GETSOCK 19 +#define IDIAG_GETSOCK_MAX 24 + +/** + * Socket state identifiers + * @ingroup idiag + */ +enum { + IDIAG_SS_UNKNOWN, + IDIAG_SS_ESTABLISHED, + IDIAG_SS_SYN_SENT, + IDIAG_SS_SYN_RECV, + IDIAG_SS_FIN_WAIT1, + IDIAG_SS_FIN_WAIT2, + IDIAG_SS_TIME_WAIT, + IDIAG_SS_CLOSE, + IDIAG_SS_CLOSE_WAIT, + IDIAG_SS_LAST_ACK, + IDIAG_SS_LISTEN, + IDIAG_SS_CLOSING, + IDIAG_SS_MAX +}; + +/** + * Macro to represent all socket states. + * @ingroup idiag + */ +#define IDIAG_SS_ALL ((1< + */ + +#ifndef NETLINK_IDIAGNL_MEMINFO_H_ +#define NETLINK_IDIAGNL_MEMINFO_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +extern struct nl_object_ops idiagnl_meminfo_obj_ops; + +extern struct idiagnl_meminfo *idiagnl_meminfo_alloc(void); +extern void idiagnl_meminfo_get(struct idiagnl_meminfo *); +extern void idiagnl_meminfo_put(struct idiagnl_meminfo *); + +extern uint32_t idiagnl_meminfo_get_rmem(const struct idiagnl_meminfo *); +extern uint32_t idiagnl_meminfo_get_wmem(const struct idiagnl_meminfo *); +extern uint32_t idiagnl_meminfo_get_fmem(const struct idiagnl_meminfo *); +extern uint32_t idiagnl_meminfo_get_tmem(const struct idiagnl_meminfo *); + +extern void idiagnl_meminfo_set_rmem(struct idiagnl_meminfo *, uint32_t); +extern void idiagnl_meminfo_set_wmem(struct idiagnl_meminfo *, uint32_t); +extern void idiagnl_meminfo_set_fmem(struct idiagnl_meminfo *, uint32_t); +extern void idiagnl_meminfo_set_tmem(struct idiagnl_meminfo *, uint32_t); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NETLINK_IDIAGNL_MEMINFO_H_ */ diff --git a/hardware/wifi/libnl/include/libnl3/netlink/idiag/msg.h b/hardware/wifi/libnl/include/libnl3/netlink/idiag/msg.h new file mode 100644 index 0000000000000000000000000000000000000000..4aae606f7d04aec0f9091ecb0d71553e811613f5 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/idiag/msg.h @@ -0,0 +1,83 @@ +/* + * netlink/idiag/msg.h Inetdiag Netlink Message + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Sassano Systems LLC + */ + +#ifndef NETLINK_IDIAGNL_MSG_H_ +#define NETLINK_IDIAGNL_MSG_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +struct idiagnl_msg; +extern struct nl_object_ops idiagnl_msg_obj_ops; + +extern struct idiagnl_msg * idiagnl_msg_alloc(void); +extern int idiagnl_msg_alloc_cache(struct nl_sock *, int, int, + struct nl_cache**); +extern void idiagnl_msg_get(struct idiagnl_msg *); +extern void idiagnl_msg_put(struct idiagnl_msg *); +extern uint8_t idiagnl_msg_get_family(const struct idiagnl_msg *); +extern void idiagnl_msg_set_family(struct idiagnl_msg *, uint8_t); +extern uint8_t idiagnl_msg_get_state(const struct idiagnl_msg *); +extern void idiagnl_msg_set_state(struct idiagnl_msg *, uint8_t); +extern uint8_t idiagnl_msg_get_timer(const struct idiagnl_msg *); +extern void idiagnl_msg_set_timer(struct idiagnl_msg *, uint8_t); +extern uint8_t idiagnl_msg_get_retrans(const struct idiagnl_msg *); +extern void idiagnl_msg_set_retrans(struct idiagnl_msg *, uint8_t); +extern uint16_t idiagnl_msg_get_sport(struct idiagnl_msg *); +extern void idiagnl_msg_set_sport(struct idiagnl_msg *, uint16_t); +extern uint16_t idiagnl_msg_get_dport(struct idiagnl_msg *); +extern void idiagnl_msg_set_dport(struct idiagnl_msg *, uint16_t); +extern struct nl_addr * idiagnl_msg_get_src(const struct idiagnl_msg *); +extern int idiagnl_msg_set_src(struct idiagnl_msg *, + struct nl_addr *); +extern struct nl_addr * idiagnl_msg_get_dst(const struct idiagnl_msg *); +extern int idiagnl_msg_set_dst(struct idiagnl_msg *, + struct nl_addr *); +extern uint32_t idiagnl_msg_get_ifindex(const struct idiagnl_msg *); +extern void idiagnl_msg_set_ifindex(struct idiagnl_msg *, uint32_t); +extern uint32_t idiagnl_msg_get_expires(const struct idiagnl_msg *); +extern void idiagnl_msg_set_expires(struct idiagnl_msg *, uint32_t); +extern uint32_t idiagnl_msg_get_rqueue(const struct idiagnl_msg *); +extern void idiagnl_msg_set_rqueue(struct idiagnl_msg *, uint32_t); +extern uint32_t idiagnl_msg_get_wqueue(const struct idiagnl_msg *); +extern void idiagnl_msg_set_wqueue(struct idiagnl_msg *, uint32_t); +extern uint32_t idiagnl_msg_get_uid(const struct idiagnl_msg *); +extern void idiagnl_msg_set_uid(struct idiagnl_msg *, uint32_t); +extern uint32_t idiagnl_msg_get_inode(const struct idiagnl_msg *); +extern void idiagnl_msg_set_inode(struct idiagnl_msg *, uint32_t); +extern uint8_t idiagnl_msg_get_tos(const struct idiagnl_msg *); +extern void idiagnl_msg_set_tos(struct idiagnl_msg *, uint8_t); +extern uint8_t idiagnl_msg_get_tclass(const struct idiagnl_msg *); +extern void idiagnl_msg_set_tclass(struct idiagnl_msg *, uint8_t); +extern uint8_t idiagnl_msg_get_shutdown(const struct idiagnl_msg *); +extern void idiagnl_msg_set_shutdown(struct idiagnl_msg *, uint8_t); +extern char * idiagnl_msg_get_cong(const struct idiagnl_msg *); +extern void idiagnl_msg_set_cong(struct idiagnl_msg *, char *); +extern struct idiagnl_meminfo *idiagnl_msg_get_meminfo(const struct idiagnl_msg *); +extern void idiagnl_msg_set_meminfo(struct idiagnl_msg *, + struct idiagnl_meminfo *); +extern struct idiagnl_vegasinfo *idiagnl_msg_get_vegasinfo(const struct idiagnl_msg *); +extern void idiagnl_msg_set_vegasinfo(struct idiagnl_msg *, + struct idiagnl_vegasinfo *); +extern struct tcp_info idiagnl_msg_get_tcpinfo(const struct idiagnl_msg *); +extern void idiagnl_msg_set_tcpinfo(struct idiagnl_msg *, + struct tcp_info *); + +extern int idiagnl_msg_parse(struct nlmsghdr *, + struct idiagnl_msg **); +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NETLINK_IDIAGNL_MSG_H_ */ diff --git a/hardware/wifi/libnl/include/libnl3/netlink/idiag/req.h b/hardware/wifi/libnl/include/libnl3/netlink/idiag/req.h new file mode 100644 index 0000000000000000000000000000000000000000..3c9f8ace7c9c7383892f32c54174a96a8d3817f3 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/idiag/req.h @@ -0,0 +1,50 @@ +/* + * netlink/idiag/req.h Inetdiag Netlink Request + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Sassano Systems LLC + */ + +#ifndef NETLINK_IDIAGNL_REQ_H_ +#define NETLINK_IDIAGNL_REQ_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +struct idiagnl_req; +extern struct nl_object_ops idiagnl_req_obj_ops; + +extern struct idiagnl_req * idiagnl_req_alloc(void); +extern void idiagnl_req_get(struct idiagnl_req *); +extern void idiagnl_req_put(struct idiagnl_req *); +extern uint8_t idiagnl_req_get_family(const struct idiagnl_req *); +extern void idiagnl_req_set_family(struct idiagnl_req *, + uint8_t); +extern uint8_t idiagnl_req_get_ext(const struct idiagnl_req *); +extern void idiagnl_req_set_ext(struct idiagnl_req *, uint8_t); +extern uint32_t idiagnl_req_get_ifindex(const struct idiagnl_req *); +extern void idiagnl_req_set_ifindex(struct idiagnl_req *, + uint32_t); +extern uint32_t idiagnl_req_get_states(const struct idiagnl_req *); +extern void idiagnl_req_set_states(struct idiagnl_req *, + uint32_t); +extern uint32_t idiagnl_req_get_dbs(const struct idiagnl_req *); +extern void idiagnl_req_set_dbs(struct idiagnl_req *, uint32_t); +extern struct nl_addr * idiagnl_req_get_src(const struct idiagnl_req *); +extern int idiagnl_req_set_src(struct idiagnl_req *, + struct nl_addr *); +extern struct nl_addr * idiagnl_req_get_dst(const struct idiagnl_req *); +extern int idiagnl_req_set_dst(struct idiagnl_req *, + struct nl_addr *); +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NETLINK_IDIAGNL_REQ_H_ */ diff --git a/hardware/wifi/libnl/include/libnl3/netlink/idiag/vegasinfo.h b/hardware/wifi/libnl/include/libnl3/netlink/idiag/vegasinfo.h new file mode 100644 index 0000000000000000000000000000000000000000..792b5c16ed66ab4091835381096a8738d2f9a8d5 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/idiag/vegasinfo.h @@ -0,0 +1,43 @@ +/* + * netlink/idiag/vegasinfo.h Inetdiag Netlink TCP Vegas Info + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Sassano Systems LLC + */ + +#ifndef NETLINK_IDIAGNL_VEGASINFO_H_ +#define NETLINK_IDIAGNL_VEGASINFO_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +extern struct nl_object_ops idiagnl_vegasinfo_obj_ops; +extern struct idiagnl_vegasinfo * idiagnl_vegasinfo_alloc(void); +extern void idiagnl_vegasinfo_get(struct idiagnl_vegasinfo *); +extern void idiagnl_vegasinfo_put(struct idiagnl_vegasinfo *); + +extern uint32_t idiagnl_vegasinfo_get_enabled(const struct idiagnl_vegasinfo *); +extern uint32_t idiagnl_vegasinfo_get_rttcnt(const struct idiagnl_vegasinfo *); +extern uint32_t idiagnl_vegasinfo_get_rtt(const struct idiagnl_vegasinfo *); +extern uint32_t idiagnl_vegasinfo_get_minrtt(const struct idiagnl_vegasinfo *); + +extern void idiagnl_vegasinfo_set_enabled(struct idiagnl_vegasinfo *, + uint32_t); +extern void idiagnl_vegasinfo_set_rttcnt(struct idiagnl_vegasinfo *, + uint32_t); +extern void idiagnl_vegasinfo_set_rtt(struct idiagnl_vegasinfo *, uint32_t); +extern void idiagnl_vegasinfo_set_minrtt(struct idiagnl_vegasinfo *, + uint32_t); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NETLINK_IDIAGNL_VEGASINFO_H_ */ diff --git a/hardware/wifi/libnl/include/libnl3/netlink/list.h b/hardware/wifi/libnl/include/libnl3/netlink/list.h new file mode 100644 index 0000000000000000000000000000000000000000..28712edad212962dc55aff4cb7edb05c0be97030 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/list.h @@ -0,0 +1,93 @@ +/* + * netlink/list.h Netlink List Utilities + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_LIST_H_ +#define NETLINK_LIST_H_ + +struct nl_list_head +{ + struct nl_list_head * next; + struct nl_list_head * prev; +}; + +static inline void NL_INIT_LIST_HEAD(struct nl_list_head *list) +{ + list->next = list; + list->prev = list; +} + +static inline void __nl_list_add(struct nl_list_head *obj, + struct nl_list_head *prev, + struct nl_list_head *next) +{ + prev->next = obj; + obj->prev = prev; + next->prev = obj; + obj->next = next; +} + +static inline void nl_list_add_tail(struct nl_list_head *obj, + struct nl_list_head *head) +{ + __nl_list_add(obj, head->prev, head); +} + +static inline void nl_list_add_head(struct nl_list_head *obj, + struct nl_list_head *head) +{ + __nl_list_add(obj, head, head->next); +} + +static inline void nl_list_del(struct nl_list_head *obj) +{ + obj->next->prev = obj->prev; + obj->prev->next = obj->next; +} + +static inline int nl_list_empty(struct nl_list_head *head) +{ + return head->next == head; +} + +#define nl_container_of(ptr, type, member) ({ \ + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - ((size_t) &((type *)0)->member));}) + +#define nl_list_entry(ptr, type, member) \ + nl_container_of(ptr, type, member) + +#define nl_list_at_tail(pos, head, member) \ + ((pos)->member.next == (head)) + +#define nl_list_at_head(pos, head, member) \ + ((pos)->member.prev == (head)) + +#define NL_LIST_HEAD(name) \ + struct nl_list_head name = { &(name), &(name) } + +#define nl_list_first_entry(head, type, member) \ + nl_list_entry((head)->next, type, member) + +#define nl_list_for_each_entry(pos, head, member) \ + for (pos = nl_list_entry((head)->next, typeof(*pos), member); \ + &(pos)->member != (head); \ + (pos) = nl_list_entry((pos)->member.next, typeof(*(pos)), member)) + +#define nl_list_for_each_entry_safe(pos, n, head, member) \ + for (pos = nl_list_entry((head)->next, typeof(*pos), member), \ + n = nl_list_entry(pos->member.next, typeof(*pos), member); \ + &(pos)->member != (head); \ + pos = n, n = nl_list_entry(n->member.next, typeof(*n), member)) + +#define nl_init_list_head(head) \ + do { (head)->next = (head); (head)->prev = (head); } while (0) + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/msg.h b/hardware/wifi/libnl/include/libnl3/netlink/msg.h new file mode 100644 index 0000000000000000000000000000000000000000..f3d50ae238d087f9d9ea3bd78ef1d1c1f6e10e5d --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/msg.h @@ -0,0 +1,147 @@ +/* + * netlink/msg.c Netlink Messages Interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_MSG_H_ +#define NETLINK_MSG_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define NL_DONTPAD 0 + +/** + * @ingroup msg + * @brief + * Will cause the netlink port to be set to the port assigned to + * the netlink icoket ust before sending the message off. + * + * @note Requires the use of nl_send_auto()! + */ +#define NL_AUTO_PORT 0 +#define NL_AUTO_PID NL_AUTO_PORT + +/** + * @ingroup msg + * @brief + * May be used to refer to a sequence number which should be + * automatically set just before sending the message off. + * + * @note Requires the use of nl_send_auto()! + */ +#define NL_AUTO_SEQ 0 + +struct nl_msg; +struct nl_tree; +struct ucred; + +extern int nlmsg_size(int); +extern int nlmsg_total_size(int); +extern int nlmsg_padlen(int); + +extern void * nlmsg_data(const struct nlmsghdr *); +extern int nlmsg_datalen(const struct nlmsghdr *); +extern void * nlmsg_tail(const struct nlmsghdr *); + +/* attribute access */ +extern struct nlattr * nlmsg_attrdata(const struct nlmsghdr *, int); +extern int nlmsg_attrlen(const struct nlmsghdr *, int); + +/* message parsing */ +extern int nlmsg_valid_hdr(const struct nlmsghdr *, int); +extern int nlmsg_ok(const struct nlmsghdr *, int); +extern struct nlmsghdr * nlmsg_next(struct nlmsghdr *, int *); +extern int nlmsg_parse(struct nlmsghdr *, int, struct nlattr **, + int, struct nla_policy *); +extern struct nlattr * nlmsg_find_attr(struct nlmsghdr *, int, int); +extern int nlmsg_validate(struct nlmsghdr *, int, int, + struct nla_policy *); + +extern struct nl_msg * nlmsg_alloc(void); +extern struct nl_msg * nlmsg_alloc_size(size_t); +extern struct nl_msg * nlmsg_alloc_simple(int, int); +extern void nlmsg_set_default_size(size_t); +extern struct nl_msg * nlmsg_inherit(struct nlmsghdr *); +extern struct nl_msg * nlmsg_convert(struct nlmsghdr *); +extern void * nlmsg_reserve(struct nl_msg *, size_t, int); +extern int nlmsg_append(struct nl_msg *, void *, size_t, int); +extern int nlmsg_expand(struct nl_msg *, size_t); + +extern struct nlmsghdr * nlmsg_put(struct nl_msg *, uint32_t, uint32_t, + int, int, int); +extern struct nlmsghdr * nlmsg_hdr(struct nl_msg *); +extern void nlmsg_get(struct nl_msg *); +extern void nlmsg_free(struct nl_msg *); + +/* attribute modification */ +extern void nlmsg_set_proto(struct nl_msg *, int); +extern int nlmsg_get_proto(struct nl_msg *); +extern size_t nlmsg_get_max_size(struct nl_msg *); +extern void nlmsg_set_src(struct nl_msg *, struct sockaddr_nl *); +extern struct sockaddr_nl *nlmsg_get_src(struct nl_msg *); +extern void nlmsg_set_dst(struct nl_msg *, struct sockaddr_nl *); +extern struct sockaddr_nl *nlmsg_get_dst(struct nl_msg *); +extern void nlmsg_set_creds(struct nl_msg *, struct ucred *); +extern struct ucred * nlmsg_get_creds(struct nl_msg *); + +extern char * nl_nlmsgtype2str(int, char *, size_t); +extern int nl_str2nlmsgtype(const char *); + +extern char * nl_nlmsg_flags2str(int, char *, size_t); + +extern int nl_msg_parse(struct nl_msg *, + void (*cb)(struct nl_object *, void *), + void *); + +extern void nl_msg_dump(struct nl_msg *, FILE *); + +/** + * @name Iterators + * @{ + */ + +/** + * @ingroup msg + * Iterate over a stream of attributes in a message + * @arg pos loop counter, set to current attribute + * @arg nlh netlink message header + * @arg hdrlen length of family header + * @arg rem initialized to len, holds bytes currently remaining in stream + */ +#define nlmsg_for_each_attr(pos, nlh, hdrlen, rem) \ + nla_for_each_attr(pos, nlmsg_attrdata(nlh, hdrlen), \ + nlmsg_attrlen(nlh, hdrlen), rem) + +/** + * Iterate over a stream of messages + * @arg pos loop counter, set to current message + * @arg head head of message stream + * @arg len length of message stream + */ +#define nlmsg_for_each(pos, head, len) \ + for (int rem = len, pos = head; \ + nlmsg_ok(pos, rem); \ + pos = nlmsg_next(pos, &rem)) + +#define nlmsg_for_each_msg(pos, head, len, rem) \ + nlmsg_for_each(pos, head, len) + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netfilter/ct.h b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/ct.h new file mode 100644 index 0000000000000000000000000000000000000000..ef5d0355052df8f16d99a7e83e88808f82b12f45 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/ct.h @@ -0,0 +1,140 @@ +/* + * netlink/netfilter/ct.h Conntrack + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + * Copyright (c) 2007 Philip Craig + * Copyright (c) 2007 Secure Computing Corporation + */ + +#ifndef NETLINK_CT_H_ +#define NETLINK_CT_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nfnl_ct; + +struct nfnl_ct_timestamp { + uint64_t start; + uint64_t stop; +}; + +extern struct nl_object_ops ct_obj_ops; + +extern struct nfnl_ct * nfnl_ct_alloc(void); +extern int nfnl_ct_alloc_cache(struct nl_sock *, struct nl_cache **); + +extern int nfnlmsg_ct_group(struct nlmsghdr *); +extern int nfnlmsg_ct_parse(struct nlmsghdr *, struct nfnl_ct **); + +extern void nfnl_ct_get(struct nfnl_ct *); +extern void nfnl_ct_put(struct nfnl_ct *); + +extern int nfnl_ct_dump_request(struct nl_sock *); + +extern int nfnl_ct_build_add_request(const struct nfnl_ct *, int, + struct nl_msg **); +extern int nfnl_ct_add(struct nl_sock *, const struct nfnl_ct *, int); + +extern int nfnl_ct_build_delete_request(const struct nfnl_ct *, int, + struct nl_msg **); +extern int nfnl_ct_del(struct nl_sock *, const struct nfnl_ct *, int); + +extern int nfnl_ct_build_query_request(const struct nfnl_ct *, int, + struct nl_msg **); +extern int nfnl_ct_query(struct nl_sock *, const struct nfnl_ct *, int); + +extern void nfnl_ct_set_family(struct nfnl_ct *, uint8_t); +extern uint8_t nfnl_ct_get_family(const struct nfnl_ct *); + +extern void nfnl_ct_set_proto(struct nfnl_ct *, uint8_t); +extern int nfnl_ct_test_proto(const struct nfnl_ct *); +extern uint8_t nfnl_ct_get_proto(const struct nfnl_ct *); + +extern void nfnl_ct_set_tcp_state(struct nfnl_ct *, uint8_t); +extern int nfnl_ct_test_tcp_state(const struct nfnl_ct *); +extern uint8_t nfnl_ct_get_tcp_state(const struct nfnl_ct *); +extern char * nfnl_ct_tcp_state2str(uint8_t, char *, size_t); +extern int nfnl_ct_str2tcp_state(const char *name); + +extern void nfnl_ct_set_status(struct nfnl_ct *, uint32_t); +extern void nfnl_ct_unset_status(struct nfnl_ct *, uint32_t); +extern int nfnl_ct_test_status(const struct nfnl_ct *ct); +extern uint32_t nfnl_ct_get_status(const struct nfnl_ct *); +extern char * nfnl_ct_status2str(int, char *, size_t); +extern int nfnl_ct_str2status(const char *); + +extern void nfnl_ct_set_timeout(struct nfnl_ct *, uint32_t); +extern int nfnl_ct_test_timeout(const struct nfnl_ct *); +extern uint32_t nfnl_ct_get_timeout(const struct nfnl_ct *); + +extern void nfnl_ct_set_mark(struct nfnl_ct *, uint32_t); +extern int nfnl_ct_test_mark(const struct nfnl_ct *); +extern uint32_t nfnl_ct_get_mark(const struct nfnl_ct *); + +extern void nfnl_ct_set_use(struct nfnl_ct *, uint32_t); +extern int nfnl_ct_test_use(const struct nfnl_ct *); +extern uint32_t nfnl_ct_get_use(const struct nfnl_ct *); + +extern void nfnl_ct_set_id(struct nfnl_ct *, uint32_t); +extern int nfnl_ct_test_id(const struct nfnl_ct *); +extern uint32_t nfnl_ct_get_id(const struct nfnl_ct *); + +extern void nfnl_ct_set_zone(struct nfnl_ct *, uint16_t); +extern int nfnl_ct_test_zone(const struct nfnl_ct *); +extern uint16_t nfnl_ct_get_zone(const struct nfnl_ct *); + +extern int nfnl_ct_set_src(struct nfnl_ct *, int, struct nl_addr *); +extern struct nl_addr * nfnl_ct_get_src(const struct nfnl_ct *, int); + +extern int nfnl_ct_set_dst(struct nfnl_ct *, int, struct nl_addr *); +extern struct nl_addr * nfnl_ct_get_dst(const struct nfnl_ct *, int); + +extern void nfnl_ct_set_src_port(struct nfnl_ct *, int, uint16_t); +extern int nfnl_ct_test_src_port(const struct nfnl_ct *, int); +extern uint16_t nfnl_ct_get_src_port(const struct nfnl_ct *, int); + +extern void nfnl_ct_set_dst_port(struct nfnl_ct *, int, uint16_t); +extern int nfnl_ct_test_dst_port(const struct nfnl_ct *, int); +extern uint16_t nfnl_ct_get_dst_port(const struct nfnl_ct *, int); + +extern void nfnl_ct_set_icmp_id(struct nfnl_ct *, int, uint16_t); +extern int nfnl_ct_test_icmp_id(const struct nfnl_ct *, int); +extern uint16_t nfnl_ct_get_icmp_id(const struct nfnl_ct *, int); + +extern void nfnl_ct_set_icmp_type(struct nfnl_ct *, int, uint8_t); +extern int nfnl_ct_test_icmp_type(const struct nfnl_ct *, int); +extern uint8_t nfnl_ct_get_icmp_type(const struct nfnl_ct *, int); + +extern void nfnl_ct_set_icmp_code(struct nfnl_ct *, int, uint8_t); +extern int nfnl_ct_test_icmp_code(const struct nfnl_ct *, int); +extern uint8_t nfnl_ct_get_icmp_code(const struct nfnl_ct *, int); + +extern void nfnl_ct_set_packets(struct nfnl_ct *, int, uint64_t); +extern int nfnl_ct_test_packets(const struct nfnl_ct *, int); +extern uint64_t nfnl_ct_get_packets(const struct nfnl_ct *,int); + +extern void nfnl_ct_set_bytes(struct nfnl_ct *, int, uint64_t); +extern int nfnl_ct_test_bytes(const struct nfnl_ct *, int); +extern uint64_t nfnl_ct_get_bytes(const struct nfnl_ct *, int); + +extern void nfnl_ct_set_timestamp(struct nfnl_ct *, uint64_t, uint64_t); +extern int nfnl_ct_test_timestamp(const struct nfnl_ct *); +extern const struct nfnl_ct_timestamp *nfnl_ct_get_timestamp(const struct nfnl_ct *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netfilter/exp.h b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/exp.h new file mode 100644 index 0000000000000000000000000000000000000000..4e9501474b2df79b33fdec342cf08e2df914fbf8 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/exp.h @@ -0,0 +1,129 @@ +/* + * netlink/netfilter/exp.h Conntrack Expectation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + * Copyright (c) 2007 Philip Craig + * Copyright (c) 2007 Secure Computing Corporation + * Copyright (c) 2012 Rich Fought + */ + +#ifndef NETLINK_EXP_H_ +#define NETLINK_EXP_H_ + +#include +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nfnl_exp; + +enum nfnl_exp_tuples { + NFNL_EXP_TUPLE_EXPECT, + NFNL_EXP_TUPLE_MASTER, + NFNL_EXP_TUPLE_MASK, + NFNL_EXP_TUPLE_NAT, + NFNL_EXP_TUPLE_MAX +}; + +extern struct nl_object_ops exp_obj_ops; + +extern struct nfnl_exp * nfnl_exp_alloc(void); +extern int nfnl_exp_alloc_cache(struct nl_sock *, struct nl_cache **); + +extern int nfnlmsg_exp_group(struct nlmsghdr *); +extern int nfnlmsg_exp_parse(struct nlmsghdr *, struct nfnl_exp **); + +extern void nfnl_exp_get(struct nfnl_exp *); +extern void nfnl_exp_put(struct nfnl_exp *); + +extern int nfnl_exp_dump_request(struct nl_sock *); + +extern int nfnl_exp_build_add_request(const struct nfnl_exp *, int, + struct nl_msg **); +extern int nfnl_exp_add(struct nl_sock *, const struct nfnl_exp *, int); + +extern int nfnl_exp_build_delete_request(const struct nfnl_exp *, int, + struct nl_msg **); +extern int nfnl_exp_del(struct nl_sock *, const struct nfnl_exp *, int); + +extern int nfnl_exp_build_query_request(const struct nfnl_exp *, int, + struct nl_msg **); +extern int nfnl_exp_query(struct nl_sock *, const struct nfnl_exp *, int); + +extern void nfnl_exp_set_family(struct nfnl_exp *, uint8_t); +extern uint8_t nfnl_exp_get_family(const struct nfnl_exp *); + +extern void nfnl_exp_set_timeout(struct nfnl_exp *, uint32_t); +extern int nfnl_exp_test_timeout(const struct nfnl_exp *); +extern uint32_t nfnl_exp_get_timeout(const struct nfnl_exp *); + +extern void nfnl_exp_set_id(struct nfnl_exp *, uint32_t); +extern int nfnl_exp_test_id(const struct nfnl_exp *); +extern uint32_t nfnl_exp_get_id(const struct nfnl_exp *); + +extern int nfnl_exp_set_helper_name(struct nfnl_exp *, void *); +extern int nfnl_exp_test_helper_name(const struct nfnl_exp *); +extern const char * nfnl_exp_get_helper_name(const struct nfnl_exp *); + +extern void nfnl_exp_set_zone(struct nfnl_exp *, uint16_t); +extern int nfnl_exp_test_zone(const struct nfnl_exp *); +extern uint16_t nfnl_exp_get_zone(const struct nfnl_exp *); + +extern void nfnl_exp_set_flags(struct nfnl_exp *, uint32_t); +extern int nfnl_exp_test_flags(const struct nfnl_exp *); +extern uint32_t nfnl_exp_get_flags(const struct nfnl_exp *); + +extern void nfnl_exp_set_class(struct nfnl_exp *, uint32_t); +extern int nfnl_exp_test_class(const struct nfnl_exp *); +extern uint32_t nfnl_exp_get_class(const struct nfnl_exp *); + +extern int nfnl_exp_set_fn(struct nfnl_exp *, void *); +extern int nfnl_exp_test_fn(const struct nfnl_exp *); +extern const char * nfnl_exp_get_fn(const struct nfnl_exp *); + +extern void nfnl_exp_set_nat_dir(struct nfnl_exp *, uint8_t); +extern int nfnl_exp_test_nat_dir(const struct nfnl_exp *); +extern uint8_t nfnl_exp_get_nat_dir(const struct nfnl_exp *); + +// The int argument specifies which nfnl_exp_dir (expect, master, mask or nat) +// Expectation objects only use orig, not reply + +extern int nfnl_exp_set_src(struct nfnl_exp *, int, struct nl_addr *); +extern int nfnl_exp_test_src(const struct nfnl_exp *, int); +extern struct nl_addr * nfnl_exp_get_src(const struct nfnl_exp *, int); + +extern int nfnl_exp_set_dst(struct nfnl_exp *, int, struct nl_addr *); +extern int nfnl_exp_test_dst(const struct nfnl_exp *, int); +extern struct nl_addr * nfnl_exp_get_dst(const struct nfnl_exp *, int); + +extern void nfnl_exp_set_l4protonum(struct nfnl_exp *, int, uint8_t); +extern int nfnl_exp_test_l4protonum(const struct nfnl_exp *, int); +extern uint8_t nfnl_exp_get_l4protonum(const struct nfnl_exp *, int); + +extern void nfnl_exp_set_ports(struct nfnl_exp *, int, uint16_t, uint16_t); +extern int nfnl_exp_test_ports(const struct nfnl_exp *, int); +extern uint16_t nfnl_exp_get_src_port(const struct nfnl_exp *, int); +extern uint16_t nfnl_exp_get_dst_port(const struct nfnl_exp *, int); + +extern void nfnl_exp_set_icmp(struct nfnl_exp *, int, uint16_t, uint8_t, uint8_t); +extern int nfnl_exp_test_icmp(const struct nfnl_exp *, int); +extern uint16_t nfnl_exp_get_icmp_id(const struct nfnl_exp *, int); +extern uint8_t nfnl_exp_get_icmp_type(const struct nfnl_exp *, int); +extern uint8_t nfnl_exp_get_icmp_code(const struct nfnl_exp *, int); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netfilter/log.h b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/log.h new file mode 100644 index 0000000000000000000000000000000000000000..2002fa8bfd1f19d706115b0e259e5c79a9f33b35 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/log.h @@ -0,0 +1,109 @@ +/* + * netlink/netfilter/log.h Netfilter Log + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + * Copyright (c) 2007 Philip Craig + * Copyright (c) 2007 Secure Computing Corporation + * Copyright (c) 2008 Patrick McHardy + */ + +#ifndef NETLINK_LOG_H_ +#define NETLINK_LOG_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_sock; +struct nlmsghdr; +struct nfnl_log; + +extern struct nl_object_ops log_obj_ops; + +enum nfnl_log_copy_mode { + NFNL_LOG_COPY_NONE, + NFNL_LOG_COPY_META, + NFNL_LOG_COPY_PACKET, +}; + +enum nfnl_log_flags { + NFNL_LOG_FLAG_SEQ = 0x1, + NFNL_LOG_FLAG_SEQ_GLOBAL = 0x2, +}; + +/* General */ +extern struct nfnl_log * nfnl_log_alloc(void); +extern int nfnlmsg_log_parse(struct nlmsghdr *, + struct nfnl_log **); + +extern void nfnl_log_get(struct nfnl_log *); +extern void nfnl_log_put(struct nfnl_log *); + +/* Attributes */ +extern void nfnl_log_set_group(struct nfnl_log *, uint16_t); +extern int nfnl_log_test_group(const struct nfnl_log *); +extern uint16_t nfnl_log_get_group(const struct nfnl_log *); + +extern void nfnl_log_set_copy_mode(struct nfnl_log *, + enum nfnl_log_copy_mode); +extern int nfnl_log_test_copy_mode(const struct nfnl_log *); +extern enum nfnl_log_copy_mode nfnl_log_get_copy_mode(const struct nfnl_log *); + +extern char * nfnl_log_copy_mode2str(enum nfnl_log_copy_mode, + char *, size_t); +extern enum nfnl_log_copy_mode nfnl_log_str2copy_mode(const char *); + +extern void nfnl_log_set_copy_range(struct nfnl_log *, uint32_t); +extern int nfnl_log_test_copy_range(const struct nfnl_log *); +extern uint32_t nfnl_log_get_copy_range(const struct nfnl_log *); + +extern void nfnl_log_set_flush_timeout(struct nfnl_log *, uint32_t); +extern int nfnl_log_test_flush_timeout(const struct nfnl_log *); +extern uint32_t nfnl_log_get_flush_timeout(const struct nfnl_log *); + +extern void nfnl_log_set_alloc_size(struct nfnl_log *, uint32_t); +extern int nfnl_log_test_alloc_size(const struct nfnl_log *); +extern uint32_t nfnl_log_get_alloc_size(const struct nfnl_log *); + +extern void nfnl_log_set_queue_threshold(struct nfnl_log *, uint32_t); +extern int nfnl_log_test_queue_threshold(const struct nfnl_log *); +extern uint32_t nfnl_log_get_queue_threshold(const struct nfnl_log *); + +extern void nfnl_log_set_flags(struct nfnl_log *, unsigned int); +extern void nfnl_log_unset_flags(struct nfnl_log *, unsigned int); +extern unsigned int nfnl_log_get_flags(const struct nfnl_log *); + +extern char * nfnl_log_flags2str(unsigned int, char *, size_t); +extern unsigned int nfnl_log_str2flags(const char *); + +extern int nfnl_log_build_pf_bind(uint8_t, struct nl_msg **); +extern int nfnl_log_pf_bind(struct nl_sock *, uint8_t); + +extern int nfnl_log_build_pf_unbind(uint8_t, struct nl_msg **); +extern int nfnl_log_pf_unbind(struct nl_sock *, uint8_t); + +extern int nfnl_log_build_create_request(const struct nfnl_log *, + struct nl_msg **); +extern int nfnl_log_create(struct nl_sock *, const struct nfnl_log *); + +extern int nfnl_log_build_change_request(const struct nfnl_log *, + struct nl_msg **); +extern int nfnl_log_change(struct nl_sock *, const struct nfnl_log *); + +extern int nfnl_log_build_delete_request(const struct nfnl_log *, + struct nl_msg **); +extern int nfnl_log_delete(struct nl_sock *, const struct nfnl_log *); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netfilter/log_msg.h b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/log_msg.h new file mode 100644 index 0000000000000000000000000000000000000000..63b0f6420f48ea78b8b39c59d887699d4e18e4f6 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/log_msg.h @@ -0,0 +1,98 @@ +/* + * netlink/netfilter/log_msg.h Netfilter Log Message + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + * Copyright (c) 2007 Philip Craig + * Copyright (c) 2007 Secure Computing Corporation + * Copyright (c) 2008 Patrick McHardy + */ + +#ifndef NETLINK_LOG_MSG_H_ +#define NETLINK_LOG_MSG_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nlmsghdr; +struct nfnl_log_msg; + +extern struct nl_object_ops log_msg_obj_ops; + +/* General */ +extern struct nfnl_log_msg *nfnl_log_msg_alloc(void); +extern int nfnlmsg_log_msg_parse(struct nlmsghdr *, + struct nfnl_log_msg **); + +extern void nfnl_log_msg_get(struct nfnl_log_msg *); +extern void nfnl_log_msg_put(struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_family(struct nfnl_log_msg *, uint8_t); +extern uint8_t nfnl_log_msg_get_family(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_hwproto(struct nfnl_log_msg *, uint16_t); +extern int nfnl_log_msg_test_hwproto(const struct nfnl_log_msg *); +extern uint16_t nfnl_log_msg_get_hwproto(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_hook(struct nfnl_log_msg *, uint8_t); +extern int nfnl_log_msg_test_hook(const struct nfnl_log_msg *); +extern uint8_t nfnl_log_msg_get_hook(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_mark(struct nfnl_log_msg *, uint32_t); +extern int nfnl_log_msg_test_mark(const struct nfnl_log_msg *); +extern uint32_t nfnl_log_msg_get_mark(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_timestamp(struct nfnl_log_msg *, + struct timeval *); +extern const struct timeval *nfnl_log_msg_get_timestamp(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_indev(struct nfnl_log_msg *, uint32_t); +extern uint32_t nfnl_log_msg_get_indev(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_outdev(struct nfnl_log_msg *, uint32_t); +extern uint32_t nfnl_log_msg_get_outdev(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_physindev(struct nfnl_log_msg *, uint32_t); +extern uint32_t nfnl_log_msg_get_physindev(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_physoutdev(struct nfnl_log_msg *, uint32_t); +extern uint32_t nfnl_log_msg_get_physoutdev(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_hwaddr(struct nfnl_log_msg *, uint8_t *, int); +extern const uint8_t * nfnl_log_msg_get_hwaddr(const struct nfnl_log_msg *, int *); + +extern int nfnl_log_msg_set_payload(struct nfnl_log_msg *, uint8_t *, int); +extern const void * nfnl_log_msg_get_payload(const struct nfnl_log_msg *, int *); + +extern int nfnl_log_msg_set_prefix(struct nfnl_log_msg *, void *); +extern const char * nfnl_log_msg_get_prefix(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_uid(struct nfnl_log_msg *, uint32_t); +extern int nfnl_log_msg_test_uid(const struct nfnl_log_msg *); +extern uint32_t nfnl_log_msg_get_uid(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_gid(struct nfnl_log_msg *, uint32_t); +extern int nfnl_log_msg_test_gid(const struct nfnl_log_msg *); +extern uint32_t nfnl_log_msg_get_gid(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_seq(struct nfnl_log_msg *, uint32_t); +extern int nfnl_log_msg_test_seq(const struct nfnl_log_msg *); +extern uint32_t nfnl_log_msg_get_seq(const struct nfnl_log_msg *); + +extern void nfnl_log_msg_set_seq_global(struct nfnl_log_msg *, uint32_t); +extern int nfnl_log_msg_test_seq_global(const struct nfnl_log_msg *); +extern uint32_t nfnl_log_msg_get_seq_global(const struct nfnl_log_msg *); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netfilter/netfilter.h b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/netfilter.h new file mode 100644 index 0000000000000000000000000000000000000000..dd3589c0e5e4bc3a62edaf4fcf2c3a65d10c3a2e --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/netfilter.h @@ -0,0 +1,31 @@ +/* + * netlink/netfilter/netfilter.h Netfilter generic functions + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008 Patrick McHardy + */ + +#ifndef NETLINK_NETFILTER_H_ +#define NETLINK_NETFILTER_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern char * nfnl_verdict2str(unsigned int, char *, size_t); +extern unsigned int nfnl_str2verdict(const char *); + +extern char * nfnl_inet_hook2str(unsigned int, char *, size_t); +extern unsigned int nfnl_str2inet_hook(const char *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netfilter/nfnl.h b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/nfnl.h new file mode 100644 index 0000000000000000000000000000000000000000..8da4ba16fbf90c6d7c806237b654a57c6daf4459 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/nfnl.h @@ -0,0 +1,44 @@ +/* + * netlink/nfnl/nfnl.h Netfilter Netlink + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + * Copyright (c) 2007 Philip Craig + * Copyright (c) 2007 Secure Computing Corporation + */ + +#ifndef NETLINK_NFNL_H_ +#define NETLINK_NFNL_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define NFNL_HDRLEN NLMSG_ALIGN(sizeof(struct nfgenmsg)) +#define NFNLMSG_TYPE(subsys, subtype) (((subsys) << 8) | (subtype)) + +extern int nfnl_connect(struct nl_sock *); + +extern uint8_t nfnlmsg_subsys(struct nlmsghdr *); +extern uint8_t nfnlmsg_subtype(struct nlmsghdr *); +extern uint8_t nfnlmsg_family(struct nlmsghdr *); +extern uint16_t nfnlmsg_res_id(struct nlmsghdr *); + +extern int nfnl_send_simple(struct nl_sock *, uint8_t, uint8_t, + int, uint8_t, uint16_t); +extern struct nl_msg * nfnlmsg_alloc_simple(uint8_t, uint8_t, int, + uint8_t, uint16_t); +extern int nfnlmsg_put(struct nl_msg *, uint32_t, uint32_t, + uint8_t, uint8_t, int, uint8_t, uint16_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netfilter/queue.h b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/queue.h new file mode 100644 index 0000000000000000000000000000000000000000..664610db8c1d8a98838cc1e4c7818374de8a46dd --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/queue.h @@ -0,0 +1,90 @@ +/* + * netlink/netfilter/queue.h Netfilter Queue + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2007, 2008 Patrick McHardy + */ + +#ifndef NETLINK_QUEUE_H_ +#define NETLINK_QUEUE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_sock; +struct nlmsghdr; +struct nfnl_queue; + +extern struct nl_object_ops queue_obj_ops; + +enum nfnl_queue_copy_mode { + NFNL_QUEUE_COPY_NONE, + NFNL_QUEUE_COPY_META, + NFNL_QUEUE_COPY_PACKET, +}; + +/* General */ +extern struct nl_sock * nfnl_queue_socket_alloc(void); + +extern struct nfnl_queue * nfnl_queue_alloc(void); + +extern void nfnl_queue_get(struct nfnl_queue *); +extern void nfnl_queue_put(struct nfnl_queue *); + +/* Attributes */ +extern void nfnl_queue_set_group(struct nfnl_queue *, uint16_t); +extern int nfnl_queue_test_group(const struct nfnl_queue *); +extern uint16_t nfnl_queue_get_group(const struct nfnl_queue *); + +extern void nfnl_queue_set_maxlen(struct nfnl_queue *, uint32_t); +extern int nfnl_queue_test_maxlen(const struct nfnl_queue *); +extern uint32_t nfnl_queue_get_maxlen(const struct nfnl_queue *); + +extern void nfnl_queue_set_copy_mode(struct nfnl_queue *, + enum nfnl_queue_copy_mode); +extern int nfnl_queue_test_copy_mode(const struct nfnl_queue *); +extern enum nfnl_queue_copy_mode nfnl_queue_get_copy_mode(const struct nfnl_queue *); + +extern char * nfnl_queue_copy_mode2str(enum nfnl_queue_copy_mode, + char *, size_t); +extern enum nfnl_queue_copy_mode nfnl_queue_str2copy_mode(const char *); + +extern void nfnl_queue_set_copy_range(struct nfnl_queue *, + uint32_t); +extern int nfnl_queue_test_copy_range(const struct nfnl_queue *); +extern uint32_t nfnl_queue_get_copy_range(const struct nfnl_queue *); + +extern int nfnl_queue_build_pf_bind(uint8_t, struct nl_msg **); +extern int nfnl_queue_pf_bind(struct nl_sock *, uint8_t); + +extern int nfnl_queue_build_pf_unbind(uint8_t, struct nl_msg **); +extern int nfnl_queue_pf_unbind(struct nl_sock *, uint8_t); + +extern int nfnl_queue_build_create_request(const struct nfnl_queue *, + struct nl_msg **); +extern int nfnl_queue_create(struct nl_sock *, + const struct nfnl_queue *); + +extern int nfnl_queue_build_change_request(const struct nfnl_queue *, + struct nl_msg **); +extern int nfnl_queue_change(struct nl_sock *, + const struct nfnl_queue *); + +extern int nfnl_queue_build_delete_request(const struct nfnl_queue *, + struct nl_msg **); +extern int nfnl_queue_delete(struct nl_sock *, + const struct nfnl_queue *); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netfilter/queue_msg.h b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/queue_msg.h new file mode 100644 index 0000000000000000000000000000000000000000..9befee7c7db90152c2b6929c41c8d06a961977df --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netfilter/queue_msg.h @@ -0,0 +1,106 @@ +/* + * netlink/netfilter/queue_msg.h Netfilter Queue Messages + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2007, 2008 Patrick McHardy + */ + +#ifndef NETLINK_QUEUE_MSG_H_ +#define NETLINK_QUEUE_MSG_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_sock; +struct nlmsghdr; +struct nfnl_queue_msg; + +extern struct nl_object_ops queue_msg_obj_ops; + +/* General */ +extern struct nfnl_queue_msg * nfnl_queue_msg_alloc(void); +extern int nfnlmsg_queue_msg_parse(struct nlmsghdr *, + struct nfnl_queue_msg **); + +extern void nfnl_queue_msg_get(struct nfnl_queue_msg *); +extern void nfnl_queue_msg_put(struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_group(struct nfnl_queue_msg *, uint16_t); +extern int nfnl_queue_msg_test_group(const struct nfnl_queue_msg *); +extern uint16_t nfnl_queue_msg_get_group(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_family(struct nfnl_queue_msg *, uint8_t); +extern int nfnl_queue_msg_test_family(const struct nfnl_queue_msg *); +extern uint8_t nfnl_queue_msg_get_family(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_packetid(struct nfnl_queue_msg *, uint32_t); +extern int nfnl_queue_msg_test_packetid(const struct nfnl_queue_msg *); +extern uint32_t nfnl_queue_msg_get_packetid(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_hwproto(struct nfnl_queue_msg *, uint16_t); +extern int nfnl_queue_msg_test_hwproto(const struct nfnl_queue_msg *); +extern uint16_t nfnl_queue_msg_get_hwproto(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_hook(struct nfnl_queue_msg *, uint8_t); +extern int nfnl_queue_msg_test_hook(const struct nfnl_queue_msg *); +extern uint8_t nfnl_queue_msg_get_hook(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_mark(struct nfnl_queue_msg *, uint32_t); +extern int nfnl_queue_msg_test_mark(const struct nfnl_queue_msg *); +extern uint32_t nfnl_queue_msg_get_mark(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_timestamp(struct nfnl_queue_msg *, + struct timeval *); +extern int nfnl_queue_msg_test_timestamp(const struct nfnl_queue_msg *); +extern const struct timeval * nfnl_queue_msg_get_timestamp(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_indev(struct nfnl_queue_msg *, uint32_t); +extern int nfnl_queue_msg_test_indev(const struct nfnl_queue_msg *); +extern uint32_t nfnl_queue_msg_get_indev(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_outdev(struct nfnl_queue_msg *, uint32_t); +extern int nfnl_queue_msg_test_outdev(const struct nfnl_queue_msg *); +extern uint32_t nfnl_queue_msg_get_outdev(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_physindev(struct nfnl_queue_msg *, uint32_t); +extern int nfnl_queue_msg_test_physindev(const struct nfnl_queue_msg *); +extern uint32_t nfnl_queue_msg_get_physindev(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_physoutdev(struct nfnl_queue_msg *, uint32_t); +extern int nfnl_queue_msg_test_physoutdev(const struct nfnl_queue_msg *); +extern uint32_t nfnl_queue_msg_get_physoutdev(const struct nfnl_queue_msg *); + +extern void nfnl_queue_msg_set_hwaddr(struct nfnl_queue_msg *, uint8_t *, int); +extern int nfnl_queue_msg_test_hwaddr(const struct nfnl_queue_msg *); +extern const uint8_t * nfnl_queue_msg_get_hwaddr(const struct nfnl_queue_msg *, int *); + +extern int nfnl_queue_msg_set_payload(struct nfnl_queue_msg *, uint8_t *, int); +extern int nfnl_queue_msg_test_payload(const struct nfnl_queue_msg *); +extern const void * nfnl_queue_msg_get_payload(const struct nfnl_queue_msg *, int *); + +extern void nfnl_queue_msg_set_verdict(struct nfnl_queue_msg *, + unsigned int); +extern int nfnl_queue_msg_test_verdict(const struct nfnl_queue_msg *); +extern unsigned int nfnl_queue_msg_get_verdict(const struct nfnl_queue_msg *); + +extern struct nl_msg * nfnl_queue_msg_build_verdict(const struct nfnl_queue_msg *); +extern int nfnl_queue_msg_send_verdict(struct nl_sock *, + const struct nfnl_queue_msg *); +extern int nfnl_queue_msg_send_verdict_batch(struct nl_sock *, + const struct nfnl_queue_msg *); +extern int nfnl_queue_msg_send_verdict_payload(struct nl_sock *, + const struct nfnl_queue_msg *, + const void *, unsigned ); +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netlink-compat.h b/hardware/wifi/libnl/include/libnl3/netlink/netlink-compat.h new file mode 100644 index 0000000000000000000000000000000000000000..17ec9fc8d1dfa8cd3b6dced43edaa9b44d83acda --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netlink-compat.h @@ -0,0 +1,50 @@ +/* + * netlink/netlink-compat.h Netlink Compatability + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_COMPAT_H_ +#define NETLINK_COMPAT_H_ + +#if !defined _LINUX_SOCKET_H && !defined _BITS_SOCKADDR_H +typedef unsigned short sa_family_t; +#endif + +#ifndef IFNAMSIZ +/** Maximum length of a interface name */ +#define IFNAMSIZ 16 +#endif + +/* patch 2.4.x if_arp */ +#ifndef ARPHRD_INFINIBAND +#define ARPHRD_INFINIBAND 32 +#endif + +/* patch 2.4.x eth header file */ +#ifndef ETH_P_MPLS_UC +#define ETH_P_MPLS_UC 0x8847 +#endif + +#ifndef ETH_P_MPLS_MC +#define ETH_P_MPLS_MC 0x8848 +#endif + +#ifndef ETH_P_EDP2 +#define ETH_P_EDP2 0x88A2 +#endif + +#ifndef ETH_P_HDLC +#define ETH_P_HDLC 0x0019 +#endif + +#ifndef AF_LLC +#define AF_LLC 26 +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netlink-kernel.h b/hardware/wifi/libnl/include/libnl3/netlink/netlink-kernel.h new file mode 100644 index 0000000000000000000000000000000000000000..f09051daf6a4c715d5a7bd5a69d01d91a5786e8c --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netlink-kernel.h @@ -0,0 +1,293 @@ +#ifndef __NETLINK_KERNEL_H_ +#define __NETLINK_KERNEL_H_ + +#if 0 + +/* + * FIXME: Goal is to preseve the documentation but make it simple + * to keep linux/netlink.h in sync. Maybe use named documentation + * sections. + */ + +/** + * Netlink socket address + * @ingroup nl + */ +struct sockaddr_nl +{ + /** socket family (AF_NETLINK) */ + sa_family_t nl_family; + + /** Padding (unused) */ + unsigned short nl_pad; + + /** Unique process ID */ + uint32_t nl_pid; + + /** Multicast group subscriptions */ + uint32_t nl_groups; +}; + +/** + * @addtogroup msg + * @{ + */ + + +/** + * Netlink message header + */ +struct nlmsghdr +{ + /** Length of message including header and padding. */ + uint32_t nlmsg_len; + + /** Message type (content type) */ + uint16_t nlmsg_type; + + /** Message flags */ + uint16_t nlmsg_flags; + + /** Sequence number of message \see core_sk_seq_num. */ + uint32_t nlmsg_seq; + + /** Netlink port */ + uint32_t nlmsg_pid; +}; + +/** + * @name Standard message flags + * @{ + */ + +/** + * Must be set on all request messages (typically from user space to + * kernel space). + */ +#define NLM_F_REQUEST 1 + +/** + * Indicates the message is part of a multipart message terminated + * by NLMSG_DONE. + */ +#define NLM_F_MULTI 2 + +/** + * Request for an acknowledgment on success. + */ +#define NLM_F_ACK 4 + +/** + * Echo this request + */ +#define NLM_F_ECHO 8 + +/** @} */ + +/** + * @name Additional message flags for GET requests + * @{ + */ + +/** + * Return the complete table instead of a single entry. + */ +#define NLM_F_ROOT 0x100 + +/** + * Return all entries matching criteria passed in message content. + */ +#define NLM_F_MATCH 0x200 + +/** + * Return an atomic snapshot of the table being referenced. This + * may require special privileges because it has the potential to + * interrupt service in the FE for a longer time. + */ +#define NLM_F_ATOMIC 0x400 + +/** + * Dump all entries + */ +#define NLM_F_DUMP (NLM_F_ROOT|NLM_F_MATCH) + +/** @} */ + +/** + * @name Additional messsage flags for NEW requests + * @{ + */ + +/** + * Replace existing matching config object with this request. + */ +#define NLM_F_REPLACE 0x100 + +/** + * Don't replace the config object if it already exists. + */ +#define NLM_F_EXCL 0x200 + +/** + * Create config object if it doesn't already exist. + */ +#define NLM_F_CREATE 0x400 + +/** + * Add to the end of the object list. + */ +#define NLM_F_APPEND 0x800 + +/** @} */ + +/** + * @name Standard Message types + * @{ + */ + +/** + * No operation, message must be ignored + */ +#define NLMSG_NOOP 0x1 + +/** + * The message signals an error and the payload contains a nlmsgerr + * structure. This can be looked at as a NACK and typically it is + * from FEC to CPC. + */ +#define NLMSG_ERROR 0x2 + +/** + * Message terminates a multipart message. + */ +#define NLMSG_DONE 0x3 + +/** + * The message signals that data got lost + */ +#define NLMSG_OVERRUN 0x4 + +/** + * Lower limit of reserved message types + */ +#define NLMSG_MIN_TYPE 0x10 + +/** @} */ + +/** + * Netlink error message header + */ +struct nlmsgerr +{ + /** Error code (errno number) */ + int error; + + /** Original netlink message causing the error */ + struct nlmsghdr msg; +}; + +struct nl_pktinfo +{ + __u32 group; +}; + +/** + * Netlink alignment constant, all boundries within messages must be align to this. + * + * See \ref core_msg_fmt_align for more information on message alignment. + */ +#define NLMSG_ALIGNTO 4 + +/** + * Returns \p len properly aligned to NLMSG_ALIGNTO. + * + * See \ref core_msg_fmt_align for more information on message alignment. + */ +#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) ) + +/** + * Length of a netlink message header including padding. + * + * See \ref core_msg_fmt_align for more information on message alignment. + */ +#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr))) + +/** @} */ + +/** + * @addtogroup attr + * @{ + */ + +/* + */ + +/** + * Netlink attribute structure + * + * @code + * <------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)--> + * +---------------------+- - -+- - - - - - - - - -+- - -+ + * | Header | Pad | Payload | Pad | + * | (struct nlattr) | ing | | ing | + * +---------------------+- - -+- - - - - - - - - -+- - -+ + * <-------------- nlattr->nla_len --------------> + * @endcode + */ +struct nlattr { + /** + * Attribute length in bytes including header + */ + __u16 nla_len; + + /** + * Netlink attribute type + */ + __u16 nla_type; +}; + +/** + * @name Attribute Type Flags + * + * @code + * nla_type (16 bits) + * +---+---+-------------------------------+ + * | N | O | Attribute Type | + * +---+---+-------------------------------+ + * N := Carries nested attributes + * O := Payload stored in network byte order + * @endcode + * + * @note The N and O flag are mutually exclusive. + * + * @{ + */ + +/* + */ +#define NLA_F_NESTED (1 << 15) +#define NLA_F_NET_BYTEORDER (1 << 14) +#define NLA_TYPE_MASK ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER) + +/** @} */ + +#define NLA_ALIGNTO 4 + +/** + * Returns \p len properly aligned to NLA_ALIGNTO. + * + * See \ref core_msg_fmt_align for more information on message alignment. + */ +#define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1)) + +/** + * Length of a netlink attribute header including padding. + * + * See \ref core_msg_fmt_align for more information on message alignment. + */ +#define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr))) + +/** @} */ + +#endif +#endif /* __LINUX_NETLINK_H */ diff --git a/hardware/wifi/libnl/include/libnl3/netlink/netlink.h b/hardware/wifi/libnl/include/libnl3/netlink/netlink.h new file mode 100644 index 0000000000000000000000000000000000000000..28dba06edd56cfcc18811c43680ebb13ce038807 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/netlink.h @@ -0,0 +1,98 @@ +/* + * netlink/netlink.h Netlink Interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2013 Thomas Graf + */ + +#ifndef NETLINK_NETLINK_H_ +#define NETLINK_NETLINK_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct ucred; +struct nl_cache_ops; +struct nl_parser_param; +struct nl_object; +struct nl_sock; + +extern int nl_debug; +extern struct nl_dump_params nl_debug_dp; + +/* Connection Management */ +extern int nl_connect(struct nl_sock *, int); +extern void nl_close(struct nl_sock *); + +/* Send */ +extern int nl_sendto(struct nl_sock *, void *, size_t); +extern int nl_sendmsg(struct nl_sock *, struct nl_msg *, + struct msghdr *); +extern int nl_send(struct nl_sock *, struct nl_msg *); +extern int nl_send_iovec(struct nl_sock *, struct nl_msg *, + struct iovec *, unsigned); +extern void nl_complete_msg(struct nl_sock *, + struct nl_msg *); +extern void nl_auto_complete(struct nl_sock *, + struct nl_msg *); +extern int nl_send_auto(struct nl_sock *, struct nl_msg *); +extern int nl_send_auto_complete(struct nl_sock *, + struct nl_msg *); +extern int nl_send_sync(struct nl_sock *, struct nl_msg *); +extern int nl_send_simple(struct nl_sock *, int, int, + void *, size_t); + +/* Receive */ +extern int nl_recv(struct nl_sock *, + struct sockaddr_nl *, unsigned char **, + struct ucred **); + +extern int nl_recvmsgs(struct nl_sock *, struct nl_cb *); +extern int nl_recvmsgs_report(struct nl_sock *, struct nl_cb *); + +extern int nl_recvmsgs_default(struct nl_sock *); + +extern int nl_wait_for_ack(struct nl_sock *); + +extern int nl_pickup(struct nl_sock *, + int (*parser)(struct nl_cache_ops *, + struct sockaddr_nl *, + struct nlmsghdr *, + struct nl_parser_param *), + struct nl_object **); +/* Netlink Family Translations */ +extern char * nl_nlfamily2str(int, char *, size_t); +extern int nl_str2nlfamily(const char *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/object-api.h b/hardware/wifi/libnl/include/libnl3/netlink/object-api.h new file mode 100644 index 0000000000000000000000000000000000000000..75f29cb59c30b1dfae820deed4fa9f0c437efd33 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/object-api.h @@ -0,0 +1,19 @@ +/* + * netlink/object-api.h Object API + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Thomas Graf + */ + +#ifndef NETLINK_DUMMY_OBJECT_API_H_ +#define NETLINK_DUMMY_OBJECT_API_H_ + +#include +#include +#include + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/object.h b/hardware/wifi/libnl/include/libnl3/netlink/object.h new file mode 100644 index 0000000000000000000000000000000000000000..a95feda7b4db2ed8f82ee47acdb5b2ce33736b3c --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/object.h @@ -0,0 +1,80 @@ +/* + * netlink/object.c Generic Cacheable Object + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_OBJECT_H_ +#define NETLINK_OBJECT_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct nl_cache; +struct nl_object; +struct nl_object_ops; + +#define OBJ_CAST(ptr) ((struct nl_object *) (ptr)) + +/* General */ +extern struct nl_object * nl_object_alloc(struct nl_object_ops *); +extern int nl_object_alloc_name(const char *, + struct nl_object **); +extern void nl_object_free(struct nl_object *); +extern struct nl_object * nl_object_clone(struct nl_object *obj); +extern int nl_object_update(struct nl_object *dst, + struct nl_object *src); +extern void nl_object_get(struct nl_object *); +extern void nl_object_put(struct nl_object *); +extern int nl_object_shared(struct nl_object *); +extern void nl_object_dump(struct nl_object *, + struct nl_dump_params *); +extern void nl_object_dump_buf(struct nl_object *, char *, size_t); +extern int nl_object_identical(struct nl_object *, + struct nl_object *); +extern uint32_t nl_object_diff(struct nl_object *, + struct nl_object *); +extern int nl_object_match_filter(struct nl_object *, + struct nl_object *); +extern char * nl_object_attrs2str(struct nl_object *, + uint32_t attrs, char *buf, + size_t); +extern char * nl_object_attr_list(struct nl_object *, + char *, size_t); +extern void nl_object_keygen(struct nl_object *, + uint32_t *, uint32_t); + +/* Marks */ +extern void nl_object_mark(struct nl_object *); +extern void nl_object_unmark(struct nl_object *); +extern int nl_object_is_marked(struct nl_object *); + +/* Access Functions */ +extern int nl_object_get_refcnt(struct nl_object *); +extern struct nl_cache * nl_object_get_cache(struct nl_object *); +extern const char * nl_object_get_type(const struct nl_object *); +extern int nl_object_get_msgtype(const struct nl_object *); +struct nl_object_ops * nl_object_get_ops(const struct nl_object *); +uint32_t nl_object_get_id_attrs(struct nl_object *obj); + + +static inline void * nl_object_priv(struct nl_object *obj) +{ + return obj; +} + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/act/mirred.h b/hardware/wifi/libnl/include/libnl3/netlink/route/act/mirred.h new file mode 100644 index 0000000000000000000000000000000000000000..d65ed3788be615ed44fb24d203ef2a03c44d0385 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/act/mirred.h @@ -0,0 +1,35 @@ +/* + * netlink/route/cls/mirred.h mirred action + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Cong Wang + */ + +#ifndef NETLINK_MIRRED_H_ +#define NETLINK_MIRRED_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern int rtnl_mirred_set_action(struct rtnl_act *, int); +extern int rtnl_mirred_get_action(struct rtnl_act *); +extern int rtnl_mirred_set_ifindex(struct rtnl_act *, uint32_t); +extern uint32_t rtnl_mirred_get_ifindex(struct rtnl_act *); +extern int rtnl_mirred_set_policy(struct rtnl_act *, int); +extern int rtnl_mirred_get_policy(struct rtnl_act *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/action.h b/hardware/wifi/libnl/include/libnl3/netlink/route/action.h new file mode 100644 index 0000000000000000000000000000000000000000..054bdd87b3d814ef20ee94ffee61da3824390b90 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/action.h @@ -0,0 +1,46 @@ +/* + * netlink/route/action.h Actions + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Cong Wang + */ + +#ifndef NETLINK_ACTION_H_ +#define NETLINK_ACTION_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct rtnl_act *rtnl_act_alloc(void); +extern void rtnl_act_get(struct rtnl_act *); +extern void rtnl_act_put(struct rtnl_act *); +extern int rtnl_act_build_add_request(struct rtnl_act *, int, + struct nl_msg **); +extern int rtnl_act_add(struct nl_sock *, struct rtnl_act *, int); + +extern int rtnl_act_build_change_request(struct rtnl_act *, int, + struct nl_msg **); +extern int rtnl_act_build_delete_request(struct rtnl_act *, int, + struct nl_msg **); +extern int rtnl_act_delete(struct nl_sock *, struct rtnl_act *, + int); +extern int rtnl_act_append(struct rtnl_act **, struct rtnl_act *); +extern int rtnl_act_remove(struct rtnl_act **, struct rtnl_act *); +extern int rtnl_act_fill(struct nl_msg *, int, struct rtnl_act *); +extern void rtnl_act_put_all(struct rtnl_act **); +extern int rtnl_act_parse(struct rtnl_act **, struct nlattr *); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/addr.h b/hardware/wifi/libnl/include/libnl3/netlink/route/addr.h new file mode 100644 index 0000000000000000000000000000000000000000..56c12e780d90968b80e0612e9395f624b1724943 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/addr.h @@ -0,0 +1,98 @@ +/* + * netlink/route/addr.c rtnetlink addr layer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + * Copyright (c) 2003-2006 Baruch Even , + * Mediatrix Telecom, inc. + */ + +#ifndef NETADDR_ADDR_H_ +#define NETADDR_ADDR_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_addr; + +/* General */ +extern struct rtnl_addr *rtnl_addr_alloc(void); +extern void rtnl_addr_put(struct rtnl_addr *); + +extern int rtnl_addr_alloc_cache(struct nl_sock *, struct nl_cache **); +extern struct rtnl_addr * + rtnl_addr_get(struct nl_cache *, int, struct nl_addr *); + +extern int rtnl_addr_build_add_request(struct rtnl_addr *, int, + struct nl_msg **); +extern int rtnl_addr_add(struct nl_sock *, struct rtnl_addr *, int); + +extern int rtnl_addr_build_delete_request(struct rtnl_addr *, int, + struct nl_msg **); +extern int rtnl_addr_delete(struct nl_sock *, + struct rtnl_addr *, int); + +extern char * rtnl_addr_flags2str(int, char *, size_t); +extern int rtnl_addr_str2flags(const char *); + +extern int rtnl_addr_set_label(struct rtnl_addr *, const char *); +extern char * rtnl_addr_get_label(struct rtnl_addr *); + +extern void rtnl_addr_set_ifindex(struct rtnl_addr *, int); +extern int rtnl_addr_get_ifindex(struct rtnl_addr *); + +extern void rtnl_addr_set_link(struct rtnl_addr *, struct rtnl_link *); +extern struct rtnl_link * + rtnl_addr_get_link(struct rtnl_addr *); + +extern void rtnl_addr_set_family(struct rtnl_addr *, int); +extern int rtnl_addr_get_family(struct rtnl_addr *); + +extern void rtnl_addr_set_prefixlen(struct rtnl_addr *, int); +extern int rtnl_addr_get_prefixlen(struct rtnl_addr *); + +extern void rtnl_addr_set_scope(struct rtnl_addr *, int); +extern int rtnl_addr_get_scope(struct rtnl_addr *); + +extern void rtnl_addr_set_flags(struct rtnl_addr *, unsigned int); +extern void rtnl_addr_unset_flags(struct rtnl_addr *, unsigned int); +extern unsigned int rtnl_addr_get_flags(struct rtnl_addr *); + +extern int rtnl_addr_set_local(struct rtnl_addr *, + struct nl_addr *); +extern struct nl_addr *rtnl_addr_get_local(struct rtnl_addr *); + +extern int rtnl_addr_set_peer(struct rtnl_addr *, struct nl_addr *); +extern struct nl_addr *rtnl_addr_get_peer(struct rtnl_addr *); + +extern int rtnl_addr_set_broadcast(struct rtnl_addr *, struct nl_addr *); +extern struct nl_addr *rtnl_addr_get_broadcast(struct rtnl_addr *); + +extern int rtnl_addr_set_multicast(struct rtnl_addr *, struct nl_addr *); +extern struct nl_addr *rtnl_addr_get_multicast(struct rtnl_addr *); + +extern int rtnl_addr_set_anycast(struct rtnl_addr *, struct nl_addr *); +extern struct nl_addr *rtnl_addr_get_anycast(struct rtnl_addr *); + +extern uint32_t rtnl_addr_get_valid_lifetime(struct rtnl_addr *); +extern void rtnl_addr_set_valid_lifetime(struct rtnl_addr *, uint32_t); +extern uint32_t rtnl_addr_get_preferred_lifetime(struct rtnl_addr *); +extern void rtnl_addr_set_preferred_lifetime(struct rtnl_addr *, uint32_t); +extern uint32_t rtnl_addr_get_create_time(struct rtnl_addr *); +extern uint32_t rtnl_addr_get_last_update_time(struct rtnl_addr *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/class.h b/hardware/wifi/libnl/include/libnl3/netlink/route/class.h new file mode 100644 index 0000000000000000000000000000000000000000..e73b60a7b709603efea2163387bc9f4c73918138 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/class.h @@ -0,0 +1,66 @@ +/* + * netlink/route/class.h Traffic Classes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + */ + +#ifndef NETLINK_CLASS_H_ +#define NETLINK_CLASS_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_class; + +extern struct rtnl_class * + rtnl_class_alloc(void); +extern void rtnl_class_put(struct rtnl_class *); + +extern int rtnl_class_alloc_cache(struct nl_sock *, int, + struct nl_cache **); +extern struct rtnl_class * + rtnl_class_get(struct nl_cache *, int, uint32_t); + +extern struct rtnl_qdisc * + rtnl_class_leaf_qdisc(struct rtnl_class *, + struct nl_cache *); + +extern int rtnl_class_build_add_request(struct rtnl_class *, int, + struct nl_msg **); +extern int rtnl_class_add(struct nl_sock *, struct rtnl_class *, + int); + +extern int rtnl_class_build_delete_request(struct rtnl_class *, + struct nl_msg **); +extern int rtnl_class_delete(struct nl_sock *, + struct rtnl_class *); + +/* deprecated functions */ +extern void rtnl_class_foreach_child(struct rtnl_class *, + struct nl_cache *, + void (*cb)(struct nl_object *, + void *), + void *) + __attribute__((deprecated)); +extern void rtnl_class_foreach_cls(struct rtnl_class *, + struct nl_cache *, + void (*cb)(struct nl_object *, + void *), + void *) + __attribute__((deprecated)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/classifier.h b/hardware/wifi/libnl/include/libnl3/netlink/route/classifier.h new file mode 100644 index 0000000000000000000000000000000000000000..a8c11798cadd3999c1eb2bc33e41beb56603f06a --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/classifier.h @@ -0,0 +1,52 @@ +/* + * netlink/route/classifier.h Classifiers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + */ + +#ifndef NETLINK_CLASSIFIER_H_ +#define NETLINK_CLASSIFIER_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct rtnl_cls *rtnl_cls_alloc(void); +extern void rtnl_cls_put(struct rtnl_cls *); + +extern int rtnl_cls_alloc_cache(struct nl_sock *, int, uint32_t, + struct nl_cache **); + +extern int rtnl_cls_build_add_request(struct rtnl_cls *, int, + struct nl_msg **); +extern int rtnl_cls_add(struct nl_sock *, struct rtnl_cls *, int); +extern int rtnl_cls_change(struct nl_sock *, struct rtnl_cls *, int); + +extern int rtnl_cls_build_change_request(struct rtnl_cls *, int, + struct nl_msg **); +extern int rtnl_cls_build_delete_request(struct rtnl_cls *, int, + struct nl_msg **); +extern int rtnl_cls_delete(struct nl_sock *, struct rtnl_cls *, + int); + +extern void rtnl_cls_set_prio(struct rtnl_cls *, uint16_t); +extern uint16_t rtnl_cls_get_prio(struct rtnl_cls *); + +extern void rtnl_cls_set_protocol(struct rtnl_cls *, uint16_t); +extern uint16_t rtnl_cls_get_protocol(struct rtnl_cls *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/basic.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/basic.h new file mode 100644 index 0000000000000000000000000000000000000000..f00793ca6189bef254699bcbb979d848ef403682 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/basic.h @@ -0,0 +1,36 @@ +/* + * netlink/route/cls/basic.h Basic Classifier + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2010 Thomas Graf + */ + +#ifndef NETLINK_BASIC_H_ +#define NETLINK_BASIC_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_basic_set_target(struct rtnl_cls *, uint32_t); +extern uint32_t rtnl_basic_get_target(struct rtnl_cls *); +extern void rtnl_basic_set_ematch(struct rtnl_cls *, + struct rtnl_ematch_tree *); +extern struct rtnl_ematch_tree *rtnl_basic_get_ematch(struct rtnl_cls *); +extern int rtnl_basic_add_action(struct rtnl_cls *, struct rtnl_act *); +extern int rtnl_basic_del_action(struct rtnl_cls *, struct rtnl_act *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/cgroup.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/cgroup.h new file mode 100644 index 0000000000000000000000000000000000000000..9cd484540b7bba338c5f51843fb281a1c3f540dc --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/cgroup.h @@ -0,0 +1,32 @@ +/* + * netlink/route/cls/cgroup.h Control Groups Classifier + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2009-2010 Thomas Graf + */ + +#ifndef NETLINK_CLS_CGROUP_H_ +#define NETLINK_CLS_CGROUP_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_cgroup_set_ematch(struct rtnl_cls *, + struct rtnl_ematch_tree *); +struct rtnl_ematch_tree * rtnl_cgroup_get_ematch(struct rtnl_cls *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch.h new file mode 100644 index 0000000000000000000000000000000000000000..13f9c323dfc71c80a5029f77850fabe2850b2629 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch.h @@ -0,0 +1,95 @@ +/* + * netlink/route/cls/ematch.h Extended Matches + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2010 Thomas Graf + */ + +#ifndef NETLINK_CLS_EMATCH_H_ +#define NETLINK_CLS_EMATCH_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FIXME: Should be moved to the kernel header at some point */ +#define RTNL_EMATCH_PROGID 2 + +struct rtnl_ematch; +struct rtnl_ematch_tree; + +/** + * Extended Match Operations + */ +struct rtnl_ematch_ops +{ + int eo_kind; + const char * eo_name; + size_t eo_minlen; + size_t eo_datalen; + + int (*eo_parse)(struct rtnl_ematch *, void *, size_t); + void (*eo_dump)(struct rtnl_ematch *, + struct nl_dump_params *); + int (*eo_fill)(struct rtnl_ematch *, struct nl_msg *); + void (*eo_free)(struct rtnl_ematch *); + struct nl_list_head eo_list; +}; + +extern int rtnl_ematch_register(struct rtnl_ematch_ops *); +extern struct rtnl_ematch_ops * rtnl_ematch_lookup_ops(int); +extern struct rtnl_ematch_ops * rtnl_ematch_lookup_ops_by_name(const char *); + +extern struct rtnl_ematch * rtnl_ematch_alloc(void); +extern int rtnl_ematch_add_child(struct rtnl_ematch *, + struct rtnl_ematch *); +extern void rtnl_ematch_unlink(struct rtnl_ematch *); +extern void rtnl_ematch_free(struct rtnl_ematch *); + +extern void * rtnl_ematch_data(struct rtnl_ematch *); +extern void rtnl_ematch_set_flags(struct rtnl_ematch *, + uint16_t); +extern void rtnl_ematch_unset_flags(struct rtnl_ematch *, + uint16_t); +extern uint16_t rtnl_ematch_get_flags(struct rtnl_ematch *); +extern int rtnl_ematch_set_ops(struct rtnl_ematch *, + struct rtnl_ematch_ops *); +extern int rtnl_ematch_set_kind(struct rtnl_ematch *, + uint16_t); +extern int rtnl_ematch_set_name(struct rtnl_ematch *, + const char *); + +extern struct rtnl_ematch_tree *rtnl_ematch_tree_alloc(uint16_t); +extern void rtnl_ematch_tree_free(struct rtnl_ematch_tree *); +extern void rtnl_ematch_tree_add(struct rtnl_ematch_tree *, + struct rtnl_ematch *); + +extern int rtnl_ematch_parse_attr(struct nlattr *, + struct rtnl_ematch_tree **); +extern int rtnl_ematch_fill_attr(struct nl_msg *, int, + struct rtnl_ematch_tree *); +extern void rtnl_ematch_tree_dump(struct rtnl_ematch_tree *, + struct nl_dump_params *); + + +extern int rtnl_ematch_parse_expr(const char *, char **, + struct rtnl_ematch_tree **); + +extern char * rtnl_ematch_offset2txt(uint8_t, uint16_t, + char *, size_t); +extern char * rtnl_ematch_opnd2txt(uint8_t, char *, size_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/cmp.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/cmp.h new file mode 100644 index 0000000000000000000000000000000000000000..308113e08ebc39e48961606fcf289bc67e107755 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/cmp.h @@ -0,0 +1,32 @@ +/* + * netlink/route/cls/ematch/cmp.h Simple Comparison + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2010 Thomas Graf + */ + +#ifndef NETLINK_CLS_EMATCH_CMP_H_ +#define NETLINK_CLS_EMATCH_CMP_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_ematch_cmp_set(struct rtnl_ematch *, + struct tcf_em_cmp *); +extern struct tcf_em_cmp * + rtnl_ematch_cmp_get(struct rtnl_ematch *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/meta.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/meta.h new file mode 100644 index 0000000000000000000000000000000000000000..2fe58990431f48145139bd85bd360847410223b6 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/meta.h @@ -0,0 +1,41 @@ +/* + * netlink/route/cls/ematch/meta.h Metadata Match + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2010 Thomas Graf + */ + +#ifndef NETLINK_CLS_EMATCH_META_H_ +#define NETLINK_CLS_EMATCH_META_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_meta_value; + +extern struct rtnl_meta_value * rtnl_meta_value_alloc_int(uint64_t); +extern struct rtnl_meta_value * rtnl_meta_value_alloc_var(void *, size_t); +extern struct rtnl_meta_value * rtnl_meta_value_alloc_id(uint8_t, uint16_t, + uint8_t, uint64_t); +extern void rtnl_meta_value_put(struct rtnl_meta_value *); + +extern void rtnl_ematch_meta_set_lvalue(struct rtnl_ematch *, + struct rtnl_meta_value *); +void rtnl_ematch_meta_set_rvalue(struct rtnl_ematch *, + struct rtnl_meta_value *); +extern void rtnl_ematch_meta_set_operand(struct rtnl_ematch *, uint8_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/nbyte.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/nbyte.h new file mode 100644 index 0000000000000000000000000000000000000000..014c719b1ccc9ce894392a329617b941f1c70322 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/nbyte.h @@ -0,0 +1,36 @@ +/* + * netlink/route/cls/ematch/nbyte.h N-Byte Comparison + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2010 Thomas Graf + */ + +#ifndef NETLINK_CLS_EMATCH_NBYTE_H_ +#define NETLINK_CLS_EMATCH_NBYTE_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_ematch_nbyte_set_offset(struct rtnl_ematch *, + uint8_t, uint16_t); +extern uint16_t rtnl_ematch_nbyte_get_offset(struct rtnl_ematch *); +extern uint8_t rtnl_ematch_nbyte_get_layer(struct rtnl_ematch *); +extern void rtnl_ematch_nbyte_set_pattern(struct rtnl_ematch *, + uint8_t *, size_t); +extern uint8_t * rtnl_ematch_nbyte_get_pattern(struct rtnl_ematch *); +extern size_t rtnl_ematch_nbyte_get_len(struct rtnl_ematch *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/text.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/text.h new file mode 100644 index 0000000000000000000000000000000000000000..e599abf05dff191af4a098bba5c44d716850fc59 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/ematch/text.h @@ -0,0 +1,42 @@ +/* + * netlink/route/cls/ematch/text.h Text Search + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2010 Thomas Graf + */ + +#ifndef NETLINK_CLS_EMATCH_TEXT_H_ +#define NETLINK_CLS_EMATCH_TEXT_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_ematch_text_set_from(struct rtnl_ematch *, + uint8_t, uint16_t); +extern uint16_t rtnl_ematch_text_get_from_offset(struct rtnl_ematch *); +extern uint8_t rtnl_ematch_text_get_from_layer(struct rtnl_ematch *); +extern void rtnl_ematch_text_set_to(struct rtnl_ematch *, + uint8_t, uint16_t); +extern uint16_t rtnl_ematch_text_get_to_offset(struct rtnl_ematch *); +extern uint8_t rtnl_ematch_text_get_to_layer(struct rtnl_ematch *); +extern void rtnl_ematch_text_set_pattern(struct rtnl_ematch *, + char *, size_t); +extern char * rtnl_ematch_text_get_pattern(struct rtnl_ematch *); +extern size_t rtnl_ematch_text_get_len(struct rtnl_ematch *); +extern void rtnl_ematch_text_set_algo(struct rtnl_ematch *, const char *); +extern char * rtnl_ematch_text_get_algo(struct rtnl_ematch *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/fw.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/fw.h new file mode 100644 index 0000000000000000000000000000000000000000..2e1bade067cae823169aa0c0d7ce1ad3c4053502 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/fw.h @@ -0,0 +1,31 @@ +/* + * netlink/route/cls/fw.h fw classifier + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + * Copyright (c) 2006 Petr Gotthard + * Copyright (c) 2006 Siemens AG Oesterreich + */ + +#ifndef NETLINK_FW_H_ +#define NETLINK_FW_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern int rtnl_fw_set_classid(struct rtnl_cls *, uint32_t); +extern int rtnl_fw_set_mask(struct rtnl_cls *, uint32_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/police.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/police.h new file mode 100644 index 0000000000000000000000000000000000000000..cd1efb079cd20783f73534e2a08df05cd6d216be --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/police.h @@ -0,0 +1,29 @@ +/* + * netlink/route/cls/police.h Policer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_CLS_POLICE_H_ +#define NETLINK_CLS_POLICE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern char * nl_police2str(int, char *, size_t); +extern int nl_str2police(const char *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/cls/u32.h b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/u32.h new file mode 100644 index 0000000000000000000000000000000000000000..f35d37a4fc53074662d7a9a2ef033679b4e2e5c8 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/cls/u32.h @@ -0,0 +1,54 @@ +/* + * netlink/route/cls/u32.h u32 classifier + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_U32_H_ +#define NETLINK_U32_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_u32_set_handle(struct rtnl_cls *, int, int, int); +extern int rtnl_u32_set_classid(struct rtnl_cls *, uint32_t); +extern int rtnl_u32_set_divisor(struct rtnl_cls *, uint32_t); +extern int rtnl_u32_set_link(struct rtnl_cls *, uint32_t); +extern int rtnl_u32_set_hashtable(struct rtnl_cls *, uint32_t); +extern int rtnl_u32_set_hashmask(struct rtnl_cls *, uint32_t, uint32_t); +extern int rtnl_u32_set_cls_terminal(struct rtnl_cls *); + +extern int rtnl_u32_set_flags(struct rtnl_cls *, int); +extern int rtnl_u32_add_key(struct rtnl_cls *, uint32_t, uint32_t, + int, int); +extern int rtnl_u32_get_key(struct rtnl_cls *, uint8_t, uint32_t *, uint32_t *, + int *, int *); +extern int rtnl_u32_add_key_uint8(struct rtnl_cls *, uint8_t, uint8_t, + int, int); +extern int rtnl_u32_add_key_uint16(struct rtnl_cls *, uint16_t, uint16_t, + int, int); +extern int rtnl_u32_add_key_uint32(struct rtnl_cls *, uint32_t, uint32_t, + int, int); +extern int rtnl_u32_add_key_in_addr(struct rtnl_cls *, const struct in_addr *, + uint8_t, int, int); +extern int rtnl_u32_add_key_in6_addr(struct rtnl_cls *, const struct in6_addr *, + uint8_t, int, int); +extern int rtnl_u32_add_action(struct rtnl_cls *, struct rtnl_act *); +extern int rtnl_u32_del_action(struct rtnl_cls *, struct rtnl_act *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link.h new file mode 100644 index 0000000000000000000000000000000000000000..a7aa88b75584daa07afb7bc78de984c5177c816e --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link.h @@ -0,0 +1,254 @@ +/* + * netlink/route/link.h Links (Interfaces) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_LINK_H_ +#define NETLINK_LINK_H_ + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @struct rtnl_link link.h "netlink/route/link.h" + * @brief Link object + * @implements nl_object + * @ingroup link + * + * @copydoc private_struct + */ +struct rtnl_link; + +/** + * @ingroup link + */ +typedef enum { + RTNL_LINK_RX_PACKETS, /*!< Packets received */ + RTNL_LINK_TX_PACKETS, /*!< Packets sent */ + RTNL_LINK_RX_BYTES, /*!< Bytes received */ + RTNL_LINK_TX_BYTES, /*!< Bytes sent */ + RTNL_LINK_RX_ERRORS, /*!< Receive errors */ + RTNL_LINK_TX_ERRORS, /*!< Send errors */ + RTNL_LINK_RX_DROPPED, /*!< Received packets dropped */ + RTNL_LINK_TX_DROPPED, /*!< Packets dropped during transmit */ + RTNL_LINK_RX_COMPRESSED, /*!< Compressed packets received */ + RTNL_LINK_TX_COMPRESSED, /*!< Compressed packets sent */ + RTNL_LINK_RX_FIFO_ERR, /*!< Receive FIFO errors */ + RTNL_LINK_TX_FIFO_ERR, /*!< Send FIFO errors */ + RTNL_LINK_RX_LEN_ERR, /*!< Length errors */ + RTNL_LINK_RX_OVER_ERR, /*!< Over errors */ + RTNL_LINK_RX_CRC_ERR, /*!< CRC errors */ + RTNL_LINK_RX_FRAME_ERR, /*!< Frame errors */ + RTNL_LINK_RX_MISSED_ERR, /*!< Missed errors */ + RTNL_LINK_TX_ABORT_ERR, /*!< Aborted errors */ + RTNL_LINK_TX_CARRIER_ERR, /*!< Carrier errors */ + RTNL_LINK_TX_HBEAT_ERR, /*!< Heartbeat errors */ + RTNL_LINK_TX_WIN_ERR, /*!< Window errors */ + RTNL_LINK_COLLISIONS, /*!< Send collisions */ + RTNL_LINK_MULTICAST, /*!< Multicast */ + RTNL_LINK_IP6_INPKTS, /*!< IPv6 SNMP InReceives */ + RTNL_LINK_IP6_INHDRERRORS, /*!< IPv6 SNMP InHdrErrors */ + RTNL_LINK_IP6_INTOOBIGERRORS, /*!< IPv6 SNMP InTooBigErrors */ + RTNL_LINK_IP6_INNOROUTES, /*!< IPv6 SNMP InNoRoutes */ + RTNL_LINK_IP6_INADDRERRORS, /*!< IPv6 SNMP InAddrErrors */ + RTNL_LINK_IP6_INUNKNOWNPROTOS, /*!< IPv6 SNMP InUnknownProtos */ + RTNL_LINK_IP6_INTRUNCATEDPKTS, /*!< IPv6 SNMP InTruncatedPkts */ + RTNL_LINK_IP6_INDISCARDS, /*!< IPv6 SNMP InDiscards */ + RTNL_LINK_IP6_INDELIVERS, /*!< IPv6 SNMP InDelivers */ + RTNL_LINK_IP6_OUTFORWDATAGRAMS, /*!< IPv6 SNMP OutForwDatagrams */ + RTNL_LINK_IP6_OUTPKTS, /*!< IPv6 SNMP OutRequests */ + RTNL_LINK_IP6_OUTDISCARDS, /*!< IPv6 SNMP OutDiscards */ + RTNL_LINK_IP6_OUTNOROUTES, /*!< IPv6 SNMP OutNoRoutes */ + RTNL_LINK_IP6_REASMTIMEOUT, /*!< IPv6 SNMP ReasmTimeout */ + RTNL_LINK_IP6_REASMREQDS, /*!< IPv6 SNMP ReasmReqds */ + RTNL_LINK_IP6_REASMOKS, /*!< IPv6 SNMP ReasmOKs */ + RTNL_LINK_IP6_REASMFAILS, /*!< IPv6 SNMP ReasmFails */ + RTNL_LINK_IP6_FRAGOKS, /*!< IPv6 SNMP FragOKs */ + RTNL_LINK_IP6_FRAGFAILS, /*!< IPv6 SNMP FragFails */ + RTNL_LINK_IP6_FRAGCREATES, /*!< IPv6 SNMP FragCreates */ + RTNL_LINK_IP6_INMCASTPKTS, /*!< IPv6 SNMP InMcastPkts */ + RTNL_LINK_IP6_OUTMCASTPKTS, /*!< IPv6 SNMP OutMcastPkts */ + RTNL_LINK_IP6_INBCASTPKTS, /*!< IPv6 SNMP InBcastPkts */ + RTNL_LINK_IP6_OUTBCASTPKTS, /*!< IPv6 SNMP OutBcastPkts */ + RTNL_LINK_IP6_INOCTETS, /*!< IPv6 SNMP InOctets */ + RTNL_LINK_IP6_OUTOCTETS, /*!< IPv6 SNMP OutOctets */ + RTNL_LINK_IP6_INMCASTOCTETS, /*!< IPv6 SNMP InMcastOctets */ + RTNL_LINK_IP6_OUTMCASTOCTETS, /*!< IPv6 SNMP OutMcastOctets */ + RTNL_LINK_IP6_INBCASTOCTETS, /*!< IPv6 SNMP InBcastOctets */ + RTNL_LINK_IP6_OUTBCASTOCTETS, /*!< IPv6 SNMP OutBcastOctets */ + RTNL_LINK_ICMP6_INMSGS, /*!< ICMPv6 SNMP InMsgs */ + RTNL_LINK_ICMP6_INERRORS, /*!< ICMPv6 SNMP InErrors */ + RTNL_LINK_ICMP6_OUTMSGS, /*!< ICMPv6 SNMP OutMsgs */ + RTNL_LINK_ICMP6_OUTERRORS, /*!< ICMPv6 SNMP OutErrors */ + RTNL_LINK_ICMP6_CSUMERRORS, /*!< ICMPv6 SNMP InCsumErrors */ + RTNL_LINK_IP6_CSUMERRORS, /*!< IPv6 SNMP InCsumErrors */ + RTNL_LINK_IP6_NOECTPKTS, /*!< IPv6 SNMP InNoECTPkts */ + RTNL_LINK_IP6_ECT1PKTS, /*!< IPv6 SNMP InECT1Pkts */ + RTNL_LINK_IP6_ECT0PKTS, /*!< IPv6 SNMP InECT0Pkts */ + RTNL_LINK_IP6_CEPKTS, /*!< IPv6 SNMP InCEPkts */ + __RTNL_LINK_STATS_MAX, +} rtnl_link_stat_id_t; + +#define RTNL_LINK_STATS_MAX (__RTNL_LINK_STATS_MAX - 1) + +extern struct nla_policy rtln_link_policy[]; + +extern struct rtnl_link *rtnl_link_alloc(void); +extern void rtnl_link_put(struct rtnl_link *); + +extern int rtnl_link_alloc_cache(struct nl_sock *, int, struct nl_cache **); +extern struct rtnl_link *rtnl_link_get(struct nl_cache *, int); +extern struct rtnl_link *rtnl_link_get_by_name(struct nl_cache *, const char *); + + +extern int rtnl_link_build_add_request(struct rtnl_link *, int, + struct nl_msg **); +extern int rtnl_link_add(struct nl_sock *, struct rtnl_link *, int); +extern int rtnl_link_build_change_request(struct rtnl_link *, + struct rtnl_link *, int, + struct nl_msg **); +extern int rtnl_link_change(struct nl_sock *, struct rtnl_link *, + struct rtnl_link *, int); + +extern int rtnl_link_build_delete_request(const struct rtnl_link *, + struct nl_msg **); +extern int rtnl_link_delete(struct nl_sock *, const struct rtnl_link *); +extern int rtnl_link_build_get_request(int, const char *, + struct nl_msg **); +extern int rtnl_link_get_kernel(struct nl_sock *, int, const char *, + struct rtnl_link **); + +/* Name <-> Index Translations */ +extern char * rtnl_link_i2name(struct nl_cache *, int, char *, size_t); +extern int rtnl_link_name2i(struct nl_cache *, const char *); + +/* Name <-> Statistic Translations */ +extern char * rtnl_link_stat2str(int, char *, size_t); +extern int rtnl_link_str2stat(const char *); + +/* Link Flags Translations */ +extern char * rtnl_link_flags2str(int, char *, size_t); +extern int rtnl_link_str2flags(const char *); + +extern char * rtnl_link_operstate2str(uint8_t, char *, size_t); +extern int rtnl_link_str2operstate(const char *); + +extern char * rtnl_link_mode2str(uint8_t, char *, size_t); +extern int rtnl_link_str2mode(const char *); + +/* Carrier State Translations */ +extern char * rtnl_link_carrier2str(uint8_t, char *, size_t); +extern int rtnl_link_str2carrier(const char *); + +/* Access Functions */ +extern void rtnl_link_set_qdisc(struct rtnl_link *, const char *); +extern char * rtnl_link_get_qdisc(struct rtnl_link *); + +extern void rtnl_link_set_name(struct rtnl_link *, const char *); +extern char * rtnl_link_get_name(struct rtnl_link *); + +extern void rtnl_link_set_group(struct rtnl_link *, uint32_t); +extern uint32_t rtnl_link_get_group(struct rtnl_link *); + +extern void rtnl_link_set_flags(struct rtnl_link *, unsigned int); +extern void rtnl_link_unset_flags(struct rtnl_link *, unsigned int); +extern unsigned int rtnl_link_get_flags(struct rtnl_link *); + +extern void rtnl_link_set_mtu(struct rtnl_link *, unsigned int); +extern unsigned int rtnl_link_get_mtu(struct rtnl_link *); + +extern void rtnl_link_set_txqlen(struct rtnl_link *, unsigned int); +extern unsigned int rtnl_link_get_txqlen(struct rtnl_link *); + +extern void rtnl_link_set_ifindex(struct rtnl_link *, int); +extern int rtnl_link_get_ifindex(struct rtnl_link *); + +extern void rtnl_link_set_family(struct rtnl_link *, int); +extern int rtnl_link_get_family(struct rtnl_link *); + +extern void rtnl_link_set_arptype(struct rtnl_link *, unsigned int); +extern unsigned int rtnl_link_get_arptype(struct rtnl_link *); + +extern void rtnl_link_set_addr(struct rtnl_link *, struct nl_addr *); +extern struct nl_addr *rtnl_link_get_addr(struct rtnl_link *); + +extern void rtnl_link_set_broadcast(struct rtnl_link *, struct nl_addr *); +extern struct nl_addr *rtnl_link_get_broadcast(struct rtnl_link *); + +extern void rtnl_link_set_link(struct rtnl_link *, int); +extern int rtnl_link_get_link(struct rtnl_link *); + +extern void rtnl_link_set_master(struct rtnl_link *, int); +extern int rtnl_link_get_master(struct rtnl_link *); + +extern void rtnl_link_set_carrier(struct rtnl_link *, uint8_t); +extern uint8_t rtnl_link_get_carrier(struct rtnl_link *); + +extern void rtnl_link_set_operstate(struct rtnl_link *, uint8_t); +extern uint8_t rtnl_link_get_operstate(struct rtnl_link *); + +extern void rtnl_link_set_linkmode(struct rtnl_link *, uint8_t); +extern uint8_t rtnl_link_get_linkmode(struct rtnl_link *); + +extern const char * rtnl_link_get_ifalias(struct rtnl_link *); +extern void rtnl_link_set_ifalias(struct rtnl_link *, const char *); + +extern int rtnl_link_get_num_vf(struct rtnl_link *, uint32_t *); + +extern uint64_t rtnl_link_get_stat(struct rtnl_link *, rtnl_link_stat_id_t); +extern int rtnl_link_set_stat(struct rtnl_link *, rtnl_link_stat_id_t, + const uint64_t); + +extern int rtnl_link_set_type(struct rtnl_link *, const char *); +extern char * rtnl_link_get_type(struct rtnl_link *); + +extern void rtnl_link_set_promiscuity(struct rtnl_link *, uint32_t); +extern uint32_t rtnl_link_get_promiscuity(struct rtnl_link *); + +extern void rtnl_link_set_num_tx_queues(struct rtnl_link *, uint32_t); +extern uint32_t rtnl_link_get_num_tx_queues(struct rtnl_link *); + +extern void rtnl_link_set_num_rx_queues(struct rtnl_link *, uint32_t); +extern uint32_t rtnl_link_get_num_rx_queues(struct rtnl_link *); + +extern struct nl_data * rtnl_link_get_phys_port_id(struct rtnl_link *); + +extern void rtnl_link_set_ns_fd(struct rtnl_link *, int); +extern int rtnl_link_get_ns_fd(struct rtnl_link *); +extern void rtnl_link_set_ns_pid(struct rtnl_link *, pid_t); +extern pid_t rtnl_link_get_ns_pid(struct rtnl_link *); + +extern int rtnl_link_enslave_ifindex(struct nl_sock *, int, int); +extern int rtnl_link_enslave(struct nl_sock *, struct rtnl_link *, + struct rtnl_link *); +extern int rtnl_link_release_ifindex(struct nl_sock *, int); +extern int rtnl_link_release(struct nl_sock *, struct rtnl_link *); +extern int rtnl_link_fill_info(struct nl_msg *, struct rtnl_link *); +extern int rtnl_link_info_parse(struct rtnl_link *, struct nlattr **); + + +/* deprecated */ +extern int rtnl_link_set_info_type(struct rtnl_link *, const char *) __attribute__((deprecated)); +extern char * rtnl_link_get_info_type(struct rtnl_link *) __attribute__((deprecated)); +extern void rtnl_link_set_weight(struct rtnl_link *, unsigned int) __attribute__((deprecated)); +extern unsigned int rtnl_link_get_weight(struct rtnl_link *) __attribute__((deprecated)); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/api.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/api.h new file mode 100644 index 0000000000000000000000000000000000000000..03b1e5e5da53e8b22663cf868ded9f2e14705d19 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/api.h @@ -0,0 +1,20 @@ +/* + * netlink/route/link/api.h Link Modules API + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Thomas Graf + */ + +#ifndef NETLINK_DUMMY_LINK_API_H_ +#define NETLINK_DUMMY_LINK_API_H_ + +#include +#include + +#warning "You are including a deprecated header file, include ." + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/bonding.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/bonding.h new file mode 100644 index 0000000000000000000000000000000000000000..5c34662df7b3c0e8cae5ab90a495674941542723 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/bonding.h @@ -0,0 +1,39 @@ +/* + * netlink/route/link/bonding.h Bonding Interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2011-2013 Thomas Graf + */ + +#ifndef NETLINK_LINK_BONDING_H_ +#define NETLINK_LINK_BONDING_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct rtnl_link *rtnl_link_bond_alloc(void); + +extern int rtnl_link_bond_add(struct nl_sock *, const char *, + struct rtnl_link *); + +extern int rtnl_link_bond_enslave_ifindex(struct nl_sock *, int, int); +extern int rtnl_link_bond_enslave(struct nl_sock *, struct rtnl_link *, + struct rtnl_link *); + +extern int rtnl_link_bond_release_ifindex(struct nl_sock *, int); +extern int rtnl_link_bond_release(struct nl_sock *, struct rtnl_link *); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/bridge.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/bridge.h new file mode 100644 index 0000000000000000000000000000000000000000..16a4505f8b74cb0450e438a2e64ef15676aa3cd8 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/bridge.h @@ -0,0 +1,60 @@ +/* + * netlink/route/link/bridge.h Bridge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Thomas Graf + */ + +#ifndef NETLINK_LINK_BRIDGE_H_ +#define NETLINK_LINK_BRIDGE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Bridge flags + * @ingroup bridge + */ +enum rtnl_link_bridge_flags { + RTNL_BRIDGE_HAIRPIN_MODE = 0x0001, + RTNL_BRIDGE_BPDU_GUARD = 0x0002, + RTNL_BRIDGE_ROOT_BLOCK = 0x0004, + RTNL_BRIDGE_FAST_LEAVE = 0x0008, +}; + +extern struct rtnl_link *rtnl_link_bridge_alloc(void); + +extern int rtnl_link_is_bridge(struct rtnl_link *); +extern int rtnl_link_bridge_has_ext_info(struct rtnl_link *); + +extern int rtnl_link_bridge_set_port_state(struct rtnl_link *, uint8_t ); +extern int rtnl_link_bridge_get_port_state(struct rtnl_link *); + +extern int rtnl_link_bridge_set_priority(struct rtnl_link *, uint16_t); +extern int rtnl_link_bridge_get_priority(struct rtnl_link *); + +extern int rtnl_link_bridge_set_cost(struct rtnl_link *, uint32_t); +extern int rtnl_link_bridge_get_cost(struct rtnl_link *, uint32_t *); + +extern int rtnl_link_bridge_unset_flags(struct rtnl_link *, unsigned int); +extern int rtnl_link_bridge_set_flags(struct rtnl_link *, unsigned int); +extern int rtnl_link_bridge_get_flags(struct rtnl_link *); + +extern char * rtnl_link_bridge_flags2str(int, char *, size_t); +extern int rtnl_link_bridge_str2flags(const char *); + +extern int rtnl_link_bridge_add(struct nl_sock *sk, const char *name); +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/can.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/can.h new file mode 100644 index 0000000000000000000000000000000000000000..61c9f47e8a29549a751ae411bbc5f0879af2041f --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/can.h @@ -0,0 +1,60 @@ +/* + * netlink/route/link/can.h CAN interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2012 Benedikt Spranger + */ + +#ifndef NETLINK_LINK_CAN_H_ +#define NETLINK_LINK_CAN_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern int rtnl_link_is_can(struct rtnl_link *link); + +extern char *rtnl_link_can_ctrlmode2str(int, char *, size_t); +extern int rtnl_link_can_str2ctrlmode(const char *); + +extern int rtnl_link_can_restart(struct rtnl_link *); +extern int rtnl_link_can_freq(struct rtnl_link *, uint32_t *); +extern int rtnl_link_can_state(struct rtnl_link *, uint32_t *); + +extern int rtnl_link_can_berr_rx(struct rtnl_link *); +extern int rtnl_link_can_berr_tx(struct rtnl_link *); +extern int rtnl_link_can_berr(struct rtnl_link *, struct can_berr_counter *); + +extern int rtnl_link_can_get_bt_const(struct rtnl_link *, + struct can_bittiming_const *); +extern int rtnl_link_can_get_bittiming(struct rtnl_link *, + struct can_bittiming *); +extern int rtnl_link_can_set_bittiming(struct rtnl_link *, + struct can_bittiming *); + +extern int rtnl_link_can_get_bitrate(struct rtnl_link *, uint32_t *); +extern int rtnl_link_can_set_bitrate(struct rtnl_link *, uint32_t); + +extern int rtnl_link_can_get_sample_point(struct rtnl_link *, uint32_t *); +extern int rtnl_link_can_set_sample_point(struct rtnl_link *, uint32_t); + +extern int rtnl_link_can_get_restart_ms(struct rtnl_link *, uint32_t *); +extern int rtnl_link_can_set_restart_ms(struct rtnl_link *, uint32_t); + +extern int rtnl_link_can_get_ctrlmode(struct rtnl_link *, uint32_t *); +extern int rtnl_link_can_set_ctrlmode(struct rtnl_link *, uint32_t); +extern int rtnl_link_can_unset_ctrlmode(struct rtnl_link *, uint32_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/inet.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/inet.h new file mode 100644 index 0000000000000000000000000000000000000000..506542f6c74870ee681d0e122b49ad6129ce4ba0 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/inet.h @@ -0,0 +1,33 @@ +/* + * netlink/route/link/inet.h INET Link Module + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2010 Thomas Graf + */ + +#ifndef NETLINK_LINK_INET_H_ +#define NETLINK_LINK_INET_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern const char * rtnl_link_inet_devconf2str(int, char *, size_t); +extern int rtnl_link_inet_str2devconf(const char *); + +extern int rtnl_link_inet_get_conf(struct rtnl_link *, + const unsigned int, uint32_t *); +extern int rtnl_link_inet_set_conf(struct rtnl_link *, + const unsigned int, uint32_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/info-api.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/info-api.h new file mode 100644 index 0000000000000000000000000000000000000000..1087ad48d1a47c97284872d7fc235c4d93960cbb --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/info-api.h @@ -0,0 +1,20 @@ +/* + * netlink/route/link/info-api.h Link Modules API + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Thomas Graf + */ + +#ifndef NETLINK_DUMMY_LINK_INFO_API_H_ +#define NETLINK_DUMMY_LINK_INFO_API_H_ + +#include +#include + +#warning "You are including a deprecated header file, include ." + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/ip6tnl.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/ip6tnl.h new file mode 100644 index 0000000000000000000000000000000000000000..7e0c295859adb1668f7d8c06aed7f5d4eaeb4b0a --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/ip6tnl.h @@ -0,0 +1,56 @@ +/* + * netlink/route/link/ip6tnl.h IP6TNL interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2014 Susant Sahani + */ + +#ifndef NETLINK_LINK_IP6TNL_H_ +#define NETLINK_LINK_IP6TNL_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + extern struct rtnl_link *rtnl_link_ip6_tnl_alloc(void); + extern int rtnl_link_ip6_tnl_add(struct nl_sock *sk, const char *name); + + extern int rtnl_link_ip6_tnl_set_link(struct rtnl_link *link, uint32_t index); + extern uint32_t rtnl_link_ip6_tnl_get_link(struct rtnl_link *link); + + extern int rtnl_link_ip6_tnl_set_local(struct rtnl_link *link, struct in6_addr *); + extern int rtnl_link_ip6_tnl_get_local(struct rtnl_link *link, struct in6_addr *addr); + + extern int rtnl_link_ip6_tnl_set_remote(struct rtnl_link *link, struct in6_addr *); + extern int rtnl_link_ip6_tnl_get_remote(struct rtnl_link *link, struct in6_addr *); + + extern int rtnl_link_ip6_tnl_set_ttl(struct rtnl_link *link, uint8_t ttl); + extern uint8_t rtnl_link_ip6_tnl_get_ttl(struct rtnl_link *link); + + extern int rtnl_link_ip6_tnl_set_tos(struct rtnl_link *link, uint8_t tos); + extern uint8_t rtnl_link_ip6_tnl_get_tos(struct rtnl_link *link); + + extern int rtnl_link_ip6_tnl_set_encaplimit(struct rtnl_link *link, uint8_t encap_limit); + extern uint8_t rtnl_link_ip6_tnl_get_encaplimit(struct rtnl_link *link); + + extern int rtnl_link_ip6_tnl_set_flags(struct rtnl_link *link, uint32_t flags); + extern uint32_t rtnl_link_ip6_tnl_get_flags(struct rtnl_link *link); + + extern uint32_t rtnl_link_ip6_tnl_get_flowinfo(struct rtnl_link *link); + extern int rtnl_link_ip6_tnl_set_flowinfo(struct rtnl_link *link, uint32_t flowinfo); + + extern int rtnl_link_ip6_tnl_set_proto(struct rtnl_link *link, uint8_t proto); + extern uint8_t rtnl_link_ip6_tnl_get_proto(struct rtnl_link *link); + +#ifdef _cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipgre.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipgre.h new file mode 100644 index 0000000000000000000000000000000000000000..5a0a295abc83e1904cb327c77faac3ac62c3cb73 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipgre.h @@ -0,0 +1,59 @@ +/* + * netlink/route/link/ip_gre.h IPGRE interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2014 Susant Sahani + */ + +#ifndef NETLINK_LINK_IPGRE_H_ +#define NETLINK_LINK_IPGRE_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + extern struct rtnl_link *rtnl_link_ipgre_alloc(void); + extern int rtnl_link_ipgre_add(struct nl_sock *sk, const char *name); + + extern int rtnl_link_ipgre_set_link(struct rtnl_link *link, uint32_t index); + extern uint32_t rtnl_link_ipgre_get_link(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_iflags(struct rtnl_link *link, uint16_t iflags); + extern uint16_t rtnl_link_ipgre_get_iflags(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_oflags(struct rtnl_link *link, uint16_t oflags); + extern uint16_t rtnl_link_ipgre_get_oflags(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_ikey(struct rtnl_link *link, uint32_t ikey); + extern uint32_t rtnl_link_ipgre_get_ikey(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_okey(struct rtnl_link *link, uint32_t okey); + extern uint32_t rtnl_link_ipgre_get_okey(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_local(struct rtnl_link *link, uint32_t addr); + extern uint32_t rtnl_link_ipgre_get_local(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_remote(struct rtnl_link *link, uint32_t addr); + extern uint32_t rtnl_link_ipgre_get_remote(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_ttl(struct rtnl_link *link, uint8_t ttl); + extern uint8_t rtnl_link_ipgre_get_ttl(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_tos(struct rtnl_link *link, uint8_t tos); + extern uint8_t rtnl_link_ipgre_get_tos(struct rtnl_link *link); + + extern int rtnl_link_ipgre_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc); + extern uint8_t rtnl_link_ipgre_get_pmtudisc(struct rtnl_link *link); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipip.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipip.h new file mode 100644 index 0000000000000000000000000000000000000000..ccadb8740395388a10f4b5e3eeded70adcbc1610 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipip.h @@ -0,0 +1,47 @@ +/* + * netlink/route/link/ipip.h IPIP interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2014 Susant Sahani + */ + +#ifndef NETLINK_LINK_IPIP_H_ +#define NETLINK_LINK_IPIP_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + extern struct rtnl_link *rtnl_link_ipip_alloc(void); + extern int rtnl_link_ipip_add(struct nl_sock *sk, const char *name); + + extern uint32_t rtnl_link_ipip_get_link(struct rtnl_link *link); + extern int rtnl_link_ipip_set_link(struct rtnl_link *link, uint32_t index); + + extern int rtnl_link_ipip_set_local(struct rtnl_link *link, uint32_t addr); + extern uint32_t rtnl_link_ipip_get_local(struct rtnl_link *link); + + extern int rtnl_link_ipip_set_remote(struct rtnl_link *link, uint32_t addr); + extern uint32_t rtnl_link_ipip_get_remote(struct rtnl_link *link); + + extern int rtnl_link_ipip_set_ttl(struct rtnl_link *link, uint8_t ttl); + extern uint8_t rtnl_link_ipip_get_ttl(struct rtnl_link *link); + + extern int rtnl_link_ipip_set_tos(struct rtnl_link *link, uint8_t tos); + extern uint8_t rtnl_link_ipip_get_tos(struct rtnl_link *link); + + extern int rtnl_link_ipip_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc); + extern uint8_t rtnl_link_ipip_get_pmtudisc(struct rtnl_link *link); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipvti.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipvti.h new file mode 100644 index 0000000000000000000000000000000000000000..a3e7bbad3bd4ac03957b8084fe6ea0f0155f4cef --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/ipvti.h @@ -0,0 +1,43 @@ +/* + * netlink/route/link/ipvti.h IPVTI interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2014 Susant Sahani + */ + +#ifndef NETLINK_LINK_IPVTI_H_ +#define NETLINK_LINK_IPVTI_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + extern struct rtnl_link *rtnl_link_ipvti_alloc(void); + extern int rtnl_link_ipvti_add(struct nl_sock *sk, const char *name); + + extern int rtnl_link_ipvti_set_link(struct rtnl_link *link, uint32_t index); + extern uint32_t rtnl_link_ipvti_get_link(struct rtnl_link *link); + + extern int rtnl_link_ipvti_set_ikey(struct rtnl_link *link, uint32_t ikey); + extern uint32_t rtnl_link_get_ikey(struct rtnl_link *link); + + extern int rtnl_link_ipvti_set_okey(struct rtnl_link *link, uint32_t okey); + extern uint32_t rtnl_link_get_okey(struct rtnl_link *link); + + extern int rtnl_link_ipvti_set_local(struct rtnl_link *link, uint32_t addr); + extern uint32_t rtnl_link_get_local(struct rtnl_link *link); + + extern int rtnl_link_ipvti_set_remote(struct rtnl_link *link, uint32_t addr); + extern uint32_t rtnl_link_get_remote(struct rtnl_link *link); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/macvlan.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/macvlan.h new file mode 100644 index 0000000000000000000000000000000000000000..2207c5343e52c8363f13c1fb5f7faaab858c2b42 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/macvlan.h @@ -0,0 +1,46 @@ +/* + * netlink/route/link/macvlan.h MACVLAN interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Michael Braun + */ + +#ifndef NETLINK_LINK_MACVLAN_H_ +#define NETLINK_LINK_MACVLAN_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct rtnl_link *rtnl_link_macvlan_alloc(void); + +extern int rtnl_link_is_macvlan(struct rtnl_link *); + +extern char * rtnl_link_macvlan_mode2str(int, char *, size_t); +extern int rtnl_link_macvlan_str2mode(const char *); + +extern char * rtnl_link_macvlan_flags2str(int, char *, size_t); +extern int rtnl_link_macvlan_str2flags(const char *); + +extern int rtnl_link_macvlan_set_mode(struct rtnl_link *, + uint32_t); +extern uint32_t rtnl_link_macvlan_get_mode(struct rtnl_link *); + +extern int rtnl_link_macvlan_set_flags(struct rtnl_link *, + uint16_t); +extern int rtnl_link_macvlan_unset_flags(struct rtnl_link *, + uint16_t); +extern uint16_t rtnl_link_macvlan_get_flags(struct rtnl_link *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/sit.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/sit.h new file mode 100644 index 0000000000000000000000000000000000000000..84dc44aaa84656f816190f64cae877c90d405879 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/sit.h @@ -0,0 +1,53 @@ +/* + * netlink/route/link/sit.h SIT interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2014 Susant Sahani + */ + +#ifndef NETLINK_LINK_SIT_H_ +#define NETLINK_LINK_SIT_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + extern struct rtnl_link *rtnl_link_sit_alloc(void); + extern int rtnl_link_sit_add(struct nl_sock *sk, const char *name); + + extern int rtnl_link_sit_set_link(struct rtnl_link *link, uint32_t index); + extern uint32_t rtnl_link_sit_get_link(struct rtnl_link *link); + + extern int rtnl_link_sit_set_local(struct rtnl_link *link, uint32_t addr); + extern uint32_t rtnl_link_get_sit_local(struct rtnl_link *link); + + extern int rtnl_link_sit_set_remote(struct rtnl_link *link, uint32_t addr); + extern uint32_t rtnl_link_sit_get_remote(struct rtnl_link *link); + + extern int rtnl_link_sit_set_ttl(struct rtnl_link *link, uint8_t ttl); + extern uint8_t rtnl_link_sit_get_ttl(struct rtnl_link *link); + + extern int rtnl_link_sit_set_tos(struct rtnl_link *link, uint8_t tos); + extern uint8_t rtnl_link_sit_get_tos(struct rtnl_link *link); + + extern int rtnl_link_sit_set_pmtudisc(struct rtnl_link *link, uint8_t pmtudisc); + extern uint8_t rtnl_link_sit_get_pmtudisc(struct rtnl_link *link); + + extern int rtnl_link_sit_set_flags(struct rtnl_link *link, uint16_t flags); + extern uint16_t rtnl_link_sit_get_flags(struct rtnl_link *link); + + int rtnl_link_sit_set_proto(struct rtnl_link *link, uint8_t proto); + uint8_t rtnl_link_get_proto(struct rtnl_link *link); + +#ifdef _cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/veth.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/veth.h new file mode 100644 index 0000000000000000000000000000000000000000..35c2345c5c4cf528fb4caadc9f470f41cd5369ce --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/veth.h @@ -0,0 +1,36 @@ +/* + * netlink/route/link/veth.h VETH interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Cong Wang + */ + +#ifndef NETLINK_LINK_VETH_H_ +#define NETLINK_LINK_VETH_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct rtnl_link *rtnl_link_veth_alloc(void); +extern void rtnl_link_veth_release(struct rtnl_link *); + +extern int rtnl_link_is_veth(struct rtnl_link *); + +extern struct rtnl_link *rtnl_link_veth_get_peer(struct rtnl_link *); +extern int rtnl_link_veth_add(struct nl_sock *sock, const char *name, + const char *peer, pid_t pid); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/vlan.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/vlan.h new file mode 100644 index 0000000000000000000000000000000000000000..4ec751e5eaeb44a67d95b2156c505889961bc35e --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/vlan.h @@ -0,0 +1,62 @@ +/* + * netlink/route/link/vlan.h VLAN interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2013 Thomas Graf + */ + +#ifndef NETLINK_LINK_VLAN_H_ +#define NETLINK_LINK_VLAN_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct vlan_map +{ + uint32_t vm_from; + uint32_t vm_to; +}; + +#define VLAN_PRIO_MAX 7 + +extern struct rtnl_link *rtnl_link_vlan_alloc(void); + +extern int rtnl_link_is_vlan(struct rtnl_link *); + +extern char * rtnl_link_vlan_flags2str(int, char *, size_t); +extern int rtnl_link_vlan_str2flags(const char *); + +extern int rtnl_link_vlan_set_protocol(struct rtnl_link *link, uint16_t); +extern int rtnl_link_vlan_get_protocol(struct rtnl_link *link); + +extern int rtnl_link_vlan_set_id(struct rtnl_link *, uint16_t); +extern int rtnl_link_vlan_get_id(struct rtnl_link *); + +extern int rtnl_link_vlan_set_flags(struct rtnl_link *, + unsigned int); +extern int rtnl_link_vlan_unset_flags(struct rtnl_link *, + unsigned int); +extern int rtnl_link_vlan_get_flags(struct rtnl_link *); + +extern int rtnl_link_vlan_set_ingress_map(struct rtnl_link *, + int, uint32_t); +extern uint32_t * rtnl_link_vlan_get_ingress_map(struct rtnl_link *); + +extern int rtnl_link_vlan_set_egress_map(struct rtnl_link *, + uint32_t, int); +extern struct vlan_map *rtnl_link_vlan_get_egress_map(struct rtnl_link *, + int *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/link/vxlan.h b/hardware/wifi/libnl/include/libnl3/netlink/route/link/vxlan.h new file mode 100644 index 0000000000000000000000000000000000000000..f7f7b609e9d0a36e0e9621e836bfc87a4d242d60 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/link/vxlan.h @@ -0,0 +1,86 @@ +/* + * netlink/route/link/vxlan.h VXLAN interface + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Yasunobu Chiba + */ + +#ifndef NETLINK_LINK_VXLAN_H_ +#define NETLINK_LINK_VXLAN_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define VXLAN_ID_MAX 16777215 + +extern struct rtnl_link *rtnl_link_vxlan_alloc(void); + +extern int rtnl_link_is_vxlan(struct rtnl_link *); + +extern int rtnl_link_vxlan_set_id(struct rtnl_link *, uint32_t); +extern int rtnl_link_vxlan_get_id(struct rtnl_link *, uint32_t *); + +extern int rtnl_link_vxlan_set_group(struct rtnl_link *, struct nl_addr *); +extern int rtnl_link_vxlan_get_group(struct rtnl_link *, struct nl_addr **); + +extern int rtnl_link_vxlan_set_link(struct rtnl_link *, uint32_t); +extern int rtnl_link_vxlan_get_link(struct rtnl_link *, uint32_t *); + +extern int rtnl_link_vxlan_set_local(struct rtnl_link *, struct nl_addr *); +extern int rtnl_link_vxlan_get_local(struct rtnl_link *, struct nl_addr **); + +extern int rtnl_link_vxlan_set_ttl(struct rtnl_link *, uint8_t); +extern int rtnl_link_vxlan_get_ttl(struct rtnl_link *); + +extern int rtnl_link_vxlan_set_tos(struct rtnl_link *, uint8_t); +extern int rtnl_link_vxlan_get_tos(struct rtnl_link *); + +extern int rtnl_link_vxlan_set_learning(struct rtnl_link *, uint8_t); +extern int rtnl_link_vxlan_get_learning(struct rtnl_link *); +extern int rtnl_link_vxlan_enable_learning(struct rtnl_link *); +extern int rtnl_link_vxlan_disable_learning(struct rtnl_link *); + +extern int rtnl_link_vxlan_set_ageing(struct rtnl_link *, uint32_t); +extern int rtnl_link_vxlan_get_ageing(struct rtnl_link *, uint32_t *); + +extern int rtnl_link_vxlan_set_limit(struct rtnl_link *, uint32_t); +extern int rtnl_link_vxlan_get_limit(struct rtnl_link *, uint32_t *); + +extern int rtnl_link_vxlan_set_port_range(struct rtnl_link *, + struct ifla_vxlan_port_range *); +extern int rtnl_link_vxlan_get_port_range(struct rtnl_link *, + struct ifla_vxlan_port_range *); + +extern int rtnl_link_vxlan_set_proxy(struct rtnl_link *, uint8_t); +extern int rtnl_link_vxlan_get_proxy(struct rtnl_link *); +extern int rtnl_link_vxlan_enable_proxy(struct rtnl_link *); +extern int rtnl_link_vxlan_disable_proxy(struct rtnl_link *); + +extern int rtnl_link_vxlan_set_rsc(struct rtnl_link *, uint8_t); +extern int rtnl_link_vxlan_get_rsc(struct rtnl_link *); +extern int rtnl_link_vxlan_enable_rsc(struct rtnl_link *); +extern int rtnl_link_vxlan_disable_rsc(struct rtnl_link *); + +extern int rtnl_link_vxlan_set_l2miss(struct rtnl_link *, uint8_t); +extern int rtnl_link_vxlan_get_l2miss(struct rtnl_link *); +extern int rtnl_link_vxlan_enable_l2miss(struct rtnl_link *); +extern int rtnl_link_vxlan_disable_l2miss(struct rtnl_link *); + +extern int rtnl_link_vxlan_set_l3miss(struct rtnl_link *, uint8_t); +extern int rtnl_link_vxlan_get_l3miss(struct rtnl_link *); +extern int rtnl_link_vxlan_enable_l3miss(struct rtnl_link *); +extern int rtnl_link_vxlan_disable_l3miss(struct rtnl_link *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/neighbour.h b/hardware/wifi/libnl/include/libnl3/netlink/route/neighbour.h new file mode 100644 index 0000000000000000000000000000000000000000..1d1179b392d5e86fefe63f1a3fe71d1816c870dc --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/neighbour.h @@ -0,0 +1,81 @@ +/* + * netlink/route/neighbour.h Neighbours + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + */ + +#ifndef NETLINK_NEIGHBOUR_H_ +#define NETLINK_NEIGHBOUR_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_neigh; + +extern struct rtnl_neigh *rtnl_neigh_alloc(void); +extern void rtnl_neigh_put(struct rtnl_neigh *); + +extern int rtnl_neigh_alloc_cache(struct nl_sock *, struct nl_cache **); +extern struct rtnl_neigh *rtnl_neigh_get(struct nl_cache *, int, + struct nl_addr *); + +extern int rtnl_neigh_parse(struct nlmsghdr *, struct rtnl_neigh **); + +extern char * rtnl_neigh_state2str(int, char *, size_t); +extern int rtnl_neigh_str2state(const char *); + +extern char * rtnl_neigh_flags2str(int, char *, size_t); +extern int rtnl_neigh_str2flag(const char *); + +extern int rtnl_neigh_add(struct nl_sock *, struct rtnl_neigh *, int); +extern int rtnl_neigh_build_add_request(struct rtnl_neigh *, int, + struct nl_msg **); + +extern int rtnl_neigh_delete(struct nl_sock *, struct rtnl_neigh *, int); +extern int rtnl_neigh_build_delete_request(struct rtnl_neigh *, int, + struct nl_msg **); + +extern void rtnl_neigh_set_state(struct rtnl_neigh *, int); +extern int rtnl_neigh_get_state(struct rtnl_neigh *); +extern void rtnl_neigh_unset_state(struct rtnl_neigh *, + int); + +extern void rtnl_neigh_set_flags(struct rtnl_neigh *, + unsigned int); +extern void rtnl_neigh_unset_flags(struct rtnl_neigh *, + unsigned int); +extern unsigned int rtnl_neigh_get_flags(struct rtnl_neigh *); + +extern void rtnl_neigh_set_ifindex(struct rtnl_neigh *, + int); +extern int rtnl_neigh_get_ifindex(struct rtnl_neigh *); + +extern void rtnl_neigh_set_lladdr(struct rtnl_neigh *, + struct nl_addr *); +extern struct nl_addr * rtnl_neigh_get_lladdr(struct rtnl_neigh *); + +extern int rtnl_neigh_set_dst(struct rtnl_neigh *, + struct nl_addr *); +extern struct nl_addr * rtnl_neigh_get_dst(struct rtnl_neigh *); + +extern void rtnl_neigh_set_type(struct rtnl_neigh *, int); +extern int rtnl_neigh_get_type(struct rtnl_neigh *); + +extern void rtnl_neigh_set_family(struct rtnl_neigh *, int); +extern int rtnl_neigh_get_family(struct rtnl_neigh *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/neightbl.h b/hardware/wifi/libnl/include/libnl3/netlink/route/neightbl.h new file mode 100644 index 0000000000000000000000000000000000000000..412c3e942e918897630d0313abc08b006743838d --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/neightbl.h @@ -0,0 +1,65 @@ +/* + * netlink/route/neightbl.h Neighbour Tables + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + */ + +#ifndef NETLINK_NEIGHTBL_H_ +#define NETLINK_NEIGHTBL_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_neightbl; + +extern struct rtnl_neightbl *rtnl_neightbl_alloc(void); +extern void rtnl_neightbl_put(struct rtnl_neightbl *); +extern void rtnl_neightbl_free(struct rtnl_neightbl *); +extern int rtnl_neightbl_alloc_cache(struct nl_sock *, struct nl_cache **); +extern struct rtnl_neightbl *rtnl_neightbl_get(struct nl_cache *, + const char *, int); +extern void rtnl_neightbl_dump(struct rtnl_neightbl *, FILE *, + struct nl_dump_params *); + +extern int rtnl_neightbl_build_change_request(struct rtnl_neightbl *, + struct rtnl_neightbl *, + struct nl_msg **); +extern int rtnl_neightbl_change(struct nl_sock *, struct rtnl_neightbl *, + struct rtnl_neightbl *); + +extern void rtnl_neightbl_set_family(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_gc_tresh1(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_gc_tresh2(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_gc_tresh3(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_name(struct rtnl_neightbl *, const char *); +extern void rtnl_neightbl_set_dev(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_queue_len(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_proxy_queue_len(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_app_probes(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_ucast_probes(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_mcast_probes(struct rtnl_neightbl *, int); +extern void rtnl_neightbl_set_base_reachable_time(struct rtnl_neightbl *, + uint64_t); +extern void rtnl_neightbl_set_retrans_time(struct rtnl_neightbl *, uint64_t); +extern void rtnl_neightbl_set_gc_stale_time(struct rtnl_neightbl *, uint64_t); +extern void rtnl_neightbl_set_delay_probe_time(struct rtnl_neightbl *, + uint64_t); +extern void rtnl_neightbl_set_anycast_delay(struct rtnl_neightbl *, uint64_t); +extern void rtnl_neightbl_set_proxy_delay(struct rtnl_neightbl *, uint64_t); +extern void rtnl_neightbl_set_locktime(struct rtnl_neightbl *, uint64_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/nexthop.h b/hardware/wifi/libnl/include/libnl3/netlink/route/nexthop.h new file mode 100644 index 0000000000000000000000000000000000000000..2aa44dce6fb0001ef44a2a562827b06c223a6a33 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/nexthop.h @@ -0,0 +1,65 @@ +/* + * netlink/route/nexthop.h Routing Nexthop + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + */ + +#ifndef NETLINK_ROUTE_NEXTHOP_H_ +#define NETLINK_ROUTE_NEXTHOP_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_nexthop; + +enum { + NH_DUMP_FROM_ONELINE = -2, + NH_DUMP_FROM_DETAILS = -1, + NH_DUMP_FROM_ENV = 0, + /* > 0 reserved for nexthop index */ +}; + +extern struct rtnl_nexthop * rtnl_route_nh_alloc(void); +extern struct rtnl_nexthop * rtnl_route_nh_clone(struct rtnl_nexthop *); +extern void rtnl_route_nh_free(struct rtnl_nexthop *); + +extern int rtnl_route_nh_compare(struct rtnl_nexthop *, + struct rtnl_nexthop *, + uint32_t, int); + +extern void rtnl_route_nh_dump(struct rtnl_nexthop *, + struct nl_dump_params *); + +extern void rtnl_route_nh_set_weight(struct rtnl_nexthop *, uint8_t); +extern uint8_t rtnl_route_nh_get_weight(struct rtnl_nexthop *); +extern void rtnl_route_nh_set_ifindex(struct rtnl_nexthop *, int); +extern int rtnl_route_nh_get_ifindex(struct rtnl_nexthop *); +extern void rtnl_route_nh_set_gateway(struct rtnl_nexthop *, + struct nl_addr *); +extern struct nl_addr * rtnl_route_nh_get_gateway(struct rtnl_nexthop *); +extern void rtnl_route_nh_set_flags(struct rtnl_nexthop *, + unsigned int); +extern void rtnl_route_nh_unset_flags(struct rtnl_nexthop *, + unsigned int); +extern unsigned int rtnl_route_nh_get_flags(struct rtnl_nexthop *); +extern void rtnl_route_nh_set_realms(struct rtnl_nexthop *, + uint32_t); +extern uint32_t rtnl_route_nh_get_realms(struct rtnl_nexthop *); + +extern char * rtnl_route_nh_flags2str(int, char *, size_t); +extern int rtnl_route_nh_str2flags(const char *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/pktloc.h b/hardware/wifi/libnl/include/libnl3/netlink/route/pktloc.h new file mode 100644 index 0000000000000000000000000000000000000000..c3768ce96ddddf1e48f3b0ba202cf94a1c11b5db --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/pktloc.h @@ -0,0 +1,49 @@ +/* + * netlink/route/pktloc.h Packet Location Aliasing + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2010 Thomas Graf + */ + +#ifndef NETLINK_PKTLOC_H_ +#define NETLINK_PKTLOC_H_ + +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_pktloc +{ + char * name; + uint8_t layer; + uint8_t shift; + uint16_t offset; + uint16_t align; + uint32_t mask; + uint32_t refcnt; + + struct nl_list_head list; +}; + +extern int rtnl_pktloc_lookup(const char *, struct rtnl_pktloc **); +extern struct rtnl_pktloc *rtnl_pktloc_alloc(void); +extern void rtnl_pktloc_put(struct rtnl_pktloc *); +extern int rtnl_pktloc_add(struct rtnl_pktloc *); +extern void rtnl_pktloc_foreach(void (*cb)(struct rtnl_pktloc *, void *), + void *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc.h new file mode 100644 index 0000000000000000000000000000000000000000..10b85c5d60022fc0ea6d0e51fb138b70167cd83f --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc.h @@ -0,0 +1,73 @@ +/* + * netlink/route/qdisc.h Queueing Disciplines + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + */ + +#ifndef NETLINK_QDISC_H_ +#define NETLINK_QDISC_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_qdisc; + +extern struct rtnl_qdisc * + rtnl_qdisc_alloc(void); +extern void rtnl_qdisc_put(struct rtnl_qdisc *); + +extern int rtnl_qdisc_alloc_cache(struct nl_sock *, struct nl_cache **); + +extern struct rtnl_qdisc * + rtnl_qdisc_get(struct nl_cache *, int, uint32_t); + +extern struct rtnl_qdisc * + rtnl_qdisc_get_by_parent(struct nl_cache *, int, uint32_t); + +extern int rtnl_qdisc_build_add_request(struct rtnl_qdisc *, int, + struct nl_msg **); +extern int rtnl_qdisc_add(struct nl_sock *, struct rtnl_qdisc *, int); + +extern int rtnl_qdisc_build_update_request(struct rtnl_qdisc *, + struct rtnl_qdisc *, + int, struct nl_msg **); + +extern int rtnl_qdisc_update(struct nl_sock *, struct rtnl_qdisc *, + struct rtnl_qdisc *, int); + +extern int rtnl_qdisc_build_delete_request(struct rtnl_qdisc *, + struct nl_msg **); +extern int rtnl_qdisc_delete(struct nl_sock *, struct rtnl_qdisc *); + +/* Deprecated functions */ +extern void rtnl_qdisc_foreach_child(struct rtnl_qdisc *, struct nl_cache *, + void (*cb)(struct nl_object *, void *), + void *) __attribute__ ((deprecated)); + +extern void rtnl_qdisc_foreach_cls(struct rtnl_qdisc *, struct nl_cache *, + void (*cb)(struct nl_object *, void *), + void *) __attribute__ ((deprecated)); + +extern int rtnl_qdisc_build_change_request(struct rtnl_qdisc *, + struct rtnl_qdisc *, + struct nl_msg **) + __attribute__ ((deprecated)); + +extern int rtnl_qdisc_change(struct nl_sock *, struct rtnl_qdisc *, + struct rtnl_qdisc *) __attribute__ ((deprecated)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/cbq.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/cbq.h new file mode 100644 index 0000000000000000000000000000000000000000..3dbdd2dc60b3456a65fe4b5886f5e6718e012fef --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/cbq.h @@ -0,0 +1,30 @@ +/* + * netlink/route/sch/cbq.h Class Based Queueing + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_CBQ_H_ +#define NETLINK_CBQ_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern char * nl_ovl_strategy2str(int, char *, size_t); +extern int nl_str2ovl_strategy(const char *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/dsmark.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/dsmark.h new file mode 100644 index 0000000000000000000000000000000000000000..06bd9d386846ebfd9fe986e3cfc6e72a13d12fe4 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/dsmark.h @@ -0,0 +1,43 @@ +/* + * netlink/route/sch/dsmark.h DSMARK + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + */ + +#ifndef NETLINK_DSMARK_H_ +#define NETLINK_DSMARK_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern int rtnl_class_dsmark_set_bitmask(struct rtnl_class *, uint8_t); +extern int rtnl_class_dsmark_get_bitmask(struct rtnl_class *); + +extern int rtnl_class_dsmark_set_value(struct rtnl_class *, uint8_t); +extern int rtnl_class_dsmark_get_value(struct rtnl_class *); + +extern int rtnl_qdisc_dsmark_set_indices(struct rtnl_qdisc *, uint16_t); +extern int rtnl_qdisc_dsmark_get_indices(struct rtnl_qdisc *); + +extern int rtnl_qdisc_dsmark_set_default_index(struct rtnl_qdisc *, + uint16_t); +extern int rtnl_qdisc_dsmark_get_default_index(struct rtnl_qdisc *); + +extern int rtnl_qdisc_dsmark_set_set_tc_index(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_dsmark_get_set_tc_index(struct rtnl_qdisc *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/fifo.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/fifo.h new file mode 100644 index 0000000000000000000000000000000000000000..c0334273915d6b501d7b4138ac2416d6adb5efeb --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/fifo.h @@ -0,0 +1,29 @@ +/* + * netlink/route/sch/fifo.c FIFO Qdisc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_FIFO_H_ +#define NETLINK_FIFO_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern int rtnl_qdisc_fifo_set_limit(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_fifo_get_limit(struct rtnl_qdisc *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/fq_codel.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/fq_codel.h new file mode 100644 index 0000000000000000000000000000000000000000..d2c3d25eab5dfb9f4b7a29430dc0d2d2cab60c25 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/fq_codel.h @@ -0,0 +1,44 @@ +/* + * netlink/route/sch/fq_codel.h fq_codel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Cong Wang + */ + +#ifndef NETLINK_FQ_CODEL_H_ +#define NETLINK_FQ_CODEL_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern int rtnl_qdisc_fq_codel_set_limit(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_fq_codel_get_limit(struct rtnl_qdisc *); + +extern int rtnl_qdisc_fq_codel_set_target(struct rtnl_qdisc *, uint32_t); +extern uint32_t rtnl_qdisc_fq_codel_get_target(struct rtnl_qdisc *); + +extern int rtnl_qdisc_fq_codel_set_interval(struct rtnl_qdisc *, uint32_t); +extern uint32_t rtnl_qdisc_fq_codel_get_interval(struct rtnl_qdisc *); + +extern int rtnl_qdisc_fq_codel_set_quantum(struct rtnl_qdisc *, uint32_t); +extern uint32_t rtnl_qdisc_fq_codel_get_quantum(struct rtnl_qdisc *); + +extern int rtnl_qdisc_fq_codel_set_flows(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_fq_codel_get_flows(struct rtnl_qdisc *); + +extern int rtnl_qdisc_fq_codel_set_ecn(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_fq_codel_get_ecn(struct rtnl_qdisc *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/htb.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/htb.h new file mode 100644 index 0000000000000000000000000000000000000000..c909f843d2563add540d0429878e8faac47230ab --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/htb.h @@ -0,0 +1,49 @@ +/* + * netlink/route/sch/htb.h HTB Qdisc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + * Copyright (c) 2005 Petr Gotthard + * Copyright (c) 2005 Siemens AG Oesterreich + */ + +#ifndef NETLINK_HTB_H_ +#define NETLINK_HTB_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint32_t rtnl_htb_get_rate2quantum(struct rtnl_qdisc *); +extern int rtnl_htb_set_rate2quantum(struct rtnl_qdisc *, uint32_t); +extern uint32_t rtnl_htb_get_defcls(struct rtnl_qdisc *); +extern int rtnl_htb_set_defcls(struct rtnl_qdisc *, uint32_t); + +extern uint32_t rtnl_htb_get_prio(struct rtnl_class *); +extern int rtnl_htb_set_prio(struct rtnl_class *, uint32_t); +extern uint32_t rtnl_htb_get_rate(struct rtnl_class *); +extern int rtnl_htb_set_rate(struct rtnl_class *, uint32_t); +extern uint32_t rtnl_htb_get_ceil(struct rtnl_class *); +extern int rtnl_htb_set_ceil(struct rtnl_class *, uint32_t); +extern uint32_t rtnl_htb_get_rbuffer(struct rtnl_class *); +extern int rtnl_htb_set_rbuffer(struct rtnl_class *, uint32_t); +extern uint32_t rtnl_htb_get_cbuffer(struct rtnl_class *); +extern int rtnl_htb_set_cbuffer(struct rtnl_class *, uint32_t); +extern uint32_t rtnl_htb_get_quantum(struct rtnl_class *); +extern int rtnl_htb_set_quantum(struct rtnl_class *, uint32_t); +extern int rtnl_htb_get_level(struct rtnl_class *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/netem.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/netem.h new file mode 100644 index 0000000000000000000000000000000000000000..4b071bf158f79d1eeae604e471a2f05a19ca146e --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/netem.h @@ -0,0 +1,76 @@ +/* + * netlink/route/sch/netem.h Network Emulator Qdisc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_NETEM_H_ +#define NETLINK_NETEM_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_netem_set_limit(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_limit(struct rtnl_qdisc *); + +/* Packet Re-ordering */ +extern void rtnl_netem_set_gap(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_gap(struct rtnl_qdisc *); + +extern void rtnl_netem_set_reorder_probability(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_reorder_probability(struct rtnl_qdisc *); + +extern void rtnl_netem_set_reorder_correlation(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_reorder_correlation(struct rtnl_qdisc *); + +/* Corruption */ +extern void rtnl_netem_set_corruption_probability(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_corruption_probability(struct rtnl_qdisc *); + +extern void rtnl_netem_set_corruption_correlation(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_corruption_correlation(struct rtnl_qdisc *); + +/* Packet Loss */ +extern void rtnl_netem_set_loss(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_loss(struct rtnl_qdisc *); + +extern void rtnl_netem_set_loss_correlation(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_loss_correlation(struct rtnl_qdisc *); + +/* Packet Duplication */ +extern void rtnl_netem_set_duplicate(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_duplicate(struct rtnl_qdisc *); + +extern void rtnl_netem_set_duplicate_correlation(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_duplicate_correlation(struct rtnl_qdisc *); + +/* Packet Delay */ +extern void rtnl_netem_set_delay(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_delay(struct rtnl_qdisc *); + +extern void rtnl_netem_set_jitter(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_jitter(struct rtnl_qdisc *); + +extern void rtnl_netem_set_delay_correlation(struct rtnl_qdisc *, int); +extern int rtnl_netem_get_delay_correlation(struct rtnl_qdisc *); + +/* Delay Distribution */ +#define MAXDIST 65536 +extern int rtnl_netem_set_delay_distribution(struct rtnl_qdisc *, const char *); +extern int rtnl_netem_get_delay_distribution_size(struct rtnl_qdisc *); +extern int rtnl_netem_get_delay_distribution(struct rtnl_qdisc *, int16_t **); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/plug.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/plug.h new file mode 100644 index 0000000000000000000000000000000000000000..40f7e53b1e605bef40e1bc6f4f8f5334dbf53f67 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/plug.h @@ -0,0 +1,31 @@ +/* + * netlink/route/qdisc/plug.c PLUG Qdisc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2012 Shriram Rajagopalan + */ + +#ifndef NETLINK_PLUG_H_ +#define NETLINK_PLUG_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern int rtnl_qdisc_plug_set_limit(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_plug_buffer(struct rtnl_qdisc *); +extern int rtnl_qdisc_plug_release_one(struct rtnl_qdisc *); +extern int rtnl_qdisc_plug_release_indefinite(struct rtnl_qdisc *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/prio.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/prio.h new file mode 100644 index 0000000000000000000000000000000000000000..636a8f923f0ab88ed63241b4f934c8b4ddcbfbf1 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/prio.h @@ -0,0 +1,54 @@ +/* + * netlink/route/sch/prio.c PRIO Qdisc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + */ + +#ifndef NETLINK_PRIO_H_ +#define NETLINK_PRIO_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @name Default Values + * @{ + */ + +/** + * Default number of bands. + * @ingroup prio + */ +#define QDISC_PRIO_DEFAULT_BANDS 3 + +/** + * Default priority mapping. + * @ingroup prio + */ +#define QDISC_PRIO_DEFAULT_PRIOMAP \ + { 1, 2, 2, 2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 } + +/** @} */ + +extern void rtnl_qdisc_prio_set_bands(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_prio_get_bands(struct rtnl_qdisc *); +extern int rtnl_qdisc_prio_set_priomap(struct rtnl_qdisc *, uint8_t[], int); +extern uint8_t *rtnl_qdisc_prio_get_priomap(struct rtnl_qdisc *); + +extern char * rtnl_prio2str(int, char *, size_t); +extern int rtnl_str2prio(const char *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/red.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/red.h new file mode 100644 index 0000000000000000000000000000000000000000..a4e8642fd8e046d1c16ed2759760d06e44c299b2 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/red.h @@ -0,0 +1,17 @@ +/* + * netlink/route/sch/red.h RED Qdisc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_RED_H_ +#define NETLINK_RED_H_ + +#include + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/sfq.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/sfq.h new file mode 100644 index 0000000000000000000000000000000000000000..77d2e293ba7b4866808508962afb1a2048a2c50b --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/sfq.h @@ -0,0 +1,37 @@ +/* + * netlink/route/sch/sfq.c SFQ Qdisc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + */ + +#ifndef NETLINK_SFQ_H_ +#define NETLINK_SFQ_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_sfq_set_quantum(struct rtnl_qdisc *, int); +extern int rtnl_sfq_get_quantum(struct rtnl_qdisc *); + +extern void rtnl_sfq_set_limit(struct rtnl_qdisc *, int); +extern int rtnl_sfq_get_limit(struct rtnl_qdisc *); + +extern void rtnl_sfq_set_perturb(struct rtnl_qdisc *, int); +extern int rtnl_sfq_get_perturb(struct rtnl_qdisc *); + +extern int rtnl_sfq_get_divisor(struct rtnl_qdisc *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/tbf.h b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/tbf.h new file mode 100644 index 0000000000000000000000000000000000000000..ce31c548a22e86d9e4fa176b7648cea3f77853a0 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/qdisc/tbf.h @@ -0,0 +1,41 @@ +/* + * netlink/route/sch/tbf.h TBF Qdisc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + */ + +#ifndef NETLINK_TBF_H_ +#define NETLINK_TBF_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void rtnl_qdisc_tbf_set_limit(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_tbf_set_limit_by_latency(struct rtnl_qdisc *, int); +extern int rtnl_qdisc_tbf_get_limit(struct rtnl_qdisc *); + +extern void rtnl_qdisc_tbf_set_rate(struct rtnl_qdisc *, int, int, int); +extern int rtnl_qdisc_tbf_get_rate(struct rtnl_qdisc *); +extern int rtnl_qdisc_tbf_get_rate_bucket(struct rtnl_qdisc *); +extern int rtnl_qdisc_tbf_get_rate_cell(struct rtnl_qdisc *); + +extern int rtnl_qdisc_tbf_set_peakrate(struct rtnl_qdisc *, int, int, int); +extern int rtnl_qdisc_tbf_get_peakrate(struct rtnl_qdisc *); +extern int rtnl_qdisc_tbf_get_peakrate_bucket(struct rtnl_qdisc *); +extern int rtnl_qdisc_tbf_get_peakrate_cell(struct rtnl_qdisc *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/route.h b/hardware/wifi/libnl/include/libnl3/netlink/route/route.h new file mode 100644 index 0000000000000000000000000000000000000000..477250dd8258ec90a102b5e076bd1afeb41326e3 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/route.h @@ -0,0 +1,128 @@ +/* + * netlink/route/route.h Routes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_ROUTE_H_ +#define NETLINK_ROUTE_H_ + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @ingroup route + * When passed to rtnl_route_alloc_cache() the cache will + * correspond to the contents of the routing cache instead + * of the actual routes. + */ +#define ROUTE_CACHE_CONTENT 1 + +struct rtnl_route; + +struct rtnl_rtcacheinfo +{ + uint32_t rtci_clntref; + uint32_t rtci_last_use; + uint32_t rtci_expires; + int32_t rtci_error; + uint32_t rtci_used; + uint32_t rtci_id; + uint32_t rtci_ts; + uint32_t rtci_tsage; +}; + +extern struct nl_object_ops route_obj_ops; + +extern struct rtnl_route * rtnl_route_alloc(void); +extern void rtnl_route_put(struct rtnl_route *); +extern int rtnl_route_alloc_cache(struct nl_sock *, int, int, + struct nl_cache **); + +extern void rtnl_route_get(struct rtnl_route *); + +extern int rtnl_route_parse(struct nlmsghdr *, struct rtnl_route **); +extern int rtnl_route_build_msg(struct nl_msg *, struct rtnl_route *); + +extern int rtnl_route_build_add_request(struct rtnl_route *, int, + struct nl_msg **); +extern int rtnl_route_add(struct nl_sock *, struct rtnl_route *, int); +extern int rtnl_route_build_del_request(struct rtnl_route *, int, + struct nl_msg **); +extern int rtnl_route_delete(struct nl_sock *, struct rtnl_route *, int); + +extern void rtnl_route_set_table(struct rtnl_route *, uint32_t); +extern uint32_t rtnl_route_get_table(struct rtnl_route *); +extern void rtnl_route_set_scope(struct rtnl_route *, uint8_t); +extern uint8_t rtnl_route_get_scope(struct rtnl_route *); +extern void rtnl_route_set_tos(struct rtnl_route *, uint8_t); +extern uint8_t rtnl_route_get_tos(struct rtnl_route *); +extern void rtnl_route_set_protocol(struct rtnl_route *, uint8_t); +extern uint8_t rtnl_route_get_protocol(struct rtnl_route *); +extern void rtnl_route_set_priority(struct rtnl_route *, uint32_t); +extern uint32_t rtnl_route_get_priority(struct rtnl_route *); +extern int rtnl_route_set_family(struct rtnl_route *, uint8_t); +extern uint8_t rtnl_route_get_family(struct rtnl_route *); +extern int rtnl_route_set_type(struct rtnl_route *, uint8_t); +extern uint8_t rtnl_route_get_type(struct rtnl_route *); +extern void rtnl_route_set_flags(struct rtnl_route *, uint32_t); +extern void rtnl_route_unset_flags(struct rtnl_route *, uint32_t); +extern uint32_t rtnl_route_get_flags(struct rtnl_route *); +extern int rtnl_route_set_metric(struct rtnl_route *, int, unsigned int); +extern int rtnl_route_unset_metric(struct rtnl_route *, int); +extern int rtnl_route_get_metric(struct rtnl_route *, int, uint32_t *); +extern int rtnl_route_set_dst(struct rtnl_route *, struct nl_addr *); +extern struct nl_addr *rtnl_route_get_dst(struct rtnl_route *); +extern int rtnl_route_set_src(struct rtnl_route *, struct nl_addr *); +extern struct nl_addr *rtnl_route_get_src(struct rtnl_route *); +extern int rtnl_route_set_pref_src(struct rtnl_route *, struct nl_addr *); +extern struct nl_addr *rtnl_route_get_pref_src(struct rtnl_route *); +extern void rtnl_route_set_iif(struct rtnl_route *, int); +extern int rtnl_route_get_iif(struct rtnl_route *); +extern int rtnl_route_get_src_len(struct rtnl_route *); + +extern void rtnl_route_add_nexthop(struct rtnl_route *, + struct rtnl_nexthop *); +extern void rtnl_route_remove_nexthop(struct rtnl_route *, + struct rtnl_nexthop *); +extern struct nl_list_head *rtnl_route_get_nexthops(struct rtnl_route *); +extern int rtnl_route_get_nnexthops(struct rtnl_route *); + +extern void rtnl_route_foreach_nexthop(struct rtnl_route *r, + void (*cb)(struct rtnl_nexthop *, void *), + void *arg); + +extern struct rtnl_nexthop * rtnl_route_nexthop_n(struct rtnl_route *r, int n); + +extern int rtnl_route_guess_scope(struct rtnl_route *); + +extern char * rtnl_route_table2str(int, char *, size_t); +extern int rtnl_route_str2table(const char *); +extern int rtnl_route_read_table_names(const char *); + +extern char * rtnl_route_proto2str(int, char *, size_t); +extern int rtnl_route_str2proto(const char *); +extern int rtnl_route_read_protocol_names(const char *); + +extern char * rtnl_route_metric2str(int, char *, size_t); +extern int rtnl_route_str2metric(const char *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/rtnl.h b/hardware/wifi/libnl/include/libnl3/netlink/route/rtnl.h new file mode 100644 index 0000000000000000000000000000000000000000..f551a5d382cdabdffeeeab4da2e376f0af37e631 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/rtnl.h @@ -0,0 +1,69 @@ +/* + * netlink/route/rtnl.h Routing Netlink + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + */ + +#ifndef NETLINK_RTNL_H_ +#define NETLINK_RTNL_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @name Realms + * @{ + */ + +/** + * Mask specying the size of each realm part + * @ingroup rtnl + */ +#define RTNL_REALM_MASK (0xFFFF) + +/** + * Extract FROM realm from a realms field + */ +#define RTNL_REALM_FROM(realm) ((realm) >> 16) + +/** + * Extract TO realm from a realms field + */ +#define RTNL_REALM_TO(realm) ((realm) & RTNL_REALM_MASK) + +/** + * Build a realms field + */ +#define RTNL_MAKE_REALM(from, to) \ + ((RTNL_REALM_TO(from) << 16) & RTNL_REALM_TO(to)) + +/** @} */ + + +/* General */ +extern int nl_rtgen_request(struct nl_sock *, int, int, int); + +/* Routing Type Translations */ +extern char * nl_rtntype2str(int, char *, size_t); +extern int nl_str2rtntype(const char *); + +/* Scope Translations */ +extern char * rtnl_scope2str(int, char *, size_t); +extern int rtnl_str2scope(const char *); + +/* Realms Translations */ +extern char * rtnl_realms2str(uint32_t, char *, size_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/rule.h b/hardware/wifi/libnl/include/libnl3/netlink/route/rule.h new file mode 100644 index 0000000000000000000000000000000000000000..760b782ad09efd110b631acae35c5318da68367f --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/rule.h @@ -0,0 +1,75 @@ +/* + * netlink/route/rule.h Rules + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2010 Thomas Graf + */ + +#ifndef NETLINK_RULE_H_ +#define NETLINK_RULE_H_ + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rtnl_rule; + +/* General */ +extern struct rtnl_rule * rtnl_rule_alloc(void); +extern void rtnl_rule_put(struct rtnl_rule *); + +extern int rtnl_rule_alloc_cache(struct nl_sock *, int, + struct nl_cache **); +extern void rtnl_rule_dump(struct rtnl_rule *, FILE *, struct nl_dump_params *); + +extern int rtnl_rule_build_add_request(struct rtnl_rule *, int, + struct nl_msg **); +extern int rtnl_rule_add(struct nl_sock *, struct rtnl_rule *, int); +extern int rtnl_rule_build_delete_request(struct rtnl_rule *, int, + struct nl_msg **); +extern int rtnl_rule_delete(struct nl_sock *, struct rtnl_rule *, int); + + +/* attribute modification */ +extern void rtnl_rule_set_family(struct rtnl_rule *, int); +extern int rtnl_rule_get_family(struct rtnl_rule *); +extern void rtnl_rule_set_prio(struct rtnl_rule *, uint32_t); +extern uint32_t rtnl_rule_get_prio(struct rtnl_rule *); +extern void rtnl_rule_set_mark(struct rtnl_rule *, uint32_t); +extern uint32_t rtnl_rule_get_mark(struct rtnl_rule *); +extern void rtnl_rule_set_mask(struct rtnl_rule *, uint32_t); +extern uint32_t rtnl_rule_get_mask(struct rtnl_rule *); +extern void rtnl_rule_set_table(struct rtnl_rule *, uint32_t); +extern uint32_t rtnl_rule_get_table(struct rtnl_rule *); +extern void rtnl_rule_set_dsfield(struct rtnl_rule *, uint8_t); +extern uint8_t rtnl_rule_get_dsfield(struct rtnl_rule *); +extern int rtnl_rule_set_src(struct rtnl_rule *, struct nl_addr *); +extern struct nl_addr * rtnl_rule_get_src(struct rtnl_rule *); +extern int rtnl_rule_set_dst(struct rtnl_rule *, struct nl_addr *); +extern struct nl_addr * rtnl_rule_get_dst(struct rtnl_rule *); +extern void rtnl_rule_set_action(struct rtnl_rule *, uint8_t); +extern uint8_t rtnl_rule_get_action(struct rtnl_rule *); +extern int rtnl_rule_set_iif(struct rtnl_rule *, const char *); +extern char * rtnl_rule_get_iif(struct rtnl_rule *); +extern int rtnl_rule_set_oif(struct rtnl_rule *, const char *); +extern char * rtnl_rule_get_oif(struct rtnl_rule *); +extern void rtnl_rule_set_realms(struct rtnl_rule *, uint32_t); +extern uint32_t rtnl_rule_get_realms(struct rtnl_rule *); +extern void rtnl_rule_set_goto(struct rtnl_rule *, uint32_t); +extern uint32_t rtnl_rule_get_goto(struct rtnl_rule *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/tc-api.h b/hardware/wifi/libnl/include/libnl3/netlink/route/tc-api.h new file mode 100644 index 0000000000000000000000000000000000000000..b7771b50a217e30aabab91e8a6519e3e0cd005a9 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/tc-api.h @@ -0,0 +1,21 @@ +/* + * netlink/route/tc-api.h Traffic Control API + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2013 Thomas Graf + */ + +#ifndef NETLINK_DUMMY_TC_API_H_ +#define NETLINK_DUMMY_TC_API_H_ + +#include +#include +#include + +#warning "You are including a deprecated header file, include ." + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/route/tc.h b/hardware/wifi/libnl/include/libnl3/netlink/route/tc.h new file mode 100644 index 0000000000000000000000000000000000000000..870c1f2638de59eb3c8dab137849fc9cc05248a9 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/route/tc.h @@ -0,0 +1,115 @@ +/* + * netlink/route/tc.h Traffic Control + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2011 Thomas Graf + */ + +#ifndef NETLINK_TC_H_ +#define NETLINK_TC_H_ + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum rtnl_tc_type { + RTNL_TC_TYPE_QDISC, + RTNL_TC_TYPE_CLASS, + RTNL_TC_TYPE_CLS, + RTNL_TC_TYPE_ACT, + __RTNL_TC_TYPE_MAX, +}; + +#define RTNL_TC_TYPE_MAX (__RTNL_TC_TYPE_MAX - 1) + +/** + * Compute tc handle based on major and minor parts + * @ingroup tc + */ +#define TC_HANDLE(maj, min) (TC_H_MAJ((maj) << 16) | TC_H_MIN(min)) + +/** + * Traffic control object + * @ingroup tc + */ +struct rtnl_tc; + +/** + * Macro to cast qdisc/class/classifier to tc object + * @ingroup tc + * + * @code + * rtnl_tc_set_mpu(TC_CAST(qdisc), 40); + * @endcode + */ +#define TC_CAST(ptr) ((struct rtnl_tc *) (ptr)) + +/** + * Traffic control statistical identifier + * @ingroup tc + * + * @code + * uint64_t n = rtnl_tc_get_stat(TC_CAST(class), RTNL_TC_PACKETS); + * @endcode + */ +enum rtnl_tc_stat { + RTNL_TC_PACKETS, /**< Number of packets seen */ + RTNL_TC_BYTES, /**< Total bytes seen */ + RTNL_TC_RATE_BPS, /**< Current bits/s (rate estimator) */ + RTNL_TC_RATE_PPS, /**< Current packet/s (rate estimator) */ + RTNL_TC_QLEN, /**< Current queue length */ + RTNL_TC_BACKLOG, /**< Current backlog length */ + RTNL_TC_DROPS, /**< Total number of packets dropped */ + RTNL_TC_REQUEUES, /**< Total number of requeues */ + RTNL_TC_OVERLIMITS, /**< Total number of overlimits */ + __RTNL_TC_STATS_MAX, +}; + +#define RTNL_TC_STATS_MAX (__RTNL_TC_STATS_MAX - 1) + +extern void rtnl_tc_set_ifindex(struct rtnl_tc *, int); +extern int rtnl_tc_get_ifindex(struct rtnl_tc *); +extern void rtnl_tc_set_link(struct rtnl_tc *, struct rtnl_link *); +extern struct rtnl_link *rtnl_tc_get_link(struct rtnl_tc *); +extern void rtnl_tc_set_mtu(struct rtnl_tc *, uint32_t); +extern uint32_t rtnl_tc_get_mtu(struct rtnl_tc *); +extern void rtnl_tc_set_mpu(struct rtnl_tc *, uint32_t); +extern uint32_t rtnl_tc_get_mpu(struct rtnl_tc *); +extern void rtnl_tc_set_overhead(struct rtnl_tc *, uint32_t); +extern uint32_t rtnl_tc_get_overhead(struct rtnl_tc *); +extern void rtnl_tc_set_linktype(struct rtnl_tc *, uint32_t); +extern uint32_t rtnl_tc_get_linktype(struct rtnl_tc *); +extern void rtnl_tc_set_handle(struct rtnl_tc *, uint32_t); +extern uint32_t rtnl_tc_get_handle(struct rtnl_tc *); +extern void rtnl_tc_set_parent(struct rtnl_tc *, uint32_t); +extern uint32_t rtnl_tc_get_parent(struct rtnl_tc *); +extern int rtnl_tc_set_kind(struct rtnl_tc *, const char *); +extern char * rtnl_tc_get_kind(struct rtnl_tc *); +extern uint64_t rtnl_tc_get_stat(struct rtnl_tc *, enum rtnl_tc_stat); + +extern int rtnl_tc_calc_txtime(int, int); +extern int rtnl_tc_calc_bufsize(int, int); +extern int rtnl_tc_calc_cell_log(int); + +extern int rtnl_tc_read_classid_file(void); +extern char * rtnl_tc_handle2str(uint32_t, char *, size_t); +extern int rtnl_tc_str2handle(const char *, uint32_t *); +extern int rtnl_classid_generate(const char *, uint32_t *, + uint32_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/socket.h b/hardware/wifi/libnl/include/libnl3/netlink/socket.h new file mode 100644 index 0000000000000000000000000000000000000000..1007eba03ad982b67402f3d4b01cfc480fdf50ec --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/socket.h @@ -0,0 +1,71 @@ +/* + * netlink/socket.h Netlink Socket + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2008 Thomas Graf + */ + +#ifndef NETLINK_SOCKET_H_ +#define NETLINK_SOCKET_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct nl_sock * nl_socket_alloc(void); +extern struct nl_sock * nl_socket_alloc_cb(struct nl_cb *); +extern void nl_socket_free(struct nl_sock *); + +extern uint32_t nl_socket_get_local_port(const struct nl_sock *); +extern void nl_socket_set_local_port(struct nl_sock *, uint32_t); + +extern int nl_socket_add_memberships(struct nl_sock *, int, ...); +extern int nl_socket_add_membership(struct nl_sock *, int); +extern int nl_socket_drop_memberships(struct nl_sock *, int, ...); +extern int nl_socket_drop_membership(struct nl_sock *, + int); +extern void nl_join_groups(struct nl_sock *, int); + + +extern uint32_t nl_socket_get_peer_port(const struct nl_sock *); +extern void nl_socket_set_peer_port(struct nl_sock *, + uint32_t); +extern uint32_t nl_socket_get_peer_groups(const struct nl_sock *sk); +extern void nl_socket_set_peer_groups(struct nl_sock *sk, uint32_t groups); +extern struct nl_cb * nl_socket_get_cb(const struct nl_sock *); +extern void nl_socket_set_cb(struct nl_sock *, + struct nl_cb *); +extern int nl_socket_modify_cb(struct nl_sock *, enum nl_cb_type, + enum nl_cb_kind, + nl_recvmsg_msg_cb_t, void *); +extern int nl_socket_modify_err_cb(struct nl_sock *, enum nl_cb_kind, + nl_recvmsg_err_cb_t, void *); + +extern int nl_socket_set_buffer_size(struct nl_sock *, int, int); +extern int nl_socket_set_msg_buf_size(struct nl_sock *, size_t); +extern size_t nl_socket_get_msg_buf_size(struct nl_sock *); +extern int nl_socket_set_passcred(struct nl_sock *, int); +extern int nl_socket_recv_pktinfo(struct nl_sock *, int); + +extern void nl_socket_disable_seq_check(struct nl_sock *); +extern unsigned int nl_socket_use_seq(struct nl_sock *); +extern void nl_socket_disable_auto_ack(struct nl_sock *); +extern void nl_socket_enable_auto_ack(struct nl_sock *); + +extern int nl_socket_get_fd(const struct nl_sock *); +extern int nl_socket_set_nonblocking(const struct nl_sock *); +extern void nl_socket_enable_msg_peek(struct nl_sock *); +extern void nl_socket_disable_msg_peek(struct nl_sock *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/types.h b/hardware/wifi/libnl/include/libnl3/netlink/types.h new file mode 100644 index 0000000000000000000000000000000000000000..09cc5bd9917e63026a9c0dd7ce66dc3de3d8ea79 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/types.h @@ -0,0 +1,110 @@ +/* + * netlink/types.h Definition of public types + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef __NETLINK_TYPES_H_ +#define __NETLINK_TYPES_H_ + +#include + +/** + * @ingroup utils + * Enumeration of dumping variations (dp_type) + */ +enum nl_dump_type { + NL_DUMP_LINE, /**< Dump object briefly on one line */ + NL_DUMP_DETAILS, /**< Dump all attributes but no statistics */ + NL_DUMP_STATS, /**< Dump all attributes including statistics */ + __NL_DUMP_MAX, +}; +#define NL_DUMP_MAX (__NL_DUMP_MAX - 1) + +/** + * @ingroup utils + * Dumping parameters + */ +struct nl_dump_params +{ + /** + * Specifies the type of dump that is requested. + */ + enum nl_dump_type dp_type; + + /** + * Specifies the number of whitespaces to be put in front + * of every new line (indentation). + */ + int dp_prefix; + + /** + * Causes the cache index to be printed for each element. + */ + int dp_print_index; + + /** + * Causes each element to be prefixed with the message type. + */ + int dp_dump_msgtype; + + /** + * A callback invoked for output + * + * Passed arguments are: + * - dumping parameters + * - string to append to the output + */ + void (*dp_cb)(struct nl_dump_params *, char *); + + /** + * A callback invoked for every new line, can be used to + * customize the indentation. + * + * Passed arguments are: + * - dumping parameters + * - line number starting from 0 + */ + void (*dp_nl_cb)(struct nl_dump_params *, int); + + /** + * User data pointer, can be used to pass data to callbacks. + */ + void *dp_data; + + /** + * File descriptor the dumping output should go to + */ + FILE * dp_fd; + + /** + * Alternatively the output may be redirected into a buffer + */ + char * dp_buf; + + /** + * Length of the buffer dp_buf + */ + size_t dp_buflen; + + /** + * PRIVATE + * Set if a dump was performed prior to the actual dump handler. + */ + int dp_pre_dump; + + /** + * PRIVATE + * Owned by the current caller + */ + int dp_ivar; + + unsigned int dp_line; +}; + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/utils.h b/hardware/wifi/libnl/include/libnl3/netlink/utils.h new file mode 100644 index 0000000000000000000000000000000000000000..6b4b7874e3eaa9e3aa0e9973d31087d4b6bab004 --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/utils.h @@ -0,0 +1,125 @@ +/* + * netlink/utils.h Utility Functions + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2012 Thomas Graf + */ + +#ifndef NETLINK_UTILS_H_ +#define NETLINK_UTILS_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @name Probability Constants + * @{ + */ + +/** + * Lower probability limit + * @ingroup utils + */ +#define NL_PROB_MIN 0x0 + +/** + * Upper probability limit nl_dump_type + * @ingroup utils + */ +#define NL_PROB_MAX 0xffffffff + +/** @} */ + +enum { + NL_BYTE_RATE, + NL_BIT_RATE, +}; + +/* unit pretty-printing */ +extern double nl_cancel_down_bytes(unsigned long long, char **); +extern double nl_cancel_down_bits(unsigned long long, char **); +extern int nl_rate2str(unsigned long long, int, char *, size_t); +extern double nl_cancel_down_us(uint32_t, char **); + +/* generic unit translations */ +extern long nl_size2int(const char *); +extern char * nl_size2str(const size_t, char *, const size_t); +extern long nl_prob2int(const char *); + +/* time translations */ +extern int nl_get_user_hz(void); +extern int nl_get_psched_hz(void); +extern uint32_t nl_us2ticks(uint32_t); +extern uint32_t nl_ticks2us(uint32_t); +extern int nl_str2msec(const char *, uint64_t *); +extern char * nl_msec2str(uint64_t, char *, size_t); + +/* link layer protocol translations */ +extern char * nl_llproto2str(int, char *, size_t); +extern int nl_str2llproto(const char *); + +/* ethernet protocol translations */ +extern char * nl_ether_proto2str(int, char *, size_t); +extern int nl_str2ether_proto(const char *); + +/* IP protocol translations */ +extern char * nl_ip_proto2str(int, char *, size_t); +extern int nl_str2ip_proto(const char *); + +/* Dumping helpers */ +extern void nl_new_line(struct nl_dump_params *); +extern void nl_dump(struct nl_dump_params *, const char *, ...); +extern void nl_dump_line(struct nl_dump_params *, const char *, ...); + +enum { + NL_CAPABILITY_NONE, + + /** + * rtnl_route_build_msg() no longer guesses the route scope + * if explicitly set to RT_SCOPE_NOWHERE. + * @ingroup utils + */ + NL_CAPABILITY_ROUTE_BUILD_MSG_SET_SCOPE = 1, +#define NL_CAPABILITY_ROUTE_BUILD_MSG_SET_SCOPE NL_CAPABILITY_ROUTE_BUILD_MSG_SET_SCOPE + + /** + * rtnl_link_veth_get_peer() now returns a reference that is owned by the + * caller and must be released by the caller with rtnl_link_put(). + */ + NL_CAPABILITY_ROUTE_LINK_VETH_GET_PEER_OWN_REFERENCE = 2, +#define NL_CAPABILITY_ROUTE_LINK_VETH_GET_PEER_OWN_REFERENCE NL_CAPABILITY_ROUTE_LINK_VETH_GET_PEER_OWN_REFERENCE + + /** + * rtnl_u32_add_action() and rtnl_basic_add_action() now grab a reference to act + * caller are free to release its own + */ + NL_CAPABILITY_ROUTE_LINK_CLS_ADD_ACT_OWN_REFERENCE = 3, +#define NL_CAPABILITY_ROUTE_LINK_CLS_ADD_ACT_OWN_REFERENCE NL_CAPABILITY_ROUTE_LINK_CLS_ADD_ACT_OWN_REFERENCE + + /** + * Indicate that the local port is unspecified until the user accesses + * it (via nl_socket_get_local_port()) or until nl_connect(). More importantly, + * if the port is left unspecified, nl_connect() will retry generating another + * port when bind() fails with ADDRINUSE. + */ + NL_CAPABILITY_NL_CONNECT_RETRY_GENERATE_PORT_ON_ADDRINUSE = 4, +#define NL_CAPABILITY_NL_CONNECT_RETRY_GENERATE_PORT_ON_ADDRINUSE NL_CAPABILITY_NL_CONNECT_RETRY_GENERATE_PORT_ON_ADDRINUSE + + __NL_CAPABILITY_MAX +#define NL_CAPABILITY_MAX (__NL_CAPABILITY_MAX - 1) +}; +int nl_has_capability (int capability); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/hardware/wifi/libnl/include/libnl3/netlink/version.h b/hardware/wifi/libnl/include/libnl3/netlink/version.h new file mode 100644 index 0000000000000000000000000000000000000000..a809442079923f76e50ca753334e418329e5dfcd --- /dev/null +++ b/hardware/wifi/libnl/include/libnl3/netlink/version.h @@ -0,0 +1,37 @@ +/* + * netlink/version.h Versioning Information + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2008-2011 Thomas Graf + */ + +#ifndef NETLINK_VERSION_H_ +#define NETLINK_VERSION_H_ + +/* Compile Time Versioning Information */ + +#define LIBNL_STRING "libnl 3.2.25" +#define LIBNL_VERSION "3.2.25" + +#define LIBNL_VER_MAJ 3 +#define LIBNL_VER_MIN 2 +#define LIBNL_VER_MIC 25 +#define LIBNL_VER(maj,min) ((maj) << 8 | (min)) +#define LIBNL_VER_NUM LIBNL_VER(LIBNL_VER_MAJ, LIBNL_VER_MIN) + +#define LIBNL_CURRENT 220 +#define LIBNL_REVISION 0 +#define LIBNL_AGE 20 + +/* Run-time version information */ + +extern const int nl_ver_num; +extern const int nl_ver_maj; +extern const int nl_ver_min; +extern const int nl_ver_mic; + +#endif diff --git a/hardware/wifi/libnl/lib/libnl-3.a b/hardware/wifi/libnl/lib/libnl-3.a new file mode 100644 index 0000000000000000000000000000000000000000..fd7e0efffcbd48e54a3d656eb9a41923f68fc0d7 Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl-3.a differ diff --git a/hardware/wifi/libnl/lib/libnl-cli-3.a b/hardware/wifi/libnl/lib/libnl-cli-3.a new file mode 100644 index 0000000000000000000000000000000000000000..4f7254e72357cc615bf8c5b77302a5ba5b5ba500 Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl-cli-3.a differ diff --git a/hardware/wifi/libnl/lib/libnl-genl-3.a b/hardware/wifi/libnl/lib/libnl-genl-3.a new file mode 100644 index 0000000000000000000000000000000000000000..536bda087bf3bd09523ec85397c65730b706f09e Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl-genl-3.a differ diff --git a/hardware/wifi/libnl/lib/libnl-idiag-3.a b/hardware/wifi/libnl/lib/libnl-idiag-3.a new file mode 100644 index 0000000000000000000000000000000000000000..acc19df1c59bed00e2f3a131323478b9cbe1c19b Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl-idiag-3.a differ diff --git a/hardware/wifi/libnl/lib/libnl-nf-3.a b/hardware/wifi/libnl/lib/libnl-nf-3.a new file mode 100644 index 0000000000000000000000000000000000000000..0a59a3b1ff90961b3233600b9820a82404ae8d12 Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl-nf-3.a differ diff --git a/hardware/wifi/libnl/lib/libnl-route-3.a b/hardware/wifi/libnl/lib/libnl-route-3.a new file mode 100644 index 0000000000000000000000000000000000000000..801491a8b020b534fcad8b3949170c536165609a Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl-route-3.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/cls/basic.a b/hardware/wifi/libnl/lib/libnl/cli/cls/basic.a new file mode 100644 index 0000000000000000000000000000000000000000..4df41d0291db24d65cd79f8235d9157ac158ccce Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/cls/basic.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/cls/cgroup.a b/hardware/wifi/libnl/lib/libnl/cli/cls/cgroup.a new file mode 100644 index 0000000000000000000000000000000000000000..ad4912c4a09830a301d0709d2ab7815df3a8d88d Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/cls/cgroup.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/qdisc/bfifo.a b/hardware/wifi/libnl/lib/libnl/cli/qdisc/bfifo.a new file mode 100644 index 0000000000000000000000000000000000000000..1c3777697397e4bbd1cf7bf6a3c1f5a820dc610a Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/qdisc/bfifo.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/qdisc/blackhole.a b/hardware/wifi/libnl/lib/libnl/cli/qdisc/blackhole.a new file mode 100644 index 0000000000000000000000000000000000000000..ae3215cb3c4655af1551933dd83cb65ef501333a Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/qdisc/blackhole.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/qdisc/fq_codel.a b/hardware/wifi/libnl/lib/libnl/cli/qdisc/fq_codel.a new file mode 100644 index 0000000000000000000000000000000000000000..5dc43bb1a42d8710253f4418c4727027ef6b3030 Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/qdisc/fq_codel.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/qdisc/htb.a b/hardware/wifi/libnl/lib/libnl/cli/qdisc/htb.a new file mode 100644 index 0000000000000000000000000000000000000000..be2faf5599d713a9cc8b6b5bbf55700743669d4e Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/qdisc/htb.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/qdisc/ingress.a b/hardware/wifi/libnl/lib/libnl/cli/qdisc/ingress.a new file mode 100644 index 0000000000000000000000000000000000000000..8f7de9c0dd70c8884800adb9b42dcbfbfe3094a3 Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/qdisc/ingress.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/qdisc/pfifo.a b/hardware/wifi/libnl/lib/libnl/cli/qdisc/pfifo.a new file mode 100644 index 0000000000000000000000000000000000000000..3201991e9057590df63edc5e0ffaf3b48ccc93e3 Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/qdisc/pfifo.a differ diff --git a/hardware/wifi/libnl/lib/libnl/cli/qdisc/plug.a b/hardware/wifi/libnl/lib/libnl/cli/qdisc/plug.a new file mode 100644 index 0000000000000000000000000000000000000000..accf167608ef0c9acdc6f1946b89d38992eed2ce Binary files /dev/null and b/hardware/wifi/libnl/lib/libnl/cli/qdisc/plug.a differ diff --git a/hardware/wifi/libnl/lib64/libnl-3.a b/hardware/wifi/libnl/lib64/libnl-3.a new file mode 100644 index 0000000000000000000000000000000000000000..1dce330309d1e55ffb8f29abfcf8b878ca3c9c88 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl-3.a differ diff --git a/hardware/wifi/libnl/lib64/libnl-cli-3.a b/hardware/wifi/libnl/lib64/libnl-cli-3.a new file mode 100644 index 0000000000000000000000000000000000000000..f832c8d77952d4c63a09e064f807f0caf3fbf9f2 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl-cli-3.a differ diff --git a/hardware/wifi/libnl/lib64/libnl-genl-3.a b/hardware/wifi/libnl/lib64/libnl-genl-3.a new file mode 100644 index 0000000000000000000000000000000000000000..8286938cbd5ef8f41fa567e011430e99f7b389c1 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl-genl-3.a differ diff --git a/hardware/wifi/libnl/lib64/libnl-idiag-3.a b/hardware/wifi/libnl/lib64/libnl-idiag-3.a new file mode 100644 index 0000000000000000000000000000000000000000..e040d987bd2b5f46e7c2bd3e6e9ab3ef76f1ddd4 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl-idiag-3.a differ diff --git a/hardware/wifi/libnl/lib64/libnl-nf-3.a b/hardware/wifi/libnl/lib64/libnl-nf-3.a new file mode 100644 index 0000000000000000000000000000000000000000..4a091989d36fe13fe2e5d2dcfc11121be9d26c4e Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl-nf-3.a differ diff --git a/hardware/wifi/libnl/lib64/libnl-route-3.a b/hardware/wifi/libnl/lib64/libnl-route-3.a new file mode 100644 index 0000000000000000000000000000000000000000..2de7527b636dde952cdc035920459c61c00b37ef Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl-route-3.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/cls/basic.a b/hardware/wifi/libnl/lib64/libnl/cli/cls/basic.a new file mode 100644 index 0000000000000000000000000000000000000000..d4afaa53e340d14c604b96f42f9147ffca980b04 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/cls/basic.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/cls/basic.la b/hardware/wifi/libnl/lib64/libnl/cli/cls/basic.la new file mode 100755 index 0000000000000000000000000000000000000000..feef913dd64190cd0e7c1fcba2f663c0ec91a0b5 --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/cls/basic.la @@ -0,0 +1,41 @@ +# basic.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='basic.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for basic. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/cls' diff --git a/hardware/wifi/libnl/lib64/libnl/cli/cls/cgroup.a b/hardware/wifi/libnl/lib64/libnl/cli/cls/cgroup.a new file mode 100644 index 0000000000000000000000000000000000000000..7c6178c6ee205bed4d26b637897d275ea79c4dc4 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/cls/cgroup.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/cls/cgroup.la b/hardware/wifi/libnl/lib64/libnl/cli/cls/cgroup.la new file mode 100755 index 0000000000000000000000000000000000000000..e0cc3ce1f2d1c10489792fbd59398218b7364a78 --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/cls/cgroup.la @@ -0,0 +1,41 @@ +# cgroup.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='cgroup.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for cgroup. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/cls' diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/bfifo.a b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/bfifo.a new file mode 100644 index 0000000000000000000000000000000000000000..5fa35101c622d59f506433d3c2c5caf5e51ac9e5 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/bfifo.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/bfifo.la b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/bfifo.la new file mode 100755 index 0000000000000000000000000000000000000000..99eb5b0e68631282fc172bf4c6686ac5f7b7b91d --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/bfifo.la @@ -0,0 +1,41 @@ +# bfifo.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='bfifo.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for bfifo. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/qdisc' diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/blackhole.a b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/blackhole.a new file mode 100644 index 0000000000000000000000000000000000000000..3febdf13ae6939d334b1bbee4f6b0458d8399111 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/blackhole.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/blackhole.la b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/blackhole.la new file mode 100755 index 0000000000000000000000000000000000000000..4acced1b151adfe588a9c5150a71da878d1658db --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/blackhole.la @@ -0,0 +1,41 @@ +# blackhole.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='blackhole.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for blackhole. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/qdisc' diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/fq_codel.a b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/fq_codel.a new file mode 100644 index 0000000000000000000000000000000000000000..9ee6bcf4acf151343165cebdae8c8ebadfd10144 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/fq_codel.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/fq_codel.la b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/fq_codel.la new file mode 100755 index 0000000000000000000000000000000000000000..028e8b3a5faf347e5d40baba41421745d12f74c3 --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/fq_codel.la @@ -0,0 +1,41 @@ +# fq_codel.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='fq_codel.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for fq_codel. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/qdisc' diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/htb.a b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/htb.a new file mode 100644 index 0000000000000000000000000000000000000000..ec33b5c497833ae152470080bfa781ff30c5ec50 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/htb.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/htb.la b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/htb.la new file mode 100755 index 0000000000000000000000000000000000000000..79f9bb12b61ae27195735065501d7b593b4acec7 --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/htb.la @@ -0,0 +1,41 @@ +# htb.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='htb.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for htb. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/qdisc' diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/ingress.a b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/ingress.a new file mode 100644 index 0000000000000000000000000000000000000000..992b4e13be26fe2a6e29ee1edb44eef1b748cf3f Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/ingress.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/ingress.la b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/ingress.la new file mode 100755 index 0000000000000000000000000000000000000000..362996888b8c7fce1b207dd07a6630c9b98036f9 --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/ingress.la @@ -0,0 +1,41 @@ +# ingress.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='ingress.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for ingress. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/qdisc' diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/pfifo.a b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/pfifo.a new file mode 100644 index 0000000000000000000000000000000000000000..61ad525273c9ef15f99644554129f5842ff41f69 Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/pfifo.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/pfifo.la b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/pfifo.la new file mode 100755 index 0000000000000000000000000000000000000000..28b01c60509edd5dd25f7463e5b2d4b8d5c255f3 --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/pfifo.la @@ -0,0 +1,41 @@ +# pfifo.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='pfifo.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for pfifo. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/qdisc' diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/plug.a b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/plug.a new file mode 100644 index 0000000000000000000000000000000000000000..95778e8ce0fe53086ffe8ad1bb427f327e02243a Binary files /dev/null and b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/plug.a differ diff --git a/hardware/wifi/libnl/lib64/libnl/cli/qdisc/plug.la b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/plug.la new file mode 100755 index 0000000000000000000000000000000000000000..fd46a1826ee3b7fe0189b8821fb9fc3a75227330 --- /dev/null +++ b/hardware/wifi/libnl/lib64/libnl/cli/qdisc/plug.la @@ -0,0 +1,41 @@ +# plug.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='plug.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for plug. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=yes + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/usr/local/arm64/libnl/lib/libnl/cli/qdisc' diff --git a/hardware/wifi/wpa.conf b/hardware/wifi/wpa.conf new file mode 100644 index 0000000000000000000000000000000000000000..1cdca779c42def777f23437da0c97b0dfabab655 --- /dev/null +++ b/hardware/wifi/wpa.conf @@ -0,0 +1,6 @@ +country=GB +ctrl_interface=udp +network={ + ssid="ChuangXin" + psk="83991906" +} diff --git a/rk3568/BUILD.gn b/rk3568/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..e0aeb26482af419aa746b9139d21470237999352 --- /dev/null +++ b/rk3568/BUILD.gn @@ -0,0 +1,23 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") + +print("rk3568_group in") +group("rk3568_group") { + deps = [ + "hisi_lib:hisi_lib", + "kernel:kernel", + "build/rootfs:init_configs", + ] +} diff --git a/rk3568/README.en.md b/rk3568/README.en.md new file mode 100644 index 0000000000000000000000000000000000000000..acc3862b8771d408011dc1b8d1100c2d26dc802c --- /dev/null +++ b/rk3568/README.en.md @@ -0,0 +1,36 @@ +# device_rockchip_rk3568 + +#### Description +{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} + +#### Software Architecture +Software architecture description + +#### Installation + +1. xxxx +2. xxxx +3. xxxx + +#### Instructions + +1. xxxx +2. xxxx +3. xxxx + +#### Contribution + +1. Fork the repository +2. Create Feat_xxx branch +3. Commit your code +4. Create Pull Request + + +#### Gitee Feature + +1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md +2. Gitee blog [blog.gitee.com](https://blog.gitee.com) +3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) +4. The most valuable open source project [GVP](https://gitee.com/gvp) +5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) +6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/rk3568/README.md b/rk3568/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7cf8cb94a22436c854b14cd67fbfdb35d3ae31f9 --- /dev/null +++ b/rk3568/README.md @@ -0,0 +1,39 @@ +# device_rockchip_rk3568 + +#### 介绍 +{**以下是 Gitee 平台说明,您可以替换此简介** +Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 +无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} + +#### 软件架构 +软件架构说明 + + +#### 安装教程 + +1. xxxx +2. xxxx +3. xxxx + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + +#### 参与贡献 + +1. Fork 本仓库 +2. 新建 Feat_xxx 分支 +3. 提交代码 +4. 新建 Pull Request + + +#### 特技 + +1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md +2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) +3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 +4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 +5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) +6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/rk3568/build/LICENSE b/rk3568/build/LICENSE new file mode 100755 index 0000000000000000000000000000000000000000..4947287f7b5ccb5d1e8b7b2d3aa5d89f322c160d --- /dev/null +++ b/rk3568/build/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/rk3568/build/rootfs/BUILD.gn b/rk3568/build/rootfs/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..9331f22892139dce9396b8da108de30925a5473d --- /dev/null +++ b/rk3568/build/rootfs/BUILD.gn @@ -0,0 +1,51 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") + +ohos_prebuilt_etc("init.Hi3516DV300.cfg") { + source = "init.Hi3516DV300.cfg" + install_images = [ "system" ] + part_name = "rockchip_products" + install_enable = true +} + +ohos_prebuilt_etc("init.Hi3516DV300.usb.cfg") { + source = "init.Hi3516DV300.usb.cfg" + install_images = [ "system" ] + part_name = "rockchip_products" + install_enable = true +} + +ohos_prebuilt_etc("init.cfg") { + source = "init.cfg" + install_images = [ "system" ] + part_name = "rockchip_products" + install_enable = true +} + +ohos_prebuilt_executable("display-hotplug.sh") { + source = "display-hotplug.sh" + install_images = [ "system" ] + part_name = "rockchip_products" + install_enable = true +} + +group("init_configs") { + deps = [ + ":display-hotplug.sh", + ":init.Hi3516DV300.cfg", + ":init.Hi3516DV300.usb.cfg", + ":init.cfg", + ] +} diff --git a/rk3568/build/rootfs/display-hotplug.sh b/rk3568/build/rootfs/display-hotplug.sh new file mode 100755 index 0000000000000000000000000000000000000000..602fc326712245b94ff7259df81848d0f8fc8b18 --- /dev/null +++ b/rk3568/build/rootfs/display-hotplug.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +case $1 in +hdmi) + echo off > /sys/class/drm/card0-eDP-1/status + echo off > /sys/class/drm/card0-HDMI-A-1/status + sleep 1 + echo on > /sys/class/drm/card0-HDMI-A-1/status + ;; +edp) + echo off > /sys/class/drm/card0-HDMI-A-1/status + sleep 1 + echo on > /sys/class/drm/card0-eDP-1/status + ;; +*) + echo "Invalid parameter!" + echo + echo "Usage: display-hoplug.sh hdmi|edp" + ;; +esac diff --git a/rk3568/build/rootfs/init.Hi3516DV300.cfg b/rk3568/build/rootfs/init.Hi3516DV300.cfg new file mode 100644 index 0000000000000000000000000000000000000000..e28c3e33edde81ae292403970f98b431516e9398 --- /dev/null +++ b/rk3568/build/rootfs/init.Hi3516DV300.cfg @@ -0,0 +1,51 @@ +{ + "import" : [ + "init.${ro.hardware}.usb.cfg" + ], + "jobs" : [{ + "name" : "pre-init", + "cmds" : [ + "write /proc/sys/vm/min_free_kbytes 10240" + ] + }, { + "name" : "init", + "cmds" : [ + "mount debugfs /sys/kernel/debug /sys/kernel/debug mode=755", + "write /sys/kernel/debug/hisi_inno_phy/role peripheral" + ] + }, { + "name" : "fs", + "cmds" : [ + "insmod /vendor/modules/hi_securec.ko", + "insmod /vendor/modules/hi_osal.ko anony=1 mmz_allocator=hisi mmz=anonymous,0,0xA8000000,384M || report_error", + "insmod /vendor/modules/hi_irq.ko", + "insmod /vendor/modules/hi_proc.ko", + "insmod /vendor/modules/sys_config.ko chip=hi3516dv300 sensors=sns0=imx335,sns1=NULL,g_cmos_yuv_flag=0", + "insmod /vendor/modules/hi3516cv500_base.ko", + "insmod /vendor/modules/hi3516cv500_sys.ko", + "insmod /vendor/modules/hi3516cv500_tde.ko", + "insmod /vendor/modules/hi3516cv500_vo_dev.ko", + "insmod /vendor/modules/hifb.ko video=\"hifb:vram0_size:16200\"", + "insmod /vendor/modules/hi3516cv500_hdmi.ko", + "insmod /vendor/modules/hi_mipi_rx.ko" + ] + }, { + "name" : "boot", + "cmds" : [ + "chmod 777 /dev/ttyAMA2", + "chmod 775 /sys/class/rfkill/rfkill0/state", + "chmod 777 /dev/rtkbt_dev", + "chmod 0440 /proc/interrupts", + "chmod 0440 /proc/stat", + "chmod 0640 /dev/xt_qtaguid", + "chmod 0660 /proc/net/xt_qtaguid/ctrl", + "chmod 0440 /proc/net/xt_qtaguid/stats", + "chmod 666 /dev/mali0", + "chown system graphics /dev/mali0", + "chown system graphics /dev/graphics/fb0", + "chmod 666 /dev/ion", + "chown system system /dev/ion" + ] + } + ] +} diff --git a/rk3568/build/rootfs/init.Hi3516DV300.usb.cfg b/rk3568/build/rootfs/init.Hi3516DV300.usb.cfg new file mode 100644 index 0000000000000000000000000000000000000000..fa4a0dcdfdc5c819cb1c8212e5ab533e28001bb1 --- /dev/null +++ b/rk3568/build/rootfs/init.Hi3516DV300.usb.cfg @@ -0,0 +1,51 @@ +{ + "jobs" : [{ + "name" : "boot", + "cmds" : [ + "mkdir /dev/usb-ffs 0770 shell shell", + "mkdir /dev/usb-ffs/hdc 0770 shell shell", + "mount configfs none /config", + "mkdir /config/usb_gadget/g1 0770 shell shell", + "write /config/usb_gadget/g1/idVendor 0x2207", + "write /config/usb_gadget/g1/idProduct 0x0018", + "write /config/usb_gadget/g1/os_desc/use 1", + "write /config/usb_gadget/g1/bcdDevice 0x0223", + "write /config/usb_gadget/g1/bcdUSB 0x0200", + "mkdir /config/usb_gadget/g1/strings/0x409 0770", + "copy /sys/block/mmcblk0/device/cid /config/usb_gadget/g1/strings/0x409/serialnumber", + "write /config/usb_gadget/g1/strings/0x409/manufacturer Rockchip", + "write /config/usb_gadget/g1/strings/0x409/product \"HDC Device\"", + "mkdir /config/usb_gadget/g1/functions/ffs.hdc", + "mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell", + "mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell", + "write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1", + "write /config/usb_gadget/g1/os_desc/qw_sign MSFT100", + "write /config/usb_gadget/g1/configs/b.1/MaxPower 500", + "symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1", + "mount functionfs hdc /dev/usb-ffs/hdc uid=2000,gid=2000", + "setparam sys.usb.configfs 1", + "setparam sys.usb.controller fcc00000.dwc3" + ] + }, { + "name" : "param:sys.usb.config=none && param:sys.usb.configfs=1", + "condition" : "sys.usb.config=none && sys.usb.configfs=1", + "cmds" : [ + "write /config/usb_gadget/g1/os_desc/use 0", + "setparam sys.usb.ffs.ready 0" + ] + }, { + "name" : "param:init.svc.hdcd=stopped", + "condition" : "init.svc.hdcd=stopped", + "cmds" : [ + "setparam sys.usb.ffs.ready 0" + ] + }, { + "name" : "param:sys.usb.config=hdc && param:sys.usb.configfs=1", + "condition" : "sys.usb.config=hdc && sys.usb.configfs=1", + "cmds" : [ + "write /config/usb_gadget/g1/idProduct 0x5000", + "write /config/usb_gadget/g1/os_desc/use 1" + ] + } + ] +} diff --git a/rk3568/build/rootfs/init.cfg b/rk3568/build/rootfs/init.cfg new file mode 100644 index 0000000000000000000000000000000000000000..9e479ce39096bf99dc2b431f784d2bc1cbfcbac2 --- /dev/null +++ b/rk3568/build/rootfs/init.cfg @@ -0,0 +1,488 @@ +{ + "import" : [ + "/etc/init.usb.cfg", + "/etc/init.usb.configfs.cfg", + "/etc/init.usb.cfg", + "/etc/init.Hi3516DV300.usb.cfg", + "/etc/init.Hi3516DV300.cfg" + ], + "jobs" : [{ + "name" : "pre-init", + "cmds" : [ + "write /proc/sys/kernel/sysrq 0", + "mkdir /acct/uid", + "chown root system /dev/memcg/memory.pressure_level", + "chmod 0040 /dev/memcg/memory.pressure_level", + "mkdir /dev/memcg/apps/ 0755 system system", + "mkdir /dev/memcg/system 0550 system system", + "start ueventd", + "mkdir /vendor", + "mkdir /data", + "mount ext4 /dev/block/platform/fe310000.sdhci/by-name/vendor /vendor wait rdonly barrier=1", + "mount ext4 /dev/block/platform/fe310000.sdhci/by-name/userdata /data wait nosuid nodev noatime barrier=1,data=ordered,noauto_da_alloc" + ] + }, { + "name" : "init", + "cmds" : [ + "copy /proc/cmdline /dev/urandom", + "copy /system/etc/prop.default /dev/urandom", + "symlink /proc/self/fd/0 /dev/stdin", + "symlink /proc/self/fd/1 /dev/stdout", + "symlink /proc/self/fd/2 /dev/stderr", + "symlink /system/bin /bin", + "symlink /system/etc /etc", + "symlink /sys/kernel/debug /d", + "symlink /system/vendor /vendor", + "mkdir /dev/stune/foreground", + "mkdir /dev/stune/background", + "mkdir /dev/stune/top-app", + "mkdir /dev/stune/rt", + "chown system system /dev/stune", + "chown system system /dev/stune/foreground", + "chown system system /dev/stune/background", + "chown system system /dev/stune/top-app", + "chown system system /dev/stune/rt", + "chown system system /dev/stune/tasks", + "chown system system /dev/stune/foreground/tasks", + "chown system system /dev/stune/background/tasks", + "chown system system /dev/stune/top-app/tasks", + "chown system system /dev/stune/rt/tasks", + "chmod 0664 /dev/stune/tasks", + "chmod 0664 /dev/stune/foreground/tasks", + "chmod 0664 /dev/stune/background/tasks", + "chmod 0664 /dev/stune/top-app/tasks", + "chmod 0664 /dev/stune/rt/tasks", + "mkdir /dev/blkio/background", + "chown system system /dev/blkio", + "chown system system /dev/blkio/background", + "chown system system /dev/blkio/tasks", + "chown system system /dev/blkio/background/tasks", + "chmod 0664 /dev/blkio/tasks", + "chmod 0664 /dev/blkio/background/tasks", + "write /dev/blkio/blkio.weight 1000", + "write /dev/blkio/background/blkio.weight 500", + "write /dev/blkio/blkio.group_idle 0", + "write /dev/blkio/background/blkio.group_idle 0", + "mount configfs none /config nodev noexec nosuid", + "chmod 0770 /config/sdcardfs", + "chown system package_info /config/sdcardfs", + "mkdir /mnt/secure 0700 root root", + "mkdir /mnt/secure/asec 0700 root root", + "mkdir /mnt/asec 0755 root system", + "mkdir /mnt/obb 0755 root system", + "mkdir /mnt/media_rw 0750 root media_rw", + "mkdir /mnt/user 0755 root root", + "mkdir /mnt/user/0 0755 root root", + "mkdir /mnt/expand 0771 system system", + "mkdir /mnt/appfuse 0711 root root", + "mkdir /mnt/runtime 0700 root root", + "mkdir /mnt/runtime/default 0755 root root", + "mkdir /mnt/runtime/default/self 0755 root root", + "mkdir /mnt/runtime/read 0755 root root", + "mkdir /mnt/runtime/read/self 0755 root root", + "mkdir /mnt/runtime/write 0755 root root", + "mkdir /mnt/runtime/write/self 0755 root root", + "mkdir /mnt/runtime/full 0755 root root", + "mkdir /mnt/runtime/full/self 0755 root root", + "symlink /storage/self/primary /sdcard", + "symlink /storage/self/primary /mnt/sdcard", + "symlink /mnt/user/0/primary /mnt/runtime/default/self/primary", + "write /proc/sys/kernel/panic_on_oops 1", + "write /proc/sys/kernel/hung_task_timeout_secs 0", + "write /proc/cpu/alignment 4", + "write /proc/sys/kernel/sched_tunable_scaling 0", + "write /proc/sys/kernel/sched_latency_ns 10000000", + "write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000", + "write /proc/sys/kernel/sched_child_runs_first 0", + "write /proc/sys/kernel/randomize_va_space 2", + "write /proc/sys/vm/mmap_min_addr 32768", + "write /proc/sys/net/ipv4/ping_group_range \"0 2147483647\"", + "write /proc/sys/net/unix/max_dgram_qlen 600", + "write /proc/sys/kernel/sched_rt_runtime_us 950000", + "write /proc/sys/kernel/sched_rt_period_us 1000000", + "write /proc/sys/net/core/rmem_max 262144", + "write /proc/sys/net/core/wmem_max 262144", + "write /proc/sys/net/ipv4/fwmark_reflect 1", + "write /proc/sys/net/ipv6/fwmark_reflect 1", + "write /proc/sys/net/ipv4/tcp_fwmark_accept 1", + "write /proc/sys/net/ipv4/conf/all/accept_redirects 0", + "write /proc/sys/net/ipv6/conf/all/accept_redirects 0", + "chmod 0400 /proc/net/fib_trie", + "chown system system /dev/cpuctl", + "chown system system /dev/cpuctl/tasks", + "chmod 0666 /dev/cpuctl/tasks", + "write /dev/cpuctl/cpu.rt_period_us 1000000", + "write /dev/cpuctl/cpu.rt_runtime_us 950000", + "mkdir /dev/cpuset/foreground", + "copy /dev/cpuset/cpus /dev/cpuset/foreground/cpus", + "copy /dev/cpuset/mems /dev/cpuset/foreground/mems", + "mkdir /dev/cpuset/background", + "copy /dev/cpuset/cpus /dev/cpuset/background/cpus", + "copy /dev/cpuset/mems /dev/cpuset/background/mems", + "mkdir /dev/cpuset/system-background", + "copy /dev/cpuset/cpus /dev/cpuset/system-background/cpus", + "copy /dev/cpuset/mems /dev/cpuset/system-background/mems", + "mkdir /dev/cpuset/restricted", + "copy /dev/cpuset/cpus /dev/cpuset/restricted/cpus", + "copy /dev/cpuset/mems /dev/cpuset/restricted/mems", + "mkdir /dev/cpuset/top-app", + "copy /dev/cpuset/cpus /dev/cpuset/top-app/cpus", + "copy /dev/cpuset/mems /dev/cpuset/top-app/mems", + "chown system system /dev/cpuset", + "chown system system /dev/cpuset/foreground", + "chown system system /dev/cpuset/background", + "chown system system /dev/cpuset/system-background", + "chown system system /dev/cpuset/top-app", + "chown system system /dev/cpuset/restricted", + "chown system system /dev/cpuset/tasks", + "chown system system /dev/cpuset/foreground/tasks", + "chown system system /dev/cpuset/background/tasks", + "chown system system /dev/cpuset/system-background/tasks", + "chown system system /dev/cpuset/top-app/tasks", + "chown system system /dev/cpuset/restricted/tasks", + "chmod 0775 /dev/cpuset/system-background", + "chmod 0664 /dev/cpuset/foreground/tasks", + "chmod 0664 /dev/cpuset/background/tasks", + "chmod 0664 /dev/cpuset/system-background/tasks", + "chmod 0664 /dev/cpuset/top-app/tasks", + "chmod 0664 /dev/cpuset/restricted/tasks", + "chmod 0664 /dev/cpuset/tasks", + "chown system system /proc/pressure/memory", + "chmod 0664 /proc/pressure/memory", + "chown root net_bw_acct /proc/net/xt_qtaguid/ctrl", + "chown root net_bw_stats /proc/net/xt_qtaguid/stats", + "chmod 0644 /dev/xt_qtaguid", + "chown root root /dev/cg2_bpf", + "chmod 0600 /dev/cg2_bpf", + "mount bpf bpf /sys/fs/bpf nodev noexec nosuid", + "mkdir /dev/fscklogs 0770 root system", + "mount pstore pstore /sys/fs/pstore nodev noexec nosuid", + "chown system log /sys/fs/pstore", + "chmod 0550 /sys/fs/pstore", + "chown system log /sys/fs/pstore/console-ramoops", + "chmod 0440 /sys/fs/pstore/console-ramoops", + "chown system log /sys/fs/pstore/console-ramoops-0", + "chmod 0440 /sys/fs/pstore/console-ramoops-0", + "chown system log /sys/fs/pstore/pmsg-ramoops-0", + "chmod 0440 /sys/fs/pstore/pmsg-ramoops-0", + "write /proc/sys/abi/swp 1", + "symlink /proc/self/fd /dev/fd", + "export DOWNLOAD_CACHE /data/cache", + "setrlimit RLIMIT_NICE 40 40", + "setrlimit RLIMIT_NOFILE 32768 32768", + "write /sys/class/leds/vibrator/trigger transient", + "write /dev/cpu_variant:${ro.bionic.arch} ${ro.bionic.cpu_variant}", + "chmod 0444 /dev/cpu_variant:${ro.bionic.arch}", + "write /dev/cpu_variant:${ro.bionic.2nd_arch} ${ro.bionic.2nd_cpu_variant}", + "chmod 0444 /dev/cpu_variant:${ro.bionic.2nd_arch}", + "chown system system /sys/power/state", + "chown system system /sys/power/wakeup_count", + "chmod 0660 /sys/power/state", + "ifup lo", + "hostname localhost", + "domainname localdomain" + ] + }, { + "name" : "param:sys.boot_from_charger_mode=1", + "condition" : "sys.boot_from_charger_mode=1", + "cmds" : [ + "trigger post-init" + ] + }, { + "name" : "load_persist_props_action", + "cmds" : [ + "load_persist_params load_persist_params" + ] + }, { + "name" : "firmware_mounts_complete", + "cmds" : [ + "rm /dev/.booting" + ] + }, { + "name" : "post-init", + "cmds" : [ + "trigger early-fs", + "trigger fs", + "trigger post-fs", + "trigger late-fs", + "trigger post-fs-data", + "trigger load_persist_props_action", + "trigger firmware_mounts_complete", + "trigger early-boot", + "trigger boot" + ] + }, { + "name" : "early-fs", + "cmds" : [ + "start vold" + ] + }, { + "name" : "post-fs", + "cmds" : [ + "exec - system system -- /system/bin/vdc checkpoint markBootAttempt", + "mount rootfs rootfs / remount bind ro nodev", + "mount none /mnt/runtime/default /storage bind rec", + "mount none none /storage slave rec", + "chown system cache /cache", + "chmod 0770 /cache", + "mkdir /cache/recovery 0770 system cache", + "mkdir /cache/backup_stage 0700 system system", + "mkdir /cache/backup 0700 system system", + "chown root log /proc/vmallocinfo", + "chmod 0440 /proc/vmallocinfo", + "chown root log /proc/slabinfo", + "chmod 0440 /proc/slabinfo", + "chown root system /proc/kmsg", + "chmod 0440 /proc/kmsg", + "chown root system /proc/sysrq-trigger", + "chmod 0220 /proc/sysrq-trigger", + "chown system log /proc/last_kmsg", + "chmod 0440 /proc/last_kmsg", + "chmod 0444 /sys/fs/selinux/policy", + "mkdir /cache/lost+found 0770 root root" + ] + }, { + "name" : "late-fs", + "cmds" : [ + "chmod 0755 /sys/kernel/debug/tracing" + ] + }, { + "name" : "post-fs-data", + "cmds" : [ + "chown system system /data", + "chmod 0771 /data", + "mkdir /data/bootchart 0755 shell shell", + "mkdir /data/app-staging 0750 system system", + "copy /data/system/entropy.dat /dev/urandom", + "mkdir /data/misc 01771 system misc", + "mkdir /data/misc/recovery 0770 system log", + "copy /data/misc/recovery/ro.build.fingerprint /data/misc/recovery/ro.build.fingerprint.1", + "chmod 0440 /data/misc/recovery/ro.build.fingerprint.1", + "chown system log /data/misc/recovery/ro.build.fingerprint.1", + "write /data/misc/recovery/ro.build.fingerprint ${ro.build.fingerprint}", + "chmod 0440 /data/misc/recovery/ro.build.fingerprint", + "chown system log /data/misc/recovery/ro.build.fingerprint", + "mkdir /data/misc/recovery/proc 0770 system log", + "copy /data/misc/recovery/proc/version /data/misc/recovery/proc/version.1", + "chmod 0440 /data/misc/recovery/proc/version.1", + "chown system log /data/misc/recovery/proc/version.1", + "copy /proc/version /data/misc/recovery/proc/version", + "chmod 0440 /data/misc/recovery/proc/version", + "chown system log /data/misc/recovery/proc/version", + "mkdir /data/misc/bluedroid 02770 bluetooth bluetooth", + "chmod 0660 /data/misc/bluedroid/bt_config.conf", + "chown bluetooth bluetooth /data/misc/bluedroid/bt_config.conf", + "mkdir /data/misc/bluetooth 0770 bluetooth bluetooth", + "mkdir /data/misc/bluetooth/logs 0770 bluetooth bluetooth", + "mkdir /data/misc/keystore 0700 keystore keystore", + "mkdir /data/misc/gatekeeper 0700 system system", + "mkdir /data/misc/keychain 0771 system system", + "mkdir /data/misc/net 0750 root shell", + "mkdir /data/misc/radio 0770 system radio", + "mkdir /data/misc/sms 0770 system radio", + "mkdir /data/misc/carrierid 0770 system radio", + "mkdir /data/misc/apns 0770 system radio", + "mkdir /data/misc/zoneinfo 0775 system system", + "mkdir /data/misc/network_watchlist 0774 system system", + "mkdir /data/misc/textclassifier 0771 system system", + "mkdir /data/misc/vpn 0770 system vpn", + "mkdir /data/misc/shared_relro 0771 shared_relro shared_relro", + "mkdir /data/misc/systemkeys 0700 system system", + "mkdir /data/misc/wifi 0770 wifi wifi", + "mkdir /data/misc/wifi/sockets 0770 wifi wifi", + "mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi", + "mkdir /data/misc/ethernet 0770 system system", + "mkdir /data/misc/dhcp 0770 dhcp dhcp", + "mkdir /data/misc/user 0771 root root", + "mkdir /data/misc/perfprofd 0775 root root", + "chmod 0660 /data/misc/wifi/wpa_supplicant.conf", + "mkdir /data/local 0751 root root", + "mkdir /data/misc/media 0700 media media", + "mkdir /data/misc/audioserver 0700 audioserver audioserver", + "mkdir /data/misc/cameraserver 0700 cameraserver cameraserver", + "mkdir /data/misc/vold 0700 root root", + "mkdir /data/misc/boottrace 0771 system shell", + "mkdir /data/misc/update_engine 0700 root root", + "mkdir /data/misc/update_engine_log 02750 root log", + "mkdir /data/misc/trace 0700 root root", + "mkdir /data/misc/wmtrace 0700 system system", + "mkdir /data/misc/profiles 0771 system system", + "mkdir /data/misc/profiles/cur 0771 system system", + "mkdir /data/misc/profiles/ref 0771 system system", + "mkdir /data/misc/profman 0770 system shell", + "mkdir /data/misc/gcov 0770 root root", + "mkdir /data/preloads 0775 system system", + "mkdir /data/vendor 0771 root root", + "mkdir /data/vendor_ce 0771 root root", + "mkdir /data/vendor_de 0771 root root", + "mkdir /data/vendor/hardware 0771 root root", + "mkdir /data/local/tmp 0771 shell shell", + "mkdir /data/local/traces 0777 shell shell", + "mkdir /data/data 0771 system system", + "mkdir /data/app-private 0771 system system", + "mkdir /data/app-ephemeral 0771 system system", + "mkdir /data/app-asec 0700 root root", + "mkdir /data/app-lib 0771 system system", + "mkdir /data/app 0771 system system", + "mkdir /data/ota 0771 root root", + "mkdir /data/ota_package 0770 system cache", + "mkdir /data/resource-cache 0771 system system", + "chown system system /data/resource-cache", + "chmod 0771 /data/resource-cache", + "mkdir /data/lost+found 0770 root root", + "mkdir /data/drm 0770 drm drm", + "mkdir /data/mediadrm 0770 mediadrm mediadrm", + "mkdir /data/nfc 0770 nfc nfc", + "mkdir /data/nfc/param 0770 nfc nfc", + "mkdir /data/backup 0700 system system", + "mkdir /data/ss 0700 system system", + "mkdir /data/system 0775 system system", + "mkdir /data/system/dropbox 0700 system system", + "mkdir /data/system/heapdump 0700 system system", + "mkdir /data/system/users 0775 system system", + "mkdir /data/system_de 0770 system system", + "mkdir /data/system_ce 0770 system system", + "mkdir /data/misc_de 01771 system misc", + "mkdir /data/misc_ce 01771 system misc", + "mkdir /data/user 0711 system system", + "mkdir /data/user_de 0711 system system", + "symlink /data/data /data/user/0", + "mkdir /data/media 0770 media_rw media_rw", + "mkdir /data/media/obb 0770 media_rw media_rw", + "mkdir /data/cache 0770 system cache", + "mkdir /data/cache/recovery 0770 system cache", + "mkdir /data/cache/backup_stage 0700 system system", + "mkdir /data/cache/backup 0700 system system", + "setparam sys.use_memfd false", + "chown root system /dev/fscklogs/log", + "chmod 0770 /dev/fscklogs/log" + ] + }, { + "name" : "boot", + "cmds" : [ + "write /proc/sys/net/core/xfrm_acq_expires 3600", + "write /proc/sys/vm/overcommit_memory 1", + "write /proc/sys/vm/min_free_order_shift 4", + "chown root system /sys/module/lowmemorykiller/parameters/adj", + "chmod 0664 /sys/module/lowmemorykiller/parameters/adj", + "chown root system /sys/module/lowmemorykiller/parameters/minfree", + "chmod 0664 /sys/module/lowmemorykiller/parameters/minfree", + "chown root system /sys/block/zram0/idle", + "chmod 0664 /sys/block/zram0/idle", + "chown root system /sys/block/zram0/writeback", + "chmod 0664 /sys/block/zram0/writeback", + "write /proc/sys/vm/dirty_expire_centisecs 200", + "write /proc/sys/vm/dirty_background_ratio 5", + "write /sys/fs/f2fs/${dev.mnt.blk.data}/cp_interval 200", + "chown radio system /sys/android_power/state", + "chown radio system /sys/android_power/request_state", + "chown radio system /sys/android_power/acquire_full_wake_lock", + "chown radio system /sys/android_power/acquire_partial_wake_lock", + "chown radio system /sys/android_power/release_wake_lock", + "chown system system /sys/power/autosleep", + "chown radio wakelock /sys/power/wake_lock", + "chown radio wakelock /sys/power/wake_unlock", + "chmod 0660 /sys/power/wake_lock", + "chmod 0660 /sys/power/wake_unlock", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_slack", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/target_loads", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/boost", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration", + "chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy", + "chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy", + "chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq", + "chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq", + "chown system system /sys/class/leds/vibrator/trigger", + "chown system system /sys/class/leds/vibrator/activate", + "chown system system /sys/class/leds/vibrator/brightness", + "chown system system /sys/class/leds/vibrator/duration", + "chown system system /sys/class/leds/vibrator/state", + "chown system system /sys/class/timed_output/vibrator/enable", + "chown system system /sys/class/leds/keyboard-backlight/brightness", + "chown system system /sys/class/leds/lcd-backlight/brightness", + "chown system system /sys/class/leds/button-backlight/brightness", + "chown system system /sys/class/leds/jogball-backlight/brightness", + "chown system system /sys/class/leds/red/brightness", + "chown system system /sys/class/leds/green/brightness", + "chown system system /sys/class/leds/blue/brightness", + "chown system system /sys/class/leds/red/device/grpfreq", + "chown system system /sys/class/leds/red/device/grppwm", + "chown system system /sys/class/leds/red/device/blink", + "chown system system /sys/module/sco/parameters/disable_esco", + "chown system system /sys/kernel/ipv4/tcp_wmem_min", + "chown system system /sys/kernel/ipv4/tcp_wmem_def", + "chown system system /sys/kernel/ipv4/tcp_wmem_max", + "chown system system /sys/kernel/ipv4/tcp_rmem_min", + "chown system system /sys/kernel/ipv4/tcp_rmem_def", + "chown system system /sys/kernel/ipv4/tcp_rmem_max", + "chown root radio /proc/cmdline", + "setparam net.tcp.default_init_rwnd 60" + ] + }, { + "name" : "param:sys.sysctl.extra_free_kbytes=*", + "condition" : "sys.sysctl.extra_free_kbytes=*", + "cmds" : [ + "write /proc/sys/vm/extra_free_kbytes ${sys.sysctl.extra_free_kbytes}" + ] + }, { + "name" : "param:sys.sysctl.tcp_def_init_rwnd=*", + "condition" : "sys.sysctl.tcp_def_init_rwnd=*", + "cmds" : [ + "write /proc/sys/net/ipv4/tcp_default_init_rwnd ${sys.sysctl.tcp_def_init_rwnd}" + ] + }, { + "name" : "param:security.perf_harden=0", + "condition" : "security.perf_harden=0", + "cmds" : [ + "write /proc/sys/kernel/perf_event_paranoid 1", + "write /proc/sys/kernel/perf_event_max_sample_rate ${debug.perf_event_max_sample_rate:-100000}", + "write /proc/sys/kernel/perf_cpu_time_max_percent ${debug.perf_cpu_time_max_percent:-25}", + "write /proc/sys/kernel/perf_event_mlock_kb ${debug.perf_event_mlock_kb:-516}" + ] + }, { + "name" : "param:security.perf_harden=1", + "condition" : "security.perf_harden=1", + "cmds" : [ + "write /proc/sys/kernel/perf_event_paranoid 3" + ] + }, { + "name" : "boot && param:ro.debuggable=1", + "condition" : "boot && ro.debuggable=1", + "cmds" : [ + "chmod 0773 /data/misc/trace", + "chmod 0775 /data/misc/wmtrace", + "start console" + ] + } + ], + "services" : [{ + "name" : "ueventd", + "path" : ["/system/bin/ueventd"], + "critical" : 1 + }, { + "name" : "console", + "path" : ["/system/bin/sh"], + "disabled" : 1, + "console" : 1, + "uid" : "root", + "gid" : ["shell", "log", "readproc"] + } + ] +} diff --git a/rk3568/hisi_lib/BUILD.gn b/rk3568/hisi_lib/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..814963158f1427db69a8c69de23b6a6e12cb0b7e --- /dev/null +++ b/rk3568/hisi_lib/BUILD.gn @@ -0,0 +1,716 @@ +# Copyright (C) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") + +GPL_SDK_LIB_DIR = "//device/rockchip/rk3568/hisi_lib/lib" +GPL_SDK_ETC_DIR = "//device/rockchip/rk3568/hisi_lib/etc" + +group("hisi_lib") { + deps = [ + ":libVoiceEngine", + ":lib_hiacs", + ":lib_hiae", + ":lib_hiawb", + ":lib_hiawb_natura", + ":lib_hicalcflicker", + ":lib_hidehaze", + ":lib_hidrc", + ":lib_hiir_auto", + ":lib_hildci", + ":libaaccomm", + ":libaacdec", + ":libaacenc", + ":libaacsbrdec", + ":libaacsbrenc", + ":libdnvqe", + ":libhdmi", + ":libhi3516cv500_acodec", + ":libhi3516cv500_adec", + ":libhi3516cv500_aenc", + ":libhi3516cv500_ai", + ":libhi3516cv500_aio", + ":libhi3516cv500_ao", + ":libhi3516cv500_base", + ":libhi3516cv500_chnl", + ":libhi3516cv500_dis", + ":libhi3516cv500_gdc", + ":libhi3516cv500_h264e", + ":libhi3516cv500_h265e", + ":libhi3516cv500_isp", + ":libhi3516cv500_ive", + ":libhi3516cv500_jpegd", + ":libhi3516cv500_jpege", + ":libhi3516cv500_nnie", + ":libhi3516cv500_rc", + ":libhi3516cv500_rgn", + ":libhi3516cv500_sys", + ":libhi3516cv500_vdec", + ":libhi3516cv500_vedu", + ":libhi3516cv500_venc", + ":libhi3516cv500_vfmw", + ":libhi3516cv500_vgs", + ":libhi3516cv500_vi", + ":libhi3516cv500_vo", + ":libhi3516cv500_vpss", + ":libhi_irq", + ":libhi_osal", + ":libhi_sensor_i2c", + ":libhifisheyecalibrate", + ":libhive_AEC", + ":libhive_AGC", + ":libhive_ANR", + ":libhive_EQ", + ":libhive_HPF", + ":libhive_RES", + ":libhive_RES_ext", + ":libhive_common", + ":libhive_record", + ":libhive_talkv2", + ":libhive_wnr", + ":libisp", + ":libive", + ":libmd", + ":libmpi", + ":libnnie", + ":libsdk", + ":libsecurec", + ":libsns_imx335", + ":libtde", + ":libupvqe", + ":libaudio_hw", + ":libaudio_input_port", + ":libaudio_output_port", + ":libcamera_hw_platform", + ":libcodec", + ":libdtcf", + ":libexif", + ":libfileformat", + ":libformat_hw", + ":libhiaacdec", + ":libhitimer", + ":libmbuf", + ":libmedia_hal_common", + ":libmessagehandler", + ":libmp4", + ":libmwlog", + ":libplugin_adec_35xx", + ":libplugin_aenc_35xx", + ":libplugin_muxer_recorder", + ":libplugin_vdec_3516D", + ":libplugin_venc_35xx", + ":librecorder_pro", + ":libts", + ":libcamera_buffer_manager", + ":libcamera_device_manager", + ":libcamera_hdi_impl", + ":libcamera_ipp_algo_example", + ":libcamera_pipeline_core", + ":libcamera_utils", + ":libdriver_adapter", + ":libmpp_vbs", + ":libvb_server", + ":camera_host_config", + ":config", + ":ipp_algo_config", + ":mpp_config", + ":params", + ":stream_supported_config", + ":bootanimation-800x1280", + ] +} + +ohos_prebuilt_etc("bootanimation-800x1280") { + source = "$GPL_SDK_ETC_DIR/bootanimation-800x1280.raw" + part_name = "rockchip_products" +} + +ohos_prebuilt_etc("params") { + source = "$GPL_SDK_ETC_DIR/params.c" + relative_install_dir = "hdfconfig" + part_name = "rockchip_products" +} + +ohos_prebuilt_etc("stream_supported_config") { + source = "$GPL_SDK_ETC_DIR/stream_supported_config.hcb" + relative_install_dir = "hdfconfig" + part_name = "rockchip_products" +} + +ohos_prebuilt_etc("ipp_algo_config") { + source = "$GPL_SDK_ETC_DIR/ipp_algo_config.hcb" + relative_install_dir = "hdfconfig" + part_name = "rockchip_products" +} + +ohos_prebuilt_etc("mpp_config") { + source = "$GPL_SDK_ETC_DIR/mpp_config.hcb" + relative_install_dir = "hdfconfig" + part_name = "rockchip_products" +} + +ohos_prebuilt_etc("camera_host_config") { + source = "$GPL_SDK_ETC_DIR/camera_host_config.hcb" + relative_install_dir = "hdfconfig" + part_name = "rockchip_products" +} + +ohos_prebuilt_etc("config") { + source = "$GPL_SDK_ETC_DIR/config.c" + relative_install_dir = "hdfconfig" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libvb_server") { + source = "$GPL_SDK_LIB_DIR/libvb_server.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libmpp_vbs") { + source = "$GPL_SDK_LIB_DIR/libmpp_vbs.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libdriver_adapter") { + source = "$GPL_SDK_LIB_DIR/libdriver_adapter.z.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libcamera_utils") { + source = "$GPL_SDK_LIB_DIR/libcamera_utils.z.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libcamera_pipeline_core") { + source = "$GPL_SDK_LIB_DIR/libcamera_pipeline_core.z.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libcamera_ipp_algo_example") { + source = "$GPL_SDK_LIB_DIR/libcamera_ipp_algo_example.z.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libcamera_hdi_impl") { + source = "$GPL_SDK_LIB_DIR/libcamera_hdi_impl.z.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libcamera_device_manager") { + source = "$GPL_SDK_LIB_DIR/libcamera_device_manager.z.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libcamera_buffer_manager") { + source = "$GPL_SDK_LIB_DIR/libcamera_buffer_manager.z.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libts") { + source = "$GPL_SDK_LIB_DIR/libts.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("librecorder_pro") { + source = "$GPL_SDK_LIB_DIR/librecorder_pro.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libplugin_venc_35xx") { + source = "$GPL_SDK_LIB_DIR/libplugin_venc_35xx.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libplugin_vdec_3516D") { + source = "$GPL_SDK_LIB_DIR/libplugin_vdec_3516D.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libplugin_muxer_recorder") { + source = "$GPL_SDK_LIB_DIR/libplugin_muxer_recorder.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libplugin_aenc_35xx") { + source = "$GPL_SDK_LIB_DIR/libplugin_aenc_35xx.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libplugin_adec_35xx") { + source = "$GPL_SDK_LIB_DIR/libplugin_adec_35xx.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libmwlog") { + source = "$GPL_SDK_LIB_DIR/libmwlog.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libmp4") { + source = "$GPL_SDK_LIB_DIR/libmp4.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libmessagehandler") { + source = "$GPL_SDK_LIB_DIR/libmessagehandler.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libmedia_hal_common") { + source = "$GPL_SDK_LIB_DIR/libmedia_hal_common.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libmbuf") { + source = "$GPL_SDK_LIB_DIR/libmbuf.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhitimer") { + source = "$GPL_SDK_LIB_DIR/libhitimer.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhiaacdec") { + source = "$GPL_SDK_LIB_DIR/libhiaacdec.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libformat_hw") { + source = "$GPL_SDK_LIB_DIR/libformat_hw.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libfileformat") { + source = "$GPL_SDK_LIB_DIR/libfileformat.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libexif") { + source = "$GPL_SDK_LIB_DIR/libexif.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libdtcf") { + source = "$GPL_SDK_LIB_DIR/libdtcf.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libcodec") { + source = "$GPL_SDK_LIB_DIR/libcodec.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libcamera_hw_platform") { + source = "$GPL_SDK_LIB_DIR/libcamera_hw_platform.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libaudio_output_port") { + source = "$GPL_SDK_LIB_DIR/libaudio_output_port.so" + subsystem_name = "rockchip_products" +} + + +ohos_prebuilt_shared_library("libaudio_input_port") { + source = "$GPL_SDK_LIB_DIR/libaudio_input_port.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libaudio_hw") { + source = "$GPL_SDK_LIB_DIR/libaudio_hw.so" + subsystem_name = "rockchip_products" +} + + +ohos_prebuilt_shared_library("libhive_HPF") { + source = "$GPL_SDK_LIB_DIR/libhive_HPF.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hiawb") { + source = "$GPL_SDK_LIB_DIR/lib_hiawb.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_AGC") { + source = "$GPL_SDK_LIB_DIR/libhive_AGC.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_ANR") { + source = "$GPL_SDK_LIB_DIR/libhive_ANR.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libaacdec") { + source = "$GPL_SDK_LIB_DIR/libaacdec.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhdmi") { + source = "$GPL_SDK_LIB_DIR/libhdmi.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libive") { + source = "$GPL_SDK_LIB_DIR/libive.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libaacenc") { + source = "$GPL_SDK_LIB_DIR/libaacenc.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hildci") { + source = "$GPL_SDK_LIB_DIR/lib_hildci.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hidrc") { + source = "$GPL_SDK_LIB_DIR/lib_hidrc.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_RES_ext") { + source = "$GPL_SDK_LIB_DIR/libhive_RES_ext.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libmd") { + source = "$GPL_SDK_LIB_DIR/libmd.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hiacs") { + source = "$GPL_SDK_LIB_DIR/lib_hiacs.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_wnr") { + source = "$GPL_SDK_LIB_DIR/libhive_wnr.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libupvqe") { + source = "$GPL_SDK_LIB_DIR/libupvqe.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hiawb_natura") { + source = "$GPL_SDK_LIB_DIR/lib_hiawb_natura.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_record") { + source = "$GPL_SDK_LIB_DIR/libhive_record.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_common") { + source = "$GPL_SDK_LIB_DIR/libhive_common.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libaacsbrenc") { + source = "$GPL_SDK_LIB_DIR/libaacsbrenc.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libnnie") { + source = "$GPL_SDK_LIB_DIR/libnnie.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libaaccomm") { + source = "$GPL_SDK_LIB_DIR/libaaccomm.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_EQ") { + source = "$GPL_SDK_LIB_DIR/libhive_EQ.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hiir_auto") { + source = "$GPL_SDK_LIB_DIR/lib_hiir_auto.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libisp") { + source = "$GPL_SDK_LIB_DIR/libisp.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libsecurec") { + source = "$GPL_SDK_LIB_DIR/libsecurec.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hidehaze") { + source = "$GPL_SDK_LIB_DIR/lib_hidehaze.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libmpi") { + source = "$GPL_SDK_LIB_DIR/libmpi.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_talkv2") { + source = "$GPL_SDK_LIB_DIR/libhive_talkv2.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_RES") { + source = "$GPL_SDK_LIB_DIR/libhive_RES.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hicalcflicker") { + source = "$GPL_SDK_LIB_DIR/lib_hicalcflicker.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libaacsbrdec") { + source = "$GPL_SDK_LIB_DIR/libaacsbrdec.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libsns_imx335") { + source = "$GPL_SDK_LIB_DIR/libsns_imx335.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("lib_hiae") { + source = "$GPL_SDK_LIB_DIR/lib_hiae.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhifisheyecalibrate") { + source = "$GPL_SDK_LIB_DIR/libhifisheyecalibrate.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhive_AEC") { + source = "$GPL_SDK_LIB_DIR/libhive_AEC.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libdnvqe") { + source = "$GPL_SDK_LIB_DIR/libdnvqe.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libtde") { + source = "$GPL_SDK_LIB_DIR/libtde.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libVoiceEngine") { + source = "$GPL_SDK_LIB_DIR/libVoiceEngine.so" + subsystem_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_acodec") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_acodec.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_adec") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_adec.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_aenc") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_aenc.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_aio") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_aio.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_ai") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_ai.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_ao") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_ao.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_base") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_base.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_chnl") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_chnl.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_dis") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_dis.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_gdc") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_gdc.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_h264e") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_h264e.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_h265e") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_h265e.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_isp") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_isp.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_ive") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_ive.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_jpegd") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_jpegd.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_jpege") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_jpege.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_nnie") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_nnie.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_rc") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_rc.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_rgn") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_rgn.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_sys") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_sys.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_vdec") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_vdec.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_vedu") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_vedu.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_venc") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_venc.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_vfmw") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_vfmw.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_vgs") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_vgs.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_vi") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_vi.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_vo") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_vo.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi3516cv500_vpss") { + source = "$GPL_SDK_LIB_DIR/libhi3516cv500_vpss.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi_irq") { + source = "$GPL_SDK_LIB_DIR/libhi_irq.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi_osal") { + source = "$GPL_SDK_LIB_DIR/libhi_osal.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libhi_sensor_i2c") { + source = "$GPL_SDK_LIB_DIR/libhi_sensor_i2c.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} + +ohos_prebuilt_shared_library("libsdk") { + source = "$GPL_SDK_LIB_DIR/libsdk.so" + subsystem_name = "rockchip_products" + part_name = "rockchip_products" +} diff --git a/rk3568/hisi_lib/etc/bootanimation-800x1280.raw b/rk3568/hisi_lib/etc/bootanimation-800x1280.raw new file mode 100755 index 0000000000000000000000000000000000000000..94f4a809123d8040d5760c309e591ea3a18b5d7d Binary files /dev/null and b/rk3568/hisi_lib/etc/bootanimation-800x1280.raw differ diff --git a/rk3568/hisi_lib/etc/camera_host_config.hcb b/rk3568/hisi_lib/etc/camera_host_config.hcb new file mode 100755 index 0000000000000000000000000000000000000000..af39824e4444922904aacd4441459475b15134e0 Binary files /dev/null and b/rk3568/hisi_lib/etc/camera_host_config.hcb differ diff --git a/rk3568/hisi_lib/etc/config.c b/rk3568/hisi_lib/etc/config.c new file mode 100755 index 0000000000000000000000000000000000000000..6b8b4b9bd9d1487311ba853585e43bf41f0397d7 --- /dev/null +++ b/rk3568/hisi_lib/etc/config.c @@ -0,0 +1,851 @@ +/* + * This is an automatically generated HDF config file. Do not modify it manually. + */ + +#include "config.h" + +static const struct HdfConfigPipelineSpecsPipelineSpec g_hdfConfigPipelineSpec[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec2[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec3[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec4[]; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec5[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec6[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec7[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec8[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec9[]; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec2[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec10[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec11[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec12[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec13[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec14[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec15[]; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec3[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec16[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec17[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec18[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec19[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec20[]; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec4[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec21[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec22[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec23[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec24[]; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec25[]; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec5[]; + +static const struct HdfConfigPipelineSpecsPipelineSpec g_hdfConfigPipelineSpec[] = { + [0] = { + .name = "normal_preview", + .nodeSpec = g_hdfConfigNodeSpec, + .nodeSpecSize = 4, + }, + [1] = { + .name = "normal_snapshot", + .nodeSpec = g_hdfConfigNodeSpec2, + .nodeSpecSize = 5, + }, + [2] = { + .name = "normal_preview_snapshot", + .nodeSpec = g_hdfConfigNodeSpec3, + .nodeSpecSize = 6, + }, + [3] = { + .name = "normal_preview_video", + .nodeSpec = g_hdfConfigNodeSpec4, + .nodeSpecSize = 5, + }, + [4] = { + .name = "normal_preview_preview", + .nodeSpec = g_hdfConfigNodeSpec5, + .nodeSpecSize = 5, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec[] = { + [0] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vi#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec2[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "sensor#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vpss#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec3[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vi#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vo#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec4[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vpss#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec[] = { + [0] = { + .name = "sensor#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec, + .portSpecSize = 1, + }, + [1] = { + .name = "vi#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec2, + .portSpecSize = 2, + }, + [2] = { + .name = "vpss#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec3, + .portSpecSize = 2, + }, + [3] = { + .name = "vo#0", + .status = "new", + .stream_type = "preview", + .portSpec = g_hdfConfigPortSpec4, + .portSpecSize = 1, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec5[] = { + [0] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vi#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec6[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "sensor#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vpss#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec7[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vi#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "ipp#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec8[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vpss#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "sink#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec9[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "ipp#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec2[] = { + [0] = { + .name = "sensor#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec5, + .portSpecSize = 1, + }, + [1] = { + .name = "vi#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec6, + .portSpecSize = 2, + }, + [2] = { + .name = "vpss#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec7, + .portSpecSize = 2, + }, + [3] = { + .name = "ipp#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec8, + .portSpecSize = 2, + }, + [4] = { + .name = "sink#0", + .status = "new", + .stream_type = "snapshot", + .portSpec = g_hdfConfigPortSpec9, + .portSpecSize = 1, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec10[] = { + [0] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vi#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec11[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "sensor#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vpss#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec12[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vi#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vo#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [2] = { + .name = "out1", + .peer_port_name = "in0", + .peer_port_node_name = "ipp#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec13[] = { + [0] = { + .name = "in0", + .peer_port_name = "out1", + .peer_port_node_name = "vpss#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "sink#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec14[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vpss#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec15[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "ipp#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec3[] = { + [0] = { + .name = "sensor#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec10, + .portSpecSize = 1, + }, + [1] = { + .name = "vi#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec11, + .portSpecSize = 2, + }, + [2] = { + .name = "vpss#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec12, + .portSpecSize = 3, + }, + [3] = { + .name = "ipp#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec13, + .portSpecSize = 2, + }, + [4] = { + .name = "vo#0", + .status = "new", + .stream_type = "preview", + .portSpec = g_hdfConfigPortSpec14, + .portSpecSize = 1, + }, + [5] = { + .name = "sink#0", + .status = "new", + .stream_type = "snapshot", + .portSpec = g_hdfConfigPortSpec15, + .portSpecSize = 1, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec16[] = { + [0] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vi#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec17[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "sensor#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vpss#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec18[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vi#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vo#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [2] = { + .name = "out1", + .peer_port_name = "in0", + .peer_port_node_name = "venc#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec19[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vpss#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec20[] = { + [0] = { + .name = "in0", + .peer_port_name = "out1", + .peer_port_node_name = "vpss#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec4[] = { + [0] = { + .name = "sensor#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec16, + .portSpecSize = 1, + }, + [1] = { + .name = "vi#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec17, + .portSpecSize = 2, + }, + [2] = { + .name = "vpss#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec18, + .portSpecSize = 3, + }, + [3] = { + .name = "vo#0", + .status = "new", + .stream_type = "preview", + .portSpec = g_hdfConfigPortSpec19, + .portSpecSize = 1, + }, + [4] = { + .name = "venc#0", + .status = "new", + .stream_type = "video", + .portSpec = g_hdfConfigPortSpec20, + .portSpecSize = 1, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec21[] = { + [0] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vi#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec22[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "sensor#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vpss#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec23[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vi#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [1] = { + .name = "out0", + .peer_port_name = "in0", + .peer_port_node_name = "vo#0", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, + [2] = { + .name = "out1", + .peer_port_name = "in0", + .peer_port_node_name = "vo#1", + .direction = 0x1, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec24[] = { + [0] = { + .name = "in0", + .peer_port_name = "out0", + .peer_port_node_name = "vpss#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsPortSpec g_hdfConfigPortSpec25[] = { + [0] = { + .name = "in0", + .peer_port_name = "out1", + .peer_port_node_name = "vpss#0", + .direction = 0x0, + .width = 0x0, + .height = 0x0, + .format = 0x0, + .usage = 0x10000000000000, + .need_allocation = 0x0, + .buffer_count = 0x0, + }, +}; + +static const struct HdfConfigPipelineSpecsNodeSpec g_hdfConfigNodeSpec5[] = { + [0] = { + .name = "sensor#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec21, + .portSpecSize = 1, + }, + [1] = { + .name = "vi#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec22, + .portSpecSize = 2, + }, + [2] = { + .name = "vpss#0", + .status = "new", + .stream_type = "", + .portSpec = g_hdfConfigPortSpec23, + .portSpecSize = 3, + }, + [3] = { + .name = "vo#0", + .status = "new", + .stream_type = "preview", + .portSpec = g_hdfConfigPortSpec24, + .portSpecSize = 1, + }, + [4] = { + .name = "vo#1", + .status = "new", + .stream_type = "preview", + .portSpec = g_hdfConfigPortSpec25, + .portSpecSize = 1, + }, +}; + +static const struct HdfConfigPipelineSpecsRoot g_hdfConfigPipelineSpecsModuleRoot = { + .module = "pipeline_specs", + .pipelineSpec = g_hdfConfigPipelineSpec, + .pipelineSpecSize = 5, +}; + +const struct HdfConfigPipelineSpecsRoot* HdfGetPipelineSpecsModuleConfigRoot(void) +{ + return &g_hdfConfigPipelineSpecsModuleRoot; +} diff --git a/rk3568/hisi_lib/etc/ipp_algo_config.hcb b/rk3568/hisi_lib/etc/ipp_algo_config.hcb new file mode 100755 index 0000000000000000000000000000000000000000..633094eaa9bd9a46ca5ff0ec398bfedb7c105d30 Binary files /dev/null and b/rk3568/hisi_lib/etc/ipp_algo_config.hcb differ diff --git a/rk3568/hisi_lib/etc/mpp_config.hcb b/rk3568/hisi_lib/etc/mpp_config.hcb new file mode 100755 index 0000000000000000000000000000000000000000..8fb6bda17e0e9b6f1798901dc85bd87a59c83bfb Binary files /dev/null and b/rk3568/hisi_lib/etc/mpp_config.hcb differ diff --git a/rk3568/hisi_lib/etc/params.c b/rk3568/hisi_lib/etc/params.c new file mode 100755 index 0000000000000000000000000000000000000000..5fe0f7bed131a964e87cfb926f1fbf916a1e7b07 --- /dev/null +++ b/rk3568/hisi_lib/etc/params.c @@ -0,0 +1,44 @@ +/* + * This is an automatically generated HDF config file. Do not modify it manually. + */ + +#include "params.h" + +static const struct HdfConfigStreamInfo g_hdfConfigStreamInfo[]; + +static const struct HdfConfigSceneInfo g_hdfConfigSceneInfo[]; + +static const struct HdfConfigStreamInfo g_hdfConfigStreamInfo[] = { + [0] = { + .id = 0x0, + .name = "preview", + }, + [1] = { + .id = 0x1, + .name = "video", + }, + [2] = { + .id = 0x2, + .name = "snapshot", + }, +}; + +static const struct HdfConfigSceneInfo g_hdfConfigSceneInfo[] = { + [0] = { + .id = 0x0, + .name = "normal", + }, +}; + +static const struct HdfConfigRoot g_hdfConfigModuleRoot = { + .module = "", + .streamInfo = g_hdfConfigStreamInfo, + .streamInfoSize = 3, + .sceneInfo = g_hdfConfigSceneInfo, + .sceneInfoSize = 1, +}; + +const struct HdfConfigRoot* HdfGetModuleConfigRoot(void) +{ + return &g_hdfConfigModuleRoot; +} diff --git a/rk3568/hisi_lib/etc/stream_supported_config.hcb b/rk3568/hisi_lib/etc/stream_supported_config.hcb new file mode 100755 index 0000000000000000000000000000000000000000..2ba831cb382b7329ebca51e40a749b0635ed9ddf Binary files /dev/null and b/rk3568/hisi_lib/etc/stream_supported_config.hcb differ diff --git a/rk3568/hisi_lib/lib/libVoiceEngine.so b/rk3568/hisi_lib/lib/libVoiceEngine.so new file mode 100755 index 0000000000000000000000000000000000000000..5b4893982bbff0149d3045c97a54382a5089b1a4 Binary files /dev/null and b/rk3568/hisi_lib/lib/libVoiceEngine.so differ diff --git a/rk3568/hisi_lib/lib/lib_hiacs.so b/rk3568/hisi_lib/lib/lib_hiacs.so new file mode 100755 index 0000000000000000000000000000000000000000..7693ee14968fe3b555d6154692902936d7008518 Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hiacs.so differ diff --git a/rk3568/hisi_lib/lib/lib_hiae.so b/rk3568/hisi_lib/lib/lib_hiae.so new file mode 100755 index 0000000000000000000000000000000000000000..327f0f481bc411f0df8bcde148df515788a6f8e9 Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hiae.so differ diff --git a/rk3568/hisi_lib/lib/lib_hiawb.so b/rk3568/hisi_lib/lib/lib_hiawb.so new file mode 100755 index 0000000000000000000000000000000000000000..03e9b940e4812636e976be45ee56ebc9094a9e6b Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hiawb.so differ diff --git a/rk3568/hisi_lib/lib/lib_hiawb_natura.so b/rk3568/hisi_lib/lib/lib_hiawb_natura.so new file mode 100755 index 0000000000000000000000000000000000000000..b19d8ac78dc763bfa34a348685944cf244a34384 Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hiawb_natura.so differ diff --git a/rk3568/hisi_lib/lib/lib_hicalcflicker.so b/rk3568/hisi_lib/lib/lib_hicalcflicker.so new file mode 100755 index 0000000000000000000000000000000000000000..225bf9afa30e243eed4c12b274ce5e797ca8a671 Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hicalcflicker.so differ diff --git a/rk3568/hisi_lib/lib/lib_hidehaze.so b/rk3568/hisi_lib/lib/lib_hidehaze.so new file mode 100755 index 0000000000000000000000000000000000000000..19ada1cc1a42c2e88884d385fb0dd2d7ec4d5eb8 Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hidehaze.so differ diff --git a/rk3568/hisi_lib/lib/lib_hidrc.so b/rk3568/hisi_lib/lib/lib_hidrc.so new file mode 100755 index 0000000000000000000000000000000000000000..c4a899ba717f2d6d3cbccac0c89100813d0e55a9 Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hidrc.so differ diff --git a/rk3568/hisi_lib/lib/lib_hiir_auto.so b/rk3568/hisi_lib/lib/lib_hiir_auto.so new file mode 100755 index 0000000000000000000000000000000000000000..a4cb6af55a3a1258c06ad91905a725a10766bb4a Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hiir_auto.so differ diff --git a/rk3568/hisi_lib/lib/lib_hildci.so b/rk3568/hisi_lib/lib/lib_hildci.so new file mode 100755 index 0000000000000000000000000000000000000000..2050814f143e0ccadb5c0f9eac078262a0a2535c Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_hildci.so differ diff --git a/rk3568/hisi_lib/lib/lib_pq_ai.so b/rk3568/hisi_lib/lib/lib_pq_ai.so new file mode 100755 index 0000000000000000000000000000000000000000..53805e50251f59d8aa955c0c77a7476b5356af40 Binary files /dev/null and b/rk3568/hisi_lib/lib/lib_pq_ai.so differ diff --git a/rk3568/hisi_lib/lib/libaaccomm.so b/rk3568/hisi_lib/lib/libaaccomm.so new file mode 100755 index 0000000000000000000000000000000000000000..ee9cf969e2dab7a6b0aa7acd79d7ef25b96eb034 Binary files /dev/null and b/rk3568/hisi_lib/lib/libaaccomm.so differ diff --git a/rk3568/hisi_lib/lib/libaacdec.so b/rk3568/hisi_lib/lib/libaacdec.so new file mode 100755 index 0000000000000000000000000000000000000000..5a0954fe1b22a6c5361753afa7da2846977ee55d Binary files /dev/null and b/rk3568/hisi_lib/lib/libaacdec.so differ diff --git a/rk3568/hisi_lib/lib/libaacenc.so b/rk3568/hisi_lib/lib/libaacenc.so new file mode 100755 index 0000000000000000000000000000000000000000..e4284993d3071d99c1d9cd745ca8e59a4ccdaa54 Binary files /dev/null and b/rk3568/hisi_lib/lib/libaacenc.so differ diff --git a/rk3568/hisi_lib/lib/libaacsbrdec.so b/rk3568/hisi_lib/lib/libaacsbrdec.so new file mode 100755 index 0000000000000000000000000000000000000000..64c21a06582b6e2d3b52d3964ed3c8a873ca020e Binary files /dev/null and b/rk3568/hisi_lib/lib/libaacsbrdec.so differ diff --git a/rk3568/hisi_lib/lib/libaacsbrenc.so b/rk3568/hisi_lib/lib/libaacsbrenc.so new file mode 100755 index 0000000000000000000000000000000000000000..980c6ab62b96aed0808f43242a38e0e2a0775fcf Binary files /dev/null and b/rk3568/hisi_lib/lib/libaacsbrenc.so differ diff --git a/rk3568/hisi_lib/lib/libaudio_hw.so b/rk3568/hisi_lib/lib/libaudio_hw.so new file mode 100755 index 0000000000000000000000000000000000000000..2ac16cbadd2f288299a935264b3be0953cb0f524 Binary files /dev/null and b/rk3568/hisi_lib/lib/libaudio_hw.so differ diff --git a/rk3568/hisi_lib/lib/libaudio_input_port.so b/rk3568/hisi_lib/lib/libaudio_input_port.so new file mode 100755 index 0000000000000000000000000000000000000000..34bd9424299a3acdd739bc5cf50c28c530ec3a04 Binary files /dev/null and b/rk3568/hisi_lib/lib/libaudio_input_port.so differ diff --git a/rk3568/hisi_lib/lib/libaudio_output_port.so b/rk3568/hisi_lib/lib/libaudio_output_port.so new file mode 100755 index 0000000000000000000000000000000000000000..9cd0d32a30962adf3afa06ed26a28e275f5c4079 Binary files /dev/null and b/rk3568/hisi_lib/lib/libaudio_output_port.so differ diff --git a/rk3568/hisi_lib/lib/libcamera_buffer_manager.z.so b/rk3568/hisi_lib/lib/libcamera_buffer_manager.z.so new file mode 100755 index 0000000000000000000000000000000000000000..14a08c8e22971c54c127756003b615805064dea8 Binary files /dev/null and b/rk3568/hisi_lib/lib/libcamera_buffer_manager.z.so differ diff --git a/rk3568/hisi_lib/lib/libcamera_device_manager.z.so b/rk3568/hisi_lib/lib/libcamera_device_manager.z.so new file mode 100755 index 0000000000000000000000000000000000000000..b290314a0d41ce8d9afdfb1c2be9a029c1d7667c Binary files /dev/null and b/rk3568/hisi_lib/lib/libcamera_device_manager.z.so differ diff --git a/rk3568/hisi_lib/lib/libcamera_hdi_impl.z.so b/rk3568/hisi_lib/lib/libcamera_hdi_impl.z.so new file mode 100755 index 0000000000000000000000000000000000000000..f6d0158c6d2b2a517e2bc97ba8d8576ecbbfeb35 Binary files /dev/null and b/rk3568/hisi_lib/lib/libcamera_hdi_impl.z.so differ diff --git a/rk3568/hisi_lib/lib/libcamera_hw_platform.so b/rk3568/hisi_lib/lib/libcamera_hw_platform.so new file mode 100755 index 0000000000000000000000000000000000000000..b795401d0834c31f5ab30ee4d6236210eb42c709 Binary files /dev/null and b/rk3568/hisi_lib/lib/libcamera_hw_platform.so differ diff --git a/rk3568/hisi_lib/lib/libcamera_ipp_algo_example.z.so b/rk3568/hisi_lib/lib/libcamera_ipp_algo_example.z.so new file mode 100755 index 0000000000000000000000000000000000000000..4103f41de84f07d77a472b277ac61334fbdbac30 Binary files /dev/null and b/rk3568/hisi_lib/lib/libcamera_ipp_algo_example.z.so differ diff --git a/rk3568/hisi_lib/lib/libcamera_pipeline_core.z.so b/rk3568/hisi_lib/lib/libcamera_pipeline_core.z.so new file mode 100755 index 0000000000000000000000000000000000000000..d70b58dcb538f7fd846f918486532ea73fc482f1 Binary files /dev/null and b/rk3568/hisi_lib/lib/libcamera_pipeline_core.z.so differ diff --git a/rk3568/hisi_lib/lib/libcamera_utils.z.so b/rk3568/hisi_lib/lib/libcamera_utils.z.so new file mode 100755 index 0000000000000000000000000000000000000000..ddac9426d17f91bb11fbf5e1f7bc1d041f7d4540 Binary files /dev/null and b/rk3568/hisi_lib/lib/libcamera_utils.z.so differ diff --git a/rk3568/hisi_lib/lib/libcodec.so b/rk3568/hisi_lib/lib/libcodec.so new file mode 100755 index 0000000000000000000000000000000000000000..be02d1b7ce6c95c67b533acce2cff98c7b385e68 Binary files /dev/null and b/rk3568/hisi_lib/lib/libcodec.so differ diff --git a/rk3568/hisi_lib/lib/libdnvqe.so b/rk3568/hisi_lib/lib/libdnvqe.so new file mode 100755 index 0000000000000000000000000000000000000000..6e198c52750de7adba8eebdd11bdca29db010028 Binary files /dev/null and b/rk3568/hisi_lib/lib/libdnvqe.so differ diff --git a/rk3568/hisi_lib/lib/libdriver_adapter.z.so b/rk3568/hisi_lib/lib/libdriver_adapter.z.so new file mode 100755 index 0000000000000000000000000000000000000000..cc8edbd6f4835369f77cba2c30a857d83a776025 Binary files /dev/null and b/rk3568/hisi_lib/lib/libdriver_adapter.z.so differ diff --git a/rk3568/hisi_lib/lib/libdtcf.so b/rk3568/hisi_lib/lib/libdtcf.so new file mode 100755 index 0000000000000000000000000000000000000000..ef5d6bba8e601add2c31647351fea6181b2e1ded Binary files /dev/null and b/rk3568/hisi_lib/lib/libdtcf.so differ diff --git a/rk3568/hisi_lib/lib/libexif.so b/rk3568/hisi_lib/lib/libexif.so new file mode 100755 index 0000000000000000000000000000000000000000..34f352f8d00d8169381e4f939b45daa3e6a36e39 Binary files /dev/null and b/rk3568/hisi_lib/lib/libexif.so differ diff --git a/rk3568/hisi_lib/lib/libfileformat.so b/rk3568/hisi_lib/lib/libfileformat.so new file mode 100755 index 0000000000000000000000000000000000000000..dbeb54dc469fc88ea849ce07843f72a31f02cba1 Binary files /dev/null and b/rk3568/hisi_lib/lib/libfileformat.so differ diff --git a/rk3568/hisi_lib/lib/libformat_hw.so b/rk3568/hisi_lib/lib/libformat_hw.so new file mode 100755 index 0000000000000000000000000000000000000000..6b31af06dec8103d9d0e9afb80d0be90e3344b30 Binary files /dev/null and b/rk3568/hisi_lib/lib/libformat_hw.so differ diff --git a/rk3568/hisi_lib/lib/libhdmi.so b/rk3568/hisi_lib/lib/libhdmi.so new file mode 100755 index 0000000000000000000000000000000000000000..3a8da7090bdf8c687a396a8f630cd225b2ea0823 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhdmi.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_acodec.so b/rk3568/hisi_lib/lib/libhi3516cv500_acodec.so new file mode 100755 index 0000000000000000000000000000000000000000..679863f3b3207e60a0aefcf2151f53a39a6e9446 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_acodec.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_adec.so b/rk3568/hisi_lib/lib/libhi3516cv500_adec.so new file mode 100755 index 0000000000000000000000000000000000000000..abd7e17da1f43829632d5d478e0b15990eaf526e Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_adec.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_aenc.so b/rk3568/hisi_lib/lib/libhi3516cv500_aenc.so new file mode 100755 index 0000000000000000000000000000000000000000..571138963b42940646fb7dcecae7152b8805a84b Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_aenc.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_ai.so b/rk3568/hisi_lib/lib/libhi3516cv500_ai.so new file mode 100755 index 0000000000000000000000000000000000000000..92b271bec7619ded74d552857c3727bd3ca555b1 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_ai.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_aio.so b/rk3568/hisi_lib/lib/libhi3516cv500_aio.so new file mode 100755 index 0000000000000000000000000000000000000000..143d8c53a3e19de0d9e6e560f444b106ac0a0614 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_aio.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_ao.so b/rk3568/hisi_lib/lib/libhi3516cv500_ao.so new file mode 100755 index 0000000000000000000000000000000000000000..92e58c14739ab7f24171f917eec49391e754fe21 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_ao.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_base.so b/rk3568/hisi_lib/lib/libhi3516cv500_base.so new file mode 100755 index 0000000000000000000000000000000000000000..65791742534e4d1d1fc2f470d6e03f4257af9934 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_base.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_chnl.so b/rk3568/hisi_lib/lib/libhi3516cv500_chnl.so new file mode 100755 index 0000000000000000000000000000000000000000..7e0912d755e3e8cb4f56256960b4c22815e34f4a Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_chnl.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_dis.so b/rk3568/hisi_lib/lib/libhi3516cv500_dis.so new file mode 100755 index 0000000000000000000000000000000000000000..b0cb0ccb085dee41e022b350dd17a31d5cb83e8a Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_dis.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_gdc.so b/rk3568/hisi_lib/lib/libhi3516cv500_gdc.so new file mode 100755 index 0000000000000000000000000000000000000000..865c92b5ead24c019c2cc942c01c638528c8cdc6 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_gdc.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_h264e.so b/rk3568/hisi_lib/lib/libhi3516cv500_h264e.so new file mode 100755 index 0000000000000000000000000000000000000000..a7d79e38212ab2a186b0cd57b19d7911ea6ff4b4 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_h264e.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_h265e.so b/rk3568/hisi_lib/lib/libhi3516cv500_h265e.so new file mode 100755 index 0000000000000000000000000000000000000000..6c4be82a9061fdc593ea9f97cbac580ed460f05b Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_h265e.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_isp.so b/rk3568/hisi_lib/lib/libhi3516cv500_isp.so new file mode 100755 index 0000000000000000000000000000000000000000..0f01cb747db413fbe8f2b4fb22fec61688250bd5 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_isp.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_ive.so b/rk3568/hisi_lib/lib/libhi3516cv500_ive.so new file mode 100755 index 0000000000000000000000000000000000000000..f56f3dadb316285790c08b86e64444a6725c726d Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_ive.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_jpegd.so b/rk3568/hisi_lib/lib/libhi3516cv500_jpegd.so new file mode 100755 index 0000000000000000000000000000000000000000..6522aa12cf000e2cbfb4bdd51ee07e3d6e63b4ea Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_jpegd.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_jpege.so b/rk3568/hisi_lib/lib/libhi3516cv500_jpege.so new file mode 100755 index 0000000000000000000000000000000000000000..494a60eaa634864d5b499ee024d892f8125b6374 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_jpege.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_nnie.so b/rk3568/hisi_lib/lib/libhi3516cv500_nnie.so new file mode 100755 index 0000000000000000000000000000000000000000..650c6f0aa8184db1965fc4da413e7acb519c3702 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_nnie.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_rc.so b/rk3568/hisi_lib/lib/libhi3516cv500_rc.so new file mode 100755 index 0000000000000000000000000000000000000000..bcbb125ff9ed4f2c2fc7ada53c099515c93a767d Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_rc.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_rgn.so b/rk3568/hisi_lib/lib/libhi3516cv500_rgn.so new file mode 100755 index 0000000000000000000000000000000000000000..968445717cd470878ba3dc51b420ce47aafb899f Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_rgn.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_sys.so b/rk3568/hisi_lib/lib/libhi3516cv500_sys.so new file mode 100755 index 0000000000000000000000000000000000000000..815199d75e11e2abfa99f573c87267a0663880af Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_sys.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_vdec.so b/rk3568/hisi_lib/lib/libhi3516cv500_vdec.so new file mode 100755 index 0000000000000000000000000000000000000000..c57fbdb4e4608715930c2dccc6d83b089fc7d01d Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_vdec.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_vedu.so b/rk3568/hisi_lib/lib/libhi3516cv500_vedu.so new file mode 100755 index 0000000000000000000000000000000000000000..1657b61acc60991488dfcf7c91c6947d93491199 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_vedu.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_venc.so b/rk3568/hisi_lib/lib/libhi3516cv500_venc.so new file mode 100755 index 0000000000000000000000000000000000000000..a2a11863111e6dc6df7536ab2921c15650fa404a Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_venc.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_vfmw.so b/rk3568/hisi_lib/lib/libhi3516cv500_vfmw.so new file mode 100755 index 0000000000000000000000000000000000000000..66ed8cd2020f5dee3966f1137c4bd9096f842660 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_vfmw.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_vgs.so b/rk3568/hisi_lib/lib/libhi3516cv500_vgs.so new file mode 100755 index 0000000000000000000000000000000000000000..29d162157e264660e5c01d463236fa335227391c Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_vgs.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_vi.so b/rk3568/hisi_lib/lib/libhi3516cv500_vi.so new file mode 100755 index 0000000000000000000000000000000000000000..db5c4aca0403c87f008b1bc52302b5db8296cf65 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_vi.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_vo.so b/rk3568/hisi_lib/lib/libhi3516cv500_vo.so new file mode 100755 index 0000000000000000000000000000000000000000..67a64c656f05df2ffafef580c98af6866eea9daa Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_vo.so differ diff --git a/rk3568/hisi_lib/lib/libhi3516cv500_vpss.so b/rk3568/hisi_lib/lib/libhi3516cv500_vpss.so new file mode 100755 index 0000000000000000000000000000000000000000..6b221001eab1d095c56a5b756cb894c7610b58c9 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi3516cv500_vpss.so differ diff --git a/rk3568/hisi_lib/lib/libhi_irq.so b/rk3568/hisi_lib/lib/libhi_irq.so new file mode 100755 index 0000000000000000000000000000000000000000..f57002ff5dd2d815fc672546be86ee344bd6cf87 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi_irq.so differ diff --git a/rk3568/hisi_lib/lib/libhi_osal.so b/rk3568/hisi_lib/lib/libhi_osal.so new file mode 100755 index 0000000000000000000000000000000000000000..3f3f6312b7e3b80c8a1f20ae9bb3cbc47cb1fc85 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi_osal.so differ diff --git a/rk3568/hisi_lib/lib/libhi_sensor_i2c.so b/rk3568/hisi_lib/lib/libhi_sensor_i2c.so new file mode 100755 index 0000000000000000000000000000000000000000..be2b34dbf360acfd6278933d242b91d38e21ff43 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhi_sensor_i2c.so differ diff --git a/rk3568/hisi_lib/lib/libhiaacdec.so b/rk3568/hisi_lib/lib/libhiaacdec.so new file mode 100755 index 0000000000000000000000000000000000000000..6e3d1d30821ea86185483b38683545e39332f37f Binary files /dev/null and b/rk3568/hisi_lib/lib/libhiaacdec.so differ diff --git a/rk3568/hisi_lib/lib/libhifisheyecalibrate.so b/rk3568/hisi_lib/lib/libhifisheyecalibrate.so new file mode 100755 index 0000000000000000000000000000000000000000..4369bf4e1cd2991f1873491c9eae327400576867 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhifisheyecalibrate.so differ diff --git a/rk3568/hisi_lib/lib/libhimcfcal.so b/rk3568/hisi_lib/lib/libhimcfcal.so new file mode 100755 index 0000000000000000000000000000000000000000..26c4cb7b2d9f17c2ecd326f6be73bd628413886e Binary files /dev/null and b/rk3568/hisi_lib/lib/libhimcfcal.so differ diff --git a/rk3568/hisi_lib/lib/libhitimer.so b/rk3568/hisi_lib/lib/libhitimer.so new file mode 100755 index 0000000000000000000000000000000000000000..c0ab640f119a8c5f861011343ff981b06e8ab143 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhitimer.so differ diff --git a/rk3568/hisi_lib/lib/libhive_AEC.so b/rk3568/hisi_lib/lib/libhive_AEC.so new file mode 100755 index 0000000000000000000000000000000000000000..c2482bcf599dfa7bfcd64738715abb2e394a1be5 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_AEC.so differ diff --git a/rk3568/hisi_lib/lib/libhive_AGC.so b/rk3568/hisi_lib/lib/libhive_AGC.so new file mode 100755 index 0000000000000000000000000000000000000000..7e1c5b80ac111a26f6b43d77d8b3c5fa326bd5d8 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_AGC.so differ diff --git a/rk3568/hisi_lib/lib/libhive_ANR.so b/rk3568/hisi_lib/lib/libhive_ANR.so new file mode 100755 index 0000000000000000000000000000000000000000..4562524df63f8b20fd21f9a1d5baaba94369c38c Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_ANR.so differ diff --git a/rk3568/hisi_lib/lib/libhive_EQ.so b/rk3568/hisi_lib/lib/libhive_EQ.so new file mode 100755 index 0000000000000000000000000000000000000000..a1177e42ed4db5a2fa5cf6d3abeea6bd1c553ecb Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_EQ.so differ diff --git a/rk3568/hisi_lib/lib/libhive_HPF.so b/rk3568/hisi_lib/lib/libhive_HPF.so new file mode 100755 index 0000000000000000000000000000000000000000..3cbfad0877a50df7e88f0db3407d9c5598a8db5a Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_HPF.so differ diff --git a/rk3568/hisi_lib/lib/libhive_RES.so b/rk3568/hisi_lib/lib/libhive_RES.so new file mode 100755 index 0000000000000000000000000000000000000000..464895d979e7df91776b8ffc650a8168bad264a6 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_RES.so differ diff --git a/rk3568/hisi_lib/lib/libhive_RES_ext.so b/rk3568/hisi_lib/lib/libhive_RES_ext.so new file mode 100755 index 0000000000000000000000000000000000000000..f42d9b99a3a958b81eee47f348681157020ab362 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_RES_ext.so differ diff --git a/rk3568/hisi_lib/lib/libhive_common.so b/rk3568/hisi_lib/lib/libhive_common.so new file mode 100755 index 0000000000000000000000000000000000000000..a8b97a539c9643a3ca43a3f5afb97b9795584b10 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_common.so differ diff --git a/rk3568/hisi_lib/lib/libhive_record.so b/rk3568/hisi_lib/lib/libhive_record.so new file mode 100755 index 0000000000000000000000000000000000000000..e425c80d97181bbc34e678491ed0329fa0efcb4a Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_record.so differ diff --git a/rk3568/hisi_lib/lib/libhive_talkv2.so b/rk3568/hisi_lib/lib/libhive_talkv2.so new file mode 100755 index 0000000000000000000000000000000000000000..aab3579d14d47fe8b29e7667c5bc59b74c92b00f Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_talkv2.so differ diff --git a/rk3568/hisi_lib/lib/libhive_wnr.so b/rk3568/hisi_lib/lib/libhive_wnr.so new file mode 100755 index 0000000000000000000000000000000000000000..7d3724faf1f780ec3af70e0c539724b394c67d84 Binary files /dev/null and b/rk3568/hisi_lib/lib/libhive_wnr.so differ diff --git a/rk3568/hisi_lib/lib/libisp.so b/rk3568/hisi_lib/lib/libisp.so new file mode 100755 index 0000000000000000000000000000000000000000..3c5c24af98c36ef0e443c29ee0576c1288dd23c0 Binary files /dev/null and b/rk3568/hisi_lib/lib/libisp.so differ diff --git a/rk3568/hisi_lib/lib/libive.so b/rk3568/hisi_lib/lib/libive.so new file mode 100755 index 0000000000000000000000000000000000000000..d3c2692273c8b6174cea9f74cf703442a19a0d93 Binary files /dev/null and b/rk3568/hisi_lib/lib/libive.so differ diff --git a/rk3568/hisi_lib/lib/libmbuf.so b/rk3568/hisi_lib/lib/libmbuf.so new file mode 100755 index 0000000000000000000000000000000000000000..1257767899fbc6acc3162e3b10571df5156cf5a4 Binary files /dev/null and b/rk3568/hisi_lib/lib/libmbuf.so differ diff --git a/rk3568/hisi_lib/lib/libmd.so b/rk3568/hisi_lib/lib/libmd.so new file mode 100755 index 0000000000000000000000000000000000000000..1ed0a4857c0ca5c1595d03ecd7b84799a8f15fbb Binary files /dev/null and b/rk3568/hisi_lib/lib/libmd.so differ diff --git a/rk3568/hisi_lib/lib/libmedia_hal_common.so b/rk3568/hisi_lib/lib/libmedia_hal_common.so new file mode 100755 index 0000000000000000000000000000000000000000..fc6462fe60f20cf48afba46fd8ec4ce86b50ab49 Binary files /dev/null and b/rk3568/hisi_lib/lib/libmedia_hal_common.so differ diff --git a/rk3568/hisi_lib/lib/libmessagehandler.so b/rk3568/hisi_lib/lib/libmessagehandler.so new file mode 100755 index 0000000000000000000000000000000000000000..b85d1a8770e59b62f761cd2d4ffdac9914391cb0 Binary files /dev/null and b/rk3568/hisi_lib/lib/libmessagehandler.so differ diff --git a/rk3568/hisi_lib/lib/libmp4.so b/rk3568/hisi_lib/lib/libmp4.so new file mode 100755 index 0000000000000000000000000000000000000000..932894a35edb23e56f297b0757ba0a743451a323 Binary files /dev/null and b/rk3568/hisi_lib/lib/libmp4.so differ diff --git a/rk3568/hisi_lib/lib/libmpi.so b/rk3568/hisi_lib/lib/libmpi.so new file mode 100755 index 0000000000000000000000000000000000000000..5dbbcd4127900c219b5c9bd7b1ec166b0c791fbf Binary files /dev/null and b/rk3568/hisi_lib/lib/libmpi.so differ diff --git a/rk3568/hisi_lib/lib/libmpp_vbs.so b/rk3568/hisi_lib/lib/libmpp_vbs.so new file mode 100755 index 0000000000000000000000000000000000000000..3d92e2f16d867a909047f5646224dbae68788bba Binary files /dev/null and b/rk3568/hisi_lib/lib/libmpp_vbs.so differ diff --git a/rk3568/hisi_lib/lib/libmwlog.so b/rk3568/hisi_lib/lib/libmwlog.so new file mode 100755 index 0000000000000000000000000000000000000000..c30498a2ca02904c768248b6cfe0d329935a16e7 Binary files /dev/null and b/rk3568/hisi_lib/lib/libmwlog.so differ diff --git a/rk3568/hisi_lib/lib/libnnie.so b/rk3568/hisi_lib/lib/libnnie.so new file mode 100755 index 0000000000000000000000000000000000000000..505026d9f312c958ab7af6288436e4f7b8adeda9 Binary files /dev/null and b/rk3568/hisi_lib/lib/libnnie.so differ diff --git a/rk3568/hisi_lib/lib/libplugin_adec_35xx.so b/rk3568/hisi_lib/lib/libplugin_adec_35xx.so new file mode 100755 index 0000000000000000000000000000000000000000..77a7e80751192637d6c6f1fc6b259af8cd2354ba Binary files /dev/null and b/rk3568/hisi_lib/lib/libplugin_adec_35xx.so differ diff --git a/rk3568/hisi_lib/lib/libplugin_aenc_35xx.so b/rk3568/hisi_lib/lib/libplugin_aenc_35xx.so new file mode 100755 index 0000000000000000000000000000000000000000..3fc8b6d115fa80cc2bfb833a112cd50e152eb16a Binary files /dev/null and b/rk3568/hisi_lib/lib/libplugin_aenc_35xx.so differ diff --git a/rk3568/hisi_lib/lib/libplugin_muxer_recorder.so b/rk3568/hisi_lib/lib/libplugin_muxer_recorder.so new file mode 100755 index 0000000000000000000000000000000000000000..789ee36bfaa8aff11826cfd607115c7d832b3222 Binary files /dev/null and b/rk3568/hisi_lib/lib/libplugin_muxer_recorder.so differ diff --git a/rk3568/hisi_lib/lib/libplugin_vdec_3516D.so b/rk3568/hisi_lib/lib/libplugin_vdec_3516D.so new file mode 100755 index 0000000000000000000000000000000000000000..68994a4c8192c0dcf5ed18b97d56c4268ab845ff Binary files /dev/null and b/rk3568/hisi_lib/lib/libplugin_vdec_3516D.so differ diff --git a/rk3568/hisi_lib/lib/libplugin_venc_35xx.so b/rk3568/hisi_lib/lib/libplugin_venc_35xx.so new file mode 100755 index 0000000000000000000000000000000000000000..781c054c485a4ac2daae2f868b608e298a1b3f4d Binary files /dev/null and b/rk3568/hisi_lib/lib/libplugin_venc_35xx.so differ diff --git a/rk3568/hisi_lib/lib/librecorder_pro.so b/rk3568/hisi_lib/lib/librecorder_pro.so new file mode 100755 index 0000000000000000000000000000000000000000..5bc911712a8cd3cbb7d62eab8ba879745d108619 Binary files /dev/null and b/rk3568/hisi_lib/lib/librecorder_pro.so differ diff --git a/rk3568/hisi_lib/lib/libsdk.so b/rk3568/hisi_lib/lib/libsdk.so new file mode 100755 index 0000000000000000000000000000000000000000..e240f7cf3dcfa1e3909193f1cbcd7f4a2ed6a9ac Binary files /dev/null and b/rk3568/hisi_lib/lib/libsdk.so differ diff --git a/rk3568/hisi_lib/lib/libsecurec.so b/rk3568/hisi_lib/lib/libsecurec.so new file mode 100755 index 0000000000000000000000000000000000000000..5ba92a6f6cb5844fcd0d051e0b8deaedf98ab90f Binary files /dev/null and b/rk3568/hisi_lib/lib/libsecurec.so differ diff --git a/rk3568/hisi_lib/lib/libsns_imx335.so b/rk3568/hisi_lib/lib/libsns_imx335.so new file mode 100755 index 0000000000000000000000000000000000000000..28ff992c0c90567e9c7091a63444b27940cd983e Binary files /dev/null and b/rk3568/hisi_lib/lib/libsns_imx335.so differ diff --git a/rk3568/hisi_lib/lib/libtde.so b/rk3568/hisi_lib/lib/libtde.so new file mode 100755 index 0000000000000000000000000000000000000000..e30947eca7bd1b72132b2a070775f2cfd11e978d Binary files /dev/null and b/rk3568/hisi_lib/lib/libtde.so differ diff --git a/rk3568/hisi_lib/lib/libts.so b/rk3568/hisi_lib/lib/libts.so new file mode 100755 index 0000000000000000000000000000000000000000..2c9dab8642e4415decc55816a4768caf5c38d215 Binary files /dev/null and b/rk3568/hisi_lib/lib/libts.so differ diff --git a/rk3568/hisi_lib/lib/libupvqe.so b/rk3568/hisi_lib/lib/libupvqe.so new file mode 100755 index 0000000000000000000000000000000000000000..0f588b91d834e03d77a37e1b70c2f7b771db5c50 Binary files /dev/null and b/rk3568/hisi_lib/lib/libupvqe.so differ diff --git a/rk3568/hisi_lib/lib/libvb_server.so b/rk3568/hisi_lib/lib/libvb_server.so new file mode 100755 index 0000000000000000000000000000000000000000..0a1682c6121fa7fcb1104ff08b61a84c19fd3100 Binary files /dev/null and b/rk3568/hisi_lib/lib/libvb_server.so differ diff --git a/rk3568/kernel/BUILD.gn b/rk3568/kernel/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..77c9dc5e9d2082930f130c69f1d46ee8e78597be --- /dev/null +++ b/rk3568/kernel/BUILD.gn @@ -0,0 +1,33 @@ +# Copyright (c) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") +import("//build/config/clang/clang.gni") +kernel_build_script_dir = "//kernel/linux/linux-4.19" +kernel_source_dir = "//kernel/linux/linux-4.19" + +action("kernel") { + script = "build_kernel.sh" + sources = [ kernel_source_dir ] + + product_path = "vendor/$product_company/$product_name" + outputs = [ "$root_build_dir/packages/phone/images" ] + args = [ + rebase_path(kernel_build_script_dir, root_build_dir), + rebase_path("$root_build_dir/packages/phone/images"), + rebase_path("//device/rockchip/$device_name"), + product_path, + ] +} + + diff --git a/rk3568/kernel/build_kernel.sh b/rk3568/kernel/build_kernel.sh new file mode 100755 index 0000000000000000000000000000000000000000..8b7b46606677b07d123ba915e76aa63c76b2ac77 --- /dev/null +++ b/rk3568/kernel/build_kernel.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Copyright (c) 2021 HiHope Open Source Organization . +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e + +pushd ${1} +export PRODUCT_PATH=$4 +mkdir -p ${2} +cp ${3}/loader/* ${2} +cp ${3}/tools/parameter.txt ${2} +popd diff --git a/rk3568/loader/MiniLoaderAll.bin b/rk3568/loader/MiniLoaderAll.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e9c07bb6cd288e1ba426e701130422dd78f21e2 Binary files /dev/null and b/rk3568/loader/MiniLoaderAll.bin differ diff --git a/rk3568/loader/README.md b/rk3568/loader/README.md new file mode 100644 index 0000000000000000000000000000000000000000..81791dcb164e9a8d46c8fefb15efc84dfcc4ad96 --- /dev/null +++ b/rk3568/loader/README.md @@ -0,0 +1,12 @@ +# Loader固件说明 + +## MiniLoader + +1. **MiniLoaderAll.bin**:默认烧写固件指向的MiniLoader固件 + +## uboot + +uboot固件会读取开发板的SN来匹配对应的内核设备树,要求同一型号的开发板的SN的前6位必须一致。 + +1. uboot.img: 支持所有RK3566和RK3568开发板 +2. **uboot-rk3568evb1-v10.img**: 由于RK3566-EVB2-V11开发板的SN是随机数,**首次**启动必须烧写这个uboot,重启成功后,可以替换为uboot.img。 diff --git a/rk3568/loader/boot_linux.img b/rk3568/loader/boot_linux.img new file mode 100644 index 0000000000000000000000000000000000000000..b133e108941aab3c6bf86d745e2eb311ff8fa40e Binary files /dev/null and b/rk3568/loader/boot_linux.img differ diff --git a/rk3568/loader/uboot-rk3568evb1-v10.img b/rk3568/loader/uboot-rk3568evb1-v10.img new file mode 100644 index 0000000000000000000000000000000000000000..7007da9460798d53ab4e0a701a9ea788da6eff34 Binary files /dev/null and b/rk3568/loader/uboot-rk3568evb1-v10.img differ diff --git a/rk3568/loader/uboot.img b/rk3568/loader/uboot.img new file mode 100644 index 0000000000000000000000000000000000000000..b86e58e5b6efd3535a3c285d2f46966f27a88495 Binary files /dev/null and b/rk3568/loader/uboot.img differ diff --git a/rk3568/tools/README.md b/rk3568/tools/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ae03ab62aa7d617ad8fbea3325a41d585f658f00 --- /dev/null +++ b/rk3568/tools/README.md @@ -0,0 +1,102 @@ +# 烧写准备 + +## 进入烧写模式 + +1. USB线连接USB3.0 OTG接口(开发板正面的TYPE-A接口或者背面的MicroUSB接口) + +2. 按住底板上的Recovery按键后重启系统,大约1秒后松开Recovery按键, 系统将进入"Loader模式"。 + + 或者: + + 按住核心板上的Maskrom按键(位于EMMC的旁边)后重启系统,系统将进入"Maskrom模式"。 + +# Windows主机烧写固件 + +## 安装USB驱动 + +双机*windows\DriverAssitant\ DriverInstall.exe*打开安装程序,点击下图所示的“驱动安装”按钮,按提示安装USB驱动: + +![](./pictures/DriverInstall.png) + +*说明:如果已经安装旧版本的烧写工具,请先点击"驱动卸载"按钮下载驱动,然后再点击"驱动安装"按钮安装驱动*。 + +## 打开烧写工具 + +双机*windows\RKDevTool.exe*打开烧写工具,工具界面如下图所示: + +![](pictures/FlashTool.png) + +## 查看开发板是否进入烧写模式 + +1. 如果界面显示"发现一个LOADER设备", 说明开发板进入Loader模式等待烧写固件。 + +2. 如果界面显示"发现一个MASKROM设备", 说明开发板进入Maskrom模式等待烧写固件。 + +3. 如果界面显示"没有发现设备",说明开发板没有进入烧写模式,请按文档第一章节操作让开发板进入烧写模式。 + + ***说明:Toybrick开发板都是GPT分区。如果之前有烧写过旧的MBR分区的固件,需要进入Maskrom模式才能修改为GPT分区格式。*** + +## 烧写固件 + +1. 将下载的固件保存到*out/ohos-arm-release/packages/phone/images*目录下。 + +2. 勾选需要烧写的固件,点击烧写工具的"执行"按钮,开始烧写固件。 + + *说明:* + + *如果烧写成功,在工具界面右侧会显示烧写成功* + + *如果烧写失败,在工具界面右侧会用红色的字体显示烧写错误信息,更多出错信息查看:Log目录下的文件* + + + +# Linux命令行烧写固件 + +## 查看开发板是否进入烧写模式 + +进入OHOS的根目录,执行如下命令查看: + +``` +python3 flash.py -q +``` + +*说明:* + +1. *如果输出"loader", 说明开发板进入Loader模式等待烧写固件* +2. *如果输出"maskrom", 说明开发板进入Maskrom模式等待烧写固件* +3. *如果输出"none",说明开发板没有进入烧写模式,请按文档第一章节操作让开发板进入烧写模式* + +## 烧写固件 + +执行如下命令烧写固件: + +1. 烧写所有固件: + +``` +python3 flash.py -a +``` + +​ *说明:此命令会烧写所有OHOS固件,包括:uboot, kernel(boot_linux), system, vendor, userdata固件* + +2. 烧写指定固件: + +``` +python3 flash.py -u //烧写uboot.img +python3 flash.py -k //烧写boot_linux.img +python3 flash.py -s //烧写system.img +python3 flash.py -v //烧写vendor.img +python3 flash.py -d //烧写userdata.img +``` + +*说明:烧写多个指定固件,可以根据需要执行输入多个参数。如:-sv表示烧写system.img和vendor.img* + +## 注意 + +因为RK3566和RK3568的MiniLoaderAll.bin无法兼容,默认的MiniLoaderAll.bin是支持RK3568。 + +如果你开发板是RK3566请执行如下下载后在按上诉步骤烧写固件: + +``` +cp out/ohos-arm-release/packages/phone/images/MiniLoaderAll_RK3566.bin out/ohos-arm-release/packages/phone/images/MiniLoaderAll.bin +``` + diff --git a/rk3568/tools/linux/bin/config.ini b/rk3568/tools/linux/bin/config.ini new file mode 100644 index 0000000000000000000000000000000000000000..ea1eb033c05cfa1894f7e3fd298498f90825bc01 --- /dev/null +++ b/rk3568/tools/linux/bin/config.ini @@ -0,0 +1,11 @@ +firmware= +loader= +parameter= +misc= +boot= +kernel= +system= +recovery= +rockusb_id= +msc_id= +rb_check_off=true diff --git a/rk3568/tools/linux/bin/flash.aarch64 b/rk3568/tools/linux/bin/flash.aarch64 new file mode 100755 index 0000000000000000000000000000000000000000..e800e3161ed2ed7a1bfd5e3fae07f8304c26a3f0 Binary files /dev/null and b/rk3568/tools/linux/bin/flash.aarch64 differ diff --git a/rk3568/tools/linux/bin/flash.aarch64.enc b/rk3568/tools/linux/bin/flash.aarch64.enc new file mode 100755 index 0000000000000000000000000000000000000000..7d1a9c7c4a96201f1c244a0a737f7d27c96c29cd Binary files /dev/null and b/rk3568/tools/linux/bin/flash.aarch64.enc differ diff --git a/rk3568/tools/linux/bin/flash.mac b/rk3568/tools/linux/bin/flash.mac new file mode 100755 index 0000000000000000000000000000000000000000..fe137884e2fbcb5928941464002e1dfda95c5d6e Binary files /dev/null and b/rk3568/tools/linux/bin/flash.mac differ diff --git a/rk3568/tools/linux/bin/flash.x86_64 b/rk3568/tools/linux/bin/flash.x86_64 new file mode 100755 index 0000000000000000000000000000000000000000..af1d8ba34a7ae93c6bf14fa89247b0bf1f938749 Binary files /dev/null and b/rk3568/tools/linux/bin/flash.x86_64 differ diff --git a/rk3568/tools/linux/flash.py b/rk3568/tools/linux/flash.py new file mode 100755 index 0000000000000000000000000000000000000000..103a73f98b55e4b1e84cbd3bb9c43eaed0b26514 --- /dev/null +++ b/rk3568/tools/linux/flash.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 + +#encoding=utf-8 +__author__ = 'addy.ke@rock-chips.com' + +import traceback +import os +import sys +import threading +import time +import math +import getopt + +class FlashTool: + def __init__(self, arch): + self.rootDir = os.getcwd() + self.outDir = '%s/out/ohos-%s-release' % (self.rootDir, arch) + self.imageDir = '%s/packages/phone/images' % self.outDir + self.toolDir = '%s/device/rockchip/rk3566/tools' % self.rootDir + self.flashTool = 'sudo %s/linux/bin/flash.%s' % (self.toolDir, os.uname().machine) + + def QueryFlashMode(self): + cmd = '%s LD' % self.flashTool + fd = os.popen(cmd) + line = fd.read() + if line.find("Mode=Loader") >= 0: + print('loader') + elif line.find("Mode=Maskrom") >= 0: + print('maskrom') + else: + print("none") + + def FlashReboot(self): + return '%s rd ' % self.flashTool + + def FlashLoader(self): + return '%s UL %s/MiniLoaderAll.bin' % (self.flashTool, self.imageDir) + + def FlashParameter(self): + return '%s DI -p %s/parameter.txt' % (self.flashTool, self.imageDir) + + def FlashOne(self, part): + if part in ('uboot', 'trust'): + return '%s DI -%s %s/%s.img %s/parameter.txt' % (self.flashTool, part, self.imageDir, part, self.imageDir) + else: + return '%s DI -%s %s/%s.img' % (self.flashTool, part, self.imageDir, part) + +def help(argv): + text = 'Usage: ' + argv[0] + 'options [PARAMTER]\n' + text += '\n' + text += 'Options:\n' + text += ' -h, --help Print help information\n' + text += ' -q, --query Query device flash mode\n' + text += ' -u, --uboot Flash uboot image\n' + text += ' -k, --kernel Flash boot_linux(kernel) image\n' + text += ' -s, --system Flash system image\n' + text += ' -v, --vendor Flash vendor image\n' + text += ' -d, --userdata Flash userdata image\n' + text += ' -a, --all Flash all images\n' + text += '\n' + text += 'e.g.\n' + text += ' ' + argv[0] + ' -sv\n' + text += ' ' + argv[0] + ' -a\n' + text +='\n' + + print(text) + +try: + options,args = getopt.getopt(sys.argv[1:], 'hquksvda', ['help', 'query', 'uboot', 'kernel', 'system', 'vendor', 'userdata', 'all']) + +except getopt.GetoptError: + help(sys.argv) + sys.exit() + +if len(options) == 0: + help(sys.argv) + sys.exit() + +partList = ['uboot', 'boot_linux', 'system', 'vendor', 'userdata'] +tool = FlashTool('arm') + +cmds = [] +cmds.append(tool.FlashLoader()) +cmds.append(tool.FlashParameter()) +for option, param in options: + if option in ('-h', '--help'): + help(sys.argv) + sys.exit() + elif option in ('-q', '--query'): + tool.QueryFlashMode() + sys.exit() + elif option in ('-a', '--all'): + for part in partList: + cmds.append(tool.FlashOne(part)) + else: + if option in ('-u', '--uboot'): + cmds.append(tool.FlashOne('uboot')) + if option in ('-k', '--kernel'): + cmds.append(tool.FlashOne('boot_linux')) + if option in ('-s', '--system'): + cmds.append(tool.FlashOne('system')) + if option in ('-v', '--vendor'): + cmds.append(tool.FlashOne('vendor')) + if option in ('-d', '--userdata'): + cmds.append(tool.FlashOne('userdata')) + +cmds.append(tool.FlashReboot()) + +for cmd in cmds: + #print(cmd) + if os.system(cmd) != 0: + print('\033[0;31mFail to run cmd: %s\033[0m' % cmd) + break diff --git a/rk3568/tools/parameter.txt b/rk3568/tools/parameter.txt new file mode 100644 index 0000000000000000000000000000000000000000..aead9ab181fc67681a4010e6a03812f7e16115b0 --- /dev/null +++ b/rk3568/tools/parameter.txt @@ -0,0 +1,13 @@ +FIRMWARE_VER:11.0 +MACHINE_MODEL:rk3568_r +MACHINE_ID:007 +MANUFACTURER: rockchip +MAGIC: 0x5041524B +ATAG: 0x00200800 +MACHINE: rk3568_r +CHECK_MASK: 0x80 +PWR_HLD: 0,0,A,0,1 +TYPE: GPT +CMDLINE:mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00030000@0x00006000(boot_linux:bootable),0x00400000@0x00036000(system),0x00200000@0x00436000(vendor),-@0x00636000(userdata:grow) +uuid:system=614e0000-0000-4b53-8000-1d28000054a9 +uuid:boot_linux=a2d37d82-51e0-420d-83f5-470db993dd35 diff --git a/rk3568/tools/pictures/DriverInstall.png b/rk3568/tools/pictures/DriverInstall.png new file mode 100755 index 0000000000000000000000000000000000000000..0f6b142b1c7d5b71503c2a961931b8cd3190bfff Binary files /dev/null and b/rk3568/tools/pictures/DriverInstall.png differ diff --git a/rk3568/tools/pictures/FlashTool.png b/rk3568/tools/pictures/FlashTool.png new file mode 100755 index 0000000000000000000000000000000000000000..05c01cf50619b55b2f7caef015ec3865c254bba3 Binary files /dev/null and b/rk3568/tools/pictures/FlashTool.png differ diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/NOTICE.txt b/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/NOTICE.txt new file mode 100755 index 0000000000000000000000000000000000000000..6cfa57a65d8c2252688ceeabe22c6c6039363002 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/NOTICE.txt @@ -0,0 +1,4 @@ +The .dll files here are distributed by Microsoft Corporation as part of the +Windows Driver Kit (available at +http://www.microsoft.com/whdc/resources/downloads.mspx) and included here as +permitted by the Microsoft Software License Terms. \ No newline at end of file diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/WUDFUpdate_01009.dll b/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/WUDFUpdate_01009.dll new file mode 100755 index 0000000000000000000000000000000000000000..1424634393e6202390a12c5dfe1aa3a2c4783681 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/WUDFUpdate_01009.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/WdfCoInstaller01009.dll b/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/WdfCoInstaller01009.dll new file mode 100755 index 0000000000000000000000000000000000000000..1731b962d68d52030b32b19d6f0f913cbc47729e Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/WdfCoInstaller01009.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/winusbcoinstaller2.dll b/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/winusbcoinstaller2.dll new file mode 100755 index 0000000000000000000000000000000000000000..30e55025b2fb6455a18165ad9df1ba1a3aa90566 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/ADBDriver/amd64/winusbcoinstaller2.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/android_winusb.inf b/rk3568/tools/windows/DriverAssitant/ADBDriver/android_winusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..dd8eedcea90f2b10aec0a4e6e305c53f6092bc66 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/ADBDriver/android_winusb.inf @@ -0,0 +1,106 @@ +; +; Android WinUsb driver installation. +; +[Version] +Signature = "$Windows NT$" +Class = AndroidUsbDeviceClass +ClassGuid = {3F966BD9-FA04-4ec5-991C-D326973B5128} +Provider = %ProviderName% +DriverVer = 08/28/2014,11.0.0000.00000 +CatalogFile.NTx86 = androidwinusb86.cat +CatalogFile.NTamd64 = androidwinusba64.cat + +[ClassInstall32] +Addreg = AndroidWinUsbClassReg + +[AndroidWinUsbClassReg] +HKR,,,0,%ClassName% +HKR,,Icon,,-1 + + +[Manufacturer] +%ProviderName% = Rockchip, NTx86, NTamd64 + + +[Rockchip.NTx86] +;rockchip +%SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0006 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0010&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0011&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0012&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0013&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0014&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0015&MI_01 + +[Rockchip.NTamd64] +%SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0006 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0010&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0011&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0012&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0013&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0014&MI_01 +%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0015&MI_01 + + + +[USB_Install] +Include = winusb.inf +Needs = WINUSB.NT + +[USB_Install.Services] +Include = winusb.inf +AddService = WinUSB,0x00000002,WinUSB_ServiceInstall + +[WinUSB_ServiceInstall] +DisplayName = %WinUSB_SvcDesc% +ServiceType = 1 +StartType = 3 +ErrorControl = 1 +ServiceBinary = %12%\WinUSB.sys + +[USB_Install.Wdf] +KmdfService = WINUSB, WinUSB_Install + +[WinUSB_Install] +KmdfLibraryVersion = 1.9 + +[USB_Install.HW] +AddReg = Dev_AddReg + +[Dev_AddReg] +HKR,,DeviceInterfaceGUIDs,0x10000,"{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}" + +[USB_Install.CoInstallers] +AddReg = CoInstallers_AddReg +CopyFiles = CoInstallers_CopyFiles + +[CoInstallers_AddReg] +HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll" + +[CoInstallers_CopyFiles] +WinUSBCoInstaller2.dll +WdfCoInstaller01009.dll + +[DestinationDirs] +CoInstallers_CopyFiles=11 + +[SourceDisksNames] +1 = %DISK_NAME%,,,\i386 +2 = %DISK_NAME%,,,\amd64 + +[SourceDisksFiles.x86] +WinUSBCoInstaller2.dll = 1 +WdfCoInstaller01009.dll = 1 + +[SourceDisksFiles.amd64] +WinUSBCoInstaller2.dll = 2 +WdfCoInstaller01009.dll = 2 + +[Strings] +ProviderName = "Rockchip, Inc." +SingleAdbInterface = "Android ADB Interface" +CompositeAdbInterface = "Android Composite ADB Interface" +SingleBootLoaderInterface = "Android Bootloader Interface" +WinUSB_SvcDesc = "Android USB Driver" +DISK_NAME = "Android WinUsb installation disk" +ClassName = "Android Device" diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/androidwinusb86.cat b/rk3568/tools/windows/DriverAssitant/ADBDriver/androidwinusb86.cat new file mode 100755 index 0000000000000000000000000000000000000000..518ff9b9eca24a68c9c3aced70bb0d3c2b3381c6 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/ADBDriver/androidwinusb86.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/androidwinusba64.cat b/rk3568/tools/windows/DriverAssitant/ADBDriver/androidwinusba64.cat new file mode 100755 index 0000000000000000000000000000000000000000..38c4018d87917532d541106919253718239faeb8 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/ADBDriver/androidwinusba64.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/NOTICE.txt b/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/NOTICE.txt new file mode 100755 index 0000000000000000000000000000000000000000..6cfa57a65d8c2252688ceeabe22c6c6039363002 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/NOTICE.txt @@ -0,0 +1,4 @@ +The .dll files here are distributed by Microsoft Corporation as part of the +Windows Driver Kit (available at +http://www.microsoft.com/whdc/resources/downloads.mspx) and included here as +permitted by the Microsoft Software License Terms. \ No newline at end of file diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/WUDFUpdate_01009.dll b/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/WUDFUpdate_01009.dll new file mode 100755 index 0000000000000000000000000000000000000000..f19c370188a0d74333f5b4c13c5a926f7a0361fa Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/WUDFUpdate_01009.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/WdfCoInstaller01009.dll b/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/WdfCoInstaller01009.dll new file mode 100755 index 0000000000000000000000000000000000000000..30e81af6202448f1f81fb8423af5fa97fa4a110a Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/WdfCoInstaller01009.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/winusbcoinstaller2.dll b/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/winusbcoinstaller2.dll new file mode 100755 index 0000000000000000000000000000000000000000..fc450d2b25d0f8069454cc0bde5ba9c13927fe4d Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/ADBDriver/i386/winusbcoinstaller2.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..103d997b2a1875d020fa87f766f01102ce9bc581 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..f1d1241ce8125c60e09d3f5b2e1889a249c975a8 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.inf @@ -0,0 +1,262 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41DD00} +Provider=%Provider% +DriverVer = 04/25/2019,4.90.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +AddReg=RockusbClassReg + +; NT Style +[ClassInstall32] +AddReg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +AddService = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..1750a4bc967af6c3320b6f004b92f63d822bb043 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x64/win10/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..f421e5cd3a67511d3636ce81a263cab6f99e499c Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..5591ed3a857acb9099bcdb64881996c8f009cb81 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.inf @@ -0,0 +1,262 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41DD00} +Provider=%Provider% +DriverVer = 07/26/2019,4.91.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +AddReg=RockusbClassReg + +; NT Style +[ClassInstall32] +AddReg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +AddService = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..088c8d5eff38a137a7b0daf547b4a9dfa6249fb1 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x64/win7/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..f7ca7f9d5ff21e1018e901e7fdcdae3ab35427c0 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..f1d1241ce8125c60e09d3f5b2e1889a249c975a8 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.inf @@ -0,0 +1,262 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41DD00} +Provider=%Provider% +DriverVer = 04/25/2019,4.90.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +AddReg=RockusbClassReg + +; NT Style +[ClassInstall32] +AddReg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +AddService = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..c375c2a5972ee56784fed9d16b939b1fcf06660d Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x64/win8/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..e79b2be002be11c7457f349a3d947aba5222b471 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..f1d1241ce8125c60e09d3f5b2e1889a249c975a8 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.inf @@ -0,0 +1,262 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41DD00} +Provider=%Provider% +DriverVer = 04/25/2019,4.90.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +AddReg=RockusbClassReg + +; NT Style +[ClassInstall32] +AddReg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +AddService = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..35543a2ca3108543e68107264a088d36b12c13f1 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x64/win81/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..cf38c8ef5ea58a56238e6365c0178259aba9c164 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..f1d1241ce8125c60e09d3f5b2e1889a249c975a8 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.inf @@ -0,0 +1,262 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41DD00} +Provider=%Provider% +DriverVer = 04/25/2019,4.90.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +AddReg=RockusbClassReg + +; NT Style +[ClassInstall32] +AddReg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +AddService = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..6324a6b0b36e75e8254849bdb38317bf9bdb70d3 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/win10/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..0b1a09ab1b980facfda5e5fc6cdecf980a5bf3f1 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..5591ed3a857acb9099bcdb64881996c8f009cb81 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.inf @@ -0,0 +1,262 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41DD00} +Provider=%Provider% +DriverVer = 07/26/2019,4.91.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +AddReg=RockusbClassReg + +; NT Style +[ClassInstall32] +AddReg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +AddService = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..ca2cc64a8a1fda42f88d1061d5d3c3d576495aef Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/win7/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..276c761ffc771a763306129e5abc2d1f8732b29e Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..f1d1241ce8125c60e09d3f5b2e1889a249c975a8 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.inf @@ -0,0 +1,262 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41DD00} +Provider=%Provider% +DriverVer = 04/25/2019,4.90.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +AddReg=RockusbClassReg + +; NT Style +[ClassInstall32] +AddReg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +AddService = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..e50f9b9e30eb0c71d90bc44ffa4a0408eb782105 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/win8/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..243af8505f2cce53d717cb674a18cdbb51e6c791 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..f1d1241ce8125c60e09d3f5b2e1889a249c975a8 --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.inf @@ -0,0 +1,262 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41DD00} +Provider=%Provider% +DriverVer = 04/25/2019,4.90.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +AddReg=RockusbClassReg + +; NT Style +[ClassInstall32] +AddReg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +AddService = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..9ff90c93b9b1ea9d84f3b6ab1b8efeeec7629f50 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/win81/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/DriverCoInstaller.dll b/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/DriverCoInstaller.dll new file mode 100755 index 0000000000000000000000000000000000000000..d7737996eecccfe9fe4fc218d191be5ddbb8bc69 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/DriverCoInstaller.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.cat b/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.cat new file mode 100755 index 0000000000000000000000000000000000000000..59dc030227e89809b219e70085f8e2774895dad1 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.cat differ diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.inf b/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.inf new file mode 100755 index 0000000000000000000000000000000000000000..6e313011deb26d779049d6e569ebc9dfb4c6635a --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.inf @@ -0,0 +1,272 @@ +; Installation inf for the Rockusb Device +; +; Copyright By FuZhou Rockchip +; +; +;--------- Version Section --------------------------------------------------- + +[Version] +Signature="$CHICAGO$" +Class=Rockusb Device +ClassGUID={79DFC2A8-2574-493C-AE71-52958E41CC00} +Provider=%Provider% +DriverVer = 04/25/2019,4.90.0000.0 +CatalogFile=rockusb.cat + +[ControlFlags] +; Pnp drivers should not be installable via non-PnP hardware dialogs +ExcludeFromSelect = * + +;--------- ClassInstall/ClassInstall32 Section ------------------------------- + +; Not necessary if using a standard class + +; 9X Style +[ClassInstall] +Addreg=RockusbClassReg + +; NT Style +[ClassInstall32] +Addreg=RockusbClassReg + +[RockusbClassReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,,,%REG_SZ%,%DeviceClassName% +HKR,,Icon,,"1" +HKR,,DeviceCharacteristics,0x10001,0x100 ; FILE_DEVICE_SECURE_OPEN +HKR,,Security,,"D:P(A;;GRGWGX;;;WD)(A;;GA;;;SY)(A;;GA;;;BA)" ; generic all access - everybody + + +;--------- DestinationDirs Section ------------------------------------------- + +[DestinationDirs] +DefaultDestDir = 10 +Rockusb_CoInstaller = 11 +Rockusb_Files_Driver = 12 + + +;--------- SourceDiskNames and SourceDiskFiles Section ----------------------- +; These sections identify source disks and files for installation. + +[SourceDisksNames] +1 = %DiskId1%,,,"" + +[SourceDisksFiles] +rockusb.sys = 1,, +DriverCoInstaller.dll = 1,, + + +;--------- Manufacturer and Models Sections ---------------------------------- + +[Manufacturer] +%MfgName% = Rockchip,NTx86,NTamd64 + +; DisplayName Section DeviceId +[Rockchip.NTx86] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 +[Rockchip.NTamd64] +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_220E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_210E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_350E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_180E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_110E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330F +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_330G +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_320E +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_310D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_301A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_300B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_290A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_292A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_281A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_282B +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_273A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_261A +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262C +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_2207&PID_262D +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3228 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3201 +%Rockusb_DeviceDesc%=Rockusb_DDI, USB\VID_071b&PID_3226 + +;---------- DDInstall Sections ----------------------------------------------- +; --------- Windows 98 ----------------- + +; Experimentation has shown that DDInstall root names greater than 19 characters +; cause problems in Windows 98 + +[Rockusb_DDI] +CopyFiles=Rockusb_Files_Driver +CopyFiles=Rockusb_CoInstaller +AddReg=Rockusb_9X_AddReg + +[Rockusb_9X_AddReg] +HKR,,DevLoader,,*ntkern +HKR,,NTMPDriver,,rockusb.sys +HKR,,Description,,%Rockusb_DeviceDesc% + +; --------- Windows NT ----------------- + +[Rockusb_DDI.NT] +CopyFiles=Rockusb_Files_Driver +CopyFiles=Rockusb_CoInstaller +AddReg=Rockusb_NT_AddReg + +[Rockusb_DDI.NT.Services] +Addservice = Rockusb, %FLG_ADDREG_NOCLOBBER%, Rockusb_Service + +; --------- Registry ---------------------- + +[Rockusb_NT_AddReg] +;reg-root,[subkey],[value-entry-name],[flags],[value] +HKR,rockchip,Key0,%REG_DWORD%,0 +HKLM,System\CurrentControlSet\Control\CoDeviceInstallers, \ + {79DFC2A8-2574-493C-AE71-52958E41CC00},0x00010008, "DriverCoInstaller.dll,DriverCoInstaller" + +; --------- Service ---------------------- + +[Rockusb_Service] +DisplayName = %Rockusb_SvcDesc% +ServiceType = %SERVICE_KERNEL_DRIVER% +StartType = %SERVICE_DEMAND_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = %12%\rockusb.sys +LoadOrderGroup = Extended Base + +; --------- Files ---------------------- + +[Rockusb_CoInstaller] +DriverCoInstaller.dll + +[Rockusb_Files_Driver] +rockusb.sys,,,2 + +;--------- Strings Section --------------------------------------------------- + +[Strings] +Provider = "Fuzhou Rockchip" +MfgName = "Fuzhou Rockchip" +Rockusb_DeviceDesc = "Rockusb Device" +DeviceClassName="Class for rockusb devices" +Rockusb_SvcDesc = "Driver for Rockusb Device" +DiskId1 = "Rockusb Device Installation Disk #1" + +REG_SZ = 0x00000000 +REG_MULTI_SZ = 0x00010000 +REG_EXPAND_SZ = 0x00020000 +REG_BINARY = 0x00000001 +REG_DWORD = 0x00010001 +REG_NONE = 0x00020001 + +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 +SERVICE_ADAPTER = 0x00000004 +SERVICE_RECOGNIZER_DRIVER = 0x00000008 + +SERVICE_BOOT_START = 0x0 +SERVICE_SYSTEM_START = 0x1 +SERVICE_AUTO_START = 0x2 +SERVICE_DEMAND_START = 0x3 +SERVICE_DISABLED = 0x4 + +SERVICE_ERROR_IGNORE = 0x00000000 +SERVICE_ERROR_NORMAL = 0x00000001 +SERVICE_ERROR_SEVERE = 0x00000002 +SERVICE_ERROR_CRITICAL = 0x00000003 + +FLG_ADDREG_NOCLOBBER = 0x00000002 +FLG_ADDREG_DELVAL = 0x00000004 +FLG_ADDREG_APPEND = 0x00000008 +FLG_ADDREG_KEYONLY = 0x00000010 +FLG_ADDREG_OVERWRITEONLY = 0x00000020 +FLG_ADDREG_64BITKEY = 0x00001000 +FLG_ADDREG_KEYONLY_COMMON = 0x00002000 +FLG_ADDREG_32BITKEY = 0x00004000 diff --git a/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.sys b/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.sys new file mode 100755 index 0000000000000000000000000000000000000000..c654a7074d389af761596d5cbdb0e4cef91e02a8 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/Driver/x86/xp/rockusb.sys differ diff --git a/rk3568/tools/windows/DriverAssitant/DriverInstall.exe b/rk3568/tools/windows/DriverAssitant/DriverInstall.exe new file mode 100755 index 0000000000000000000000000000000000000000..5887b282c66c465e9be13d8dd80e98485652244d Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/DriverInstall.exe differ diff --git a/rk3568/tools/windows/DriverAssitant/Readme.txt b/rk3568/tools/windows/DriverAssitant/Readme.txt new file mode 100755 index 0000000000000000000000000000000000000000..0431c4105b093730f0302fd9877ae399f7c87f0a --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/Readme.txt @@ -0,0 +1,10 @@ +о΢װ +֧RockusbRockchip AdbԤװж +֧xp,win7_32,win7_64,win8_32,win8_64,win10_32,win10_64ϵͳ +Ŀ¼˵ +Ŀ¼\Driver:RockusbĿ¼ +Ŀ¼\ADBDriver:Rockchip ADBĿ¼ + +ע +Ϊ豸ʹøµȡжءٽСװ +xpϵͳͨ߰װ,Rockchip ADB豸ʱʾ㷢豸װʱѡ"Զװ",ɳɹװ diff --git a/rk3568/tools/windows/DriverAssitant/bin/x64/DIFxAPI.dll b/rk3568/tools/windows/DriverAssitant/bin/x64/DIFxAPI.dll new file mode 100755 index 0000000000000000000000000000000000000000..32a1a66ff48976833f4c33a7ed7320bb353961a9 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/bin/x64/DIFxAPI.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/bin/x64/RKDrvPreinst_x64.exe b/rk3568/tools/windows/DriverAssitant/bin/x64/RKDrvPreinst_x64.exe new file mode 100755 index 0000000000000000000000000000000000000000..59e47f032da05c2bef9bb9ac4da2a5d669a766dd Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/bin/x64/RKDrvPreinst_x64.exe differ diff --git a/rk3568/tools/windows/DriverAssitant/bin/x86/DIFxAPI.dll b/rk3568/tools/windows/DriverAssitant/bin/x86/DIFxAPI.dll new file mode 100755 index 0000000000000000000000000000000000000000..45c11de96d6324ea2a62ab4575a2dd975c67c1e6 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/bin/x86/DIFxAPI.dll differ diff --git a/rk3568/tools/windows/DriverAssitant/bin/x86/RKDrvPreinst_x86.exe b/rk3568/tools/windows/DriverAssitant/bin/x86/RKDrvPreinst_x86.exe new file mode 100755 index 0000000000000000000000000000000000000000..bd4d8056079e5172678935b0685593cb5c98a8a8 Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/bin/x86/RKDrvPreinst_x86.exe differ diff --git a/rk3568/tools/windows/DriverAssitant/config.ini b/rk3568/tools/windows/DriverAssitant/config.ini new file mode 100755 index 0000000000000000000000000000000000000000..99c376335f050b26ddd6a9d52530953fcae31a2a Binary files /dev/null and b/rk3568/tools/windows/DriverAssitant/config.ini differ diff --git a/rk3568/tools/windows/DriverAssitant/version.txt b/rk3568/tools/windows/DriverAssitant/version.txt new file mode 100755 index 0000000000000000000000000000000000000000..c658de56f4a66fe0bcf50b11ed0b3a9ccd89f49f --- /dev/null +++ b/rk3568/tools/windows/DriverAssitant/version.txt @@ -0,0 +1 @@ +V4.91 \ No newline at end of file diff --git a/rk3568/tools/windows/Language/Chinese.ini b/rk3568/tools/windows/Language/Chinese.ini new file mode 100755 index 0000000000000000000000000000000000000000..7c3ce99ddf636a13ae21acf26a9505cee536123b Binary files /dev/null and b/rk3568/tools/windows/Language/Chinese.ini differ diff --git a/rk3568/tools/windows/Language/English.ini b/rk3568/tools/windows/Language/English.ini new file mode 100755 index 0000000000000000000000000000000000000000..0a4db4ee3156114c8db3afc14dd32c8a91796365 Binary files /dev/null and b/rk3568/tools/windows/Language/English.ini differ diff --git a/rk3568/tools/windows/RKDevTool.exe b/rk3568/tools/windows/RKDevTool.exe new file mode 100755 index 0000000000000000000000000000000000000000..d630846e887bdae09fb853feaec7b7631203d912 Binary files /dev/null and b/rk3568/tools/windows/RKDevTool.exe differ diff --git a/rk3568/tools/windows/RKDevTool_manual_v1.2_cn.pdf b/rk3568/tools/windows/RKDevTool_manual_v1.2_cn.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0a725e26f89ca259ebd78407a39bec0efbdf4f5e Binary files /dev/null and b/rk3568/tools/windows/RKDevTool_manual_v1.2_cn.pdf differ diff --git a/rk3568/tools/windows/RKDevTool_manual_v1.2_en.pdf b/rk3568/tools/windows/RKDevTool_manual_v1.2_en.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1132653343bfc7d1ebe3e5e3a6bb1c0092596a39 Binary files /dev/null and b/rk3568/tools/windows/RKDevTool_manual_v1.2_en.pdf differ diff --git a/rk3568/tools/windows/bin/AFPTool.exe b/rk3568/tools/windows/bin/AFPTool.exe new file mode 100755 index 0000000000000000000000000000000000000000..84d9b33047cc06f4fcfee8a32a15bece8dbfe680 Binary files /dev/null and b/rk3568/tools/windows/bin/AFPTool.exe differ diff --git a/rk3568/tools/windows/bin/AdbWinApi.dll b/rk3568/tools/windows/bin/AdbWinApi.dll new file mode 100755 index 0000000000000000000000000000000000000000..7abe26cf1d2ab67f0107b19c5fe5a9c4543f90c0 Binary files /dev/null and b/rk3568/tools/windows/bin/AdbWinApi.dll differ diff --git a/rk3568/tools/windows/bin/AdbWinUsbApi.dll b/rk3568/tools/windows/bin/AdbWinUsbApi.dll new file mode 100755 index 0000000000000000000000000000000000000000..e7a6de1208910df2577ef86bbe536fb23fa5f015 Binary files /dev/null and b/rk3568/tools/windows/bin/AdbWinUsbApi.dll differ diff --git a/rk3568/tools/windows/bin/RKImageMaker.exe b/rk3568/tools/windows/bin/RKImageMaker.exe new file mode 100755 index 0000000000000000000000000000000000000000..0816b57aa04f9d098cf6dccf01e799d7ddfac163 Binary files /dev/null and b/rk3568/tools/windows/bin/RKImageMaker.exe differ diff --git a/rk3568/tools/windows/bin/adb.exe b/rk3568/tools/windows/bin/adb.exe new file mode 100755 index 0000000000000000000000000000000000000000..83016362826186f5b9b656c5a553e6ca9871f494 Binary files /dev/null and b/rk3568/tools/windows/bin/adb.exe differ diff --git a/rk3568/tools/windows/config.cfg b/rk3568/tools/windows/config.cfg new file mode 100644 index 0000000000000000000000000000000000000000..03c6a5c10563633561c9416b225028ff3d304bf3 Binary files /dev/null and b/rk3568/tools/windows/config.cfg differ diff --git a/rk3568/tools/windows/config.ini b/rk3568/tools/windows/config.ini new file mode 100644 index 0000000000000000000000000000000000000000..98843d83efb0268c1e2a0e0ad1fe8f4bb8689922 Binary files /dev/null and b/rk3568/tools/windows/config.ini differ diff --git a/rk3568/tools/windows/revision.txt b/rk3568/tools/windows/revision.txt new file mode 100644 index 0000000000000000000000000000000000000000..25680bc7fb88865d928883bd90e6d6d03dc31085 --- /dev/null +++ b/rk3568/tools/windows/revision.txt @@ -0,0 +1,39 @@ +v2.71 revision(2019/08/21): +1.fix download image at last partition bug up +2.optimize the progress of downloading + +v2.72 revision(2020/01/13): +1.fix erase flash is timeout on nor flash up + +v2.73 revision(2020/05/20): +1.support with exporting com log + +v2.74 revision(2020/07/23): +1.take small slice to erase nor flash + +v2.75 revision(2020/09/15): +1.fix virtual list grid msg collision + +v2.76 revision(2020/09/25): +1.complete to download new idblock + +v2.78 revision(2020/11/02): +1.support to create download list from parameter + +v2.79 revision(2020/11/11): +1.support new loader format + +v2.8 revision(2021/01/04): +1.fix chunk size beyond 4g in sparse download + +v2.81 revision(2021/01/28) +1.support to list storage and switch storage + +v2.82 revision(2021/03/23) +1.modify lastusedlba in gpt to assure that align with 64 sector + +v2.83 revision(2021/04/19) +1.reloading the modified firmware when upgrading + +v2.84 revision(2021/04/30) +1.fix lastusedlba in gpt bug