aboutsummaryrefslogtreecommitdiff
path: root/aosp/include
diff options
context:
space:
mode:
Diffstat (limited to 'aosp/include')
-rw-r--r--aosp/include/base/check.h22
-rw-r--r--aosp/include/base/check_op.h24
-rw-r--r--aosp/include/base/containers/cxx20_erase.h22
-rw-r--r--aosp/include/base/notreached.h22
-rw-r--r--aosp/include/build/buildflag.h47
l---------aosp/include/components/zucchini/abs32_utils.h1
l---------aosp/include/components/zucchini/address_translator.h1
l---------aosp/include/components/zucchini/algorithm.h1
l---------aosp/include/components/zucchini/arm_utils.h1
l---------aosp/include/components/zucchini/binary_data_histogram.h1
l---------aosp/include/components/zucchini/buffer_sink.h1
l---------aosp/include/components/zucchini/buffer_source.h1
l---------aosp/include/components/zucchini/buffer_view.h1
l---------aosp/include/components/zucchini/buildflags.h1
l---------aosp/include/components/zucchini/crc32.h1
l---------aosp/include/components/zucchini/disassembler.h1
l---------aosp/include/components/zucchini/disassembler_dex.h1
l---------aosp/include/components/zucchini/disassembler_elf.h1
l---------aosp/include/components/zucchini/disassembler_no_op.h1
l---------aosp/include/components/zucchini/disassembler_win32.h1
l---------aosp/include/components/zucchini/disassembler_ztf.h1
l---------aosp/include/components/zucchini/element_detection.h1
l---------aosp/include/components/zucchini/encoded_view.h1
l---------aosp/include/components/zucchini/ensemble_matcher.h1
l---------aosp/include/components/zucchini/equivalence_map.h1
l---------aosp/include/components/zucchini/heuristic_ensemble_matcher.h1
l---------aosp/include/components/zucchini/image_index.h1
l---------aosp/include/components/zucchini/image_utils.h1
l---------aosp/include/components/zucchini/imposed_ensemble_matcher.h1
l---------aosp/include/components/zucchini/io_utils.h1
l---------aosp/include/components/zucchini/main_utils.h1
l---------aosp/include/components/zucchini/mapped_file.h1
l---------aosp/include/components/zucchini/patch_reader.h1
l---------aosp/include/components/zucchini/patch_utils.h1
l---------aosp/include/components/zucchini/patch_writer.h1
l---------aosp/include/components/zucchini/reference_bytes_mixer.h1
l---------aosp/include/components/zucchini/reference_set.h1
l---------aosp/include/components/zucchini/rel32_finder.h1
l---------aosp/include/components/zucchini/rel32_utils.h1
l---------aosp/include/components/zucchini/reloc_elf.h1
l---------aosp/include/components/zucchini/reloc_win32.h1
l---------aosp/include/components/zucchini/suffix_array.h1
l---------aosp/include/components/zucchini/target_pool.h1
l---------aosp/include/components/zucchini/targets_affinity.h1
l---------aosp/include/components/zucchini/test_disassembler.h1
l---------aosp/include/components/zucchini/test_reference_reader.h1
l---------aosp/include/components/zucchini/test_utils.h1
l---------aosp/include/components/zucchini/type_dex.h1
l---------aosp/include/components/zucchini/type_elf.h1
l---------aosp/include/components/zucchini/type_win_pe.h1
l---------aosp/include/components/zucchini/type_ztf.h1
l---------aosp/include/components/zucchini/typed_value.h1
l---------aosp/include/components/zucchini/version_info.h1
l---------aosp/include/components/zucchini/zucchini.h1
l---------aosp/include/components/zucchini/zucchini_apply.h1
l---------aosp/include/components/zucchini/zucchini_commands.h1
l---------aosp/include/components/zucchini/zucchini_gen.h1
l---------aosp/include/components/zucchini/zucchini_integration.h1
l---------aosp/include/components/zucchini/zucchini_tools.h1
-rw-r--r--aosp/include/third_party/abseil-cpp/absl/types/optional.h28
60 files changed, 219 insertions, 0 deletions
diff --git a/aosp/include/base/check.h b/aosp/include/base/check.h
new file mode 100644
index 0000000..3ed2e04
--- /dev/null
+++ b/aosp/include/base/check.h
@@ -0,0 +1,22 @@
+//
+// Copyright (C) 2021 The Android Open Source Project
+//
+// 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.
+//
+
+#ifndef __ZUCCHINI_AOSP_BASE_CHECK_H
+#define __ZUCCHINI_AOSP_BASE_CHECK_H
+
+#include <base/logging.h>
+
+#endif /* __ZUCCHINI_AOSP_BASE_CHECK_H */
diff --git a/aosp/include/base/check_op.h b/aosp/include/base/check_op.h
new file mode 100644
index 0000000..47162e6
--- /dev/null
+++ b/aosp/include/base/check_op.h
@@ -0,0 +1,24 @@
+//
+// Copyright (C) 2021 The Android Open Source Project
+//
+// 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.
+//
+
+#ifndef __ZUCCHINI_AOSP_BASE_CHECK_OP_H
+#define __ZUCCHINI_AOSP_BASE_CHECK_OP_H
+
+#include <base/logging.h>
+
+#define FLAG_WIN_SHARE_DELETE FLAG_SHARE_DELETE
+
+#endif /* __ZUCCHINI_AOSP_BASE_CHECK_OP_H */
diff --git a/aosp/include/base/containers/cxx20_erase.h b/aosp/include/base/containers/cxx20_erase.h
new file mode 100644
index 0000000..2fac314
--- /dev/null
+++ b/aosp/include/base/containers/cxx20_erase.h
@@ -0,0 +1,22 @@
+//
+// Copyright (C) 2021 The Android Open Source Project
+//
+// 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.
+//
+
+#ifndef __ZUCCHINI_AOSP_BASE_CONTAINERS_CXX20_ERASE_H
+#define __ZUCCHINI_AOSP_BASE_CONTAINERS_CXX20_ERASE_H
+
+#include <base/stl_util.h>
+
+#endif
diff --git a/aosp/include/base/notreached.h b/aosp/include/base/notreached.h
new file mode 100644
index 0000000..631285c
--- /dev/null
+++ b/aosp/include/base/notreached.h
@@ -0,0 +1,22 @@
+//
+// Copyright (C) 2021 The Android Open Source Project
+//
+// 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.
+//
+
+#ifndef __ZUCCHINI_AOSP_BASE_NOTREACHED_H
+#define __ZUCCHINI_AOSP_BASE_NOTREACHED_H
+
+#include <base/logging.h>
+
+#endif /* __ZUCCHINI_AOSP_BASE_NOTREACHED_H */
diff --git a/aosp/include/build/buildflag.h b/aosp/include/build/buildflag.h
new file mode 100644
index 0000000..8d7c0e0
--- /dev/null
+++ b/aosp/include/build/buildflag.h
@@ -0,0 +1,47 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BUILD_BUILDFLAG_H_
+#define BUILD_BUILDFLAG_H_
+
+// These macros un-mangle the names of the build flags in a way that looks
+// natural, and gives errors if the flag is not defined. Normally in the
+// preprocessor it's easy to make mistakes that interpret "you haven't done
+// the setup to know what the flag is" as "flag is off". Normally you would
+// include the generated header rather than include this file directly.
+//
+// This is for use with generated headers. See build/buildflag_header.gni.
+
+// This dance of two macros does a concatenation of two preprocessor args using
+// ## doubly indirectly because using ## directly prevents macros in that
+// parameter from being expanded.
+#define BUILDFLAG_CAT_INDIRECT(a, b) a##b
+#define BUILDFLAG_CAT(a, b) BUILDFLAG_CAT_INDIRECT(a, b)
+
+// Accessor for build flags.
+//
+// To test for a value, if the build file specifies:
+//
+// ENABLE_FOO=true
+//
+// Then you would check at build-time in source code with:
+//
+// #include "foo_flags.h" // The header the build file specified.
+//
+// #if BUILDFLAG(ENABLE_FOO)
+// ...
+// #endif
+//
+// There will no #define called ENABLE_FOO so if you accidentally test for
+// whether that is defined, it will always be negative. You can also use
+// the value in expressions:
+//
+// const char kSpamServerName[] = BUILDFLAG(SPAM_SERVER_NAME);
+//
+// Because the flag is accessed as a preprocessor macro with (), an error
+// will be thrown if the proper header defining the internal flag value has
+// not been included.
+#define BUILDFLAG(flag) (BUILDFLAG_CAT(BUILDFLAG_INTERNAL_, flag)())
+
+#endif // BUILD_BUILDFLAG_H_
diff --git a/aosp/include/components/zucchini/abs32_utils.h b/aosp/include/components/zucchini/abs32_utils.h
new file mode 120000
index 0000000..5a1a56a
--- /dev/null
+++ b/aosp/include/components/zucchini/abs32_utils.h
@@ -0,0 +1 @@
+../../../../abs32_utils.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/address_translator.h b/aosp/include/components/zucchini/address_translator.h
new file mode 120000
index 0000000..f302a8f
--- /dev/null
+++ b/aosp/include/components/zucchini/address_translator.h
@@ -0,0 +1 @@
+../../../../address_translator.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/algorithm.h b/aosp/include/components/zucchini/algorithm.h
new file mode 120000
index 0000000..9f91466
--- /dev/null
+++ b/aosp/include/components/zucchini/algorithm.h
@@ -0,0 +1 @@
+../../../../algorithm.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/arm_utils.h b/aosp/include/components/zucchini/arm_utils.h
new file mode 120000
index 0000000..12e94ec
--- /dev/null
+++ b/aosp/include/components/zucchini/arm_utils.h
@@ -0,0 +1 @@
+../../../../arm_utils.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/binary_data_histogram.h b/aosp/include/components/zucchini/binary_data_histogram.h
new file mode 120000
index 0000000..5560310
--- /dev/null
+++ b/aosp/include/components/zucchini/binary_data_histogram.h
@@ -0,0 +1 @@
+../../../../binary_data_histogram.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/buffer_sink.h b/aosp/include/components/zucchini/buffer_sink.h
new file mode 120000
index 0000000..9c2db50
--- /dev/null
+++ b/aosp/include/components/zucchini/buffer_sink.h
@@ -0,0 +1 @@
+../../../../buffer_sink.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/buffer_source.h b/aosp/include/components/zucchini/buffer_source.h
new file mode 120000
index 0000000..08e30e4
--- /dev/null
+++ b/aosp/include/components/zucchini/buffer_source.h
@@ -0,0 +1 @@
+../../../../buffer_source.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/buffer_view.h b/aosp/include/components/zucchini/buffer_view.h
new file mode 120000
index 0000000..75387cf
--- /dev/null
+++ b/aosp/include/components/zucchini/buffer_view.h
@@ -0,0 +1 @@
+../../../../buffer_view.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/buildflags.h b/aosp/include/components/zucchini/buildflags.h
new file mode 120000
index 0000000..521bf21
--- /dev/null
+++ b/aosp/include/components/zucchini/buildflags.h
@@ -0,0 +1 @@
+../../../../buildflags.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/crc32.h b/aosp/include/components/zucchini/crc32.h
new file mode 120000
index 0000000..d80e882
--- /dev/null
+++ b/aosp/include/components/zucchini/crc32.h
@@ -0,0 +1 @@
+../../../../crc32.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/disassembler.h b/aosp/include/components/zucchini/disassembler.h
new file mode 120000
index 0000000..536a3d3
--- /dev/null
+++ b/aosp/include/components/zucchini/disassembler.h
@@ -0,0 +1 @@
+../../../../disassembler.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/disassembler_dex.h b/aosp/include/components/zucchini/disassembler_dex.h
new file mode 120000
index 0000000..d2e42ab
--- /dev/null
+++ b/aosp/include/components/zucchini/disassembler_dex.h
@@ -0,0 +1 @@
+../../../../disassembler_dex.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/disassembler_elf.h b/aosp/include/components/zucchini/disassembler_elf.h
new file mode 120000
index 0000000..e2e5f92
--- /dev/null
+++ b/aosp/include/components/zucchini/disassembler_elf.h
@@ -0,0 +1 @@
+../../../../disassembler_elf.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/disassembler_no_op.h b/aosp/include/components/zucchini/disassembler_no_op.h
new file mode 120000
index 0000000..c016e24
--- /dev/null
+++ b/aosp/include/components/zucchini/disassembler_no_op.h
@@ -0,0 +1 @@
+../../../../disassembler_no_op.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/disassembler_win32.h b/aosp/include/components/zucchini/disassembler_win32.h
new file mode 120000
index 0000000..6a53082
--- /dev/null
+++ b/aosp/include/components/zucchini/disassembler_win32.h
@@ -0,0 +1 @@
+../../../../disassembler_win32.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/disassembler_ztf.h b/aosp/include/components/zucchini/disassembler_ztf.h
new file mode 120000
index 0000000..501c313
--- /dev/null
+++ b/aosp/include/components/zucchini/disassembler_ztf.h
@@ -0,0 +1 @@
+../../../../disassembler_ztf.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/element_detection.h b/aosp/include/components/zucchini/element_detection.h
new file mode 120000
index 0000000..84129ba
--- /dev/null
+++ b/aosp/include/components/zucchini/element_detection.h
@@ -0,0 +1 @@
+../../../../element_detection.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/encoded_view.h b/aosp/include/components/zucchini/encoded_view.h
new file mode 120000
index 0000000..a60af6d
--- /dev/null
+++ b/aosp/include/components/zucchini/encoded_view.h
@@ -0,0 +1 @@
+../../../../encoded_view.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/ensemble_matcher.h b/aosp/include/components/zucchini/ensemble_matcher.h
new file mode 120000
index 0000000..7d51538
--- /dev/null
+++ b/aosp/include/components/zucchini/ensemble_matcher.h
@@ -0,0 +1 @@
+../../../../ensemble_matcher.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/equivalence_map.h b/aosp/include/components/zucchini/equivalence_map.h
new file mode 120000
index 0000000..6d67205
--- /dev/null
+++ b/aosp/include/components/zucchini/equivalence_map.h
@@ -0,0 +1 @@
+../../../../equivalence_map.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/heuristic_ensemble_matcher.h b/aosp/include/components/zucchini/heuristic_ensemble_matcher.h
new file mode 120000
index 0000000..bfadfc9
--- /dev/null
+++ b/aosp/include/components/zucchini/heuristic_ensemble_matcher.h
@@ -0,0 +1 @@
+../../../../heuristic_ensemble_matcher.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/image_index.h b/aosp/include/components/zucchini/image_index.h
new file mode 120000
index 0000000..80fdb0a
--- /dev/null
+++ b/aosp/include/components/zucchini/image_index.h
@@ -0,0 +1 @@
+../../../../image_index.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/image_utils.h b/aosp/include/components/zucchini/image_utils.h
new file mode 120000
index 0000000..7f4e142
--- /dev/null
+++ b/aosp/include/components/zucchini/image_utils.h
@@ -0,0 +1 @@
+../../../../image_utils.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/imposed_ensemble_matcher.h b/aosp/include/components/zucchini/imposed_ensemble_matcher.h
new file mode 120000
index 0000000..0a0642b
--- /dev/null
+++ b/aosp/include/components/zucchini/imposed_ensemble_matcher.h
@@ -0,0 +1 @@
+../../../../imposed_ensemble_matcher.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/io_utils.h b/aosp/include/components/zucchini/io_utils.h
new file mode 120000
index 0000000..671200e
--- /dev/null
+++ b/aosp/include/components/zucchini/io_utils.h
@@ -0,0 +1 @@
+../../../../io_utils.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/main_utils.h b/aosp/include/components/zucchini/main_utils.h
new file mode 120000
index 0000000..9f56dda
--- /dev/null
+++ b/aosp/include/components/zucchini/main_utils.h
@@ -0,0 +1 @@
+../../../../main_utils.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/mapped_file.h b/aosp/include/components/zucchini/mapped_file.h
new file mode 120000
index 0000000..a5440bb
--- /dev/null
+++ b/aosp/include/components/zucchini/mapped_file.h
@@ -0,0 +1 @@
+../../../../mapped_file.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/patch_reader.h b/aosp/include/components/zucchini/patch_reader.h
new file mode 120000
index 0000000..0e7e2ec
--- /dev/null
+++ b/aosp/include/components/zucchini/patch_reader.h
@@ -0,0 +1 @@
+../../../../patch_reader.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/patch_utils.h b/aosp/include/components/zucchini/patch_utils.h
new file mode 120000
index 0000000..930f147
--- /dev/null
+++ b/aosp/include/components/zucchini/patch_utils.h
@@ -0,0 +1 @@
+../../../../patch_utils.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/patch_writer.h b/aosp/include/components/zucchini/patch_writer.h
new file mode 120000
index 0000000..ebf0b13
--- /dev/null
+++ b/aosp/include/components/zucchini/patch_writer.h
@@ -0,0 +1 @@
+../../../../patch_writer.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/reference_bytes_mixer.h b/aosp/include/components/zucchini/reference_bytes_mixer.h
new file mode 120000
index 0000000..9c7b310
--- /dev/null
+++ b/aosp/include/components/zucchini/reference_bytes_mixer.h
@@ -0,0 +1 @@
+../../../../reference_bytes_mixer.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/reference_set.h b/aosp/include/components/zucchini/reference_set.h
new file mode 120000
index 0000000..3294dbb
--- /dev/null
+++ b/aosp/include/components/zucchini/reference_set.h
@@ -0,0 +1 @@
+../../../../reference_set.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/rel32_finder.h b/aosp/include/components/zucchini/rel32_finder.h
new file mode 120000
index 0000000..58a5f3b
--- /dev/null
+++ b/aosp/include/components/zucchini/rel32_finder.h
@@ -0,0 +1 @@
+../../../../rel32_finder.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/rel32_utils.h b/aosp/include/components/zucchini/rel32_utils.h
new file mode 120000
index 0000000..a411940
--- /dev/null
+++ b/aosp/include/components/zucchini/rel32_utils.h
@@ -0,0 +1 @@
+../../../../rel32_utils.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/reloc_elf.h b/aosp/include/components/zucchini/reloc_elf.h
new file mode 120000
index 0000000..5dc8c30
--- /dev/null
+++ b/aosp/include/components/zucchini/reloc_elf.h
@@ -0,0 +1 @@
+../../../../reloc_elf.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/reloc_win32.h b/aosp/include/components/zucchini/reloc_win32.h
new file mode 120000
index 0000000..36b0152
--- /dev/null
+++ b/aosp/include/components/zucchini/reloc_win32.h
@@ -0,0 +1 @@
+../../../../reloc_win32.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/suffix_array.h b/aosp/include/components/zucchini/suffix_array.h
new file mode 120000
index 0000000..3116b0f
--- /dev/null
+++ b/aosp/include/components/zucchini/suffix_array.h
@@ -0,0 +1 @@
+../../../../suffix_array.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/target_pool.h b/aosp/include/components/zucchini/target_pool.h
new file mode 120000
index 0000000..ca03e3e
--- /dev/null
+++ b/aosp/include/components/zucchini/target_pool.h
@@ -0,0 +1 @@
+../../../../target_pool.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/targets_affinity.h b/aosp/include/components/zucchini/targets_affinity.h
new file mode 120000
index 0000000..a18787d
--- /dev/null
+++ b/aosp/include/components/zucchini/targets_affinity.h
@@ -0,0 +1 @@
+../../../../targets_affinity.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/test_disassembler.h b/aosp/include/components/zucchini/test_disassembler.h
new file mode 120000
index 0000000..7e67faf
--- /dev/null
+++ b/aosp/include/components/zucchini/test_disassembler.h
@@ -0,0 +1 @@
+../../../../test_disassembler.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/test_reference_reader.h b/aosp/include/components/zucchini/test_reference_reader.h
new file mode 120000
index 0000000..814b366
--- /dev/null
+++ b/aosp/include/components/zucchini/test_reference_reader.h
@@ -0,0 +1 @@
+../../../../test_reference_reader.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/test_utils.h b/aosp/include/components/zucchini/test_utils.h
new file mode 120000
index 0000000..0db69e3
--- /dev/null
+++ b/aosp/include/components/zucchini/test_utils.h
@@ -0,0 +1 @@
+../../../../test_utils.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/type_dex.h b/aosp/include/components/zucchini/type_dex.h
new file mode 120000
index 0000000..2085b37
--- /dev/null
+++ b/aosp/include/components/zucchini/type_dex.h
@@ -0,0 +1 @@
+../../../../type_dex.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/type_elf.h b/aosp/include/components/zucchini/type_elf.h
new file mode 120000
index 0000000..d9b55d1
--- /dev/null
+++ b/aosp/include/components/zucchini/type_elf.h
@@ -0,0 +1 @@
+../../../../type_elf.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/type_win_pe.h b/aosp/include/components/zucchini/type_win_pe.h
new file mode 120000
index 0000000..1d8790f
--- /dev/null
+++ b/aosp/include/components/zucchini/type_win_pe.h
@@ -0,0 +1 @@
+../../../../type_win_pe.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/type_ztf.h b/aosp/include/components/zucchini/type_ztf.h
new file mode 120000
index 0000000..e44b5f7
--- /dev/null
+++ b/aosp/include/components/zucchini/type_ztf.h
@@ -0,0 +1 @@
+../../../../type_ztf.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/typed_value.h b/aosp/include/components/zucchini/typed_value.h
new file mode 120000
index 0000000..fc7f2b7
--- /dev/null
+++ b/aosp/include/components/zucchini/typed_value.h
@@ -0,0 +1 @@
+../../../../typed_value.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/version_info.h b/aosp/include/components/zucchini/version_info.h
new file mode 120000
index 0000000..be765ba
--- /dev/null
+++ b/aosp/include/components/zucchini/version_info.h
@@ -0,0 +1 @@
+../../../../version_info.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/zucchini.h b/aosp/include/components/zucchini/zucchini.h
new file mode 120000
index 0000000..20426f6
--- /dev/null
+++ b/aosp/include/components/zucchini/zucchini.h
@@ -0,0 +1 @@
+../../../../zucchini.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/zucchini_apply.h b/aosp/include/components/zucchini/zucchini_apply.h
new file mode 120000
index 0000000..2a5495b
--- /dev/null
+++ b/aosp/include/components/zucchini/zucchini_apply.h
@@ -0,0 +1 @@
+../../../../zucchini_apply.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/zucchini_commands.h b/aosp/include/components/zucchini/zucchini_commands.h
new file mode 120000
index 0000000..c03fcd7
--- /dev/null
+++ b/aosp/include/components/zucchini/zucchini_commands.h
@@ -0,0 +1 @@
+../../../../zucchini_commands.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/zucchini_gen.h b/aosp/include/components/zucchini/zucchini_gen.h
new file mode 120000
index 0000000..66bf222
--- /dev/null
+++ b/aosp/include/components/zucchini/zucchini_gen.h
@@ -0,0 +1 @@
+../../../../zucchini_gen.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/zucchini_integration.h b/aosp/include/components/zucchini/zucchini_integration.h
new file mode 120000
index 0000000..028a91b
--- /dev/null
+++ b/aosp/include/components/zucchini/zucchini_integration.h
@@ -0,0 +1 @@
+../../../../zucchini_integration.h \ No newline at end of file
diff --git a/aosp/include/components/zucchini/zucchini_tools.h b/aosp/include/components/zucchini/zucchini_tools.h
new file mode 120000
index 0000000..3042827
--- /dev/null
+++ b/aosp/include/components/zucchini/zucchini_tools.h
@@ -0,0 +1 @@
+../../../../zucchini_tools.h \ No newline at end of file
diff --git a/aosp/include/third_party/abseil-cpp/absl/types/optional.h b/aosp/include/third_party/abseil-cpp/absl/types/optional.h
new file mode 100644
index 0000000..3321c72
--- /dev/null
+++ b/aosp/include/third_party/abseil-cpp/absl/types/optional.h
@@ -0,0 +1,28 @@
+//
+// Copyright (C) 2021 The Android Open Source Project
+//
+// 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.
+//
+
+#ifndef __ZUCCHINI_AOSP_ABSL_OPTIONAL_H
+#define __ZUCCHINI_AOSP_ABSL_OPTIONAL_H
+
+#include <optional>
+
+namespace absl {
+ template <typename T> using optional = std::optional<T>;
+ inline constexpr auto nullopt = std::nullopt;
+}
+
+#endif
+